diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..b15d17eb1 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,15 @@ +Data-Storage +Log-Files +My-Workspaces +debug.log + +*.db + +.git* +.vscode +README.md +LICENSE +CONTRIBUITING.md +CODE_OF_CONDUCT.md +./**/.vscode +Dockerfile diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 000000000..0d6c4556d --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,38 @@ +name: Publish Docker image + +on: + push: + branches: [master, develop] + +jobs: + publish: + name: Publish Image + runs-on: ubuntu-latest + steps: + - id: repository + uses: ASzc/change-string-case-action@v1 + with: + string: "${{ github.repository }}/${{ github.event.repository.name }}" + - uses: actions/checkout@v2 + - name: Preparation + id: prep + run: | + REGISTRY="ghcr.io" + IMAGE="${REGISTRY}/${{ steps.repository.outputs.lowercase }}" + TAGS="${IMAGE}:${{ github.sha }}" + if [[ $GITHUB_REF == ref/head/master ]]; then + TAGS="${TAGS},${IMAGE}:latest" + fi + echo ::set-output name=tags::${TAGS} + - name: Login in to registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ github.token }} + - name: Push to registry + uses: docker/build-push-action@v2 + with: + push: true + file: ./Docker/Dockerfile + tags: ${{ steps.prep.outputs.tags }} diff --git a/Client/WebServer/index.html b/Client/WebServer/index.html index 7189ebe1f..072714379 100644 --- a/Client/WebServer/index.html +++ b/Client/WebServer/index.html @@ -56,7 +56,7 @@ onresize="onResize()">

The UI is loading...

-

Superalgos is forever free and open-source, and it's +

Superalgos is open source and free, for everyone, forever, and it's relentlessly improving thanks to the involvement of contributors:

Luis Fernando Molina, Julian Molina, Andreja Cobeljic, Matías Benitez, Ira Miller, Eduardo Remis, Jeff Braun, rico4dev, 9808us, Barry Low, Nikola Bjelogrlic, Hirajin Koizuko, Francisco J. Santillán, Norman, @@ -203,4 +203,4 @@ - \ No newline at end of file + diff --git a/Client/httpInterface.js b/Client/httpInterface.js index fc78aada2..7eb1064bf 100644 --- a/Client/httpInterface.js +++ b/Client/httpInterface.js @@ -257,6 +257,9 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE webhookMessages = [] } + console.log('[INFO] httpInterface -> Webhook -> Fetch-Messages -> Exchange-Market = ' + exchange + '-' + market) + console.log('[INFO] httpInterface -> Webhook -> Fetch-Messages -> Messeges Fetched by Webhooks Sensor Bot = ' + webhookMessages.length) + respondWithContent(JSON.stringify(webhookMessages), httpResponse) webhookMessages = [] @@ -299,6 +302,9 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE webhookMessages.push([timestamp, source, messageReceived]) webhook.set(key, webhookMessages) + console.log('[INFO] httpInterface -> Webhook -> New-Message -> Exchange-Market = ' + exchange + '-' + market) + console.log('[INFO] httpInterface -> Webhook -> New-Message -> messageReceived = ' + messageReceived) + console.log('[INFO] httpInterface -> Webhook -> New-Message -> Messeges waiting to be Fetched by Webhooks Sensor Bot = ' + webhookMessages.length) respondWithContent(JSON.stringify(global.DEFAULT_OK_RESPONSE), httpResponse) } break diff --git a/Docker/Dockerfile b/Docker/Dockerfile new file mode 100644 index 000000000..b9c972507 --- /dev/null +++ b/Docker/Dockerfile @@ -0,0 +1,9 @@ +FROM node:15-alpine +WORKDIR /app +COPY . . +RUN adduser --disabled-password --no-create-home superalgos +RUN chown -R superalgos:superalgos /app +USER superalgos +EXPOSE 34248 +EXPOSE 18041 +ENTRYPOINT ["node", "run", "noBrowser"] diff --git a/Docker/docker-compose.yml b/Docker/docker-compose.yml new file mode 100644 index 000000000..a1f3b17bf --- /dev/null +++ b/Docker/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3" +services: + superalgos: + build: + context: .. + dockerfile: ./Docker/Dockerfile + image: superalgos + command: ["minMemo"] + ports: + - '34248:34248' + - '18041:18041' + volumes: + - ../Data-Storage:/app/Data-Storage + - ../Log-Files:/app/Log-Files + - ../My-Workspaces:/app/My-Workspaces + restart: on-failure diff --git a/Projects/Superalgos/GIFs/Docs/design-space/Thumbs.db b/Projects/Superalgos/GIFs/Docs/design-space/Thumbs.db index e92d7696e..322d973b9 100644 Binary files a/Projects/Superalgos/GIFs/Docs/design-space/Thumbs.db and b/Projects/Superalgos/GIFs/Docs/design-space/Thumbs.db differ diff --git a/Projects/Superalgos/GIFs/Docs/design-space/backups-01.gif b/Projects/Superalgos/GIFs/Docs/design-space/backups-01.gif index bdae841ea..4fdc6ea29 100644 Binary files a/Projects/Superalgos/GIFs/Docs/design-space/backups-01.gif and b/Projects/Superalgos/GIFs/Docs/design-space/backups-01.gif differ diff --git a/Projects/Superalgos/GIFs/Docs/design-space/backups-02.gif b/Projects/Superalgos/GIFs/Docs/design-space/backups-02.gif index bca3454f0..55786fadd 100644 Binary files a/Projects/Superalgos/GIFs/Docs/design-space/backups-02.gif and b/Projects/Superalgos/GIFs/Docs/design-space/backups-02.gif differ diff --git a/Projects/Superalgos/GIFs/Docs/design-space/backups-03.gif b/Projects/Superalgos/GIFs/Docs/design-space/backups-03.gif index af385d904..5cb568f06 100644 Binary files a/Projects/Superalgos/GIFs/Docs/design-space/backups-03.gif and b/Projects/Superalgos/GIFs/Docs/design-space/backups-03.gif differ diff --git a/Projects/Superalgos/GIFs/Docs/design-space/clones-01.gif b/Projects/Superalgos/GIFs/Docs/design-space/clones-01.gif index 2bc905a1f..4a5c56c3c 100644 Binary files a/Projects/Superalgos/GIFs/Docs/design-space/clones-01.gif and b/Projects/Superalgos/GIFs/Docs/design-space/clones-01.gif differ diff --git a/Projects/Superalgos/GIFs/Docs/design-space/clones-02.gif b/Projects/Superalgos/GIFs/Docs/design-space/clones-02.gif index e963d51fe..9d2c71826 100644 Binary files a/Projects/Superalgos/GIFs/Docs/design-space/clones-02.gif and b/Projects/Superalgos/GIFs/Docs/design-space/clones-02.gif differ diff --git a/Projects/Superalgos/GIFs/Docs/design-space/shapes-node-references.gif b/Projects/Superalgos/GIFs/Docs/design-space/shapes-node-references.gif new file mode 100644 index 000000000..36e096b04 Binary files /dev/null and b/Projects/Superalgos/GIFs/Docs/design-space/shapes-node-references.gif differ diff --git a/Projects/Superalgos/Icons-SVG-Sources/exchanges/luno.svg b/Projects/Superalgos/Icons-SVG-Sources/exchanges/luno.svg new file mode 100644 index 000000000..e8b92bca2 --- /dev/null +++ b/Projects/Superalgos/Icons-SVG-Sources/exchanges/luno.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/Superalgos/Icons-SVG-Sources/flags/ZA.svg b/Projects/Superalgos/Icons-SVG-Sources/flags/ZA.svg new file mode 100644 index 000000000..fabc3234e --- /dev/null +++ b/Projects/Superalgos/Icons-SVG-Sources/flags/ZA.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/Projects/Superalgos/Icons/Thumbs.db b/Projects/Superalgos/Icons/Thumbs.db index 21a90a9b7..9d05c308e 100644 Binary files a/Projects/Superalgos/Icons/Thumbs.db and b/Projects/Superalgos/Icons/Thumbs.db differ diff --git a/Projects/Superalgos/Icons/ZA.png b/Projects/Superalgos/Icons/ZA.png new file mode 100644 index 000000000..87a7276e2 Binary files /dev/null and b/Projects/Superalgos/Icons/ZA.png differ diff --git a/Projects/Superalgos/Icons/luno.png b/Projects/Superalgos/Icons/luno.png new file mode 100644 index 000000000..346de0f70 Binary files /dev/null and b/Projects/Superalgos/Icons/luno.png differ diff --git a/Projects/Superalgos/Icons/zar.png b/Projects/Superalgos/Icons/zar.png new file mode 100644 index 000000000..03452a56b Binary files /dev/null and b/Projects/Superalgos/Icons/zar.png differ diff --git a/Projects/Superalgos/PNGs/Docs/charts/Thumbs.db b/Projects/Superalgos/PNGs/Docs/charts/Thumbs.db index 1981778b1..623ea54c9 100644 Binary files a/Projects/Superalgos/PNGs/Docs/charts/Thumbs.db and b/Projects/Superalgos/PNGs/Docs/charts/Thumbs.db differ diff --git a/Projects/Superalgos/Plugins/Data-Mines/Omega.json b/Projects/Superalgos/Plugins/Data-Mines/Omega.json new file mode 100644 index 000000000..0ce7c2d8e --- /dev/null +++ b/Projects/Superalgos/Plugins/Data-Mines/Omega.json @@ -0,0 +1 @@ +{"type":"Data Mine","name":"Omega","config":"{\n \"codeName\": \"Omega\"\n}","project":"Superalgos","sensorBots":[],"indicatorBots":[{"type":"Indicator Bot","name":"ARPS Fast","config":"{\n \"codeName\": \"ARPS-Fast\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market ARPS Fast","project":"Superalgos","id":"d3431f91-842e-459b-b969-e93269ab06ee","savedPayload":{"position":{"x":17451.72948123781,"y":40729.60591487127},"targetPosition":{"x":17509.963766385878,"y":40946.93922578631},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5132afea-630c-455f-be7c-8d94469a239d"}}}],"outputDatasetFolders":[],"id":"81ac5c2c-7766-44ed-8e84-94b42ffbf7ab","savedPayload":{"position":{"x":17509.963766385878,"y":40946.93922578631},"targetPosition":{"x":17568.198051533946,"y":41164.27253670135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"ARPS Fast Multi-Period-Market","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"dc491dd3-55ba-40ac-8f8e-0dd6d8e8e877","savedPayload":{"position":{"x":17570.18233668201,"y":40849.511367860556},"targetPosition":{"x":17626.43233668201,"y":40946.93922578631},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"5a92a4fb-51ab-4ac6-9e6c-834767b542b4"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"95097e44-2b3c-4368-84ad-73f5d6ca1d89","savedPayload":{"position":{"x":17655.549479256046,"y":40838.27257032879},"targetPosition":{"x":17626.43233668201,"y":40946.93922578631},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"0538007e-1eb0-4208-b848-4f7ff62588fa","savedPayload":{"position":{"x":17723.86019460776,"y":40890.68922578631},"targetPosition":{"x":17626.43233668201,"y":40946.93922578631},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"84ef19f0-4c0b-4cec-844c-e4b7b1758f64","savedPayload":{"position":{"x":17626.43233668201,"y":40946.93922578631},"targetPosition":{"x":17568.198051533946,"y":41164.27253670135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"5a92a4fb-51ab-4ac6-9e6c-834767b542b4","savedPayload":{"position":{"x":17886.39610306789,"y":40846.0744851674},"targetPosition":{"x":17568.198051533946,"y":41164.27253670135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"301b012f-4e33-4549-89c3-90bf2f992458","savedPayload":{"position":{"x":17785.531362448986,"y":41106.038251553284},"targetPosition":{"x":17568.198051533946,"y":41164.27253670135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"e226b09c-b34e-493e-a9cb-c6562faa8ad2","savedPayload":{"position":{"x":17785.531362448986,"y":41222.50682184941},"targetPosition":{"x":17568.198051533946,"y":41164.27253670135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e0c56f6f-d2dd-4d09-bd32-98e75221d015","savedPayload":{"position":{"x":15187.198051533946,"y":41176.27253670135},"targetPosition":{"x":14869,"y":41494.470588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily ARPS Fast","project":"Superalgos","id":"c2993196-c4fb-4804-99b7-bf15c2f9e899","savedPayload":{"position":{"x":18150,"y":40703.047724829295},"targetPosition":{"x":17925,"y":41092.759156532295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"82f018e1-8fbd-4f93-b708-7bced5b23671"}}}],"outputDatasetFolders":[],"id":"d19d52df-3197-47d4-9f1d-c58b6fda2a87","savedPayload":{"position":{"x":17925,"y":41092.759156532295},"targetPosition":{"x":17700,"y":41482.470588235294},"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":"ARPS Fast Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"60ec7290-4564-4609-93f2-046e7adefd51","savedPayload":{"position":{"x":18334.79899745976,"y":40880.068832659854},"targetPosition":{"x":18089.711431703,"y":41257.470588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"46093d66-daaa-4f01-b9e8-2c8001878a4e"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"0f7886f9-2cb3-403a-a71a-0620123d69e4","savedPayload":{"position":{"x":18439.427114358634,"y":40974.276412262865},"targetPosition":{"x":18089.711431703,"y":41257.470588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{ \n\"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"fca6d255-88bf-43e1-947c-8b52cf9c8410","savedPayload":{"position":{"x":18509.822623626736,"y":41096.20501093991},"targetPosition":{"x":18089.711431703,"y":41257.470588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"5555532e-03cc-4eb3-a922-b175291abe9c","savedPayload":{"position":{"x":18539.094722342554,"y":41233.91940792597},"targetPosition":{"x":18089.711431703,"y":41257.470588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"2eb87964-42f6-472f-9f82-ae7ce3cc175b","savedPayload":{"position":{"x":18089.711431703,"y":41257.470588235294},"targetPosition":{"x":17700,"y":41482.470588235294},"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":"46093d66-daaa-4f01-b9e8-2c8001878a4e","savedPayload":{"position":{"x":18150,"y":41482.470588235294},"targetPosition":{"x":17700,"y":41482.470588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"df3b3c25-507f-43b2-b620-c1163cdbbf99","savedPayload":{"position":{"x":17894.8557158515,"y":41594.970588235294},"targetPosition":{"x":17700,"y":41482.470588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"63452d0d-1cf4-4bc8-9f8e-e42ddc4da4c7","savedPayload":{"position":{"x":17812.5,"y":41677.32630408679},"targetPosition":{"x":17700,"y":41482.470588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e83d3882-522d-47ee-a853-9fd48c52a962","savedPayload":{"position":{"x":15319,"y":41494.470588235294},"targetPosition":{"x":14869,"y":41494.470588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"ARPS Fast","config":"{\n \"codeName\": \"fastARPS\",\n \"singularVariableName\": \"fastARPS\",\n \"pluralVariableName\": \"fastARPSs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-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/@Period\",\n \"fileName\": \"Data.json\"\n}","project":"Superalgos","id":"5132afea-630c-455f-be7c-8d94469a239d","savedPayload":{"position":{"x":15377.438536534504,"y":41659.67228307919},"targetPosition":{"x":15081.132034355964,"y":41706.60262259126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-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/@Period/@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}","project":"Superalgos","id":"82f018e1-8fbd-4f93-b708-7bced5b23671","savedPayload":{"position":{"x":15348.433991612474,"y":41842.79977251312},"targetPosition":{"x":15081.132034355964,"y":41706.60262259126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"if (isNaN(record.current.begin))\n{record.current.begin = 0}\nelse {record.current.begin}","project":"Superalgos","id":"6256f160-7706-4ff2-ae9a-3cd8d266fddf","savedPayload":{"position":{"x":18327.13933855677,"y":42135.34585808014},"targetPosition":{"x":18030.832836378235,"y":42182.276197592204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"333362de-b155-4287-90ca-f1d19e5de3ca","savedPayload":{"position":{"x":18030.832836378235,"y":42182.276197592204},"targetPosition":{"x":17734.52633419969,"y":42229.20653710428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"if (isNaN(record.current.end))\n{record.current.end = 0}\nelse {record.current.end}","project":"Superalgos","id":"c28a92c4-3eb2-41d2-8e27-61293dad8ed8","savedPayload":{"position":{"x":18327.13933855677,"y":42323.06721612842},"targetPosition":{"x":18030.832836378235,"y":42276.13687661635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1b695741-ce14-4efb-af70-61fe74d65089","savedPayload":{"position":{"x":18030.832836378235,"y":42276.13687661635},"targetPosition":{"x":17734.52633419969,"y":42229.20653710428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate ARPS","config":"{\n \"codeName\": \"ARPS\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"if (isNaN(variable.ARPS))\n{variable.ARPS = 0}\nelse {variable.ARPS}","project":"Superalgos","id":"fb21f59f-0eec-4b84-940c-c4eb222e75d9","savedPayload":{"position":{"x":18135.479270084455,"y":42433.50226198707},"targetPosition":{"x":18001.8282914562,"y":42365.40368702614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8b4fd778-668a-4e84-84f0-c3ef86143c97","savedPayload":{"position":{"x":18001.8282914562,"y":42365.40368702614},"targetPosition":{"x":17734.52633419969,"y":42229.20653710428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate Aps Bull","config":"{\n \"codeName\": \"apsBull\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"if (isNaN(variable.apsBull))\n{variable.apsBull = 0}\nelse {variable.apsBull}","project":"Superalgos","id":"f044a4b5-54d6-4fec-a35f-a384a6a8b601","savedPayload":{"position":{"x":18052.724385733636,"y":42547.40458863822},"targetPosition":{"x":17946.658368555654,"y":42441.33857146024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9f7c4c1a-1062-49e5-a37c-d8cff8b4de15","savedPayload":{"position":{"x":17946.658368555654,"y":42441.33857146024},"targetPosition":{"x":17734.52633419969,"y":42229.20653710428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate Aps Bear","config":"{\n \"codeName\": \"apsBear\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"if (isNaN(variable.apsBear))\n{variable.apsBear = 0}\nelse {variable.apsBear}","project":"Superalgos","id":"7835dee1-825c-4467-8cf6-180ab71f04f2","savedPayload":{"position":{"x":17938.822059082486,"y":42630.15947298904},"targetPosition":{"x":17870.723484121554,"y":42496.50849436079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"10554c37-8b71-46a7-a58c-fa70b517a45d","savedPayload":{"position":{"x":17870.723484121554,"y":42496.50849436079},"targetPosition":{"x":17734.52633419969,"y":42229.20653710428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate SMA","config":"{\n \"codeName\": \"SMA\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"if (isNaN(variable.SMA))\n{variable.SMA = 0}\nelse {variable.SMA}","project":"Superalgos","id":"0cbfa484-337e-47eb-98b3-209a5683e3d4","savedPayload":{"position":{"x":17804.921843467797,"y":42673.666290372086},"targetPosition":{"x":17781.456673711764,"y":42525.513039282814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cd7c2e47-4b7e-4cee-8967-820c040f8a4d","savedPayload":{"position":{"x":17781.456673711764,"y":42525.513039282814},"targetPosition":{"x":17734.52633419969,"y":42229.20653710428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage ARPS","config":"{\n \"codeName\": \"percentageARPS\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Record Formula","code":"if (isNaN(variable.percentageARPS))\n{variable.percentageARPS = 0}\nelse {variable.percentageARPS}","project":"Superalgos","id":"01c1be70-508f-4533-af13-3654530e3eeb","savedPayload":{"position":{"x":17664.130824931588,"y":42673.666290372086},"targetPosition":{"x":17687.595994687625,"y":42525.513039282814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3c947876-5900-4552-8e95-aa0f77871389","savedPayload":{"position":{"x":17687.595994687625,"y":42525.513039282814},"targetPosition":{"x":17734.52633419969,"y":42229.20653710428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Aps Bull","config":"{\n \"codeName\": \"percentageApsBull\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Record Formula","code":"if (isNaN(variable.percentageApsBull))\n{variable.percentageApsBull = 0}\nelse {variable.percentageApsBull}","project":"Superalgos","id":"01086358-6fdd-462c-9a3b-89edca234dc1","savedPayload":{"position":{"x":17530.230609316895,"y":42630.15947298904},"targetPosition":{"x":17598.329184277827,"y":42496.50849436079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c2095ffb-e643-4a6c-91f0-ccf0e4f20982","savedPayload":{"position":{"x":17598.329184277827,"y":42496.50849436079},"targetPosition":{"x":17734.52633419969,"y":42229.20653710428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Aps Bear","config":"{\n \"codeName\": \"percentageApsBear\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Record Formula","code":"if (isNaN(variable.percentageApsBear))\n{variable.percentageApsBear = 0}\nelse {variable.percentageApsBear}","project":"Superalgos","id":"6ce6dd46-1296-4b13-afab-84d1823351b8","savedPayload":{"position":{"x":17416.328282665745,"y":42547.40458863822},"targetPosition":{"x":17522.394299843727,"y":42441.33857146024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7a6db1af-b519-4674-a850-10f9e64358ab","savedPayload":{"position":{"x":17522.394299843727,"y":42441.33857146024},"targetPosition":{"x":17734.52633419969,"y":42229.20653710428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"36353357-8bb9-44e2-80ae-19eec60b1516","savedPayload":{"position":{"x":15353.526334199692,"y":42241.20653710428},"targetPosition":{"x":15081.132034355964,"y":41706.60262259126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"// Loop Code\n\nlet nCandles = 3 // Change here number of candles to use\n\nlet candle = {\n open: record.current.open,\n close: record.current.close,\n min: record.current.min,\n max: record.current.max,\n begin: record.current.begin,\n end: record.current.end\n} \n\n// Build arrays\n\nvariable.lastNCandlesARPS.push(candle.max - candle.min)\nvariable.lastNCandlesSMA.push(candle.close)\nvariable.lastNCandlesApsBull.push(candle.max - candle.open)\nvariable.lastNCandlesApsBear.push (candle.open - candle.min)\n\n// console.log(variable.lastNCandlesARPS)\n\n// Keep arrays the correct size of nCandles\n\nif (variable.lastNCandlesARPS.length > nCandles) {\n variable.lastNCandlesARPS.splice(0, 1)\n}\n\nif (variable.lastNCandlesSMA.length > nCandles) {\n variable.lastNCandlesSMA.splice(0, 1)\n}\n\nif (variable.lastNCandlesApsBull.length > nCandles) {\n variable.lastNCandlesApsBull.splice(0, 1)\n}\n\nif (variable.lastNCandlesApsBear.length > nCandles) {\n variable.lastNCandlesApsBear.splice(0, 1)\n}\n\n\n// Call the functions\nvariable.smaARPS = calculateSMA(variable.lastNCandlesARPS, nCandles)\nvariable.smaSMA = calculateSMA(variable.lastNCandlesSMA, nCandles)\nvariable.smaApsBull = calculateSMA(variable.lastNCandlesApsBull, nCandles)\nvariable.smaApsBear = calculateSMA(variable.lastNCandlesApsBear, nCandles)\n\n// Build SMA function\n\nfunction calculateSMA(src, periods) { \n // Check we have enough values to make the calc\n if (src.length < periods) { return 0 }\n \n let sum = 0 // Initialize sum variable\n for (let i = src.length - periods; i < src.length; i++) {\n sum = sum + src[i]\n }\n let sma = sum / periods\n return sma\n}\n\n// Calc final ARPS ApsBull ApsBear SMA as Rate\n\nvariable.ARPS = variable.smaARPS\n\n\nif (variable.smaApsBull > variable.smaApsBear) \n{\n\tvariable.apsBull = variable.smaSMA + ((variable.smaApsBull / variable.smaARPS) * (variable.smaApsBull - variable.smaApsBear) * 2)\n}\nelse \n{\n\tvariable.apsBull = variable.smaSMA - ((variable.smaApsBull / variable.smaARPS) * (variable.smaApsBear - variable.smaApsBull) * 2)\n}\n\nif (variable.smaApsBear > variable.smaApsBull) \n{\n\tvariable.apsBear = variable.smaSMA + ((variable.smaApsBear / variable.smaARPS) * (variable.smaApsBear - variable.smaApsBull) * 2)\n}\nelse \n{\n\tvariable.apsBear = variable.smaSMA - ((variable.smaApsBear / variable.smaARPS) * (variable.smaApsBull - variable.smaApsBear) * 2)\n}\n\nvariable.SMA = variable.smaSMA\n\n\n// Calc final ARPS ApsBull ApsBear as %\n\nvariable.percentageARPS = (variable.smaARPS/candle.close) *100\nvariable.percentageApsBull = (variable.smaApsBull/variable.smaARPS) *100\nvariable.percentageApsBear = (variable.smaApsBear/variable.smaARPS) *100\n\n\n// End of Code :-)","project":"Superalgos","id":"ad10cba8-9086-4846-af86-00082eb86754","savedPayload":{"position":{"x":15060.333810660808,"y":42251.539598611875},"targetPosition":{"x":15049.880964334043,"y":42152.087409075044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b749a547-69ea-47fb-837f-1190a5ec2ebd","savedPayload":{"position":{"x":15049.880964334043,"y":42152.087409075044},"targetPosition":{"x":15034.201694843894,"y":42002.9091247698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"/* Initialization Code */\n\n// Build 4 arrays \n\nvariable.lastNCandlesARPS = []\nvariable.lastNCandlesSMA = []\nvariable.lastNCandlesApsBull = [] \nvariable.lastNCandlesApsBear = [] \n","project":"Superalgos","id":"955d2caa-e4d0-4e19-bf62-1d48f44c5a69","savedPayload":{"position":{"x":14932.517534074945,"y":42231.295489180455},"targetPosition":{"x":14973.191198382525,"y":42139.94094341619},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b4cb1e91-d42e-4165-8598-73874f217df5","savedPayload":{"position":{"x":14973.191198382525,"y":42139.94094341619},"targetPosition":{"x":15034.201694843894,"y":42002.9091247698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"32fc144f-fcf7-4e27-a4ce-9964a6240653","savedPayload":{"position":{"x":15034.201694843894,"y":42002.9091247698},"targetPosition":{"x":15081.132034355964,"y":41706.60262259126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fe7a8b58-37c4-4e51-a037-6eedcd8e9dfb","savedPayload":{"position":{"x":15081.132034355964,"y":41706.60262259126},"targetPosition":{"x":14869,"y":41494.470588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"ARPS","id":"2675db9e-a697-4f84-a252-8c27ed423e24"}}}],"id":"892f3bfe-6b06-491b-994a-825c96bf0e72","savedPayload":{"position":{"x":14869,"y":41494.470588235294},"targetPosition":{"x":14569,"y":41494.470588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Chaikin Oscillator","config":"{\n \"codeName\": \"Chaikin-Oscillator\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Chaikin Oscillator Data Procedure","project":"Superalgos","id":"ba931d51-1350-4df7-a2d5-2eff15cf844a","savedPayload":{"position":{"x":15417.430428875681,"y":41180.299462731185},"targetPosition":{"x":15336.79764022799,"y":41390.35505869306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ec6522f5-9165-4607-87a6-ea63e2f4d20e"}}}],"outputDatasetFolders":[],"id":"28505aa2-26a8-479c-bba7-782ed4066ca0","savedPayload":{"position":{"x":15336.79764022799,"y":41390.35505869306},"targetPosition":{"x":15256.164851580297,"y":41600.41065465493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Chaikin Oscillator Multi-Period-Market","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"ad424254-a304-41bb-9ba9-b8267455e0d2","savedPayload":{"position":{"x":15697.396278927989,"y":41111.66875071292},"targetPosition":{"x":15605.880534235934,"y":41317.2164786825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"72244463-734d-4495-9eab-9ed63818963d"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"ee83aebb-ffed-415b-91c1-0f6fa3f79dfd","savedPayload":{"position":{"x":15756.434920666677,"y":41150.008892950085},"targetPosition":{"x":15605.880534235934,"y":41317.2164786825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"2d08d62e-f0a9-45b4-b148-6fe217fdf5c6","savedPayload":{"position":{"x":15800.736250087433,"y":41204.7164786825},"targetPosition":{"x":15605.880534235934,"y":41317.2164786825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Market","project":"Superalgos","id":"9b1e61f2-fd52-4ee2-9c57-ede4bbe084de","savedPayload":{"position":{"x":15825.96374440104,"y":41270.436348248506},"targetPosition":{"x":15605.880534235934,"y":41317.2164786825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1"}}}],"dataMineDataDependencies":[],"id":"775e3d6e-71ed-4b61-a632-a80aefddbd49","savedPayload":{"position":{"x":15605.880534235934,"y":41317.2164786825},"targetPosition":{"x":15256.164851580297,"y":41600.41065465493},"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":"72244463-734d-4495-9eab-9ed63818963d","savedPayload":{"position":{"x":15700.62460484811,"y":41530.015145386824},"targetPosition":{"x":15256.164851580297,"y":41600.41065465493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"11d0bcf4-9c53-428c-9fff-feb3f72c4ad1","savedPayload":{"position":{"x":15466.220447542168,"y":41681.043443302624},"targetPosition":{"x":15256.164851580297,"y":41600.41065465493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"ff07193a-4761-45da-a5b0-d4a0f65d5dbb","savedPayload":{"position":{"x":15397.76193956651,"y":41775.268495982746},"targetPosition":{"x":15256.164851580297,"y":41600.41065465493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7abd43da-a0dc-477c-b6eb-9e63b21e5262","savedPayload":{"position":{"x":15256.164851580297,"y":41600.41065465493},"targetPosition":{"x":14811.705098312485,"y":41670.80616392304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Chaikin Oscillator Data Procedure","project":"Superalgos","id":"d3a96bb9-4c2d-4bbd-ada0-1c8bb456fffe","savedPayload":{"position":{"x":15997.953657659551,"y":41569.246548686424},"targetPosition":{"x":15586.85820172038,"y":41752.27803807054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"bcb93023-ae74-48f0-a26b-2f2d57c57740"}}}],"outputDatasetFolders":[],"id":"4858b9f4-4354-4e9a-9581-da02aa2619e1","savedPayload":{"position":{"x":15586.85820172038,"y":41752.27803807054},"targetPosition":{"x":15175.76274578121,"y":41935.30952745465},"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":"Chaikin Oscillator Multi-Period-Daily","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"973153da-c1d7-4643-a367-21c40ce30ebd","savedPayload":{"position":{"x":16034.393054636104,"y":41799.31584654098},"targetPosition":{"x":15623.297598696934,"y":41982.34733592509},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"4a5ee296-a995-48fe-b8ac-1b7e54cbdcdd"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"8327acb7-ef19-4e57-b44d-2871da44d621","savedPayload":{"position":{"x":16067.757351964747,"y":41911.95182665699},"targetPosition":{"x":15623.297598696934,"y":41982.34733592509},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"209f3ffc-3c8b-4e5f-91ce-80e8c5f41bf1","savedPayload":{"position":{"x":16070.832451612658,"y":42029.385144395535},"targetPosition":{"x":15623.297598696934,"y":41982.34733592509},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"93f3541a-f954-4980-bcc8-4e0ae868f5ca","savedPayload":{"position":{"x":16043.408790620675,"y":42143.61291322048},"targetPosition":{"x":15623.297598696934,"y":41982.34733592509},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Daily","project":"Superalgos","id":"65ae3b73-5a3e-411e-ac6c-332f0f8a36a1","savedPayload":{"position":{"x":15987.35524616566,"y":42246.85069945671},"targetPosition":{"x":15623.297598696934,"y":41982.34733592509},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2e683057-f911-4105-bc77-16f2706d1915"}}}],"dataMineDataDependencies":[],"id":"927e58b1-c870-45e0-b256-eb3fb22d9302","savedPayload":{"position":{"x":15623.297598696934,"y":41982.34733592509},"targetPosition":{"x":15175.76274578121,"y":41935.30952745465},"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":"4a5ee296-a995-48fe-b8ac-1b7e54cbdcdd","savedPayload":{"position":{"x":15539.820393249936,"y":42199.812890986264},"targetPosition":{"x":15175.76274578121,"y":41935.30952745465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"5f26534d-432d-4be2-9aa8-0aa452dc95c6","savedPayload":{"position":{"x":15267.278490473265,"y":42140.857255424235},"targetPosition":{"x":15175.76274578121,"y":41935.30952745465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"11ee3e01-af54-40ed-b3ac-fde2d322cd7e","savedPayload":{"position":{"x":15152.24384154599,"y":42159.07695391251},"targetPosition":{"x":15175.76274578121,"y":41935.30952745465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e60b83a0-fb61-4bf2-87dc-9a3c444153b9","savedPayload":{"position":{"x":15175.76274578121,"y":41935.30952745465},"targetPosition":{"x":14811.705098312485,"y":41670.80616392304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Chaikin Oscillator Data Procedure","config":"{\n \"codeName\": \"ChaikinOscillator\",\n \"singularVariableName\": \"ChaikinOscillator\",\n \"pluralVariableName\": \"ChaikinOscillators\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-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/@Period\",\n \"fileName\": \"Data.json\"\n}","project":"Superalgos","id":"ec6522f5-9165-4607-87a6-ea63e2f4d20e","savedPayload":{"position":{"x":15125.937395081064,"y":42103.309816023444},"targetPosition":{"x":14858.635437824554,"y":41967.11266610158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-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/@Period/@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}","project":"Superalgos","id":"bcb93023-ae74-48f0-a26b-2f2d57c57740","savedPayload":{"position":{"x":14994.832587746418,"y":42234.41462335809},"targetPosition":{"x":14858.635437824554,"y":41967.11266610158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"if (isNaN(record.current.begin))\n{record.current.begin = 0}\nelse {record.current.begin}","project":"Superalgos","id":"59d6bee5-111c-4309-8070-ebe49c60285a","savedPayload":{"position":{"x":15231.062335674598,"y":42937.31790508857},"targetPosition":{"x":14997.918547237507,"y":42748.521787773614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4a56532a-32af-4c09-861a-7b0ec19aa90f","savedPayload":{"position":{"x":14997.918547237507,"y":42748.521787773614},"targetPosition":{"x":14764.774758800415,"y":42559.72567045866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"if (isNaN(record.current.end))\n{record.current.end = 0}\nelse {record.current.end}","project":"Superalgos","id":"cac1f7d5-bba0-487e-8a88-96d241085815","savedPayload":{"position":{"x":14979.795528527595,"y":43119.87392635699},"targetPosition":{"x":14872.285143664005,"y":42839.799798407825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0d2e4662-fbdf-490b-8553-b069cf732f62","savedPayload":{"position":{"x":14872.285143664005,"y":42839.799798407825},"targetPosition":{"x":14764.774758800415,"y":42559.72567045866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate Chaikin Oscillator","config":"{\n \"codeName\": \"chaikinOscillator\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"if ( isNaN(variable.chaikinOscillator ) )\n{ variable.chaikinOscillator = 0 }\nelse\n{ variable.chaikinOscillator }","project":"Superalgos","id":"c0570b4b-c935-4511-80a0-965874de3aab","savedPayload":{"position":{"x":14694.37924953231,"y":43004.18542372648},"targetPosition":{"x":14717.844419288345,"y":42856.032172637206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f07b74fd-4beb-409b-99e1-ed51c746bc63","savedPayload":{"position":{"x":14717.844419288345,"y":42856.032172637206},"targetPosition":{"x":14764.774758800415,"y":42559.72567045866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Zero Line","config":"{\n \"codeName\": \"zeroLine\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"0","project":"Superalgos","id":"c37d5f0d-81f7-46bc-9693-9d854f2d4190","savedPayload":{"position":{"x":14481.580582827988,"y":42909.4413531143},"targetPosition":{"x":14575.978641485464,"y":42792.86945889575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b5d9bc2b-386e-4670-abee-e828107a5015","savedPayload":{"position":{"x":14575.978641485464,"y":42792.86945889575},"targetPosition":{"x":14764.774758800415,"y":42559.72567045866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ADL","config":"{\n \"codeName\": \"ADL\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Record Formula","code":"if (isNaN(variable.accDistLine))\n{ variable.accDistLind = 0 }\nelse\n{ variable.accDistLine }","project":"Superalgos","id":"f617da69-165b-4875-88d6-0edfa8769d2f","savedPayload":{"position":{"x":14344.663566876674,"y":42720.99124775405},"targetPosition":{"x":14484.700630851254,"y":42667.23605532225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c105d752-f310-4917-ac54-65ff02021576","savedPayload":{"position":{"x":14484.700630851254,"y":42667.23605532225},"targetPosition":{"x":14764.774758800415,"y":42559.72567045866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e5529d72-8e8d-4a32-b700-13bdb3ab4dd0","savedPayload":{"position":{"x":14764.774758800415,"y":42559.72567045866},"targetPosition":{"x":14858.635437824554,"y":41967.11266610158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"/* Loop Code */\n\n/* Chaikin Oscillator\n\nKEY TAKEAWAYS\n- The Chaikin Indicator applies MACD to the accumulation-distribution line rather than closing price.\n- A cross above the accumulation-distribution line indicates that market players are accumulating shares, securities or contracts, which is typically bullish.\n\n1. Money Flow Multiplier = [(Close - Low) - (High - Close)] / (High - Low) \n2. Money Flow Volume = Money Flow Multiplier x Volume for the Period\n3. ADL = Previous ADL + Current Period's Money Flow Volume\n4. Chaikin Oscillator = ('fast'-period EMA of ADL) - ('slow'-period EMA of ADL) */\n\n\nlet fastPeriod = 5 // Change value to set 'fast' period (must be less than or equal to 'fast')\nlet slowPeriod = 17 // Change value to set 'slow' period (must be greater than or equal to 'slow')\n\nlet candle = record.current\nlet volume = getElement('volumes', candle)\n\n\n// Set varibles\nvariable.totalVolume = volume.buy + volume.sell\t\nvariable.moneyFlowMultiplier = ((candle.close - candle.min) - (candle.max - candle.close)) / (candle.max - candle.min) \nvariable.moneyFlowVolume = variable.moneyFlowMultiplier * variable.totalVolume \nvariable.currentADL = variable.totalVolume + variable.moneyFlowVolume\nvariable.savedADL.push(variable.currentADL) // Push the currentADL into an array to be able to use \"previous ADL\"\n\nif (variable.savedADL.length > 2) { // Make sure we only save the current and previous\n variable.savedADL.splice(0, 1)\n}\n\n// Calculating the 'accDistLine' using previous ADL value if it is defined, else current\nif (variable.savedADL[0] === 'undefined')\n{variable.accDistLine = variable.savedADL[1] + variable.moneyFlowVolume} // Calculating with Current ADL\nelse\n{variable.accDistLine = variable.savedADL[0] + variable.moneyFlowVolume} // Calculating with Previous ADL\n\n\n// Calculate fastEMA and slowEMA of ADL\nif(isNaN(variable.previousEmaFast))\n{variable.previousEmaFast = variable.accDistLine}\nelse\n{variable.previousEmaFast}\n\nvariable.fastEMA = calculateEMAs(fastPeriod, variable.accDistLine, variable.previousEmaFast)\nvariable.previousEmaFast = variable.fastEMA\n\nif(isNaN(variable.previousEmaSlow))\n{variable.previousEmaSlow = variable.accDistLine}\nelse\n{variable.previousEmaSlow}\nvariable.slowEMA = calculateEMAs(slowPeriod, variable.accDistLine, variable.previousEmaSlow)\nvariable.previousEmaSlow = variable.slowEMA\n\n\n// Create EMA function for 'fast' and 'slow' ADL\nfunction calculateEMAs(periods, adl, previousEMA) {\n let k = 2 / (periods + 1)\n return adl * k + previousEMA * (1-k)\n}\n\n// Calculate Chaikin Oscillator value\nvariable.chaikinOscillator = variable.fastEMA - variable.slowEMA\n\n/*\n// Printing values to console to check\nconsole.log(\"Volume: \", variable.totalVolume)\nconsole.log(\"MF x: \", variable.moneyFlowMultiplier)\nconsole.log(\"MF Vol: \", variable.moneyFlowVolume)\nconsole.log(\"Current ADL: \", variable.currentADL)\nconsole.log(\"AccDistLine: \", variable.accDistLine)\nconsole.log(\"Fast EMA: \", variable.fastEMA)\nconsole.log(\"Slow EMA: \", variable.slowEMA)\nconsole.log(\"Chaikin Oscillator: \", variable.chaikinOscillator)\n*/","project":"Superalgos","id":"c0132fa6-7f08-4457-9656-05bba93d9cca","savedPayload":{"position":{"x":14521.50340346859,"y":42395.751051403655},"targetPosition":{"x":14571.50340346859,"y":42309.14851102521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"01efe8a3-bfc2-43ee-b29e-a72c9fa7ab5f","savedPayload":{"position":{"x":14571.50340346859,"y":42309.14851102521},"targetPosition":{"x":14646.50340346859,"y":42179.244700457544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"/* Initialization Code */\n\n// Build arrays \n\nvariable.savedADL = []\n\n","project":"Superalgos","id":"6199432b-91d5-471d-b5e2-5cbbfeed340c","savedPayload":{"position":{"x":14429.99705252248,"y":42304.244700457544},"targetPosition":{"x":14516.599592900924,"y":42254.244700457544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2ea55eba-609e-4780-8333-7ca25058c8ab","savedPayload":{"position":{"x":14516.599592900924,"y":42254.244700457544},"targetPosition":{"x":14646.50340346859,"y":42179.244700457544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4be72b8f-5821-473b-9b38-26c665856101","savedPayload":{"position":{"x":14646.50340346859,"y":42179.244700457544},"targetPosition":{"x":14858.635437824554,"y":41967.11266610158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"14ad8763-cbf9-43e0-8132-16be260a8d2c","savedPayload":{"position":{"x":14858.635437824554,"y":41967.11266610158},"targetPosition":{"x":14811.705098312485,"y":41670.80616392304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Chaikin Oscillator","id":"653018cc-a18a-4370-a6c5-e0ad879b2c2f"}}}],"id":"627939de-3884-4de8-99a9-35d0e66fa2d4","savedPayload":{"position":{"x":14781.132034355964,"y":41706.60262259126},"targetPosition":{"x":14569,"y":41494.470588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"ARPS Slow","config":"{\n \"codeName\": \"ARPS-Slow\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Slow ARPS","project":"Superalgos","id":"03519cbc-2f6a-4ac2-9c28-e33e61384619","savedPayload":{"position":{"x":16874.72948123781,"y":41057.10591487127},"targetPosition":{"x":16932.963766385874,"y":41274.43922578631},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"c7403fbf-2ca8-41b4-8e24-a5ec34818127"}}}],"outputDatasetFolders":[],"id":"27246891-a94e-4a4e-9cb1-b7487c876f47","savedPayload":{"position":{"x":16932.963766385874,"y":41274.43922578631},"targetPosition":{"x":16991.198051533946,"y":41491.77253670135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"ARPS Slow Multi-Period-Market","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"76089903-5360-4ee6-ae07-dcc91ed96482","savedPayload":{"position":{"x":16993.18233668201,"y":41177.011367860556},"targetPosition":{"x":17049.43233668201,"y":41274.43922578631},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2b630c1d-86e7-4144-be9e-b7ba0ae8ecf6"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"50b106cc-4d03-499e-a5a3-e1aa4cd8215c","savedPayload":{"position":{"x":17078.549479256042,"y":41165.77257032879},"targetPosition":{"x":17049.43233668201,"y":41274.43922578631},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"d9a2dab2-c16a-4d07-9978-77e9bf72f5d2","savedPayload":{"position":{"x":17146.86019460776,"y":41218.18922578631},"targetPosition":{"x":17049.43233668201,"y":41274.43922578631},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"90f657aa-0f1f-43c2-ab2d-c91a6cfba4b6","savedPayload":{"position":{"x":17049.43233668201,"y":41274.43922578631},"targetPosition":{"x":16991.198051533946,"y":41491.77253670135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"2b630c1d-86e7-4144-be9e-b7ba0ae8ecf6","savedPayload":{"position":{"x":17309.39610306789,"y":41173.5744851674},"targetPosition":{"x":16991.198051533946,"y":41491.77253670135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"087388b9-9acb-40ac-b76e-23bf36e35f05","savedPayload":{"position":{"x":17208.531362448986,"y":41433.538251553284},"targetPosition":{"x":16991.198051533946,"y":41491.77253670135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"57d2e4a3-6ed0-4b57-a107-39438f91b0e9","savedPayload":{"position":{"x":17208.531362448986,"y":41550.00682184941},"targetPosition":{"x":16991.198051533946,"y":41491.77253670135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c4f909d9-665a-41ee-9dce-d8e75ea7a43f","savedPayload":{"position":{"x":14356.867965644036,"y":42156.60262259126},"targetPosition":{"x":14356.867965644036,"y":41706.60262259126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Slow ARPS","project":"Superalgos","id":"45e34e9d-ef1b-4273-a805-def2f0d4092f","savedPayload":{"position":{"x":17573,"y":41030.547724829295},"targetPosition":{"x":17348,"y":41420.259156532295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"4bff21d4-3de0-4e8e-9f63-b7792996247d"}}}],"outputDatasetFolders":[],"id":"d47a3468-9012-45ea-8c97-317d574f239b","savedPayload":{"position":{"x":17348,"y":41420.259156532295},"targetPosition":{"x":17123,"y":41809.970588235294},"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":"ARPS Slow Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"0ce21a09-c93a-499b-8367-f9abf9192022","savedPayload":{"position":{"x":17757.79899745976,"y":41207.568832659854},"targetPosition":{"x":17512.711431703,"y":41584.970588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a4e156b7-d673-49b0-81bf-6d3d503abd34"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"09887b9d-20ed-4069-b794-d0ad12ec4847","savedPayload":{"position":{"x":17862.42711435863,"y":41301.776412262865},"targetPosition":{"x":17512.711431703,"y":41584.970588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{ \n\"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"febb0ddf-d6b6-4930-9620-58e0033a3e14","savedPayload":{"position":{"x":17932.822623626736,"y":41423.70501093991},"targetPosition":{"x":17512.711431703,"y":41584.970588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"a9bcd7f0-525e-4eea-a2ad-0e6f987e5799","savedPayload":{"position":{"x":17962.094722342554,"y":41561.41940792597},"targetPosition":{"x":17512.711431703,"y":41584.970588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"d237a234-82ae-473d-9659-0433797141b0","savedPayload":{"position":{"x":17512.711431703,"y":41584.970588235294},"targetPosition":{"x":17123,"y":41809.970588235294},"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":"a4e156b7-d673-49b0-81bf-6d3d503abd34","savedPayload":{"position":{"x":17573,"y":41809.970588235294},"targetPosition":{"x":17123,"y":41809.970588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"c02c96bc-833b-4463-b774-a6753f47278c","savedPayload":{"position":{"x":17317.855715851496,"y":41922.470588235294},"targetPosition":{"x":17123,"y":41809.970588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"9087ca64-0068-4292-8d22-9228c58f34c5","savedPayload":{"position":{"x":17235.5,"y":42004.82630408679},"targetPosition":{"x":17123,"y":41809.970588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6d1b63a8-1ea2-47f3-8349-499c63f39446","savedPayload":{"position":{"x":14038.66991411009,"y":42024.8006741252},"targetPosition":{"x":14356.867965644036,"y":41706.60262259126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Slow ARPS","config":"{\n \"codeName\": \"slowARPS\",\n \"singularVariableName\": \"slowARPS\",\n \"pluralVariableName\": \"slowARPSs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-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/@Period\",\n \"fileName\": \"Data.json\"\n}","project":"Superalgos","id":"c7403fbf-2ca8-41b4-8e24-a5ec34818127","savedPayload":{"position":{"x":13880.532389956294,"y":41949.307720903744},"targetPosition":{"x":14056.867965644036,"y":41706.60262259126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-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/@Period/@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}","project":"Superalgos","id":"4bff21d4-3de0-4e8e-9f63-b7792996247d","savedPayload":{"position":{"x":13771.551010755491,"y":41799.307720903744},"targetPosition":{"x":14056.867965644036,"y":41706.60262259126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"if (isNaN(record.current.begin))\n{record.current.begin = 0}\nelse {record.current.begin}","project":"Superalgos","id":"1ab4b7a0-7c36-4ab7-8db3-1485543531b2","savedPayload":{"position":{"x":17750.13933855677,"y":42462.84585808014},"targetPosition":{"x":17453.832836378235,"y":42509.776197592204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"26848c50-95de-4b02-bc64-38b35ba53578","savedPayload":{"position":{"x":17453.832836378235,"y":42509.776197592204},"targetPosition":{"x":17157.52633419969,"y":42556.70653710428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"if (isNaN(record.current.end))\n{record.current.end = 0}\nelse {record.current.end}","project":"Superalgos","id":"a2f026df-7bfd-46a9-937e-2ebcf911b373","savedPayload":{"position":{"x":17750.13933855677,"y":42650.56721612842},"targetPosition":{"x":17453.832836378235,"y":42603.63687661635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b80933e3-e479-4d3c-a4ee-c5f81266839e","savedPayload":{"position":{"x":17453.832836378235,"y":42603.63687661635},"targetPosition":{"x":17157.52633419969,"y":42556.70653710428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate ARPS","config":"{\n \"codeName\": \"ARPS\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"if (isNaN(variable.ARPS))\n{variable.ARPS = 0}\nelse {variable.ARPS}","project":"Superalgos","id":"9a85c68f-55f6-4400-b541-e6fbef799189","savedPayload":{"position":{"x":17558.479270084455,"y":42761.00226198707},"targetPosition":{"x":17424.8282914562,"y":42692.90368702614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"864fb9fd-074e-47ff-8b46-741e984babad","savedPayload":{"position":{"x":17424.8282914562,"y":42692.90368702614},"targetPosition":{"x":17157.52633419969,"y":42556.70653710428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate Aps Bull","config":"{\n \"codeName\": \"apsBull\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"if (isNaN(variable.apsBull))\n{variable.apsBull = 0}\nelse {variable.apsBull}","project":"Superalgos","id":"6ebf0e39-e7e9-41d2-9419-58dd5037f95f","savedPayload":{"position":{"x":17475.724385733636,"y":42874.90458863822},"targetPosition":{"x":17369.658368555654,"y":42768.83857146024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"08b55166-37ee-4088-9878-8b8954315cee","savedPayload":{"position":{"x":17369.658368555654,"y":42768.83857146024},"targetPosition":{"x":17157.52633419969,"y":42556.70653710428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate Aps Bear","config":"{\n \"codeName\": \"apsBear\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"if (isNaN(variable.apsBear))\n{variable.apsBear = 0}\nelse {variable.apsBear}","project":"Superalgos","id":"9b6e5a56-c971-42c5-9eda-919e82fc653b","savedPayload":{"position":{"x":17361.822059082486,"y":42957.65947298904},"targetPosition":{"x":17293.723484121554,"y":42824.00849436079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2d5b640c-0bf8-4170-a216-d1a75e321225","savedPayload":{"position":{"x":17293.723484121554,"y":42824.00849436079},"targetPosition":{"x":17157.52633419969,"y":42556.70653710428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate SMA","config":"{\n \"codeName\": \"SMA\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"if (isNaN(variable.SMA))\n{variable.SMA = 0}\nelse {variable.SMA}","project":"Superalgos","id":"c4b17d80-7441-482b-b920-89d68f56553e","savedPayload":{"position":{"x":17227.921843467797,"y":43001.166290372086},"targetPosition":{"x":17204.456673711764,"y":42853.013039282814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7833873a-bac5-4646-87e8-c8c2ae5409a2","savedPayload":{"position":{"x":17204.456673711764,"y":42853.013039282814},"targetPosition":{"x":17157.52633419969,"y":42556.70653710428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage ARPS","config":"{\n \"codeName\": \"percentageARPS\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Record Formula","code":"if (isNaN(variable.percentageARPS))\n{variable.percentageARPS = 0}\nelse {variable.percentageARPS}","project":"Superalgos","id":"681f8933-bb6c-4311-92ff-215eb5a37f33","savedPayload":{"position":{"x":17087.130824931584,"y":43001.166290372086},"targetPosition":{"x":17110.595994687625,"y":42853.013039282814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9dcd16cf-c609-43b7-896f-3f5d7209ae7e","savedPayload":{"position":{"x":17110.595994687625,"y":42853.013039282814},"targetPosition":{"x":17157.52633419969,"y":42556.70653710428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Aps Bull","config":"{\n \"codeName\": \"percentageApsBull\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Record Formula","code":"if (isNaN(variable.percentageApsBull))\n{variable.percentageApsBull = 0}\nelse {variable.percentageApsBull}","project":"Superalgos","id":"ab02063d-1b37-4024-b0fa-ee38859a6b50","savedPayload":{"position":{"x":16953.230609316895,"y":42957.65947298904},"targetPosition":{"x":17021.329184277827,"y":42824.00849436079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2f44af53-9e90-4943-989c-54b2520c65aa","savedPayload":{"position":{"x":17021.329184277827,"y":42824.00849436079},"targetPosition":{"x":17157.52633419969,"y":42556.70653710428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Aps Bear","config":"{\n \"codeName\": \"percentageApsBear\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Record Formula","code":"if (isNaN(variable.percentageApsBear))\n{variable.percentageApsBear = 0}\nelse {variable.percentageApsBear}","project":"Superalgos","id":"c20bbde5-2d5b-4a30-9c6e-f98155159f5d","savedPayload":{"position":{"x":16839.328282665745,"y":42874.90458863822},"targetPosition":{"x":16945.394299843727,"y":42768.83857146024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"93555a22-0783-448a-be65-e529d4f8e685","savedPayload":{"position":{"x":16945.394299843727,"y":42768.83857146024},"targetPosition":{"x":17157.52633419969,"y":42556.70653710428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ee9dcc1e-1f97-417a-bc3a-03ed97bf942b","savedPayload":{"position":{"x":13486.234055866944,"y":41521.19242596629},"targetPosition":{"x":14056.867965644036,"y":41706.60262259126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"// Loop Code\n\nlet nCandles = 17 // Change here number of candles to use\n\nlet candle = {\n open: record.current.open,\n close: record.current.close,\n min: record.current.min,\n max: record.current.max,\n begin: record.current.begin,\n end: record.current.end\n} \n\n// Build arrays\n\nvariable.lastNCandlesARPS.push(candle.max - candle.min)\nvariable.lastNCandlesSMA.push(candle.close)\nvariable.lastNCandlesApsBull.push(candle.max - candle.open)\nvariable.lastNCandlesApsBear.push (candle.open - candle.min)\n\n// console.log(variable.lastNCandlesARPS)\n\n// Keep arrays the correct size of nCandles\n\nif (variable.lastNCandlesARPS.length > nCandles) {\n variable.lastNCandlesARPS.splice(0, 1)\n}\n\nif (variable.lastNCandlesSMA.length > nCandles) {\n variable.lastNCandlesSMA.splice(0, 1)\n}\n\nif (variable.lastNCandlesApsBull.length > nCandles) {\n variable.lastNCandlesApsBull.splice(0, 1)\n}\n\nif (variable.lastNCandlesApsBear.length > nCandles) {\n variable.lastNCandlesApsBear.splice(0, 1)\n}\n\n\n// Call the functions\nvariable.smaARPS = calculateSMA(variable.lastNCandlesARPS, nCandles)\nvariable.smaSMA = calculateSMA(variable.lastNCandlesSMA, nCandles)\nvariable.smaApsBull = calculateSMA(variable.lastNCandlesApsBull, nCandles)\nvariable.smaApsBear = calculateSMA(variable.lastNCandlesApsBear, nCandles)\n\n// Build SMA function\n\nfunction calculateSMA(src, periods) { \n // Check we have enough values to make the calc\n if (src.length < periods) { return 0 }\n \n let sum = 0 // Initialize sum variable\n for (let i = src.length - periods; i < src.length; i++) {\n sum = sum + src[i]\n }\n let sma = sum / periods\n return sma\n}\n\n// Calc final ARPS ApsBull ApsBear SMA as Rate\n\nvariable.ARPS = variable.smaARPS\n\n\nif (variable.smaApsBull > variable.smaApsBear) \n{\n\tvariable.apsBull = variable.smaSMA + ((variable.smaApsBull / variable.smaARPS) * (variable.smaApsBull - variable.smaApsBear) * 2)\n}\nelse \n{\n\tvariable.apsBull = variable.smaSMA - ((variable.smaApsBull / variable.smaARPS) * (variable.smaApsBear - variable.smaApsBull) * 2)\n}\n\nif (variable.smaApsBear > variable.smaApsBull) \n{\n\tvariable.apsBear = variable.smaSMA + ((variable.smaApsBear / variable.smaARPS) * (variable.smaApsBear - variable.smaApsBull) * 2)\n}\nelse \n{\n\tvariable.apsBear = variable.smaSMA - ((variable.smaApsBear / variable.smaARPS) * (variable.smaApsBull - variable.smaApsBear) * 2)\n}\n\nvariable.SMA = variable.smaSMA\n\n\n// Calc final ARPS ApsBull ApsBear as %\n\nvariable.percentageARPS = (variable.smaARPS/candle.close) *100\nvariable.percentageApsBull = (variable.smaApsBull/variable.smaARPS) *100\nvariable.percentageApsBear = (variable.smaApsBear/variable.smaARPS) *100\n\n\n// End of Code :-)","project":"Superalgos","id":"966b7e24-c167-459d-8975-5a7b4e6b8d5e","savedPayload":{"position":{"x":13686.245899592052,"y":41306.56742651631},"targetPosition":{"x":13763.960495737749,"y":41369.499465621295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c17982f3-0168-48b9-90ac-b7bef7cdaa07","savedPayload":{"position":{"x":13763.960495737749,"y":41369.499465621295},"targetPosition":{"x":13880.532389956294,"y":41463.89752427877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"/* Initialization Code */\n\n// Build 4 arrays \n\nvariable.lastNCandlesARPS = []\nvariable.lastNCandlesSMA = []\nvariable.lastNCandlesApsBull = [] \nvariable.lastNCandlesApsBear = [] \n","project":"Superalgos","id":"b324a567-8972-40c1-9e4b-ece388320ef1","savedPayload":{"position":{"x":13790.940402569968,"y":41230.50241765447},"targetPosition":{"x":13826.777197524498,"y":41323.86046030419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ce407fea-a38d-4b44-abb5-2195ffc010e3","savedPayload":{"position":{"x":13826.777197524498,"y":41323.86046030419},"targetPosition":{"x":13880.532389956294,"y":41463.89752427877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ba9e95be-ac7a-43ca-8709-08a562dce5be","savedPayload":{"position":{"x":13880.532389956294,"y":41463.89752427877},"targetPosition":{"x":14056.867965644036,"y":41706.60262259126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d56a976b-05eb-4aa5-9608-d8839690052c","savedPayload":{"position":{"x":14056.867965644036,"y":41706.60262259126},"targetPosition":{"x":14356.867965644036,"y":41706.60262259126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"ARPS Slow","id":"ba1f7fe7-29a3-4cf2-b185-dc2c65e5cc5a"}}}],"id":"66aba56e-6265-4de6-baa9-eaea3f5fd8b8","savedPayload":{"position":{"x":14569,"y":41794.470588235294},"targetPosition":{"x":14569,"y":41494.470588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Indicator Bot","name":"Average VS Average","config":"{\n \"codeName\": \"averageVsAverage\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market averageVsAverage","project":"Superalgos","id":"ff8f0062-8f35-45b5-9640-7998961fa0b8","savedPayload":{"position":{"x":14605.61507507505,"y":42398.460093163274},"targetPosition":{"x":14430.75723374723,"y":42256.86300517706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2fa9132f-8809-4ab6-a7d3-21769b765195"}}}],"outputDatasetFolders":[],"id":"97c82560-d099-42c7-8d64-b8dc57e522ec","savedPayload":{"position":{"x":14430.75723374723,"y":42256.86300517706},"targetPosition":{"x":14255.899392419411,"y":42115.265917190845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Average VS Average Multi-Period-Market","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"70ebbcf2-3a50-4b5d-b857-a1bd35617a0b","savedPayload":{"position":{"x":14445.198836524623,"y":42354.43865572675},"targetPosition":{"x":14336.532181067103,"y":42325.32151315272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"27ca72af-be47-4d79-9b0c-dadda0003dd2"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"964c9245-0231-4904-8625-db801ad1fa00","savedPayload":{"position":{"x":14407.33072506021,"y":42412.750433816625},"targetPosition":{"x":14336.532181067103,"y":42325.32151315272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"445b8c4a-cfcf-4e00-b334-8eba9c4ce149","savedPayload":{"position":{"x":14342.419976144434,"y":42437.667335812606},"targetPosition":{"x":14336.532181067103,"y":42325.32151315272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Market","project":"Superalgos","id":"1bc1b344-3f7d-48b7-950c-c85db9d23d2d","savedPayload":{"position":{"x":14275.260289627913,"y":42419.67195204658},"targetPosition":{"x":14336.532181067103,"y":42325.32151315272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1"}}}],"dataMineDataDependencies":[],"id":"38f8eb3e-5d3b-43c4-b303-d9d63e2b75b9","savedPayload":{"position":{"x":14336.532181067103,"y":42325.32151315272},"targetPosition":{"x":14255.899392419411,"y":42115.265917190845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"27ca72af-be47-4d79-9b0c-dadda0003dd2","savedPayload":{"position":{"x":14185.503883151307,"y":42559.725670458654},"targetPosition":{"x":14255.899392419411,"y":42115.265917190845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"0f18ef7c-8f85-43f3-81dd-d942b1317690","savedPayload":{"position":{"x":14114.302304433199,"y":42290.12375851866},"targetPosition":{"x":14255.899392419411,"y":42115.265917190845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"7bc96372-69d4-4b2a-9a50-3aa19a47bb65","savedPayload":{"position":{"x":14045.84379645754,"y":42195.89870583854},"targetPosition":{"x":14255.899392419411,"y":42115.265917190845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ae0de8e8-9ccc-480f-938c-cb05d8cba570","savedPayload":{"position":{"x":14356.867965644036,"y":42156.60262259126},"targetPosition":{"x":14356.867965644036,"y":41706.60262259126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily averageVsAverage","project":"Superalgos","id":"624d6b5e-41d4-4bd9-a445-21dd56645dc3","savedPayload":{"position":{"x":14056.312871159678,"y":42830.37923328609},"targetPosition":{"x":14009.275062689234,"y":42382.84438037037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"144e811d-ea2c-41d9-9c5b-68f6ba800157"}}}],"outputDatasetFolders":[],"id":"6255fc01-a43a-4ac9-9e81-1013d85c6b12","savedPayload":{"position":{"x":14009.275062689234,"y":42382.84438037037},"targetPosition":{"x":13962.23725421879,"y":41935.30952745465},"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":"Average VS Average Multi-Period-Daily","config":"{ \n\"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"f0e71f8c-1f06-426d-8cc5-35a631c8e096","savedPayload":{"position":{"x":13826.243573305124,"y":42793.93983630954},"targetPosition":{"x":13779.20576483468,"y":42346.40498339382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"f11c0a9b-276d-4e7c-8369-784bea139ced"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"207c7107-7169-4143-b9bc-627f1d4a92da","savedPayload":{"position":{"x":13708.810255566576,"y":42790.86473666163},"targetPosition":{"x":13779.20576483468,"y":42346.40498339382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{ \n\"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"e5d78941-5578-4385-a414-5273061e512a","savedPayload":{"position":{"x":13596.17427545057,"y":42757.50043933299},"targetPosition":{"x":13779.20576483468,"y":42346.40498339382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"68f9c948-a066-447b-870a-86238da7c2ff","savedPayload":{"position":{"x":13496.011588862253,"y":42696.12066604946},"targetPosition":{"x":13779.20576483468,"y":42346.40498339382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Daily","project":"Superalgos","id":"56a9550b-8f7b-46b5-803f-f517209e23c2","savedPayload":{"position":{"x":13415.148117365954,"y":42610.90834692543},"targetPosition":{"x":13779.20576483468,"y":42346.40498339382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2e683057-f911-4105-bc77-16f2706d1915"}}}],"dataMineDataDependencies":[],"id":"76ba561f-3ffb-48cf-9c10-bbe6387e1a0f","savedPayload":{"position":{"x":13779.20576483468,"y":42346.40498339382},"targetPosition":{"x":13962.23725421879,"y":41935.30952745465},"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":"f11c0a9b-276d-4e7c-8369-784bea139ced","savedPayload":{"position":{"x":13598.179606750064,"y":42199.812890986264},"targetPosition":{"x":13962.23725421879,"y":41935.30952745465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"24742d14-280e-4f10-8602-bdd2862f4625","savedPayload":{"position":{"x":13738.469827760928,"y":41958.82843168987},"targetPosition":{"x":13962.23725421879,"y":41935.30952745465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"716ce0a4-f43e-4f76-8101-20a577815d99","savedPayload":{"position":{"x":13756.689526249203,"y":41843.793782762594},"targetPosition":{"x":13962.23725421879,"y":41935.30952745465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e0452a39-e3ec-4b20-bd70-0ebcb12c6246","savedPayload":{"position":{"x":14038.66991411009,"y":42024.8006741252},"targetPosition":{"x":14356.867965644036,"y":41706.60262259126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"averageVsAverage","config":"{\n \"codeName\": \"averageVsAverage\",\n \"singularVariableName\": \"averageVsAverage\",\n \"pluralVariableName\": \"averageVsAverages\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-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/@Period\",\n \"fileName\": \"Data.json\"\n}","project":"Superalgos","id":"2fa9132f-8809-4ab6-a7d3-21769b765195","savedPayload":{"position":{"x":13880.532389956294,"y":41949.307720903744},"targetPosition":{"x":14056.867965644036,"y":41706.60262259126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-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/@Period/@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}","project":"Superalgos","id":"144e811d-ea2c-41d9-9c5b-68f6ba800157","savedPayload":{"position":{"x":13771.551010755491,"y":41799.307720903744},"targetPosition":{"x":14056.867965644036,"y":41706.60262259126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"if (isNaN(record.current.begin))\n{record.current.begin = 0}\nelse {record.current.begin}","project":"Superalgos","id":"938c01c4-07de-4033-bdaa-17d8fb09d38a","savedPayload":{"position":{"x":12646.856347572095,"y":42200.0096619911},"targetPosition":{"x":13071.120416284024,"y":41775.74559327917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"35c4d523-27c6-48c2-b2a1-2b4b63c2e84c","savedPayload":{"position":{"x":13071.120416284024,"y":41775.74559327917},"targetPosition":{"x":13495.384484995953,"y":41351.48152456724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Formula","code":"if (isNaN(record.current.end))\n{record.current.end = 0}\nelse {record.current.end}","project":"Superalgos","id":"e78d81f6-95be-4eee-a18e-5bfa7640c553","savedPayload":{"position":{"x":12426.176655969914,"y":41896.2701242547},"targetPosition":{"x":12960.780570482933,"y":41623.87582441097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"05257927-f8b2-4a8b-a50e-a04c1efc3a3e","savedPayload":{"position":{"x":12960.780570482933,"y":41623.87582441097},"targetPosition":{"x":13495.384484995953,"y":41351.48152456724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"fastPriceRange","config":"{\n \"codeName\": \"fastPriceRange\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Record Formula","code":"if (isFinite(variable.fastPriceRange)) {\nvariable.fastPriceRange\n}\nelse {\nvariable.fastPriceRange = 1\n}","project":"Superalgos","id":"46081807-6648-45a7-a65a-16a9e8da966d","savedPayload":{"position":{"x":13050.924731728142,"y":41421.87703383534},"targetPosition":{"x":13199.077982817413,"y":41398.41186407931},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5307878c-aafa-410b-b43a-0bcd0020bb08","savedPayload":{"position":{"x":13199.077982817413,"y":41398.41186407931},"targetPosition":{"x":13495.384484995953,"y":41351.48152456724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"slowPriceRange","config":"{\n \"codeName\": \"slowPriceRange\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Record Formula","code":"if (isFinite(variable.slowPriceRange)) { \nvariable.slowPriceRange\n}\nelse { \nvariable.slowPriceRange = 1\n}","project":"Superalgos","id":"9e21a59a-9c44-47f3-be7f-5c03e8e945ef","savedPayload":{"position":{"x":13050.924731728142,"y":41281.086015299144},"targetPosition":{"x":13199.077982817413,"y":41304.55118505518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fdcb9976-a574-40be-bf72-1719da5dcd4e","savedPayload":{"position":{"x":13199.077982817413,"y":41304.55118505518},"targetPosition":{"x":13495.384484995953,"y":41351.48152456724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"longTermPriceRange","config":"{\n \"codeName\": \"longTermPriceRange\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Record Formula","code":"if (isFinite(variable.longTermPriceRange)) {\nvariable.longTermPriceRange\n}\nelse {\nvariable.longTermPriceRange = 1\n}","project":"Superalgos","id":"2e627fae-2cb1-4f65-84a6-e77c6e88fa17","savedPayload":{"position":{"x":13094.431549111188,"y":41147.18579968445},"targetPosition":{"x":13228.082527739443,"y":41215.28437464538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f8988c1b-4938-4a4a-b7f9-7d77d91ce534","savedPayload":{"position":{"x":13228.082527739443,"y":41215.28437464538},"targetPosition":{"x":13495.384484995953,"y":41351.48152456724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"bullPriceDeviation","config":"{\n \"codeName\": \"bullPriceDeviation\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Record Formula","code":"if (isFinite(variable.bullPriceDeviation)) {\nvariable.bullPriceDeviation\n}\nelse {\nvariable.bullPriceDeviation = 1\n}","project":"Superalgos","id":"908c053b-f1eb-4ea4-b545-e954ffd3db1b","savedPayload":{"position":{"x":13177.186433462008,"y":41033.2834730333},"targetPosition":{"x":13283.25245063999,"y":41139.34949021128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"37955412-117b-41ee-a43d-b803e46416d8","savedPayload":{"position":{"x":13283.25245063999,"y":41139.34949021128},"targetPosition":{"x":13495.384484995953,"y":41351.48152456724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"smaPrice","config":"{\n \"codeName\": \"smaPrice\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Record Formula","code":"if (isFinite(variable.smaPrice)) {\nvariable.smaPrice\n}\nelse {\nvariable.smaPrice = 1\n}","project":"Superalgos","id":"8f6487d2-ef0b-42d9-b7a3-74045069fdad","savedPayload":{"position":{"x":13291.088760113158,"y":40950.52858868248},"targetPosition":{"x":13359.18733507409,"y":41084.17956731073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c760cbf7-ea72-4716-aca7-f6a43d60a9af","savedPayload":{"position":{"x":13359.18733507409,"y":41084.17956731073},"targetPosition":{"x":13495.384484995953,"y":41351.48152456724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"volumeDeviation","config":"{\n \"codeName\": \"volumeDeviation\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Record Formula","code":"if (isFinite(variable.volumeDeviation)) {\nvariable.volumeDeviation\n}\nelse {\nvariable.volumeDeviation = 1\n}","project":"Superalgos","id":"50217133-ddcd-4dd5-8c05-4c284eb3a164","savedPayload":{"position":{"x":13424.988975727849,"y":40907.02177129943},"targetPosition":{"x":13448.454145483884,"y":41055.1750223887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9d53e819-26a4-4e2d-999c-8c68a079a7ed","savedPayload":{"position":{"x":13448.454145483884,"y":41055.1750223887},"targetPosition":{"x":13495.384484995953,"y":41351.48152456724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"openInterestDeviation","config":"{\n \"codeName\": \"openInterestDeviation\",\n \"isString\": false,\n \"isCalculated\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","name":"New Record Formula","code":"if (isFinite(variable.openInterestDeviation)) {\nvariable.openInterestDeviation\n}\nelse {\nvariable.openInterestDeviation = 1\n}","project":"Superalgos","id":"1a1bba7d-2ea4-452c-980a-885220669585","savedPayload":{"position":{"x":13565.779994264058,"y":40907.02177129943},"targetPosition":{"x":13542.314824508023,"y":41055.1750223887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"78f159de-c0d7-4373-93a1-645e6791fdfa","savedPayload":{"position":{"x":13542.314824508023,"y":41055.1750223887},"targetPosition":{"x":13495.384484995953,"y":41351.48152456724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1e299c4-fed7-4543-9d78-5697aef59e84","savedPayload":{"position":{"x":13486.234055866944,"y":41521.19242596629},"targetPosition":{"x":14056.867965644036,"y":41706.60262259126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"EDIT TOP LINES HERE TO CHANGE PERIODS","code":"// The Average VS Average Oscillator\n\n/* The Average VS Average Oscillator can be used to recognize changes between a fast average ('fastPeriod') and a slow average ('slowPeriod'). It measures 'Price Action', 'Volume', and a so called 'Open Interest'.\n'Bull Price Action' and 'Bear Price Action' is defined by the amount between the candle close and max and min.\n'Bull Volume' and 'Bear Volume' is divided using the price action.\n'Open Interest' is based upon the statement where:\nBull Candle and Volume Increase = Bull Interest\nBull Candle and Volume Decrease = Bear Interest\nBear Candle and Volume Increase = Bear Interest\nBear Candle and Volume Decrease = Bull Interest */\n\n// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n/* Loop code */\n\n// User defined lengths of the used periods\n\nlet fastPeriod = 5 // Change this number to the period of your choice (must be less than 'slowPeriod')\nlet slowPeriod = 21 // Change this number to the period of your choice (must be greater than 'fastPeriod')\nlet periodMultiplier = 3 // The 'slowPeriod' is muliplied by the 'periodMultiplier to create the \"long term\" trend\nlet fastBoost = 1.00 // '1.00' equals 'no extra boost' to your 'fastPeriod' where as '1.23' would boost the value by 23%\nlet gravity = 0 // '0' equals 'no gravity' (pullback towards midline ('slowPeriod'))\n\n// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n// Declaring variables used\n\nlet candle = {\n open: record.current.open,\n close: record.current.close,\n min: record.current.min,\n max: record.current.max,\n begin: record.current.begin,\n end: record.current.end\n} \nlet volCandle = record.current\nlet volume = getElement('volumes', volCandle)\nlet totalVolume = volume.buy + volume.sell\nlet totalRange = candle.max - candle.min\nlet multipliedFast = fastPeriod * periodMultiplier\nlet multipliedSlow = slowPeriod * periodMultiplier\n\nif ( candle.close > candle.open ) { \n variable.bullPriceRange = ( candle.close - candle.min ),\n variable.bearPriceRange = ( candle.max - candle.close )\n}\nelse { \n variable.bullPriceRange = ( candle.close - candle.min ),\n variable.bearPriceRange = ( candle.max - candle.close )\n}\n\n// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n// Declaring 'Volume Difference'\n\nvariable.previousCurrentVolume.push(totalVolume)\nif (variable.previousCurrentVolume.length > 2) {\n variable.previousCurrentVolume.splice(0, 1)\n}\n\nif (variable.previousCurrentVolume[1] === 'undefined') {\n variable.positiveVolumeDifference = 0.01\n}\nelse {\n if (variable.previousCurrentVolume[variable.previousCurrentVolume.max] > variable.previousCurrentVolume[0]) {\n variable.positiveTotalVolumeDifference = (variable.previousCurrentVolume[1] - variable.previousCurrentVolume[0]) \n }\n else {\n variable.positiveTotalVolumeDifference = (variable.previousCurrentVolume[0] - variable.previousCurrentVolume[1])\n }\n}\n\nvariable.bullVolumeDifference = variable.positiveTotalVolumeDifference * (variable.bullPriceRange / totalRange)\nvariable.bearVolumeDifference = variable.positiveTotalVolumeDifference * (variable.bearPriceRange / totalRange)\n\n// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n// Declaring 'Open Interest'\n// Converting values to percentages due to the differences of range and volume (range might be in decimals while volume often is in thousands)\n\nif ( candle.close > candle.open && variable.previousCurrentVolume[1] > variable.previousCurrentVolume[0] ) { // Candle UP & Volume UP, Bullish Interest\n variable.openInterest = 1 + ((variable.bullPriceRange / totalRange) * (variable.bullVolumeDifference / variable.positiveTotalVolumeDifference))\n}\n\nelse if ( candle.close < candle.open && variable.previousCurrentVolume[1] < variable.previousCurrentVolume[0] ) { // Candle DOWN & Volume DOWN, Bullish Interest\n variable.openInterest = 1 + ((variable.bearPriceRange / totalRange) * (variable.bearVolumeDifference / variable.positiveTotalVolumeDifference))\n}\n\nelse if ( candle.close > candle.open && variable.previousCurrentVolume[1] < variable.previousCurrentVolume[0] ) { // Candle UP & Volume DOWN, Bearish Interest\n variable.openInterest = 1 - ((variable.bullPriceRange / totalRange) * (variable.bullVolumeDifference / variable.positiveTotalVolumeDifference))\n}\n\nelse { // Candle DOWN & Volume UP, Bearish Interest\n variable.openInterest = 1 - ((variable.bearPriceRange / totalRange) * (variable.bearVolumeDifference / variable.positiveTotalVolumeDifference))\n}\n\n// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n// Saving to arrays\n\nvariable.savedCandleClose.push(candle.close)\nif (variable.savedCandleClose.length > multipliedSlow) {\n variable.savedCandleClose.splice(0, 1)\n}\n\nvariable.savedTotalRange.push(totalRange)\nif (variable.savedTotalRange.length > multipliedSlow) {\n variable.savedTotalRange.splice(0, 1)\n}\n\nvariable.savedBullPriceRange.push(variable.bullPriceRange)\nif (variable.savedBullPriceRange.length > multipliedSlow) {\n variable.savedBullPriceRange.splice(0, 1)\n}\n\nvariable.savedTotalVolume.push(totalVolume)\nif (variable.savedTotalVolume.length > multipliedSlow) {\n variable.savedTotalVolume.splice(0, 1)\n}\n\nvariable.savedOpenInterest.push(variable.openInterest)\nif (variable.savedOpenInterest.length > multipliedSlow) {\n variable.savedOpenInterest.splice(0, 1)\n}\n\n// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n// Calling SMA functions\n\nvariable.smaMultipliedFastCandleClose = calculateSMA(variable.savedCandleClose, multipliedFast)\nvariable.smaSlowCandleClose = calculateSMA(variable.savedCandleClose, slowPeriod)\nvariable.smaLongTermCandleClose = calculateSMA(variable.savedCandleClose, multipliedSlow)\n\nvariable.smaFastTotalRange = calculateSMA(variable.savedTotalRange, fastPeriod)\nvariable.smaSlowTotalRange = calculateSMA(variable.savedTotalRange, slowPeriod)\nvariable.smaLongTermRange = calculateSMA(variable.savedTotalRange, multipliedSlow)\n\nvariable.smaFastBullPriceRange = calculateSMA(variable.savedBullPriceRange, fastPeriod)\nvariable.smaSlowBullPriceRange = calculateSMA(variable.savedBullPriceRange, slowPeriod)\n\nvariable.smaFastTotalVolume = calculateSMA(variable.savedTotalVolume, fastPeriod)\nvariable.smaLongTermTotalVolume = calculateSMA(variable.savedTotalVolume, multipliedSlow)\n\nvariable.smaFastOpenInterest = calculateSMA(variable.savedOpenInterest, fastPeriod)\nvariable.smaSlowOpenInterest = calculateSMA(variable.savedOpenInterest, slowPeriod)\n\n// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n// Creating the SMA function\n\nfunction calculateSMA(src, periods) { \n // Check we have enough values to make the calculation\n if (src.length < periods) { return 0 }\n \n // Initialize sum variable\n let sum = 0 \n for (let i = src.length - periods; i < src.length; i++) {\n sum = sum + src[i]\n }\n let sma = sum / periods\n return sma\n}\n\n// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n// Declaring record variables by comparing 'fastPeriod' values with 'slowPeriod' values, also applying 'fastBoost' and 'gravity'\n\nvariable.fastPriceRange = variable.smaFastTotalRange\nvariable.slowPriceRange = variable.smaSlowTotalRange\nvariable.longTermPriceRange = variable.smaLongTermRange\n\nvariable.bullPriceDeviation = ((((variable.smaFastBullPriceRange * fastBoost) + (variable.smaSlowBullPriceRange * gravity)) / (gravity + 1)) / variable.slowPriceRange) * 2\n\nvariable.volumeDeviation = variable.smaFastTotalVolume / variable.smaLongTermTotalVolume\n\nvariable.openInterestDeviation = ((((variable.smaFastOpenInterest * fastBoost) + (variable.smaSlowOpenInterest * gravity)) / (gravity + 1)) / variable.smaSlowOpenInterest)\n\nvariable.smaPrice = variable.smaMultipliedFastCandleClose / variable.smaLongTermCandleClose\n\n// CJ.","project":"Superalgos","id":"7e403f54-4a96-4d44-b242-bbbf242c3114","savedPayload":{"position":{"x":13686.245899592052,"y":41306.56742651631},"targetPosition":{"x":13763.960495737749,"y":41369.499465621295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5dd4bc88-e9e8-461e-9c87-03c0aeb5f14a","savedPayload":{"position":{"x":13763.960495737749,"y":41369.499465621295},"targetPosition":{"x":13880.532389956294,"y":41463.89752427877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"/* Initialization Code */\n\n// Build 6 arrays \n\nvariable.previousCurrentVolume = []\nvariable.savedTotalRange = []\nvariable.savedBullPriceRange = [] \nvariable.savedTotalVolume = [] \nvariable.savedOpenInterest = [] \nvariable.savedCandleClose = [] ","project":"Superalgos","id":"562a1a92-04fd-4126-b3cc-219d21d96607","savedPayload":{"position":{"x":13790.940402569968,"y":41230.50241765447},"targetPosition":{"x":13826.777197524498,"y":41323.86046030419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"85dd9771-10b0-492c-ace8-0f18fc14d143","savedPayload":{"position":{"x":13826.777197524498,"y":41323.86046030419},"targetPosition":{"x":13880.532389956294,"y":41463.89752427877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"159c2cf8-383f-4228-9ad5-bc266cd18d5c","savedPayload":{"position":{"x":13880.532389956294,"y":41463.89752427877},"targetPosition":{"x":14056.867965644036,"y":41706.60262259126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"371f636a-012c-4fb8-bf61-c83be358a508","savedPayload":{"position":{"x":14056.867965644036,"y":41706.60262259126},"targetPosition":{"x":14356.867965644036,"y":41706.60262259126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Average VS Average","id":"60771858-6287-419f-b6db-6ab6166063ba"}}}],"id":"3df48abc-f2a5-48ca-bd27-89913fdc0812","savedPayload":{"position":{"x":14356.867965644036,"y":41706.60262259126},"targetPosition":{"x":14569,"y":41494.470588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"plotters":[{"type":"Plotter","name":"ARPS Fast Plotter","config":"{\n \"codeName\": \"ARPS-Fast\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"ARPS","config":"{\n \"codeName\": \"ARPS-Fast\",\n \"icon\": \"oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"SMA Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.SMA","project":"Superalgos","id":"1216597f-916f-40c3-b1cf-9795d7516eb9","savedPayload":{"position":{"x":16921.752452292843,"y":42034.291126365046},"targetPosition":{"x":16621.886722607793,"y":42025.316486514224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"23be71f9-d898-4182-8fdf-b437ee15d96a","savedPayload":{"position":{"x":16621.886722607793,"y":42025.316486514224},"targetPosition":{"x":16322.02099292274,"y":42016.3418466634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.SMA","project":"Superalgos","id":"96946ddb-82c4-4ded-a55f-f72a64f8b6d0","savedPayload":{"position":{"x":16854.572466325473,"y":42292.727316933786},"targetPosition":{"x":16588.296729624104,"y":42154.534581798594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0a02c972-ecf7-4263-b396-7ec44323d68b","savedPayload":{"position":{"x":16588.296729624104,"y":42154.534581798594},"targetPosition":{"x":16322.02099292274,"y":42016.3418466634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"APS Bull Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.apsBull","project":"Superalgos","id":"5f7ae8c1-7d37-4d18-b40c-7f65d33a617e","savedPayload":{"position":{"x":16681.914129735487,"y":42496.42197547013},"targetPosition":{"x":16501.967561329115,"y":42256.38191106677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0958d221-456d-414b-b383-e6fbec8df430","savedPayload":{"position":{"x":16501.967561329115,"y":42256.38191106677},"targetPosition":{"x":16322.02099292274,"y":42016.3418466634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"APS Bull End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.apsBull","project":"Superalgos","id":"0fa59969-0560-4070-8569-674718ff52e5","savedPayload":{"position":{"x":16437.974543600074,"y":42605.03087669991},"targetPosition":{"x":16379.997768261406,"y":42310.686361681655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bcc803c6-3d10-48dd-82f2-63603a7c3c97","savedPayload":{"position":{"x":16379.997768261406,"y":42310.686361681655},"targetPosition":{"x":16322.02099292274,"y":42016.3418466634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"APS Bear Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.apsBear","project":"Superalgos","id":"d812fcd7-98e8-4c00-a7b3-9711dc93ba86","savedPayload":{"position":{"x":16171.068934676035,"y":42597.042695733806},"targetPosition":{"x":16246.544963799388,"y":42306.69227119861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c591ce36-7a4f-4ff2-be7c-48e6e7786502","savedPayload":{"position":{"x":16246.544963799388,"y":42306.69227119861},"targetPosition":{"x":16322.02099292274,"y":42016.3418466634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"APS Bear End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.apsBear","project":"Superalgos","id":"92d970a0-e07c-4958-ab07-f4d968d1bf33","savedPayload":{"position":{"x":15934.061232193262,"y":42474.03958978076},"targetPosition":{"x":16128.041112558001,"y":42245.19071822209},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"221a1676-98f3-4175-a301-4f4e85abfe4f","savedPayload":{"position":{"x":16128.041112558001,"y":42245.19071822209},"targetPosition":{"x":16322.02099292274,"y":42016.3418466634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8a7b65d5-ae94-4075-98d6-1fb143128c07","savedPayload":{"position":{"x":13941.02099292274,"y":42028.34184666341},"targetPosition":{"x":13819,"y":41754.27820937063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.75,\n \"lineWidth\": 0.75,\n \"lineDash\": [\n 2,\n 2\n ],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 1.5,\n \"lineDash\": [\n 2,\n 2\n ],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"8a3b9f48-6556-4ffc-8694-44db9d0552e3","savedPayload":{"position":{"x":16464.409913763688,"y":42538.924830358024},"targetPosition":{"x":16301.01820325918,"y":42287.3236599744},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"f2b46265-4f40-4572-a023-e95007bcbf2a","savedPayload":{"position":{"x":16301.01820325918,"y":42287.3236599744},"targetPosition":{"x":16137.626492754673,"y":42035.72248959077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA Begin","project":"Superalgos","id":"a24fec7c-4b4e-4533-b40b-fe86bb05a8e6","savedPayload":{"position":{"x":16075.252985509345,"y":42329.16676981091},"targetPosition":{"x":16137.626492754673,"y":42035.72248959077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA Begin","id":"23be71f9-d898-4182-8fdf-b437ee15d96a"}}},{"type":"Polygon Vertex","name":"SMA End","project":"Superalgos","id":"cfccbef2-3746-43c5-8368-fcd84072eec1","savedPayload":{"position":{"x":15886.025322371046,"y":42199.114200095275},"targetPosition":{"x":16137.626492754673,"y":42035.72248959077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA End","id":"0a02c972-ecf7-4263-b396-7ec44323d68b"}}}],"id":"b5e43c46-948c-4f56-bfe5-83ba923a20a5","savedPayload":{"position":{"x":13756.626492754673,"y":42047.72248959077},"targetPosition":{"x":13819,"y":41754.27820937063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"APS Bull","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"Dashed TURQUOISE","config":"{\n \"default\": {\n \"opacity\": 0.75,\n \"lineWidth\": 0.75,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 1.5,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"d8e0d8e9-27ef-4fab-ac43-23868fea8813","savedPayload":{"position":{"x":15945.654978611015,"y":42542.19511213103},"targetPosition":{"x":15961.355765483899,"y":42242.60625170465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"19197333-4a73-4f74-8d05-de667c8d8bf1","savedPayload":{"position":{"x":15961.355765483899,"y":42242.60625170465},"targetPosition":{"x":15977.056552356782,"y":41943.017391278285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"APS Bull Begin","project":"Superalgos","id":"afc2f8ff-8082-496f-8106-a1f8379cfd12","savedPayload":{"position":{"x":15754.113104713564,"y":42143.75657318594},"targetPosition":{"x":15977.056552356782,"y":41943.017391278285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"APS Bull Begin","id":"0958d221-456d-414b-b383-e6fbec8df430"}}},{"type":"Polygon Vertex","name":"APS Bull End","project":"Superalgos","id":"1606a418-a639-4cd4-909d-de72d689acf0","savedPayload":{"position":{"x":15677.46769193041,"y":41927.3166044054},"targetPosition":{"x":15977.056552356782,"y":41943.017391278285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"APS Bull End","id":"bcc803c6-3d10-48dd-82f2-63603a7c3c97"}}}],"id":"7b2bf0a5-4eb1-4cf6-bb1e-8b7545691dfa","savedPayload":{"position":{"x":13596.056552356782,"y":41955.017391278285},"targetPosition":{"x":13819,"y":41754.27820937063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"APS Bear","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"Dashed RED","config":"{\n \"default\": {\n \"opacity\": 0.75,\n \"lineWidth\": 0.75,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 1.5,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"0e69ccc1-020e-47e3-9251-1af8231e41c1","savedPayload":{"position":{"x":15524.051196759618,"y":42239.9243252251},"targetPosition":{"x":15712.847314074568,"y":42006.780536788014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"af7adcc4-8cd2-408f-8550-e017bdbd7d38","savedPayload":{"position":{"x":15712.847314074568,"y":42006.780536788014},"targetPosition":{"x":15901.643431389519,"y":41773.636748350924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"APS Bear Begin","project":"Superalgos","id":"5b569cf7-d916-4891-9f48-4ffbd9a07acb","savedPayload":{"position":{"x":15603.286862779038,"y":41804.99528733122},"targetPosition":{"x":15901.643431389519,"y":41773.636748350924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"APS Bear Begin","id":"c591ce36-7a4f-4ff2-be7c-48e6e7786502"}}},{"type":"Polygon Vertex","name":"APS Bear End","project":"Superalgos","id":"1197f1d6-2c5f-4c4f-b478-0ff005c8408c","savedPayload":{"position":{"x":15668.499642952427,"y":41584.84063103597},"targetPosition":{"x":15901.643431389519,"y":41773.636748350924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"APS Bear End","id":"221a1676-98f3-4175-a301-4f4e85abfe4f"}}}],"id":"0dbddbd2-336e-4495-adee-2cb008743b39","savedPayload":{"position":{"x":13520.643431389519,"y":41785.636748350924},"targetPosition":{"x":13819,"y":41754.27820937063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"ab1a9808-3321-487e-a4ee-598cbe1e06e6","savedPayload":{"position":{"x":13819,"y":41754.27820937063},"targetPosition":{"x":13969,"y":41494.470588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"ARPS","config":"{\n \"codeName\": \"ARPS\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Average Range % per Candle","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.percentageARPS","project":"Superalgos","id":"40a7c8ec-adfa-4319-afbb-4fdce8d83548","savedPayload":{"position":{"x":13239.444504226558,"y":41234.66296709996},"targetPosition":{"x":13529.222252113279,"y":41157.0172535692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.BLACK\"\n}","project":"Superalgos","id":"485aa9f4-e9cb-4734-883f-8a3f68a2f054","savedPayload":{"position":{"x":13317.090217757315,"y":40944.88521921324},"targetPosition":{"x":13529.222252113279,"y":41157.0172535692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9cdae6f2-28fd-47bc-930d-3454aa053de4","savedPayload":{"position":{"x":13529.222252113279,"y":41157.0172535692},"targetPosition":{"x":13819,"y":41234.66296709996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Average % BULL","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.percentageApsBull","project":"Superalgos","id":"6d06c410-c7fc-46d9-a935-5125326f4ff6","savedPayload":{"position":{"x":13409.192378864669,"y":40824.85534596463},"targetPosition":{"x":13669,"y":40974.85534596463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n}","project":"Superalgos","id":"567e7a98-a673-46ad-9b48-64c55f4e2c91","savedPayload":{"position":{"x":13669,"y":40674.85534596463},"targetPosition":{"x":13669,"y":40974.85534596463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"da3f2ea2-6452-4f7a-afd0-c91bb3915956","savedPayload":{"position":{"x":13669,"y":40974.85534596463},"targetPosition":{"x":13819,"y":41234.66296709996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Average % BEAR","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.percentageApsBear","project":"Superalgos","id":"8bb34797-b438-46b7-98ac-13626abeb3d9","savedPayload":{"position":{"x":13819,"y":40655.10747132652},"targetPosition":{"x":13896.645713530756,"y":40944.88521921324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n\"paletteColor\": \"UI_COLOR.RED\"\n}","project":"Superalgos","id":"fc5e8a98-9891-4c4e-aaf4-3b1d485c1d0d","savedPayload":{"position":{"x":14108.77774788672,"y":40732.753184857276},"targetPosition":{"x":13896.645713530756,"y":40944.88521921324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e738ec96-c711-4b1d-9689-7bbe923b84db","savedPayload":{"position":{"x":13896.645713530756,"y":40944.88521921324},"targetPosition":{"x":13819,"y":41234.66296709996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"97906f34-67ef-438b-85a7-59cebfd1dcfb","savedPayload":{"position":{"x":13819,"y":41234.66296709996},"targetPosition":{"x":13969,"y":41494.470588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2675db9e-a697-4f84-a252-8c27ed423e24","savedPayload":{"position":{"x":13969,"y":41494.470588235294},"targetPosition":{"x":14269,"y":41494.470588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e9b75238-86e2-4069-8f82-d8884bf729ee","savedPayload":{"position":{"x":14269,"y":41494.470588235294},"targetPosition":{"x":14569,"y":41494.470588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Chaikin Oscillator Plotter","config":"{\n \"codeName\": \"Chaikin-Oscillator\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Chaikin Oscillator","config":"{\n \"codeName\": \"chaikinOscillator\",\n \"icon\": \"oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Zero Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.zeroLine","project":"Superalgos","id":"fec8363f-45ef-4e43-850a-4102ae1d1f62","savedPayload":{"position":{"x":15743.934675239096,"y":41002.99424592844},"targetPosition":{"x":15977.078463676187,"y":40814.19812861349},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b4d7a68b-446d-4aab-938b-3da564ec607d","savedPayload":{"position":{"x":15977.078463676187,"y":40814.19812861349},"targetPosition":{"x":16210.222252113279,"y":40625.40201129854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.zeroLine","project":"Superalgos","id":"3db966a2-1491-4758-a29f-e6caedcf2208","savedPayload":{"position":{"x":15611.044531260533,"y":40656.803585044305},"targetPosition":{"x":15910.633391686906,"y":40641.10279817142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"013e2783-f200-4b83-b914-91aefd6e7e6f","savedPayload":{"position":{"x":15910.633391686906,"y":40641.10279817142},"targetPosition":{"x":16210.222252113279,"y":40625.40201129854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Chaikin Oscillator Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.chaikinOscillator","project":"Superalgos","id":"78359bae-9317-4916-a89f-d41d00a24627","savedPayload":{"position":{"x":15707.019911346026,"y":40298.61859028952},"targetPosition":{"x":15958.621081729652,"y":40462.010300794034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b159f5cc-42a5-498f-a699-f033248a7eb1","savedPayload":{"position":{"x":15958.621081729652,"y":40462.010300794034},"targetPosition":{"x":16210.222252113279,"y":40625.40201129854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Chaikin Oscillator End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.chaikinOscillator","project":"Superalgos","id":"2384e88c-6e7a-4635-bb62-361dd0edda7d","savedPayload":{"position":{"x":15995.201482386099,"y":40065.25375540022},"targetPosition":{"x":16102.711867249689,"y":40345.32788334938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"00cac505-e6ac-44b5-bc76-1e88a17ebd88","savedPayload":{"position":{"x":16102.711867249689,"y":40345.32788334938},"targetPosition":{"x":16210.222252113279,"y":40625.40201129854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2fba905c-acdb-4217-ba62-2e762b1ddeec","savedPayload":{"position":{"x":16210.222252113279,"y":40625.40201129854},"targetPosition":{"x":16500,"y":40703.047724829295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Zero Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.75,\n \"lineWidth\": 0.75,\n \"lineDash\": [\n 2,\n 2\n ],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 1.5,\n \"lineDash\": [\n 2,\n 2\n ],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"d2054636-c85e-49df-ab90-313851dfcc4c","savedPayload":{"position":{"x":15770.444504226558,"y":40287.94867663245},"targetPosition":{"x":16060.222252113279,"y":40365.594390163205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"d3277379-9eb1-4fca-b134-c4dcdf45d532","savedPayload":{"position":{"x":16060.222252113279,"y":40365.594390163205},"targetPosition":{"x":16350,"y":40443.24010369396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Zero Line Begin","project":"Superalgos","id":"3b89ce9b-df0f-4fb3-b181-deb5d6926262","savedPayload":{"position":{"x":16200,"y":40183.43248255863},"targetPosition":{"x":16350,"y":40443.24010369396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Line Begin","id":"b4d7a68b-446d-4aab-938b-3da564ec607d"}}},{"type":"Polygon Vertex","name":"Zero Line End","project":"Superalgos","id":"93d7041c-5f20-4b85-9f7a-f16d6427d7b2","savedPayload":{"position":{"x":16427.645713530757,"y":40153.46235580724},"targetPosition":{"x":16350,"y":40443.24010369396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Line End","id":"013e2783-f200-4b83-b914-91aefd6e7e6f"}}}],"id":"bad71c42-7ad3-41df-9634-9599e0cd59c7","savedPayload":{"position":{"x":16350,"y":40443.24010369396},"targetPosition":{"x":16500,"y":40703.047724829295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Chaikin Oscillator","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"Dashed TURQUOISE","config":"{\n \"default\": {\n \"opacity\": 0.75,\n \"lineWidth\": 0.75,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 1.5,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"d35e45c5-146b-41a2-8973-06c7dabc010b","savedPayload":{"position":{"x":16277.645713530756,"y":39893.65473467191},"targetPosition":{"x":16427.645713530757,"y":40153.46235580724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"d746e2c7-aae0-4c83-a1a2-23a1d779173c","savedPayload":{"position":{"x":16427.645713530757,"y":40153.46235580724},"targetPosition":{"x":16577.645713530757,"y":40413.269976942574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Chaikin Oscillator Begin","project":"Superalgos","id":"cc9ee8d7-5b93-4c3b-a700-db3776fbe24a","savedPayload":{"position":{"x":16655.29142706151,"y":40123.49222905585},"targetPosition":{"x":16577.645713530757,"y":40413.269976942574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Chaikin Oscillator Begin","id":"b159f5cc-42a5-498f-a699-f033248a7eb1"}}},{"type":"Polygon Vertex","name":"Chaikin Oscillator End","project":"Superalgos","id":"e9007c32-1519-497a-bed3-7eaa3f60ccff","savedPayload":{"position":{"x":16837.453334666086,"y":40263.269976942574},"targetPosition":{"x":16577.645713530757,"y":40413.269976942574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Chaikin Oscillator End","id":"00cac505-e6ac-44b5-bc76-1e88a17ebd88"}}}],"id":"78c2a948-2c47-40c9-89d8-00d7992cb17c","savedPayload":{"position":{"x":16577.645713530757,"y":40413.269976942574},"targetPosition":{"x":16500,"y":40703.047724829295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"6f0e43ac-96e8-490f-9d08-8c7489a6614c","savedPayload":{"position":{"x":16500,"y":40703.047724829295},"targetPosition":{"x":16650,"y":40962.85534596463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[],"id":"653018cc-a18a-4370-a6c5-e0ad879b2c2f","savedPayload":{"position":{"x":16650,"y":40962.85534596463},"targetPosition":{"x":16800,"y":41222.66296709996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"412c32ee-724a-4b58-9fef-58ecf975de8b","savedPayload":{"position":{"x":14356.867965644036,"y":41282.33855387933},"targetPosition":{"x":14569,"y":41494.470588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"ARPS Slow Plotter","config":"{\n \"codeName\": \"ARPS-Slow\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"ARPS Slow","config":"{\n \"codeName\": \"slowARPS\",\n \"icon\": \"oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"SMA Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.SMA","project":"Superalgos","id":"ca8a3ebb-25b0-4359-b3c5-218fc7ee69a0","savedPayload":{"position":{"x":16845.752452292843,"y":42258.791126365046},"targetPosition":{"x":16545.886722607793,"y":42249.816486514224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e5da7299-927f-46e1-95a0-18230e59af0e","savedPayload":{"position":{"x":16545.886722607793,"y":42249.816486514224},"targetPosition":{"x":16246.020992922739,"y":42240.8418466634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.SMA","project":"Superalgos","id":"f9baacc0-6c94-421b-8a65-629e37e19e7d","savedPayload":{"position":{"x":16778.572466325473,"y":42517.227316933786},"targetPosition":{"x":16512.296729624104,"y":42379.034581798594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1fa7c445-e500-44ac-94d2-1f4f8b4a4a32","savedPayload":{"position":{"x":16512.296729624104,"y":42379.034581798594},"targetPosition":{"x":16246.020992922739,"y":42240.8418466634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"APS Bull Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.apsBull","project":"Superalgos","id":"89b91ab8-fd0b-4f22-885e-968f84dba9db","savedPayload":{"position":{"x":16605.914129735487,"y":42720.92197547013},"targetPosition":{"x":16425.96756132911,"y":42480.88191106677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3ec07cce-c6fd-4e38-9581-20665a1f42e3","savedPayload":{"position":{"x":16425.96756132911,"y":42480.88191106677},"targetPosition":{"x":16246.020992922739,"y":42240.8418466634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"APS Bull End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.apsBull","project":"Superalgos","id":"6bff0f0a-5220-41a3-b785-0c3fdc0d7c22","savedPayload":{"position":{"x":16361.974543600072,"y":42829.53087669991},"targetPosition":{"x":16303.997768261404,"y":42535.186361681655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1b9fcdbe-6783-4719-b3ca-a8811b2ef7e6","savedPayload":{"position":{"x":16303.997768261404,"y":42535.186361681655},"targetPosition":{"x":16246.020992922739,"y":42240.8418466634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"APS Bear Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.apsBear","project":"Superalgos","id":"2a45e116-9295-46fe-beb5-e97bb88fa18f","savedPayload":{"position":{"x":16095.068934676034,"y":42821.542695733806},"targetPosition":{"x":16170.544963799386,"y":42531.19227119861},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b1673c67-03d9-4f80-b7d7-6ea05d917b9a","savedPayload":{"position":{"x":16170.544963799386,"y":42531.19227119861},"targetPosition":{"x":16246.020992922739,"y":42240.8418466634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"APS Bear End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.apsBear","project":"Superalgos","id":"9b122b4f-ea2b-426b-8b72-e57e62688280","savedPayload":{"position":{"x":15858.06123219326,"y":42698.53958978076},"targetPosition":{"x":16052.041112558,"y":42469.69071822209},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1a63a717-1978-47a8-9b3d-50995f7d77a9","savedPayload":{"position":{"x":16052.041112558,"y":42469.69071822209},"targetPosition":{"x":16246.020992922739,"y":42240.8418466634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c574a116-3471-454e-aa91-939ea988d761","savedPayload":{"position":{"x":14635.54422723201,"y":40672.91838677305},"targetPosition":{"x":14915.618355181172,"y":40780.428771636645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.75,\n \"lineWidth\": 0.75,\n \"lineDash\": [\n 2,\n 2\n ],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 1.5,\n \"lineDash\": [\n 2,\n 2\n ],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"722a1147-5e6d-4b23-8f45-61450a7d0b00","savedPayload":{"position":{"x":16388.409913763688,"y":42763.424830358024},"targetPosition":{"x":16225.018203259178,"y":42511.8236599744},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"4383c9dd-82d5-494b-aef3-5df2cc85d159","savedPayload":{"position":{"x":16225.018203259178,"y":42511.8236599744},"targetPosition":{"x":16061.62649275467,"y":42260.22248959077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA Begin","project":"Superalgos","id":"1e9c722a-92cc-4189-836f-53ad2dc7938f","savedPayload":{"position":{"x":15999.252985509343,"y":42553.66676981091},"targetPosition":{"x":16061.62649275467,"y":42260.22248959077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA Begin","id":"e5da7299-927f-46e1-95a0-18230e59af0e"}}},{"type":"Polygon Vertex","name":"SMA End","project":"Superalgos","id":"2f93dabf-aae9-44e0-9273-8124fcdc3dab","savedPayload":{"position":{"x":15810.025322371044,"y":42423.614200095275},"targetPosition":{"x":16061.62649275467,"y":42260.22248959077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA End","id":"1fa7c445-e500-44ac-94d2-1f4f8b4a4a32"}}}],"id":"2490ae4c-0fce-4ad1-85bc-a651044a408c","savedPayload":{"position":{"x":14752.226644676664,"y":40528.82760125302},"targetPosition":{"x":14915.618355181172,"y":40780.428771636645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"APS Bull","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"Dashed TURQUOISE","config":"{\n \"default\": {\n \"opacity\": 0.75,\n \"lineWidth\": 0.75,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 1.5,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"4a8be682-30e9-4595-8fd7-a7bdd5275af8","savedPayload":{"position":{"x":15869.654978611014,"y":42766.69511213103},"targetPosition":{"x":15885.355765483897,"y":42467.10625170465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"106b5fd8-64f3-4731-96e3-641dddb9bb06","savedPayload":{"position":{"x":15885.355765483897,"y":42467.10625170465},"targetPosition":{"x":15901.05655235678,"y":42167.517391278285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"APS Bull Begin","project":"Superalgos","id":"1e039cea-279e-4319-a562-65d2b3e42415","savedPayload":{"position":{"x":15678.113104713562,"y":42368.25657318594},"targetPosition":{"x":15901.05655235678,"y":42167.517391278285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"APS Bull Begin","id":"3ec07cce-c6fd-4e38-9581-20665a1f42e3"}}},{"type":"Polygon Vertex","name":"APS Bull End","project":"Superalgos","id":"667f6ce6-e9c3-4485-89bd-270311441baf","savedPayload":{"position":{"x":15601.467691930407,"y":42151.8166044054},"targetPosition":{"x":15901.05655235678,"y":42167.517391278285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"APS Bull End","id":"1b9fcdbe-6783-4719-b3ca-a8811b2ef7e6"}}}],"id":"0f06b5f2-e742-4520-8e0e-6a7e9bd4974e","savedPayload":{"position":{"x":14931.319142054055,"y":40480.83991121027},"targetPosition":{"x":14915.618355181172,"y":40780.428771636645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"APS Bear","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"Dashed RED","config":"{\n \"default\": {\n \"opacity\": 0.75,\n \"lineWidth\": 0.75,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 1.5,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"153aa0a3-9042-429c-9eae-dc5385217116","savedPayload":{"position":{"x":15448.051196759616,"y":42464.4243252251},"targetPosition":{"x":15636.847314074566,"y":42231.280536788014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"f031e2cb-6fb6-469d-8baa-bcfe24dec1c3","savedPayload":{"position":{"x":15636.847314074566,"y":42231.280536788014},"targetPosition":{"x":15825.643431389517,"y":41998.136748350924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"APS Bear Begin","project":"Superalgos","id":"03a063b9-6203-4384-b89e-e85341b0cb24","savedPayload":{"position":{"x":15527.286862779036,"y":42029.49528733122},"targetPosition":{"x":15825.643431389517,"y":41998.136748350924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"APS Bear Begin","id":"b1673c67-03d9-4f80-b7d7-6ea05d917b9a"}}},{"type":"Polygon Vertex","name":"APS Bear End","project":"Superalgos","id":"2507628c-b9e6-4103-9c94-21abc3489762","savedPayload":{"position":{"x":15592.499642952425,"y":41809.34063103597},"targetPosition":{"x":15825.643431389517,"y":41998.136748350924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"APS Bear End","id":"1a63a717-1978-47a8-9b3d-50995f7d77a9"}}}],"id":"7c0e4100-b3c1-4e60-85f1-1d9e1bd6f7fd","savedPayload":{"position":{"x":15104.414472496122,"y":40547.284983199555},"targetPosition":{"x":14915.618355181172,"y":40780.428771636645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"aeebf45e-fe48-4377-a483-c9c67690a62f","savedPayload":{"position":{"x":14915.618355181172,"y":40780.428771636645},"targetPosition":{"x":14993.264068711927,"y":41070.206519523366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"ARPS","config":"{\n \"codeName\": \"ARPS\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Average Range % per Candle","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.percentageARPS","project":"Superalgos","id":"61766652-706a-4bb9-87ef-2d6e6943d853","savedPayload":{"position":{"x":15692.84943773398,"y":40738.04461191879},"targetPosition":{"x":15542.84943773398,"y":40997.852233054124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.BLACK\"\n}","project":"Superalgos","id":"51875264-c8ee-4839-aa4d-1b9b71d891ff","savedPayload":{"position":{"x":15842.84943773398,"y":40997.852233054124},"targetPosition":{"x":15542.84943773398,"y":40997.852233054124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1b4f7f01-5b42-4954-8668-3cbda5b77063","savedPayload":{"position":{"x":15542.84943773398,"y":40997.852233054124},"targetPosition":{"x":15283.041816598648,"y":41147.852233054124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Average % BULL","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.percentageApsBull","project":"Superalgos","id":"e9c52716-c5f2-4624-ba6e-c173c7f7dbfd","savedPayload":{"position":{"x":15862.59731237209,"y":41147.852233054124},"targetPosition":{"x":15572.81956448537,"y":41225.49794658488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n}","project":"Superalgos","id":"7feaef19-3ea1-4124-8aa4-afd75c5816f1","savedPayload":{"position":{"x":15784.951598841333,"y":41437.629980940845},"targetPosition":{"x":15572.81956448537,"y":41225.49794658488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bce58d87-f0fc-4515-ab47-1d5d57162bac","savedPayload":{"position":{"x":15572.81956448537,"y":41225.49794658488},"targetPosition":{"x":15283.041816598648,"y":41147.852233054124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Average % BEAR","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.percentageApsBear","project":"Superalgos","id":"e00cdf0d-5b55-4ce1-a960-bae254b568dd","savedPayload":{"position":{"x":15692.84943773398,"y":41557.65985418946},"targetPosition":{"x":15433.041816598648,"y":41407.65985418946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n\"paletteColor\": \"UI_COLOR.RED\"\n}","project":"Superalgos","id":"f7999c40-89bc-4c73-9ea5-1b2266814a5c","savedPayload":{"position":{"x":15433.041816598648,"y":41707.65985418946},"targetPosition":{"x":15433.041816598648,"y":41407.65985418946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dd112929-5166-4ac7-9c61-9158e3eab9e0","savedPayload":{"position":{"x":15433.041816598648,"y":41407.65985418946},"targetPosition":{"x":15283.041816598648,"y":41147.852233054124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1e96ebb8-5d70-440d-977f-1781f746f31a","savedPayload":{"position":{"x":15283.041816598648,"y":41147.852233054124},"targetPosition":{"x":14993.264068711927,"y":41070.206519523366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ba1f7fe7-29a3-4cf2-b185-dc2c65e5cc5a","savedPayload":{"position":{"x":14993.264068711927,"y":41070.206519523366},"targetPosition":{"x":14781.132034355964,"y":41282.33855387933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"75c554ed-b9fd-4fb9-9f27-7d6e5e665f8a","savedPayload":{"position":{"x":14569,"y":41194.470588235294},"targetPosition":{"x":14569,"y":41494.470588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Average VS Average Plotter","config":"{\n \"codeName\": \"averageVsAverage\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Average VS Average","config":"{\n \"codeName\": \"averageVsAverage\",\n \"icon\": \"oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Zero Line Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 1","project":"Superalgos","id":"5ebd08dc-c6b9-4429-92c5-b44e86727d6a","savedPayload":{"position":{"x":14886.480951457786,"y":41080.62920696757},"targetPosition":{"x":15113.94976613913,"y":40692.35361109852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"afd0f39f-5fc0-4d14-b192-818f6d7ff2b9","savedPayload":{"position":{"x":15113.94976613913,"y":40692.35361109852},"targetPosition":{"x":15341.418580820475,"y":40304.078015229476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Zero Line End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 1","project":"Superalgos","id":"246941f4-3c18-4ca4-be0f-e8cef636bec1","savedPayload":{"position":{"x":14686.129369247508,"y":40921.00268583042},"targetPosition":{"x":15013.773975033992,"y":40612.54035052995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c575e8b4-3491-4533-be08-fae19636edd9","savedPayload":{"position":{"x":15013.773975033992,"y":40612.54035052995},"targetPosition":{"x":15341.418580820475,"y":40304.078015229476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"bullPriceDeviation Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.bullPriceDeviation","project":"Superalgos","id":"e7e97620-5c89-4806-8855-1118189cca8c","savedPayload":{"position":{"x":14538.865421803868,"y":40711.396596873456},"targetPosition":{"x":14940.142001312171,"y":40507.737306051466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5856cd48-be9d-43a4-ab20-5215f4d8008f","savedPayload":{"position":{"x":14940.142001312171,"y":40507.737306051466},"targetPosition":{"x":15341.418580820475,"y":40304.078015229476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"bullPriceDeviation End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bullPriceDeviation","project":"Superalgos","id":"1fea2d4e-6680-48ab-b7c8-385f26b473d7","savedPayload":{"position":{"x":14456.61955833634,"y":40468.79197884859},"targetPosition":{"x":14899.019069578408,"y":40386.43499703903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0f7c9019-cf97-455b-997b-23bb7fd5ee8d","savedPayload":{"position":{"x":14899.019069578408,"y":40386.43499703903},"targetPosition":{"x":15341.418580820475,"y":40304.078015229476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"volumeDeviation Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.volumeDeviation","project":"Superalgos","id":"7bd64bdc-26e2-473e-b6b4-dfd9a1b90395","savedPayload":{"position":{"x":14446.054849568074,"y":40212.84321508295},"targetPosition":{"x":14893.736715194274,"y":40258.46061515621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48b16beb-f1d0-46df-ab29-5c6d43a905ff","savedPayload":{"position":{"x":14893.736715194274,"y":40258.46061515621},"targetPosition":{"x":15341.418580820475,"y":40304.078015229476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"volumeDeviation End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.volumeDeviation","project":"Superalgos","id":"da79b97b-1844-4fda-89ee-ad427795597e","savedPayload":{"position":{"x":14508.027185372732,"y":39964.285752230935},"targetPosition":{"x":14924.722883096603,"y":40134.181883730205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"55ea7fa6-9f58-4dad-b95b-6800ec0046d4","savedPayload":{"position":{"x":14924.722883096603,"y":40134.181883730205},"targetPosition":{"x":15341.418580820475,"y":40304.078015229476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"openInterestDeviation Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.openInterestDeviation","project":"Superalgos","id":"d1dea870-5cc2-40ec-a697-16f607c5d976","savedPayload":{"position":{"x":14637.515935667096,"y":39743.25623770467},"targetPosition":{"x":14989.467258243785,"y":40023.66712646707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"01f5ed3c-22df-4a5e-bc9a-1c1bcd82e187","savedPayload":{"position":{"x":14989.467258243785,"y":40023.66712646707},"targetPosition":{"x":15341.418580820475,"y":40304.078015229476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"openInterestDeviation End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.openInterestDeviation","project":"Superalgos","id":"9516a25e-3b91-4d82-a02f-6ec800fdfdff","savedPayload":{"position":{"x":14824.030692001568,"y":39567.661168257924},"targetPosition":{"x":15082.724636411021,"y":39935.8695917437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5f18a8ed-6d3a-4e97-b2c7-8833ae328ee0","savedPayload":{"position":{"x":15082.724636411021,"y":39935.8695917437},"targetPosition":{"x":15341.418580820475,"y":40304.078015229476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"smaPrice Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.smaPrice","project":"Superalgos","id":"de1c3212-9782-4dd2-b7a6-6d1215fcaa4f","savedPayload":{"position":{"x":15052.461138063893,"y":39451.72621211319},"targetPosition":{"x":15196.939859442184,"y":39877.902113671335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ae121f69-414a-4593-bee4-3f42c4855e75","savedPayload":{"position":{"x":15196.939859442184,"y":39877.902113671335},"targetPosition":{"x":15341.418580820475,"y":40304.078015229476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"smaPrice End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.smaPrice","project":"Superalgos","id":"8c70536b-5484-4c7f-a7d9-1a4b83f180f4","savedPayload":{"position":{"x":15304.301197642275,"y":39404.84372992559},"targetPosition":{"x":15322.859889231375,"y":39854.46087257753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1b413b15-e479-4d18-9c8e-0cc067c791eb","savedPayload":{"position":{"x":15322.859889231375,"y":39854.46087257753},"targetPosition":{"x":15341.418580820475,"y":40304.078015229476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"61cb4958-a145-4e5b-ac3d-976868a2bbb3","savedPayload":{"position":{"x":15015.217885284577,"y":40450.23598100091},"targetPosition":{"x":15205.396103067891,"y":40858.0744851674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Zero Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.75,\n \"lineWidth\": 0.75,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 1.5,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"a2aa7fc6-9333-44d9-a272-79da7527502a","savedPayload":{"position":{"x":14967.529071742714,"y":40194.74209150929},"targetPosition":{"x":15267.520679261095,"y":40196.986065336605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"cef91315-4506-4374-83a2-c899fcdec3a3","savedPayload":{"position":{"x":15267.520679261095,"y":40196.986065336605},"targetPosition":{"x":15567.512286779476,"y":40199.23003916392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Zero Line Begin","project":"Superalgos","id":"b8cb8331-a6ec-4693-81e5-0c518f8d3bf7","savedPayload":{"position":{"x":15356.972915914279,"y":39985.51721007852},"targetPosition":{"x":15567.512286779476,"y":40199.23003916392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Line Begin","id":"afd0f39f-5fc0-4d14-b192-818f6d7ff2b9"}}},{"type":"Polygon Vertex","name":"Zero Line End","project":"Superalgos","id":"5fb2e9a0-5ae9-4132-9309-4ed517d26111","savedPayload":{"position":{"x":15569.756260606797,"y":39899.23843164554},"targetPosition":{"x":15567.512286779476,"y":40199.23003916392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Line End","id":"c575e8b4-3491-4533-be08-fae19636edd9"}}}],"id":"cca59d3d-d290-4534-802f-8b20224875d7","savedPayload":{"position":{"x":15179.249380243593,"y":40559.21607573988},"targetPosition":{"x":15205.396103067891,"y":40858.0744851674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"smaPrice ABOVE","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.smaPrice > record.previous.smaPrice","project":"Superalgos","id":"f3e0632e-6cf2-4f0b-bef7-82b15c1c4795","savedPayload":{"position":{"x":15310.005105837628,"y":40240.27137909361},"targetPosition":{"x":15601.71608195693,"y":40170.23776993684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.8,\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"paletteColor\": \"UI_COLOR.GREEN\"\n }\n}","project":"Superalgos","id":"8ce4673b-02f7-4fdd-a41a-68bd3603eb11","savedPayload":{"position":{"x":15009.10307759985,"y":40076.377090912705},"targetPosition":{"x":15305.40957977839,"y":40123.30743042477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"b0533485-c84c-492b-be01-f5da1e7acfa0","savedPayload":{"position":{"x":15305.40957977839,"y":40123.30743042477},"targetPosition":{"x":15601.71608195693,"y":40170.23776993684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n }\n}","project":"Superalgos","id":"4a3ebec3-46cf-424b-8b19-3246dcd527b6","savedPayload":{"position":{"x":15090.131983344474,"y":39856.73863110726},"targetPosition":{"x":15345.924032650702,"y":40013.48820052205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"968cf63e-2566-4697-92c2-4e9a01de083a","savedPayload":{"position":{"x":15345.924032650702,"y":40013.48820052205},"targetPosition":{"x":15601.71608195693,"y":40170.23776993684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"smaPrice Begin","project":"Superalgos","id":"960b6798-dc4b-4ccf-a1d2-8d114b228ba4","savedPayload":{"position":{"x":15425.380506269188,"y":39927.53267162435},"targetPosition":{"x":15601.71608195693,"y":40170.23776993684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"smaPrice Begin","id":"ae121f69-414a-4593-bee4-3f42c4855e75"}}},{"type":"Polygon Vertex","name":"smaPrice End","project":"Superalgos","id":"ec3a86be-3906-4395-ad66-22974b63e702","savedPayload":{"position":{"x":15531.68247280016,"y":39878.52679381753},"targetPosition":{"x":15601.71608195693,"y":40170.23776993684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"smaPrice End","id":"1b413b15-e479-4d18-9c8e-0cc067c791eb"}}},{"type":"Polygon Vertex","name":"Zero Line End","project":"Superalgos","id":"47505d15-f5cd-4eed-a2ca-0e19e1fd5425","savedPayload":{"position":{"x":15648.646421469,"y":39873.93126775829},"targetPosition":{"x":15601.71608195693,"y":40170.23776993684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Line End","id":"c575e8b4-3491-4533-be08-fae19636edd9"}}},{"type":"Polygon Vertex","name":"Zero Line Begin","project":"Superalgos","id":"a95edd6e-9ac7-4c4b-8d44-2ea5d4c91126","savedPayload":{"position":{"x":15758.465651371716,"y":39914.44572063061},"targetPosition":{"x":15601.71608195693,"y":40170.23776993684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Line Begin","id":"afd0f39f-5fc0-4d14-b192-818f6d7ff2b9"}}}],"id":"0b45de42-16c8-4845-9634-0c4594a848a5","savedPayload":{"position":{"x":15283.041816598647,"y":40568.29673728068},"targetPosition":{"x":15205.396103067891,"y":40858.0744851674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"smaPrice BELOW","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.smaPrice < record.previous.smaPrice","project":"Superalgos","id":"ba7bc4d2-ea9d-46e5-8a46-4076b973082d","savedPayload":{"position":{"x":15397.288894196598,"y":40090.60339533746},"targetPosition":{"x":15695.360450899574,"y":40124.564359467826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.8,\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","project":"Superalgos","id":"c397754e-7f7f-4101-85bc-ce03e0560cd1","savedPayload":{"position":{"x":15170.588626615936,"y":39833.67858732003},"targetPosition":{"x":15432.974538757755,"y":39979.12147339393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"f869822a-1175-4ca9-b1ab-0eb6c8e8aa21","savedPayload":{"position":{"x":15432.974538757755,"y":39979.12147339393},"targetPosition":{"x":15695.360450899574,"y":40124.564359467826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.GREY\"\n }\n}","project":"Superalgos","id":"45046251-89ef-4e4a-a6ad-508940e81d8b","savedPayload":{"position":{"x":15321.851668917003,"y":39654.99946535638},"targetPosition":{"x":15508.606059908288,"y":39889.7819124121},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"d72f0442-35cd-4291-9ed0-2d18974d8622","savedPayload":{"position":{"x":15508.606059908288,"y":39889.7819124121},"targetPosition":{"x":15695.360450899574,"y":40124.564359467826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"smaPrice Begin","project":"Superalgos","id":"1de42509-51b7-4db5-bb4b-ec99f020f67f","savedPayload":{"position":{"x":15612.669244154475,"y":39836.18585068633},"targetPosition":{"x":15695.360450899574,"y":40124.564359467826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"smaPrice Begin","id":"ae121f69-414a-4593-bee4-3f42c4855e75"}}},{"type":"Polygon Vertex","name":"smaPrice End","project":"Superalgos","id":"086e31ca-712a-4a76-bfde-85f94a0c1f3d","savedPayload":{"position":{"x":15729.321415029946,"y":39826.49280276485},"targetPosition":{"x":15695.360450899574,"y":40124.564359467826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"smaPrice End","id":"1b413b15-e479-4d18-9c8e-0cc067c791eb"}}},{"type":"Polygon Vertex","name":"Zero Line End","project":"Superalgos","id":"d2474336-018f-4a72-b944-8cca376adeab","savedPayload":{"position":{"x":15840.803336973475,"y":39862.178447326005},"targetPosition":{"x":15695.360450899574,"y":40124.564359467826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Line End","id":"c575e8b4-3491-4533-be08-fae19636edd9"}}},{"type":"Polygon Vertex","name":"Zero Line Begin","project":"Superalgos","id":"61bd3a59-9a0b-45bf-8541-69e9cce47c5b","savedPayload":{"position":{"x":15930.142897955298,"y":39937.80996847654},"targetPosition":{"x":15695.360450899574,"y":40124.564359467826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Line Begin","id":"afd0f39f-5fc0-4d14-b192-818f6d7ff2b9"}}}],"id":"7c193813-cccc-44d2-aa9d-0896829f042b","savedPayload":{"position":{"x":15377.469033973204,"y":40612.3288718807},"targetPosition":{"x":15205.396103067891,"y":40858.0744851674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"volumeDeviation ABOVE","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.volumeDeviation > record.previous.volumeDeviation","project":"Superalgos","id":"7d0a809e-062d-422f-8b7d-10485a9f795b","savedPayload":{"position":{"x":15538.426213757815,"y":39964.97108377715},"targetPosition":{"x":15798.978599767912,"y":40113.673653171376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"paletteColor\": \"UI_COLOR.GREEN\"\n }\n}","project":"Superalgos","id":"e43653a6-3d17-4654-b54a-df888f3c6314","savedPayload":{"position":{"x":15458.518676912643,"y":39619.62199501265},"targetPosition":{"x":15628.748638340277,"y":39866.64782409201},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"0d23723f-0ff9-45ad-87df-48ea3e1c2303","savedPayload":{"position":{"x":15628.748638340277,"y":39866.64782409201},"targetPosition":{"x":15798.978599767912,"y":40113.673653171376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Zero Line Begin","project":"Superalgos","id":"31da194c-7e54-492e-ad59-4de79fd948f2","savedPayload":{"position":{"x":15752.787194516952,"y":39817.25105942903},"targetPosition":{"x":15798.978599767912,"y":40113.673653171376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Line Begin","id":"afd0f39f-5fc0-4d14-b192-818f6d7ff2b9"}}},{"type":"Polygon Vertex","name":"Zero Line End","project":"Superalgos","id":"610ad563-a4f0-4056-b455-f8769a6b14c5","savedPayload":{"position":{"x":15885.974525003989,"y":39826.56442484125},"targetPosition":{"x":15798.978599767912,"y":40113.673653171376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Line End","id":"c575e8b4-3491-4533-be08-fae19636edd9"}}},{"type":"Polygon Vertex","name":"volumeDeviation End","project":"Superalgos","id":"88f8f21a-a2a3-4495-b6b5-87535eba5707","savedPayload":{"position":{"x":16001.931245563013,"y":39892.743294087864},"targetPosition":{"x":15798.978599767912,"y":40113.673653171376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"volumeDeviation End","id":"55ea7fa6-9f58-4dad-b95b-6800ec0046d4"}}},{"type":"Polygon Vertex","name":"volumeDeviation Begin","project":"Superalgos","id":"a5449c88-9bfc-4dea-b10b-7d52c7033224","savedPayload":{"position":{"x":16077.690705571462,"y":40002.68013048401},"targetPosition":{"x":15798.978599767912,"y":40113.673653171376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"volumeDeviation Begin","id":"48b16beb-f1d0-46df-ab29-5c6d43a905ff"}}}],"id":"471faeec-673f-4e1b-b09e-876a5a47fc26","savedPayload":{"position":{"x":15451.141716354588,"y":40686.00155426209},"targetPosition":{"x":15205.396103067891,"y":40858.0744851674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"volumeDeviation BELOW","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.volumeDeviation < record.previous.volumeDeviation","project":"Superalgos","id":"d6e67762-8e26-49eb-9dfb-76e9f91ce637","savedPayload":{"position":{"x":15464.277178666107,"y":40013.38730342399},"targetPosition":{"x":15746.693118664378,"y":40114.58629963884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"paletteColor\": \"UI_COLOR.RED\"\n }\n}","project":"Superalgos","id":"6a4f75ce-c32a-4c6d-abf4-ca5930321ad4","savedPayload":{"position":{"x":15325.614376933983,"y":39687.160641468035},"targetPosition":{"x":15536.15374779918,"y":39900.87347055344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"8d9386bd-34ff-4935-9ff4-bf8c61aaa81e","savedPayload":{"position":{"x":15536.15374779918,"y":39900.87347055344},"targetPosition":{"x":15746.693118664378,"y":40114.58629963884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Zero Line Begin","project":"Superalgos","id":"95297404-bf72-4524-b035-271c2077d97a","savedPayload":{"position":{"x":15649.730221428039,"y":39830.68808449909},"targetPosition":{"x":15746.693118664378,"y":40114.58629963884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Line Begin","id":"afd0f39f-5fc0-4d14-b192-818f6d7ff2b9"}}},{"type":"Polygon Vertex","name":"Zero Line End","project":"Superalgos","id":"af1b8269-e003-490a-8615-db6ee76fc758","savedPayload":{"position":{"x":15782.511386026452,"y":39816.73222173629},"targetPosition":{"x":15746.693118664378,"y":40114.58629963884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Zero Line End","id":"c575e8b4-3491-4533-be08-fae19636edd9"}}},{"type":"Polygon Vertex","name":"volumeDeviation End","project":"Superalgos","id":"6fd2d967-3262-4e23-807a-55ea30878977","savedPayload":{"position":{"x":15908.198303491583,"y":39861.77001204262},"targetPosition":{"x":15746.693118664378,"y":40114.58629963884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"volumeDeviation End","id":"55ea7fa6-9f58-4dad-b95b-6800ec0046d4"}}},{"type":"Polygon Vertex","name":"volumeDeviation Begin","project":"Superalgos","id":"4cdb7b68-9c6b-42ac-be3a-6de38cd9674f","savedPayload":{"position":{"x":16001.89713837058,"y":39956.88116869569},"targetPosition":{"x":15746.693118664378,"y":40114.58629963884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"volumeDeviation Begin","id":"48b16beb-f1d0-46df-ab29-5c6d43a905ff"}}}],"id":"0f21f203-c9c7-49b9-a385-2c35777d29f7","savedPayload":{"position":{"x":15495.173850954612,"y":40780.428771636645},"targetPosition":{"x":15205.396103067891,"y":40858.0744851674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"openInterestDeviation","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [\n 2,\n 7\n ],\n \"paletteColor\": \"UI_COLOR.GREY\"\n }\n}","project":"Superalgos","id":"a4cb8a9f-a8b0-4a8a-aec3-943acf806a1a","savedPayload":{"position":{"x":15975.977724920001,"y":39597.23231105389},"targetPosition":{"x":15981.213446851187,"y":39897.18661960081},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"3713f189-0b41-47c9-9c2e-298c552add2a","savedPayload":{"position":{"x":15981.213446851187,"y":39897.18661960081},"targetPosition":{"x":15986.449168782372,"y":40197.14092814773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"openInterestDeviation Begin","project":"Superalgos","id":"350b9484-0724-4be2-874e-ca36e33624cd","savedPayload":{"position":{"x":16194.84667992007,"y":39981.33898804614},"targetPosition":{"x":15986.449168782372,"y":40197.14092814773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"openInterestDeviation Begin","id":"01f5ed3c-22df-4a5e-bc9a-1c1bcd82e187"}}},{"type":"Polygon Vertex","name":"openInterestDeviation End","project":"Superalgos","id":"faa57ea2-d4ae-4e99-a3c5-8f4c81b4a34a","savedPayload":{"position":{"x":16286.40347732929,"y":40191.90520621655},"targetPosition":{"x":15986.449168782372,"y":40197.14092814773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"openInterestDeviation End","id":"5f18a8ed-6d3a-4e97-b2c7-8833ae328ee0"}}}],"id":"7f7d3fc6-4d2a-4089-bcf7-a16c360c5d22","savedPayload":{"position":{"x":15504.254512495414,"y":40884.2212079917},"targetPosition":{"x":15205.396103067891,"y":40858.0744851674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"bullPriceDeviation","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n }\n}","project":"Superalgos","id":"c4087104-30ad-4af1-8803-59af51da41f3","savedPayload":{"position":{"x":16243.030764208715,"y":39714.12037885301},"targetPosition":{"x":16145.36031787157,"y":39997.77595153281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"d8c419ea-638b-43bc-923e-eed6ed4f37ee","savedPayload":{"position":{"x":16145.36031787157,"y":39997.77595153281},"targetPosition":{"x":16047.689871534423,"y":40281.4315242126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"bullPriceDeviation Begin","project":"Superalgos","id":"334d6bde-0a67-4e7e-b0df-3c28eed184b9","savedPayload":{"position":{"x":16317.328085424173,"y":40149.92018017588},"targetPosition":{"x":16047.689871534423,"y":40281.4315242126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"bullPriceDeviation Begin","id":"5856cd48-be9d-43a4-ab20-5215f4d8008f"}}},{"type":"Polygon Vertex","name":"bullPriceDeviation End","project":"Superalgos","id":"be73fa5c-820b-431b-9eba-a7a4a899335a","savedPayload":{"position":{"x":16331.345444214217,"y":40379.10197054975},"targetPosition":{"x":16047.689871534423,"y":40281.4315242126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"bullPriceDeviation End","id":"0f7c9019-cf97-455b-997b-23bb7fd5ee8d"}}}],"id":"5d8bc357-8920-4c8f-b491-d7441fbc1116","savedPayload":{"position":{"x":15477.288439178887,"y":40984.85996368961},"targetPosition":{"x":15205.396103067891,"y":40858.0744851674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"4fab7c9a-d0ea-4a8b-ba5e-b542d1f03aad","savedPayload":{"position":{"x":15205.396103067891,"y":40858.0744851674},"targetPosition":{"x":14993.264068711927,"y":41070.206519523366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[],"id":"60771858-6287-419f-b6db-6ab6166063ba","savedPayload":{"position":{"x":14993.264068711927,"y":41070.206519523366},"targetPosition":{"x":14781.132034355964,"y":41282.33855387933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3a455597-8c02-4f2f-acb0-031e12ecc725","savedPayload":{"position":{"x":14781.132034355964,"y":41282.33855387933},"targetPosition":{"x":14569,"y":41494.470588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"326278f7-adb0-4a6f-b606-1313b910818a","savedPayload":{"position":{"x":14569,"y":41494.470588235294},"targetPosition":{"x":14569,"y":41494.470588235294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}} \ No newline at end of file diff --git a/Projects/Superalgos/Plugins/Learning-Engines/Low-Frequency.json b/Projects/Superalgos/Plugins/Learning-Engines/Low-Frequency.json index b55dd9f40..cb8cd83c1 100644 --- a/Projects/Superalgos/Plugins/Learning-Engines/Low-Frequency.json +++ b/Projects/Superalgos/Plugins/Learning-Engines/Low-Frequency.json @@ -1 +1 @@ -{"type":"Learning Engine","name":"Low-Frequency","project":"Superalgos","learningCurrent":{"type":"Learning Current","name":"New Learning Current","project":"Superalgos","learningEpisode":{"type":"Learning Episode","name":"New Learning Episode","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2cc4ea2e-0c49-4dc4-be14-5c37dba3d4a3","savedPayload":{"position":{"x":11825.790644907258,"y":10354.089002683215},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"5e87e4cf-d3cf-4ca3-90d0-bcc215ff32df","savedPayload":{"position":{"x":11910.207544564291,"y":10379.69658923459},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7073b390-c791-428b-b75d-11d7bef076ee","savedPayload":{"position":{"x":11988.006604858821,"y":10421.281053328523},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f5dc8eea-94d7-41d7-9c44-3b044fa5cbb7","savedPayload":{"position":{"x":12056.198051533946,"y":10477.244327330722},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"beginRate":{"type":"Begin Rate","name":"New Begin Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f36a352e-9711-490f-9020-84bf3731f93c","savedPayload":{"position":{"x":12112.161325536144,"y":10545.435774005848},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"endRate":{"type":"End Rate","name":"New End Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0cd1e3ea-f314-4777-9988-bbde66dd2688","savedPayload":{"position":{"x":12153.745789630078,"y":10623.23483430038},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"1961b061-f041-494f-8c47-004c672c23f3","savedPayload":{"position":{"x":12179.353376181454,"y":10707.651733957411},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"9ffc4653-3d13-4036-b8aa-98e34ea6e497","savedPayload":{"position":{"x":12188,"y":10795.442378864669},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"headOfTheMarket":{"type":"Head Of The Market","name":"New Head Of The Market","config":"{\n\"initialValue\": false\n}","project":"Superalgos","id":"dc3294b4-3754-4154-808a-6531410f6378","savedPayload":{"position":{"x":12179.353376181454,"y":10883.233023771927},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"processDate":{"type":"Process Date","name":"New Process Date","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a009dbfb-9fce-4787-9461-dc63cb0cdf03","savedPayload":{"position":{"x":12153.745789630078,"y":10967.649923428959},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"learningEpisodeCounters":{"type":"Learning Episode Counters","name":"New Learning Episode Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"74d652d9-7439-4a8f-a66e-588f1cb24686","savedPayload":{"position":{"x":10975.784040048437,"y":12210.957080582268},"targetPosition":{"x":10887.993395141179,"y":11769.603704400814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hits":{"type":"Hits","name":"New Hits","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"85c3b8c7-45ed-4edb-9887-704f98a5936b","savedPayload":{"position":{"x":10637.986790282357,"y":12143.765029936958},"targetPosition":{"x":10887.993395141179,"y":11769.603704400814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"fails":{"type":"Fails","name":"New Fails","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"63dba0bf-57a1-4b4b-9f59-9384bb5786b2","savedPayload":{"position":{"x":10446.640018959724,"y":11857.394349308071},"targetPosition":{"x":10887.993395141179,"y":11769.603704400814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"d4dd877b-f7b2-43b4-8da1-c733b60490bc","savedPayload":{"position":{"x":12112.161325536144,"y":11045.44898372349},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningEpisodeStatistics":{"type":"Learning Episode Statistics","name":"New Learning Episode Statistics","project":"Superalgos","hitFail":{"type":"Hit Fail","name":"New Hit Fail","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"9de0458a-6680-427e-a10a-4da95fd1d92a","savedPayload":{"position":{"x":10819.801948466054,"y":12163.640430398615},"targetPosition":{"x":10819.801948466054,"y":11713.640430398615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"83f68d55-7a22-4a0b-b8ca-0fe6b62379a7","savedPayload":{"position":{"x":10501.603896932109,"y":12031.83848193256},"targetPosition":{"x":10819.801948466054,"y":11713.640430398615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"9a435a42-569e-41da-b44b-7f526cedf1e2","savedPayload":{"position":{"x":9919.801948466054,"y":11713.640430398615},"targetPosition":{"x":10369.801948466054,"y":11713.640430398615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e64eb9f2-f221-4670-a8fc-f957e98c11e6","savedPayload":{"position":{"x":10369.801948466054,"y":11713.640430398615},"targetPosition":{"x":10819.801948466054,"y":11713.640430398615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a6562658-9ea6-4966-9c11-eb0e61c05738","savedPayload":{"position":{"x":12056.198051533946,"y":11113.640430398615},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"distanceToLearningEvent":{"type":"Distance To Learning Event","name":"New Distance To Learning Event","project":"Superalgos","id":"df0a5981-a8bc-41a9-a185-da0cf851ecc1","savedPayload":{"position":{"x":11988.006604858821,"y":11169.603704400815},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"candle":{"type":"Candle","name":"New Candle","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a084a254-689b-44d5-8dba-d23a7a34ece2","savedPayload":{"position":{"x":10722.254210369922,"y":12017.64992342896},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"18e8077e-39f8-4160-80e5-a11367fc2763","savedPayload":{"position":{"x":10550.046665805632,"y":11983.395713059039},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"open":{"type":"Open","name":"New Open","project":"Superalgos","id":"13b92322-64e0-42ea-adb1-ec86c33bed20","savedPayload":{"position":{"x":10404.056158835976,"y":11885.847974962906},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"close":{"type":"Close","name":"New Close","project":"Superalgos","id":"c6573019-dd20-49bf-858b-a697cc607a53","savedPayload":{"position":{"x":10306.508420739843,"y":11739.857467993252},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"min":{"type":"Min","name":"New Min","project":"Superalgos","id":"3b69eda4-a6ef-4134-99be-7e839c8b91f1","savedPayload":{"position":{"x":10272.254210369922,"y":11567.64992342896},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"max":{"type":"Max","name":"New Max","project":"Superalgos","id":"881df28f-3b34-44f9-a4e4-c0ce8f745aaf","savedPayload":{"position":{"x":10306.508420739843,"y":11395.44237886467},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"index":{"type":"Index","name":"New Index","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9c63040e-47b7-4152-8fca-1c6cb05eb951","savedPayload":{"position":{"x":10404.056158835974,"y":11249.451871895015},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2dbd259-087c-4a97-97fb-adca5644c50c","savedPayload":{"position":{"x":11910.207544564291,"y":11211.188168494748},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"cycle":{"type":"Cycle","name":"New Cycle","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3d206944-b1cd-4021-8a32-ce89090445e7","savedPayload":{"position":{"x":10508.249741926704,"y":11891.897451993214},"targetPosition":{"x":10696.646623818546,"y":11483.233023771927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4242187f-af2d-4e67-9b39-1f43f85d46a4","savedPayload":{"position":{"x":10304.023420635787,"y":11703.112582445558},"targetPosition":{"x":10696.646623818546,"y":11483.233023771927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"lastBegin":{"type":"Last Begin","name":"New Last Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1b537fe0-045f-4aeb-a94b-416cb38deedb","savedPayload":{"position":{"x":10249.76581818883,"y":11430.3411949159},"targetPosition":{"x":10696.646623818546,"y":11483.233023771927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"lastEnd":{"type":"Last End","name":"New Last End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"37f632a1-a7b2-48b7-90d1-9642c854bc14","savedPayload":{"position":{"x":10366.201494572488,"y":11177.772688282103},"targetPosition":{"x":10696.646623818546,"y":11483.233023771927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"94de14c9-e7a2-48d8-b558-c1753a6708d9","savedPayload":{"position":{"x":11825.790644907258,"y":11236.795755046123},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3d2239d7-fc42-47c7-a71c-08f8dcd4a1e7","savedPayload":{"position":{"x":11738,"y":10795.442378864669},"targetPosition":{"x":11438,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"dcfb0855-7cb2-402f-a960-91abe3eaec2c","savedPayload":{"position":{"x":11438,"y":10795.442378864669},"targetPosition":{"x":11138,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"predictions":{"type":"Predictions","name":"New Predictions","project":"Superalgos","predictions":[{"type":"Prediction","name":"Prediction #1","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e8b61221-4bd0-448d-910c-e2eaabcbc5e0","savedPayload":{"position":{"x":10648.842142333984,"y":11352.683458412142},"targetPosition":{"x":10688,"y":11055.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"69821a50-ce36-412e-8e63-fca34d4514bc","savedPayload":{"position":{"x":10538,"y":11315.057621135331},"targetPosition":{"x":10688,"y":11055.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"predictionValue":{"type":"Prediction Value","name":"New Prediction Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b5f72e48-36d1-4eeb-90aa-ebe7e58cc951","savedPayload":{"position":{"x":10449.99399791263,"y":11237.878428702616},"targetPosition":{"x":10688,"y":11055.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"62a7f50c-9462-4367-b2c5-e31525c2a2f3","savedPayload":{"position":{"x":10688,"y":11055.25},"targetPosition":{"x":10838,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Prediction","name":"Prediction #2","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b92a8ffb-5719-43b4-92d3-9c0e66a71b22","savedPayload":{"position":{"x":10395.563950162054,"y":11183.448380952039},"targetPosition":{"x":10578.192378864669,"y":10945.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"bd3603fe-9f87-42fc-9678-137524809cc8","savedPayload":{"position":{"x":10318.384757729338,"y":11095.442378864669},"targetPosition":{"x":10578.192378864669,"y":10945.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"predictionValue":{"type":"Prediction Value","name":"New Prediction Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f11896c7-53a2-4b17-9c5f-c4472a76086d","savedPayload":{"position":{"x":10280.758920452527,"y":10984.600236530685},"targetPosition":{"x":10578.192378864669,"y":10945.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"91e5bc0f-f350-4cbe-a1eb-a1a0d02a480f","savedPayload":{"position":{"x":10578.192378864669,"y":10945.442378864669},"targetPosition":{"x":10838,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Prediction","name":"Prediction #3","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ef6ce697-f709-41e8-bcbe-c8e9d530fe87","savedPayload":{"position":{"x":10260.836140246614,"y":10910.247408574196},"targetPosition":{"x":10538,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ed62bdfa-7b1b-4bee-8f49-f9706b4fb0c9","savedPayload":{"position":{"x":10238,"y":10795.442378864669},"targetPosition":{"x":10538,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"predictionValue":{"type":"Prediction Value","name":"New Prediction Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f5862cb6-db82-4290-b0b0-2147c0e57fdd","savedPayload":{"position":{"x":10260.836140246614,"y":10680.637349155142},"targetPosition":{"x":10538,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"384c3428-630d-4bc2-938c-4c0971bbf626","savedPayload":{"position":{"x":10538,"y":10795.442378864669},"targetPosition":{"x":10838,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Prediction","name":"Prediction #4","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7ab9a16c-1663-4282-8134-496610a3a96e","savedPayload":{"position":{"x":10280.758920452527,"y":10606.284521198653},"targetPosition":{"x":10578.192378864669,"y":10645.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7eb66623-e9d6-4bc7-85d3-bd9834f97af0","savedPayload":{"position":{"x":10318.384757729338,"y":10495.442378864669},"targetPosition":{"x":10578.192378864669,"y":10645.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"predictionValue":{"type":"Prediction Value","name":"New Prediction Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b87d98c5-99bc-4cfa-94e4-d273e1f7bc34","savedPayload":{"position":{"x":10395.563950162054,"y":10407.4363767773},"targetPosition":{"x":10578.192378864669,"y":10645.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e15b0424-43fc-4108-b788-f190606e8238","savedPayload":{"position":{"x":10578.192378864669,"y":10645.442378864669},"targetPosition":{"x":10838,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Prediction","name":"Prediction #5","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"431527cc-03ac-40f3-bbf4-fba460550689","savedPayload":{"position":{"x":10449.99399791263,"y":10353.006329026723},"targetPosition":{"x":10688,"y":10535.634757729338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"73c2a2ce-4985-45d8-983d-89cdd3680887","savedPayload":{"position":{"x":10538,"y":10275.827136594007},"targetPosition":{"x":10688,"y":10535.634757729338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"predictionValue":{"type":"Prediction Value","name":"New Prediction Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2697041f-4e24-43fb-b02f-ad3cd9691003","savedPayload":{"position":{"x":10648.842142333984,"y":10238.201299317196},"targetPosition":{"x":10688,"y":10535.634757729338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cf0cbd6b-afb9-41e5-b52c-842afefbb5f7","savedPayload":{"position":{"x":10688,"y":10535.634757729338},"targetPosition":{"x":10838,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"15e998e4-363a-4f16-8a51-f9ec7618dde6","savedPayload":{"position":{"x":10838,"y":10795.442378864669},"targetPosition":{"x":11138,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1b545b9a-9adf-4037-b72a-6f52e4cf6267","savedPayload":{"position":{"x":11138,"y":10795.442378864669},"targetPosition":{"x":11138,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}} \ No newline at end of file +{"type":"Learning Engine","name":"Low-Frequency","project":"Superalgos","learningCurrent":{"type":"Learning Current","name":"New Learning Current","project":"Superalgos","learningEpisode":{"type":"Learning Episode","name":"New Learning Episode","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2cc4ea2e-0c49-4dc4-be14-5c37dba3d4a3","savedPayload":{"position":{"x":11825.790644907258,"y":10354.089002683215},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"5e87e4cf-d3cf-4ca3-90d0-bcc215ff32df","savedPayload":{"position":{"x":11910.207544564291,"y":10379.69658923459},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7073b390-c791-428b-b75d-11d7bef076ee","savedPayload":{"position":{"x":11988.006604858821,"y":10421.281053328523},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f5dc8eea-94d7-41d7-9c44-3b044fa5cbb7","savedPayload":{"position":{"x":12056.198051533946,"y":10477.244327330722},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"beginRate":{"type":"Begin Rate","name":"New Begin Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f36a352e-9711-490f-9020-84bf3731f93c","savedPayload":{"position":{"x":12112.161325536144,"y":10545.435774005848},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"endRate":{"type":"End Rate","name":"New End Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0cd1e3ea-f314-4777-9988-bbde66dd2688","savedPayload":{"position":{"x":12153.745789630078,"y":10623.23483430038},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"1961b061-f041-494f-8c47-004c672c23f3","savedPayload":{"position":{"x":12179.353376181454,"y":10707.651733957411},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"9ffc4653-3d13-4036-b8aa-98e34ea6e497","savedPayload":{"position":{"x":12188,"y":10795.442378864669},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"headOfTheMarket":{"type":"Head Of The Market","name":"New Head Of The Market","config":"{\n\"initialValue\": false\n}","project":"Superalgos","id":"dc3294b4-3754-4154-808a-6531410f6378","savedPayload":{"position":{"x":12179.353376181454,"y":10883.233023771927},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"processDate":{"type":"Process Date","name":"New Process Date","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a009dbfb-9fce-4787-9461-dc63cb0cdf03","savedPayload":{"position":{"x":12153.745789630078,"y":10967.649923428959},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"learningEpisodeCounters":{"type":"Learning Episode Counters","name":"New Learning Episode Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"74d652d9-7439-4a8f-a66e-588f1cb24686","savedPayload":{"position":{"x":10975.784040048437,"y":12210.957080582268},"targetPosition":{"x":10887.993395141179,"y":11769.603704400814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hits":{"type":"Hits","name":"New Hits","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"85c3b8c7-45ed-4edb-9887-704f98a5936b","savedPayload":{"position":{"x":10637.986790282357,"y":12143.765029936958},"targetPosition":{"x":10887.993395141179,"y":11769.603704400814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"fails":{"type":"Fails","name":"New Fails","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"63dba0bf-57a1-4b4b-9f59-9384bb5786b2","savedPayload":{"position":{"x":10446.640018959724,"y":11857.394349308071},"targetPosition":{"x":10887.993395141179,"y":11769.603704400814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"d4dd877b-f7b2-43b4-8da1-c733b60490bc","savedPayload":{"position":{"x":12112.161325536144,"y":11045.44898372349},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningEpisodeStatistics":{"type":"Learning Episode Statistics","name":"New Learning Episode Statistics","project":"Superalgos","hitFail":{"type":"Hit Fail","name":"New Hit Fail","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"9de0458a-6680-427e-a10a-4da95fd1d92a","savedPayload":{"position":{"x":10819.801948466054,"y":12163.640430398615},"targetPosition":{"x":10819.801948466054,"y":11713.640430398615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"83f68d55-7a22-4a0b-b8ca-0fe6b62379a7","savedPayload":{"position":{"x":10501.603896932109,"y":12031.83848193256},"targetPosition":{"x":10819.801948466054,"y":11713.640430398615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"9a435a42-569e-41da-b44b-7f526cedf1e2","savedPayload":{"position":{"x":9919.801948466054,"y":11713.640430398615},"targetPosition":{"x":10369.801948466054,"y":11713.640430398615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e64eb9f2-f221-4670-a8fc-f957e98c11e6","savedPayload":{"position":{"x":10369.801948466054,"y":11713.640430398615},"targetPosition":{"x":10819.801948466054,"y":11713.640430398615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a6562658-9ea6-4966-9c11-eb0e61c05738","savedPayload":{"position":{"x":12056.198051533946,"y":11113.640430398615},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"distanceToLearningEvent":{"type":"Distance To Learning Event","name":"New Distance To Learning Event","project":"Superalgos","id":"df0a5981-a8bc-41a9-a185-da0cf851ecc1","savedPayload":{"position":{"x":11988.006604858821,"y":11169.603704400815},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"candle":{"type":"Candle","name":"New Candle","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a084a254-689b-44d5-8dba-d23a7a34ece2","savedPayload":{"position":{"x":10722.254210369922,"y":12017.64992342896},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"18e8077e-39f8-4160-80e5-a11367fc2763","savedPayload":{"position":{"x":10550.046665805632,"y":11983.395713059039},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"open":{"type":"Open","name":"New Open","project":"Superalgos","id":"13b92322-64e0-42ea-adb1-ec86c33bed20","savedPayload":{"position":{"x":10404.056158835976,"y":11885.847974962906},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"close":{"type":"Close","name":"New Close","project":"Superalgos","id":"c6573019-dd20-49bf-858b-a697cc607a53","savedPayload":{"position":{"x":10306.508420739843,"y":11739.857467993252},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"min":{"type":"Min","name":"New Min","project":"Superalgos","id":"3b69eda4-a6ef-4134-99be-7e839c8b91f1","savedPayload":{"position":{"x":10272.254210369922,"y":11567.64992342896},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"max":{"type":"Max","name":"New Max","project":"Superalgos","id":"881df28f-3b34-44f9-a4e4-c0ce8f745aaf","savedPayload":{"position":{"x":10306.508420739843,"y":11395.44237886467},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"index":{"type":"Index","name":"New Index","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9c63040e-47b7-4152-8fca-1c6cb05eb951","savedPayload":{"position":{"x":10404.056158835974,"y":11249.451871895015},"targetPosition":{"x":10722.254210369922,"y":11567.64992342896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2dbd259-087c-4a97-97fb-adca5644c50c","savedPayload":{"position":{"x":11910.207544564291,"y":11211.188168494748},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"cycle":{"type":"Cycle","name":"New Cycle","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3d206944-b1cd-4021-8a32-ce89090445e7","savedPayload":{"position":{"x":10508.249741926704,"y":11891.897451993214},"targetPosition":{"x":10696.646623818546,"y":11483.233023771927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4242187f-af2d-4e67-9b39-1f43f85d46a4","savedPayload":{"position":{"x":10304.023420635787,"y":11703.112582445558},"targetPosition":{"x":10696.646623818546,"y":11483.233023771927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"lastBegin":{"type":"Last Begin","name":"New Last Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1b537fe0-045f-4aeb-a94b-416cb38deedb","savedPayload":{"position":{"x":10249.76581818883,"y":11430.3411949159},"targetPosition":{"x":10696.646623818546,"y":11483.233023771927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"lastEnd":{"type":"Last End","name":"New Last End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"37f632a1-a7b2-48b7-90d1-9642c854bc14","savedPayload":{"position":{"x":10366.201494572488,"y":11177.772688282103},"targetPosition":{"x":10696.646623818546,"y":11483.233023771927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"94de14c9-e7a2-48d8-b558-c1753a6708d9","savedPayload":{"position":{"x":11825.790644907258,"y":11236.795755046123},"targetPosition":{"x":11738,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3d2239d7-fc42-47c7-a71c-08f8dcd4a1e7","savedPayload":{"position":{"x":11738,"y":10795.442378864669},"targetPosition":{"x":11438,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"dcfb0855-7cb2-402f-a960-91abe3eaec2c","savedPayload":{"position":{"x":11438,"y":10795.442378864669},"targetPosition":{"x":11138,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"features":{"type":"Features","name":"New Features","project":"Superalgos","features":[{"type":"Feature","name":"Feature #1","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a1ea4069-8754-4aa0-804c-5b982a4f57b3","savedPayload":{"position":{"x":11695.241079547473,"y":11284.600236530685},"targetPosition":{"x":11397.807621135331,"y":11245.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"280399f2-172c-42c0-a33d-6111d5630d9d","savedPayload":{"position":{"x":11657.615242270662,"y":11395.442378864669},"targetPosition":{"x":11397.807621135331,"y":11245.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"featureValue":{"type":"Feature Value","name":"New Feature Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9b9ccab3-68ea-42eb-bfa0-d75e2c948b92","savedPayload":{"position":{"x":11580.436049837946,"y":11483.448380952039},"targetPosition":{"x":11397.807621135331,"y":11245.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"125d27f7-a1e0-4a4f-a9ef-2b99dd89ced2","savedPayload":{"position":{"x":11397.807621135331,"y":11245.442378864669},"targetPosition":{"x":11138,"y":11095.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Feature","name":"Feature #2","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a57456db-3f6e-4b42-a6c2-388f0acf1f96","savedPayload":{"position":{"x":11526.00600208737,"y":11537.878428702616},"targetPosition":{"x":11288,"y":11355.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"51c61e32-6813-4ade-adb1-387eeef47f92","savedPayload":{"position":{"x":11438,"y":11615.057621135331},"targetPosition":{"x":11288,"y":11355.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"featureValue":{"type":"Feature Value","name":"New Feature Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"272642e7-3b2b-4a2e-b64b-f5df4ce99ffb","savedPayload":{"position":{"x":11327.157857666016,"y":11652.683458412142},"targetPosition":{"x":11288,"y":11355.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"41b3f0e1-1975-4c06-adea-3590ee17178c","savedPayload":{"position":{"x":11288,"y":11355.25},"targetPosition":{"x":11138,"y":11095.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Feature","name":"Feature #3","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2727a1f2-55d7-4c9d-9f2e-93f58ea56c61","savedPayload":{"position":{"x":11252.805029709527,"y":11672.606238618055},"targetPosition":{"x":11138,"y":11395.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e43825b6-3f1a-4da9-8de6-45c0a4f9b95a","savedPayload":{"position":{"x":11138,"y":11695.442378864669},"targetPosition":{"x":11138,"y":11395.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"featureValue":{"type":"Feature Value","name":"New Feature Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7e13ffba-020a-4cb1-8673-9c7557f7d8e0","savedPayload":{"position":{"x":11023.194970290473,"y":11672.606238618055},"targetPosition":{"x":11138,"y":11395.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"47ee62a9-a1e6-488b-9bfe-c4e5e3c769ce","savedPayload":{"position":{"x":11138,"y":11395.442378864669},"targetPosition":{"x":11138,"y":11095.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Feature","name":"Feature #4","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"78b655b0-ad3f-4806-b18a-31a23dcae1b0","savedPayload":{"position":{"x":10948.842142333984,"y":11652.683458412142},"targetPosition":{"x":10988,"y":11355.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"67f4e323-f8de-4ae8-a796-51645820c592","savedPayload":{"position":{"x":10838,"y":11615.057621135331},"targetPosition":{"x":10988,"y":11355.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"featureValue":{"type":"Feature Value","name":"New Feature Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"328904ac-d74f-45d6-a8fd-b1b8985f3e62","savedPayload":{"position":{"x":10749.99399791263,"y":11537.878428702616},"targetPosition":{"x":10988,"y":11355.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"68326e37-b73b-49db-8ae3-bc31fd39aa12","savedPayload":{"position":{"x":10988,"y":11355.25},"targetPosition":{"x":11138,"y":11095.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Feature","name":"Feature #5","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8233028e-c9ea-49c6-a6d6-90ec4bf8c2e7","savedPayload":{"position":{"x":10695.563950162054,"y":11483.448380952039},"targetPosition":{"x":10878.192378864669,"y":11245.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d606f045-7bb1-4cdc-8cb0-927d9a3fa4d3","savedPayload":{"position":{"x":10618.384757729338,"y":11395.442378864669},"targetPosition":{"x":10878.192378864669,"y":11245.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"featureValue":{"type":"Feature Value","name":"New Feature Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0dbe2dab-bbd5-429e-98d0-560418546cbd","savedPayload":{"position":{"x":10580.758920452527,"y":11284.600236530685},"targetPosition":{"x":10878.192378864669,"y":11245.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0562dca2-7a6c-435b-a25c-0ca115e67a56","savedPayload":{"position":{"x":10878.192378864669,"y":11245.442378864669},"targetPosition":{"x":11138,"y":11095.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9a86eb73-4bfe-4183-9479-ba927e7148bf","savedPayload":{"position":{"x":11138,"y":11095.442378864669},"targetPosition":{"x":11138,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"labels":{"type":"Labels","name":"New Labels","project":"Superalgos","labels":[{"type":"Label","name":"Label #1","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6454d003-7619-4d7a-8a5f-589358f409cf","savedPayload":{"position":{"x":10648.842142333984,"y":11352.683458412142},"targetPosition":{"x":10688,"y":11055.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"553575b7-1ed6-437c-96b2-b8f86b3ccdea","savedPayload":{"position":{"x":10538,"y":11315.057621135331},"targetPosition":{"x":10688,"y":11055.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"labelValue":{"type":"Label Value","name":"New Label Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6d86834e-1c90-4ff4-9fd3-b144b1513481","savedPayload":{"position":{"x":10449.99399791263,"y":11237.878428702616},"targetPosition":{"x":10688,"y":11055.25},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1fee71a7-fd9a-445e-b96e-ab951ddb7ce0","savedPayload":{"position":{"x":10688,"y":11055.25},"targetPosition":{"x":10838,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Label","name":"Label #2","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"41e1a807-77d5-47b0-9b4e-92d513f1a6c4","savedPayload":{"position":{"x":10395.563950162054,"y":11183.448380952039},"targetPosition":{"x":10578.192378864669,"y":10945.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9d438062-39d2-4eb0-9f3c-43a0256260dd","savedPayload":{"position":{"x":10318.384757729338,"y":11095.442378864669},"targetPosition":{"x":10578.192378864669,"y":10945.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"labelValue":{"type":"Label Value","name":"New Label Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2bb8070c-1af9-4489-a2c6-dc8688f134b7","savedPayload":{"position":{"x":10280.758920452527,"y":10984.600236530685},"targetPosition":{"x":10578.192378864669,"y":10945.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e0171f73-1edf-4267-90cd-5dea6e943615","savedPayload":{"position":{"x":10578.192378864669,"y":10945.442378864669},"targetPosition":{"x":10838,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Label","name":"Label #3","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4e5174fe-56fc-477e-b1b5-039626da1535","savedPayload":{"position":{"x":10260.836140246614,"y":10910.247408574196},"targetPosition":{"x":10538,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8a52e548-0a35-4de7-baf3-4f2aa6682f87","savedPayload":{"position":{"x":10238,"y":10795.442378864669},"targetPosition":{"x":10538,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"labelValue":{"type":"Label Value","name":"New Label Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"42288a87-8588-4029-b438-1de9f320813a","savedPayload":{"position":{"x":10260.836140246614,"y":10680.637349155142},"targetPosition":{"x":10538,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c181b6a6-7d2b-43d0-b270-a1186432a159","savedPayload":{"position":{"x":10538,"y":10795.442378864669},"targetPosition":{"x":10838,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Label","name":"Label #4","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"15fcf1cb-e299-410c-b12f-e7970797e2db","savedPayload":{"position":{"x":10280.758920452527,"y":10606.284521198653},"targetPosition":{"x":10578.192378864669,"y":10645.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"bf386da6-ca84-4bb9-98d2-5c56982cc30f","savedPayload":{"position":{"x":10318.384757729338,"y":10495.442378864669},"targetPosition":{"x":10578.192378864669,"y":10645.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"labelValue":{"type":"Label Value","name":"New Label Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"331141ac-bf48-4b42-b90f-da0489dd7e67","savedPayload":{"position":{"x":10395.563950162054,"y":10407.4363767773},"targetPosition":{"x":10578.192378864669,"y":10645.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8fad5d9b-209a-4137-8e67-a57b9a4a807f","savedPayload":{"position":{"x":10578.192378864669,"y":10645.442378864669},"targetPosition":{"x":10838,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Label","name":"Label #5","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2116043f-057f-4b3a-81e1-54cc72e862ae","savedPayload":{"position":{"x":10449.99399791263,"y":10353.006329026723},"targetPosition":{"x":10688,"y":10535.634757729338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a1cf4427-2d29-4b22-b56a-1871036bb452","savedPayload":{"position":{"x":10538,"y":10275.827136594007},"targetPosition":{"x":10688,"y":10535.634757729338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"labelValue":{"type":"Label Value","name":"New Label Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a6cbde9b-6712-43c8-8639-dd0d552c9e37","savedPayload":{"position":{"x":10648.842142333984,"y":10238.201299317196},"targetPosition":{"x":10688,"y":10535.634757729338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"92f761d8-160b-4de1-b650-433030924aef","savedPayload":{"position":{"x":10688,"y":10535.634757729338},"targetPosition":{"x":10838,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8094a5ca-0357-46be-a391-2914bddce83f","savedPayload":{"position":{"x":10838,"y":10795.442378864669},"targetPosition":{"x":11138,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"predictions":{"type":"Predictions","name":"New Predictions","project":"Superalgos","predictions":[{"type":"Prediction","name":"Prediction #1","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e8b61221-4bd0-448d-910c-e2eaabcbc5e0","savedPayload":{"position":{"x":10580.758920452527,"y":10306.284521198653},"targetPosition":{"x":10878.192378864669,"y":10345.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"69821a50-ce36-412e-8e63-fca34d4514bc","savedPayload":{"position":{"x":10618.384757729338,"y":10195.442378864669},"targetPosition":{"x":10878.192378864669,"y":10345.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"predictionValue":{"type":"Prediction Value","name":"New Prediction Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b5f72e48-36d1-4eeb-90aa-ebe7e58cc951","savedPayload":{"position":{"x":10695.563950162054,"y":10107.4363767773},"targetPosition":{"x":10878.192378864669,"y":10345.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"62a7f50c-9462-4367-b2c5-e31525c2a2f3","savedPayload":{"position":{"x":10878.192378864669,"y":10345.442378864669},"targetPosition":{"x":11138,"y":10495.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Prediction","name":"Prediction #2","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b92a8ffb-5719-43b4-92d3-9c0e66a71b22","savedPayload":{"position":{"x":10749.99399791263,"y":10053.006329026723},"targetPosition":{"x":10988,"y":10235.634757729338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"bd3603fe-9f87-42fc-9678-137524809cc8","savedPayload":{"position":{"x":10838,"y":9975.827136594007},"targetPosition":{"x":10988,"y":10235.634757729338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"predictionValue":{"type":"Prediction Value","name":"New Prediction Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f11896c7-53a2-4b17-9c5f-c4472a76086d","savedPayload":{"position":{"x":10948.842142333984,"y":9938.201299317196},"targetPosition":{"x":10988,"y":10235.634757729338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"91e5bc0f-f350-4cbe-a1eb-a1a0d02a480f","savedPayload":{"position":{"x":10988,"y":10235.634757729338},"targetPosition":{"x":11138,"y":10495.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Prediction","name":"Prediction #3","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ef6ce697-f709-41e8-bcbe-c8e9d530fe87","savedPayload":{"position":{"x":11023.194970290473,"y":9918.278519111283},"targetPosition":{"x":11138,"y":10195.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ed62bdfa-7b1b-4bee-8f49-f9706b4fb0c9","savedPayload":{"position":{"x":11138,"y":9895.442378864669},"targetPosition":{"x":11138,"y":10195.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"predictionValue":{"type":"Prediction Value","name":"New Prediction Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f5862cb6-db82-4290-b0b0-2147c0e57fdd","savedPayload":{"position":{"x":11252.805029709527,"y":9918.278519111283},"targetPosition":{"x":11138,"y":10195.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"384c3428-630d-4bc2-938c-4c0971bbf626","savedPayload":{"position":{"x":11138,"y":10195.442378864669},"targetPosition":{"x":11138,"y":10495.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Prediction","name":"Prediction #4","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7ab9a16c-1663-4282-8134-496610a3a96e","savedPayload":{"position":{"x":11327.157857666016,"y":9938.201299317196},"targetPosition":{"x":11288,"y":10235.634757729338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7eb66623-e9d6-4bc7-85d3-bd9834f97af0","savedPayload":{"position":{"x":11438,"y":9975.827136594007},"targetPosition":{"x":11288,"y":10235.634757729338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"predictionValue":{"type":"Prediction Value","name":"New Prediction Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b87d98c5-99bc-4cfa-94e4-d273e1f7bc34","savedPayload":{"position":{"x":11526.00600208737,"y":10053.006329026723},"targetPosition":{"x":11288,"y":10235.634757729338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e15b0424-43fc-4108-b788-f190606e8238","savedPayload":{"position":{"x":11288,"y":10235.634757729338},"targetPosition":{"x":11138,"y":10495.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Prediction","name":"Prediction #5","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"431527cc-03ac-40f3-bbf4-fba460550689","savedPayload":{"position":{"x":11580.436049837946,"y":10107.4363767773},"targetPosition":{"x":11397.807621135331,"y":10345.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"73c2a2ce-4985-45d8-983d-89cdd3680887","savedPayload":{"position":{"x":11657.615242270662,"y":10195.442378864669},"targetPosition":{"x":11397.807621135331,"y":10345.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"predictionValue":{"type":"Prediction Value","name":"New Prediction Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2697041f-4e24-43fb-b02f-ad3cd9691003","savedPayload":{"position":{"x":11695.241079547473,"y":10306.284521198653},"targetPosition":{"x":11397.807621135331,"y":10345.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cf0cbd6b-afb9-41e5-b52c-842afefbb5f7","savedPayload":{"position":{"x":11397.807621135331,"y":10345.442378864669},"targetPosition":{"x":11138,"y":10495.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"15e998e4-363a-4f16-8a51-f9ec7618dde6","savedPayload":{"position":{"x":11138,"y":10495.442378864669},"targetPosition":{"x":11138,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1b545b9a-9adf-4037-b72a-6f52e4cf6267","savedPayload":{"position":{"x":11138,"y":10795.442378864669},"targetPosition":{"x":11138,"y":10795.442378864669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}} \ No newline at end of file diff --git a/Projects/Superalgos/Plugins/Learning-Mines/Masters.json b/Projects/Superalgos/Plugins/Learning-Mines/Masters.json index 9ed87aac9..3c925cd75 100644 --- a/Projects/Superalgos/Plugins/Learning-Mines/Masters.json +++ b/Projects/Superalgos/Plugins/Learning-Mines/Masters.json @@ -1 +1 @@ -{"type":"Learning Mine","name":"Masters","config":"{ \n\"codeName\": \"Masters\"\n}","project":"Superalgos","learningBots":[{"type":"Learning Bot","name":"Low Frequency","config":"{\n\"codeName\": \"Low-Frequency\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Learning","config":"{\n \"codeName\": \"Learning\",\n \"sessionRunWaitTime\": 5000,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Low-Frequency-Learning-Process\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[],"outputDatasetFolders":[{"type":"Output Dataset Folder","name":"Learning Engine","project":"Superalgos","outputDatasets":[],"outputDatasetFolders":[{"type":"Output Dataset Folder","name":"Learning Episode","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Learning Episode Counters","project":"Superalgos","id":"c0de6b69-60e2-4574-890a-35743f75c569","savedPayload":{"position":{"x":10770.578330127608,"y":18237.318563914418},"targetPosition":{"x":10828.2531163121,"y":17791.02984678326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ac1bc967-9c9f-47f0-8815-535abd7cb777"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Learning Episode Counters","project":"Superalgos","id":"da23a8ff-8b3d-4caa-a27c-f59352911212","savedPayload":{"position":{"x":10647.18050284652,"y":18202.991870096994},"targetPosition":{"x":10828.2531163121,"y":17791.02984678326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"6881069e-a4d1-4b41-892f-557d2031adea"}}},{"type":"Output Dataset","name":"Multi-Period-Market Learning Episode Statistics","project":"Superalgos","id":"dfdcb71e-c123-429e-bc2d-cf33963378d6","savedPayload":{"position":{"x":10538.452101828116,"y":18135.29046318318},"targetPosition":{"x":10828.2531163121,"y":17791.02984678326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"8408c316-e04d-4b0d-8c81-1bf3b4126894"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Learning Episode Statistics","project":"Superalgos","id":"fa9e000d-199c-4ed4-b10f-6c586bfc2fa5","savedPayload":{"position":{"x":10453.201655490207,"y":18039.69910852537},"targetPosition":{"x":10828.2531163121,"y":17791.02984678326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"553a0b49-2a61-41c4-ac95-f762051c1cab"}}},{"type":"Output Dataset","name":"Multi-Period-Market Episode Candle","project":"Superalgos","id":"a9a7b1fe-ecff-4d08-bd3b-297e4263c703","savedPayload":{"position":{"x":10398.335647991167,"y":17923.962049174253},"targetPosition":{"x":10828.2531163121,"y":17791.02984678326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"a08a3974-75ac-4a2b-bc09-f80547a61381"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Candle","project":"Superalgos","id":"d80bea92-bca6-4826-aa32-34bc7c13f952","savedPayload":{"position":{"x":10378.298996957856,"y":17797.455613363665},"targetPosition":{"x":10828.2531163121,"y":17791.02984678326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"46221186-fff7-4333-a087-a32a649e9ce8"}}},{"type":"Output Dataset","name":"Multi-Period-Market Distance To Learning Event","project":"Superalgos","id":"0b8ef0c4-c7a9-48cf-9f9b-e48d32f5ed27","savedPayload":{"position":{"x":10394.71495269444,"y":17670.42860016024},"targetPosition":{"x":10828.2531163121,"y":17791.02984678326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"0d746a41-6726-41fd-9312-862b6835b8ba"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Distance To Learning Event","project":"Superalgos","id":"a8951035-4bf1-4d0d-8666-879b2c481b6d","savedPayload":{"position":{"x":10446.25359209659,"y":17553.171982714983},"targetPosition":{"x":10828.2531163121,"y":17791.02984678326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"53933157-c1f5-46ec-aaa4-9d247f99a6c5"}}},{"type":"Output Dataset","name":"Multi-Period-Market Current Episode","project":"Superalgos","id":"45db7ab1-a5d3-43d2-8be2-7a82c0ea28a9","savedPayload":{"position":{"x":10528.739561112034,"y":17455.18519482135},"targetPosition":{"x":10828.2531163121,"y":17791.02984678326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"d3226ade-021e-4a24-bc2e-f1f6c812d951"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Current Episode","project":"Superalgos","id":"12216c85-0d31-4225-bcf4-527d6ced8bf0","savedPayload":{"position":{"x":10635.490337094088,"y":17384.406543284622},"targetPosition":{"x":10828.2531163121,"y":17791.02984678326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"7b64dca9-e495-4d53-b966-bdf1225a3d52"}}}],"outputDatasetFolders":[],"id":"281a85a9-56d1-4709-b9fc-f7320da8ec35","savedPayload":{"position":{"x":10828.2531163121,"y":17791.02984678326},"targetPosition":{"x":11272.712869579913,"y":17720.63433751516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Predictions","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Predictions","project":"Superalgos","id":"dc41eb8a-0328-49c1-8be8-23fa10e16dd1","savedPayload":{"position":{"x":10569.407501683745,"y":17209.653077564137},"targetPosition":{"x":10989.518693607486,"y":17370.91865485952},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"cb3aee40-6019-4f0b-8acc-6f384e414651"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Predictions","project":"Superalgos","id":"44072e54-d82e-43f8-bd35-18b0cf2e305c","savedPayload":{"position":{"x":10919.123184339382,"y":16926.458901591708},"targetPosition":{"x":10989.518693607486,"y":17370.91865485952},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"cbca15ec-5937-4dbb-9750-d851d120a658"}}}],"outputDatasetFolders":[],"id":"088959bd-60e1-4ed0-9b81-3ee723c4ecf1","savedPayload":{"position":{"x":10989.518693607486,"y":17370.91865485952},"targetPosition":{"x":11272.712869579913,"y":17720.63433751516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8c60fcf2-98fb-4947-86a2-76c33de06b82","savedPayload":{"position":{"x":11272.712869579913,"y":17720.63433751516},"targetPosition":{"x":11692.824061503654,"y":17881.899914810543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Learning System","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Learning System Errors","project":"Superalgos","id":"af1d5e0d-c9aa-4b6f-8007-1902a29e887b","savedPayload":{"position":{"x":11074.177929372798,"y":17583.675549167445},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2a487ee8-0eb4-497f-84c9-f647b16dd17a"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Learning System Errors","project":"Superalgos","id":"278c4aa0-eb89-40f0-8a88-d775e2a04db3","savedPayload":{"position":{"x":11061.54117445673,"y":17510.436320969104},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"57d6ac5b-46a8-487d-88ac-48ddd012e842"}}},{"type":"Output Dataset","name":"Multi-Period-Market Learning System Highlights","project":"Superalgos","id":"46b16233-7168-4905-b2fd-341c59d64983","savedPayload":{"position":{"x":11061.13154916472,"y":17436.11603888529},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"0f15bfca-8a05-4a4d-92b4-ba0c78d62dd1"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Learning System Highlights","project":"Superalgos","id":"7beaf2ec-e4e5-4a3a-b0e1-89a0576b378b","savedPayload":{"position":{"x":11072.96022700692,"y":17362.741966472735},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"4b724ede-ed95-4c87-b555-294511613b76"}}},{"type":"Output Dataset","name":"Multi-Period-Market Learning System Values","project":"Superalgos","id":"a3a6d5d5-d6c3-435d-9de2-6d947ee8b7d0","savedPayload":{"position":{"x":11096.704552486857,"y":17292.31555715492},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"d1702db2-e4e8-4e01-8a31-9e7b23cf944f"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Learning System Values","project":"Superalgos","id":"cad39218-ce64-4383-b87a-59fe25082d3b","savedPayload":{"position":{"x":11131.716842302276,"y":17226.75785979009},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"bdcf18f2-ab49-4b5c-8220-07e4d9a76880"}}},{"type":"Output Dataset","name":"Multi-Period-Market Learning System Status","project":"Superalgos","id":"bbb23948-92bb-4837-9e07-4e9152820d30","savedPayload":{"position":{"x":11177.042052457236,"y":17167.857117466196},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"0e09e729-0b1d-411d-b7ed-c9b49979326c"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Learning System Status","project":"Superalgos","id":"c45bde8f-5bc9-4437-a437-287716e0e760","savedPayload":{"position":{"x":11231.44382937272,"y":17117.219988891055},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"3deef37c-60ad-4137-a5df-fbbf450a161e"}}},{"type":"Output Dataset","name":"Multi-Period-Market Learning System Progress","project":"Superalgos","id":"549dc3c2-e25e-4ccb-9ea3-1d33314490de","savedPayload":{"position":{"x":11293.43823438932,"y":17076.227722931053},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7d52a48e-8f44-485a-b898-1ecf3de2b642"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Learning System Progress","project":"Superalgos","id":"1aaed2c8-99ae-490b-bf3d-57b22467c08e","savedPayload":{"position":{"x":11361.334221745532,"y":17045.99848174272},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"308caaa5-5821-44a3-a971-119f5b5a2f3a"}}},{"type":"Output Dataset","name":"Multi-Period-Market Learning System Running","project":"Superalgos","id":"e8fed65e-52f6-4ddd-88b1-be8f4f897484","savedPayload":{"position":{"x":11433.279765897913,"y":17027.356840223925},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"beaa91a9-b48f-4a2e-9326-ac1eaa76f7fc"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Learning System Running","project":"Superalgos","id":"61e54a31-daec-426c-80be-dfaafe4032b4","savedPayload":{"position":{"x":11507.312379950019,"y":17020.811293760165},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"704e2e55-c731-4405-a0ac-bd587a502b0f"}}},{"type":"Output Dataset","name":"Multi-Period-Market Learning System Announcements","project":"Superalgos","id":"c271ce7a-4191-495f-83d1-dd8224d81f9b","savedPayload":{"position":{"x":11581.412647179131,"y":17026.540387796005},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4da28d63-2f82-4bac-acaf-b55d96c67ace"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Learning System Announcements","project":"Superalgos","id":"75da5deb-edca-41ab-844e-fe15435eef2d","savedPayload":{"position":{"x":11653.559305460221,"y":17044.38784758078},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"56438754-6219-4a56-b281-4bbafb02f8d9"}}},{"type":"Output Dataset","name":"Multi-Period-Market Learning System Warnings","project":"Superalgos","id":"3717dd62-aa6f-4f36-81ca-2b1c563831b6","savedPayload":{"position":{"x":11721.78438202768,"y":17073.86684093642},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"3a3d51a9-6eb8-4267-a00b-07ab26516721"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Learning System Warnings","project":"Superalgos","id":"e3259d83-3e3c-48a1-a096-a95d54d25977","savedPayload":{"position":{"x":11784.226874642249,"y":17114.17325777018},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"1bdb790b-6e98-4cbc-8463-036d7d342d12"}}},{"type":"Output Dataset","name":"Multi-Period-Market Learning System Infos","project":"Superalgos","id":"ae44851a-0bce-4c81-b65d-d5e831129c82","savedPayload":{"position":{"x":11839.183514880831,"y":17164.207644101825},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ec478333-805d-4c59-a550-3a51a9ebdc5b"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Learning System Infos","project":"Superalgos","id":"4457aa11-83d0-481c-9931-22304aa26689","savedPayload":{"position":{"x":11885.15522885899,"y":17222.60519230214},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"6c89f99e-279f-4d61-a03d-59667ac1614f"}}}],"outputDatasetFolders":[],"id":"621ceb34-32e9-472e-951d-a8e86f3c0696","savedPayload":{"position":{"x":11509.792572119544,"y":17470.80445887137},"targetPosition":{"x":11692.824061503654,"y":17881.899914810543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Simulation Objects","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Episodes","project":"Superalgos","id":"e1d20279-68b7-4f3e-86ef-721c535c0f74","savedPayload":{"position":{"x":11783.694129530935,"y":17017.32896961899},"targetPosition":{"x":11854.08963879904,"y":17461.788722886802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"6fad647f-d440-4423-ad34-f21495863be4"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episodes","project":"Superalgos","id":"fd783657-65aa-4679-ad72-9637ef35170f","savedPayload":{"position":{"x":12203.805321454676,"y":17178.594546914373},"targetPosition":{"x":11854.08963879904,"y":17461.788722886802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"a9a9f046-27e3-4899-a351-55351cf3b1a1"}}}],"outputDatasetFolders":[],"id":"6d7bda29-38ec-4380-b8b4-d657e1dbc4c0","savedPayload":{"position":{"x":11854.08963879904,"y":17461.788722886802},"targetPosition":{"x":11692.824061503654,"y":17881.899914810543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d5884a6a-3692-4335-9e9d-51f52e1f31b9","savedPayload":{"position":{"x":11692.824061503654,"y":17881.899914810543},"targetPosition":{"x":11875.855550887763,"y":18292.995370749715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Low Frequency Learning","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"ffedf8e4-2770-42fe-93af-20fb37abf9d1","savedPayload":{"position":{"x":11511.797903419038,"y":17662.429028449882},"targetPosition":{"x":11922.893359358208,"y":17845.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"eb511667-2fd1-48fe-9b84-9d04f712d382"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"0d2dabbe-bc8e-49b9-b718-c4a17cb3f005","savedPayload":{"position":{"x":11588.47818789338,"y":17544.351744972504},"targetPosition":{"x":11922.893359358208,"y":17845.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"b9926521-0d8d-4459-85ea-336529883f95","savedPayload":{"position":{"x":11697.893359358208,"y":17455.749086130993},"targetPosition":{"x":11922.893359358208,"y":17845.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[],"dataMineDataDependencies":[{"type":"Data Mine Data Dependencies","name":"Masters","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"Webhooks","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"External Signals Single File","project":"Superalgos","id":"0863c0ac-86f6-4f15-a678-6be339986ea4","savedPayload":{"position":{"x":10934.26339265877,"y":17311.218480562893},"targetPosition":{"x":11381.798245574493,"y":17358.256289033336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Single File","id":"c52d1012-5e3b-41a0-b5af-84098b0594bf"}}}],"dataDependencyFolders":[],"id":"79282df7-1911-4d6f-a8fc-a5bd5bd32a45","savedPayload":{"position":{"x":11381.798245574493,"y":17358.256289033336},"targetPosition":{"x":11829.333098490217,"y":17405.294097503778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Candles Volumes","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"15917514-aef5-45af-b97c-a9776869d619","savedPayload":{"position":{"x":11028.526210848046,"y":17447.26260811967},"targetPosition":{"x":11418.237642551045,"y":17222.26260811967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}},{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"40555cb4-9528-4c9c-b3ef-3970dbfeccbb","savedPayload":{"position":{"x":10970.702789635321,"y":17175.224799649226},"targetPosition":{"x":11418.237642551045,"y":17222.26260811967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Daily","project":"Superalgos","id":"1ca25593-7487-4051-91a2-dcee172a6952","savedPayload":{"position":{"x":11083.822471086216,"y":16921.15383525818},"targetPosition":{"x":11418.237642551045,"y":17222.26260811967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2e683057-f911-4105-bc77-16f2706d1915"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Market","project":"Superalgos","id":"1ce80f06-acf4-4e5e-aa2c-015e22e78502","savedPayload":{"position":{"x":11324.677381683054,"y":16782.096187789455},"targetPosition":{"x":11418.237642551045,"y":17222.26260811967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1"}}}],"dataDependencyFolders":[],"id":"eb88ebdf-60c4-40f5-8784-4fa879c5715a","savedPayload":{"position":{"x":11418.237642551045,"y":17222.26260811967},"targetPosition":{"x":11829.333098490217,"y":17405.294097503778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Bollinger Bands","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Bollinger Bands Multi-Period-Market","project":"Superalgos","id":"6da02fa9-84ed-4586-bd9f-b252ac774bb4","savedPayload":{"position":{"x":11054.751506695175,"y":17197.74558551028},"targetPosition":{"x":11494.917927025388,"y":17104.18532464229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f5b2a7d8-fc32-44a3-a002-9b0fc30a9719"}}},{"type":"Data Dependency","name":"Bollinger Bands Multi-Period-Daily","project":"Superalgos","id":"906ca82f-4675-4ffc-a7de-ba5bdcdff471","savedPayload":{"position":{"x":11083.822471086216,"y":16921.15383525818},"targetPosition":{"x":11494.917927025388,"y":17104.18532464229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"506104fa-e99a-4a46-930e-176bce311aff"}}},{"type":"Data Dependency","name":"Percentage Bandwidth Multi-Period-Market","project":"Superalgos","id":"834ea7e6-e62d-4880-b8bc-492b4cac9819","savedPayload":{"position":{"x":11269.917927025388,"y":16714.47389293929},"targetPosition":{"x":11494.917927025388,"y":17104.18532464229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"207e9481-0730-4304-a938-cfe223d70856"}}},{"type":"Data Dependency","name":"Percentage Bandwidth Multi-Period-Daily","project":"Superalgos","id":"6a096e69-b21b-4ea6-a358-a9f52a239879","savedPayload":{"position":{"x":11541.95573549583,"y":16656.650471726567},"targetPosition":{"x":11494.917927025388,"y":17104.18532464229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e60d62dd-87f7-4f2d-ac21-3ac5c30a50ea"}}}],"dataDependencyFolders":[],"id":"f0078200-2fe4-4aad-be75-c35b13013e8e","savedPayload":{"position":{"x":11494.917927025388,"y":17104.18532464229},"targetPosition":{"x":11829.333098490217,"y":17405.294097503778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Bollinger Channels","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Bollinger Channels Objects Market","project":"Superalgos","id":"05be7e78-be3f-4fe7-a67d-3301baa79e96","savedPayload":{"position":{"x":11161.169609634722,"y":17093.7243457509},"targetPosition":{"x":11604.333098490217,"y":17015.58266580078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"610cd062-ab88-4892-b711-0fb430305c61"}}},{"type":"Data Dependency","name":"Bollinger Channels Objects Daily","project":"Superalgos","id":"445607d8-f1b0-4689-9889-2b4de2f4dccf","savedPayload":{"position":{"x":11161.169609634722,"y":16937.44098585066},"targetPosition":{"x":11604.333098490217,"y":17015.58266580078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"64910fea-c92a-4a55-850a-aa62d98b478e"}}},{"type":"Data Dependency","name":"Bollinger Channels Market","project":"Superalgos","id":"694e754c-f431-49fe-8a38-eddac5d74236","savedPayload":{"position":{"x":11214.621666787218,"y":16790.58266580078},"targetPosition":{"x":11604.333098490217,"y":17015.58266580078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"22c1f2c6-3838-4657-add8-2e01d7056917"}}},{"type":"Data Dependency","name":"Bollinger Channels Daily","project":"Superalgos","id":"6b3a2c91-290b-4b01-9603-12dab0ddade8","savedPayload":{"position":{"x":11315.078674131273,"y":16670.86266639724},"targetPosition":{"x":11604.333098490217,"y":17015.58266580078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"96b4e65b-e6db-44a0-80a5-ceb9d68a09ec"}}},{"type":"Data Dependency","name":"Bollinger Sub-Channels Objects Market","project":"Superalgos","id":"316515e2-e5e4-48ce-8551-439e25edd2f6","savedPayload":{"position":{"x":11450.424033993666,"y":16592.72098644712},"targetPosition":{"x":11604.333098490217,"y":17015.58266580078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"869f615e-0cc0-44fd-8648-4a951c23a410"}}},{"type":"Data Dependency","name":"Bollinger Sub-Channels Objects Daily","project":"Superalgos","id":"fb74b551-54bf-4210-a354-fe1cbb39abca","savedPayload":{"position":{"x":11604.333098490217,"y":16565.58266580078},"targetPosition":{"x":11604.333098490217,"y":17015.58266580078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"029479ae-275d-4854-ad3e-66948656a053"}}},{"type":"Data Dependency","name":"Bollinger Sub-Channels Market","project":"Superalgos","id":"136fee66-4db5-4725-81de-ef59e3d5337a","savedPayload":{"position":{"x":11758.242162986768,"y":16592.72098644712},"targetPosition":{"x":11604.333098490217,"y":17015.58266580078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"f8d44a4d-3771-4a71-97ca-dc604ff565d3"}}},{"type":"Data Dependency","name":"Bollinger Sub-Channels Daily","project":"Superalgos","id":"e59d296c-ad6f-4766-b2cf-7594fc8705ed","savedPayload":{"position":{"x":11893.58752284916,"y":16670.86266639724},"targetPosition":{"x":11604.333098490217,"y":17015.58266580078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"ca71e765-0f66-4b18-b500-847b9d16169b"}}}],"dataDependencyFolders":[],"id":"fa5ce50e-fa52-44ff-b605-976f5f5cf7ee","savedPayload":{"position":{"x":11604.333098490217,"y":17015.58266580078},"targetPosition":{"x":11829.333098490217,"y":17405.294097503778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Candle Channels","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Candles Channels Multi-Period-Market","project":"Superalgos","id":"e5c02f7c-6e8e-4b88-92a9-5f732e90a0c3","savedPayload":{"position":{"x":11324.677381683054,"y":16782.096187789455},"targetPosition":{"x":11735.772837622226,"y":16965.127677173565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"df7d1cd7-95b0-499c-b51a-772c3fb8a2b0"}}},{"type":"Data Dependency","name":"Candles Channels Multi-Period-Daily","project":"Superalgos","id":"7a3d4fc1-fa2f-4190-ac20-e5f59cc2f8ca","savedPayload":{"position":{"x":11510.772837622226,"y":16575.416245470566},"targetPosition":{"x":11735.772837622226,"y":16965.127677173565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"07734f1c-e2e7-4a35-8567-6a996c68883e"}}},{"type":"Data Dependency","name":"Candles Channels Objects Multi-Period-Market","project":"Superalgos","id":"b5f0c30a-cfcd-44ca-8787-7a611111bd88","savedPayload":{"position":{"x":11782.810646092668,"y":16517.59282425784},"targetPosition":{"x":11735.772837622226,"y":16965.127677173565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"566b9df4-da86-4b4f-a3f4-ef8a76443714"}}},{"type":"Data Dependency","name":"Candles Channels Objects Multi-Period-Daily","project":"Superalgos","id":"d9cdd9ae-12d3-42c7-8b4b-cd28a1b1f492","savedPayload":{"position":{"x":12036.881610483713,"y":16630.712505708736},"targetPosition":{"x":11735.772837622226,"y":16965.127677173565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"8a7d224b-7571-4e1a-8b8f-8a35aa25dc63"}}}],"dataDependencyFolders":[],"id":"ea6bd97d-1074-4f5b-8beb-7a7967ba50b5","savedPayload":{"position":{"x":11735.772837622226,"y":16965.127677173565},"targetPosition":{"x":11829.333098490217,"y":17405.294097503778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Resistances and Supports","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Resistances Multi-Period-Market","project":"Superalgos","id":"42e5d31e-f271-465b-b6a4-5db8895c3926","savedPayload":{"position":{"x":11541.95573549583,"y":16656.650471726567},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"44e905fc-719f-453b-a567-fd5e3bfcae91"}}},{"type":"Data Dependency","name":"Resistances Multi-Period-Daily","project":"Superalgos","id":"a33ba084-72da-4842-a679-eb2f6e2f4198","savedPayload":{"position":{"x":11782.810646092668,"y":16517.59282425784},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f4530d48-3239-4ab0-8c4d-d611cd55fde3"}}},{"type":"Data Dependency","name":"Supports Multi-Period-Market","project":"Superalgos","id":"3a0f4e16-451c-41a0-a845-f71600f57cda","savedPayload":{"position":{"x":12059.402396344769,"y":16546.663788648882},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4a1bd251-76ed-4530-8723-08e41d50f12d"}}},{"type":"Data Dependency","name":"Supports Multi-Period-Daily","project":"Superalgos","id":"ae73f78b-0a3d-4001-a1af-6fe5c2974316","savedPayload":{"position":{"x":12266.082338663658,"y":16732.759244588055},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"deaaf4ec-9352-40b6-af9a-8541a73a5e13"}}}],"dataDependencyFolders":[],"id":"2a1d36e6-2ecd-4c96-a42d-aec3eb7f60a2","savedPayload":{"position":{"x":11876.37090696066,"y":16957.759244588055},"targetPosition":{"x":11829.333098490217,"y":17405.294097503778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Fees Band","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Fees Band 0.2 Multi-Period-Market","project":"Superalgos","id":"db115ecb-8ce7-4da3-961d-26a3d62134af","savedPayload":{"position":{"x":11965.326779403884,"y":16546.663788648882},"targetPosition":{"x":12012.364587874326,"y":16994.198641564606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9c699a57-f0cf-434c-8ef8-40aac182200e"}}},{"type":"Data Dependency","name":"Fees Band 0.2 Multi-Period-Daily","project":"Superalgos","id":"b565925a-7ac2-4552-8d5e-31c703df86aa","savedPayload":{"position":{"x":12376.422235343052,"y":16729.695278032992},"targetPosition":{"x":12012.364587874326,"y":16994.198641564606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2dd03ed7-736e-4959-ad8e-8108e59b8796"}}}],"dataDependencyFolders":[],"id":"028178a1-8f2c-4354-b2e3-4187c2768711","savedPayload":{"position":{"x":12012.364587874326,"y":16994.198641564606},"targetPosition":{"x":11829.333098490217,"y":17405.294097503778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Volume Analysis","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Volume Analysis Multi-Period-Market","project":"Superalgos","id":"90326e10-ad05-473c-bb85-7c6cd3aef5f3","savedPayload":{"position":{"x":12224.002132219695,"y":16630.712505708736},"targetPosition":{"x":12130.441871351704,"y":17070.87892603895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"1d4df142-34c0-4439-a532-208c56cbb349"}}},{"type":"Data Dependency","name":"Volume Analysis Multi-Period-Daily","project":"Superalgos","id":"115d2117-d250-4c2e-b802-3f864bc42dce","savedPayload":{"position":{"x":12558.417303684524,"y":16931.821278570224},"targetPosition":{"x":12130.441871351704,"y":17070.87892603895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"cccbe688-75e9-405c-a087-8c1bb953430f"}}}],"dataDependencyFolders":[],"id":"d3123f6f-bf86-4537-b4e7-6e3b7047066c","savedPayload":{"position":{"x":12130.441871351704,"y":17070.87892603895},"targetPosition":{"x":11829.333098490217,"y":17405.294097503778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Candle Analysis","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Candle Analysis Multi-Period-Market","project":"Superalgos","id":"d91d474a-e2b2-4268-87fa-b4809470395c","savedPayload":{"position":{"x":12444.044530193216,"y":16790.58266580078},"targetPosition":{"x":12219.044530193216,"y":17180.294097503778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f65e4bf0-df3b-414c-aeba-f21dadb5d7ec"}}},{"type":"Data Dependency","name":"Candle Analysis Multi-Period-Daily","project":"Superalgos","id":"42f7d1b4-c36c-4468-8dde-55e0937457a5","savedPayload":{"position":{"x":12669.044530193216,"y":17180.294097503778},"targetPosition":{"x":12219.044530193216,"y":17180.294097503778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2127b8f1-932e-41c4-8eb9-1e0b6f02c2ec"}}}],"dataDependencyFolders":[],"id":"3f45aa2b-a6ab-4f20-9eec-8245d4097e68","savedPayload":{"position":{"x":12219.044530193216,"y":17180.294097503778},"targetPosition":{"x":11829.333098490217,"y":17405.294097503778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51c2e43d-ec38-4a55-b452-90b0610d18e1","savedPayload":{"position":{"x":11829.333098490217,"y":17405.294097503778},"targetPosition":{"x":11922.893359358208,"y":17845.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Masters","id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"SMA","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"155c81c3-f32d-472c-8ff3-5cbd2b4a9b1e","savedPayload":{"position":{"x":11271.458348895096,"y":17361.320255588395},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"3b21f9d7-2cbc-4c23-80c8-cc5e5b06a22c"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"1a6aae06-e072-4671-8256-96ba2049534e","savedPayload":{"position":{"x":11224.42054042465,"y":17279.84838144089},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2c338fe0-385f-45ab-b210-b98ef013228d"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"d0683c73-232b-434e-96f3-c4d448e7ba2f","savedPayload":{"position":{"x":11195.349576033608,"y":17190.37715292477},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"78a6ef37-4df8-4ac8-83a0-c9a732467c59"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"847cb8e9-ca07-4c6a-b07b-25ca19e2209e","savedPayload":{"position":{"x":11185.515996363822,"y":17096.81689205678},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f155e2ed-7082-4021-a4ff-a6f3cfd5683d"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"c4893582-9904-4697-8839-ef7046b03a64","savedPayload":{"position":{"x":11195.349576033608,"y":17003.25663118879},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"af9b9cef-2a74-486f-b79e-047d68669a1f"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"737a50c3-3731-498c-98b1-a3d8355b73ce","savedPayload":{"position":{"x":11224.42054042465,"y":16913.78540267267},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"de5cfa30-edbf-4d5b-8d7f-facfb69a0f3e"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"4715d690-fb5d-4296-a33c-19d1c1dfd8c6","savedPayload":{"position":{"x":11271.458348895096,"y":16832.313528525166},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Muti-Period-Market","id":"a5d28568-fb58-469a-9820-b9f0e8eab705"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"d0fbc567-9e20-47cf-bdc6-d53b1ae14f0d","savedPayload":{"position":{"x":11334.407223502334,"y":16762.40172059195},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"01f32aa3-55e9-4f8c-80c7-997b52073274"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"528004c0-2649-4f1e-9750-e832e53595b3","savedPayload":{"position":{"x":11410.515996363822,"y":16707.10546035378},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"c0862b3d-d35a-4d3e-8d80-258b8a01c37c"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"af93e3ed-46dc-44be-ae4f-9ecd254b9003","savedPayload":{"position":{"x":11496.458348895096,"y":16668.84145972396},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f5050eb2-0a99-464e-b5e2-2d8f40453e9a"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"64a4d888-9a97-4544-8327-9bb09c096414","savedPayload":{"position":{"x":11588.478187893379,"y":16649.282039141057},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"6ba76363-0f50-4e67-8678-3eb4fd6d07d6"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"c4975836-8df6-4dde-a802-de552a147614","savedPayload":{"position":{"x":11682.553804834264,"y":16649.282039141057},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"92d92b3e-6870-499b-bfec-33bab220bf62"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"66c461d3-ca67-4780-8939-7c28110b7f5b","savedPayload":{"position":{"x":11774.573643832548,"y":16668.84145972396},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4c486321-22e0-4991-9a1c-571bada649ad"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"d206fd76-3dfe-4c2c-a05f-00be08751585","savedPayload":{"position":{"x":11860.515996363822,"y":16707.10546035378},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"819688c9-c7bd-444b-9658-2a4379125c72"}}}],"dataDependencyFolders":[],"id":"0c3d5d77-3b9b-40b1-a154-80774119de6b","savedPayload":{"position":{"x":11635.515996363822,"y":17096.81689205678},"targetPosition":{"x":11969.93116782865,"y":17397.925664918268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"EMA","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"76f51c31-c8a8-4d09-8741-7bd7a728bf7d","savedPayload":{"position":{"x":11426.37090696066,"y":16957.759244588055},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ea1af06a-2584-43f0-aecf-ec8ad9169e9c"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"b6e5caa1-2c4e-46ce-b610-9e552988096b","savedPayload":{"position":{"x":11436.204486630446,"y":16864.198983720064},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e7f5899c-fc4c-412d-a8db-77c1bef8ed21"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"ef326089-5627-43b3-8af5-b431182d2382","savedPayload":{"position":{"x":11465.275451021487,"y":16774.727755203945},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"85e3f0ce-5331-4c0b-900a-e73aaf53d96e"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"89a63e3f-b223-4b03-9e03-431a5dcc5a33","savedPayload":{"position":{"x":11512.313259491933,"y":16693.25588105644},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e04edb48-09ab-4f92-beb7-14ba647de7d6"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"6d3e5a62-164f-4adc-af52-c5142b566233","savedPayload":{"position":{"x":11575.262134099172,"y":16623.344073123226},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"6b6840f7-3b76-474a-9d27-9515cbcd6499"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"2156a0ef-20da-4796-9dad-8b57a4a30fec","savedPayload":{"position":{"x":11651.37090696066,"y":16568.047812885055},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ef3d5a7d-11eb-4ead-8e24-49ac7c80b0c7"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"37b350bb-e105-4309-8c1b-c84c6fb330fe","savedPayload":{"position":{"x":11737.313259491933,"y":16529.783812255235},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4e36a5a5-7a03-43a9-b3e0-0c5763c29199"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"89b805ea-d41d-4e25-8b65-39b69bbf7ae7","savedPayload":{"position":{"x":11829.333098490217,"y":16510.22439167233},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"15ccbcff-318d-46db-93f2-d649b57fd52a"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"ab2cef2b-9ab8-48ec-9e8b-6484f8e94109","savedPayload":{"position":{"x":11923.408715431102,"y":16510.22439167233},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5586aa74-2ecb-4b71-83ea-d621aa400660"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"9f4f5669-16d3-48a3-a92d-e5ceda3f464c","savedPayload":{"position":{"x":12015.428554429385,"y":16529.783812255235},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"0198fa3f-98e3-4c57-a4a4-a7a8e27905d3"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"4c38ecf3-b300-413a-bb36-3f3ee0b0deb5","savedPayload":{"position":{"x":12101.37090696066,"y":16568.047812885055},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ea61dfed-8f93-4b4f-8575-61ca2547ea90"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"74635038-5100-490d-8346-f72a65c8b08f","savedPayload":{"position":{"x":12177.479679822147,"y":16623.344073123226},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b251aca0-1996-4d13-99ed-6fb9796ec8d6"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"1a232ffd-2067-43b5-9d05-8a8809c8839f","savedPayload":{"position":{"x":12240.428554429385,"y":16693.25588105644},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"dea3491f-aae7-4419-a98f-108cf5d69b87"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"a4817578-3927-4582-a03d-b3f19d690ef9","savedPayload":{"position":{"x":12287.466362899831,"y":16774.727755203945},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"6624337b-4afd-44b8-a2ea-3f1779ddda7e"}}}],"dataDependencyFolders":[],"id":"dc550c99-0172-4c54-8692-5bb34a727d39","savedPayload":{"position":{"x":11876.37090696066,"y":16957.759244588055},"targetPosition":{"x":11969.93116782865,"y":17397.925664918268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"MACD","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"76145ae8-4a85-4c6c-ae80-56bc8296d024","savedPayload":{"position":{"x":11829.259747060369,"y":16674.233942272545},"targetPosition":{"x":12152.96265721276,"y":16986.830208979096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"01d43ed0-2a80-4eca-bee6-db2fe40470fc"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"eccae531-e077-46a2-a53c-f2a807d020b6","savedPayload":{"position":{"x":11955.695641157676,"y":16582.37288814447},"targetPosition":{"x":12152.96265721276,"y":16986.830208979096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"dd5d3067-ff7b-4353-ba4f-c030bd3da796"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"7eaf8892-ec21-4336-aa30-1f83c52bfc56","savedPayload":{"position":{"x":12105.924848742317,"y":16539.295356063372},"targetPosition":{"x":12152.96265721276,"y":16986.830208979096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"19b1d791-d2ea-4f25-a6e1-fe0a64450745"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"f59fe651-50d2-4ceb-bb87-543d9f33c115","savedPayload":{"position":{"x":12261.827510232612,"y":16550.1971321549},"targetPosition":{"x":12152.96265721276,"y":16986.830208979096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ec2611a6-699b-45a5-beec-679dd4b7734a"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"87bc983f-770a-4622-95ec-f25661eb8bf9","savedPayload":{"position":{"x":12404.599463774597,"y":16613.763301329327},"targetPosition":{"x":12152.96265721276,"y":16986.830208979096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"c390cbd3-0ba0-4507-8614-42c88f4ce7e6"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"266fbacf-bede-4256-a3e3-114976d7d78c","savedPayload":{"position":{"x":12517.020304681486,"y":16722.326845447482},"targetPosition":{"x":12152.96265721276,"y":16986.830208979096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"29e18539-f188-4d29-9531-25cd3ee8f282"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"4f5ae4cf-a82a-4e04-a582-d7320018f7dd","savedPayload":{"position":{"x":12585.530420385003,"y":16862.793398861446},"targetPosition":{"x":12152.96265721276,"y":16986.830208979096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"89254c6c-9be2-4037-b063-467edc660d10"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"50a7da1c-a0d6-4ce4-944b-635c4ad2c3a0","savedPayload":{"position":{"x":12601.866479829681,"y":17018.220622163954},"targetPosition":{"x":12152.96265721276,"y":16986.830208979096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"8a9dde13-e4b8-40f3-80bc-ea51050b2f08"}}}],"dataDependencyFolders":[],"id":"33a94d76-5465-482a-9d95-2b1b64b7a3fe","savedPayload":{"position":{"x":12152.96265721276,"y":16986.830208979096},"targetPosition":{"x":11969.93116782865,"y":17397.925664918268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"RSI","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"634e1631-cf16-4cde-ad14-b9eb1cf519c3","savedPayload":{"position":{"x":12584.64259953165,"y":16783.21423321527},"targetPosition":{"x":12359.64259953165,"y":17172.925664918268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5ec62760-e144-4496-98ab-0415a4b315ec"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"1a7f3b74-454c-4e5a-af5b-84c1634c75f6","savedPayload":{"position":{"x":12809.64259953165,"y":17172.925664918268},"targetPosition":{"x":12359.64259953165,"y":17172.925664918268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f1556d09-f134-4678-83fb-04002d1dcd34"}}}],"dataDependencyFolders":[],"id":"d816cd09-b00b-4889-a175-c0d1f32f650e","savedPayload":{"position":{"x":12359.64259953165,"y":17172.925664918268},"targetPosition":{"x":11969.93116782865,"y":17397.925664918268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b90e3d14-1fba-40db-b98b-c6a992d2713e","savedPayload":{"position":{"x":11969.931167828652,"y":17397.925664918268},"targetPosition":{"x":11922.893359358208,"y":17845.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Sparta","id":"9cfffc48-486a-48cb-b641-98c82e314d3a"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"Super Trend","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"26957577-f267-4a00-b77a-d9e56191e8ec","savedPayload":{"position":{"x":11430.326029271531,"y":16887.275925041984},"targetPosition":{"x":11841.421485210703,"y":17070.307414426094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7c8e7a6f-99c8-4d90-9f44-e3e9e909eb88"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"cfca44d1-2973-4523-b60f-69dcddf3b4cf","savedPayload":{"position":{"x":11794.38367674026,"y":16622.77256151037},"targetPosition":{"x":11841.421485210703,"y":17070.307414426094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"c17b5d3f-7cf7-418a-92b8-f8c67a120446"}}}],"dataDependencyFolders":[],"id":"1685e41e-ab46-4089-9e97-54a260205dba","savedPayload":{"position":{"x":11841.421485210703,"y":17070.307414426094},"targetPosition":{"x":12105.924848742317,"y":17434.36506189482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Wave Trend","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"b97a589f-5d16-4e78-b7b6-3861d99d9354","savedPayload":{"position":{"x":11794.38367674026,"y":16622.77256151037},"targetPosition":{"x":12058.887040271875,"y":16986.830208979096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9b727bdd-1684-43e1-a39c-fbd14ce64828"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"6bb547ee-3841-42a1-b2bd-3bca71fff95b","savedPayload":{"position":{"x":12241.918529655984,"y":16575.734753039924},"targetPosition":{"x":12058.887040271875,"y":16986.830208979096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"3bf983d5-4d3c-46f8-a130-9e621b76e62d"}}}],"dataDependencyFolders":[],"id":"2ca67623-1216-4b7f-b188-d10253d82ff3","savedPayload":{"position":{"x":12058.887040271875,"y":16986.830208979096},"targetPosition":{"x":12105.924848742317,"y":17434.36506189482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Donchian Channel","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"ea1c82c9-3326-4cc9-afc7-91a2c7cc4fc9","savedPayload":{"position":{"x":12241.918529655984,"y":16575.734753039924},"targetPosition":{"x":12288.956338126427,"y":17023.269605955647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7298225c-3b68-4f34-a935-fc0ab3d8f662"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"87e4e040-7025-4536-9ebc-c0fee01411d6","savedPayload":{"position":{"x":12653.013985595153,"y":16758.766242424033},"targetPosition":{"x":12288.956338126427,"y":17023.269605955647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"50ed783e-0e71-4903-8a82-854c8bd2ed6e"}}}],"dataDependencyFolders":[],"id":"31a4027e-731f-435d-9fe6-03fdfb565018","savedPayload":{"position":{"x":12288.956338126427,"y":17023.269605955647},"targetPosition":{"x":12105.924848742317,"y":17434.36506189482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"DMI Directional Movement","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"e04c13f7-2fc0-4284-924c-2f318bfa2f57","savedPayload":{"position":{"x":12653.013985595153,"y":16758.766242424033},"targetPosition":{"x":12469.982496211043,"y":17169.861698363206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ffc7f78b-9ec3-4218-b76f-47233d535a17"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"800cc62a-2ce0-4fd1-9a14-d3e8c6aa8a9f","savedPayload":{"position":{"x":12917.517349126767,"y":17122.823889892763},"targetPosition":{"x":12469.982496211043,"y":17169.861698363206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"9b222dca-e8c2-4392-9c3e-7c970dca4a52"}}}],"dataDependencyFolders":[],"id":"afd303d8-c86d-4d09-851f-896514cc69f7","savedPayload":{"position":{"x":12469.982496211043,"y":17169.861698363206},"targetPosition":{"x":12105.924848742317,"y":17434.36506189482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Ichimoku Cloud","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"6ba0444e-fcd4-4647-9b39-512e699461ac","savedPayload":{"position":{"x":12917.517349126767,"y":17122.823889892763},"targetPosition":{"x":12553.459701658041,"y":17387.327253424377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"80018870-2528-42bf-a3a7-6f0b5e44d9c9"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"162d7846-7e0c-4148-8e79-ddf8f69b7435","savedPayload":{"position":{"x":12964.555157597213,"y":17570.358742808487},"targetPosition":{"x":12553.459701658041,"y":17387.327253424377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ef8da44c-8cc5-41fc-add6-f2feff945632"}}}],"dataDependencyFolders":[],"id":"2e0b0da7-0474-4acf-ba0d-621069a1360c","savedPayload":{"position":{"x":12553.459701658041,"y":17387.327253424377},"targetPosition":{"x":12105.924848742317,"y":17434.36506189482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9772c779-ea74-4bfc-aada-70155e6f7a34","savedPayload":{"position":{"x":12105.924848742317,"y":17434.36506189482},"targetPosition":{"x":11922.893359358208,"y":17845.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Zeus","id":"d2083ac0-43e2-41e4-83c7-eb09a6f29353"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"ATR","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"9af0d1e0-d4c6-4811-9f2a-65feb3c781c0","savedPayload":{"position":{"x":11823.04919633493,"y":16816.57448997284},"targetPosition":{"x":12200.45095191037,"y":17061.662055729605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"67695466-be2d-43b4-9824-83baa7a08412"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"4dc388e2-cc4c-4e54-94e1-0f7d2c53295e","savedPayload":{"position":{"x":12039.185374614986,"y":16641.550863805864},"targetPosition":{"x":12200.45095191037,"y":17061.662055729605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e3d0bccf-5f97-4902-92df-4ac8fe8c41a8"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"04de6c9e-d1b3-4263-b429-d34c12b28a3c","savedPayload":{"position":{"x":12316.919522206503,"y":16626.995433899523},"targetPosition":{"x":12200.45095191037,"y":17061.662055729605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2570d2c7-72e3-4131-97dc-a9f97f493e93"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"c044dc96-a7e8-4d00-8ff1-edc06b2a5098","savedPayload":{"position":{"x":12550.166634566009,"y":16778.467879757176},"targetPosition":{"x":12200.45095191037,"y":17061.662055729605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"93eb665f-d903-4825-9fb1-2783e917ac89"}}}],"dataDependencyFolders":[],"id":"65b84375-63fc-4260-b479-f7d8c143f331","savedPayload":{"position":{"x":12200.45095191037,"y":17061.662055729605},"targetPosition":{"x":12224.002132219695,"y":17511.045346369163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"ROC","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"fe65dae6-2e39-4a78-b919-25ce948d1783","savedPayload":{"position":{"x":12354.459446887366,"y":16760.243239691037},"targetPosition":{"x":12525.110905081183,"y":17176.630174904334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"40268fec-e5e8-4b05-9f27-c4072ebda94a"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"3ebc03da-316e-4114-b639-1816e2a0dea8","savedPayload":{"position":{"x":12552.02277435645,"y":16727.435616508854},"targetPosition":{"x":12525.110905081183,"y":17176.630174904334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"cb60d68b-b11d-4317-8830-65c212a8c728"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"78682cf0-2011-4cb4-95d2-de4f85de3be8","savedPayload":{"position":{"x":12744.255876063147,"y":16783.596484626625},"targetPosition":{"x":12525.110905081183,"y":17176.630174904334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"41a488be-c66c-458d-99fc-490b9e8172ef"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"7162145d-1bd3-458a-a027-6c32add4e88c","savedPayload":{"position":{"x":12893.084628630178,"y":16917.60249534578},"targetPosition":{"x":12525.110905081183,"y":17176.630174904334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"30276899-0d68-40e3-9c35-a28442485b55"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"557f0fd0-fdad-4dbf-97d6-d47e7028f7d6","savedPayload":{"position":{"x":12969.031672346766,"y":17102.91211476752},"targetPosition":{"x":12525.110905081183,"y":17176.630174904334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9c6b7d85-01f5-449c-a5be-9a357b6588bc"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"b667c8de-bd93-4052-9ae7-2458ec4b3e23","savedPayload":{"position":{"x":12957.054763775483,"y":17302.822500092036},"targetPosition":{"x":12525.110905081183,"y":17176.630174904334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"66f59b6d-9d4b-4cef-9ffd-aed019219809"}}}],"dataDependencyFolders":[],"id":"6bf9dbdc-44fc-4c4f-b672-41324b7180b7","savedPayload":{"position":{"x":12525.110905081183,"y":17176.630174904334},"targetPosition":{"x":12224.002132219695,"y":17511.045346369163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Stochastic","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"7dd972ea-efc2-4af6-b80f-2ebcba4d9541","savedPayload":{"position":{"x":13050.787178434693,"y":17242.406600303075},"targetPosition":{"x":12673.385422859254,"y":17487.494166059838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"88b1ff0e-ad99-474c-8833-7b76a5a57ebd"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"b670fd83-754e-4e49-beae-238599574d8d","savedPayload":{"position":{"x":13074.338358744018,"y":17691.789890942633},"targetPosition":{"x":12673.385422859254,"y":17487.494166059838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"4b941e0d-8b0a-41e2-bc20-54e0bc0d936a"}}}],"dataDependencyFolders":[],"id":"f940e245-fdfc-4d18-9442-38d658d2a33c","savedPayload":{"position":{"x":12673.385422859254,"y":17487.494166059838},"targetPosition":{"x":12224.002132219695,"y":17511.045346369163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d908ad7f-93f1-427d-84fa-faca9397fc95","savedPayload":{"position":{"x":12224.002132219694,"y":17511.045346369163},"targetPosition":{"x":11922.893359358208,"y":17845.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Alpha","id":"511bef1e-62d8-4ff9-8d87-15bd0d3d630c"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"Candles Probabilities","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"e646d479-058f-436e-ab2a-25ddf0436a22","savedPayload":{"position":{"x":12537.604791061207,"y":16780.749086130993},"targetPosition":{"x":12537.604791061207,"y":17230.749086130993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"85c67513-347a-4948-9121-dee04543fcff"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"691b7471-0bb2-4a52-8d5d-91b088ebe384","savedPayload":{"position":{"x":12927.316222764206,"y":17005.749086130993},"targetPosition":{"x":12537.604791061207,"y":17230.749086130993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"fa17370b-0a9c-4350-9cce-1df4be39b58c"}}}],"dataDependencyFolders":[],"id":"262a3ce2-cb35-4cff-beeb-fa4d0f5663a2","savedPayload":{"position":{"x":12537.604791061207,"y":17230.749086130993},"targetPosition":{"x":12312.604791061207,"y":17620.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Candles Channels Probabilities","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"309c4aa0-8655-4f93-a163-471841b70931","savedPayload":{"position":{"x":13152.316222764206,"y":17395.46051783399},"targetPosition":{"x":12762.604791061207,"y":17620.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"fdee2b9c-3036-4db2-af42-b3507a6ffacf"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"f1791212-8b91-4898-9590-34a492e4a142","savedPayload":{"position":{"x":13152.316222764206,"y":17845.46051783399},"targetPosition":{"x":12762.604791061207,"y":17620.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2774470d-7382-48e3-bd0a-957f0332a698"}}}],"dataDependencyFolders":[],"id":"822f1e53-45d7-4c3f-bc26-9843fe51c546","savedPayload":{"position":{"x":12762.604791061207,"y":17620.46051783399},"targetPosition":{"x":12312.604791061207,"y":17620.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"16156fa3-b3d0-48a3-9b60-be61178af021","savedPayload":{"position":{"x":12312.604791061205,"y":17620.46051783399},"targetPosition":{"x":11922.893359358208,"y":17845.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Samurai","id":"37e312af-e076-47aa-a1cd-bf5b2e16127d"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"Candle Patterns","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"31385c8c-290f-4aba-87bb-0bd32fb224fe","savedPayload":{"position":{"x":12865.854095450664,"y":17212.719365164303},"targetPosition":{"x":12803.226200018635,"y":17658.33999609801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"07be5b9b-e8fd-49fc-ab77-20f89fdea10f"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"7a413d6c-12de-4671-9f23-7b748a0d39a8","savedPayload":{"position":{"x":13014.488403272284,"y":17261.013579311493},"targetPosition":{"x":12803.226200018635,"y":17658.33999609801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"9e6d7f95-b2fe-466e-9a5d-175479cbf85d"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"e1733b58-82b9-4f31-b0ed-86806e59e6b0","savedPayload":{"position":{"x":13137.641371483463,"y":17357.231223236522},"targetPosition":{"x":12803.226200018635,"y":17658.33999609801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"144d8665-1ff0-4db3-9340-a33fd7d0d098"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"c99a5c48-4ee4-4359-a962-17779894cfd0","savedPayload":{"position":{"x":13220.45893457369,"y":17489.767029060848},"targetPosition":{"x":12803.226200018635,"y":17658.33999609801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f0a11771-dd69-4b9a-9347-7cb2d1f231ff"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"5abdf25c-1560-4263-b14f-06b8a1cd46e1","savedPayload":{"position":{"x":13252.952072177228,"y":17642.635222581885},"targetPosition":{"x":12803.226200018635,"y":17658.33999609801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"8c35ce52-9dee-4d20-92e6-50ba7fd2882b"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"a27bb5d3-40a9-4677-ac8c-580f5c964a5f","savedPayload":{"position":{"x":13231.201632351454,"y":17797.397643566735},"targetPosition":{"x":12803.226200018635,"y":17658.33999609801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"4f1260c8-6d74-454e-963a-fa3ff910329c"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"b4561ade-7a63-4f06-81dc-acfd50f43845","savedPayload":{"position":{"x":13157.83103914166,"y":17935.387659994554},"targetPosition":{"x":12803.226200018635,"y":17658.33999609801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"087fc67e-78f9-4204-ba5e-8b670566a716"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"16645b72-aea5-4e44-8875-e25986ff980f","savedPayload":{"position":{"x":13041.689868923579,"y":18039.9616393684},"targetPosition":{"x":12803.226200018635,"y":17658.33999609801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b60cb94f-79c5-410c-b166-abc97d0f2bc3"}}}],"dataDependencyFolders":[],"id":"cc061c1e-eebf-494b-8b67-5ff229538ce7","savedPayload":{"position":{"x":12803.226200018635,"y":17658.33999609801},"targetPosition":{"x":12363.059779688421,"y":17751.900256966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"95158472-f128-4b9c-9a8e-a1e9938fb41f","savedPayload":{"position":{"x":12363.059779688421,"y":17751.900256966},"targetPosition":{"x":11922.893359358208,"y":17845.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Buddha","id":"38d04c99-51a6-4c1c-853e-ba67e216854b"}}}],"id":"787ca0b1-3fbf-4f34-bfc9-ee7320184a59","savedPayload":{"position":{"x":11922.893359358208,"y":17845.46051783399},"targetPosition":{"x":11875.855550887763,"y":18292.995370749715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"eb511667-2fd1-48fe-9b84-9d04f712d382","savedPayload":{"position":{"x":12140.358914419376,"y":17928.93772328099},"targetPosition":{"x":11875.855550887763,"y":18292.995370749715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"","project":"Superalgos","id":"7c4dcf72-1924-4c3e-822a-8cae902c7163","savedPayload":{"position":{"x":12286.951006826934,"y":18109.963881365606},"targetPosition":{"x":11875.855550887763,"y":18292.995370749715},"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":"72c8ba9a-bb38-4fbb-abdd-645a36676778","savedPayload":{"position":{"x":12323.390403803487,"y":18340.033179220158},"targetPosition":{"x":11875.855550887763,"y":18292.995370749715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f9b58fac-d095-47b5-85ec-6b212e1b88e4","savedPayload":{"position":{"x":11875.855550887763,"y":18292.995370749715},"targetPosition":{"x":11611.352187356151,"y":18657.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"products":[],"productDefinitionFolders":[{"type":"Product Definition Folder","name":"Learning Engine","project":"Superalgos","products":[],"productDefinitionFolders":[{"type":"Product Definition Folder","name":"Learning Episode","project":"Superalgos","products":[{"type":"Product Definition","name":"Learning Episode Counters","config":"{\n \"codeName\": \"Learning-Episode-Counters\",\n \"singularVariableName\": \"learningEpisodeCounter\",\n \"pluralVariableName\": \"learningEpisodeCounters\",\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.learningEpisodeCounters\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"ac1bc967-9c9f-47f0-8815-535abd7cb777","savedPayload":{"position":{"x":11529.351976940694,"y":17802.229570195905},"targetPosition":{"x":11751.26623728657,"y":17839.365281514558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"6881069e-a4d1-4b41-892f-557d2031adea","savedPayload":{"position":{"x":11560.455415651375,"y":17720.133447062086},"targetPosition":{"x":11751.26623728657,"y":17839.365281514558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"49d971d5-dee1-42cd-a3f3-e8bf37e12f14","savedPayload":{"position":{"x":11042.021617951417,"y":17516.143886888312},"targetPosition":{"x":11489.949907216647,"y":17473.013298254213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"a6242944-1045-48f8-a90a-b1547f7cb959","savedPayload":{"position":{"x":11080.467335322202,"y":17286.401339058906},"targetPosition":{"x":11489.949907216647,"y":17473.013298254213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{\n \"codeName\": \"periods\",\n \"isString\": false\n}","project":"Superalgos","id":"eb5040fa-a970-4d05-a198-cfb89c88b4a6","savedPayload":{"position":{"x":11228.633577146724,"y":17106.661314993868},"targetPosition":{"x":11489.949907216647,"y":17473.013298254213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hits","config":"{\n \"codeName\": \"hits\",\n \"isString\": false\n}","project":"Superalgos","id":"ae95ba7d-1320-49f5-a8b9-4efb744b0198","savedPayload":{"position":{"x":11446.819318582546,"y":17025.085008988983},"targetPosition":{"x":11489.949907216647,"y":17473.013298254213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fails","config":"{\n \"codeName\": \"fails\",\n \"isString\": false\n}","project":"Superalgos","id":"26046d33-299f-43d5-b981-942582685b4f","savedPayload":{"position":{"x":11676.561866411956,"y":17063.530726359768},"targetPosition":{"x":11489.949907216647,"y":17473.013298254213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bfe1f65f-850b-4d6e-bcb6-0545c24d2dec","savedPayload":{"position":{"x":11489.949907216647,"y":17473.013298254213},"targetPosition":{"x":11751.26623728657,"y":17839.365281514558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"919f4c32-75ef-41a1-bf16-2425d61aee1e","savedPayload":{"position":{"x":12201.37874508173,"y":17755.604766952067},"targetPosition":{"x":12340.436392550457,"y":18183.580199284886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Learning Episode Counters","id":"788bfd62-11af-4bbe-96f4-d2ba930334a2"}}},{"type":"Product Definition","name":"Learning Episode Statistics","config":"{\n \"codeName\": \"Learning-Episode-Statistics\",\n \"singularVariableName\": \"learningEpisodeStatistics\",\n \"pluralVariableName\": \"learningEpisodeStatistics\",\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.learningEpisodeStatistics\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"8408c316-e04d-4b0d-8c81-1bf3b4126894","savedPayload":{"position":{"x":11660.010185073937,"y":17612.428810273195},"targetPosition":{"x":11855.840216660416,"y":17723.224111296477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"553a0b49-2a61-41c4-ac95-f762051c1cab","savedPayload":{"position":{"x":11717.316384712143,"y":17545.921691734966},"targetPosition":{"x":11855.840216660416,"y":17723.224111296477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"d835dbd4-22c8-42ff-a91a-e71df3b7fa50","savedPayload":{"position":{"x":11288.937179186605,"y":17234.74920282028},"targetPosition":{"x":11735.5829474252,"y":17289.590407352596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"61c906de-bc64-4541-8eeb-02649898ba6e","savedPayload":{"position":{"x":11343.922884252246,"y":17067.999805306037},"targetPosition":{"x":11735.5829474252,"y":17289.590407352596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{\n \"codeName\": \"days\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"24a5a792-3beb-4852-969b-3f24813d189e","savedPayload":{"position":{"x":11458.535283528654,"y":16934.98556822957},"targetPosition":{"x":11735.5829474252,"y":17289.590407352596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail","config":"{\n \"codeName\": \"hitFail\",\n \"isString\": true\n}","project":"Superalgos","id":"6e05c4fd-899d-4f8a-bfa1-4e4fd3e9fce2","savedPayload":{"position":{"x":11615.325678189985,"y":16855.956703408716},"targetPosition":{"x":11735.5829474252,"y":17289.590407352596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"5a5c5fb5-93b8-4be7-a882-62691c86fa34","savedPayload":{"position":{"x":11790.424151957517,"y":16842.944639114},"targetPosition":{"x":11735.5829474252,"y":17289.590407352596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"f3b5ba52-9428-4598-ad55-ec22fbeae93e","savedPayload":{"position":{"x":11957.173549471761,"y":16897.93034417964},"targetPosition":{"x":11735.5829474252,"y":17289.590407352596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"8ed4f979-f64c-437e-a258-704045307942","savedPayload":{"position":{"x":12090.187786548226,"y":17012.54274345605},"targetPosition":{"x":11735.5829474252,"y":17289.590407352596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dd148eb0-f80e-4848-b32b-306697c8bfe3","savedPayload":{"position":{"x":11735.5829474252,"y":17289.590407352596},"targetPosition":{"x":11855.840216660416,"y":17723.224111296477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"f49b4eea-4799-4f25-b6e6-31ae21597f43","savedPayload":{"position":{"x":12433.996653418448,"y":17743.413778954673},"targetPosition":{"x":12340.436392550457,"y":18183.580199284886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Learning Episode Statistics","id":"59f91a2a-a1ba-4414-a9a2-ea1c05ba7887"}}},{"type":"Product Definition","name":"Episode Candle","config":"{\n \"codeName\": \"Episode-Candle\",\n \"singularVariableName\": \"episodeCandle\",\n \"pluralVariableName\": \"episodeCandles\",\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.candle\",\n \"saveAtCycle\": \"Second\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a08a3974-75ac-4a2b-bc09-f80547a61381","savedPayload":{"position":{"x":11847.704422213945,"y":17478.762175826676},"targetPosition":{"x":11993.830233088236,"y":17649.853518086682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"46221186-fff7-4333-a087-a32a649e9ce8","savedPayload":{"position":{"x":11924.301409353873,"y":17435.865801920274},"targetPosition":{"x":11993.830233088236,"y":17649.853518086682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.candle\"\n}","project":"Superalgos","id":"cae15eaa-dfb3-4902-9774-9600c927be8e","savedPayload":{"position":{"x":11628.183890281001,"y":16996.94499302398},"targetPosition":{"x":12029.136826165766,"y":17201.240717906774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.candle\"\n}","project":"Superalgos","id":"9bdb4209-c77d-4030-89c7-a16239440b9d","savedPayload":{"position":{"x":11736.885204417184,"y":16859.05803338676},"targetPosition":{"x":12029.136826165766,"y":17201.240717906774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Open","config":"{\n \"codeName\": \"open\",\n \"isString\": false\n}","project":"Superalgos","id":"861487fa-24e5-4c90-8c78-380c6c753819","savedPayload":{"position":{"x":11890.07917869704,"y":16773.265285573954},"targetPosition":{"x":12029.136826165766,"y":17201.240717906774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Close","config":"{\n \"codeName\": \"close\",\n \"isString\": false\n}","project":"Superalgos","id":"9eca0174-28ee-45cb-9b28-8551bd3acdaa","savedPayload":{"position":{"x":12064.443419243296,"y":16752.627917726866},"targetPosition":{"x":12029.136826165766,"y":17201.240717906774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Min","config":"{\n \"codeName\": \"min\",\n \"isString\": false\n}","project":"Superalgos","id":"0daea61a-b1bf-4b32-8c06-feb717d7071d","savedPayload":{"position":{"x":12233.432551048561,"y":16800.28778202201},"targetPosition":{"x":12029.136826165766,"y":17201.240717906774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Max","config":"{\n \"codeName\": \"max\",\n \"isString\": false\n}","project":"Superalgos","id":"a95b8052-58cb-4fd3-b0bf-a467fdde115c","savedPayload":{"position":{"x":12371.31951068578,"y":16908.98909615819},"targetPosition":{"x":12029.136826165766,"y":17201.240717906774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Index","config":"{ \n\"codeName\": \"index\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"25869b0f-2505-4ee6-aec1-2614f4945987","savedPayload":{"position":{"x":12457.112258498586,"y":17062.183070438048},"targetPosition":{"x":12029.136826165766,"y":17201.240717906774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"71905fc5-d23b-4d79-ba08-e692ae3128a0","savedPayload":{"position":{"x":12029.136826165766,"y":17201.240717906774},"targetPosition":{"x":11993.830233088236,"y":17649.853518086682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"44e79d66-03d4-4893-817c-f46e8c20a0f9","savedPayload":{"position":{"x":12641.545165411942,"y":17849.165027820058},"targetPosition":{"x":12340.436392550457,"y":18183.580199284886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Candle","id":"867dbe76-ca02-45a3-88c3-afc055c1234a"}}},{"type":"Product Definition","name":"Distance To Learning Event","config":"{\n \"codeName\": \"Distance-To-Learning-Event\",\n \"singularVariableName\": \"distanceToLearningEvent\",\n \"pluralVariableName\": \"distanceToLearningEvent\",\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.distanceToLearningEvent\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0d746a41-6726-41fd-9312-862b6835b8ba","savedPayload":{"position":{"x":12185.44514818922,"y":17416.4301758874},"targetPosition":{"x":12226.448141424953,"y":17637.66253008929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"53933157-c1f5-46ec-aaa4-9d247f99a6c5","savedPayload":{"position":{"x":12273.228271858949,"y":17417.57931992418},"targetPosition":{"x":12226.448141424953,"y":17637.66253008929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"6538eb24-b324-43d6-b8ba-e55e17e90807","savedPayload":{"position":{"x":12516.637541118658,"y":16818.192945029474},"targetPosition":{"x":12481.330948041128,"y":17266.80574520938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"fb0ec479-9326-4775-9ebc-856161041440","savedPayload":{"position":{"x":12887.494325998565,"y":17073.07575164565},"targetPosition":{"x":12481.330948041128,"y":17266.80574520938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ed203bbc-f675-47f0-a3b4-c0a4f331a503","savedPayload":{"position":{"x":12481.330948041128,"y":17266.80574520938},"targetPosition":{"x":12226.448141424953,"y":17637.66253008929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"4d91aaf1-0682-4479-b80b-adca5b416fd0","savedPayload":{"position":{"x":12768.411824883276,"y":18044.52255181616},"targetPosition":{"x":12340.436392550457,"y":18183.580199284886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Distance To Learning Event","id":"4495e33d-7fe3-4fb6-96ee-191d863e768d"}}},{"type":"Product Definition","name":"Current Episode","config":"{\n \"codeName\": \"Current-Episode\",\n \"singularVariableName\": \"currentEpisode\",\n \"pluralVariableName\": \"currentEpisodes\",\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode\",\n \"saveAtCycle\": \"Second\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"d3226ade-021e-4a24-bc2e-f1f6c812d951","savedPayload":{"position":{"x":13001.835167082558,"y":18236.137466917146},"targetPosition":{"x":12780.602812880668,"y":18277.140460152877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"7b64dca9-e495-4d53-b966-bdf1225a3d52","savedPayload":{"position":{"x":13000.686023045775,"y":18323.920590586873},"targetPosition":{"x":12780.602812880668,"y":18277.140460152877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"bfb5e7f5-0bdd-4bd2-b1bc-21794c3e067d","savedPayload":{"position":{"x":13493.642282280589,"y":18239.771645020468},"targetPosition":{"x":13151.459597760575,"y":18532.02326676905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"642cd87b-a5ab-43ef-bed4-ea83d979334d","savedPayload":{"position":{"x":13557.622975718012,"y":18338.29327320532},"targetPosition":{"x":13151.459597760575,"y":18532.02326676905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.candle\"\n}","project":"Superalgos","id":"af37749b-aa16-452c-b182-e85a55bc03b1","savedPayload":{"position":{"x":13593.924306164354,"y":18450.017280297583},"targetPosition":{"x":13151.459597760575,"y":18532.02326676905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.candle\"\n}","project":"Superalgos","id":"cf6efd97-3993-4d84-ab43-6f1d92639e97","savedPayload":{"position":{"x":13600.072397940483,"y":18567.32985984658},"targetPosition":{"x":13151.459597760575,"y":18532.02326676905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b77abc19-4786-49ee-87dd-5b7b62bda4b1","savedPayload":{"position":{"x":13575.648268752055,"y":18682.236353424247},"targetPosition":{"x":13151.459597760575,"y":18532.02326676905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"bf84a722-b80e-4df8-a985-fb7d00698045","savedPayload":{"position":{"x":13522.316382640482,"y":18786.906073385224},"targetPosition":{"x":13151.459597760575,"y":18532.02326676905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"9dd2d16c-b31a-45e4-968b-ee8d834cf603","savedPayload":{"position":{"x":13443.711219509158,"y":18874.205951289066},"targetPosition":{"x":13151.459597760575,"y":18532.02326676905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"e403eb56-5407-4d55-82b4-6092282ce211","savedPayload":{"position":{"x":13345.189591324308,"y":18938.186644726487},"targetPosition":{"x":13151.459597760575,"y":18532.02326676905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Cycle","config":"{ \n\"codeName\": \"cycle\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"c4059697-9213-4575-94b5-d7a0fa8f6b1d","savedPayload":{"position":{"x":13233.46558423204,"y":18974.48797517283},"targetPosition":{"x":13151.459597760575,"y":18532.02326676905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Head Of The Market","config":"{ \n\"codeName\": \"headOfTheMarket\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b54cfc30-0893-4014-abad-56816efc482d","savedPayload":{"position":{"x":13116.153004683045,"y":18980.63606694896},"targetPosition":{"x":13151.459597760575,"y":18532.02326676905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Process Date","config":"{ \n\"codeName\": \"processDate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"855cf89d-cf40-4af9-b07e-282aa069c746","savedPayload":{"position":{"x":13001.246511105379,"y":18956.21193776053},"targetPosition":{"x":13151.459597760575,"y":18532.02326676905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bfd06cb2-34d5-4805-80e8-8ede45d7eb83","savedPayload":{"position":{"x":13151.459597760575,"y":18532.02326676905},"targetPosition":{"x":12780.602812880668,"y":18277.140460152877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"6acf4f24-db31-4187-b3fc-ee3b38697206","savedPayload":{"position":{"x":12780.602812880668,"y":18277.140460152877},"targetPosition":{"x":12340.436392550457,"y":18183.580199284886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Episode","id":"74c7e9ac-b846-4336-aaf1-7ccc619f93ba"}}}],"productDefinitionFolders":[],"id":"c0f84917-7fae-468d-b96a-7a353de7763c","savedPayload":{"position":{"x":12340.436392550457,"y":18183.580199284886},"targetPosition":{"x":12039.327619688971,"y":18517.995370749715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Predictions","project":"Superalgos","products":[{"type":"Product Definition","name":"Predictions","config":"{\n \"codeName\": \"Predictions\",\n \"singularVariableName\": \"prediction\",\n \"pluralVariableName\": \"predictions\",\n \"nodePath\": \"learningEngine.predictions.predictions\",\n \"nodePathType\": \"array\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-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/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n}","project":"Superalgos","id":"cb3aee40-6019-4f0b-8acc-6f384e414651","savedPayload":{"position":{"x":13140.892814551287,"y":18664.112899249965},"targetPosition":{"x":12919.660460349398,"y":18705.115892485697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"cbca15ec-5937-4dbb-9750-d851d120a658","savedPayload":{"position":{"x":13139.743670514505,"y":18751.896022919693},"targetPosition":{"x":12919.660460349398,"y":18705.115892485697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"b378851b-d440-45e9-9c4a-ca06f8a1f6e1","savedPayload":{"position":{"x":13262.287453392886,"y":18940.596900707413},"targetPosition":{"x":13042.20424322778,"y":18893.816770273417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"b2dda032-dbe3-4278-9dc5-fa5a73ed7641","savedPayload":{"position":{"x":13164.748026106161,"y":19082.517648061137},"targetPosition":{"x":13042.20424322778,"y":18893.816770273417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Predition Value","config":"{\n \"codeName\": \"predictionValue\",\n \"isString\": false\n}","project":"Superalgos","id":"0adea742-370e-4dd2-9d11-007a4f4919cf","savedPayload":{"position":{"x":12995.424112793784,"y":19113.899980438524},"targetPosition":{"x":13042.20424322778,"y":18893.816770273417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1848d43b-53ab-436d-826f-458d02ed1291","savedPayload":{"position":{"x":13042.20424322778,"y":18893.816770273417},"targetPosition":{"x":12919.660460349398,"y":18705.115892485697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b2746119-b85f-4f32-8ac1-ddbf4a934373","savedPayload":{"position":{"x":12919.660460349398,"y":18705.115892485697},"targetPosition":{"x":12479.494040019184,"y":18611.555631617706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"v"},"referenceParent":{"type":"Plotter Module","name":"Predictions","id":"af455ab4-5064-4f50-96e4-4ecc4b06ef00"}}}],"productDefinitionFolders":[],"id":"b047fd17-a0f4-4eeb-8469-efe4b3afdcd9","savedPayload":{"position":{"x":12479.494040019184,"y":18611.555631617706},"targetPosition":{"x":12039.327619688971,"y":18517.995370749715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"608a3ab0-e1aa-470a-9142-eb2e92a2d284","savedPayload":{"position":{"x":12039.327619688971,"y":18517.995370749715},"targetPosition":{"x":11611.352187356151,"y":18657.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Learning System","project":"Superalgos","products":[{"type":"Product Definition","name":"Learning System Errors","config":"{\n \"codeName\": \"Learning-System-Errors\",\n \"singularVariableName\": \"learningSystemError\",\n \"pluralVariableName\": \"learningSystemErrors\",\n \"nodePath\": \"learningSystem\",\n \"propertyNameThatDefinesStatus\": \"errors\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"2a487ee8-0eb4-497f-84c9-f647b16dd17a","savedPayload":{"position":{"x":12356.356190088165,"y":18213.269786128963},"targetPosition":{"x":12303.830983220585,"y":18432.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"57d6ac5b-46a8-487d-88ac-48ddd012e842","savedPayload":{"position":{"x":12436.082664986392,"y":18250.024194484078},"targetPosition":{"x":12303.830983220585,"y":18432.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"f5042769-a963-4687-9c31-43621e0ab333","savedPayload":{"position":{"x":12548.200227067835,"y":18095.707609067875},"targetPosition":{"x":12495.675020200255,"y":18314.490841157352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"c9ba0794-54fc-4062-a416-660d8c8d14f6","savedPayload":{"position":{"x":12687.519057179925,"y":18196.928664096264},"targetPosition":{"x":12495.675020200255,"y":18314.490841157352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Errors","config":"{\n \"codeName\": \"errors\",\n \"isString\": false\n}","project":"Superalgos","id":"5ea2a845-fd76-4119-b9a8-c9a39bc1ce1c","savedPayload":{"position":{"x":12714.458252289733,"y":18367.016048024932},"targetPosition":{"x":12495.675020200255,"y":18314.490841157352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"47b842b7-958b-40b1-8f3e-266f55494eb1","savedPayload":{"position":{"x":12495.675020200255,"y":18314.490841157352},"targetPosition":{"x":12303.830983220585,"y":18432.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"abbfae5c-7a9b-412f-b9d4-4de62fcef1f0","savedPayload":{"position":{"x":12303.830983220583,"y":18432.05301821844},"targetPosition":{"x":12039.327619688971,"y":18796.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Errors","id":"0ebe46ec-88d8-4051-968f-2b96cb4b9f31"}}},{"type":"Product Definition","name":"Learning System Highlights","config":"{\n \"codeName\": \"Learning-System-Highlights\",\n \"singularVariableName\": \"learningSystemHighlight\",\n \"pluralVariableName\": \"learningSystemHighlights\",\n \"nodePath\": \"learningSystem\",\n \"propertyNameThatDefinesStatus\": \"highlights\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0f15bfca-8a05-4a4d-92b4-ba0c78d62dd1","savedPayload":{"position":{"x":12520.947444218786,"y":18339.763265175883},"targetPosition":{"x":12403.385267157697,"y":18531.607302155553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"4b724ede-ed95-4c87-b555-294511613b76","savedPayload":{"position":{"x":12585.41409089206,"y":18399.355620389746},"targetPosition":{"x":12403.385267157697,"y":18531.607302155553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"37610c20-88a3-4326-a6f1-9a8715777777","savedPayload":{"position":{"x":12739.730676308263,"y":18287.238058308303},"targetPosition":{"x":12622.168499247175,"y":18479.082095287973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"d6ee1af7-2c15-429c-8f68-36a638c18377","savedPayload":{"position":{"x":12840.951731336652,"y":18426.556888420393},"targetPosition":{"x":12622.168499247175,"y":18479.082095287973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Highlights","config":"{\n \"codeName\": \"highlights\",\n \"isString\": false\n}","project":"Superalgos","id":"ab3f38bb-a679-4476-81c4-cb4836c04a7d","savedPayload":{"position":{"x":12814.012536226845,"y":18596.64427234906},"targetPosition":{"x":12622.168499247175,"y":18479.082095287973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d09baaa4-a5bb-4a0a-903a-87244b39bc35","savedPayload":{"position":{"x":12622.168499247175,"y":18479.082095287973},"targetPosition":{"x":12403.385267157697,"y":18531.607302155553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"de09ef26-d9f3-4dc7-ab1d-e7c091a9233d","savedPayload":{"position":{"x":12403.385267157697,"y":18531.607302155553},"targetPosition":{"x":12039.327619688971,"y":18796.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Highlights","id":"e871938a-41c8-49ce-bed3-df2bbd44fde3"}}},{"type":"Product Definition","name":"Learning System Values","config":"{\n \"codeName\": \"Learning-System-Values\",\n \"singularVariableName\": \"learningSystemValue\",\n \"pluralVariableName\": \"learningSystemValues\",\n \"nodePath\": \"learningSystem\",\n \"propertyNameThatDefinesStatus\": \"values\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"d1702db2-e4e8-4e01-8a31-9e7b23cf944f","savedPayload":{"position":{"x":12638.394394281797,"y":18510.92720734415},"targetPosition":{"x":12467.30305202179,"y":18657.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"bdcf18f2-ab49-4b5c-8220-07e4d9a76880","savedPayload":{"position":{"x":12681.290768188199,"y":18587.524194484078},"targetPosition":{"x":12467.30305202179,"y":18657.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"fe0936f9-89f0-4039-ba93-22f19fbc9288","savedPayload":{"position":{"x":12862.70079437175,"y":18528.580503882917},"targetPosition":{"x":12691.609452111745,"y":18674.706314757208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"12eab8e6-527a-42ac-92b9-fbff54c680df","savedPayload":{"position":{"x":12915.915852201699,"y":18692.359611295975},"targetPosition":{"x":12691.609452111745,"y":18674.706314757208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Values","config":"{\n \"codeName\": \"values\",\n \"isString\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"a5e5c2bb-94e4-4c09-85d6-d3571db10690","savedPayload":{"position":{"x":12837.735262986036,"y":18845.797657017214},"targetPosition":{"x":12691.609452111745,"y":18674.706314757208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0456fb61-2d77-4d8c-9e79-3b5999f408b0","savedPayload":{"position":{"x":12691.609452111745,"y":18674.706314757208},"targetPosition":{"x":12467.30305202179,"y":18657.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"bf07c203-188a-4f50-9bdf-8ec84d617642","savedPayload":{"position":{"x":12467.30305202179,"y":18657.05301821844},"targetPosition":{"x":12039.327619688971,"y":18796.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Values","id":"da56e587-d6b5-484b-b802-dabd52f69849"}}},{"type":"Product Definition","name":"Learning System Status","config":"{\n \"codeName\": \"Learning-System-Status\",\n \"singularVariableName\": \"learningSystemState\",\n \"pluralVariableName\": \"learningSystemStatus\",\n \"nodePath\": \"learningSystem\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0e09e729-0b1d-411d-b7ed-c9b49979326c","savedPayload":{"position":{"x":12697.20051450401,"y":18710.00689340502},"targetPosition":{"x":12489.327619688971,"y":18796.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"3deef37c-60ad-4137-a5df-fbbf450a161e","savedPayload":{"position":{"x":12714.327619688971,"y":18796.110665687167},"targetPosition":{"x":12489.327619688971,"y":18796.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"cf10f62a-d5ed-492c-b71e-393c318ea36d","savedPayload":{"position":{"x":12905.073409319048,"y":18796.110665687167},"targetPosition":{"x":12697.20051450401,"y":18882.214437969313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"1f8aba25-f907-4538-8783-625eaf53c140","savedPayload":{"position":{"x":12905.073409319048,"y":18968.31821025146},"targetPosition":{"x":12697.20051450401,"y":18882.214437969313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{\n \"codeName\": \"status\",\n \"isString\": false\n}","project":"Superalgos","id":"7123a16b-ddeb-42ff-8cd8-e5570699407c","savedPayload":{"position":{"x":12783.304286786155,"y":19090.08733278435},"targetPosition":{"x":12697.20051450401,"y":18882.214437969313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4b023593-453f-4952-abf1-552f3c321859","savedPayload":{"position":{"x":12697.20051450401,"y":18882.214437969313},"targetPosition":{"x":12489.327619688971,"y":18796.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"547fbf31-e931-4c4b-8438-6b8746c4d247","savedPayload":{"position":{"x":12489.327619688971,"y":18796.110665687167},"targetPosition":{"x":12039.327619688971,"y":18796.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Status","id":"726a1c09-ce3d-4937-85f9-a2c900932818"}}},{"type":"Product Definition","name":"Learning System Progress","config":"{\n \"codeName\": \"Learning-System-Progress\",\n \"singularVariableName\": \"learningSystemProgress\",\n \"pluralVariableName\": \"learningSystemProgresses\",\n \"nodePath\": \"learningSystem\",\n \"propertyNameThatDefinesStatus\": \"progress\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"7d52a48e-8f44-485a-b898-1ecf3de2b642","savedPayload":{"position":{"x":12691.609452111745,"y":18917.515016617126},"targetPosition":{"x":12467.30305202179,"y":18935.168313155893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"308caaa5-5821-44a3-a971-119f5b5a2f3a","savedPayload":{"position":{"x":12681.290768188199,"y":19004.697136890256},"targetPosition":{"x":12467.30305202179,"y":18935.168313155893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"393722a2-4de0-4f53-90f0-10593e0b95be","savedPayload":{"position":{"x":12862.70079437175,"y":19063.640827491417},"targetPosition":{"x":12638.394394281797,"y":19081.294124030184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"0a92748d-d8f4-47f3-be30-d9b1de5dc640","savedPayload":{"position":{"x":12809.485736541803,"y":19227.419934904476},"targetPosition":{"x":12638.394394281797,"y":19081.294124030184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Progress","config":"{\n \"codeName\": \"progress\",\n \"isString\": false\n}","project":"Superalgos","id":"2732303d-919a-4b2b-bc19-241327c1cf14","savedPayload":{"position":{"x":12656.047690820564,"y":19305.60052412014},"targetPosition":{"x":12638.394394281797,"y":19081.294124030184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9b24398e-6f4d-44db-9f16-e795168a997b","savedPayload":{"position":{"x":12638.394394281797,"y":19081.294124030184},"targetPosition":{"x":12467.30305202179,"y":18935.168313155893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"2c73dc34-07b1-4eaa-9eac-7f8a913e54db","savedPayload":{"position":{"x":12467.30305202179,"y":18935.168313155893},"targetPosition":{"x":12039.327619688971,"y":18796.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Progress","id":"bddd3dbc-44ce-4974-8d27-475f3ff00a75"}}},{"type":"Product Definition","name":"Learning System Running","config":"{\n \"codeName\": \"Learning-System-Running\",\n \"singularVariableName\": \"learningSystemRun\",\n \"pluralVariableName\": \"learningSystemRunning\",\n \"nodePath\": \"learningSystem\",\n \"propertyNameThatDefinesStatus\": \"running\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"beaa91a9-b48f-4a2e-9326-ac1eaa76f7fc","savedPayload":{"position":{"x":12622.168499247175,"y":19113.13923608636},"targetPosition":{"x":12403.385267157697,"y":19060.61402921878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"704e2e55-c731-4405-a0ac-bd587a502b0f","savedPayload":{"position":{"x":12585.41409089206,"y":19192.865710984588},"targetPosition":{"x":12403.385267157697,"y":19060.61402921878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"85dc3af3-5400-4a06-a39b-b6417bf5bdfb","savedPayload":{"position":{"x":12739.730676308263,"y":19304.98327306603},"targetPosition":{"x":12520.947444218786,"y":19252.45806619845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"ac644b71-277f-47de-90f9-cc0924315b47","savedPayload":{"position":{"x":12638.509621279874,"y":19444.30210317812},"targetPosition":{"x":12520.947444218786,"y":19252.45806619845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Running","config":"{\n \"codeName\": \"running\",\n \"isString\": false\n}","project":"Superalgos","id":"35b77253-8b49-49ea-add7-784de0a1444b","savedPayload":{"position":{"x":12468.422237351206,"y":19471.24129828793},"targetPosition":{"x":12520.947444218786,"y":19252.45806619845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6a42af0b-f985-46e1-ae5a-0907ddd4dbc0","savedPayload":{"position":{"x":12520.947444218786,"y":19252.45806619845},"targetPosition":{"x":12403.385267157697,"y":19060.61402921878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"2af4d2f4-c0fa-4c9a-aa0b-689bbccb1048","savedPayload":{"position":{"x":12403.385267157697,"y":19060.61402921878},"targetPosition":{"x":12039.327619688971,"y":18796.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Running","id":"9767758e-51fa-4581-8575-a98b7d182644"}}},{"type":"Product Definition","name":"Learning System Announcements","config":"{\n \"codeName\": \"Learning-System-Announcements\",\n \"singularVariableName\": \"learningSystemAnnouncement\",\n \"pluralVariableName\": \"learningSystemAnnouncements\",\n \"nodePath\": \"learningSystem\",\n \"propertyNameThatDefinesStatus\": \"announcements\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"4da28d63-2f82-4bac-acaf-b55d96c67ace","savedPayload":{"position":{"x":12495.675020200255,"y":19277.73049021698},"targetPosition":{"x":12303.830983220585,"y":19160.168313155893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"56438754-6219-4a56-b281-4bbafb02f8d9","savedPayload":{"position":{"x":12436.082664986392,"y":19342.197136890256},"targetPosition":{"x":12303.830983220585,"y":19160.168313155893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"5bf30b0d-26fe-4fb5-9608-89105cbdb0f8","savedPayload":{"position":{"x":12548.200227067835,"y":19496.51372230646},"targetPosition":{"x":12356.356190088165,"y":19378.95154524537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.candle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"4afac23d-82d9-46bb-9cd7-a4f70cb7a92d","savedPayload":{"position":{"x":12408.881396955745,"y":19597.73477733485},"targetPosition":{"x":12356.356190088165,"y":19378.95154524537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Announcements","config":"{\n \"codeName\": \"announcements\",\n \"isString\": false\n}","project":"Superalgos","id":"9d9160a2-0f6e-4079-b2a7-ca8083e478a9","savedPayload":{"position":{"x":12238.794013027076,"y":19570.79558222504},"targetPosition":{"x":12356.356190088165,"y":19378.95154524537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b21d3090-33e1-428e-a24e-4ecbe6e2d554","savedPayload":{"position":{"x":12356.356190088165,"y":19378.95154524537},"targetPosition":{"x":12303.830983220585,"y":19160.168313155893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"3c5c38bf-827f-4448-8b2c-f24b97fcec96","savedPayload":{"position":{"x":12303.830983220583,"y":19160.168313155893},"targetPosition":{"x":12039.327619688971,"y":18796.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Announcements","id":"79fcb191-55c6-4a99-9688-be5950a71f78"}}},{"type":"Product Definition","name":"Learning System Warnings","config":"{\n \"codeName\": \"Learning-System-Warnings\",\n \"singularVariableName\": \"learningSystemWarning\",\n \"pluralVariableName\": \"learningSystemWarnings\",\n \"nodePath\": \"learningSystem\",\n \"propertyNameThatDefinesStatus\": \"warnings\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"3a3d51a9-6eb8-4267-a00b-07ab26516721","savedPayload":{"position":{"x":12324.511078031988,"y":19395.177440279993},"targetPosition":{"x":12178.385267157697,"y":19224.086098019987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"1bdb790b-6e98-4cbc-8463-036d7d342d12","savedPayload":{"position":{"x":12247.91409089206,"y":19438.073814186395},"targetPosition":{"x":12178.385267157697,"y":19224.086098019987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"991e75b8-3c7a-412d-bbe2-9c4481e5b7bc","savedPayload":{"position":{"x":12306.857781493221,"y":19619.483840369947},"targetPosition":{"x":12160.73197061893,"y":19448.39249810994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"3ded4031-586f-42c7-985d-9d3538f4c03f","savedPayload":{"position":{"x":12143.078674080163,"y":19672.698898199895},"targetPosition":{"x":12160.73197061893,"y":19448.39249810994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Warnings","config":"{\n \"codeName\": \"warnings\",\n \"isString\": false\n}","project":"Superalgos","id":"5c6b8cab-f143-452c-a73d-e09d1b5f8ea2","savedPayload":{"position":{"x":11989.640628358924,"y":19594.518308984232},"targetPosition":{"x":12160.73197061893,"y":19448.39249810994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4b6ad228-f28f-4846-b13d-1d9583efbef7","savedPayload":{"position":{"x":12160.73197061893,"y":19448.39249810994},"targetPosition":{"x":12178.385267157697,"y":19224.086098019987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"6e56cf66-5a39-4723-b708-2cc3b58a28f9","savedPayload":{"position":{"x":12178.385267157697,"y":19224.086098019987},"targetPosition":{"x":12039.327619688971,"y":18796.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Warnings","id":"ba37a274-dd77-46f1-b173-6a2241f6840e"}}},{"type":"Product Definition","name":"Learning System Infos","config":"{\n \"codeName\": \"Learning-System-Infos\",\n \"singularVariableName\": \"learningSystemInfo\",\n \"pluralVariableName\": \"learningSystemInfos\",\n \"nodePath\": \"learningSystem\",\n \"propertyNameThatDefinesStatus\": \"infos\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"ec478333-805d-4c59-a550-3a51a9ebdc5b","savedPayload":{"position":{"x":12125.431391971117,"y":19453.983560502205},"targetPosition":{"x":12039.327619688971,"y":19246.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"6c89f99e-279f-4d61-a03d-59667ac1614f","savedPayload":{"position":{"x":12039.327619688971,"y":19471.110665687167},"targetPosition":{"x":12039.327619688971,"y":19246.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"a53e1c42-6fde-4831-ae76-7968cfdef2fe","savedPayload":{"position":{"x":12039.327619688971,"y":19661.856455317244},"targetPosition":{"x":11953.223847406825,"y":19453.983560502205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"35e67fd8-1ceb-4c08-9945-953f4882bc5c","savedPayload":{"position":{"x":11867.12007512468,"y":19661.856455317244},"targetPosition":{"x":11953.223847406825,"y":19453.983560502205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Infos","config":"{\n \"codeName\": \"infos\",\n \"isString\": false\n}","project":"Superalgos","id":"727a316b-5528-4656-8ba8-9e521bc6810a","savedPayload":{"position":{"x":11745.350952591787,"y":19540.08733278435},"targetPosition":{"x":11953.223847406825,"y":19453.983560502205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b22b6a89-4659-42fc-99a4-5abd65502d34","savedPayload":{"position":{"x":11953.223847406825,"y":19453.983560502205},"targetPosition":{"x":12039.327619688971,"y":19246.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"9a158859-63ce-4325-920e-330097af89c0","savedPayload":{"position":{"x":12039.327619688971,"y":19246.110665687167},"targetPosition":{"x":12039.327619688971,"y":18796.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Infos","id":"64656680-9d40-4e0b-afe7-d84d4332261c"}}}],"productDefinitionFolders":[],"id":"62b002cf-fbf0-4b19-95c2-aa20d1d7a370","savedPayload":{"position":{"x":12039.327619688971,"y":18796.110665687167},"targetPosition":{"x":11611.352187356151,"y":18657.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Simulation Objects","project":"Superalgos","products":[{"type":"Product Definition","name":"Episodes","config":"{\n \"codeName\": \"Episode-Objects\",\n \"singularVariableName\": \"episodeObject\",\n \"pluralVariableName\": \"episodeObjects\",\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"6fad647f-d440-4423-ad34-f21495863be4","savedPayload":{"position":{"x":12511.873904946435,"y":19210.031968440548},"targetPosition":{"x":12286.951006826934,"y":19204.142155071277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a9a9f046-27e3-4899-a351-55351cf3b1a1","savedPayload":{"position":{"x":12492.49873479652,"y":19295.657899763333},"targetPosition":{"x":12286.951006826934,"y":19204.142155071277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"ace06ac4-8d8a-47d9-8e73-c56332a4aeb9","savedPayload":{"position":{"x":13731.824191897924,"y":19498.10492694961},"targetPosition":{"x":12906.470124951313,"y":19856.979088982334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"14a33d30-21c2-4af9-90ed-2737ee9dc93d","savedPayload":{"position":{"x":13804.791443530992,"y":19802.03540340096},"targetPosition":{"x":12906.470124951313,"y":19856.979088982334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"12649a72-66ec-4eed-b553-531e0f212696","savedPayload":{"position":{"x":13769.407886332687,"y":20112.592899215866},"targetPosition":{"x":12906.470124951313,"y":19856.979088982334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"865f631c-f841-4dee-899a-d86ae5ece15f","savedPayload":{"position":{"x":13629.941299506809,"y":20392.31959705854},"targetPosition":{"x":12906.470124951313,"y":19856.979088982334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b6dcc9c3-8aef-4b00-b8d6-a231623e22f6","savedPayload":{"position":{"x":13403.213411732166,"y":20607.476328842786},"targetPosition":{"x":12906.470124951313,"y":19856.979088982334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"666c82e6-9081-4544-b2ea-b506770d42fb","savedPayload":{"position":{"x":13116.570952421627,"y":20732.112017340245},"targetPosition":{"x":12906.470124951313,"y":19856.979088982334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"dd673337-26f2-405c-8c0b-4cb67c2a664a","savedPayload":{"position":{"x":12804.587232560196,"y":20751.193759091264},"targetPosition":{"x":12906.470124951313,"y":19856.979088982334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"90bd1d5e-1085-42c6-8d58-90f912696312","savedPayload":{"position":{"x":12504.892093152484,"y":20662.42001442416},"targetPosition":{"x":12906.470124951313,"y":19856.979088982334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"38202a05-9d7d-4da7-88af-da338eef69de","savedPayload":{"position":{"x":12906.470124951313,"y":19856.979088982334},"targetPosition":{"x":12286.951006826934,"y":19204.142155071277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"60a5f962-1b8f-4260-91c6-e05209a2f150","savedPayload":{"position":{"x":12140.358914419376,"y":19385.168313155893},"targetPosition":{"x":11875.855550887763,"y":19021.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Episode Objects","id":"67ef0a2d-8f83-4507-b2c7-54f026b23034"}}}],"productDefinitionFolders":[],"id":"bd3c0efa-8113-4636-9e14-f63f22f9d753","savedPayload":{"position":{"x":11875.855550887763,"y":19021.110665687167},"targetPosition":{"x":11611.352187356151,"y":18657.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"77e3ffe9-0c82-4632-85ab-7ec6b74791dc","savedPayload":{"position":{"x":11611.352187356151,"y":18657.05301821844},"targetPosition":{"x":11161.352187356151,"y":18657.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}}],"plotters":[{"type":"Plotter","name":"Learning Engine","config":"{ \n\"codeName\": \"Learning-Engine\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Learning Episode Counters","config":"{\n \"codeName\": \"Learning-Episode-Counters\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Learning Episode Counters","config":"{ \n \"codeName\": \"Learning-Episode-Counters\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"48c7dadc-a208-48da-8e23-2f0b8ff0a8ac","savedPayload":{"position":{"x":12084.688367353161,"y":18944.399154348943},"targetPosition":{"x":11937.923699815583,"y":19114.94279205667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5876f3e6-ab1e-4c23-a773-74e10e9bad28","savedPayload":{"position":{"x":11937.923699815583,"y":19114.94279205667},"targetPosition":{"x":11791.159032278005,"y":19285.486429764398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hits","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hits","project":"Superalgos","id":"e96035c8-290e-4f6d-8203-6062a31ada93","savedPayload":{"position":{"x":12239.900741009535,"y":19251.85788765051},"targetPosition":{"x":12015.52988664377,"y":19268.672158707453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b6f33707-a4b1-4e1e-a33a-fa94bfe837e7","savedPayload":{"position":{"x":12015.52988664377,"y":19268.672158707453},"targetPosition":{"x":11791.159032278005,"y":19285.486429764398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fails","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.fails","project":"Superalgos","id":"414f3c3d-624b-4ad7-8dca-2618e835bdc6","savedPayload":{"position":{"x":12132.24630769346,"y":19579.01576483955},"targetPosition":{"x":11961.702669985732,"y":19432.251097301974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7877cfac-08ed-4132-989b-9b3c05d12fd1","savedPayload":{"position":{"x":11961.702669985732,"y":19432.251097301974},"targetPosition":{"x":11791.159032278005,"y":19285.486429764398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e24d28b3-e035-4f39-aa88-b22cfafeb1b7","savedPayload":{"position":{"x":11791.159032278005,"y":19285.486429764398},"targetPosition":{"x":11566.78817791224,"y":19302.300700821343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"ce4f9532-2bc2-4621-ab95-72e36670b42f","savedPayload":{"position":{"x":11630.161684444398,"y":19395.25256293189},"targetPosition":{"x":11566.78817791224,"y":19302.300700821343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"788bfd62-11af-4bbe-96f4-d2ba930334a2","savedPayload":{"position":{"x":11566.78817791224,"y":19302.300700821343},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Learning Episode Statistics","config":"{ \n\"codeName\": \"Learning-Episode-Statistics\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Learning Episode Statistics","config":"{ \n \"codeName\": \"Learning-Episode-Statistics\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"277485fd-1224-44b4-9c74-056670008da7","savedPayload":{"position":{"x":12297.350701877678,"y":18516.766191637038},"targetPosition":{"x":12215.14897139524,"y":18726.212785081985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c15f5fb5-c33f-42e0-b199-1be374b721e1","savedPayload":{"position":{"x":12215.14897139524,"y":18726.212785081985},"targetPosition":{"x":12132.947240912801,"y":18935.659378526932},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Ratio","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitRatio","project":"Superalgos","id":"9011f392-a4b5-4de7-8970-3b4b324b1edb","savedPayload":{"position":{"x":12545.400256054292,"y":18755.70796758305},"targetPosition":{"x":12339.173748483547,"y":18845.68367305499},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"651a608a-9cb6-456a-b136-de7fec4c988a","savedPayload":{"position":{"x":12339.173748483547,"y":18845.68367305499},"targetPosition":{"x":12132.947240912801,"y":18935.659378526932},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFail","project":"Superalgos","id":"1ab21d8a-3a1e-40f2-8b2c-0e6a22e9d38b","savedPayload":{"position":{"x":12551.840427802692,"y":19100.062839491813},"targetPosition":{"x":12342.393834357747,"y":19017.861109009373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"250bdaa3-a022-4f20-bce8-ae0dfc53bcf4","savedPayload":{"position":{"x":12342.393834357747,"y":19017.861109009373},"targetPosition":{"x":12132.947240912801,"y":18935.659378526932},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5b295fb8-10d6-4f29-9dfd-9e3d1cccc887","savedPayload":{"position":{"x":12132.947240912801,"y":18935.659378526932},"targetPosition":{"x":11926.720733342056,"y":19025.635083998874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"a0905dc2-58ed-42bd-b7e3-7e4e06f96601","savedPayload":{"position":{"x":12017.237983565807,"y":19092.43985487589},"targetPosition":{"x":11926.720733342056,"y":19025.635083998874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"59f91a2a-a1ba-4414-a9a2-ea1c05ba7887","savedPayload":{"position":{"x":11441.922598192581,"y":19458.877185329056},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Candle","config":"{ \n\"codeName\": \"Current-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"f3929cc8-9c0a-481f-921b-6ff9c2c66da9","savedPayload":{"position":{"x":11286.520212706579,"y":19655.449968820718},"targetPosition":{"x":11261.486607636492,"y":19545.770578700263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"867dbe76-ca02-45a3-88c3-afc055c1234a","savedPayload":{"position":{"x":11261.486607636492,"y":19545.770578700263},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Distance To Learning Event","config":"{ \n\"codeName\": \"Distance-To-Learning-Event\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"2eec9ac9-49eb-4c24-8115-3265706b24cd","savedPayload":{"position":{"x":11036.184162005724,"y":19655.449968820718},"targetPosition":{"x":11061.21776707581,"y":19545.770578700263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"4495e33d-7fe3-4fb6-96ee-191d863e768d","savedPayload":{"position":{"x":11061.21776707581,"y":19545.770578700263},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Episode","config":"{ \n\"codeName\": \"Current-Position\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"2421954e-3258-4064-a4b0-24f90fc6f77e","savedPayload":{"position":{"x":10810.639173810614,"y":19546.83322710671},"targetPosition":{"x":10880.781776519721,"y":19458.877185329056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"74c7e9ac-b846-4336-aaf1-7ccc619f93ba","savedPayload":{"position":{"x":10880.781776519721,"y":19458.877185329056},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Predictions","config":"{ \n \"codeName\": \"Module-Name\", \n \"icon\": \"histogram|band|moving-average|oscillator|trend\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Prediction Values","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Prediction Value","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.predictionValue","project":"Superalgos","id":"e9d73a79-650f-43b5-98f3-11eed2aa85f5","savedPayload":{"position":{"x":10375.67515760712,"y":19860.011873484636},"targetPosition":{"x":10502.422170671434,"y":19674.10814926354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78909080-b088-4189-8eb8-7ae579fd3e55","savedPayload":{"position":{"x":10502.422170671434,"y":19674.10814926354},"targetPosition":{"x":10629.169183735748,"y":19488.20442504244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"86fc01d8-f92a-47e8-8da6-34a92813f583","savedPayload":{"position":{"x":10629.169183735748,"y":19488.20442504244},"targetPosition":{"x":10755.916196800063,"y":19302.300700821343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"360f47a4-15f4-406c-a0c0-979a633330b1","savedPayload":{"position":{"x":10531.545342434298,"y":19285.486429764398},"targetPosition":{"x":10755.916196800063,"y":19302.300700821343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"af455ab4-5064-4f50-96e4-4ecc4b06ef00","savedPayload":{"position":{"x":10755.916196800063,"y":19302.300700821343},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cfe33a78-6588-49fb-8d34-8f22149061ee","savedPayload":{"position":{"x":11161.352187356151,"y":19107.05301821844},"targetPosition":{"x":11161.352187356151,"y":18657.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Learning System","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Highlights","config":"{ \n\"codeName\": \"Highlights\",\n\"connectTo\": \"Learning System\"\n}","project":"Superalgos","panels":[],"nodesHighlights":{"type":"Nodes Highlights","name":"New Nodes Highlights","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"3b74694d-a152-42ae-9c8c-02828233a6cd","savedPayload":{"position":{"x":12017.30305202179,"y":19385.168313155893},"targetPosition":{"x":11589.327619688971,"y":19246.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e871938a-41c8-49ce-bed3-df2bbd44fde3","savedPayload":{"position":{"x":11589.327619688971,"y":19246.110665687167},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Values","config":"{ \n\"codeName\": \"Values\",\n\"connectTo\": \"Learning System\"\n}","project":"Superalgos","panels":[],"nodesValues":{"type":"Nodes Values","name":"New Nodes Values","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"831311c7-a925-455a-8ad6-000d96d2b377","savedPayload":{"position":{"x":11889.467482293603,"y":19636.05974528167},"targetPosition":{"x":11525.409834824877,"y":19371.556381750055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"da56e587-d6b5-484b-b802-dabd52f69849","savedPayload":{"position":{"x":11525.409834824877,"y":19371.556381750055},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Errors","config":"{\n \"codeName\": \"Errors\",\n \"connectTo\": \"Learning System\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"errors\",\n \"rateInArrayAtIndex\": 3,\n \"rateOffset\": -100,\n \"rateOffsetBasedOnArrayIndex\": -50,\n \"rateRange\": 20\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"Errors","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Error #1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[0][3]","project":"Superalgos","id":"d4e825e4-d39f-4b76-b341-e6de19def4a7","savedPayload":{"position":{"x":12045.553264071244,"y":18594.73177229653},"targetPosition":{"x":12092.591072541687,"y":19042.266625212254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b16fbb53-78fe-4498-ad4b-427f0c6275e2","savedPayload":{"position":{"x":12092.591072541687,"y":19042.266625212254},"targetPosition":{"x":12139.62888101213,"y":19489.801478127978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Error #2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[1][3]","project":"Superalgos","id":"88add502-4c62-44e3-9570-005129262d72","savedPayload":{"position":{"x":12505.691859780349,"y":18667.610566249634},"targetPosition":{"x":12322.66037039624,"y":19078.706022188806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a77ff001-72cb-424a-8144-09cb6355ad1c","savedPayload":{"position":{"x":12322.66037039624,"y":19078.706022188806},"targetPosition":{"x":12139.62888101213,"y":19489.801478127978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Error #3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[2][3]","project":"Superalgos","id":"abc96a44-5be7-4907-828f-28e80a9267ed","savedPayload":{"position":{"x":12867.744175949581,"y":18960.79475106475},"targetPosition":{"x":12503.686528480855,"y":19225.298114596364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"37f3f468-50e3-44e8-8820-62bc9a933996","savedPayload":{"position":{"x":12503.686528480855,"y":19225.298114596364},"targetPosition":{"x":12139.62888101213,"y":19489.801478127978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Error #4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[3][3]","project":"Superalgos","id":"e648bec2-8369-43b5-9b48-567d0f947280","savedPayload":{"position":{"x":13034.698586843577,"y":19395.725861187093},"targetPosition":{"x":12587.163733927853,"y":19442.763669657536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b394ff94-ffbc-4acf-9d8f-a3f0fd3f8c73","savedPayload":{"position":{"x":12587.163733927853,"y":19442.763669657536},"targetPosition":{"x":12139.62888101213,"y":19489.801478127978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Error #5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[4][3]","project":"Superalgos","id":"c233715b-3000-4758-92e3-5e5b6e5b71f0","savedPayload":{"position":{"x":12961.819792890474,"y":19855.864456896197},"targetPosition":{"x":12550.724336951302,"y":19672.832967512088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b8c82a83-f9c5-425a-bfc5-1e0e37c35614","savedPayload":{"position":{"x":12550.724336951302,"y":19672.832967512088},"targetPosition":{"x":12139.62888101213,"y":19489.801478127978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"966402c8-99e7-4b06-a64a-f518ee90c0c5","savedPayload":{"position":{"x":12139.62888101213,"y":19489.801478127978},"targetPosition":{"x":11775.571233543404,"y":19754.304841659592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[],"images":[{"type":"Image","name":"Error #1","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 30\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[0] !== undefined","project":"Superalgos","id":"c4c369a8-51e6-488d-b931-f50b995f0a27","savedPayload":{"position":{"x":12337.279513453359,"y":19418.18142303639},"targetPosition":{"x":12195.682425467145,"y":19593.039264364208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": -100\n}","project":"Superalgos","id":"a06d2f1d-04c3-4bc6-9784-61aaacd7b017","savedPayload":{"position":{"x":12417.91230210105,"y":19628.23701899826},"targetPosition":{"x":12195.682425467145,"y":19593.039264364208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #1","id":"b16fbb53-78fe-4498-ad4b-427f0c6275e2"}}},"id":"29b8de93-d69e-4f31-af4d-9d8072980e4a","savedPayload":{"position":{"x":12195.682425467145,"y":19593.039264364208},"targetPosition":{"x":11775.571233543404,"y":19754.304841659592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Error #2","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 25\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[1] !== undefined","project":"Superalgos","id":"046e66c7-56d4-4956-ab00-eff3b3b9d044","savedPayload":{"position":{"x":12405.13491019349,"y":19575.015351423343},"targetPosition":{"x":12223.106086459127,"y":19707.26703318915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": -150\n}","project":"Superalgos","id":"13a9812c-20c4-428a-ab8e-3c976a7b0c82","savedPayload":{"position":{"x":12428.653814428711,"y":19798.782777881206},"targetPosition":{"x":12223.106086459127,"y":19707.26703318915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #2","id":"a77ff001-72cb-424a-8144-09cb6355ad1c"}}},"id":"5c29acf5-b704-4105-aa54-6aadaef481f0","savedPayload":{"position":{"x":12223.106086459127,"y":19707.26703318915},"targetPosition":{"x":11775.571233543404,"y":19754.304841659592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Error #3","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[2] !== undefined","project":"Superalgos","id":"273bedfd-1d36-4e8c-b4aa-205351edcae6","savedPayload":{"position":{"x":12430.086582773085,"y":19744.06756228},"targetPosition":{"x":12220.030986811216,"y":19824.700350927695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": -200\n}","project":"Superalgos","id":"f1b4caad-53e8-4c1c-b728-dc8eb60913c1","savedPayload":{"position":{"x":12394.888828139035,"y":19966.29743891391},"targetPosition":{"x":12220.030986811216,"y":19824.700350927695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #3","id":"37f3f468-50e3-44e8-8820-62bc9a933996"}}},"id":"6d74cda3-0073-472d-921c-3a2a77c700e3","savedPayload":{"position":{"x":12220.030986811216,"y":19824.700350927695},"targetPosition":{"x":11775.571233543404,"y":19754.304841659592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Error #4","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 15\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[3] !== undefined","project":"Superalgos","id":"15e7d6a9-c60b-4208-9ad7-b1fec87c17ac","savedPayload":{"position":{"x":12410.434115940436,"y":19913.81742680848},"targetPosition":{"x":12186.666689482576,"y":19937.3363310437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": -250\n}","project":"Superalgos","id":"0bd14d84-e4c4-4ace-aade-88e6e8f58041","savedPayload":{"position":{"x":12318.918371248383,"y":20119.365154778065},"targetPosition":{"x":12186.666689482576,"y":19937.3363310437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #4","id":"b394ff94-ffbc-4acf-9d8f-a3f0fd3f8c73"}}},"id":"577c3a83-f163-4547-8065-a06d9a9ea11e","savedPayload":{"position":{"x":12186.666689482576,"y":19937.3363310437},"targetPosition":{"x":11775.571233543404,"y":19754.304841659592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Error #5","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[4] !== undefined","project":"Superalgos","id":"1c53b2d1-56cd-483b-9ccc-002cb38ba5a9","savedPayload":{"position":{"x":12347.516792832947,"y":20072.696772266074},"targetPosition":{"x":12125.286916199042,"y":20037.49901763202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": -300\n}","project":"Superalgos","id":"8b0e642d-9996-4296-9022-2fc55c1e22d4","savedPayload":{"position":{"x":12205.919704846736,"y":20247.55461359389},"targetPosition":{"x":12125.286916199042,"y":20037.49901763202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #5","id":"b8c82a83-f9c5-425a-bfc5-1e0e37c35614"}}},"id":"f0eb807f-72b3-4131-becb-2a711577ffb3","savedPayload":{"position":{"x":12125.286916199042,"y":20037.49901763202},"targetPosition":{"x":11775.571233543404,"y":19754.304841659592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"Error #1","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[0] !== undefined","project":"Superalgos","id":"49ad7e42-316e-4697-8152-2431156c3793","savedPayload":{"position":{"x":12265.074597075018,"y":20118.362489128318},"targetPosition":{"x":12040.074597075018,"y":20118.362489128318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": -135\n}","project":"Superalgos","id":"506be467-9151-4cf7-8625-269044062460","savedPayload":{"position":{"x":12222.10342080938,"y":20250.614170894125},"targetPosition":{"x":12040.074597075018,"y":20118.362489128318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #1","id":"b16fbb53-78fe-4498-ad4b-427f0c6275e2"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"1","project":"Superalgos","id":"68b8a268-e214-482e-ba4b-95baacf5ede5","savedPayload":{"position":{"x":12109.60342080938,"y":20332.350205294726},"targetPosition":{"x":12040.074597075018,"y":20118.362489128318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"8806ada1-7fcf-45f2-9702-909fbf751516","savedPayload":{"position":{"x":11970.545773340655,"y":20332.350205294726},"targetPosition":{"x":12040.074597075018,"y":20118.362489128318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f415bb95-9c69-4e9b-8584-3b4d20bd8682","savedPayload":{"position":{"x":12040.074597075018,"y":20118.362489128318},"targetPosition":{"x":11775.571233543404,"y":19754.304841659592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Error #2","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[1] !== undefined","project":"Superalgos","id":"e9c524a6-0c84-472f-bda5-3f26461822af","savedPayload":{"position":{"x":12154.170121753828,"y":20232.6503187314},"targetPosition":{"x":11936.836810838788,"y":20174.416033583333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": -180\n}","project":"Superalgos","id":"a81fbadd-a48d-4e80-897d-38a3a6693b4e","savedPayload":{"position":{"x":12078.433898825002,"y":20349.273874911152},"targetPosition":{"x":11936.836810838788,"y":20174.416033583333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #2","id":"a77ff001-72cb-424a-8144-09cb6355ad1c"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"2","project":"Superalgos","id":"9e4e14d0-5fe0-4509-95ec-53610d8a7689","savedPayload":{"position":{"x":11948.61240099345,"y":20399.10767890311},"targetPosition":{"x":11936.836810838788,"y":20174.416033583333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"337a2135-b5ac-4c23-9fd3-18f31ff7556b","savedPayload":{"position":{"x":11814.293027960408,"y":20363.116911371053},"targetPosition":{"x":11936.836810838788,"y":20174.416033583333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d0888223-96b0-4e21-9750-a235c39c936d","savedPayload":{"position":{"x":11936.836810838788,"y":20174.416033583333},"targetPosition":{"x":11775.571233543404,"y":19754.304841659592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Error #3","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[2] !== undefined","project":"Superalgos","id":"a1ad802b-464c-47b6-919e-3742ddaeceb7","savedPayload":{"position":{"x":12017.464757865346,"y":20314.339694575316},"targetPosition":{"x":11822.609042013846,"y":20201.839694575316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": -225\n}","project":"Superalgos","id":"a4b2d373-4e34-43a3-956c-a6bd1a39bb7a","savedPayload":{"position":{"x":11914.124786705903,"y":20407.3874225449},"targetPosition":{"x":11822.609042013846,"y":20201.839694575316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #3","id":"37f3f468-50e3-44e8-8820-62bc9a933996"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"3","project":"Superalgos","id":"a0e7b310-6ef8-4c8f-b8a7-ad9a4d756c88","savedPayload":{"position":{"x":11775.82891157985,"y":20421.922904740422},"targetPosition":{"x":11822.609042013846,"y":20201.839694575316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"a738c16b-d227-44fe-b7e9-e9ef454216a5","savedPayload":{"position":{"x":11655.401456281434,"y":20352.39408100606},"targetPosition":{"x":11822.609042013846,"y":20201.839694575316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6d471f6a-312d-431c-a3c9-a1b9e5594213","savedPayload":{"position":{"x":11822.609042013846,"y":20201.839694575316},"targetPosition":{"x":11775.571233543404,"y":19754.304841659592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Error #4","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[3] !== undefined","project":"Superalgos","id":"86d40f86-fbf3-4932-8f6c-0b3bb4e119f8","savedPayload":{"position":{"x":11864.274750042274,"y":20357.863620694377},"targetPosition":{"x":11705.175724275301,"y":20198.764594927405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": -270\n}","project":"Superalgos","id":"931bade7-ea45-415f-9996-8b00e4a8957a","savedPayload":{"position":{"x":11740.373478909354,"y":20420.99447156131},"targetPosition":{"x":11705.175724275301,"y":20198.764594927405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #4","id":"b394ff94-ffbc-4acf-9d8f-a3f0fd3f8c73"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"4","project":"Superalgos","id":"3eefe2a9-621f-43ee-b3c8-02230c479ff1","savedPayload":{"position":{"x":11603.027861833903,"y":20399.241062869787},"targetPosition":{"x":11705.175724275301,"y":20198.764594927405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"6498c437-68cd-482e-bee6-49f278e8121a","savedPayload":{"position":{"x":11504.699256332919,"y":20300.912457368802},"targetPosition":{"x":11705.175724275301,"y":20198.764594927405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5fa27bc2-03f6-44e0-8bab-0e1e345aa4dd","savedPayload":{"position":{"x":11705.175724275301,"y":20198.764594927405},"targetPosition":{"x":11775.571233543404,"y":19754.304841659592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Error #5","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[4] !== undefined","project":"Superalgos","id":"37deebed-bcae-4c32-96d5-0833f8e22b85","savedPayload":{"position":{"x":11705.039744159294,"y":20360.256013450264},"targetPosition":{"x":11592.539744159294,"y":20165.400297598764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": -315\n}","project":"Superalgos","id":"f71e2e3c-5613-4cc8-b3aa-ded2f083269e","savedPayload":{"position":{"x":11569.020839924073,"y":20389.167724056624},"targetPosition":{"x":11592.539744159294,"y":20165.400297598764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #5","id":"b8c82a83-f9c5-425a-bfc5-1e0e37c35614"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"5","project":"Superalgos","id":"3fbf6d54-e28b-4f49-85c9-196c4ecfd2d1","savedPayload":{"position":{"x":11441.98535772855,"y":20332.607883331177},"targetPosition":{"x":11592.539744159294,"y":20165.400297598764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"5922d8fb-a554-4b52-8823-d45b8e4d84c7","savedPayload":{"position":{"x":11372.456533994187,"y":20212.18042803276},"targetPosition":{"x":11592.539744159294,"y":20165.400297598764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5056294f-e5f4-43bf-a8ea-923696db17a6","savedPayload":{"position":{"x":11592.539744159294,"y":20165.400297598764},"targetPosition":{"x":11775.571233543404,"y":19754.304841659592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"728d0f36-3bb6-4649-9fa0-be61480e1a97","savedPayload":{"position":{"x":11775.571233543404,"y":19754.304841659592},"targetPosition":{"x":11425.855550887765,"y":19471.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[],"nodesErrors":{"type":"Nodes Errors","name":"New Nodes Errors","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"98652569-ee82-43e9-9d1e-3eb50adf6070","savedPayload":{"position":{"x":11587.12112818315,"y":19891.221857610908},"targetPosition":{"x":11425.855550887765,"y":19471.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0ebe46ec-88d8-4051-968f-2b96cb4b9f31","savedPayload":{"position":{"x":11425.855550887763,"y":19471.110665687167},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Status","config":"{ \n\"codeName\": \"Status\",\n\"connectTo\": \"Learning System\"\n}","project":"Superalgos","panels":[],"nodesStatus":{"type":"Nodes Status","name":"New Nodes Status","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"8ea96650-92b0-4298-bbfc-bcb7d79d45dc","savedPayload":{"position":{"x":11439.467482293603,"y":19963.00388288408},"targetPosition":{"x":11300.409834824877,"y":19535.02845055126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"726a1c09-ce3d-4937-85f9-a2c900932818","savedPayload":{"position":{"x":11300.409834824877,"y":19535.02845055126},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Progress","config":"{ \n\"codeName\": \"Progress\",\n\"connectTo\": \"Learning System\"\n}","project":"Superalgos","panels":[],"nodesProgress":{"type":"Nodes Progress","name":"New Nodes Progress","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"e12f1376-c804-4fe8-80a4-f4944d32e395","savedPayload":{"position":{"x":11161.352187356151,"y":20007.05301821844},"targetPosition":{"x":11161.352187356151,"y":19557.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bddd3dbc-44ce-4974-8d27-475f3ff00a75","savedPayload":{"position":{"x":11161.352187356151,"y":19557.05301821844},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Running","config":"{ \n\"codeName\": \"Running\",\n\"connectTo\": \"Learning System\"\n}","project":"Superalgos","panels":[],"nodesRunning":{"type":"Nodes Running","name":"New Nodes Running","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"ceaef898-311d-4aa1-9fab-5ae1074cafcc","savedPayload":{"position":{"x":10883.2368924187,"y":19963.00388288408},"targetPosition":{"x":11022.294539887425,"y":19535.02845055126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9767758e-51fa-4581-8575-a98b7d182644","savedPayload":{"position":{"x":11022.294539887425,"y":19535.02845055126},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Announcements","config":"{ \n\"codeName\": \"Announcements\",\n\"connectTo\": \"Learning System\"\n}","project":"Superalgos","panels":[],"nodesAnnouncements":{"type":"Nodes Announcements","name":"New Nodes Announcements","project":"Superalgos","id":"683ddfea-8049-4080-8ed3-cc771a1d3cc0","savedPayload":{"position":{"x":10632.345460292927,"y":19835.168313155893},"targetPosition":{"x":10896.848823824539,"y":19471.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"79fcb191-55c6-4a99-9688-be5950a71f78","savedPayload":{"position":{"x":10896.848823824539,"y":19471.110665687167},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Warnings","config":"{\n \"codeName\": \"Warnings\",\n \"connectTo\": \"Learning System\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"warnings\",\n \"rateInArrayAtIndex\": 3,\n \"rateOffset\": 100,\n \"rateOffsetBasedOnArrayIndex\": 50,\n \"rateRange\": 20\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"Warnings","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Warning #1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[0][3]","project":"Superalgos","id":"c84c66bc-0d25-457e-93ba-5dbb97bf5eda","savedPayload":{"position":{"x":11083.250025560232,"y":20160.301871286007},"targetPosition":{"x":10823.442404424899,"y":20010.301871286007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e305d892-3000-4c45-a590-eec24812e4b9","savedPayload":{"position":{"x":10823.442404424899,"y":20010.301871286007},"targetPosition":{"x":10563.634783289566,"y":19860.301871286007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Warning #2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[1][3]","project":"Superalgos","id":"5e2d7b4e-e385-4173-932e-f95ca88e9771","savedPayload":{"position":{"x":10863.634783289566,"y":20379.917113556672},"targetPosition":{"x":10713.634783289566,"y":20120.10949242134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"266f0488-5cee-4498-a82a-8c66924088a6","savedPayload":{"position":{"x":10713.634783289566,"y":20120.10949242134},"targetPosition":{"x":10563.634783289566,"y":19860.301871286007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Warning #3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[2][3]","project":"Superalgos","id":"1586251b-11e3-4bbe-a24e-09d69a3664ca","savedPayload":{"position":{"x":10563.634783289566,"y":20460.301871286007},"targetPosition":{"x":10563.634783289566,"y":20160.301871286007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"74d62932-c085-4c5a-b1a5-39e04770fa73","savedPayload":{"position":{"x":10563.634783289566,"y":20160.301871286007},"targetPosition":{"x":10563.634783289566,"y":19860.301871286007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Warning #4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[3][3]","project":"Superalgos","id":"48ef650a-abb2-4244-bfdf-e67470a3e485","savedPayload":{"position":{"x":10263.634783289566,"y":20379.917113556672},"targetPosition":{"x":10413.634783289566,"y":20120.10949242134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"11a8c5ce-4e35-4e49-9046-664ffc3912c9","savedPayload":{"position":{"x":10413.634783289566,"y":20120.10949242134},"targetPosition":{"x":10563.634783289566,"y":19860.301871286007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Warning #5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[4][3]","project":"Superalgos","id":"d02eefb1-476d-47df-9900-ef7faad0e72b","savedPayload":{"position":{"x":10044.0195410189,"y":20160.301871286007},"targetPosition":{"x":10303.827162154234,"y":20010.301871286007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bc2648ff-0646-4729-b890-8d4251032a7a","savedPayload":{"position":{"x":10303.827162154234,"y":20010.301871286007},"targetPosition":{"x":10563.634783289566,"y":19860.301871286007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0e09c7d5-d10c-4a2c-899c-09cd2ad01dc8","savedPayload":{"position":{"x":10778.603727446614,"y":20085.32971187442},"targetPosition":{"x":10514.100363915,"y":19721.272064405694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[],"images":[{"type":"Image","name":"Warning #1","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 30\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[0] !== undefined","project":"Superalgos","id":"82e5e939-6027-44b3-92c2-3fffc18e2770","savedPayload":{"position":{"x":10514.478856563554,"y":19993.921498618885},"targetPosition":{"x":10479.115016237138,"y":19848.149763370355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": 100\n}","project":"Superalgos","id":"2fdd7b4a-5cf5-4c3e-8615-52d9cec42539","savedPayload":{"position":{"x":10370.554910521376,"y":19951.66161509267},"targetPosition":{"x":10479.115016237138,"y":19848.149763370355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #1","id":"e305d892-3000-4c45-a590-eec24812e4b9"}}},"id":"90eb1fb2-16a4-4d87-848e-0b2ffe1a06f9","savedPayload":{"position":{"x":10675.365941210384,"y":20141.383256329435},"targetPosition":{"x":10514.100363915,"y":19721.272064405694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Warning #2","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 25\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[1] !== undefined","project":"Superalgos","id":"fbf476a5-7411-4b19-b98d-154e57b0c2bf","savedPayload":{"position":{"x":10394.305250679328,"y":19962.50803201281},"targetPosition":{"x":10401.442538052888,"y":19812.67793113536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": 150\n}","project":"Superalgos","id":"ccfec974-20cb-4962-b1d4-444aef72c164","savedPayload":{"position":{"x":10268.117220754651,"y":19881.411909394472},"targetPosition":{"x":10401.442538052888,"y":19812.67793113536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #2","id":"266f0488-5cee-4498-a82a-8c66924088a6"}}},"id":"4409ec15-a9f3-4f77-aa1e-743931efbec4","savedPayload":{"position":{"x":10561.138172385443,"y":20168.806917321417},"targetPosition":{"x":10514.100363915,"y":19721.272064405694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Warning #3","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[2] !== undefined","project":"Superalgos","id":"30912972-4540-4dd1-b5c5-a5e2fc0d2baa","savedPayload":{"position":{"x":10287.849716485678,"y":19898.51021427679},"targetPosition":{"x":10336.90991098329,"y":19756.76009146959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": 200\n}","project":"Superalgos","id":"2d4897ec-5939-4c90-8532-6aa81120ad04","savedPayload":{"position":{"x":10189.620606393884,"y":19785.147778123654},"targetPosition":{"x":10336.90991098329,"y":19756.76009146959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #3","id":"74d62932-c085-4c5a-b1a5-39e04770fa73"}}},"id":"4a3aaf0b-ff7d-4ab5-9ec1-e0fbab7011d5","savedPayload":{"position":{"x":10443.704854646898,"y":20165.731817673506},"targetPosition":{"x":10514.100363915,"y":19721.272064405694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Warning #4","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 15\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[3] !== undefined","project":"Superalgos","id":"ee9fd946-472d-4cf8-a0b0-b14bf1fffd57","savedPayload":{"position":{"x":10203.736648247534,"y":19807.112767994124},"targetPosition":{"x":10290.745184683212,"y":19684.926375186573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": 250\n}","project":"Superalgos","id":"2d59a166-a700-4e69-a4b2-1b79389bee73","savedPayload":{"position":{"x":10141.42439629725,"y":19670.667968690945},"targetPosition":{"x":10290.745184683212,"y":19684.926375186573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #4","id":"11a8c5ce-4e35-4e49-9046-664ffc3912c9"}}},"id":"dd8c392f-73e3-4a7c-94e1-4253c37922d5","savedPayload":{"position":{"x":10331.06887453089,"y":20132.367520344866},"targetPosition":{"x":10514.100363915,"y":19721.272064405694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Warning #5","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[4] !== undefined","project":"Superalgos","id":"7d508cdd-8001-445a-8fd8-4caee4986732","savedPayload":{"position":{"x":10148.780386513867,"y":19695.720170701083},"targetPosition":{"x":10266.688350725286,"y":19602.99632276799},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": 300\n}","project":"Superalgos","id":"c526340d-53bc-4cec-9eaa-713cc60738a4","savedPayload":{"position":{"x":10127.433160772875,"y":19547.24695441894},"targetPosition":{"x":10266.688350725286,"y":19602.99632276799},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #5","id":"bc2648ff-0646-4729-b890-8d4251032a7a"}}},"id":"32364178-3749-47a6-abca-9eb642f220c8","savedPayload":{"position":{"x":10230.906187942575,"y":20070.987747061332},"targetPosition":{"x":10514.100363915,"y":19721.272064405694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"Warning #1","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[0] !== undefined","project":"Superalgos","id":"fde32690-8d0b-47fd-ae5b-75a79ea9853f","savedPayload":{"position":{"x":10162.147715426992,"y":19625.17719051787},"targetPosition":{"x":10266.688350725286,"y":19517.607419804022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": 125\n}","project":"Superalgos","id":"d1f66616-36d9-4fe3-84e2-12bce13ceef8","savedPayload":{"position":{"x":10118.885275348133,"y":19543.185748698917},"targetPosition":{"x":10266.688350725286,"y":19517.607419804022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #1","id":"e305d892-3000-4c45-a590-eec24812e4b9"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"1","project":"Superalgos","id":"b41c0e26-5431-4c49-bbed-770ffb217438","savedPayload":{"position":{"x":10132.078586421583,"y":19451.424254617537},"targetPosition":{"x":10266.688350725286,"y":19517.607419804022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"e9e651a9-4b31-4be2-b9a0-dbdd5670353c","savedPayload":{"position":{"x":10196.688252241434,"y":19384.94248015435},"targetPosition":{"x":10266.688350725286,"y":19517.607419804022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c930e977-255b-443b-8aa7-62be6eba95a9","savedPayload":{"position":{"x":10150.042716446274,"y":19985.775427937308},"targetPosition":{"x":10514.100363915,"y":19721.272064405694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Warning #2","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[1] !== undefined","project":"Superalgos","id":"a859e198-f05c-4515-8c1b-eed5e462c0ff","savedPayload":{"position":{"x":10160.133273115247,"y":19509.43730608228},"targetPosition":{"x":10290.745184683212,"y":19435.67736738544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": 170\n}","project":"Superalgos","id":"12b26341-938b-4401-a3e7-e7a6190f81dc","savedPayload":{"position":{"x":10141.72292438093,"y":19418.57865590186},"targetPosition":{"x":10290.745184683212,"y":19435.67736738544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #2","id":"266f0488-5cee-4498-a82a-8c66924088a6"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"2","project":"Superalgos","id":"28030a77-fae6-495d-ade1-7326cd705f2e","savedPayload":{"position":{"x":10180.234014001751,"y":19334.251132344336},"targetPosition":{"x":10290.745184683212,"y":19435.67736738544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"10013407-9204-4792-b5e2-dff9c4e5ddcb","savedPayload":{"position":{"x":10260.95661468635,"y":19288.66498322158},"targetPosition":{"x":10290.745184683212,"y":19435.67736738544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"490b6d09-41b3-4a54-aaf1-40f743cffb7d","savedPayload":{"position":{"x":10093.98917199126,"y":19882.537641701078},"targetPosition":{"x":10514.100363915,"y":19721.272064405694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Warning #3","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[2] !== undefined","project":"Superalgos","id":"183a6c8d-9d86-4854-aaf5-b53144488101","savedPayload":{"position":{"x":10190.80812344194,"y":19397.818166216286},"targetPosition":{"x":10336.90991098329,"y":19363.843651102423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": 215\n}","project":"Superalgos","id":"62d6996b-24e8-441a-afe6-84190f5b0deb","savedPayload":{"position":{"x":10198.741363016063,"y":19305.453135154814},"targetPosition":{"x":10336.90991098329,"y":19363.843651102423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #3","id":"74d62932-c085-4c5a-b1a5-39e04770fa73"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"3","project":"Superalgos","id":"3af086d2-75b5-490a-b705-0174be5d9d59","savedPayload":{"position":{"x":10259.450291737445,"y":19235.391296564685},"targetPosition":{"x":10336.90991098329,"y":19363.843651102423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"74df475c-796a-4ecf-973b-a56597986f7b","savedPayload":{"position":{"x":10349.746162255116,"y":19214.39389147302},"targetPosition":{"x":10336.90991098329,"y":19363.843651102423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"111633eb-bbed-41d6-8825-58664eb77c32","savedPayload":{"position":{"x":10066.565510999277,"y":19768.309872876136},"targetPosition":{"x":10514.100363915,"y":19721.272064405694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Warning #4","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[3] !== undefined","project":"Superalgos","id":"9cd1ca11-9769-47c8-86ba-b4911adc2521","savedPayload":{"position":{"x":10251.687172463968,"y":19299.362489807238},"targetPosition":{"x":10401.442538052888,"y":19307.925811436653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": 260\n}","project":"Superalgos","id":"31a57e24-5116-41f2-a948-bf5efee27bcf","savedPayload":{"position":{"x":10285.321296457027,"y":19212.973943365323},"targetPosition":{"x":10401.442538052888,"y":19307.925811436653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #4","id":"11a8c5ce-4e35-4e49-9046-664ffc3912c9"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"4","project":"Superalgos","id":"1e419b60-e24a-4696-9f0b-a3ec4b7eb1b8","savedPayload":{"position":{"x":10363.309787923867,"y":19162.85378323136},"targetPosition":{"x":10401.442538052888,"y":19307.925811436653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"283463cb-8daa-4d83-a442-8bded70d3c23","savedPayload":{"position":{"x":10455.863693855485,"y":19168.146207054935},"targetPosition":{"x":10401.442538052888,"y":19307.925811436653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c5951e14-05cd-40db-ba1d-20a750980ba5","savedPayload":{"position":{"x":10069.640610647188,"y":19650.87655513759},"targetPosition":{"x":10514.100363915,"y":19721.272064405694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Warning #5","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[4] !== undefined","project":"Superalgos","id":"cfebe37b-e86e-41ce-a004-5459c7ec6f7b","savedPayload":{"position":{"x":10337.83836169121,"y":19222.046570219343},"targetPosition":{"x":10479.115016237138,"y":19272.45397920166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": 305\n}","project":"Superalgos","id":"380db87f-7608-4e7d-a5fd-5cd16c4553da","savedPayload":{"position":{"x":10394.448533407121,"y":19148.633194657243},"targetPosition":{"x":10479.115016237138,"y":19272.45397920166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #5","id":"bc2648ff-0646-4729-b890-8d4251032a7a"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"5","project":"Superalgos","id":"a09ab818-05fa-4966-8dd2-8a574a3f44ae","savedPayload":{"position":{"x":10483.398423856193,"y":19122.51515027743},"targetPosition":{"x":10479.115016237138,"y":19272.45397920166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"4b40c98f-f144-415b-ace6-bcfc0f9a9a5d","savedPayload":{"position":{"x":10570.712198182453,"y":19153.668642313318},"targetPosition":{"x":10479.115016237138,"y":19272.45397920166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"57441804-809f-4b78-bde3-7614d8ddefd3","savedPayload":{"position":{"x":10103.004907975828,"y":19538.240575021584},"targetPosition":{"x":10514.100363915,"y":19721.272064405694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fcda6562-0551-4b9c-ba7d-b739840ecd3d","savedPayload":{"position":{"x":10514.100363915,"y":19721.272064405694},"targetPosition":{"x":10797.294539887425,"y":19371.556381750055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[],"nodesWarnings":{"type":"Nodes Warnings","name":"New Nodes Warnings","project":"Superalgos","id":"88bcf99d-0425-453e-b174-17c7b927f638","savedPayload":{"position":{"x":10377.183347963684,"y":19532.82195904544},"targetPosition":{"x":10797.294539887425,"y":19371.556381750055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ba37a274-dd77-46f1-b173-6a2241f6840e","savedPayload":{"position":{"x":10797.294539887425,"y":19371.556381750055},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Infos","config":"{\n \"codeName\": \"Infos\",\n \"connectTo\": \"Learning System\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"infos\",\n \"rateInArrayAtIndex\": 3,\n \"rateOffset\": 100,\n \"rateOffsetBasedOnArrayIndex\": 50,\n \"rateRange\": 20\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"Infos","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Info #1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[0][3]","project":"Superalgos","id":"c054f45d-6868-45c9-90d0-999c36847da3","savedPayload":{"position":{"x":10505.409444934798,"y":19967.727962996043},"targetPosition":{"x":10245.601823799465,"y":19817.727962996043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1012ce08-7ff2-4e30-a8ea-f7b9d3c1db92","savedPayload":{"position":{"x":10245.601823799465,"y":19817.727962996043},"targetPosition":{"x":9985.794202664132,"y":19667.727962996043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Info #2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[1][3]","project":"Superalgos","id":"3b7a415b-4310-460e-82d4-8451c37aa5a4","savedPayload":{"position":{"x":10285.794202664132,"y":20187.34320526671},"targetPosition":{"x":10135.794202664132,"y":19927.535584131376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c8e5c965-2186-4f85-9d4a-f6063c867424","savedPayload":{"position":{"x":10135.794202664132,"y":19927.535584131376},"targetPosition":{"x":9985.794202664132,"y":19667.727962996043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Info #3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[2][3]","project":"Superalgos","id":"3b160a4e-9ff5-4601-aad3-7ca108526a1c","savedPayload":{"position":{"x":9985.794202664132,"y":20267.727962996043},"targetPosition":{"x":9985.794202664132,"y":19967.727962996043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b5462c56-7cfb-499d-8d07-2b57895caba0","savedPayload":{"position":{"x":9985.794202664132,"y":19967.727962996043},"targetPosition":{"x":9985.794202664132,"y":19667.727962996043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Info #4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[3][3]","project":"Superalgos","id":"8b3fb4a0-71e3-468d-ac94-49eb18d7d510","savedPayload":{"position":{"x":9685.794202664132,"y":20187.34320526671},"targetPosition":{"x":9835.794202664132,"y":19927.535584131376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"94946c27-4877-46bb-8fa3-fbc5377710f8","savedPayload":{"position":{"x":9835.794202664132,"y":19927.535584131376},"targetPosition":{"x":9985.794202664132,"y":19667.727962996043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Info #5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[4][3]","project":"Superalgos","id":"0dcb785e-653e-4132-8929-f757d282929a","savedPayload":{"position":{"x":9466.178960393467,"y":19967.727962996043},"targetPosition":{"x":9725.9865815288,"y":19817.727962996043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b2044d1c-b9b9-4170-889d-49e0fc9e5c15","savedPayload":{"position":{"x":9725.9865815288,"y":19817.727962996043},"targetPosition":{"x":9985.794202664132,"y":19667.727962996043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8f2fe8e1-9166-4fdb-ba1f-4ad4a153701f","savedPayload":{"position":{"x":10495.032646916618,"y":19919.17366377675},"targetPosition":{"x":10355.974999447892,"y":19491.19823144393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[],"images":[{"type":"Image","name":"Info #1","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 30\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[0] !== undefined","project":"Superalgos","id":"a28358f6-f4f2-442a-ab61-ad32da53b79a","savedPayload":{"position":{"x":9936.63827593812,"y":19801.34759032892},"targetPosition":{"x":9901.274435611704,"y":19655.57585508039},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": 100\n}","project":"Superalgos","id":"df0209bb-d44f-41d8-8ef9-adf58ef19b1e","savedPayload":{"position":{"x":9792.714329895942,"y":19759.087706802708},"targetPosition":{"x":9901.274435611704,"y":19655.57585508039},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #1","id":"1012ce08-7ff2-4e30-a8ea-f7b9d3c1db92"}}},"id":"ca11faa5-bb2f-48ea-aed0-e4ae35d90cab","savedPayload":{"position":{"x":10379.526179757217,"y":19940.58152208349},"targetPosition":{"x":10355.974999447892,"y":19491.19823144393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Info #2","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 25\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[1] !== undefined","project":"Superalgos","id":"0ac97653-c9ba-461e-b034-90c57c1d7a9e","savedPayload":{"position":{"x":9816.464670053894,"y":19769.934123722847},"targetPosition":{"x":9823.601957427454,"y":19620.104022845397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": 150\n}","project":"Superalgos","id":"bcbaf0ea-bcd8-4091-9931-3e95cc8887ff","savedPayload":{"position":{"x":9690.276640129217,"y":19688.83800110451},"targetPosition":{"x":9823.601957427454,"y":19620.104022845397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #2","id":"c8e5c965-2186-4f85-9d4a-f6063c867424"}}},"id":"74df6900-4f9d-45b8-9105-a84a05babed3","savedPayload":{"position":{"x":10262.4147385799,"y":19931.364651774144},"targetPosition":{"x":10355.974999447892,"y":19491.19823144393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Info #3","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[2] !== undefined","project":"Superalgos","id":"73d2a80c-26cb-442b-97ef-cffb01151274","savedPayload":{"position":{"x":9710.009135860244,"y":19705.936305986826},"targetPosition":{"x":9759.069330357856,"y":19564.186183179627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": 200\n}","project":"Superalgos","id":"b8c8daa1-35a0-4bd0-9d44-34b015a756fc","savedPayload":{"position":{"x":9611.78002576845,"y":19592.57386983369},"targetPosition":{"x":9759.069330357856,"y":19564.186183179627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #3","id":"b5462c56-7cfb-499d-8d07-2b57895caba0"}}},"id":"f2b5f273-db47-4af7-905d-bc7b170a347f","savedPayload":{"position":{"x":10151.679274565096,"y":19892.151167328695},"targetPosition":{"x":10355.974999447892,"y":19491.19823144393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Info #4","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 15\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[3] !== undefined","project":"Superalgos","id":"bfc3e4aa-34cd-40a7-845f-c5f25093173c","savedPayload":{"position":{"x":9625.8960676221,"y":19614.53885970416},"targetPosition":{"x":9712.904604057778,"y":19492.35246689661},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": 250\n}","project":"Superalgos","id":"ce27e3e0-72a4-4730-93fc-e6f9b3b26faf","savedPayload":{"position":{"x":9563.583815671816,"y":19478.09406040098},"targetPosition":{"x":9712.904604057778,"y":19492.35246689661},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #4","id":"94946c27-4877-46bb-8fa3-fbc5377710f8"}}},"id":"8c64e842-a86c-4db6-9845-fb01eda69ce1","savedPayload":{"position":{"x":10054.866226586404,"y":19825.61340290876},"targetPosition":{"x":10355.974999447892,"y":19491.19823144393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Info #5","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[4] !== undefined","project":"Superalgos","id":"7d6418cb-107a-4847-9d6e-797cc3acb9c1","savedPayload":{"position":{"x":9570.939805888433,"y":19503.14626241112},"targetPosition":{"x":9688.847770099852,"y":19410.422414478027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": 300\n}","project":"Superalgos","id":"2b5ac558-0d7e-4e62-b7d0-9e39fea5b71c","savedPayload":{"position":{"x":9549.59258014744,"y":19354.673046128977},"targetPosition":{"x":9688.847770099852,"y":19410.422414478027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #5","id":"b2044d1c-b9b9-4170-889d-49e0fc9e5c15"}}},"id":"a56dc3e6-f837-40ae-9d94-0ce0a0e514f9","savedPayload":{"position":{"x":9978.573243872452,"y":19736.285797200693},"targetPosition":{"x":10355.974999447892,"y":19491.19823144393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"Info #1","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[0] !== undefined","project":"Superalgos","id":"26eeee17-3c4c-47a0-b58e-a5286756421c","savedPayload":{"position":{"x":9584.307134801558,"y":19432.603282227905},"targetPosition":{"x":9688.847770099852,"y":19325.03351151406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": 125\n}","project":"Superalgos","id":"535a8029-dd25-4b85-9ce5-80484129bb45","savedPayload":{"position":{"x":9541.0446947227,"y":19350.611840408954},"targetPosition":{"x":9688.847770099852,"y":19325.03351151406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #1","id":"1012ce08-7ff2-4e30-a8ea-f7b9d3c1db92"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"1","project":"Superalgos","id":"f887f4a7-9d84-4464-a762-d6c433cfd7d0","savedPayload":{"position":{"x":9554.238005796149,"y":19258.850346327574},"targetPosition":{"x":9688.847770099852,"y":19325.03351151406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"ae947f58-a26f-4eeb-8c80-a67bcee01112","savedPayload":{"position":{"x":9618.847671616,"y":19192.368571864386},"targetPosition":{"x":9688.847770099852,"y":19325.03351151406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"dd41cc73-5340-4259-bd6c-02ed58effc13","savedPayload":{"position":{"x":9927.999567115072,"y":19630.255878912656},"targetPosition":{"x":10355.974999447892,"y":19491.19823144393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Info #2","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[1] !== undefined","project":"Superalgos","id":"d2c0df41-710d-4366-b9e9-ec00469fb705","savedPayload":{"position":{"x":9582.292692489813,"y":19316.863397792316},"targetPosition":{"x":9712.904604057778,"y":19243.103459095477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": 170\n}","project":"Superalgos","id":"f7f31d9c-0774-4efb-90b7-d544544fc391","savedPayload":{"position":{"x":9563.882343755497,"y":19226.004747611896},"targetPosition":{"x":9712.904604057778,"y":19243.103459095477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #2","id":"c8e5c965-2186-4f85-9d4a-f6063c867424"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"2","project":"Superalgos","id":"018b2a05-dea1-4974-b856-d3dd86a0646e","savedPayload":{"position":{"x":9602.393433376317,"y":19141.677224054372},"targetPosition":{"x":9712.904604057778,"y":19243.103459095477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"2395169f-e704-4144-9037-d8838ae415fb","savedPayload":{"position":{"x":9683.116034060917,"y":19096.091074931617},"targetPosition":{"x":9712.904604057778,"y":19243.103459095477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"50307c8f-6b8c-45b0-80cb-6bf078933f3a","savedPayload":{"position":{"x":9906.591708808333,"y":19514.749411753255},"targetPosition":{"x":10355.974999447892,"y":19491.19823144393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Info #3","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[2] !== undefined","project":"Superalgos","id":"f1c82cd0-add9-4ae3-abb5-c8837db384a8","savedPayload":{"position":{"x":9612.967542816506,"y":19205.244257926322},"targetPosition":{"x":9759.069330357856,"y":19171.26974281246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": 215\n}","project":"Superalgos","id":"8129796c-b62c-4f6c-9b63-47694adcd016","savedPayload":{"position":{"x":9620.900782390629,"y":19112.87922686485},"targetPosition":{"x":9759.069330357856,"y":19171.26974281246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #3","id":"b5462c56-7cfb-499d-8d07-2b57895caba0"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"3","project":"Superalgos","id":"43ff37d7-e6b9-4d14-9d4d-763af5b21b0f","savedPayload":{"position":{"x":9681.60971111201,"y":19042.81738827472},"targetPosition":{"x":9759.069330357856,"y":19171.26974281246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"0a62d552-5cd0-4527-9075-3b909b5aa0b9","savedPayload":{"position":{"x":9771.905581629682,"y":19021.819983183057},"targetPosition":{"x":9759.069330357856,"y":19171.26974281246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e1e0691b-9903-4d83-897f-806808801184","savedPayload":{"position":{"x":9915.808579117678,"y":19397.63797057594},"targetPosition":{"x":10355.974999447892,"y":19491.19823144393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Info #4","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[3] !== undefined","project":"Superalgos","id":"4a00c990-9197-46f1-ad1d-5a2114d48cbf","savedPayload":{"position":{"x":9673.846591838534,"y":19106.788581517274},"targetPosition":{"x":9823.601957427454,"y":19115.35190314669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": 260\n}","project":"Superalgos","id":"734db851-667f-4e2c-8ffc-f70e4f653946","savedPayload":{"position":{"x":9707.480715831593,"y":19020.40003507536},"targetPosition":{"x":9823.601957427454,"y":19115.35190314669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #4","id":"94946c27-4877-46bb-8fa3-fbc5377710f8"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"4","project":"Superalgos","id":"3fe4296a-bd55-4daf-9f96-8ae343df3a65","savedPayload":{"position":{"x":9785.469207298433,"y":18970.279874941396},"targetPosition":{"x":9823.601957427454,"y":19115.35190314669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"0ab9f43f-a150-4269-b0e1-b8248492fd39","savedPayload":{"position":{"x":9878.02311323005,"y":18975.57229876497},"targetPosition":{"x":9823.601957427454,"y":19115.35190314669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ecd549b0-67f4-4b2e-84fe-b7c5d8d05e01","savedPayload":{"position":{"x":9955.022063563127,"y":19286.902506561135},"targetPosition":{"x":10355.974999447892,"y":19491.19823144393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Info #5","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[4] !== undefined","project":"Superalgos","id":"53d6ea53-0805-456e-8531-4e77a823d036","savedPayload":{"position":{"x":9759.997781065777,"y":19029.47266192938},"targetPosition":{"x":9901.274435611704,"y":19079.880070911695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": 305\n}","project":"Superalgos","id":"d31b94fd-615a-4b30-a235-77d557e060a4","savedPayload":{"position":{"x":9816.607952781687,"y":18956.05928636728},"targetPosition":{"x":9901.274435611704,"y":19079.880070911695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #5","id":"b2044d1c-b9b9-4170-889d-49e0fc9e5c15"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"5","project":"Superalgos","id":"cb9dd157-1b4c-47d8-a246-50a7c5fd1c77","savedPayload":{"position":{"x":9905.55784323076,"y":18929.941241987468},"targetPosition":{"x":9901.274435611704,"y":19079.880070911695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"14e701c0-f325-4734-92dc-a5c5698bcd70","savedPayload":{"position":{"x":9992.871617557019,"y":18961.094734023354},"targetPosition":{"x":9901.274435611704,"y":19079.880070911695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1c825861-b9d3-4345-b167-7733d4f7ce11","savedPayload":{"position":{"x":10021.559827983063,"y":19190.089458582443},"targetPosition":{"x":10355.974999447892,"y":19491.19823144393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"64b96849-e783-4cb2-a51a-35eee701a11c","savedPayload":{"position":{"x":10355.974999447892,"y":19491.19823144393},"targetPosition":{"x":10733.376755023331,"y":19246.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[],"nodesInfos":{"type":"Nodes Infos","name":"New Nodes Infos","project":"Superalgos","id":"bc0c2ea9-d55a-4a56-ae9f-85447c3cbbae","savedPayload":{"position":{"x":10283.993464383773,"y":19269.661845996492},"targetPosition":{"x":10733.376755023331,"y":19246.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"64656680-9d40-4e0b-afe7-d84d4332261c","savedPayload":{"position":{"x":10733.376755023331,"y":19246.110665687167},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c7f5a467-73fd-47fc-82d8-291d6288b6ba","savedPayload":{"position":{"x":10711.352187356151,"y":18657.05301821844},"targetPosition":{"x":11161.352187356151,"y":18657.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Learning Episode","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Episode Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"6ee5fefc-9192-4578-8f0d-a6c8cc7178fb","savedPayload":{"position":{"x":11429.19357972885,"y":20125.067365877538},"targetPosition":{"x":11207.96122552696,"y":20084.064372641806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2a214d9a-d878-4a3b-ab5d-31873756eefe","savedPayload":{"position":{"x":11207.96122552696,"y":20084.064372641806},"targetPosition":{"x":10765.496517123182,"y":20002.058386170338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"b21828eb-1184-4b73-ab6a-849ccece1ce1","savedPayload":{"position":{"x":11358.698068170008,"y":20324.140549345575},"targetPosition":{"x":11160.964217821065,"y":20216.779828287163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b4cf0c9f-5097-499e-bfc8-844f895b8d5e","savedPayload":{"position":{"x":11160.964217821065,"y":20216.779828287163},"targetPosition":{"x":10765.496517123182,"y":20002.058386170338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"90e3b06d-1fe9-4e81-a7f8-06d2f55aab29","savedPayload":{"position":{"x":11230.135855716466,"y":20491.686086603633},"targetPosition":{"x":11075.256076185371,"y":20328.476853125867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3084c0b7-764e-426a-973f-b0f7dc2f84c1","savedPayload":{"position":{"x":11075.256076185371,"y":20328.476853125867},"targetPosition":{"x":10765.496517123182,"y":20002.058386170338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"89f76e86-f46c-4519-8254-34f741328dde","savedPayload":{"position":{"x":11056.09150746878,"y":20611.303453106495},"targetPosition":{"x":10959.226510686914,"y":20408.221764127775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fba450c5-3227-494a-ba58-c0f03f2cd546","savedPayload":{"position":{"x":10959.226510686914,"y":20408.221764127775},"targetPosition":{"x":10765.496517123182,"y":20002.058386170338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ce771f7b-bd11-4ad0-8bc3-1800d1fe9388","savedPayload":{"position":{"x":10765.496517123182,"y":20002.058386170338},"targetPosition":{"x":10408.487513992126,"y":19728.115743116414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"58b91130-01c3-4cb6-bf22-e0d61455dcc3","savedPayload":{"position":{"x":10466.114454810722,"y":20175.136370108146},"targetPosition":{"x":10298.914545623873,"y":20519.660663041326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 2,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 2,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"fbb6e766-260b-4f22-8eca-01b4915d450a","savedPayload":{"position":{"x":11012.685379313378,"y":20689.365526667832},"targetPosition":{"x":10670.91863892537,"y":20608.320651233473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"338a7d25-4512-4b09-9e2f-0d2b6d5858c6","savedPayload":{"position":{"x":10670.91863892537,"y":20608.320651233473},"targetPosition":{"x":10298.914545623873,"y":20519.660663041326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"106b1553-2616-451e-9ae0-90c5a958d85b","savedPayload":{"position":{"x":10330.047760232756,"y":20900.289585782826},"targetPosition":{"x":10298.914545623873,"y":20519.660663041326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"2a214d9a-d878-4a3b-ab5d-31873756eefe"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"2b19b896-0f9c-4078-b17b-d460084c3082","savedPayload":{"position":{"x":9914.48383399997,"y":20656.74273874532},"targetPosition":{"x":10298.914545623873,"y":20519.660663041326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"3084c0b7-764e-426a-973f-b0f7dc2f84c1"}}}],"id":"513fc20c-95ef-49bd-b5e4-75221ba49ac1","savedPayload":{"position":{"x":10633.487513992126,"y":20117.827174819413},"targetPosition":{"x":10408.487513992126,"y":19728.115743116414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"addd7dc2-b3ac-4a08-8955-7a3199e72cee","savedPayload":{"position":{"x":10345.484302906436,"y":20390.274296499723},"targetPosition":{"x":10059.832106115195,"y":20654.446155983103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 2,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 2,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"884f0788-2f57-45f3-a931-67ea33f270ce","savedPayload":{"position":{"x":10654.715427881034,"y":21084.059761133718},"targetPosition":{"x":10369.625966731499,"y":20878.222834024553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9b834b6a-8a15-451c-a8b9-518c8d15a28d","savedPayload":{"position":{"x":10369.625966731499,"y":20878.222834024553},"targetPosition":{"x":10059.832106115195,"y":20654.446155983103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"66445510-b26b-4a37-922c-729c3bb5bcb0","savedPayload":{"position":{"x":9943.239495542628,"y":21018.293200016527},"targetPosition":{"x":10059.832106115195,"y":20654.446155983103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"2a214d9a-d878-4a3b-ab5d-31873756eefe"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"ed734f1d-979c-4f8d-b317-f4e287f1e4da","savedPayload":{"position":{"x":9653.295724536583,"y":20634.15599403727},"targetPosition":{"x":10059.832106115195,"y":20654.446155983103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"3084c0b7-764e-426a-973f-b0f7dc2f84c1"}}}],"id":"f276bcb1-908c-474c-b8fd-b1950b81a420","savedPayload":{"position":{"x":10467.224300491149,"y":20174.26593073463},"targetPosition":{"x":10408.487513992126,"y":19728.115743116414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"3bee91ac-bf89-4910-93f0-a54ac54d6339","savedPayload":{"position":{"x":9757.166327762687,"y":16102.810035611263},"targetPosition":{"x":9986.051851444747,"y":16288.263961371853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"edce098c-9f2e-4406-a815-e34954376aa3","savedPayload":{"position":{"x":9986.051851444747,"y":16288.263961371853},"targetPosition":{"x":10253.525344147325,"y":16504.988431964255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"e6fbb290-4d85-4e5e-b570-ab73795521f4","savedPayload":{"position":{"x":10217.696046618592,"y":16162.57620694078},"targetPosition":{"x":10253.525344147325,"y":16504.988431964255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"2a214d9a-d878-4a3b-ab5d-31873756eefe"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"d588cca5-7edf-442a-8f1c-15519835c3ec","savedPayload":{"position":{"x":10470.29901559629,"y":16237.220324929809},"targetPosition":{"x":10253.525344147325,"y":16504.988431964255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"b4cf0c9f-5097-499e-bfc8-844f895b8d5e"}}}],"id":"3a7eea15-2b91-40fa-9fb0-5215dfacaf88","savedPayload":{"position":{"x":10292.018943695992,"y":20162.782364946495},"targetPosition":{"x":10408.487513992126,"y":19728.115743116414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"bdfbee78-ab14-41c7-93da-cc7b5317dd97","savedPayload":{"position":{"x":9877.8504077793,"y":16064.518177234413},"targetPosition":{"x":10085.595322045549,"y":16272.440686367827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"69c5a7b7-2ce5-4e9f-82d4-efdb005c6de8","savedPayload":{"position":{"x":10085.595322045549,"y":16272.440686367827},"targetPosition":{"x":10315.032694112295,"y":16502.098190721248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"4c51f624-0a0b-4973-a136-05a8a6dd9aa3","savedPayload":{"position":{"x":10315.03090450073,"y":16176.415447158412},"targetPosition":{"x":10315.032694112295,"y":16502.098190721248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"3084c0b7-764e-426a-973f-b0f7dc2f84c1"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"468fd2ee-4476-44ca-9391-6ed911f5ef58","savedPayload":{"position":{"x":10545.595795902067,"y":16271.493907851655},"targetPosition":{"x":10315.032694112295,"y":16502.098190721248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"fba450c5-3227-494a-ba58-c0f03f2cd546"}}}],"id":"f7dd0e4a-0d7b-4b91-b4a9-9f9095682031","savedPayload":{"position":{"x":10134.544870938202,"y":20085.12474624747},"targetPosition":{"x":10408.487513992126,"y":19728.115743116414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{\n \"codeName\": \"learning-episode\",\n \"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"5221670c-c689-40e8-8508-25354d2e37a7","savedPayload":{"position":{"x":9823.92036643763,"y":20065.615743116414},"targetPosition":{"x":10018.776082289129,"y":19953.115743116414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"2a214d9a-d878-4a3b-ab5d-31873756eefe"}}},"id":"2841ceda-20d9-48be-91b9-92464601fb2f","savedPayload":{"position":{"x":10018.776082289129,"y":19953.115743116414},"targetPosition":{"x":10408.487513992126,"y":19728.115743116414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{\n \"codeName\": \"learning-episode\",\n \"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"525a0dfd-bc3e-4e2f-953e-04de98bfaaf3","savedPayload":{"position":{"x":9739.262232564804,"y":19816.220922864948},"targetPosition":{"x":9962.337326373912,"y":19786.852529615437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"3084c0b7-764e-426a-973f-b0f7dc2f84c1"}}},"id":"7af6bb97-efa7-401c-8f85-4b3b92067198","savedPayload":{"position":{"x":9962.337326373912,"y":19786.852529615437},"targetPosition":{"x":10408.487513992126,"y":19728.115743116414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"35f2bf74-6e3c-4ff4-b45c-f37398adacac","savedPayload":{"position":{"x":10936.352187356151,"y":17367.341586515442},"targetPosition":{"x":11161.352187356151,"y":17757.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Episode Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"56b0ffa5-d02d-4c87-891f-5d8c5f21ea47","savedPayload":{"position":{"x":10975.438222775265,"y":16831.828081818858},"targetPosition":{"x":11112.409544302227,"y":17010.332583384385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ffcf9491-7864-4d19-8bf0-c32f5515bc22","savedPayload":{"position":{"x":11112.409544302227,"y":17010.332583384385},"targetPosition":{"x":11386.352187356151,"y":17367.341586515442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"fc32b77c-aa4d-4ab4-8653-da3ebb9f3521","savedPayload":{"position":{"x":11211.649331911949,"y":16715.34165377032},"targetPosition":{"x":11269.883617060017,"y":16932.67496468536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4f89e3b6-ccff-420a-9ee4-37c3e02d370e","savedPayload":{"position":{"x":11269.883617060017,"y":16932.67496468536},"targetPosition":{"x":11386.352187356151,"y":17367.341586515442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"f66763f4-09bf-4a93-bce3-c905ae51093e","savedPayload":{"position":{"x":11474.457367104686,"y":16698.11630508812},"targetPosition":{"x":11445.088973855174,"y":16921.191398897226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7d8561b2-2f28-4028-a43a-69db4dfc1039","savedPayload":{"position":{"x":11445.088973855174,"y":16921.191398897226},"targetPosition":{"x":11386.352187356151,"y":17367.341586515442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Rate","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"411ab435-4dd7-402e-86ae-a112f73715bf","savedPayload":{"position":{"x":11723.852187356151,"y":16782.774438960943},"targetPosition":{"x":11611.352187356151,"y":16977.630154812443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6172c44a-3835-4595-b232-4652c1ef64d0","savedPayload":{"position":{"x":11611.352187356151,"y":16977.630154812443},"targetPosition":{"x":11386.352187356151,"y":17367.341586515442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Rate","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"696e14f0-bd21-44ba-b028-0ae308317da9","savedPayload":{"position":{"x":11921.865692052736,"y":16956.427621934556},"targetPosition":{"x":11743.361190487207,"y":17093.398943461518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1ffcaec3-17f5-4344-8302-a8b68d6670cb","savedPayload":{"position":{"x":11743.361190487207,"y":17093.398943461518},"targetPosition":{"x":11386.352187356151,"y":17367.341586515442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin","config":"{\n }","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"UI.projects.superalgos.utilities.dates.formatDate(record.begin)","project":"Superalgos","id":"0f4a82d5-e706-4aaf-9033-802b6369042d","savedPayload":{"position":{"x":12038.352120101274,"y":17192.638731071238},"targetPosition":{"x":11821.018809186233,"y":17250.873016219306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c4a30376-9540-42ff-87f1-1508fce5abcb","savedPayload":{"position":{"x":11821.018809186233,"y":17250.873016219306},"targetPosition":{"x":11386.352187356151,"y":17367.341586515442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End","config":"{\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"UI.projects.superalgos.utilities.dates.formatDate(record.end)","project":"Superalgos","id":"95d0261f-ecf8-48af-9704-33a401b78e7b","savedPayload":{"position":{"x":12055.577468783475,"y":17455.446766263976},"targetPosition":{"x":11832.502374974367,"y":17426.078373014465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8f585dd6-1905-4717-b65a-3b83960ff321","savedPayload":{"position":{"x":11832.502374974367,"y":17426.078373014465},"targetPosition":{"x":11386.352187356151,"y":17367.341586515442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c4fc56e6-7415-4e1f-84b8-9dcd221dfb36","savedPayload":{"position":{"x":11386.352187356151,"y":17367.341586515442},"targetPosition":{"x":11161.352187356151,"y":17757.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"67ef0a2d-8f83-4507-b2c7-54f026b23034","savedPayload":{"position":{"x":11161.352187356151,"y":17757.05301821844},"targetPosition":{"x":11161.352187356151,"y":18207.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a07972d6-019b-472d-8b54-3af7fabac9de","savedPayload":{"position":{"x":11161.352187356151,"y":18207.05301821844},"targetPosition":{"x":11161.352187356151,"y":18657.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ba13a8fb-fa34-40c2-97dd-ae3000f632c2","savedPayload":{"position":{"x":11161.352187356151,"y":18657.05301821844},"targetPosition":{"x":11161.352187356151,"y":18657.05301821844},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}} \ No newline at end of file +{"type":"Learning Mine","name":"Masters","config":"{ \n\"codeName\": \"Masters\"\n}","project":"Superalgos","learningBots":[{"type":"Learning Bot","name":"Low Frequency","config":"{\n\"codeName\": \"Low-Frequency\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Learning","config":"{\n \"codeName\": \"Learning\",\n \"sessionRunWaitTime\": 5000,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Low-Frequency-Learning-Process\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[],"outputDatasetFolders":[{"type":"Output Dataset Folder","name":"Learning Engine","project":"Superalgos","outputDatasets":[],"outputDatasetFolders":[{"type":"Output Dataset Folder","name":"Learning Episode","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Learning Episode Counters","project":"Superalgos","id":"c0de6b69-60e2-4574-890a-35743f75c569","savedPayload":{"position":{"x":10770.578330127608,"y":18237.318563914418},"targetPosition":{"x":10828.2531163121,"y":17791.02984678326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ac1bc967-9c9f-47f0-8815-535abd7cb777"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Learning Episode Counters","project":"Superalgos","id":"da23a8ff-8b3d-4caa-a27c-f59352911212","savedPayload":{"position":{"x":10647.18050284652,"y":18202.991870096994},"targetPosition":{"x":10828.2531163121,"y":17791.02984678326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"6881069e-a4d1-4b41-892f-557d2031adea"}}},{"type":"Output Dataset","name":"Multi-Period-Market Learning Episode Statistics","project":"Superalgos","id":"dfdcb71e-c123-429e-bc2d-cf33963378d6","savedPayload":{"position":{"x":10538.452101828116,"y":18135.29046318318},"targetPosition":{"x":10828.2531163121,"y":17791.02984678326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"8408c316-e04d-4b0d-8c81-1bf3b4126894"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Learning Episode Statistics","project":"Superalgos","id":"fa9e000d-199c-4ed4-b10f-6c586bfc2fa5","savedPayload":{"position":{"x":10453.201655490207,"y":18039.69910852537},"targetPosition":{"x":10828.2531163121,"y":17791.02984678326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"553a0b49-2a61-41c4-ac95-f762051c1cab"}}},{"type":"Output Dataset","name":"Multi-Period-Market Episode Candle","project":"Superalgos","id":"a9a7b1fe-ecff-4d08-bd3b-297e4263c703","savedPayload":{"position":{"x":10398.335647991167,"y":17923.962049174253},"targetPosition":{"x":10828.2531163121,"y":17791.02984678326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"a08a3974-75ac-4a2b-bc09-f80547a61381"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Candle","project":"Superalgos","id":"d80bea92-bca6-4826-aa32-34bc7c13f952","savedPayload":{"position":{"x":10378.298996957856,"y":17797.455613363665},"targetPosition":{"x":10828.2531163121,"y":17791.02984678326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"46221186-fff7-4333-a087-a32a649e9ce8"}}},{"type":"Output Dataset","name":"Multi-Period-Market Distance To Learning Event","project":"Superalgos","id":"0b8ef0c4-c7a9-48cf-9f9b-e48d32f5ed27","savedPayload":{"position":{"x":10394.71495269444,"y":17670.42860016024},"targetPosition":{"x":10828.2531163121,"y":17791.02984678326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"0d746a41-6726-41fd-9312-862b6835b8ba"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Distance To Learning Event","project":"Superalgos","id":"a8951035-4bf1-4d0d-8666-879b2c481b6d","savedPayload":{"position":{"x":10446.25359209659,"y":17553.171982714983},"targetPosition":{"x":10828.2531163121,"y":17791.02984678326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"53933157-c1f5-46ec-aaa4-9d247f99a6c5"}}},{"type":"Output Dataset","name":"Multi-Period-Market Current Episode","project":"Superalgos","id":"45db7ab1-a5d3-43d2-8be2-7a82c0ea28a9","savedPayload":{"position":{"x":10528.739561112034,"y":17455.18519482135},"targetPosition":{"x":10828.2531163121,"y":17791.02984678326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"d3226ade-021e-4a24-bc2e-f1f6c812d951"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Current Episode","project":"Superalgos","id":"12216c85-0d31-4225-bcf4-527d6ced8bf0","savedPayload":{"position":{"x":10635.490337094088,"y":17384.406543284622},"targetPosition":{"x":10828.2531163121,"y":17791.02984678326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"7b64dca9-e495-4d53-b966-bdf1225a3d52"}}}],"outputDatasetFolders":[],"id":"281a85a9-56d1-4709-b9fc-f7320da8ec35","savedPayload":{"position":{"x":10895.311114004473,"y":17965.721903271922},"targetPosition":{"x":11272.712869579913,"y":17720.63433751516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Features","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Features","project":"Superalgos","id":"c8ef0b9d-bd93-4826-923e-dfd8574b2579","savedPayload":{"position":{"x":10422.37664305559,"y":17901.37888208863},"targetPosition":{"x":10823.329578940355,"y":17697.083157205834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"95cb434a-19d5-48ca-bc87-3c8019e79149"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Features","project":"Superalgos","id":"066d1193-8f8a-47d3-b8df-bec399324381","savedPayload":{"position":{"x":10445.927823364913,"y":17451.99559144907},"targetPosition":{"x":10823.329578940355,"y":17697.083157205834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"92a2b572-3425-4d5b-93c8-0b4a684f6919"}}}],"outputDatasetFolders":[],"id":"76d84f15-9d94-4ec7-8de4-eb47fb35c68e","savedPayload":{"position":{"x":10823.329578940355,"y":17697.083157205834},"targetPosition":{"x":11272.712869579913,"y":17720.63433751516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Labels","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Labels","project":"Superalgos","id":"0be21e04-4422-4f03-a5b1-99b018a18422","savedPayload":{"position":{"x":10478.537433656464,"y":17367.044652274628},"targetPosition":{"x":10922.997186924276,"y":17437.44016154273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"6c91e785-8c5e-4af5-9e81-90e0ee6c4116"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Labels","project":"Superalgos","id":"113b0d80-8bea-4c93-a48e-27e27cd30872","savedPayload":{"position":{"x":10761.73160962889,"y":17017.32896961899},"targetPosition":{"x":10922.997186924276,"y":17437.44016154273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"0e62efa2-6fac-40f4-a09c-306b4600ba4f"}}}],"outputDatasetFolders":[],"id":"dc33a077-51d8-4d29-832e-339b09d26754","savedPayload":{"position":{"x":10922.997186924276,"y":17437.44016154273},"targetPosition":{"x":11272.712869579913,"y":17720.63433751516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Predictions","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Predictions","project":"Superalgos","id":"dc41eb8a-0328-49c1-8be8-23fa10e16dd1","savedPayload":{"position":{"x":10838.046247749833,"y":16967.769664151132},"targetPosition":{"x":11156.244299283779,"y":17285.967715685078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"cb3aee40-6019-4f0b-8acc-6f384e414651"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Predictions","project":"Superalgos","id":"44072e54-d82e-43f8-bd35-18b0cf2e305c","savedPayload":{"position":{"x":11272.712869579913,"y":16851.301093854996},"targetPosition":{"x":11156.244299283779,"y":17285.967715685078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"cbca15ec-5937-4dbb-9750-d851d120a658"}}}],"outputDatasetFolders":[],"id":"088959bd-60e1-4ed0-9b81-3ee723c4ecf1","savedPayload":{"position":{"x":11156.244299283779,"y":17285.967715685078},"targetPosition":{"x":11272.712869579913,"y":17720.63433751516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8c60fcf2-98fb-4947-86a2-76c33de06b82","savedPayload":{"position":{"x":11272.712869579913,"y":17720.63433751516},"targetPosition":{"x":11692.824061503654,"y":17881.899914810543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Learning System","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Learning System Errors","project":"Superalgos","id":"af1d5e0d-c9aa-4b6f-8007-1902a29e887b","savedPayload":{"position":{"x":11074.177929372798,"y":17583.675549167445},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2a487ee8-0eb4-497f-84c9-f647b16dd17a"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Learning System Errors","project":"Superalgos","id":"278c4aa0-eb89-40f0-8a88-d775e2a04db3","savedPayload":{"position":{"x":11061.54117445673,"y":17510.436320969104},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"57d6ac5b-46a8-487d-88ac-48ddd012e842"}}},{"type":"Output Dataset","name":"Multi-Period-Market Learning System Highlights","project":"Superalgos","id":"46b16233-7168-4905-b2fd-341c59d64983","savedPayload":{"position":{"x":11061.13154916472,"y":17436.11603888529},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"0f15bfca-8a05-4a4d-92b4-ba0c78d62dd1"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Learning System Highlights","project":"Superalgos","id":"7beaf2ec-e4e5-4a3a-b0e1-89a0576b378b","savedPayload":{"position":{"x":11072.96022700692,"y":17362.741966472735},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"4b724ede-ed95-4c87-b555-294511613b76"}}},{"type":"Output Dataset","name":"Multi-Period-Market Learning System Values","project":"Superalgos","id":"a3a6d5d5-d6c3-435d-9de2-6d947ee8b7d0","savedPayload":{"position":{"x":11096.704552486857,"y":17292.31555715492},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"d1702db2-e4e8-4e01-8a31-9e7b23cf944f"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Learning System Values","project":"Superalgos","id":"cad39218-ce64-4383-b87a-59fe25082d3b","savedPayload":{"position":{"x":11131.716842302276,"y":17226.75785979009},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"bdcf18f2-ab49-4b5c-8220-07e4d9a76880"}}},{"type":"Output Dataset","name":"Multi-Period-Market Learning System Status","project":"Superalgos","id":"bbb23948-92bb-4837-9e07-4e9152820d30","savedPayload":{"position":{"x":11177.042052457236,"y":17167.857117466196},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"0e09e729-0b1d-411d-b7ed-c9b49979326c"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Learning System Status","project":"Superalgos","id":"c45bde8f-5bc9-4437-a437-287716e0e760","savedPayload":{"position":{"x":11231.44382937272,"y":17117.219988891055},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"3deef37c-60ad-4137-a5df-fbbf450a161e"}}},{"type":"Output Dataset","name":"Multi-Period-Market Learning System Progress","project":"Superalgos","id":"549dc3c2-e25e-4ccb-9ea3-1d33314490de","savedPayload":{"position":{"x":11293.43823438932,"y":17076.227722931053},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7d52a48e-8f44-485a-b898-1ecf3de2b642"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Learning System Progress","project":"Superalgos","id":"1aaed2c8-99ae-490b-bf3d-57b22467c08e","savedPayload":{"position":{"x":11361.334221745532,"y":17045.99848174272},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"308caaa5-5821-44a3-a971-119f5b5a2f3a"}}},{"type":"Output Dataset","name":"Multi-Period-Market Learning System Running","project":"Superalgos","id":"e8fed65e-52f6-4ddd-88b1-be8f4f897484","savedPayload":{"position":{"x":11433.279765897913,"y":17027.356840223925},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"beaa91a9-b48f-4a2e-9326-ac1eaa76f7fc"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Learning System Running","project":"Superalgos","id":"61e54a31-daec-426c-80be-dfaafe4032b4","savedPayload":{"position":{"x":11507.312379950019,"y":17020.811293760165},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"704e2e55-c731-4405-a0ac-bd587a502b0f"}}},{"type":"Output Dataset","name":"Multi-Period-Market Learning System Announcements","project":"Superalgos","id":"c271ce7a-4191-495f-83d1-dd8224d81f9b","savedPayload":{"position":{"x":11581.412647179131,"y":17026.540387796005},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4da28d63-2f82-4bac-acaf-b55d96c67ace"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Learning System Announcements","project":"Superalgos","id":"75da5deb-edca-41ab-844e-fe15435eef2d","savedPayload":{"position":{"x":11653.559305460221,"y":17044.38784758078},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"56438754-6219-4a56-b281-4bbafb02f8d9"}}},{"type":"Output Dataset","name":"Multi-Period-Market Learning System Warnings","project":"Superalgos","id":"3717dd62-aa6f-4f36-81ca-2b1c563831b6","savedPayload":{"position":{"x":11721.78438202768,"y":17073.86684093642},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"3a3d51a9-6eb8-4267-a00b-07ab26516721"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Learning System Warnings","project":"Superalgos","id":"e3259d83-3e3c-48a1-a096-a95d54d25977","savedPayload":{"position":{"x":11784.226874642249,"y":17114.17325777018},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"1bdb790b-6e98-4cbc-8463-036d7d342d12"}}},{"type":"Output Dataset","name":"Multi-Period-Market Learning System Infos","project":"Superalgos","id":"ae44851a-0bce-4c81-b65d-d5e831129c82","savedPayload":{"position":{"x":11839.183514880831,"y":17164.207644101825},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ec478333-805d-4c59-a550-3a51a9ebdc5b"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Learning System Infos","project":"Superalgos","id":"4457aa11-83d0-481c-9931-22304aa26689","savedPayload":{"position":{"x":11885.15522885899,"y":17222.60519230214},"targetPosition":{"x":11509.792572119544,"y":17470.80445887137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"6c89f99e-279f-4d61-a03d-59667ac1614f"}}}],"outputDatasetFolders":[],"id":"621ceb34-32e9-472e-951d-a8e86f3c0696","savedPayload":{"position":{"x":11509.792572119544,"y":17470.80445887137},"targetPosition":{"x":11692.824061503654,"y":17881.899914810543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Simulation Objects","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Episodes","project":"Superalgos","id":"e1d20279-68b7-4f3e-86ef-721c535c0f74","savedPayload":{"position":{"x":11783.694129530935,"y":17017.32896961899},"targetPosition":{"x":11854.08963879904,"y":17461.788722886802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"6fad647f-d440-4423-ad34-f21495863be4"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episodes","project":"Superalgos","id":"fd783657-65aa-4679-ad72-9637ef35170f","savedPayload":{"position":{"x":12203.805321454676,"y":17178.594546914373},"targetPosition":{"x":11854.08963879904,"y":17461.788722886802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"a9a9f046-27e3-4899-a351-55351cf3b1a1"}}}],"outputDatasetFolders":[],"id":"6d7bda29-38ec-4380-b8b4-d657e1dbc4c0","savedPayload":{"position":{"x":11854.08963879904,"y":17461.788722886802},"targetPosition":{"x":11692.824061503654,"y":17881.899914810543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d5884a6a-3692-4335-9e9d-51f52e1f31b9","savedPayload":{"position":{"x":11692.824061503654,"y":17881.899914810543},"targetPosition":{"x":11875.855550887763,"y":18292.995370749715},"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":"Low Frequency Learning","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"ffedf8e4-2770-42fe-93af-20fb37abf9d1","savedPayload":{"position":{"x":11511.797903419038,"y":17662.429028449882},"targetPosition":{"x":11922.893359358208,"y":17845.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"eb511667-2fd1-48fe-9b84-9d04f712d382"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"0d2dabbe-bc8e-49b9-b718-c4a17cb3f005","savedPayload":{"position":{"x":11588.47818789338,"y":17544.351744972504},"targetPosition":{"x":11922.893359358208,"y":17845.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"b9926521-0d8d-4459-85ea-336529883f95","savedPayload":{"position":{"x":11697.893359358208,"y":17455.749086130993},"targetPosition":{"x":11922.893359358208,"y":17845.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[],"dataMineDataDependencies":[{"type":"Data Mine Data Dependencies","name":"Masters","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"Webhooks","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"External Signals Single File","project":"Superalgos","id":"0863c0ac-86f6-4f15-a678-6be339986ea4","savedPayload":{"position":{"x":10934.26339265877,"y":17311.218480562893},"targetPosition":{"x":11381.798245574493,"y":17358.256289033336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Single File","id":"c52d1012-5e3b-41a0-b5af-84098b0594bf"}}}],"dataDependencyFolders":[],"id":"79282df7-1911-4d6f-a8fc-a5bd5bd32a45","savedPayload":{"position":{"x":11381.798245574493,"y":17358.256289033336},"targetPosition":{"x":11829.333098490217,"y":17405.294097503778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Candles Volumes","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"15917514-aef5-45af-b97c-a9776869d619","savedPayload":{"position":{"x":11028.526210848046,"y":17447.26260811967},"targetPosition":{"x":11418.237642551045,"y":17222.26260811967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}},{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"40555cb4-9528-4c9c-b3ef-3970dbfeccbb","savedPayload":{"position":{"x":10970.702789635321,"y":17175.224799649226},"targetPosition":{"x":11418.237642551045,"y":17222.26260811967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Daily","project":"Superalgos","id":"1ca25593-7487-4051-91a2-dcee172a6952","savedPayload":{"position":{"x":11083.822471086216,"y":16921.15383525818},"targetPosition":{"x":11418.237642551045,"y":17222.26260811967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2e683057-f911-4105-bc77-16f2706d1915"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Market","project":"Superalgos","id":"1ce80f06-acf4-4e5e-aa2c-015e22e78502","savedPayload":{"position":{"x":11324.677381683054,"y":16782.096187789455},"targetPosition":{"x":11418.237642551045,"y":17222.26260811967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1"}}}],"dataDependencyFolders":[],"id":"eb88ebdf-60c4-40f5-8784-4fa879c5715a","savedPayload":{"position":{"x":11418.237642551045,"y":17222.26260811967},"targetPosition":{"x":11829.333098490217,"y":17405.294097503778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Bollinger Bands","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Bollinger Bands Multi-Period-Market","project":"Superalgos","id":"6da02fa9-84ed-4586-bd9f-b252ac774bb4","savedPayload":{"position":{"x":11054.751506695175,"y":17197.74558551028},"targetPosition":{"x":11494.917927025388,"y":17104.18532464229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f5b2a7d8-fc32-44a3-a002-9b0fc30a9719"}}},{"type":"Data Dependency","name":"Bollinger Bands Multi-Period-Daily","project":"Superalgos","id":"906ca82f-4675-4ffc-a7de-ba5bdcdff471","savedPayload":{"position":{"x":11083.822471086216,"y":16921.15383525818},"targetPosition":{"x":11494.917927025388,"y":17104.18532464229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"506104fa-e99a-4a46-930e-176bce311aff"}}},{"type":"Data Dependency","name":"Percentage Bandwidth Multi-Period-Market","project":"Superalgos","id":"834ea7e6-e62d-4880-b8bc-492b4cac9819","savedPayload":{"position":{"x":11269.917927025388,"y":16714.47389293929},"targetPosition":{"x":11494.917927025388,"y":17104.18532464229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"207e9481-0730-4304-a938-cfe223d70856"}}},{"type":"Data Dependency","name":"Percentage Bandwidth Multi-Period-Daily","project":"Superalgos","id":"6a096e69-b21b-4ea6-a358-a9f52a239879","savedPayload":{"position":{"x":11541.95573549583,"y":16656.650471726567},"targetPosition":{"x":11494.917927025388,"y":17104.18532464229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e60d62dd-87f7-4f2d-ac21-3ac5c30a50ea"}}}],"dataDependencyFolders":[],"id":"f0078200-2fe4-4aad-be75-c35b13013e8e","savedPayload":{"position":{"x":11494.917927025388,"y":17104.18532464229},"targetPosition":{"x":11829.333098490217,"y":17405.294097503778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Bollinger Channels","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Bollinger Channels Objects Market","project":"Superalgos","id":"05be7e78-be3f-4fe7-a67d-3301baa79e96","savedPayload":{"position":{"x":11161.169609634722,"y":17093.7243457509},"targetPosition":{"x":11604.333098490217,"y":17015.58266580078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"610cd062-ab88-4892-b711-0fb430305c61"}}},{"type":"Data Dependency","name":"Bollinger Channels Objects Daily","project":"Superalgos","id":"445607d8-f1b0-4689-9889-2b4de2f4dccf","savedPayload":{"position":{"x":11161.169609634722,"y":16937.44098585066},"targetPosition":{"x":11604.333098490217,"y":17015.58266580078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"64910fea-c92a-4a55-850a-aa62d98b478e"}}},{"type":"Data Dependency","name":"Bollinger Channels Market","project":"Superalgos","id":"694e754c-f431-49fe-8a38-eddac5d74236","savedPayload":{"position":{"x":11214.621666787218,"y":16790.58266580078},"targetPosition":{"x":11604.333098490217,"y":17015.58266580078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"22c1f2c6-3838-4657-add8-2e01d7056917"}}},{"type":"Data Dependency","name":"Bollinger Channels Daily","project":"Superalgos","id":"6b3a2c91-290b-4b01-9603-12dab0ddade8","savedPayload":{"position":{"x":11315.078674131273,"y":16670.86266639724},"targetPosition":{"x":11604.333098490217,"y":17015.58266580078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"96b4e65b-e6db-44a0-80a5-ceb9d68a09ec"}}},{"type":"Data Dependency","name":"Bollinger Sub-Channels Objects Market","project":"Superalgos","id":"316515e2-e5e4-48ce-8551-439e25edd2f6","savedPayload":{"position":{"x":11450.424033993666,"y":16592.72098644712},"targetPosition":{"x":11604.333098490217,"y":17015.58266580078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"869f615e-0cc0-44fd-8648-4a951c23a410"}}},{"type":"Data Dependency","name":"Bollinger Sub-Channels Objects Daily","project":"Superalgos","id":"fb74b551-54bf-4210-a354-fe1cbb39abca","savedPayload":{"position":{"x":11604.333098490217,"y":16565.58266580078},"targetPosition":{"x":11604.333098490217,"y":17015.58266580078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"029479ae-275d-4854-ad3e-66948656a053"}}},{"type":"Data Dependency","name":"Bollinger Sub-Channels Market","project":"Superalgos","id":"136fee66-4db5-4725-81de-ef59e3d5337a","savedPayload":{"position":{"x":11758.242162986768,"y":16592.72098644712},"targetPosition":{"x":11604.333098490217,"y":17015.58266580078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"f8d44a4d-3771-4a71-97ca-dc604ff565d3"}}},{"type":"Data Dependency","name":"Bollinger Sub-Channels Daily","project":"Superalgos","id":"e59d296c-ad6f-4766-b2cf-7594fc8705ed","savedPayload":{"position":{"x":11893.58752284916,"y":16670.86266639724},"targetPosition":{"x":11604.333098490217,"y":17015.58266580078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"ca71e765-0f66-4b18-b500-847b9d16169b"}}}],"dataDependencyFolders":[],"id":"fa5ce50e-fa52-44ff-b605-976f5f5cf7ee","savedPayload":{"position":{"x":11604.333098490217,"y":17015.58266580078},"targetPosition":{"x":11829.333098490217,"y":17405.294097503778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Candle Channels","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Candles Channels Multi-Period-Market","project":"Superalgos","id":"e5c02f7c-6e8e-4b88-92a9-5f732e90a0c3","savedPayload":{"position":{"x":11324.677381683054,"y":16782.096187789455},"targetPosition":{"x":11735.772837622226,"y":16965.127677173565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"df7d1cd7-95b0-499c-b51a-772c3fb8a2b0"}}},{"type":"Data Dependency","name":"Candles Channels Multi-Period-Daily","project":"Superalgos","id":"7a3d4fc1-fa2f-4190-ac20-e5f59cc2f8ca","savedPayload":{"position":{"x":11510.772837622226,"y":16575.416245470566},"targetPosition":{"x":11735.772837622226,"y":16965.127677173565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"07734f1c-e2e7-4a35-8567-6a996c68883e"}}},{"type":"Data Dependency","name":"Candles Channels Objects Multi-Period-Market","project":"Superalgos","id":"b5f0c30a-cfcd-44ca-8787-7a611111bd88","savedPayload":{"position":{"x":11782.810646092668,"y":16517.59282425784},"targetPosition":{"x":11735.772837622226,"y":16965.127677173565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"566b9df4-da86-4b4f-a3f4-ef8a76443714"}}},{"type":"Data Dependency","name":"Candles Channels Objects Multi-Period-Daily","project":"Superalgos","id":"d9cdd9ae-12d3-42c7-8b4b-cd28a1b1f492","savedPayload":{"position":{"x":12036.881610483713,"y":16630.712505708736},"targetPosition":{"x":11735.772837622226,"y":16965.127677173565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"8a7d224b-7571-4e1a-8b8f-8a35aa25dc63"}}}],"dataDependencyFolders":[],"id":"ea6bd97d-1074-4f5b-8beb-7a7967ba50b5","savedPayload":{"position":{"x":11735.772837622226,"y":16965.127677173565},"targetPosition":{"x":11829.333098490217,"y":17405.294097503778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Resistances and Supports","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Resistances Multi-Period-Market","project":"Superalgos","id":"42e5d31e-f271-465b-b6a4-5db8895c3926","savedPayload":{"position":{"x":11541.95573549583,"y":16656.650471726567},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"44e905fc-719f-453b-a567-fd5e3bfcae91"}}},{"type":"Data Dependency","name":"Resistances Multi-Period-Daily","project":"Superalgos","id":"a33ba084-72da-4842-a679-eb2f6e2f4198","savedPayload":{"position":{"x":11782.810646092668,"y":16517.59282425784},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f4530d48-3239-4ab0-8c4d-d611cd55fde3"}}},{"type":"Data Dependency","name":"Supports Multi-Period-Market","project":"Superalgos","id":"3a0f4e16-451c-41a0-a845-f71600f57cda","savedPayload":{"position":{"x":12059.402396344769,"y":16546.663788648882},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4a1bd251-76ed-4530-8723-08e41d50f12d"}}},{"type":"Data Dependency","name":"Supports Multi-Period-Daily","project":"Superalgos","id":"ae73f78b-0a3d-4001-a1af-6fe5c2974316","savedPayload":{"position":{"x":12266.082338663658,"y":16732.759244588055},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"deaaf4ec-9352-40b6-af9a-8541a73a5e13"}}}],"dataDependencyFolders":[],"id":"2a1d36e6-2ecd-4c96-a42d-aec3eb7f60a2","savedPayload":{"position":{"x":11876.37090696066,"y":16957.759244588055},"targetPosition":{"x":11829.333098490217,"y":17405.294097503778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Fees Band","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Fees Band 0.2 Multi-Period-Market","project":"Superalgos","id":"db115ecb-8ce7-4da3-961d-26a3d62134af","savedPayload":{"position":{"x":11965.326779403884,"y":16546.663788648882},"targetPosition":{"x":12012.364587874326,"y":16994.198641564606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9c699a57-f0cf-434c-8ef8-40aac182200e"}}},{"type":"Data Dependency","name":"Fees Band 0.2 Multi-Period-Daily","project":"Superalgos","id":"b565925a-7ac2-4552-8d5e-31c703df86aa","savedPayload":{"position":{"x":12376.422235343052,"y":16729.695278032992},"targetPosition":{"x":12012.364587874326,"y":16994.198641564606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2dd03ed7-736e-4959-ad8e-8108e59b8796"}}}],"dataDependencyFolders":[],"id":"028178a1-8f2c-4354-b2e3-4187c2768711","savedPayload":{"position":{"x":12012.364587874326,"y":16994.198641564606},"targetPosition":{"x":11829.333098490217,"y":17405.294097503778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Volume Analysis","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Volume Analysis Multi-Period-Market","project":"Superalgos","id":"90326e10-ad05-473c-bb85-7c6cd3aef5f3","savedPayload":{"position":{"x":12224.002132219695,"y":16630.712505708736},"targetPosition":{"x":12130.441871351704,"y":17070.87892603895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"1d4df142-34c0-4439-a532-208c56cbb349"}}},{"type":"Data Dependency","name":"Volume Analysis Multi-Period-Daily","project":"Superalgos","id":"115d2117-d250-4c2e-b802-3f864bc42dce","savedPayload":{"position":{"x":12558.417303684524,"y":16931.821278570224},"targetPosition":{"x":12130.441871351704,"y":17070.87892603895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"cccbe688-75e9-405c-a087-8c1bb953430f"}}}],"dataDependencyFolders":[],"id":"d3123f6f-bf86-4537-b4e7-6e3b7047066c","savedPayload":{"position":{"x":12130.441871351704,"y":17070.87892603895},"targetPosition":{"x":11829.333098490217,"y":17405.294097503778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Candle Analysis","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Candle Analysis Multi-Period-Market","project":"Superalgos","id":"d91d474a-e2b2-4268-87fa-b4809470395c","savedPayload":{"position":{"x":12444.044530193216,"y":16790.58266580078},"targetPosition":{"x":12219.044530193216,"y":17180.294097503778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f65e4bf0-df3b-414c-aeba-f21dadb5d7ec"}}},{"type":"Data Dependency","name":"Candle Analysis Multi-Period-Daily","project":"Superalgos","id":"42f7d1b4-c36c-4468-8dde-55e0937457a5","savedPayload":{"position":{"x":12669.044530193216,"y":17180.294097503778},"targetPosition":{"x":12219.044530193216,"y":17180.294097503778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2127b8f1-932e-41c4-8eb9-1e0b6f02c2ec"}}}],"dataDependencyFolders":[],"id":"3f45aa2b-a6ab-4f20-9eec-8245d4097e68","savedPayload":{"position":{"x":12219.044530193216,"y":17180.294097503778},"targetPosition":{"x":11829.333098490217,"y":17405.294097503778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51c2e43d-ec38-4a55-b452-90b0610d18e1","savedPayload":{"position":{"x":11829.333098490217,"y":17405.294097503778},"targetPosition":{"x":11922.893359358208,"y":17845.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Masters","id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"SMA","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"155c81c3-f32d-472c-8ff3-5cbd2b4a9b1e","savedPayload":{"position":{"x":11271.458348895096,"y":17361.320255588395},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"3b21f9d7-2cbc-4c23-80c8-cc5e5b06a22c"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"1a6aae06-e072-4671-8256-96ba2049534e","savedPayload":{"position":{"x":11224.42054042465,"y":17279.84838144089},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2c338fe0-385f-45ab-b210-b98ef013228d"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"d0683c73-232b-434e-96f3-c4d448e7ba2f","savedPayload":{"position":{"x":11195.349576033608,"y":17190.37715292477},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"78a6ef37-4df8-4ac8-83a0-c9a732467c59"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"847cb8e9-ca07-4c6a-b07b-25ca19e2209e","savedPayload":{"position":{"x":11185.515996363822,"y":17096.81689205678},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f155e2ed-7082-4021-a4ff-a6f3cfd5683d"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"c4893582-9904-4697-8839-ef7046b03a64","savedPayload":{"position":{"x":11195.349576033608,"y":17003.25663118879},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"af9b9cef-2a74-486f-b79e-047d68669a1f"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"737a50c3-3731-498c-98b1-a3d8355b73ce","savedPayload":{"position":{"x":11224.42054042465,"y":16913.78540267267},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"de5cfa30-edbf-4d5b-8d7f-facfb69a0f3e"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"4715d690-fb5d-4296-a33c-19d1c1dfd8c6","savedPayload":{"position":{"x":11271.458348895096,"y":16832.313528525166},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Muti-Period-Market","id":"a5d28568-fb58-469a-9820-b9f0e8eab705"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"d0fbc567-9e20-47cf-bdc6-d53b1ae14f0d","savedPayload":{"position":{"x":11334.407223502334,"y":16762.40172059195},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"01f32aa3-55e9-4f8c-80c7-997b52073274"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"528004c0-2649-4f1e-9750-e832e53595b3","savedPayload":{"position":{"x":11410.515996363822,"y":16707.10546035378},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"c0862b3d-d35a-4d3e-8d80-258b8a01c37c"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"af93e3ed-46dc-44be-ae4f-9ecd254b9003","savedPayload":{"position":{"x":11496.458348895096,"y":16668.84145972396},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f5050eb2-0a99-464e-b5e2-2d8f40453e9a"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"64a4d888-9a97-4544-8327-9bb09c096414","savedPayload":{"position":{"x":11588.478187893379,"y":16649.282039141057},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"6ba76363-0f50-4e67-8678-3eb4fd6d07d6"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"c4975836-8df6-4dde-a802-de552a147614","savedPayload":{"position":{"x":11682.553804834264,"y":16649.282039141057},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"92d92b3e-6870-499b-bfec-33bab220bf62"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"66c461d3-ca67-4780-8939-7c28110b7f5b","savedPayload":{"position":{"x":11774.573643832548,"y":16668.84145972396},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4c486321-22e0-4991-9a1c-571bada649ad"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"d206fd76-3dfe-4c2c-a05f-00be08751585","savedPayload":{"position":{"x":11860.515996363822,"y":16707.10546035378},"targetPosition":{"x":11635.515996363822,"y":17096.81689205678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"819688c9-c7bd-444b-9658-2a4379125c72"}}}],"dataDependencyFolders":[],"id":"0c3d5d77-3b9b-40b1-a154-80774119de6b","savedPayload":{"position":{"x":11635.515996363822,"y":17096.81689205678},"targetPosition":{"x":11969.93116782865,"y":17397.925664918268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"EMA","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"76f51c31-c8a8-4d09-8741-7bd7a728bf7d","savedPayload":{"position":{"x":11426.37090696066,"y":16957.759244588055},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ea1af06a-2584-43f0-aecf-ec8ad9169e9c"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"b6e5caa1-2c4e-46ce-b610-9e552988096b","savedPayload":{"position":{"x":11436.204486630446,"y":16864.198983720064},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e7f5899c-fc4c-412d-a8db-77c1bef8ed21"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"ef326089-5627-43b3-8af5-b431182d2382","savedPayload":{"position":{"x":11465.275451021487,"y":16774.727755203945},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"85e3f0ce-5331-4c0b-900a-e73aaf53d96e"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"89a63e3f-b223-4b03-9e03-431a5dcc5a33","savedPayload":{"position":{"x":11512.313259491933,"y":16693.25588105644},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e04edb48-09ab-4f92-beb7-14ba647de7d6"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"6d3e5a62-164f-4adc-af52-c5142b566233","savedPayload":{"position":{"x":11575.262134099172,"y":16623.344073123226},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"6b6840f7-3b76-474a-9d27-9515cbcd6499"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"2156a0ef-20da-4796-9dad-8b57a4a30fec","savedPayload":{"position":{"x":11651.37090696066,"y":16568.047812885055},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ef3d5a7d-11eb-4ead-8e24-49ac7c80b0c7"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"37b350bb-e105-4309-8c1b-c84c6fb330fe","savedPayload":{"position":{"x":11737.313259491933,"y":16529.783812255235},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4e36a5a5-7a03-43a9-b3e0-0c5763c29199"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"89b805ea-d41d-4e25-8b65-39b69bbf7ae7","savedPayload":{"position":{"x":11829.333098490217,"y":16510.22439167233},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"15ccbcff-318d-46db-93f2-d649b57fd52a"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"ab2cef2b-9ab8-48ec-9e8b-6484f8e94109","savedPayload":{"position":{"x":11923.408715431102,"y":16510.22439167233},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5586aa74-2ecb-4b71-83ea-d621aa400660"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"9f4f5669-16d3-48a3-a92d-e5ceda3f464c","savedPayload":{"position":{"x":12015.428554429385,"y":16529.783812255235},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"0198fa3f-98e3-4c57-a4a4-a7a8e27905d3"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"4c38ecf3-b300-413a-bb36-3f3ee0b0deb5","savedPayload":{"position":{"x":12101.37090696066,"y":16568.047812885055},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ea61dfed-8f93-4b4f-8575-61ca2547ea90"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"74635038-5100-490d-8346-f72a65c8b08f","savedPayload":{"position":{"x":12177.479679822147,"y":16623.344073123226},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b251aca0-1996-4d13-99ed-6fb9796ec8d6"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"1a232ffd-2067-43b5-9d05-8a8809c8839f","savedPayload":{"position":{"x":12240.428554429385,"y":16693.25588105644},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"dea3491f-aae7-4419-a98f-108cf5d69b87"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"a4817578-3927-4582-a03d-b3f19d690ef9","savedPayload":{"position":{"x":12287.466362899831,"y":16774.727755203945},"targetPosition":{"x":11876.37090696066,"y":16957.759244588055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"6624337b-4afd-44b8-a2ea-3f1779ddda7e"}}}],"dataDependencyFolders":[],"id":"dc550c99-0172-4c54-8692-5bb34a727d39","savedPayload":{"position":{"x":11876.37090696066,"y":16957.759244588055},"targetPosition":{"x":11969.93116782865,"y":17397.925664918268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"MACD","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"76145ae8-4a85-4c6c-ae80-56bc8296d024","savedPayload":{"position":{"x":11829.259747060369,"y":16674.233942272545},"targetPosition":{"x":12152.96265721276,"y":16986.830208979096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"01d43ed0-2a80-4eca-bee6-db2fe40470fc"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"eccae531-e077-46a2-a53c-f2a807d020b6","savedPayload":{"position":{"x":11955.695641157676,"y":16582.37288814447},"targetPosition":{"x":12152.96265721276,"y":16986.830208979096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"dd5d3067-ff7b-4353-ba4f-c030bd3da796"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"7eaf8892-ec21-4336-aa30-1f83c52bfc56","savedPayload":{"position":{"x":12105.924848742317,"y":16539.295356063372},"targetPosition":{"x":12152.96265721276,"y":16986.830208979096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"19b1d791-d2ea-4f25-a6e1-fe0a64450745"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"f59fe651-50d2-4ceb-bb87-543d9f33c115","savedPayload":{"position":{"x":12261.827510232612,"y":16550.1971321549},"targetPosition":{"x":12152.96265721276,"y":16986.830208979096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ec2611a6-699b-45a5-beec-679dd4b7734a"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"87bc983f-770a-4622-95ec-f25661eb8bf9","savedPayload":{"position":{"x":12404.599463774597,"y":16613.763301329327},"targetPosition":{"x":12152.96265721276,"y":16986.830208979096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"c390cbd3-0ba0-4507-8614-42c88f4ce7e6"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"266fbacf-bede-4256-a3e3-114976d7d78c","savedPayload":{"position":{"x":12517.020304681486,"y":16722.326845447482},"targetPosition":{"x":12152.96265721276,"y":16986.830208979096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"29e18539-f188-4d29-9531-25cd3ee8f282"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"4f5ae4cf-a82a-4e04-a582-d7320018f7dd","savedPayload":{"position":{"x":12585.530420385003,"y":16862.793398861446},"targetPosition":{"x":12152.96265721276,"y":16986.830208979096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"89254c6c-9be2-4037-b063-467edc660d10"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"50a7da1c-a0d6-4ce4-944b-635c4ad2c3a0","savedPayload":{"position":{"x":12601.866479829681,"y":17018.220622163954},"targetPosition":{"x":12152.96265721276,"y":16986.830208979096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"8a9dde13-e4b8-40f3-80bc-ea51050b2f08"}}}],"dataDependencyFolders":[],"id":"33a94d76-5465-482a-9d95-2b1b64b7a3fe","savedPayload":{"position":{"x":12152.96265721276,"y":16986.830208979096},"targetPosition":{"x":11969.93116782865,"y":17397.925664918268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"RSI","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"634e1631-cf16-4cde-ad14-b9eb1cf519c3","savedPayload":{"position":{"x":12584.64259953165,"y":16783.21423321527},"targetPosition":{"x":12359.64259953165,"y":17172.925664918268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5ec62760-e144-4496-98ab-0415a4b315ec"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"1a7f3b74-454c-4e5a-af5b-84c1634c75f6","savedPayload":{"position":{"x":12809.64259953165,"y":17172.925664918268},"targetPosition":{"x":12359.64259953165,"y":17172.925664918268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f1556d09-f134-4678-83fb-04002d1dcd34"}}}],"dataDependencyFolders":[],"id":"d816cd09-b00b-4889-a175-c0d1f32f650e","savedPayload":{"position":{"x":12359.64259953165,"y":17172.925664918268},"targetPosition":{"x":11969.93116782865,"y":17397.925664918268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b90e3d14-1fba-40db-b98b-c6a992d2713e","savedPayload":{"position":{"x":11969.931167828652,"y":17397.925664918268},"targetPosition":{"x":11922.893359358208,"y":17845.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Sparta","id":"9cfffc48-486a-48cb-b641-98c82e314d3a"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"Super Trend","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"26957577-f267-4a00-b77a-d9e56191e8ec","savedPayload":{"position":{"x":11430.326029271531,"y":16887.275925041984},"targetPosition":{"x":11841.421485210703,"y":17070.307414426094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7c8e7a6f-99c8-4d90-9f44-e3e9e909eb88"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"cfca44d1-2973-4523-b60f-69dcddf3b4cf","savedPayload":{"position":{"x":11794.38367674026,"y":16622.77256151037},"targetPosition":{"x":11841.421485210703,"y":17070.307414426094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"c17b5d3f-7cf7-418a-92b8-f8c67a120446"}}}],"dataDependencyFolders":[],"id":"1685e41e-ab46-4089-9e97-54a260205dba","savedPayload":{"position":{"x":11841.421485210703,"y":17070.307414426094},"targetPosition":{"x":12105.924848742317,"y":17434.36506189482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Wave Trend","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"b97a589f-5d16-4e78-b7b6-3861d99d9354","savedPayload":{"position":{"x":11794.38367674026,"y":16622.77256151037},"targetPosition":{"x":12058.887040271875,"y":16986.830208979096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9b727bdd-1684-43e1-a39c-fbd14ce64828"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"6bb547ee-3841-42a1-b2bd-3bca71fff95b","savedPayload":{"position":{"x":12241.918529655984,"y":16575.734753039924},"targetPosition":{"x":12058.887040271875,"y":16986.830208979096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"3bf983d5-4d3c-46f8-a130-9e621b76e62d"}}}],"dataDependencyFolders":[],"id":"2ca67623-1216-4b7f-b188-d10253d82ff3","savedPayload":{"position":{"x":12058.887040271875,"y":16986.830208979096},"targetPosition":{"x":12105.924848742317,"y":17434.36506189482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Donchian Channel","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"ea1c82c9-3326-4cc9-afc7-91a2c7cc4fc9","savedPayload":{"position":{"x":12241.918529655984,"y":16575.734753039924},"targetPosition":{"x":12288.956338126427,"y":17023.269605955647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7298225c-3b68-4f34-a935-fc0ab3d8f662"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"87e4e040-7025-4536-9ebc-c0fee01411d6","savedPayload":{"position":{"x":12653.013985595153,"y":16758.766242424033},"targetPosition":{"x":12288.956338126427,"y":17023.269605955647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"50ed783e-0e71-4903-8a82-854c8bd2ed6e"}}}],"dataDependencyFolders":[],"id":"31a4027e-731f-435d-9fe6-03fdfb565018","savedPayload":{"position":{"x":12288.956338126427,"y":17023.269605955647},"targetPosition":{"x":12105.924848742317,"y":17434.36506189482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"DMI Directional Movement","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"e04c13f7-2fc0-4284-924c-2f318bfa2f57","savedPayload":{"position":{"x":12653.013985595153,"y":16758.766242424033},"targetPosition":{"x":12469.982496211043,"y":17169.861698363206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ffc7f78b-9ec3-4218-b76f-47233d535a17"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"800cc62a-2ce0-4fd1-9a14-d3e8c6aa8a9f","savedPayload":{"position":{"x":12917.517349126767,"y":17122.823889892763},"targetPosition":{"x":12469.982496211043,"y":17169.861698363206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"9b222dca-e8c2-4392-9c3e-7c970dca4a52"}}}],"dataDependencyFolders":[],"id":"afd303d8-c86d-4d09-851f-896514cc69f7","savedPayload":{"position":{"x":12469.982496211043,"y":17169.861698363206},"targetPosition":{"x":12105.924848742317,"y":17434.36506189482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Ichimoku Cloud","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"6ba0444e-fcd4-4647-9b39-512e699461ac","savedPayload":{"position":{"x":12917.517349126767,"y":17122.823889892763},"targetPosition":{"x":12553.459701658041,"y":17387.327253424377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"80018870-2528-42bf-a3a7-6f0b5e44d9c9"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"162d7846-7e0c-4148-8e79-ddf8f69b7435","savedPayload":{"position":{"x":12964.555157597213,"y":17570.358742808487},"targetPosition":{"x":12553.459701658041,"y":17387.327253424377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ef8da44c-8cc5-41fc-add6-f2feff945632"}}}],"dataDependencyFolders":[],"id":"2e0b0da7-0474-4acf-ba0d-621069a1360c","savedPayload":{"position":{"x":12553.459701658041,"y":17387.327253424377},"targetPosition":{"x":12105.924848742317,"y":17434.36506189482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9772c779-ea74-4bfc-aada-70155e6f7a34","savedPayload":{"position":{"x":12105.924848742317,"y":17434.36506189482},"targetPosition":{"x":11922.893359358208,"y":17845.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Zeus","id":"d2083ac0-43e2-41e4-83c7-eb09a6f29353"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"ATR","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"9af0d1e0-d4c6-4811-9f2a-65feb3c781c0","savedPayload":{"position":{"x":11823.04919633493,"y":16816.57448997284},"targetPosition":{"x":12200.45095191037,"y":17061.662055729605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"67695466-be2d-43b4-9824-83baa7a08412"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"4dc388e2-cc4c-4e54-94e1-0f7d2c53295e","savedPayload":{"position":{"x":12039.185374614986,"y":16641.550863805864},"targetPosition":{"x":12200.45095191037,"y":17061.662055729605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e3d0bccf-5f97-4902-92df-4ac8fe8c41a8"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"04de6c9e-d1b3-4263-b429-d34c12b28a3c","savedPayload":{"position":{"x":12316.919522206503,"y":16626.995433899523},"targetPosition":{"x":12200.45095191037,"y":17061.662055729605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2570d2c7-72e3-4131-97dc-a9f97f493e93"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"c044dc96-a7e8-4d00-8ff1-edc06b2a5098","savedPayload":{"position":{"x":12550.166634566009,"y":16778.467879757176},"targetPosition":{"x":12200.45095191037,"y":17061.662055729605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"93eb665f-d903-4825-9fb1-2783e917ac89"}}}],"dataDependencyFolders":[],"id":"65b84375-63fc-4260-b479-f7d8c143f331","savedPayload":{"position":{"x":12200.45095191037,"y":17061.662055729605},"targetPosition":{"x":12224.002132219695,"y":17511.045346369163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"ROC","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"fe65dae6-2e39-4a78-b919-25ce948d1783","savedPayload":{"position":{"x":12354.459446887366,"y":16760.243239691037},"targetPosition":{"x":12525.110905081183,"y":17176.630174904334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"40268fec-e5e8-4b05-9f27-c4072ebda94a"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"3ebc03da-316e-4114-b639-1816e2a0dea8","savedPayload":{"position":{"x":12552.02277435645,"y":16727.435616508854},"targetPosition":{"x":12525.110905081183,"y":17176.630174904334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"cb60d68b-b11d-4317-8830-65c212a8c728"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"78682cf0-2011-4cb4-95d2-de4f85de3be8","savedPayload":{"position":{"x":12744.255876063147,"y":16783.596484626625},"targetPosition":{"x":12525.110905081183,"y":17176.630174904334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"41a488be-c66c-458d-99fc-490b9e8172ef"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"7162145d-1bd3-458a-a027-6c32add4e88c","savedPayload":{"position":{"x":12893.084628630178,"y":16917.60249534578},"targetPosition":{"x":12525.110905081183,"y":17176.630174904334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"30276899-0d68-40e3-9c35-a28442485b55"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"557f0fd0-fdad-4dbf-97d6-d47e7028f7d6","savedPayload":{"position":{"x":12969.031672346766,"y":17102.91211476752},"targetPosition":{"x":12525.110905081183,"y":17176.630174904334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9c6b7d85-01f5-449c-a5be-9a357b6588bc"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"b667c8de-bd93-4052-9ae7-2458ec4b3e23","savedPayload":{"position":{"x":12957.054763775483,"y":17302.822500092036},"targetPosition":{"x":12525.110905081183,"y":17176.630174904334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"66f59b6d-9d4b-4cef-9ffd-aed019219809"}}}],"dataDependencyFolders":[],"id":"6bf9dbdc-44fc-4c4f-b672-41324b7180b7","savedPayload":{"position":{"x":12525.110905081183,"y":17176.630174904334},"targetPosition":{"x":12224.002132219695,"y":17511.045346369163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Stochastic","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"7dd972ea-efc2-4af6-b80f-2ebcba4d9541","savedPayload":{"position":{"x":13050.787178434693,"y":17242.406600303075},"targetPosition":{"x":12673.385422859254,"y":17487.494166059838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"88b1ff0e-ad99-474c-8833-7b76a5a57ebd"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"b670fd83-754e-4e49-beae-238599574d8d","savedPayload":{"position":{"x":13074.338358744018,"y":17691.789890942633},"targetPosition":{"x":12673.385422859254,"y":17487.494166059838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"4b941e0d-8b0a-41e2-bc20-54e0bc0d936a"}}}],"dataDependencyFolders":[],"id":"f940e245-fdfc-4d18-9442-38d658d2a33c","savedPayload":{"position":{"x":12673.385422859254,"y":17487.494166059838},"targetPosition":{"x":12224.002132219695,"y":17511.045346369163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d908ad7f-93f1-427d-84fa-faca9397fc95","savedPayload":{"position":{"x":12224.002132219694,"y":17511.045346369163},"targetPosition":{"x":11922.893359358208,"y":17845.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Alpha","id":"511bef1e-62d8-4ff9-8d87-15bd0d3d630c"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"Candles Probabilities","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"e646d479-058f-436e-ab2a-25ddf0436a22","savedPayload":{"position":{"x":12537.604791061207,"y":16780.749086130993},"targetPosition":{"x":12537.604791061207,"y":17230.749086130993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"85c67513-347a-4948-9121-dee04543fcff"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"691b7471-0bb2-4a52-8d5d-91b088ebe384","savedPayload":{"position":{"x":12927.316222764206,"y":17005.749086130993},"targetPosition":{"x":12537.604791061207,"y":17230.749086130993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"fa17370b-0a9c-4350-9cce-1df4be39b58c"}}}],"dataDependencyFolders":[],"id":"262a3ce2-cb35-4cff-beeb-fa4d0f5663a2","savedPayload":{"position":{"x":12537.604791061207,"y":17230.749086130993},"targetPosition":{"x":12312.604791061207,"y":17620.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Candles Channels Probabilities","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"309c4aa0-8655-4f93-a163-471841b70931","savedPayload":{"position":{"x":13152.316222764206,"y":17395.46051783399},"targetPosition":{"x":12762.604791061207,"y":17620.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"fdee2b9c-3036-4db2-af42-b3507a6ffacf"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"f1791212-8b91-4898-9590-34a492e4a142","savedPayload":{"position":{"x":13152.316222764206,"y":17845.46051783399},"targetPosition":{"x":12762.604791061207,"y":17620.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2774470d-7382-48e3-bd0a-957f0332a698"}}}],"dataDependencyFolders":[],"id":"822f1e53-45d7-4c3f-bc26-9843fe51c546","savedPayload":{"position":{"x":12762.604791061207,"y":17620.46051783399},"targetPosition":{"x":12312.604791061207,"y":17620.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"16156fa3-b3d0-48a3-9b60-be61178af021","savedPayload":{"position":{"x":12312.604791061205,"y":17620.46051783399},"targetPosition":{"x":11922.893359358208,"y":17845.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Samurai","id":"37e312af-e076-47aa-a1cd-bf5b2e16127d"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"Candle Patterns","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"31385c8c-290f-4aba-87bb-0bd32fb224fe","savedPayload":{"position":{"x":12865.854095450664,"y":17212.719365164303},"targetPosition":{"x":12803.226200018635,"y":17658.33999609801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"07be5b9b-e8fd-49fc-ab77-20f89fdea10f"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"7a413d6c-12de-4671-9f23-7b748a0d39a8","savedPayload":{"position":{"x":13014.488403272284,"y":17261.013579311493},"targetPosition":{"x":12803.226200018635,"y":17658.33999609801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"9e6d7f95-b2fe-466e-9a5d-175479cbf85d"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"e1733b58-82b9-4f31-b0ed-86806e59e6b0","savedPayload":{"position":{"x":13137.641371483463,"y":17357.231223236522},"targetPosition":{"x":12803.226200018635,"y":17658.33999609801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"144d8665-1ff0-4db3-9340-a33fd7d0d098"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"c99a5c48-4ee4-4359-a962-17779894cfd0","savedPayload":{"position":{"x":13220.45893457369,"y":17489.767029060848},"targetPosition":{"x":12803.226200018635,"y":17658.33999609801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f0a11771-dd69-4b9a-9347-7cb2d1f231ff"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"5abdf25c-1560-4263-b14f-06b8a1cd46e1","savedPayload":{"position":{"x":13252.952072177228,"y":17642.635222581885},"targetPosition":{"x":12803.226200018635,"y":17658.33999609801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"8c35ce52-9dee-4d20-92e6-50ba7fd2882b"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"a27bb5d3-40a9-4677-ac8c-580f5c964a5f","savedPayload":{"position":{"x":13231.201632351454,"y":17797.397643566735},"targetPosition":{"x":12803.226200018635,"y":17658.33999609801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"4f1260c8-6d74-454e-963a-fa3ff910329c"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"b4561ade-7a63-4f06-81dc-acfd50f43845","savedPayload":{"position":{"x":13157.83103914166,"y":17935.387659994554},"targetPosition":{"x":12803.226200018635,"y":17658.33999609801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"087fc67e-78f9-4204-ba5e-8b670566a716"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"16645b72-aea5-4e44-8875-e25986ff980f","savedPayload":{"position":{"x":13041.689868923579,"y":18039.9616393684},"targetPosition":{"x":12803.226200018635,"y":17658.33999609801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b60cb94f-79c5-410c-b166-abc97d0f2bc3"}}}],"dataDependencyFolders":[],"id":"cc061c1e-eebf-494b-8b67-5ff229538ce7","savedPayload":{"position":{"x":12803.226200018635,"y":17658.33999609801},"targetPosition":{"x":12363.059779688421,"y":17751.900256966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"95158472-f128-4b9c-9a8e-a1e9938fb41f","savedPayload":{"position":{"x":12363.059779688421,"y":17751.900256966},"targetPosition":{"x":11922.893359358208,"y":17845.46051783399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Buddha","id":"38d04c99-51a6-4c1c-853e-ba67e216854b"}}}],"id":"787ca0b1-3fbf-4f34-bfc9-ee7320184a59","savedPayload":{"position":{"x":11922.893359358208,"y":17845.46051783399},"targetPosition":{"x":11875.855550887763,"y":18292.995370749715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"eb511667-2fd1-48fe-9b84-9d04f712d382","savedPayload":{"position":{"x":12140.358914419376,"y":17928.93772328099},"targetPosition":{"x":11875.855550887763,"y":18292.995370749715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"","project":"Superalgos","id":"7c4dcf72-1924-4c3e-822a-8cae902c7163","savedPayload":{"position":{"x":12286.951006826934,"y":18109.963881365606},"targetPosition":{"x":11875.855550887763,"y":18292.995370749715},"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":"72c8ba9a-bb38-4fbb-abdd-645a36676778","savedPayload":{"position":{"x":12323.390403803487,"y":18340.033179220158},"targetPosition":{"x":11875.855550887763,"y":18292.995370749715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f9b58fac-d095-47b5-85ec-6b212e1b88e4","savedPayload":{"position":{"x":11875.855550887763,"y":18292.995370749715},"targetPosition":{"x":11611.352187356151,"y":18657.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"products":[],"productDefinitionFolders":[{"type":"Product Definition Folder","name":"Learning Engine","project":"Superalgos","products":[],"productDefinitionFolders":[{"type":"Product Definition Folder","name":"Learning Episode","project":"Superalgos","products":[{"type":"Product Definition","name":"Learning Episode Counters","config":"{\n \"codeName\": \"Learning-Episode-Counters\",\n \"singularVariableName\": \"learningEpisodeCounter\",\n \"pluralVariableName\": \"learningEpisodeCounters\",\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.learningEpisodeCounters\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"ac1bc967-9c9f-47f0-8815-535abd7cb777","savedPayload":{"position":{"x":11529.351976940694,"y":17802.229570195905},"targetPosition":{"x":11751.26623728657,"y":17839.365281514558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"6881069e-a4d1-4b41-892f-557d2031adea","savedPayload":{"position":{"x":11560.455415651375,"y":17720.133447062086},"targetPosition":{"x":11751.26623728657,"y":17839.365281514558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"49d971d5-dee1-42cd-a3f3-e8bf37e12f14","savedPayload":{"position":{"x":11042.021617951417,"y":17516.143886888312},"targetPosition":{"x":11489.949907216647,"y":17473.013298254213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"a6242944-1045-48f8-a90a-b1547f7cb959","savedPayload":{"position":{"x":11080.467335322202,"y":17286.401339058906},"targetPosition":{"x":11489.949907216647,"y":17473.013298254213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{\n \"codeName\": \"periods\",\n \"isString\": false\n}","project":"Superalgos","id":"eb5040fa-a970-4d05-a198-cfb89c88b4a6","savedPayload":{"position":{"x":11228.633577146724,"y":17106.661314993868},"targetPosition":{"x":11489.949907216647,"y":17473.013298254213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hits","config":"{\n \"codeName\": \"hits\",\n \"isString\": false\n}","project":"Superalgos","id":"ae95ba7d-1320-49f5-a8b9-4efb744b0198","savedPayload":{"position":{"x":11446.819318582546,"y":17025.085008988983},"targetPosition":{"x":11489.949907216647,"y":17473.013298254213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fails","config":"{\n \"codeName\": \"fails\",\n \"isString\": false\n}","project":"Superalgos","id":"26046d33-299f-43d5-b981-942582685b4f","savedPayload":{"position":{"x":11676.561866411956,"y":17063.530726359768},"targetPosition":{"x":11489.949907216647,"y":17473.013298254213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bfe1f65f-850b-4d6e-bcb6-0545c24d2dec","savedPayload":{"position":{"x":11489.949907216647,"y":17473.013298254213},"targetPosition":{"x":11751.26623728657,"y":17839.365281514558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"919f4c32-75ef-41a1-bf16-2425d61aee1e","savedPayload":{"position":{"x":11998.535778815005,"y":17739.64067928951},"targetPosition":{"x":12243.623344571766,"y":18117.04243486495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Learning Episode Counters","id":"788bfd62-11af-4bbe-96f4-d2ba930334a2"}}},{"type":"Product Definition","name":"Learning Episode Statistics","config":"{\n \"codeName\": \"Learning-Episode-Statistics\",\n \"singularVariableName\": \"learningEpisodeStatistics\",\n \"pluralVariableName\": \"learningEpisodeStatistics\",\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.learningEpisodeStatistics\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"8408c316-e04d-4b0d-8c81-1bf3b4126894","savedPayload":{"position":{"x":11660.010185073937,"y":17612.428810273195},"targetPosition":{"x":11855.840216660416,"y":17723.224111296477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"553a0b49-2a61-41c4-ac95-f762051c1cab","savedPayload":{"position":{"x":11717.316384712143,"y":17545.921691734966},"targetPosition":{"x":11855.840216660416,"y":17723.224111296477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"d835dbd4-22c8-42ff-a91a-e71df3b7fa50","savedPayload":{"position":{"x":11288.937179186605,"y":17234.74920282028},"targetPosition":{"x":11735.5829474252,"y":17289.590407352596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"61c906de-bc64-4541-8eeb-02649898ba6e","savedPayload":{"position":{"x":11343.922884252246,"y":17067.999805306037},"targetPosition":{"x":11735.5829474252,"y":17289.590407352596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{\n \"codeName\": \"days\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"24a5a792-3beb-4852-969b-3f24813d189e","savedPayload":{"position":{"x":11458.535283528654,"y":16934.98556822957},"targetPosition":{"x":11735.5829474252,"y":17289.590407352596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail","config":"{\n \"codeName\": \"hitFail\",\n \"isString\": true\n}","project":"Superalgos","id":"6e05c4fd-899d-4f8a-bfa1-4e4fd3e9fce2","savedPayload":{"position":{"x":11615.325678189985,"y":16855.956703408716},"targetPosition":{"x":11735.5829474252,"y":17289.590407352596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"5a5c5fb5-93b8-4be7-a882-62691c86fa34","savedPayload":{"position":{"x":11790.424151957517,"y":16842.944639114},"targetPosition":{"x":11735.5829474252,"y":17289.590407352596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"f3b5ba52-9428-4598-ad55-ec22fbeae93e","savedPayload":{"position":{"x":11957.173549471761,"y":16897.93034417964},"targetPosition":{"x":11735.5829474252,"y":17289.590407352596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"8ed4f979-f64c-437e-a258-704045307942","savedPayload":{"position":{"x":12090.187786548226,"y":17012.54274345605},"targetPosition":{"x":11735.5829474252,"y":17289.590407352596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dd148eb0-f80e-4848-b32b-306697c8bfe3","savedPayload":{"position":{"x":11735.5829474252,"y":17289.590407352596},"targetPosition":{"x":11855.840216660416,"y":17723.224111296477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"f49b4eea-4799-4f25-b6e6-31ae21597f43","savedPayload":{"position":{"x":12220.072164262441,"y":17667.659144225392},"targetPosition":{"x":12243.623344571766,"y":18117.04243486495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Learning Episode Statistics","id":"59f91a2a-a1ba-4414-a9a2-ea1c05ba7887"}}},{"type":"Product Definition","name":"Episode Candle","config":"{\n \"codeName\": \"Episode-Candle\",\n \"singularVariableName\": \"episodeCandle\",\n \"pluralVariableName\": \"episodeCandles\",\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.candle\",\n \"saveAtCycle\": \"Second\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a08a3974-75ac-4a2b-bc09-f80547a61381","savedPayload":{"position":{"x":11847.704422213945,"y":17478.762175826676},"targetPosition":{"x":11993.830233088236,"y":17649.853518086682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"46221186-fff7-4333-a087-a32a649e9ce8","savedPayload":{"position":{"x":11924.301409353873,"y":17435.865801920274},"targetPosition":{"x":11993.830233088236,"y":17649.853518086682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.candle\"\n}","project":"Superalgos","id":"cae15eaa-dfb3-4902-9774-9600c927be8e","savedPayload":{"position":{"x":11628.183890281001,"y":16996.94499302398},"targetPosition":{"x":12029.136826165766,"y":17201.240717906774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.candle\"\n}","project":"Superalgos","id":"9bdb4209-c77d-4030-89c7-a16239440b9d","savedPayload":{"position":{"x":11736.885204417184,"y":16859.05803338676},"targetPosition":{"x":12029.136826165766,"y":17201.240717906774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Open","config":"{\n \"codeName\": \"open\",\n \"isString\": false\n}","project":"Superalgos","id":"861487fa-24e5-4c90-8c78-380c6c753819","savedPayload":{"position":{"x":11890.07917869704,"y":16773.265285573954},"targetPosition":{"x":12029.136826165766,"y":17201.240717906774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Close","config":"{\n \"codeName\": \"close\",\n \"isString\": false\n}","project":"Superalgos","id":"9eca0174-28ee-45cb-9b28-8551bd3acdaa","savedPayload":{"position":{"x":12064.443419243296,"y":16752.627917726866},"targetPosition":{"x":12029.136826165766,"y":17201.240717906774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Min","config":"{\n \"codeName\": \"min\",\n \"isString\": false\n}","project":"Superalgos","id":"0daea61a-b1bf-4b32-8c06-feb717d7071d","savedPayload":{"position":{"x":12233.432551048561,"y":16800.28778202201},"targetPosition":{"x":12029.136826165766,"y":17201.240717906774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Max","config":"{\n \"codeName\": \"max\",\n \"isString\": false\n}","project":"Superalgos","id":"a95b8052-58cb-4fd3-b0bf-a467fdde115c","savedPayload":{"position":{"x":12371.31951068578,"y":16908.98909615819},"targetPosition":{"x":12029.136826165766,"y":17201.240717906774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Index","config":"{ \n\"codeName\": \"index\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"25869b0f-2505-4ee6-aec1-2614f4945987","savedPayload":{"position":{"x":12457.112258498586,"y":17062.183070438048},"targetPosition":{"x":12029.136826165766,"y":17201.240717906774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"71905fc5-d23b-4d79-ba08-e692ae3128a0","savedPayload":{"position":{"x":12029.136826165766,"y":17201.240717906774},"targetPosition":{"x":11993.830233088236,"y":17649.853518086682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"44e79d66-03d4-4893-817c-f46e8c20a0f9","savedPayload":{"position":{"x":12447.919069454561,"y":17716.089498980185},"targetPosition":{"x":12243.623344571766,"y":18117.04243486495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Candle","id":"867dbe76-ca02-45a3-88c3-afc055c1234a"}}},{"type":"Product Definition","name":"Distance To Learning Event","config":"{\n \"codeName\": \"Distance-To-Learning-Event\",\n \"singularVariableName\": \"distanceToLearningEvent\",\n \"pluralVariableName\": \"distanceToLearningEvent\",\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.distanceToLearningEvent\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0d746a41-6726-41fd-9312-862b6835b8ba","savedPayload":{"position":{"x":12185.44514818922,"y":17416.4301758874},"targetPosition":{"x":12226.448141424953,"y":17637.66253008929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"53933157-c1f5-46ec-aaa4-9d247f99a6c5","savedPayload":{"position":{"x":12273.228271858949,"y":17417.57931992418},"targetPosition":{"x":12226.448141424953,"y":17637.66253008929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"6538eb24-b324-43d6-b8ba-e55e17e90807","savedPayload":{"position":{"x":12516.637541118658,"y":16818.192945029474},"targetPosition":{"x":12481.330948041128,"y":17266.80574520938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"fb0ec479-9326-4775-9ebc-856161041440","savedPayload":{"position":{"x":12887.494325998565,"y":17073.07575164565},"targetPosition":{"x":12481.330948041128,"y":17266.80574520938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ed203bbc-f675-47f0-a3b4-c0a4f331a503","savedPayload":{"position":{"x":12481.330948041128,"y":17266.80574520938},"targetPosition":{"x":12226.448141424953,"y":17637.66253008929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"4d91aaf1-0682-4479-b80b-adca5b416fd0","savedPayload":{"position":{"x":12621.025100147206,"y":17871.954869108187},"targetPosition":{"x":12243.623344571766,"y":18117.04243486495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Distance To Learning Event","id":"4495e33d-7fe3-4fb6-96ee-191d863e768d"}}},{"type":"Product Definition","name":"Current Episode","config":"{\n \"codeName\": \"Current-Episode\",\n \"singularVariableName\": \"currentEpisode\",\n \"pluralVariableName\": \"currentEpisodes\",\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode\",\n \"saveAtCycle\": \"Second\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"d3226ade-021e-4a24-bc2e-f1f6c812d951","savedPayload":{"position":{"x":13001.835167082558,"y":18236.137466917146},"targetPosition":{"x":12780.602812880668,"y":18277.140460152877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"7b64dca9-e495-4d53-b966-bdf1225a3d52","savedPayload":{"position":{"x":13000.686023045775,"y":18323.920590586873},"targetPosition":{"x":12780.602812880668,"y":18277.140460152877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"bfb5e7f5-0bdd-4bd2-b1bc-21794c3e067d","savedPayload":{"position":{"x":13493.642282280589,"y":18239.771645020468},"targetPosition":{"x":13151.459597760575,"y":18532.02326676905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"642cd87b-a5ab-43ef-bed4-ea83d979334d","savedPayload":{"position":{"x":13557.622975718012,"y":18338.29327320532},"targetPosition":{"x":13151.459597760575,"y":18532.02326676905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.candle\"\n}","project":"Superalgos","id":"af37749b-aa16-452c-b182-e85a55bc03b1","savedPayload":{"position":{"x":13593.924306164354,"y":18450.017280297583},"targetPosition":{"x":13151.459597760575,"y":18532.02326676905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.candle\"\n}","project":"Superalgos","id":"cf6efd97-3993-4d84-ab43-6f1d92639e97","savedPayload":{"position":{"x":13600.072397940483,"y":18567.32985984658},"targetPosition":{"x":13151.459597760575,"y":18532.02326676905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b77abc19-4786-49ee-87dd-5b7b62bda4b1","savedPayload":{"position":{"x":13575.648268752055,"y":18682.236353424247},"targetPosition":{"x":13151.459597760575,"y":18532.02326676905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"bf84a722-b80e-4df8-a985-fb7d00698045","savedPayload":{"position":{"x":13522.316382640482,"y":18786.906073385224},"targetPosition":{"x":13151.459597760575,"y":18532.02326676905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"9dd2d16c-b31a-45e4-968b-ee8d834cf603","savedPayload":{"position":{"x":13443.711219509158,"y":18874.205951289066},"targetPosition":{"x":13151.459597760575,"y":18532.02326676905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"e403eb56-5407-4d55-82b4-6092282ce211","savedPayload":{"position":{"x":13345.189591324308,"y":18938.186644726487},"targetPosition":{"x":13151.459597760575,"y":18532.02326676905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Cycle","config":"{ \n\"codeName\": \"cycle\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"c4059697-9213-4575-94b5-d7a0fa8f6b1d","savedPayload":{"position":{"x":13233.46558423204,"y":18974.48797517283},"targetPosition":{"x":13151.459597760575,"y":18532.02326676905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Head Of The Market","config":"{ \n\"codeName\": \"headOfTheMarket\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b54cfc30-0893-4014-abad-56816efc482d","savedPayload":{"position":{"x":13116.153004683045,"y":18980.63606694896},"targetPosition":{"x":13151.459597760575,"y":18532.02326676905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Process Date","config":"{ \n\"codeName\": \"processDate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"855cf89d-cf40-4af9-b07e-282aa069c746","savedPayload":{"position":{"x":13001.246511105379,"y":18956.21193776053},"targetPosition":{"x":13151.459597760575,"y":18532.02326676905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bfd06cb2-34d5-4805-80e8-8ede45d7eb83","savedPayload":{"position":{"x":13151.459597760575,"y":18532.02326676905},"targetPosition":{"x":12780.602812880668,"y":18277.140460152877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"6acf4f24-db31-4187-b3fc-ee3b38697206","savedPayload":{"position":{"x":12693.006635211324,"y":18093.491254555625},"targetPosition":{"x":12243.623344571766,"y":18117.04243486495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Episode","id":"74c7e9ac-b846-4336-aaf1-7ccc619f93ba"}}}],"productDefinitionFolders":[],"id":"c0f84917-7fae-468d-b96a-7a353de7763c","savedPayload":{"position":{"x":12178.385267157697,"y":18090.019938416895},"targetPosition":{"x":12039.327619688971,"y":18517.995370749715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Features","project":"Superalgos","products":[{"type":"Product Definition","name":"Features","config":"{\n \"codeName\": \"Features\",\n \"singularVariableName\": \"feature\",\n \"pluralVariableName\": \"features\",\n \"nodePath\": \"learningEngine.features.features\",\n \"nodePathType\": \"array\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-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/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n}","project":"Superalgos","id":"95cb434a-19d5-48ca-bc87-3c8019e79149","savedPayload":{"position":{"x":12885.005091687512,"y":17797.144606706817},"targetPosition":{"x":12767.442914626423,"y":17988.988643686487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"92a2b572-3425-4d5b-93c8-0b4a684f6919","savedPayload":{"position":{"x":12949.471738360786,"y":17856.73696192068},"targetPosition":{"x":12767.442914626423,"y":17988.988643686487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"66c751d2-4460-4599-9862-fe7203c2ccd1","savedPayload":{"position":{"x":13171.701614994692,"y":17891.934716554733},"targetPosition":{"x":12989.67279126033,"y":18024.18639832054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"948de706-cf53-49f6-9415-e0eff5c53731","savedPayload":{"position":{"x":13211.902667894235,"y":18059.384152954593},"targetPosition":{"x":12989.67279126033,"y":18024.18639832054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Feature Value","config":"{\n \"codeName\": \"featureValue\",\n \"isString\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"e7843ddd-f3de-477d-84ca-e401a462b69f","savedPayload":{"position":{"x":13121.924473026136,"y":18206.215222054903},"targetPosition":{"x":12989.67279126033,"y":18024.18639832054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"706230b2-1266-4d21-9bf0-4a0a4cb08648","savedPayload":{"position":{"x":12989.67279126033,"y":18024.18639832054},"targetPosition":{"x":12767.442914626423,"y":17988.988643686487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a42e93d0-69ee-4ac9-ae97-1e3d7c3158be","savedPayload":{"position":{"x":12767.442914626423,"y":17988.988643686487},"targetPosition":{"x":12403.385267157697,"y":18253.4920072181},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"v"},"referenceParent":{"type":"Plotter Module","name":"Features","id":"fa5cf396-f989-427a-97aa-369aedf3234d"}}}],"productDefinitionFolders":[],"id":"9c1850a8-4a4a-495d-b5a8-127c173f5e8a","savedPayload":{"position":{"x":12403.385267157697,"y":18253.4920072181},"targetPosition":{"x":12039.327619688971,"y":18517.995370749715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Labels","project":"Superalgos","products":[{"type":"Product Definition","name":"Labels","config":"{\n \"codeName\": \"Labels\",\n \"singularVariableName\": \"label\",\n \"pluralVariableName\": \"labels\",\n \"nodePath\": \"learningEngine.labels.labels\",\n \"nodePathType\": \"array\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-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/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n}","project":"Superalgos","id":"6c91e785-8c5e-4af5-9e81-90e0ee6c4116","savedPayload":{"position":{"x":13147.200514504011,"y":18431.89159846757},"targetPosition":{"x":12939.327619688971,"y":18517.995370749715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0e62efa2-6fac-40f4-a09c-306b4600ba4f","savedPayload":{"position":{"x":13164.327619688971,"y":18517.995370749715},"targetPosition":{"x":12939.327619688971,"y":18517.995370749715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"e1ff1426-01df-492b-a100-128ddeb8d255","savedPayload":{"position":{"x":13323.426645455944,"y":18677.094396516688},"targetPosition":{"x":13098.426645455944,"y":18677.094396516688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"23e790cc-908e-4a1c-9429-744f26a260b8","savedPayload":{"position":{"x":13257.525671222917,"y":18836.19342228366},"targetPosition":{"x":13098.426645455944,"y":18677.094396516688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Label Value","config":"{\n \"codeName\": \"labelValue\",\n \"isString\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"233082bb-139c-4877-8052-1f1deef15067","savedPayload":{"position":{"x":13098.426645455944,"y":18902.094396516688},"targetPosition":{"x":13098.426645455944,"y":18677.094396516688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa1126b6-533b-42e2-b1b3-684e7f99d888","savedPayload":{"position":{"x":13098.426645455944,"y":18677.094396516688},"targetPosition":{"x":12939.327619688971,"y":18517.995370749715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8a6ab3ed-6713-4466-a76e-fcceef59b26d","savedPayload":{"position":{"x":12939.327619688971,"y":18517.995370749715},"targetPosition":{"x":12489.327619688971,"y":18517.995370749715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"v"},"referenceParent":{"type":"Plotter Module","name":"Labels","id":"c608380b-4e7b-4237-8127-faf99edb27d7"}}}],"productDefinitionFolders":[],"id":"18d5d82a-0d84-4845-a8c5-de9ab1366dfc","savedPayload":{"position":{"x":12489.327619688971,"y":18517.995370749715},"targetPosition":{"x":12039.327619688971,"y":18517.995370749715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Predictions","project":"Superalgos","products":[{"type":"Product Definition","name":"Predictions","config":"{\n \"codeName\": \"Predictions\",\n \"singularVariableName\": \"prediction\",\n \"pluralVariableName\": \"predictions\",\n \"nodePath\": \"learningEngine.predictions.predictions\",\n \"nodePathType\": \"array\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-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/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n}","project":"Superalgos","id":"cb3aee40-6019-4f0b-8acc-6f384e414651","savedPayload":{"position":{"x":12986.2261467159,"y":19099.527304680523},"targetPosition":{"x":12767.442914626423,"y":19047.002097812943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"cbca15ec-5937-4dbb-9750-d851d120a658","savedPayload":{"position":{"x":12949.471738360786,"y":19179.25377957875},"targetPosition":{"x":12767.442914626423,"y":19047.002097812943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"b378851b-d440-45e9-9c4a-ca06f8a1f6e1","savedPayload":{"position":{"x":12984.669492994837,"y":19401.483656212655},"targetPosition":{"x":12802.640669260474,"y":19269.231974446848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"b2dda032-dbe3-4278-9dc5-fa5a73ed7641","savedPayload":{"position":{"x":12837.838423894525,"y":19491.461851080752},"targetPosition":{"x":12802.640669260474,"y":19269.231974446848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Prediction Value","config":"{\n \"codeName\": \"predictionValue\",\n \"isString\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"0adea742-370e-4dd2-9d11-007a4f4919cf","savedPayload":{"position":{"x":12670.388987494667,"y":19451.26079818121},"targetPosition":{"x":12802.640669260474,"y":19269.231974446848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1848d43b-53ab-436d-826f-458d02ed1291","savedPayload":{"position":{"x":12802.640669260474,"y":19269.231974446848},"targetPosition":{"x":12767.442914626423,"y":19047.002097812943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b2746119-b85f-4f32-8ac1-ddbf4a934373","savedPayload":{"position":{"x":12767.442914626423,"y":19047.002097812943},"targetPosition":{"x":12403.385267157697,"y":18782.49873428133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"v"},"referenceParent":{"type":"Plotter Module","name":"Predictions","id":"af455ab4-5064-4f50-96e4-4ecc4b06ef00"}}}],"productDefinitionFolders":[],"id":"b047fd17-a0f4-4eeb-8469-efe4b3afdcd9","savedPayload":{"position":{"x":12403.385267157697,"y":18782.49873428133},"targetPosition":{"x":12039.327619688971,"y":18517.995370749715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"608a3ab0-e1aa-470a-9142-eb2e92a2d284","savedPayload":{"position":{"x":12039.327619688971,"y":18517.995370749715},"targetPosition":{"x":11611.352187356151,"y":18657.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Learning System","project":"Superalgos","products":[{"type":"Product Definition","name":"Learning System Errors","config":"{\n \"codeName\": \"Learning-System-Errors\",\n \"singularVariableName\": \"learningSystemError\",\n \"pluralVariableName\": \"learningSystemErrors\",\n \"nodePath\": \"learningSystem\",\n \"propertyNameThatDefinesStatus\": \"errors\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"2a487ee8-0eb4-497f-84c9-f647b16dd17a","savedPayload":{"position":{"x":12356.356190088165,"y":18213.269786128963},"targetPosition":{"x":12303.830983220585,"y":18432.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"57d6ac5b-46a8-487d-88ac-48ddd012e842","savedPayload":{"position":{"x":12436.082664986392,"y":18250.024194484078},"targetPosition":{"x":12303.830983220585,"y":18432.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"f5042769-a963-4687-9c31-43621e0ab333","savedPayload":{"position":{"x":12548.200227067835,"y":18095.707609067875},"targetPosition":{"x":12495.675020200255,"y":18314.490841157352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"c9ba0794-54fc-4062-a416-660d8c8d14f6","savedPayload":{"position":{"x":12687.519057179925,"y":18196.928664096264},"targetPosition":{"x":12495.675020200255,"y":18314.490841157352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Errors","config":"{\n \"codeName\": \"errors\",\n \"isString\": false\n}","project":"Superalgos","id":"5ea2a845-fd76-4119-b9a8-c9a39bc1ce1c","savedPayload":{"position":{"x":12714.458252289733,"y":18367.016048024932},"targetPosition":{"x":12495.675020200255,"y":18314.490841157352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"47b842b7-958b-40b1-8f3e-266f55494eb1","savedPayload":{"position":{"x":12495.675020200255,"y":18314.490841157352},"targetPosition":{"x":12303.830983220585,"y":18432.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"abbfae5c-7a9b-412f-b9d4-4de62fcef1f0","savedPayload":{"position":{"x":12303.830983220583,"y":18432.05301821844},"targetPosition":{"x":12039.327619688971,"y":18796.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Errors","id":"0ebe46ec-88d8-4051-968f-2b96cb4b9f31"}}},{"type":"Product Definition","name":"Learning System Highlights","config":"{\n \"codeName\": \"Learning-System-Highlights\",\n \"singularVariableName\": \"learningSystemHighlight\",\n \"pluralVariableName\": \"learningSystemHighlights\",\n \"nodePath\": \"learningSystem\",\n \"propertyNameThatDefinesStatus\": \"highlights\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0f15bfca-8a05-4a4d-92b4-ba0c78d62dd1","savedPayload":{"position":{"x":12520.947444218786,"y":18339.763265175883},"targetPosition":{"x":12403.385267157697,"y":18531.607302155553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"4b724ede-ed95-4c87-b555-294511613b76","savedPayload":{"position":{"x":12585.41409089206,"y":18399.355620389746},"targetPosition":{"x":12403.385267157697,"y":18531.607302155553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"37610c20-88a3-4326-a6f1-9a8715777777","savedPayload":{"position":{"x":12739.730676308263,"y":18287.238058308303},"targetPosition":{"x":12622.168499247175,"y":18479.082095287973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"d6ee1af7-2c15-429c-8f68-36a638c18377","savedPayload":{"position":{"x":12840.951731336652,"y":18426.556888420393},"targetPosition":{"x":12622.168499247175,"y":18479.082095287973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Highlights","config":"{\n \"codeName\": \"highlights\",\n \"isString\": false\n}","project":"Superalgos","id":"ab3f38bb-a679-4476-81c4-cb4836c04a7d","savedPayload":{"position":{"x":12814.012536226845,"y":18596.64427234906},"targetPosition":{"x":12622.168499247175,"y":18479.082095287973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d09baaa4-a5bb-4a0a-903a-87244b39bc35","savedPayload":{"position":{"x":12622.168499247175,"y":18479.082095287973},"targetPosition":{"x":12403.385267157697,"y":18531.607302155553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"de09ef26-d9f3-4dc7-ab1d-e7c091a9233d","savedPayload":{"position":{"x":12403.385267157697,"y":18531.607302155553},"targetPosition":{"x":12039.327619688971,"y":18796.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Highlights","id":"e871938a-41c8-49ce-bed3-df2bbd44fde3"}}},{"type":"Product Definition","name":"Learning System Values","config":"{\n \"codeName\": \"Learning-System-Values\",\n \"singularVariableName\": \"learningSystemValue\",\n \"pluralVariableName\": \"learningSystemValues\",\n \"nodePath\": \"learningSystem\",\n \"propertyNameThatDefinesStatus\": \"values\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"d1702db2-e4e8-4e01-8a31-9e7b23cf944f","savedPayload":{"position":{"x":12638.394394281797,"y":18510.92720734415},"targetPosition":{"x":12467.30305202179,"y":18657.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"bdcf18f2-ab49-4b5c-8220-07e4d9a76880","savedPayload":{"position":{"x":12681.290768188199,"y":18587.524194484078},"targetPosition":{"x":12467.30305202179,"y":18657.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"fe0936f9-89f0-4039-ba93-22f19fbc9288","savedPayload":{"position":{"x":12862.70079437175,"y":18528.580503882917},"targetPosition":{"x":12691.609452111745,"y":18674.706314757208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"12eab8e6-527a-42ac-92b9-fbff54c680df","savedPayload":{"position":{"x":12915.915852201699,"y":18692.359611295975},"targetPosition":{"x":12691.609452111745,"y":18674.706314757208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Values","config":"{\n \"codeName\": \"values\",\n \"isString\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"a5e5c2bb-94e4-4c09-85d6-d3571db10690","savedPayload":{"position":{"x":12837.735262986036,"y":18845.797657017214},"targetPosition":{"x":12691.609452111745,"y":18674.706314757208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0456fb61-2d77-4d8c-9e79-3b5999f408b0","savedPayload":{"position":{"x":12691.609452111745,"y":18674.706314757208},"targetPosition":{"x":12467.30305202179,"y":18657.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"bf07c203-188a-4f50-9bdf-8ec84d617642","savedPayload":{"position":{"x":12467.30305202179,"y":18657.05301821844},"targetPosition":{"x":12039.327619688971,"y":18796.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Values","id":"da56e587-d6b5-484b-b802-dabd52f69849"}}},{"type":"Product Definition","name":"Learning System Status","config":"{\n \"codeName\": \"Learning-System-Status\",\n \"singularVariableName\": \"learningSystemState\",\n \"pluralVariableName\": \"learningSystemStatus\",\n \"nodePath\": \"learningSystem\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0e09e729-0b1d-411d-b7ed-c9b49979326c","savedPayload":{"position":{"x":12697.20051450401,"y":18710.00689340502},"targetPosition":{"x":12489.327619688971,"y":18796.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"3deef37c-60ad-4137-a5df-fbbf450a161e","savedPayload":{"position":{"x":12714.327619688971,"y":18796.110665687167},"targetPosition":{"x":12489.327619688971,"y":18796.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"cf10f62a-d5ed-492c-b71e-393c318ea36d","savedPayload":{"position":{"x":12905.073409319048,"y":18796.110665687167},"targetPosition":{"x":12697.20051450401,"y":18882.214437969313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"1f8aba25-f907-4538-8783-625eaf53c140","savedPayload":{"position":{"x":12905.073409319048,"y":18968.31821025146},"targetPosition":{"x":12697.20051450401,"y":18882.214437969313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{\n \"codeName\": \"status\",\n \"isString\": false\n}","project":"Superalgos","id":"7123a16b-ddeb-42ff-8cd8-e5570699407c","savedPayload":{"position":{"x":12783.304286786155,"y":19090.08733278435},"targetPosition":{"x":12697.20051450401,"y":18882.214437969313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4b023593-453f-4952-abf1-552f3c321859","savedPayload":{"position":{"x":12697.20051450401,"y":18882.214437969313},"targetPosition":{"x":12489.327619688971,"y":18796.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"547fbf31-e931-4c4b-8438-6b8746c4d247","savedPayload":{"position":{"x":12489.327619688971,"y":18796.110665687167},"targetPosition":{"x":12039.327619688971,"y":18796.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Status","id":"726a1c09-ce3d-4937-85f9-a2c900932818"}}},{"type":"Product Definition","name":"Learning System Progress","config":"{\n \"codeName\": \"Learning-System-Progress\",\n \"singularVariableName\": \"learningSystemProgress\",\n \"pluralVariableName\": \"learningSystemProgresses\",\n \"nodePath\": \"learningSystem\",\n \"propertyNameThatDefinesStatus\": \"progress\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"7d52a48e-8f44-485a-b898-1ecf3de2b642","savedPayload":{"position":{"x":12691.609452111745,"y":18917.515016617126},"targetPosition":{"x":12467.30305202179,"y":18935.168313155893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"308caaa5-5821-44a3-a971-119f5b5a2f3a","savedPayload":{"position":{"x":12681.290768188199,"y":19004.697136890256},"targetPosition":{"x":12467.30305202179,"y":18935.168313155893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"393722a2-4de0-4f53-90f0-10593e0b95be","savedPayload":{"position":{"x":12862.70079437175,"y":19063.640827491417},"targetPosition":{"x":12638.394394281797,"y":19081.294124030184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"0a92748d-d8f4-47f3-be30-d9b1de5dc640","savedPayload":{"position":{"x":12809.485736541803,"y":19227.419934904476},"targetPosition":{"x":12638.394394281797,"y":19081.294124030184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Progress","config":"{\n \"codeName\": \"progress\",\n \"isString\": false\n}","project":"Superalgos","id":"2732303d-919a-4b2b-bc19-241327c1cf14","savedPayload":{"position":{"x":12656.047690820564,"y":19305.60052412014},"targetPosition":{"x":12638.394394281797,"y":19081.294124030184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9b24398e-6f4d-44db-9f16-e795168a997b","savedPayload":{"position":{"x":12638.394394281797,"y":19081.294124030184},"targetPosition":{"x":12467.30305202179,"y":18935.168313155893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"2c73dc34-07b1-4eaa-9eac-7f8a913e54db","savedPayload":{"position":{"x":12467.30305202179,"y":18935.168313155893},"targetPosition":{"x":12039.327619688971,"y":18796.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Progress","id":"bddd3dbc-44ce-4974-8d27-475f3ff00a75"}}},{"type":"Product Definition","name":"Learning System Running","config":"{\n \"codeName\": \"Learning-System-Running\",\n \"singularVariableName\": \"learningSystemRun\",\n \"pluralVariableName\": \"learningSystemRunning\",\n \"nodePath\": \"learningSystem\",\n \"propertyNameThatDefinesStatus\": \"running\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"beaa91a9-b48f-4a2e-9326-ac1eaa76f7fc","savedPayload":{"position":{"x":12622.168499247175,"y":19113.13923608636},"targetPosition":{"x":12403.385267157697,"y":19060.61402921878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"704e2e55-c731-4405-a0ac-bd587a502b0f","savedPayload":{"position":{"x":12585.41409089206,"y":19192.865710984588},"targetPosition":{"x":12403.385267157697,"y":19060.61402921878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"85dc3af3-5400-4a06-a39b-b6417bf5bdfb","savedPayload":{"position":{"x":12739.730676308263,"y":19304.98327306603},"targetPosition":{"x":12520.947444218786,"y":19252.45806619845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"ac644b71-277f-47de-90f9-cc0924315b47","savedPayload":{"position":{"x":12638.509621279874,"y":19444.30210317812},"targetPosition":{"x":12520.947444218786,"y":19252.45806619845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Running","config":"{\n \"codeName\": \"running\",\n \"isString\": false\n}","project":"Superalgos","id":"35b77253-8b49-49ea-add7-784de0a1444b","savedPayload":{"position":{"x":12468.422237351206,"y":19471.24129828793},"targetPosition":{"x":12520.947444218786,"y":19252.45806619845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6a42af0b-f985-46e1-ae5a-0907ddd4dbc0","savedPayload":{"position":{"x":12520.947444218786,"y":19252.45806619845},"targetPosition":{"x":12403.385267157697,"y":19060.61402921878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"2af4d2f4-c0fa-4c9a-aa0b-689bbccb1048","savedPayload":{"position":{"x":12403.385267157697,"y":19060.61402921878},"targetPosition":{"x":12039.327619688971,"y":18796.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Running","id":"9767758e-51fa-4581-8575-a98b7d182644"}}},{"type":"Product Definition","name":"Learning System Announcements","config":"{\n \"codeName\": \"Learning-System-Announcements\",\n \"singularVariableName\": \"learningSystemAnnouncement\",\n \"pluralVariableName\": \"learningSystemAnnouncements\",\n \"nodePath\": \"learningSystem\",\n \"propertyNameThatDefinesStatus\": \"announcements\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"4da28d63-2f82-4bac-acaf-b55d96c67ace","savedPayload":{"position":{"x":12495.675020200255,"y":19277.73049021698},"targetPosition":{"x":12303.830983220585,"y":19160.168313155893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"56438754-6219-4a56-b281-4bbafb02f8d9","savedPayload":{"position":{"x":12436.082664986392,"y":19342.197136890256},"targetPosition":{"x":12303.830983220585,"y":19160.168313155893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"5bf30b0d-26fe-4fb5-9608-89105cbdb0f8","savedPayload":{"position":{"x":12548.200227067835,"y":19496.51372230646},"targetPosition":{"x":12356.356190088165,"y":19378.95154524537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.candle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"4afac23d-82d9-46bb-9cd7-a4f70cb7a92d","savedPayload":{"position":{"x":12408.881396955745,"y":19597.73477733485},"targetPosition":{"x":12356.356190088165,"y":19378.95154524537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Announcements","config":"{\n \"codeName\": \"announcements\",\n \"isString\": false\n}","project":"Superalgos","id":"9d9160a2-0f6e-4079-b2a7-ca8083e478a9","savedPayload":{"position":{"x":12238.794013027076,"y":19570.79558222504},"targetPosition":{"x":12356.356190088165,"y":19378.95154524537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b21d3090-33e1-428e-a24e-4ecbe6e2d554","savedPayload":{"position":{"x":12356.356190088165,"y":19378.95154524537},"targetPosition":{"x":12303.830983220585,"y":19160.168313155893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"3c5c38bf-827f-4448-8b2c-f24b97fcec96","savedPayload":{"position":{"x":12303.830983220583,"y":19160.168313155893},"targetPosition":{"x":12039.327619688971,"y":18796.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Announcements","id":"79fcb191-55c6-4a99-9688-be5950a71f78"}}},{"type":"Product Definition","name":"Learning System Warnings","config":"{\n \"codeName\": \"Learning-System-Warnings\",\n \"singularVariableName\": \"learningSystemWarning\",\n \"pluralVariableName\": \"learningSystemWarnings\",\n \"nodePath\": \"learningSystem\",\n \"propertyNameThatDefinesStatus\": \"warnings\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"3a3d51a9-6eb8-4267-a00b-07ab26516721","savedPayload":{"position":{"x":12324.511078031988,"y":19395.177440279993},"targetPosition":{"x":12178.385267157697,"y":19224.086098019987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"1bdb790b-6e98-4cbc-8463-036d7d342d12","savedPayload":{"position":{"x":12247.91409089206,"y":19438.073814186395},"targetPosition":{"x":12178.385267157697,"y":19224.086098019987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"991e75b8-3c7a-412d-bbe2-9c4481e5b7bc","savedPayload":{"position":{"x":12306.857781493221,"y":19619.483840369947},"targetPosition":{"x":12160.73197061893,"y":19448.39249810994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"3ded4031-586f-42c7-985d-9d3538f4c03f","savedPayload":{"position":{"x":12143.078674080163,"y":19672.698898199895},"targetPosition":{"x":12160.73197061893,"y":19448.39249810994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Warnings","config":"{\n \"codeName\": \"warnings\",\n \"isString\": false\n}","project":"Superalgos","id":"5c6b8cab-f143-452c-a73d-e09d1b5f8ea2","savedPayload":{"position":{"x":11989.640628358924,"y":19594.518308984232},"targetPosition":{"x":12160.73197061893,"y":19448.39249810994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4b6ad228-f28f-4846-b13d-1d9583efbef7","savedPayload":{"position":{"x":12160.73197061893,"y":19448.39249810994},"targetPosition":{"x":12178.385267157697,"y":19224.086098019987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"6e56cf66-5a39-4723-b708-2cc3b58a28f9","savedPayload":{"position":{"x":12178.385267157697,"y":19224.086098019987},"targetPosition":{"x":12039.327619688971,"y":18796.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Warnings","id":"ba37a274-dd77-46f1-b173-6a2241f6840e"}}},{"type":"Product Definition","name":"Learning System Infos","config":"{\n \"codeName\": \"Learning-System-Infos\",\n \"singularVariableName\": \"learningSystemInfo\",\n \"pluralVariableName\": \"learningSystemInfos\",\n \"nodePath\": \"learningSystem\",\n \"propertyNameThatDefinesStatus\": \"infos\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"ec478333-805d-4c59-a550-3a51a9ebdc5b","savedPayload":{"position":{"x":12125.431391971117,"y":19453.983560502205},"targetPosition":{"x":12039.327619688971,"y":19246.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"6c89f99e-279f-4d61-a03d-59667ac1614f","savedPayload":{"position":{"x":12039.327619688971,"y":19471.110665687167},"targetPosition":{"x":12039.327619688971,"y":19246.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"a53e1c42-6fde-4831-ae76-7968cfdef2fe","savedPayload":{"position":{"x":12039.327619688971,"y":19661.856455317244},"targetPosition":{"x":11953.223847406825,"y":19453.983560502205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"35e67fd8-1ceb-4c08-9945-953f4882bc5c","savedPayload":{"position":{"x":11867.12007512468,"y":19661.856455317244},"targetPosition":{"x":11953.223847406825,"y":19453.983560502205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Infos","config":"{\n \"codeName\": \"infos\",\n \"isString\": false\n}","project":"Superalgos","id":"727a316b-5528-4656-8ba8-9e521bc6810a","savedPayload":{"position":{"x":11745.350952591787,"y":19540.08733278435},"targetPosition":{"x":11953.223847406825,"y":19453.983560502205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b22b6a89-4659-42fc-99a4-5abd65502d34","savedPayload":{"position":{"x":11953.223847406825,"y":19453.983560502205},"targetPosition":{"x":12039.327619688971,"y":19246.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"9a158859-63ce-4325-920e-330097af89c0","savedPayload":{"position":{"x":12039.327619688971,"y":19246.110665687167},"targetPosition":{"x":12039.327619688971,"y":18796.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Infos","id":"64656680-9d40-4e0b-afe7-d84d4332261c"}}}],"productDefinitionFolders":[],"id":"62b002cf-fbf0-4b19-95c2-aa20d1d7a370","savedPayload":{"position":{"x":12039.327619688971,"y":18796.110665687167},"targetPosition":{"x":11611.352187356151,"y":18657.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Simulation Objects","project":"Superalgos","products":[{"type":"Product Definition","name":"Episodes","config":"{\n \"codeName\": \"Episode-Objects\",\n \"singularVariableName\": \"episodeObject\",\n \"pluralVariableName\": \"episodeObjects\",\n \"nodePath\": \"learningEngine.learningCurrent.learningEpisode\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"6fad647f-d440-4423-ad34-f21495863be4","savedPayload":{"position":{"x":12511.873904946435,"y":19210.031968440548},"targetPosition":{"x":12286.951006826934,"y":19204.142155071277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a9a9f046-27e3-4899-a351-55351cf3b1a1","savedPayload":{"position":{"x":12492.49873479652,"y":19295.657899763333},"targetPosition":{"x":12286.951006826934,"y":19204.142155071277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"ace06ac4-8d8a-47d9-8e73-c56332a4aeb9","savedPayload":{"position":{"x":13731.824191897924,"y":19498.10492694961},"targetPosition":{"x":12906.470124951313,"y":19856.979088982334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"14a33d30-21c2-4af9-90ed-2737ee9dc93d","savedPayload":{"position":{"x":13804.791443530992,"y":19802.03540340096},"targetPosition":{"x":12906.470124951313,"y":19856.979088982334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"12649a72-66ec-4eed-b553-531e0f212696","savedPayload":{"position":{"x":13769.407886332687,"y":20112.592899215866},"targetPosition":{"x":12906.470124951313,"y":19856.979088982334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"865f631c-f841-4dee-899a-d86ae5ece15f","savedPayload":{"position":{"x":13629.941299506809,"y":20392.31959705854},"targetPosition":{"x":12906.470124951313,"y":19856.979088982334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b6dcc9c3-8aef-4b00-b8d6-a231623e22f6","savedPayload":{"position":{"x":13403.213411732166,"y":20607.476328842786},"targetPosition":{"x":12906.470124951313,"y":19856.979088982334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"666c82e6-9081-4544-b2ea-b506770d42fb","savedPayload":{"position":{"x":13116.570952421627,"y":20732.112017340245},"targetPosition":{"x":12906.470124951313,"y":19856.979088982334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"dd673337-26f2-405c-8c0b-4cb67c2a664a","savedPayload":{"position":{"x":12804.587232560196,"y":20751.193759091264},"targetPosition":{"x":12906.470124951313,"y":19856.979088982334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"90bd1d5e-1085-42c6-8d58-90f912696312","savedPayload":{"position":{"x":12504.892093152484,"y":20662.42001442416},"targetPosition":{"x":12906.470124951313,"y":19856.979088982334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"38202a05-9d7d-4da7-88af-da338eef69de","savedPayload":{"position":{"x":12906.470124951313,"y":19856.979088982334},"targetPosition":{"x":12286.951006826934,"y":19204.142155071277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"60a5f962-1b8f-4260-91c6-e05209a2f150","savedPayload":{"position":{"x":12140.358914419376,"y":19385.168313155893},"targetPosition":{"x":11875.855550887763,"y":19021.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Episode Objects","id":"67ef0a2d-8f83-4507-b2c7-54f026b23034"}}}],"productDefinitionFolders":[],"id":"bd3c0efa-8113-4636-9e14-f63f22f9d753","savedPayload":{"position":{"x":11875.855550887763,"y":19021.110665687167},"targetPosition":{"x":11611.352187356151,"y":18657.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"77e3ffe9-0c82-4632-85ab-7ec6b74791dc","savedPayload":{"position":{"x":11611.352187356151,"y":18657.05301821844},"targetPosition":{"x":11161.352187356151,"y":18657.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}}],"plotters":[{"type":"Plotter","name":"Learning Engine","config":"{ \n\"codeName\": \"Learning-Engine\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Learning Episode Counters","config":"{\n \"codeName\": \"Learning-Episode-Counters\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Learning Episode Counters","config":"{ \n \"codeName\": \"Learning-Episode-Counters\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"48c7dadc-a208-48da-8e23-2f0b8ff0a8ac","savedPayload":{"position":{"x":12084.688367353161,"y":18944.399154348943},"targetPosition":{"x":11937.923699815583,"y":19114.94279205667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5876f3e6-ab1e-4c23-a773-74e10e9bad28","savedPayload":{"position":{"x":11937.923699815583,"y":19114.94279205667},"targetPosition":{"x":11791.159032278005,"y":19285.486429764398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hits","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hits","project":"Superalgos","id":"e96035c8-290e-4f6d-8203-6062a31ada93","savedPayload":{"position":{"x":12239.900741009535,"y":19251.85788765051},"targetPosition":{"x":12015.52988664377,"y":19268.672158707453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b6f33707-a4b1-4e1e-a33a-fa94bfe837e7","savedPayload":{"position":{"x":12015.52988664377,"y":19268.672158707453},"targetPosition":{"x":11791.159032278005,"y":19285.486429764398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fails","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.fails","project":"Superalgos","id":"414f3c3d-624b-4ad7-8dca-2618e835bdc6","savedPayload":{"position":{"x":12132.24630769346,"y":19579.01576483955},"targetPosition":{"x":11961.702669985732,"y":19432.251097301974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7877cfac-08ed-4132-989b-9b3c05d12fd1","savedPayload":{"position":{"x":11961.702669985732,"y":19432.251097301974},"targetPosition":{"x":11791.159032278005,"y":19285.486429764398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e24d28b3-e035-4f39-aa88-b22cfafeb1b7","savedPayload":{"position":{"x":11791.159032278005,"y":19285.486429764398},"targetPosition":{"x":11566.78817791224,"y":19302.300700821343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"ce4f9532-2bc2-4621-ab95-72e36670b42f","savedPayload":{"position":{"x":11630.161684444398,"y":19395.25256293189},"targetPosition":{"x":11566.78817791224,"y":19302.300700821343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"788bfd62-11af-4bbe-96f4-d2ba930334a2","savedPayload":{"position":{"x":11584.21386670981,"y":19260.962082714992},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Learning Episode Statistics","config":"{ \n\"codeName\": \"Learning-Episode-Statistics\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Learning Episode Statistics","config":"{ \n \"codeName\": \"Learning-Episode-Statistics\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"277485fd-1224-44b4-9c74-056670008da7","savedPayload":{"position":{"x":12297.350701877678,"y":18516.766191637038},"targetPosition":{"x":12215.14897139524,"y":18726.212785081985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c15f5fb5-c33f-42e0-b199-1be374b721e1","savedPayload":{"position":{"x":12215.14897139524,"y":18726.212785081985},"targetPosition":{"x":12132.947240912801,"y":18935.659378526932},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Ratio","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitRatio","project":"Superalgos","id":"9011f392-a4b5-4de7-8970-3b4b324b1edb","savedPayload":{"position":{"x":12545.400256054292,"y":18755.70796758305},"targetPosition":{"x":12339.173748483547,"y":18845.68367305499},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"651a608a-9cb6-456a-b136-de7fec4c988a","savedPayload":{"position":{"x":12339.173748483547,"y":18845.68367305499},"targetPosition":{"x":12132.947240912801,"y":18935.659378526932},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFail","project":"Superalgos","id":"1ab21d8a-3a1e-40f2-8b2c-0e6a22e9d38b","savedPayload":{"position":{"x":12551.840427802692,"y":19100.062839491813},"targetPosition":{"x":12342.393834357747,"y":19017.861109009373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"250bdaa3-a022-4f20-bce8-ae0dfc53bcf4","savedPayload":{"position":{"x":12342.393834357747,"y":19017.861109009373},"targetPosition":{"x":12132.947240912801,"y":18935.659378526932},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5b295fb8-10d6-4f29-9dfd-9e3d1cccc887","savedPayload":{"position":{"x":12132.947240912801,"y":18935.659378526932},"targetPosition":{"x":11926.720733342056,"y":19025.635083998874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"a0905dc2-58ed-42bd-b7e3-7e4e06f96601","savedPayload":{"position":{"x":12017.237983565807,"y":19092.43985487589},"targetPosition":{"x":11926.720733342056,"y":19025.635083998874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"59f91a2a-a1ba-4414-a9a2-ea1c05ba7887","savedPayload":{"position":{"x":11506.072186759691,"y":19396.307442577385},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Candle","config":"{ \n\"codeName\": \"Current-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"f3929cc8-9c0a-481f-921b-6ff9c2c66da9","savedPayload":{"position":{"x":11442.602187356151,"y":19594.19230784719},"targetPosition":{"x":11386.352187356151,"y":19496.76444992144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"867dbe76-ca02-45a3-88c3-afc055c1234a","savedPayload":{"position":{"x":11386.352187356151,"y":19496.76444992144},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Distance To Learning Event","config":"{ \n\"codeName\": \"Distance-To-Learning-Event\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"2eec9ac9-49eb-4c24-8115-3265706b24cd","savedPayload":{"position":{"x":11259.029287293799,"y":19661.00737928781},"targetPosition":{"x":11239.49386730627,"y":19550.216507073936},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"4495e33d-7fe3-4fb6-96ee-191d863e768d","savedPayload":{"position":{"x":11239.49386730627,"y":19550.216507073936},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Episode","config":"{ \n\"codeName\": \"Current-Position\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"2421954e-3258-4064-a4b0-24f90fc6f77e","savedPayload":{"position":{"x":11063.675087418504,"y":19661.00737928781},"targetPosition":{"x":11083.210507406033,"y":19550.216507073936},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"74c7e9ac-b846-4336-aaf1-7ccc619f93ba","savedPayload":{"position":{"x":11083.210507406033,"y":19550.216507073936},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Features","config":"{\n \"codeName\": \"Features\",\n \"icon\": \"oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.featureValue","project":"Superalgos","id":"3fe9e2a5-fb78-46da-b67f-36383cf6de73","savedPayload":{"position":{"x":11588.352120101274,"y":19989.66535689959},"targetPosition":{"x":11371.018809186233,"y":19931.43107175152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"370b3386-2636-41c7-a81e-0cfe6f0a14a5","savedPayload":{"position":{"x":11371.018809186233,"y":19931.43107175152},"targetPosition":{"x":11153.685498271192,"y":19873.196786603454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.featureValue","project":"Superalgos","id":"d187815b-8f5f-4523-a68f-2220583c392f","savedPayload":{"position":{"x":11270.154068567328,"y":20307.863408433535},"targetPosition":{"x":11211.91978341926,"y":20090.530097518495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3bb6eeb0-4ba8-43a7-aec1-dfc1a1306fda","savedPayload":{"position":{"x":11211.91978341926,"y":20090.530097518495},"targetPosition":{"x":11153.685498271192,"y":19873.196786603454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"969ba0c1-7c44-421f-8cfa-d90d66a6ce97","savedPayload":{"position":{"x":11153.685498271192,"y":19873.196786603454},"targetPosition":{"x":10994.58647250422,"y":19714.09776083648},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"New Polygon","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.featureValue !== 0","project":"Superalgos","id":"93419c4f-d8b8-43e5-a0aa-eb74ac51bef5","savedPayload":{"position":{"x":11077.949275342366,"y":20106.28891307934},"targetPosition":{"x":10936.352187356151,"y":19931.43107175152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"lineWidth\": 1,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"d48f806b-b507-4485-8ade-e6af085724b0","savedPayload":{"position":{"x":10947.473578057778,"y":20143.63984788687},"targetPosition":{"x":10942.239982433483,"y":20043.77689441141},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"0bda1c3d-45ac-47e8-8221-90b02a00d928","savedPayload":{"position":{"x":10942.239982433483,"y":20043.77689441141},"targetPosition":{"x":10936.352187356151,"y":19931.43107175152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"0e61f5c7-03b9-45e9-b25c-3ef099dbe25c","savedPayload":{"position":{"x":10813.80840447777,"y":20120.13194953924},"targetPosition":{"x":10936.352187356151,"y":19931.43107175152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"370b3386-2636-41c7-a81e-0cfe6f0a14a5"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"80c0b9a4-4d2b-4455-939e-b90d921e3fbe","savedPayload":{"position":{"x":10726.29659139428,"y":20012.063860399216},"targetPosition":{"x":10936.352187356151,"y":19931.43107175152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"3bb6eeb0-4ba8-43a7-aec1-dfc1a1306fda"}}}],"id":"240092dc-9ea0-4f20-9235-776b3f7945f6","savedPayload":{"position":{"x":10936.352187356151,"y":19931.43107175152},"targetPosition":{"x":10994.58647250422,"y":19714.09776083648},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"c79c9ef5-ea47-4e79-afc7-094eec213f75","savedPayload":{"position":{"x":10994.58647250422,"y":19714.09776083648},"targetPosition":{"x":10936.352187356151,"y":19496.76444992144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Feature Values","config":"{\n \"codeName\": \"Features\",\n \"isLegacy\": false\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Feature Value #1","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"let index = 0\nif (recordSet.get(index) !== undefined) {\nrecordSet.get(index).featureValue\n} else { 0 }","project":"Superalgos","id":"2a1947d9-fba0-4a8b-a566-0a89eb5d3228","savedPayload":{"position":{"x":11048.852187356151,"y":20081.33159747594},"targetPosition":{"x":10936.352187356151,"y":19886.47588162444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7e472aba-8f58-465c-946a-3040b22f0c6f","savedPayload":{"position":{"x":10936.352187356151,"y":19886.47588162444},"targetPosition":{"x":10823.852187356151,"y":19691.62016577294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Feature Value #2","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"let index = 1\nif (recordSet.get(index) !== undefined) {\nrecordSet.get(index).featureValue\n} else { 0 }","project":"Superalgos","id":"2d1e8bbb-c5ce-498e-aeb3-f01c2ce19b6e","savedPayload":{"position":{"x":10823.852187356151,"y":20141.62016577294},"targetPosition":{"x":10823.852187356151,"y":19916.62016577294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e3646754-a927-4dcd-b8c3-5621c129330d","savedPayload":{"position":{"x":10823.852187356151,"y":19916.62016577294},"targetPosition":{"x":10823.852187356151,"y":19691.62016577294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Feature Value #3","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"let index = 2\nif (recordSet.get(index) !== undefined) {\nrecordSet.get(index).featureValue\n} else { 0 }","project":"Superalgos","id":"11f1f61e-71b9-46c0-b293-5db8344dee8e","savedPayload":{"position":{"x":10598.852187356151,"y":20081.33159747594},"targetPosition":{"x":10711.352187356151,"y":19886.47588162444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f92f8211-4c24-421b-bdf1-6b39c7e792da","savedPayload":{"position":{"x":10711.352187356151,"y":19886.47588162444},"targetPosition":{"x":10823.852187356151,"y":19691.62016577294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Feature Value #4","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"let index = 3\nif (recordSet.get(index) !== undefined) {\nrecordSet.get(index).featureValue\n} else { 0 }","project":"Superalgos","id":"80b1192f-ed93-4b19-a01b-7d78e4280f01","savedPayload":{"position":{"x":10434.140755653152,"y":19916.62016577294},"targetPosition":{"x":10628.996471504652,"y":19804.12016577294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0a9d39b1-6767-4e9c-aace-dc40dd1baf9a","savedPayload":{"position":{"x":10628.996471504652,"y":19804.12016577294},"targetPosition":{"x":10823.852187356151,"y":19691.62016577294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Feature Value #5","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"let index = 4\nif (recordSet.get(index) !== undefined) {\nrecordSet.get(index).featureValue\n} else { 0 }","project":"Superalgos","id":"d333a5f9-0a13-4b2f-86d6-7d476f41a9d6","savedPayload":{"position":{"x":10373.852187356151,"y":19691.62016577294},"targetPosition":{"x":10598.852187356151,"y":19691.62016577294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"18f7a85d-868a-4d61-8170-bebb0c473a1f","savedPayload":{"position":{"x":10598.852187356151,"y":19691.62016577294},"targetPosition":{"x":10823.852187356151,"y":19691.62016577294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"74bd2915-3677-4761-9e77-b6d2dc170b77","savedPayload":{"position":{"x":10823.852187356151,"y":19691.62016577294},"targetPosition":{"x":10936.352187356151,"y":19496.76444992144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"a38345df-12a8-4e2b-b866-498b3893cf96","savedPayload":{"position":{"x":10719.01887644111,"y":19554.99873506951},"targetPosition":{"x":10936.352187356151,"y":19496.76444992144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fa5cf396-f989-427a-97aa-369aedf3234d","savedPayload":{"position":{"x":10936.352187356151,"y":19496.76444992144},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Labels","config":"{\n \"codeName\": \"Labels\",\n \"icon\": \"oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.labelValue","project":"Superalgos","id":"b8cc53a9-a72e-4820-a2c4-3c32443c4804","savedPayload":{"position":{"x":11260.729674656093,"y":20082.479898089245},"targetPosition":{"x":11076.42046469107,"y":19953.42519991026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"896a16dd-05f4-4e5a-a47b-86aed49f627a","savedPayload":{"position":{"x":11076.42046469107,"y":19953.42519991026},"targetPosition":{"x":10892.111254726045,"y":19824.370501731275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.labelValue","project":"Superalgos","id":"2bef37e0-158e-4810-8990-9e564a3290b3","savedPayload":{"position":{"x":10852.891170489598,"y":20272.65811587256},"targetPosition":{"x":10872.501212607822,"y":20048.514308801918},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f3a237b5-ead2-4724-9d53-049b404bb7b9","savedPayload":{"position":{"x":10872.501212607822,"y":20048.514308801918},"targetPosition":{"x":10892.111254726045,"y":19824.370501731275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8b3c6128-455a-4b99-89f8-648b0b56f0ea","savedPayload":{"position":{"x":10892.111254726045,"y":19824.370501731275},"targetPosition":{"x":10797.022145834388,"y":19620.451249648027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"New Polygon","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.labelValue !== 0","project":"Superalgos","id":"4a121eee-d26b-4383-9a11-c04eb13de258","savedPayload":{"position":{"x":10741.220282408263,"y":20017.5021391229},"targetPosition":{"x":10667.967447655403,"y":19804.76045961305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"lineWidth\": 1,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"0e82f7d3-a4a2-4c48-9baa-f9b580602a0a","savedPayload":{"position":{"x":10605.838460401821,"y":20007.975220255197},"targetPosition":{"x":10635.075630874095,"y":19912.344744658894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"00e57d60-6036-4726-a874-0a7c0355c957","savedPayload":{"position":{"x":10635.075630874095,"y":19912.344744658894},"targetPosition":{"x":10667.967447655403,"y":19804.76045961305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"c75e2e93-69f8-4f92-81ce-ae970a0d328d","savedPayload":{"position":{"x":10488.274457894762,"y":19940.16883982226},"targetPosition":{"x":10667.967447655403,"y":19804.76045961305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"896a16dd-05f4-4e5a-a47b-86aed49f627a"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"f6642541-9a4b-4173-b7ab-25bfde56ce0d","savedPayload":{"position":{"x":10443.001716245215,"y":19808.68725106144},"targetPosition":{"x":10667.967447655403,"y":19804.76045961305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"f3a237b5-ead2-4724-9d53-049b404bb7b9"}}}],"id":"7e28ca42-e66e-4ab3-9347-39a61fd44fd2","savedPayload":{"position":{"x":10667.967447655403,"y":19804.76045961305},"targetPosition":{"x":10797.022145834388,"y":19620.451249648027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"3a8c7e3b-de8a-474e-bafa-13b0df90a80e","savedPayload":{"position":{"x":10797.022145834388,"y":19620.451249648027},"targetPosition":{"x":10816.632187952611,"y":19396.307442577385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Label Values","config":"{\n \"codeName\": \"Labels\",\n \"isLegacy\": false\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Label Value #1","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"let index = 0\nif (recordSet.get(index) !== undefined) {\nrecordSet.get(index).labelValue\n} else { 0 }","project":"Superalgos","id":"7e7a3fd4-c2ca-4908-b0cc-198b47e00b83","savedPayload":{"position":{"x":10722.413868200962,"y":19984.098143612347},"targetPosition":{"x":10683.343028225901,"y":19762.516399184602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"35643ed2-681c-435b-b3f3-c5b752e7a3e0","savedPayload":{"position":{"x":10683.343028225901,"y":19762.516399184602},"targetPosition":{"x":10644.272188250841,"y":19540.934654756857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Label Value #2","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"let index = 1\nif (recordSet.get(index) !== undefined) {\nrecordSet.get(index).labelValue\n} else { 0 }","project":"Superalgos","id":"257ff0e1-0020-4123-83fb-f7869771437e","savedPayload":{"position":{"x":10490.36312375429,"y":19963.796334110513},"targetPosition":{"x":10567.317656002566,"y":19752.365494433685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c8ca76ce-de3c-47de-bc64-df8336597668","savedPayload":{"position":{"x":10567.317656002566,"y":19752.365494433685},"targetPosition":{"x":10644.272188250841,"y":19540.934654756857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Label Value #3","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"let index = 2\nif (recordSet.get(index) !== undefined) {\nrecordSet.get(index).labelValue\n} else { 0 }","project":"Superalgos","id":"48fb7dfd-2cc5-45b3-965b-2c21b9d2c8ce","savedPayload":{"position":{"x":10299.552188847301,"y":19830.1890791158},"targetPosition":{"x":10471.912188549071,"y":19685.56186693633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5244ff66-a3ca-44af-a765-3dfcb8f4b3a6","savedPayload":{"position":{"x":10471.912188549071,"y":19685.56186693633},"targetPosition":{"x":10644.272188250841,"y":19540.934654756857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Label Value #4","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"let index = 3\nif (recordSet.get(index) !== undefined) {\nrecordSet.get(index).labelValue\n} else { 0 }","project":"Superalgos","id":"f28cb359-6fc2-4bf9-acfc-22fc0709d8f1","savedPayload":{"position":{"x":10201.108699395347,"y":19619.076334706973},"targetPosition":{"x":10422.690443823094,"y":19580.005494731915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fb488988-dea3-4501-a6fb-bf1b1e527b33","savedPayload":{"position":{"x":10422.690443823094,"y":19580.005494731915},"targetPosition":{"x":10644.272188250841,"y":19540.934654756857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Label Value #5","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"let index = 4\nif (recordSet.get(index) !== undefined) {\nrecordSet.get(index).labelValue\n} else { 0 }","project":"Superalgos","id":"4882434a-3e96-41fa-b509-f0e5aad5d5b9","savedPayload":{"position":{"x":10221.410508897181,"y":19387.025590260302},"targetPosition":{"x":10432.841348574011,"y":19463.98012250858},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4b49e831-cbe9-46f4-b20e-5b42e3a9cf61","savedPayload":{"position":{"x":10432.841348574011,"y":19463.98012250858},"targetPosition":{"x":10644.272188250841,"y":19540.934654756857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e05d315c-f6e6-4d02-9e45-d09bc19786c8","savedPayload":{"position":{"x":10644.272188250841,"y":19540.934654756857},"targetPosition":{"x":10816.632187952611,"y":19396.307442577385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"d00933b3-6f69-42fb-ba37-35ae41489a6b","savedPayload":{"position":{"x":10592.488380881969,"y":19376.69740045916},"targetPosition":{"x":10816.632187952611,"y":19396.307442577385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c608380b-4e7b-4237-8127-faf99edb27d7","savedPayload":{"position":{"x":10816.632187952611,"y":19396.307442577385},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Predictions","config":"{\n \"codeName\": \"Predictions\",\n \"icon\": \"oscillator\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.predictionValue","project":"Superalgos","id":"0e3a748e-fddb-4572-89c4-40f6845315ef","savedPayload":{"position":{"x":10921.120837587028,"y":20057.64356179893},"targetPosition":{"x":10792.066139408043,"y":19873.334351833906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"85f79fcd-e271-4414-a4e1-ae6d69f94fa0","savedPayload":{"position":{"x":10792.066139408043,"y":19873.334351833906},"targetPosition":{"x":10663.011441229059,"y":19689.025141868882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.predictionValue","project":"Superalgos","id":"e5ab42f1-3d05-44ce-9c62-5d46d2a1b10d","savedPayload":{"position":{"x":10472.833223445743,"y":20096.863646035377},"targetPosition":{"x":10567.9223323374,"y":19892.94439395213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"532186b9-403c-496d-8f57-a132c6190541","savedPayload":{"position":{"x":10567.9223323374,"y":19892.94439395213},"targetPosition":{"x":10663.011441229059,"y":19689.025141868882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e333a7e0-7870-48b8-9002-8524b066a311","savedPayload":{"position":{"x":10663.011441229059,"y":19689.025141868882},"targetPosition":{"x":10643.401399110835,"y":19464.88133479824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"New Polygon","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.predictionValue !== 0","project":"Superalgos","id":"feb010d9-51d8-4f63-8282-13fbd754f5c0","savedPayload":{"position":{"x":10455.165397697423,"y":19818.901764387414},"targetPosition":{"x":10459.092189145811,"y":19593.936032977224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.2,\n \"lineWidth\": 1,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","project":"Superalgos","id":"6f9591f6-7820-4de9-be19-a239f7ba11bb","savedPayload":{"position":{"x":10271.024994410796,"y":19843.509629867},"targetPosition":{"x":10331.206496726001,"y":19763.64607886227},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d2c8a1c2-da3c-463f-b169-831032fa3032","savedPayload":{"position":{"x":10331.206496726001,"y":19763.64607886227},"targetPosition":{"x":10391.387999041206,"y":19683.782527857544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"85838229-512b-4f0b-b751-20d6631cac61","savedPayload":{"position":{"x":10391.387999041206,"y":19683.782527857544},"targetPosition":{"x":10459.092189145811,"y":19593.936032977224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"b94938cf-06e8-404c-b7e7-0396b50f1a9c","savedPayload":{"position":{"x":10243.923619054129,"y":19659.71966653984},"targetPosition":{"x":10459.092189145811,"y":19593.936032977224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"85f79fcd-e271-4414-a4e1-ae6d69f94fa0"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"b711ceff-1902-427c-8668-ef6f4bdc1fe4","savedPayload":{"position":{"x":10246.350509635964,"y":19520.683198224364},"targetPosition":{"x":10459.092189145811,"y":19593.936032977224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"532186b9-403c-496d-8f57-a132c6190541"}}}],"id":"88348152-cb65-4919-b845-47a4658bf564","savedPayload":{"position":{"x":10459.092189145811,"y":19593.936032977224},"targetPosition":{"x":10643.401399110835,"y":19464.88133479824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"54ee3a16-5138-41b8-9a05-d31aa6021c44","savedPayload":{"position":{"x":10643.401399110835,"y":19464.88133479824},"targetPosition":{"x":10738.490508002493,"y":19260.962082714992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Prediction Values","config":"{\n \"codeName\": \"Predictions\",\n \"isLegacy\": false\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Prediction Value #1","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"let index = 0\nif (recordSet.get(index) !== undefined) {\nrecordSet.get(index).predictionValue\n} else { 0 }","project":"Superalgos","id":"e9d73a79-650f-43b5-98f3-11eed2aa85f5","savedPayload":{"position":{"x":10448.917988375542,"y":19781.08010381876},"targetPosition":{"x":10487.988828350602,"y":19559.498359391015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78909080-b088-4189-8eb8-7ae579fd3e55","savedPayload":{"position":{"x":10487.988828350602,"y":19559.498359391015},"targetPosition":{"x":10527.059668325663,"y":19337.91661496327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Prediction Value #2","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"let index = 1\nif (recordSet.get(index) !== undefined) {\nrecordSet.get(index).predictionValue\n} else { 0 }","project":"Superalgos","id":"68332a0c-014c-4fd4-9896-12864c0b8407","savedPayload":{"position":{"x":10237.805243966719,"y":19682.63661436681},"targetPosition":{"x":10382.43245614619,"y":19510.27661466504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f5bb7179-705f-4ff6-9b55-881be9801d0a","savedPayload":{"position":{"x":10382.43245614619,"y":19510.27661466504},"targetPosition":{"x":10527.059668325663,"y":19337.91661496327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Prediction Value #3","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"let index = 2\nif (recordSet.get(index) !== undefined) {\nrecordSet.get(index).predictionValue\n} else { 0 }","project":"Superalgos","id":"f41b3e0f-121e-4289-b0f5-2b298c6869f2","savedPayload":{"position":{"x":10104.197988972002,"y":19491.825679459824},"targetPosition":{"x":10315.628828648832,"y":19414.871147211546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"85f81932-e430-443a-9b1d-d40ae687285a","savedPayload":{"position":{"x":10315.628828648832,"y":19414.871147211546},"targetPosition":{"x":10527.059668325663,"y":19337.91661496327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Prediction Value #4","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"let index = 3\nif (recordSet.get(index) !== undefined) {\nrecordSet.get(index).predictionValue\n} else { 0 }","project":"Superalgos","id":"4ce53f14-b1fe-45c6-8ed1-5e0b54da1ee7","savedPayload":{"position":{"x":10083.896179470168,"y":19259.774935013153},"targetPosition":{"x":10305.477923897915,"y":19298.84577498821},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"489a254b-0957-4a86-aa63-1556e00515e1","savedPayload":{"position":{"x":10305.477923897915,"y":19298.84577498821},"targetPosition":{"x":10527.059668325663,"y":19337.91661496327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Prediction Value #5","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"let index = 4\nif (recordSet.get(index) !== undefined) {\nrecordSet.get(index).predictionValue\n} else { 0 }","project":"Superalgos","id":"62184223-daa3-4c49-8c7a-237fd4ae87c8","savedPayload":{"position":{"x":10182.339668922123,"y":19048.662190604326},"targetPosition":{"x":10354.699668623893,"y":19193.289402783797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1030669d-b3c3-488e-a92b-7bf362adbc99","savedPayload":{"position":{"x":10354.699668623893,"y":19193.289402783797},"targetPosition":{"x":10527.059668325663,"y":19337.91661496327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"86fc01d8-f92a-47e8-8da6-34a92813f583","savedPayload":{"position":{"x":10527.059668325663,"y":19337.91661496327},"targetPosition":{"x":10738.490508002493,"y":19260.962082714992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"360f47a4-15f4-406c-a0c0-979a633330b1","savedPayload":{"position":{"x":10534.571255919247,"y":19165.872973823334},"targetPosition":{"x":10738.490508002493,"y":19260.962082714992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"af455ab4-5064-4f50-96e4-4ecc4b06ef00","savedPayload":{"position":{"x":10738.490508002493,"y":19260.962082714992},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cfe33a78-6588-49fb-8d34-8f22149061ee","savedPayload":{"position":{"x":11161.352187356151,"y":19107.05301821844},"targetPosition":{"x":11161.352187356151,"y":18657.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Learning System","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Highlights","config":"{ \n\"codeName\": \"Highlights\",\n\"connectTo\": \"Learning System\"\n}","project":"Superalgos","panels":[],"nodesHighlights":{"type":"Nodes Highlights","name":"New Nodes Highlights","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"3b74694d-a152-42ae-9c8c-02828233a6cd","savedPayload":{"position":{"x":12017.30305202179,"y":19385.168313155893},"targetPosition":{"x":11589.327619688971,"y":19246.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e871938a-41c8-49ce-bed3-df2bbd44fde3","savedPayload":{"position":{"x":11589.327619688971,"y":19246.110665687167},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Values","config":"{ \n\"codeName\": \"Values\",\n\"connectTo\": \"Learning System\"\n}","project":"Superalgos","panels":[],"nodesValues":{"type":"Nodes Values","name":"New Nodes Values","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"831311c7-a925-455a-8ad6-000d96d2b377","savedPayload":{"position":{"x":11889.467482293603,"y":19636.05974528167},"targetPosition":{"x":11525.409834824877,"y":19371.556381750055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"da56e587-d6b5-484b-b802-dabd52f69849","savedPayload":{"position":{"x":11525.409834824877,"y":19371.556381750055},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Errors","config":"{\n \"codeName\": \"Errors\",\n \"connectTo\": \"Learning System\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"errors\",\n \"rateInArrayAtIndex\": 3,\n \"rateOffset\": -100,\n \"rateOffsetBasedOnArrayIndex\": -50,\n \"rateRange\": 20\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"Errors","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Error #1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[0][3]","project":"Superalgos","id":"d4e825e4-d39f-4b76-b341-e6de19def4a7","savedPayload":{"position":{"x":12045.553264071244,"y":18594.73177229653},"targetPosition":{"x":12092.591072541687,"y":19042.266625212254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b16fbb53-78fe-4498-ad4b-427f0c6275e2","savedPayload":{"position":{"x":12092.591072541687,"y":19042.266625212254},"targetPosition":{"x":12139.62888101213,"y":19489.801478127978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Error #2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[1][3]","project":"Superalgos","id":"88add502-4c62-44e3-9570-005129262d72","savedPayload":{"position":{"x":12505.691859780349,"y":18667.610566249634},"targetPosition":{"x":12322.66037039624,"y":19078.706022188806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a77ff001-72cb-424a-8144-09cb6355ad1c","savedPayload":{"position":{"x":12322.66037039624,"y":19078.706022188806},"targetPosition":{"x":12139.62888101213,"y":19489.801478127978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Error #3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[2][3]","project":"Superalgos","id":"abc96a44-5be7-4907-828f-28e80a9267ed","savedPayload":{"position":{"x":12867.744175949581,"y":18960.79475106475},"targetPosition":{"x":12503.686528480855,"y":19225.298114596364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"37f3f468-50e3-44e8-8820-62bc9a933996","savedPayload":{"position":{"x":12503.686528480855,"y":19225.298114596364},"targetPosition":{"x":12139.62888101213,"y":19489.801478127978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Error #4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[3][3]","project":"Superalgos","id":"e648bec2-8369-43b5-9b48-567d0f947280","savedPayload":{"position":{"x":13034.698586843577,"y":19395.725861187093},"targetPosition":{"x":12587.163733927853,"y":19442.763669657536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b394ff94-ffbc-4acf-9d8f-a3f0fd3f8c73","savedPayload":{"position":{"x":12587.163733927853,"y":19442.763669657536},"targetPosition":{"x":12139.62888101213,"y":19489.801478127978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Error #5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[4][3]","project":"Superalgos","id":"c233715b-3000-4758-92e3-5e5b6e5b71f0","savedPayload":{"position":{"x":12961.819792890474,"y":19855.864456896197},"targetPosition":{"x":12550.724336951302,"y":19672.832967512088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b8c82a83-f9c5-425a-bfc5-1e0e37c35614","savedPayload":{"position":{"x":12550.724336951302,"y":19672.832967512088},"targetPosition":{"x":12139.62888101213,"y":19489.801478127978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"966402c8-99e7-4b06-a64a-f518ee90c0c5","savedPayload":{"position":{"x":12139.62888101213,"y":19489.801478127978},"targetPosition":{"x":11775.571233543404,"y":19754.304841659592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[],"images":[{"type":"Image","name":"Error #1","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 30\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[0] !== undefined","project":"Superalgos","id":"c4c369a8-51e6-488d-b931-f50b995f0a27","savedPayload":{"position":{"x":12337.279513453359,"y":19418.18142303639},"targetPosition":{"x":12195.682425467145,"y":19593.039264364208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": -100\n}","project":"Superalgos","id":"a06d2f1d-04c3-4bc6-9784-61aaacd7b017","savedPayload":{"position":{"x":12417.91230210105,"y":19628.23701899826},"targetPosition":{"x":12195.682425467145,"y":19593.039264364208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #1","id":"b16fbb53-78fe-4498-ad4b-427f0c6275e2"}}},"id":"29b8de93-d69e-4f31-af4d-9d8072980e4a","savedPayload":{"position":{"x":12195.682425467145,"y":19593.039264364208},"targetPosition":{"x":11775.571233543404,"y":19754.304841659592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Error #2","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 25\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[1] !== undefined","project":"Superalgos","id":"046e66c7-56d4-4956-ab00-eff3b3b9d044","savedPayload":{"position":{"x":12405.13491019349,"y":19575.015351423343},"targetPosition":{"x":12223.106086459127,"y":19707.26703318915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": -150\n}","project":"Superalgos","id":"13a9812c-20c4-428a-ab8e-3c976a7b0c82","savedPayload":{"position":{"x":12428.653814428711,"y":19798.782777881206},"targetPosition":{"x":12223.106086459127,"y":19707.26703318915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #2","id":"a77ff001-72cb-424a-8144-09cb6355ad1c"}}},"id":"5c29acf5-b704-4105-aa54-6aadaef481f0","savedPayload":{"position":{"x":12223.106086459127,"y":19707.26703318915},"targetPosition":{"x":11775.571233543404,"y":19754.304841659592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Error #3","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[2] !== undefined","project":"Superalgos","id":"273bedfd-1d36-4e8c-b4aa-205351edcae6","savedPayload":{"position":{"x":12430.086582773085,"y":19744.06756228},"targetPosition":{"x":12220.030986811216,"y":19824.700350927695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": -200\n}","project":"Superalgos","id":"f1b4caad-53e8-4c1c-b728-dc8eb60913c1","savedPayload":{"position":{"x":12394.888828139035,"y":19966.29743891391},"targetPosition":{"x":12220.030986811216,"y":19824.700350927695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #3","id":"37f3f468-50e3-44e8-8820-62bc9a933996"}}},"id":"6d74cda3-0073-472d-921c-3a2a77c700e3","savedPayload":{"position":{"x":12220.030986811216,"y":19824.700350927695},"targetPosition":{"x":11775.571233543404,"y":19754.304841659592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Error #4","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 15\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[3] !== undefined","project":"Superalgos","id":"15e7d6a9-c60b-4208-9ad7-b1fec87c17ac","savedPayload":{"position":{"x":12410.434115940436,"y":19913.81742680848},"targetPosition":{"x":12186.666689482576,"y":19937.3363310437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": -250\n}","project":"Superalgos","id":"0bd14d84-e4c4-4ace-aade-88e6e8f58041","savedPayload":{"position":{"x":12318.918371248383,"y":20119.365154778065},"targetPosition":{"x":12186.666689482576,"y":19937.3363310437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #4","id":"b394ff94-ffbc-4acf-9d8f-a3f0fd3f8c73"}}},"id":"577c3a83-f163-4547-8065-a06d9a9ea11e","savedPayload":{"position":{"x":12186.666689482576,"y":19937.3363310437},"targetPosition":{"x":11775.571233543404,"y":19754.304841659592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Error #5","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[4] !== undefined","project":"Superalgos","id":"1c53b2d1-56cd-483b-9ccc-002cb38ba5a9","savedPayload":{"position":{"x":12347.516792832947,"y":20072.696772266074},"targetPosition":{"x":12125.286916199042,"y":20037.49901763202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": -300\n}","project":"Superalgos","id":"8b0e642d-9996-4296-9022-2fc55c1e22d4","savedPayload":{"position":{"x":12205.919704846736,"y":20247.55461359389},"targetPosition":{"x":12125.286916199042,"y":20037.49901763202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #5","id":"b8c82a83-f9c5-425a-bfc5-1e0e37c35614"}}},"id":"f0eb807f-72b3-4131-becb-2a711577ffb3","savedPayload":{"position":{"x":12125.286916199042,"y":20037.49901763202},"targetPosition":{"x":11775.571233543404,"y":19754.304841659592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"Error #1","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[0] !== undefined","project":"Superalgos","id":"49ad7e42-316e-4697-8152-2431156c3793","savedPayload":{"position":{"x":12265.074597075018,"y":20118.362489128318},"targetPosition":{"x":12040.074597075018,"y":20118.362489128318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": -135\n}","project":"Superalgos","id":"506be467-9151-4cf7-8625-269044062460","savedPayload":{"position":{"x":12222.10342080938,"y":20250.614170894125},"targetPosition":{"x":12040.074597075018,"y":20118.362489128318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #1","id":"b16fbb53-78fe-4498-ad4b-427f0c6275e2"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"1","project":"Superalgos","id":"68b8a268-e214-482e-ba4b-95baacf5ede5","savedPayload":{"position":{"x":12109.60342080938,"y":20332.350205294726},"targetPosition":{"x":12040.074597075018,"y":20118.362489128318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"8806ada1-7fcf-45f2-9702-909fbf751516","savedPayload":{"position":{"x":11970.545773340655,"y":20332.350205294726},"targetPosition":{"x":12040.074597075018,"y":20118.362489128318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f415bb95-9c69-4e9b-8584-3b4d20bd8682","savedPayload":{"position":{"x":12040.074597075018,"y":20118.362489128318},"targetPosition":{"x":11775.571233543404,"y":19754.304841659592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Error #2","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[1] !== undefined","project":"Superalgos","id":"e9c524a6-0c84-472f-bda5-3f26461822af","savedPayload":{"position":{"x":12154.170121753828,"y":20232.6503187314},"targetPosition":{"x":11936.836810838788,"y":20174.416033583333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": -180\n}","project":"Superalgos","id":"a81fbadd-a48d-4e80-897d-38a3a6693b4e","savedPayload":{"position":{"x":12078.433898825002,"y":20349.273874911152},"targetPosition":{"x":11936.836810838788,"y":20174.416033583333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #2","id":"a77ff001-72cb-424a-8144-09cb6355ad1c"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"2","project":"Superalgos","id":"9e4e14d0-5fe0-4509-95ec-53610d8a7689","savedPayload":{"position":{"x":11948.61240099345,"y":20399.10767890311},"targetPosition":{"x":11936.836810838788,"y":20174.416033583333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"337a2135-b5ac-4c23-9fd3-18f31ff7556b","savedPayload":{"position":{"x":11814.293027960408,"y":20363.116911371053},"targetPosition":{"x":11936.836810838788,"y":20174.416033583333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d0888223-96b0-4e21-9750-a235c39c936d","savedPayload":{"position":{"x":11936.836810838788,"y":20174.416033583333},"targetPosition":{"x":11775.571233543404,"y":19754.304841659592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Error #3","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[2] !== undefined","project":"Superalgos","id":"a1ad802b-464c-47b6-919e-3742ddaeceb7","savedPayload":{"position":{"x":12017.464757865346,"y":20314.339694575316},"targetPosition":{"x":11822.609042013846,"y":20201.839694575316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": -225\n}","project":"Superalgos","id":"a4b2d373-4e34-43a3-956c-a6bd1a39bb7a","savedPayload":{"position":{"x":11914.124786705903,"y":20407.3874225449},"targetPosition":{"x":11822.609042013846,"y":20201.839694575316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #3","id":"37f3f468-50e3-44e8-8820-62bc9a933996"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"3","project":"Superalgos","id":"a0e7b310-6ef8-4c8f-b8a7-ad9a4d756c88","savedPayload":{"position":{"x":11775.82891157985,"y":20421.922904740422},"targetPosition":{"x":11822.609042013846,"y":20201.839694575316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"a738c16b-d227-44fe-b7e9-e9ef454216a5","savedPayload":{"position":{"x":11655.401456281434,"y":20352.39408100606},"targetPosition":{"x":11822.609042013846,"y":20201.839694575316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6d471f6a-312d-431c-a3c9-a1b9e5594213","savedPayload":{"position":{"x":11822.609042013846,"y":20201.839694575316},"targetPosition":{"x":11775.571233543404,"y":19754.304841659592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Error #4","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[3] !== undefined","project":"Superalgos","id":"86d40f86-fbf3-4932-8f6c-0b3bb4e119f8","savedPayload":{"position":{"x":11864.274750042274,"y":20357.863620694377},"targetPosition":{"x":11705.175724275301,"y":20198.764594927405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": -270\n}","project":"Superalgos","id":"931bade7-ea45-415f-9996-8b00e4a8957a","savedPayload":{"position":{"x":11740.373478909354,"y":20420.99447156131},"targetPosition":{"x":11705.175724275301,"y":20198.764594927405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #4","id":"b394ff94-ffbc-4acf-9d8f-a3f0fd3f8c73"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"4","project":"Superalgos","id":"3eefe2a9-621f-43ee-b3c8-02230c479ff1","savedPayload":{"position":{"x":11603.027861833903,"y":20399.241062869787},"targetPosition":{"x":11705.175724275301,"y":20198.764594927405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"6498c437-68cd-482e-bee6-49f278e8121a","savedPayload":{"position":{"x":11504.699256332919,"y":20300.912457368802},"targetPosition":{"x":11705.175724275301,"y":20198.764594927405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5fa27bc2-03f6-44e0-8bab-0e1e345aa4dd","savedPayload":{"position":{"x":11705.175724275301,"y":20198.764594927405},"targetPosition":{"x":11775.571233543404,"y":19754.304841659592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Error #5","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[4] !== undefined","project":"Superalgos","id":"37deebed-bcae-4c32-96d5-0833f8e22b85","savedPayload":{"position":{"x":11705.039744159294,"y":20360.256013450264},"targetPosition":{"x":11592.539744159294,"y":20165.400297598764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": -315\n}","project":"Superalgos","id":"f71e2e3c-5613-4cc8-b3aa-ded2f083269e","savedPayload":{"position":{"x":11569.020839924073,"y":20389.167724056624},"targetPosition":{"x":11592.539744159294,"y":20165.400297598764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #5","id":"b8c82a83-f9c5-425a-bfc5-1e0e37c35614"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"5","project":"Superalgos","id":"3fbf6d54-e28b-4f49-85c9-196c4ecfd2d1","savedPayload":{"position":{"x":11441.98535772855,"y":20332.607883331177},"targetPosition":{"x":11592.539744159294,"y":20165.400297598764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"5922d8fb-a554-4b52-8823-d45b8e4d84c7","savedPayload":{"position":{"x":11372.456533994187,"y":20212.18042803276},"targetPosition":{"x":11592.539744159294,"y":20165.400297598764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5056294f-e5f4-43bf-a8ea-923696db17a6","savedPayload":{"position":{"x":11592.539744159294,"y":20165.400297598764},"targetPosition":{"x":11775.571233543404,"y":19754.304841659592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"728d0f36-3bb6-4649-9fa0-be61480e1a97","savedPayload":{"position":{"x":11775.571233543404,"y":19754.304841659592},"targetPosition":{"x":11425.855550887765,"y":19471.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[],"nodesErrors":{"type":"Nodes Errors","name":"New Nodes Errors","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"98652569-ee82-43e9-9d1e-3eb50adf6070","savedPayload":{"position":{"x":11587.12112818315,"y":19891.221857610908},"targetPosition":{"x":11425.855550887765,"y":19471.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0ebe46ec-88d8-4051-968f-2b96cb4b9f31","savedPayload":{"position":{"x":11425.855550887763,"y":19471.110665687167},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Status","config":"{ \n\"codeName\": \"Status\",\n\"connectTo\": \"Learning System\"\n}","project":"Superalgos","panels":[],"nodesStatus":{"type":"Nodes Status","name":"New Nodes Status","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"8ea96650-92b0-4298-bbfc-bcb7d79d45dc","savedPayload":{"position":{"x":11439.467482293603,"y":19963.00388288408},"targetPosition":{"x":11300.409834824877,"y":19535.02845055126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"726a1c09-ce3d-4937-85f9-a2c900932818","savedPayload":{"position":{"x":11300.409834824877,"y":19535.02845055126},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Progress","config":"{ \n\"codeName\": \"Progress\",\n\"connectTo\": \"Learning System\"\n}","project":"Superalgos","panels":[],"nodesProgress":{"type":"Nodes Progress","name":"New Nodes Progress","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"e12f1376-c804-4fe8-80a4-f4944d32e395","savedPayload":{"position":{"x":11161.352187356151,"y":20007.05301821844},"targetPosition":{"x":11161.352187356151,"y":19557.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bddd3dbc-44ce-4974-8d27-475f3ff00a75","savedPayload":{"position":{"x":11161.352187356151,"y":19557.05301821844},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Running","config":"{ \n\"codeName\": \"Running\",\n\"connectTo\": \"Learning System\"\n}","project":"Superalgos","panels":[],"nodesRunning":{"type":"Nodes Running","name":"New Nodes Running","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"ceaef898-311d-4aa1-9fab-5ae1074cafcc","savedPayload":{"position":{"x":10883.2368924187,"y":19963.00388288408},"targetPosition":{"x":11022.294539887425,"y":19535.02845055126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9767758e-51fa-4581-8575-a98b7d182644","savedPayload":{"position":{"x":11022.294539887425,"y":19535.02845055126},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Announcements","config":"{ \n\"codeName\": \"Announcements\",\n\"connectTo\": \"Learning System\"\n}","project":"Superalgos","panels":[],"nodesAnnouncements":{"type":"Nodes Announcements","name":"New Nodes Announcements","project":"Superalgos","id":"683ddfea-8049-4080-8ed3-cc771a1d3cc0","savedPayload":{"position":{"x":10632.345460292927,"y":19835.168313155893},"targetPosition":{"x":10896.848823824539,"y":19471.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"79fcb191-55c6-4a99-9688-be5950a71f78","savedPayload":{"position":{"x":10896.848823824539,"y":19471.110665687167},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Warnings","config":"{\n \"codeName\": \"Warnings\",\n \"connectTo\": \"Learning System\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"warnings\",\n \"rateInArrayAtIndex\": 3,\n \"rateOffset\": 100,\n \"rateOffsetBasedOnArrayIndex\": 50,\n \"rateRange\": 20\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"Warnings","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Warning #1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[0][3]","project":"Superalgos","id":"c84c66bc-0d25-457e-93ba-5dbb97bf5eda","savedPayload":{"position":{"x":11083.250025560232,"y":20160.301871286007},"targetPosition":{"x":10823.442404424899,"y":20010.301871286007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e305d892-3000-4c45-a590-eec24812e4b9","savedPayload":{"position":{"x":10823.442404424899,"y":20010.301871286007},"targetPosition":{"x":10563.634783289566,"y":19860.301871286007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Warning #2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[1][3]","project":"Superalgos","id":"5e2d7b4e-e385-4173-932e-f95ca88e9771","savedPayload":{"position":{"x":10863.634783289566,"y":20379.917113556672},"targetPosition":{"x":10713.634783289566,"y":20120.10949242134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"266f0488-5cee-4498-a82a-8c66924088a6","savedPayload":{"position":{"x":10713.634783289566,"y":20120.10949242134},"targetPosition":{"x":10563.634783289566,"y":19860.301871286007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Warning #3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[2][3]","project":"Superalgos","id":"1586251b-11e3-4bbe-a24e-09d69a3664ca","savedPayload":{"position":{"x":10563.634783289566,"y":20460.301871286007},"targetPosition":{"x":10563.634783289566,"y":20160.301871286007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"74d62932-c085-4c5a-b1a5-39e04770fa73","savedPayload":{"position":{"x":10563.634783289566,"y":20160.301871286007},"targetPosition":{"x":10563.634783289566,"y":19860.301871286007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Warning #4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[3][3]","project":"Superalgos","id":"48ef650a-abb2-4244-bfdf-e67470a3e485","savedPayload":{"position":{"x":10263.634783289566,"y":20379.917113556672},"targetPosition":{"x":10413.634783289566,"y":20120.10949242134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"11a8c5ce-4e35-4e49-9046-664ffc3912c9","savedPayload":{"position":{"x":10413.634783289566,"y":20120.10949242134},"targetPosition":{"x":10563.634783289566,"y":19860.301871286007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Warning #5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[4][3]","project":"Superalgos","id":"d02eefb1-476d-47df-9900-ef7faad0e72b","savedPayload":{"position":{"x":10044.0195410189,"y":20160.301871286007},"targetPosition":{"x":10303.827162154234,"y":20010.301871286007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bc2648ff-0646-4729-b890-8d4251032a7a","savedPayload":{"position":{"x":10303.827162154234,"y":20010.301871286007},"targetPosition":{"x":10563.634783289566,"y":19860.301871286007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0e09c7d5-d10c-4a2c-899c-09cd2ad01dc8","savedPayload":{"position":{"x":10778.603727446614,"y":20085.32971187442},"targetPosition":{"x":10514.100363915,"y":19721.272064405694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[],"images":[{"type":"Image","name":"Warning #1","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 30\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[0] !== undefined","project":"Superalgos","id":"82e5e939-6027-44b3-92c2-3fffc18e2770","savedPayload":{"position":{"x":10514.478856563554,"y":19993.921498618885},"targetPosition":{"x":10479.115016237138,"y":19848.149763370355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": 100\n}","project":"Superalgos","id":"2fdd7b4a-5cf5-4c3e-8615-52d9cec42539","savedPayload":{"position":{"x":10370.554910521376,"y":19951.66161509267},"targetPosition":{"x":10479.115016237138,"y":19848.149763370355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #1","id":"e305d892-3000-4c45-a590-eec24812e4b9"}}},"id":"90eb1fb2-16a4-4d87-848e-0b2ffe1a06f9","savedPayload":{"position":{"x":10675.365941210384,"y":20141.383256329435},"targetPosition":{"x":10514.100363915,"y":19721.272064405694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Warning #2","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 25\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[1] !== undefined","project":"Superalgos","id":"fbf476a5-7411-4b19-b98d-154e57b0c2bf","savedPayload":{"position":{"x":10394.305250679328,"y":19962.50803201281},"targetPosition":{"x":10401.442538052888,"y":19812.67793113536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": 150\n}","project":"Superalgos","id":"ccfec974-20cb-4962-b1d4-444aef72c164","savedPayload":{"position":{"x":10268.117220754651,"y":19881.411909394472},"targetPosition":{"x":10401.442538052888,"y":19812.67793113536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #2","id":"266f0488-5cee-4498-a82a-8c66924088a6"}}},"id":"4409ec15-a9f3-4f77-aa1e-743931efbec4","savedPayload":{"position":{"x":10561.138172385443,"y":20168.806917321417},"targetPosition":{"x":10514.100363915,"y":19721.272064405694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Warning #3","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[2] !== undefined","project":"Superalgos","id":"30912972-4540-4dd1-b5c5-a5e2fc0d2baa","savedPayload":{"position":{"x":10287.849716485678,"y":19898.51021427679},"targetPosition":{"x":10336.90991098329,"y":19756.76009146959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": 200\n}","project":"Superalgos","id":"2d4897ec-5939-4c90-8532-6aa81120ad04","savedPayload":{"position":{"x":10189.620606393884,"y":19785.147778123654},"targetPosition":{"x":10336.90991098329,"y":19756.76009146959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #3","id":"74d62932-c085-4c5a-b1a5-39e04770fa73"}}},"id":"4a3aaf0b-ff7d-4ab5-9ec1-e0fbab7011d5","savedPayload":{"position":{"x":10443.704854646898,"y":20165.731817673506},"targetPosition":{"x":10514.100363915,"y":19721.272064405694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Warning #4","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 15\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[3] !== undefined","project":"Superalgos","id":"ee9fd946-472d-4cf8-a0b0-b14bf1fffd57","savedPayload":{"position":{"x":10203.736648247534,"y":19807.112767994124},"targetPosition":{"x":10290.745184683212,"y":19684.926375186573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": 250\n}","project":"Superalgos","id":"2d59a166-a700-4e69-a4b2-1b79389bee73","savedPayload":{"position":{"x":10141.42439629725,"y":19670.667968690945},"targetPosition":{"x":10290.745184683212,"y":19684.926375186573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #4","id":"11a8c5ce-4e35-4e49-9046-664ffc3912c9"}}},"id":"dd8c392f-73e3-4a7c-94e1-4253c37922d5","savedPayload":{"position":{"x":10331.06887453089,"y":20132.367520344866},"targetPosition":{"x":10514.100363915,"y":19721.272064405694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Warning #5","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[4] !== undefined","project":"Superalgos","id":"7d508cdd-8001-445a-8fd8-4caee4986732","savedPayload":{"position":{"x":10148.780386513867,"y":19695.720170701083},"targetPosition":{"x":10266.688350725286,"y":19602.99632276799},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": 300\n}","project":"Superalgos","id":"c526340d-53bc-4cec-9eaa-713cc60738a4","savedPayload":{"position":{"x":10127.433160772875,"y":19547.24695441894},"targetPosition":{"x":10266.688350725286,"y":19602.99632276799},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #5","id":"bc2648ff-0646-4729-b890-8d4251032a7a"}}},"id":"32364178-3749-47a6-abca-9eb642f220c8","savedPayload":{"position":{"x":10230.906187942575,"y":20070.987747061332},"targetPosition":{"x":10514.100363915,"y":19721.272064405694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"Warning #1","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[0] !== undefined","project":"Superalgos","id":"fde32690-8d0b-47fd-ae5b-75a79ea9853f","savedPayload":{"position":{"x":10162.147715426992,"y":19625.17719051787},"targetPosition":{"x":10266.688350725286,"y":19517.607419804022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": 125\n}","project":"Superalgos","id":"d1f66616-36d9-4fe3-84e2-12bce13ceef8","savedPayload":{"position":{"x":10118.885275348133,"y":19543.185748698917},"targetPosition":{"x":10266.688350725286,"y":19517.607419804022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #1","id":"e305d892-3000-4c45-a590-eec24812e4b9"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"1","project":"Superalgos","id":"b41c0e26-5431-4c49-bbed-770ffb217438","savedPayload":{"position":{"x":10132.078586421583,"y":19451.424254617537},"targetPosition":{"x":10266.688350725286,"y":19517.607419804022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"e9e651a9-4b31-4be2-b9a0-dbdd5670353c","savedPayload":{"position":{"x":10196.688252241434,"y":19384.94248015435},"targetPosition":{"x":10266.688350725286,"y":19517.607419804022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c930e977-255b-443b-8aa7-62be6eba95a9","savedPayload":{"position":{"x":10150.042716446274,"y":19985.775427937308},"targetPosition":{"x":10514.100363915,"y":19721.272064405694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Warning #2","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[1] !== undefined","project":"Superalgos","id":"a859e198-f05c-4515-8c1b-eed5e462c0ff","savedPayload":{"position":{"x":10160.133273115247,"y":19509.43730608228},"targetPosition":{"x":10290.745184683212,"y":19435.67736738544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": 170\n}","project":"Superalgos","id":"12b26341-938b-4401-a3e7-e7a6190f81dc","savedPayload":{"position":{"x":10141.72292438093,"y":19418.57865590186},"targetPosition":{"x":10290.745184683212,"y":19435.67736738544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #2","id":"266f0488-5cee-4498-a82a-8c66924088a6"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"2","project":"Superalgos","id":"28030a77-fae6-495d-ade1-7326cd705f2e","savedPayload":{"position":{"x":10180.234014001751,"y":19334.251132344336},"targetPosition":{"x":10290.745184683212,"y":19435.67736738544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"10013407-9204-4792-b5e2-dff9c4e5ddcb","savedPayload":{"position":{"x":10260.95661468635,"y":19288.66498322158},"targetPosition":{"x":10290.745184683212,"y":19435.67736738544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"490b6d09-41b3-4a54-aaf1-40f743cffb7d","savedPayload":{"position":{"x":10093.98917199126,"y":19882.537641701078},"targetPosition":{"x":10514.100363915,"y":19721.272064405694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Warning #3","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[2] !== undefined","project":"Superalgos","id":"183a6c8d-9d86-4854-aaf5-b53144488101","savedPayload":{"position":{"x":10190.80812344194,"y":19397.818166216286},"targetPosition":{"x":10336.90991098329,"y":19363.843651102423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": 215\n}","project":"Superalgos","id":"62d6996b-24e8-441a-afe6-84190f5b0deb","savedPayload":{"position":{"x":10198.741363016063,"y":19305.453135154814},"targetPosition":{"x":10336.90991098329,"y":19363.843651102423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #3","id":"74d62932-c085-4c5a-b1a5-39e04770fa73"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"3","project":"Superalgos","id":"3af086d2-75b5-490a-b705-0174be5d9d59","savedPayload":{"position":{"x":10259.450291737445,"y":19235.391296564685},"targetPosition":{"x":10336.90991098329,"y":19363.843651102423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"74df475c-796a-4ecf-973b-a56597986f7b","savedPayload":{"position":{"x":10349.746162255116,"y":19214.39389147302},"targetPosition":{"x":10336.90991098329,"y":19363.843651102423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"111633eb-bbed-41d6-8825-58664eb77c32","savedPayload":{"position":{"x":10066.565510999277,"y":19768.309872876136},"targetPosition":{"x":10514.100363915,"y":19721.272064405694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Warning #4","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[3] !== undefined","project":"Superalgos","id":"9cd1ca11-9769-47c8-86ba-b4911adc2521","savedPayload":{"position":{"x":10251.687172463968,"y":19299.362489807238},"targetPosition":{"x":10401.442538052888,"y":19307.925811436653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": 260\n}","project":"Superalgos","id":"31a57e24-5116-41f2-a948-bf5efee27bcf","savedPayload":{"position":{"x":10285.321296457027,"y":19212.973943365323},"targetPosition":{"x":10401.442538052888,"y":19307.925811436653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #4","id":"11a8c5ce-4e35-4e49-9046-664ffc3912c9"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"4","project":"Superalgos","id":"1e419b60-e24a-4696-9f0b-a3ec4b7eb1b8","savedPayload":{"position":{"x":10363.309787923867,"y":19162.85378323136},"targetPosition":{"x":10401.442538052888,"y":19307.925811436653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"283463cb-8daa-4d83-a442-8bded70d3c23","savedPayload":{"position":{"x":10455.863693855485,"y":19168.146207054935},"targetPosition":{"x":10401.442538052888,"y":19307.925811436653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c5951e14-05cd-40db-ba1d-20a750980ba5","savedPayload":{"position":{"x":10069.640610647188,"y":19650.87655513759},"targetPosition":{"x":10514.100363915,"y":19721.272064405694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Warning #5","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[4] !== undefined","project":"Superalgos","id":"cfebe37b-e86e-41ce-a004-5459c7ec6f7b","savedPayload":{"position":{"x":10337.83836169121,"y":19222.046570219343},"targetPosition":{"x":10479.115016237138,"y":19272.45397920166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": 305\n}","project":"Superalgos","id":"380db87f-7608-4e7d-a5fd-5cd16c4553da","savedPayload":{"position":{"x":10394.448533407121,"y":19148.633194657243},"targetPosition":{"x":10479.115016237138,"y":19272.45397920166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #5","id":"bc2648ff-0646-4729-b890-8d4251032a7a"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"5","project":"Superalgos","id":"a09ab818-05fa-4966-8dd2-8a574a3f44ae","savedPayload":{"position":{"x":10483.398423856193,"y":19122.51515027743},"targetPosition":{"x":10479.115016237138,"y":19272.45397920166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"4b40c98f-f144-415b-ace6-bcfc0f9a9a5d","savedPayload":{"position":{"x":10570.712198182453,"y":19153.668642313318},"targetPosition":{"x":10479.115016237138,"y":19272.45397920166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"57441804-809f-4b78-bde3-7614d8ddefd3","savedPayload":{"position":{"x":10103.004907975828,"y":19538.240575021584},"targetPosition":{"x":10514.100363915,"y":19721.272064405694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fcda6562-0551-4b9c-ba7d-b739840ecd3d","savedPayload":{"position":{"x":10514.100363915,"y":19721.272064405694},"targetPosition":{"x":10797.294539887425,"y":19371.556381750055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[],"nodesWarnings":{"type":"Nodes Warnings","name":"New Nodes Warnings","project":"Superalgos","id":"88bcf99d-0425-453e-b174-17c7b927f638","savedPayload":{"position":{"x":10377.183347963684,"y":19532.82195904544},"targetPosition":{"x":10797.294539887425,"y":19371.556381750055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ba37a274-dd77-46f1-b173-6a2241f6840e","savedPayload":{"position":{"x":10797.294539887425,"y":19371.556381750055},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Infos","config":"{\n \"codeName\": \"Infos\",\n \"connectTo\": \"Learning System\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"infos\",\n \"rateInArrayAtIndex\": 3,\n \"rateOffset\": 100,\n \"rateOffsetBasedOnArrayIndex\": 50,\n \"rateRange\": 20\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"Infos","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Info #1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[0][3]","project":"Superalgos","id":"c054f45d-6868-45c9-90d0-999c36847da3","savedPayload":{"position":{"x":10505.409444934798,"y":19967.727962996043},"targetPosition":{"x":10245.601823799465,"y":19817.727962996043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1012ce08-7ff2-4e30-a8ea-f7b9d3c1db92","savedPayload":{"position":{"x":10245.601823799465,"y":19817.727962996043},"targetPosition":{"x":9985.794202664132,"y":19667.727962996043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Info #2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[1][3]","project":"Superalgos","id":"3b7a415b-4310-460e-82d4-8451c37aa5a4","savedPayload":{"position":{"x":10285.794202664132,"y":20187.34320526671},"targetPosition":{"x":10135.794202664132,"y":19927.535584131376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c8e5c965-2186-4f85-9d4a-f6063c867424","savedPayload":{"position":{"x":10135.794202664132,"y":19927.535584131376},"targetPosition":{"x":9985.794202664132,"y":19667.727962996043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Info #3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[2][3]","project":"Superalgos","id":"3b160a4e-9ff5-4601-aad3-7ca108526a1c","savedPayload":{"position":{"x":9985.794202664132,"y":20267.727962996043},"targetPosition":{"x":9985.794202664132,"y":19967.727962996043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b5462c56-7cfb-499d-8d07-2b57895caba0","savedPayload":{"position":{"x":9985.794202664132,"y":19967.727962996043},"targetPosition":{"x":9985.794202664132,"y":19667.727962996043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Info #4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[3][3]","project":"Superalgos","id":"8b3fb4a0-71e3-468d-ac94-49eb18d7d510","savedPayload":{"position":{"x":9685.794202664132,"y":20187.34320526671},"targetPosition":{"x":9835.794202664132,"y":19927.535584131376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"94946c27-4877-46bb-8fa3-fbc5377710f8","savedPayload":{"position":{"x":9835.794202664132,"y":19927.535584131376},"targetPosition":{"x":9985.794202664132,"y":19667.727962996043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Info #5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[4][3]","project":"Superalgos","id":"0dcb785e-653e-4132-8929-f757d282929a","savedPayload":{"position":{"x":9466.178960393467,"y":19967.727962996043},"targetPosition":{"x":9725.9865815288,"y":19817.727962996043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b2044d1c-b9b9-4170-889d-49e0fc9e5c15","savedPayload":{"position":{"x":9725.9865815288,"y":19817.727962996043},"targetPosition":{"x":9985.794202664132,"y":19667.727962996043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8f2fe8e1-9166-4fdb-ba1f-4ad4a153701f","savedPayload":{"position":{"x":10495.032646916618,"y":19919.17366377675},"targetPosition":{"x":10355.974999447892,"y":19491.19823144393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[],"images":[{"type":"Image","name":"Info #1","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 30\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[0] !== undefined","project":"Superalgos","id":"a28358f6-f4f2-442a-ab61-ad32da53b79a","savedPayload":{"position":{"x":9936.63827593812,"y":19801.34759032892},"targetPosition":{"x":9901.274435611704,"y":19655.57585508039},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": 100\n}","project":"Superalgos","id":"df0209bb-d44f-41d8-8ef9-adf58ef19b1e","savedPayload":{"position":{"x":9792.714329895942,"y":19759.087706802708},"targetPosition":{"x":9901.274435611704,"y":19655.57585508039},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #1","id":"1012ce08-7ff2-4e30-a8ea-f7b9d3c1db92"}}},"id":"ca11faa5-bb2f-48ea-aed0-e4ae35d90cab","savedPayload":{"position":{"x":10379.526179757217,"y":19940.58152208349},"targetPosition":{"x":10355.974999447892,"y":19491.19823144393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Info #2","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 25\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[1] !== undefined","project":"Superalgos","id":"0ac97653-c9ba-461e-b034-90c57c1d7a9e","savedPayload":{"position":{"x":9816.464670053894,"y":19769.934123722847},"targetPosition":{"x":9823.601957427454,"y":19620.104022845397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": 150\n}","project":"Superalgos","id":"bcbaf0ea-bcd8-4091-9931-3e95cc8887ff","savedPayload":{"position":{"x":9690.276640129217,"y":19688.83800110451},"targetPosition":{"x":9823.601957427454,"y":19620.104022845397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #2","id":"c8e5c965-2186-4f85-9d4a-f6063c867424"}}},"id":"74df6900-4f9d-45b8-9105-a84a05babed3","savedPayload":{"position":{"x":10262.4147385799,"y":19931.364651774144},"targetPosition":{"x":10355.974999447892,"y":19491.19823144393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Info #3","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[2] !== undefined","project":"Superalgos","id":"73d2a80c-26cb-442b-97ef-cffb01151274","savedPayload":{"position":{"x":9710.009135860244,"y":19705.936305986826},"targetPosition":{"x":9759.069330357856,"y":19564.186183179627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": 200\n}","project":"Superalgos","id":"b8c8daa1-35a0-4bd0-9d44-34b015a756fc","savedPayload":{"position":{"x":9611.78002576845,"y":19592.57386983369},"targetPosition":{"x":9759.069330357856,"y":19564.186183179627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #3","id":"b5462c56-7cfb-499d-8d07-2b57895caba0"}}},"id":"f2b5f273-db47-4af7-905d-bc7b170a347f","savedPayload":{"position":{"x":10151.679274565096,"y":19892.151167328695},"targetPosition":{"x":10355.974999447892,"y":19491.19823144393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Info #4","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 15\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[3] !== undefined","project":"Superalgos","id":"bfc3e4aa-34cd-40a7-845f-c5f25093173c","savedPayload":{"position":{"x":9625.8960676221,"y":19614.53885970416},"targetPosition":{"x":9712.904604057778,"y":19492.35246689661},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": 250\n}","project":"Superalgos","id":"ce27e3e0-72a4-4730-93fc-e6f9b3b26faf","savedPayload":{"position":{"x":9563.583815671816,"y":19478.09406040098},"targetPosition":{"x":9712.904604057778,"y":19492.35246689661},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #4","id":"94946c27-4877-46bb-8fa3-fbc5377710f8"}}},"id":"8c64e842-a86c-4db6-9845-fb01eda69ce1","savedPayload":{"position":{"x":10054.866226586404,"y":19825.61340290876},"targetPosition":{"x":10355.974999447892,"y":19491.19823144393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Info #5","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[4] !== undefined","project":"Superalgos","id":"7d6418cb-107a-4847-9d6e-797cc3acb9c1","savedPayload":{"position":{"x":9570.939805888433,"y":19503.14626241112},"targetPosition":{"x":9688.847770099852,"y":19410.422414478027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": 300\n}","project":"Superalgos","id":"2b5ac558-0d7e-4e62-b7d0-9e39fea5b71c","savedPayload":{"position":{"x":9549.59258014744,"y":19354.673046128977},"targetPosition":{"x":9688.847770099852,"y":19410.422414478027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #5","id":"b2044d1c-b9b9-4170-889d-49e0fc9e5c15"}}},"id":"a56dc3e6-f837-40ae-9d94-0ce0a0e514f9","savedPayload":{"position":{"x":9978.573243872452,"y":19736.285797200693},"targetPosition":{"x":10355.974999447892,"y":19491.19823144393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"Info #1","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[0] !== undefined","project":"Superalgos","id":"26eeee17-3c4c-47a0-b58e-a5286756421c","savedPayload":{"position":{"x":9584.307134801558,"y":19432.603282227905},"targetPosition":{"x":9688.847770099852,"y":19325.03351151406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": 125\n}","project":"Superalgos","id":"535a8029-dd25-4b85-9ce5-80484129bb45","savedPayload":{"position":{"x":9541.0446947227,"y":19350.611840408954},"targetPosition":{"x":9688.847770099852,"y":19325.03351151406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #1","id":"1012ce08-7ff2-4e30-a8ea-f7b9d3c1db92"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"1","project":"Superalgos","id":"f887f4a7-9d84-4464-a762-d6c433cfd7d0","savedPayload":{"position":{"x":9554.238005796149,"y":19258.850346327574},"targetPosition":{"x":9688.847770099852,"y":19325.03351151406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"ae947f58-a26f-4eeb-8c80-a67bcee01112","savedPayload":{"position":{"x":9618.847671616,"y":19192.368571864386},"targetPosition":{"x":9688.847770099852,"y":19325.03351151406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"dd41cc73-5340-4259-bd6c-02ed58effc13","savedPayload":{"position":{"x":9927.999567115072,"y":19630.255878912656},"targetPosition":{"x":10355.974999447892,"y":19491.19823144393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Info #2","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[1] !== undefined","project":"Superalgos","id":"d2c0df41-710d-4366-b9e9-ec00469fb705","savedPayload":{"position":{"x":9582.292692489813,"y":19316.863397792316},"targetPosition":{"x":9712.904604057778,"y":19243.103459095477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": 170\n}","project":"Superalgos","id":"f7f31d9c-0774-4efb-90b7-d544544fc391","savedPayload":{"position":{"x":9563.882343755497,"y":19226.004747611896},"targetPosition":{"x":9712.904604057778,"y":19243.103459095477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #2","id":"c8e5c965-2186-4f85-9d4a-f6063c867424"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"2","project":"Superalgos","id":"018b2a05-dea1-4974-b856-d3dd86a0646e","savedPayload":{"position":{"x":9602.393433376317,"y":19141.677224054372},"targetPosition":{"x":9712.904604057778,"y":19243.103459095477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"2395169f-e704-4144-9037-d8838ae415fb","savedPayload":{"position":{"x":9683.116034060917,"y":19096.091074931617},"targetPosition":{"x":9712.904604057778,"y":19243.103459095477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"50307c8f-6b8c-45b0-80cb-6bf078933f3a","savedPayload":{"position":{"x":9906.591708808333,"y":19514.749411753255},"targetPosition":{"x":10355.974999447892,"y":19491.19823144393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Info #3","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[2] !== undefined","project":"Superalgos","id":"f1c82cd0-add9-4ae3-abb5-c8837db384a8","savedPayload":{"position":{"x":9612.967542816506,"y":19205.244257926322},"targetPosition":{"x":9759.069330357856,"y":19171.26974281246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": 215\n}","project":"Superalgos","id":"8129796c-b62c-4f6c-9b63-47694adcd016","savedPayload":{"position":{"x":9620.900782390629,"y":19112.87922686485},"targetPosition":{"x":9759.069330357856,"y":19171.26974281246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #3","id":"b5462c56-7cfb-499d-8d07-2b57895caba0"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"3","project":"Superalgos","id":"43ff37d7-e6b9-4d14-9d4d-763af5b21b0f","savedPayload":{"position":{"x":9681.60971111201,"y":19042.81738827472},"targetPosition":{"x":9759.069330357856,"y":19171.26974281246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"0a62d552-5cd0-4527-9075-3b909b5aa0b9","savedPayload":{"position":{"x":9771.905581629682,"y":19021.819983183057},"targetPosition":{"x":9759.069330357856,"y":19171.26974281246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e1e0691b-9903-4d83-897f-806808801184","savedPayload":{"position":{"x":9915.808579117678,"y":19397.63797057594},"targetPosition":{"x":10355.974999447892,"y":19491.19823144393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Info #4","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[3] !== undefined","project":"Superalgos","id":"4a00c990-9197-46f1-ad1d-5a2114d48cbf","savedPayload":{"position":{"x":9673.846591838534,"y":19106.788581517274},"targetPosition":{"x":9823.601957427454,"y":19115.35190314669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": 260\n}","project":"Superalgos","id":"734db851-667f-4e2c-8ffc-f70e4f653946","savedPayload":{"position":{"x":9707.480715831593,"y":19020.40003507536},"targetPosition":{"x":9823.601957427454,"y":19115.35190314669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #4","id":"94946c27-4877-46bb-8fa3-fbc5377710f8"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"4","project":"Superalgos","id":"3fe4296a-bd55-4daf-9f96-8ae343df3a65","savedPayload":{"position":{"x":9785.469207298433,"y":18970.279874941396},"targetPosition":{"x":9823.601957427454,"y":19115.35190314669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"0ab9f43f-a150-4269-b0e1-b8248492fd39","savedPayload":{"position":{"x":9878.02311323005,"y":18975.57229876497},"targetPosition":{"x":9823.601957427454,"y":19115.35190314669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ecd549b0-67f4-4b2e-84fe-b7c5d8d05e01","savedPayload":{"position":{"x":9955.022063563127,"y":19286.902506561135},"targetPosition":{"x":10355.974999447892,"y":19491.19823144393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Info #5","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[4] !== undefined","project":"Superalgos","id":"53d6ea53-0805-456e-8531-4e77a823d036","savedPayload":{"position":{"x":9759.997781065777,"y":19029.47266192938},"targetPosition":{"x":9901.274435611704,"y":19079.880070911695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": 305\n}","project":"Superalgos","id":"d31b94fd-615a-4b30-a235-77d557e060a4","savedPayload":{"position":{"x":9816.607952781687,"y":18956.05928636728},"targetPosition":{"x":9901.274435611704,"y":19079.880070911695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #5","id":"b2044d1c-b9b9-4170-889d-49e0fc9e5c15"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"5","project":"Superalgos","id":"cb9dd157-1b4c-47d8-a246-50a7c5fd1c77","savedPayload":{"position":{"x":9905.55784323076,"y":18929.941241987468},"targetPosition":{"x":9901.274435611704,"y":19079.880070911695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"14e701c0-f325-4734-92dc-a5c5698bcd70","savedPayload":{"position":{"x":9992.871617557019,"y":18961.094734023354},"targetPosition":{"x":9901.274435611704,"y":19079.880070911695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1c825861-b9d3-4345-b167-7733d4f7ce11","savedPayload":{"position":{"x":10021.559827983063,"y":19190.089458582443},"targetPosition":{"x":10355.974999447892,"y":19491.19823144393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"64b96849-e783-4cb2-a51a-35eee701a11c","savedPayload":{"position":{"x":10355.974999447892,"y":19491.19823144393},"targetPosition":{"x":10733.376755023331,"y":19246.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[],"nodesInfos":{"type":"Nodes Infos","name":"New Nodes Infos","project":"Superalgos","id":"bc0c2ea9-d55a-4a56-ae9f-85447c3cbbae","savedPayload":{"position":{"x":10283.993464383773,"y":19269.661845996492},"targetPosition":{"x":10733.376755023331,"y":19246.110665687167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"64656680-9d40-4e0b-afe7-d84d4332261c","savedPayload":{"position":{"x":10733.376755023331,"y":19246.110665687167},"targetPosition":{"x":11161.352187356151,"y":19107.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c7f5a467-73fd-47fc-82d8-291d6288b6ba","savedPayload":{"position":{"x":10711.352187356151,"y":18657.05301821844},"targetPosition":{"x":11161.352187356151,"y":18657.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Learning Episode","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Episode Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"6ee5fefc-9192-4578-8f0d-a6c8cc7178fb","savedPayload":{"position":{"x":9933.916822418076,"y":17808.402582938725},"targetPosition":{"x":10119.345214858029,"y":17680.961179630638},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2a214d9a-d878-4a3b-ab5d-31873756eefe","savedPayload":{"position":{"x":10119.345214858029,"y":17680.961179630638},"targetPosition":{"x":10490.201999737936,"y":17426.078373014465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"b21828eb-1184-4b73-ab6a-849ccece1ce1","savedPayload":{"position":{"x":9842.998678701906,"y":17617.788730689612},"targetPosition":{"x":10058.733119047249,"y":17553.88527813123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b4cf0c9f-5097-499e-bfc8-844f895b8d5e","savedPayload":{"position":{"x":10058.733119047249,"y":17553.88527813123},"targetPosition":{"x":10490.201999737936,"y":17426.078373014465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"90e3b06d-1fe9-4e81-a7f8-06d2f55aab29","savedPayload":{"position":{"x":9815.433305379434,"y":17408.408932906652},"targetPosition":{"x":10040.356203498935,"y":17414.298746275923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3084c0b7-764e-426a-973f-b0f7dc2f84c1","savedPayload":{"position":{"x":10040.356203498935,"y":17414.298746275923},"targetPosition":{"x":10490.201999737936,"y":17426.078373014465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"89f76e86-f46c-4519-8254-34f741328dde","savedPayload":{"position":{"x":9853.918993250716,"y":17200.75874303167},"targetPosition":{"x":10066.013328746456,"y":17275.86528635927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fba450c5-3227-494a-ba58-c0f03f2cd546","savedPayload":{"position":{"x":10066.013328746456,"y":17275.86528635927},"targetPosition":{"x":10490.201999737936,"y":17426.078373014465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ce771f7b-bd11-4ad0-8bc3-1800d1fe9388","savedPayload":{"position":{"x":10490.201999737936,"y":17426.078373014465},"targetPosition":{"x":10936.352187356151,"y":17367.341586515442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"58b91130-01c3-4cb6-bf22-e0d61455dcc3","savedPayload":{"position":{"x":10466.114454810722,"y":20175.136370108146},"targetPosition":{"x":10298.914545623873,"y":20519.660663041326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 2,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 2,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"fbb6e766-260b-4f22-8eca-01b4915d450a","savedPayload":{"position":{"x":11012.685379313378,"y":20689.365526667832},"targetPosition":{"x":10670.91863892537,"y":20608.320651233473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"338a7d25-4512-4b09-9e2f-0d2b6d5858c6","savedPayload":{"position":{"x":10670.91863892537,"y":20608.320651233473},"targetPosition":{"x":10298.914545623873,"y":20519.660663041326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"106b1553-2616-451e-9ae0-90c5a958d85b","savedPayload":{"position":{"x":10330.047760232756,"y":20900.289585782826},"targetPosition":{"x":10298.914545623873,"y":20519.660663041326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"2a214d9a-d878-4a3b-ab5d-31873756eefe"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"2b19b896-0f9c-4078-b17b-d460084c3082","savedPayload":{"position":{"x":9914.48383399997,"y":20656.74273874532},"targetPosition":{"x":10298.914545623873,"y":20519.660663041326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"3084c0b7-764e-426a-973f-b0f7dc2f84c1"}}}],"id":"513fc20c-95ef-49bd-b5e4-75221ba49ac1","savedPayload":{"position":{"x":10501.68556552607,"y":17250.873016219306},"targetPosition":{"x":10936.352187356151,"y":17367.341586515442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"addd7dc2-b3ac-4a08-8955-7a3199e72cee","savedPayload":{"position":{"x":10345.484302906436,"y":20390.274296499723},"targetPosition":{"x":10059.832106115195,"y":20654.446155983103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 2,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 2,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"884f0788-2f57-45f3-a931-67ea33f270ce","savedPayload":{"position":{"x":10654.715427881034,"y":21084.059761133718},"targetPosition":{"x":10369.625966731499,"y":20878.222834024553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9b834b6a-8a15-451c-a8b9-518c8d15a28d","savedPayload":{"position":{"x":10369.625966731499,"y":20878.222834024553},"targetPosition":{"x":10059.832106115195,"y":20654.446155983103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"66445510-b26b-4a37-922c-729c3bb5bcb0","savedPayload":{"position":{"x":9943.239495542628,"y":21018.293200016527},"targetPosition":{"x":10059.832106115195,"y":20654.446155983103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"2a214d9a-d878-4a3b-ab5d-31873756eefe"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"ed734f1d-979c-4f8d-b317-f4e287f1e4da","savedPayload":{"position":{"x":9653.295724536583,"y":20634.15599403727},"targetPosition":{"x":10059.832106115195,"y":20654.446155983103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"3084c0b7-764e-426a-973f-b0f7dc2f84c1"}}}],"id":"f276bcb1-908c-474c-b8fd-b1950b81a420","savedPayload":{"position":{"x":10579.343184225096,"y":17093.398943461518},"targetPosition":{"x":10936.352187356151,"y":17367.341586515442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"3bee91ac-bf89-4910-93f0-a54ac54d6339","savedPayload":{"position":{"x":9757.166327762687,"y":16102.810035611263},"targetPosition":{"x":9986.051851444747,"y":16288.263961371853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"edce098c-9f2e-4406-a815-e34954376aa3","savedPayload":{"position":{"x":9986.051851444747,"y":16288.263961371853},"targetPosition":{"x":10253.525344147325,"y":16504.988431964255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"e6fbb290-4d85-4e5e-b570-ab73795521f4","savedPayload":{"position":{"x":10217.696046618592,"y":16162.57620694078},"targetPosition":{"x":10253.525344147325,"y":16504.988431964255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"2a214d9a-d878-4a3b-ab5d-31873756eefe"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"d588cca5-7edf-442a-8f1c-15519835c3ec","savedPayload":{"position":{"x":10470.29901559629,"y":16237.220324929809},"targetPosition":{"x":10253.525344147325,"y":16504.988431964255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"b4cf0c9f-5097-499e-bfc8-844f895b8d5e"}}}],"id":"3a7eea15-2b91-40fa-9fb0-5215dfacaf88","savedPayload":{"position":{"x":10711.352187356151,"y":16977.630154812443},"targetPosition":{"x":10936.352187356151,"y":17367.341586515442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"bdfbee78-ab14-41c7-93da-cc7b5317dd97","savedPayload":{"position":{"x":9877.8504077793,"y":16064.518177234413},"targetPosition":{"x":10085.595322045549,"y":16272.440686367827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"69c5a7b7-2ce5-4e9f-82d4-efdb005c6de8","savedPayload":{"position":{"x":10085.595322045549,"y":16272.440686367827},"targetPosition":{"x":10315.032694112295,"y":16502.098190721248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"4c51f624-0a0b-4973-a136-05a8a6dd9aa3","savedPayload":{"position":{"x":10315.03090450073,"y":16176.415447158412},"targetPosition":{"x":10315.032694112295,"y":16502.098190721248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"3084c0b7-764e-426a-973f-b0f7dc2f84c1"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"468fd2ee-4476-44ca-9391-6ed911f5ef58","savedPayload":{"position":{"x":10545.595795902067,"y":16271.493907851655},"targetPosition":{"x":10315.032694112295,"y":16502.098190721248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"fba450c5-3227-494a-ba58-c0f03f2cd546"}}}],"id":"f7dd0e4a-0d7b-4b91-b4a9-9f9095682031","savedPayload":{"position":{"x":10877.615400857128,"y":16921.191398897226},"targetPosition":{"x":10936.352187356151,"y":17367.341586515442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{\n \"codeName\": \"learning-episode\",\n \"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"5221670c-c689-40e8-8508-25354d2e37a7","savedPayload":{"position":{"x":11111.055042800352,"y":16715.34165377032},"targetPosition":{"x":11052.820757652285,"y":16932.67496468536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"2a214d9a-d878-4a3b-ab5d-31873756eefe"}}},"id":"2841ceda-20d9-48be-91b9-92464601fb2f","savedPayload":{"position":{"x":11052.820757652285,"y":16932.67496468536},"targetPosition":{"x":10936.352187356151,"y":17367.341586515442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{\n \"codeName\": \"learning-episode\",\n \"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"525a0dfd-bc3e-4e2f-953e-04de98bfaaf3","savedPayload":{"position":{"x":11347.266151937038,"y":16831.828081818858},"targetPosition":{"x":11210.294830410076,"y":17010.332583384385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"3084c0b7-764e-426a-973f-b0f7dc2f84c1"}}},"id":"7af6bb97-efa7-401c-8f85-4b3b92067198","savedPayload":{"position":{"x":11210.294830410076,"y":17010.332583384385},"targetPosition":{"x":10936.352187356151,"y":17367.341586515442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"35f2bf74-6e3c-4ff4-b45c-f37398adacac","savedPayload":{"position":{"x":10936.352187356151,"y":17367.341586515442},"targetPosition":{"x":11161.352187356151,"y":17757.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Episode Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"56b0ffa5-d02d-4c87-891f-5d8c5f21ea47","savedPayload":{"position":{"x":10975.438222775265,"y":16831.828081818858},"targetPosition":{"x":11112.409544302227,"y":17010.332583384385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ffcf9491-7864-4d19-8bf0-c32f5515bc22","savedPayload":{"position":{"x":11112.409544302227,"y":17010.332583384385},"targetPosition":{"x":11386.352187356151,"y":17367.341586515442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"fc32b77c-aa4d-4ab4-8653-da3ebb9f3521","savedPayload":{"position":{"x":11211.649331911949,"y":16715.34165377032},"targetPosition":{"x":11269.883617060017,"y":16932.67496468536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4f89e3b6-ccff-420a-9ee4-37c3e02d370e","savedPayload":{"position":{"x":11269.883617060017,"y":16932.67496468536},"targetPosition":{"x":11386.352187356151,"y":17367.341586515442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"f66763f4-09bf-4a93-bce3-c905ae51093e","savedPayload":{"position":{"x":11474.457367104686,"y":16698.11630508812},"targetPosition":{"x":11445.088973855174,"y":16921.191398897226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7d8561b2-2f28-4028-a43a-69db4dfc1039","savedPayload":{"position":{"x":11445.088973855174,"y":16921.191398897226},"targetPosition":{"x":11386.352187356151,"y":17367.341586515442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Rate","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"411ab435-4dd7-402e-86ae-a112f73715bf","savedPayload":{"position":{"x":11723.852187356151,"y":16782.774438960943},"targetPosition":{"x":11611.352187356151,"y":16977.630154812443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6172c44a-3835-4595-b232-4652c1ef64d0","savedPayload":{"position":{"x":11611.352187356151,"y":16977.630154812443},"targetPosition":{"x":11386.352187356151,"y":17367.341586515442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Rate","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"696e14f0-bd21-44ba-b028-0ae308317da9","savedPayload":{"position":{"x":11921.865692052736,"y":16956.427621934556},"targetPosition":{"x":11743.361190487207,"y":17093.398943461518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1ffcaec3-17f5-4344-8302-a8b68d6670cb","savedPayload":{"position":{"x":11743.361190487207,"y":17093.398943461518},"targetPosition":{"x":11386.352187356151,"y":17367.341586515442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin","config":"{\n }","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"UI.projects.superalgos.utilities.dates.formatDate(record.begin)","project":"Superalgos","id":"0f4a82d5-e706-4aaf-9033-802b6369042d","savedPayload":{"position":{"x":12038.352120101274,"y":17192.638731071238},"targetPosition":{"x":11821.018809186233,"y":17250.873016219306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c4a30376-9540-42ff-87f1-1508fce5abcb","savedPayload":{"position":{"x":11821.018809186233,"y":17250.873016219306},"targetPosition":{"x":11386.352187356151,"y":17367.341586515442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End","config":"{\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"UI.projects.superalgos.utilities.dates.formatDate(record.end)","project":"Superalgos","id":"95d0261f-ecf8-48af-9704-33a401b78e7b","savedPayload":{"position":{"x":12055.577468783475,"y":17455.446766263976},"targetPosition":{"x":11832.502374974367,"y":17426.078373014465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8f585dd6-1905-4717-b65a-3b83960ff321","savedPayload":{"position":{"x":11832.502374974367,"y":17426.078373014465},"targetPosition":{"x":11386.352187356151,"y":17367.341586515442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c4fc56e6-7415-4e1f-84b8-9dcd221dfb36","savedPayload":{"position":{"x":11386.352187356151,"y":17367.341586515442},"targetPosition":{"x":11161.352187356151,"y":17757.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"67ef0a2d-8f83-4507-b2c7-54f026b23034","savedPayload":{"position":{"x":11161.352187356151,"y":17757.05301821844},"targetPosition":{"x":11161.352187356151,"y":18207.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a07972d6-019b-472d-8b54-3af7fabac9de","savedPayload":{"position":{"x":11161.352187356151,"y":18207.05301821844},"targetPosition":{"x":11161.352187356151,"y":18657.05301821844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ba13a8fb-fa34-40c2-97dd-ae3000f632c2","savedPayload":{"position":{"x":11161.352187356151,"y":18657.05301821844},"targetPosition":{"x":11161.352187356151,"y":18657.05301821844},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}} \ No newline at end of file diff --git a/Projects/Superalgos/Plugins/Trading-Mines/Masters.json b/Projects/Superalgos/Plugins/Trading-Mines/Masters.json index e4c048054..93d0a1a44 100644 --- a/Projects/Superalgos/Plugins/Trading-Mines/Masters.json +++ b/Projects/Superalgos/Plugins/Trading-Mines/Masters.json @@ -1 +1 @@ -{"type":"Trading Mine","name":"Masters","config":"{ \n\"codeName\": \"Masters\"\n}","project":"Superalgos","tradingBots":[{"type":"Trading Bot","name":"Low Frequency","config":"{\n\"codeName\": \"Low-Frequency\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Trading","config":"{\n \"codeName\": \"Trading\",\n \"sessionRunWaitTime\": 5000,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Low-Frequency-Trading-Process\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[],"outputDatasetFolders":[{"type":"Output Dataset Folder","name":"Trading Engine","project":"Superalgos","outputDatasets":[],"outputDatasetFolders":[{"type":"Output Dataset Folder","name":"Trading Episode","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Trading Episode Counters","project":"Superalgos","id":"739cf676-5ff9-4626-81bd-266b8e662ea7","savedPayload":{"position":{"x":24910.97457254189,"y":18457.46644293786},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"a57b7080-2b86-418d-88dc-8d8418f361e2"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading Episode Counters","project":"Superalgos","id":"a110cc47-5839-41a6-9022-20e1037db0b2","savedPayload":{"position":{"x":24834.601232363748,"y":18490.07023931273},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f66581e7-4401-4fa9-8f75-daeaa38c3365"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading Episode Statistics","project":"Superalgos","id":"f175eae3-26fb-4f08-8b05-7b2679e9bc42","savedPayload":{"position":{"x":24753.53736157276,"y":18508.085329665024},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"0f4ae6fe-d330-42f4-b122-647372d738b4"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading Episode Statistics","project":"Superalgos","id":"4ea61d21-9c12-45b5-b3bf-7762ab7da3cb","savedPayload":{"position":{"x":24670.543493063306,"y":18510.89823169951},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"3eec72c3-2256-4270-8cf2-880e814d057f"}}},{"type":"Output Dataset","name":"Multi-Period-Market Episode Candle","project":"Superalgos","id":"b8876bc6-93f3-43b8-8b53-58fbe3f8ff54","savedPayload":{"position":{"x":24588.445883487308,"y":18498.413155411115},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"6cd81e99-8c92-4b63-975d-cbffeff47a06"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Candle","project":"Superalgos","id":"06abb837-6c4d-4a62-b778-97039970816c","savedPayload":{"position":{"x":24510.040268473647,"y":18471.05526509864},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ec83880d-bc04-4a7b-9fa4-9dd1759296ab"}}},{"type":"Output Dataset","name":"Multi-Period-Market Episode Balances","project":"Superalgos","id":"2fa552d7-66bf-4750-ade4-2cab1f3178b3","savedPayload":{"position":{"x":24437.996657204443,"y":18429.756200904503},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"8cca405e-2e5a-4528-ae0d-a17777b67dd1"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Balances","project":"Superalgos","id":"6faa2af4-f239-4668-a0c4-5e2932c045af","savedPayload":{"position":{"x":24374.76840845468,"y":18375.922352927064},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"59045de1-1968-41c9-bc81-1130508ad612"}}},{"type":"Output Dataset","name":"Multi-Period-Market Distance To Trading Event","project":"Superalgos","id":"36929db6-8ba4-43e6-b68e-1a024e639618","savedPayload":{"position":{"x":24322.508684401608,"y":18311.386968292616},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"cab27391-302f-4bbb-a472-c80dd949b482"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Distance To Trading Event","project":"Superalgos","id":"b239a397-3c56-481c-baf5-2a75c2343a6e","savedPayload":{"position":{"x":24282.997127269216,"y":18238.34772212322},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"6a992d98-08e5-4856-a6f9-9d43a8397c03"}}},{"type":"Output Dataset","name":"Multi-Period-Market Episode Base Asset","project":"Superalgos","id":"070c80b4-f5c2-4369-8566-fa4fdee15e26","savedPayload":{"position":{"x":24257.579255746765,"y":18159.291878346256},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b565fc9-4af6-488d-b0e2-a1dd0389760f"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Base Asset","project":"Superalgos","id":"6e415c4d-196d-4601-9d80-f187c32637d4","savedPayload":{"position":{"x":24247.120644963576,"y":18076.91158890451},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"48d12d31-544a-43d6-bcca-48ce4f5c2948"}}},{"type":"Output Dataset","name":"Multi-Period-Market Episode Quoted Asset","project":"Superalgos","id":"0591504c-4f52-4701-b04a-9131d00365a3","savedPayload":{"position":{"x":24251.977450366147,"y":17994.01221575066},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ebdd227d-282e-4c05-a512-df30dfeb80e0"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Quoted Asset","project":"Superalgos","id":"8c1ff231-b553-4786-b4e7-416b75282bb3","savedPayload":{"position":{"x":24271.984279271586,"y":17913.41679761062},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"a646c575-e477-4665-b540-da28fef585d7"}}},{"type":"Output Dataset","name":"Multi-Period-Market Current Episode","project":"Superalgos","id":"c9e2983a-f362-4a84-b769-4385c85c1c3c","savedPayload":{"position":{"x":24306.45982311707,"y":17837.869914785595},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"89498f0e-d54f-45d2-81e8-d79e99ae225e"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Current Episode","project":"Superalgos","id":"ab284dd2-122a-45e1-b0fa-7eaae4d49510","savedPayload":{"position":{"x":24354.230058605797,"y":17769.944225761697},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"0549151b-cdcf-49a3-8da6-2f6ed5171747"}}}],"outputDatasetFolders":[],"id":"abf5fc44-1ecc-4a69-8f5f-b3181e97d937","savedPayload":{"position":{"x":24696.86240363471,"y":18061.668541066385},"targetPosition":{"x":25046.57808629035,"y":17778.47436509396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Strategy","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Current Strategy","project":"Superalgos","id":"d0469ed2-282f-4c72-8700-5a39ecba5244","savedPayload":{"position":{"x":24397.82260813974,"y":18249.822810246827},"targetPosition":{"x":24602.118333022536,"y":17848.869874362063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"0b2d49e4-c342-4731-9732-3b04361e4c19"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Current Strategy","project":"Superalgos","id":"6373b1a1-161a-4f25-9adf-0a0f89ecdeea","savedPayload":{"position":{"x":24201.16539713777,"y":18053.165599244858},"targetPosition":{"x":24602.118333022536,"y":17848.869874362063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"a2887df5-22ad-459c-8b45-6e448bd3be7f"}}},{"type":"Output Dataset","name":"Multi-Period-Market Last Strategy","project":"Superalgos","id":"009fc022-6af4-4f38-a60d-224a76ad91f2","savedPayload":{"position":{"x":24157.658579754723,"y":17778.47436509396},"targetPosition":{"x":24602.118333022536,"y":17848.869874362063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"e23cf459-d8f5-4cd3-8f4d-a32a817248b3"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Last Strategy","project":"Superalgos","id":"e605a796-36f9-4cf3-8fef-e9e9d4b27249","savedPayload":{"position":{"x":24283.92028148859,"y":17530.671822828117},"targetPosition":{"x":24602.118333022536,"y":17848.869874362063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"52f4f3e4-2ae0-4923-a36d-0cabedf8ef34"}}}],"outputDatasetFolders":[],"id":"9f85172e-cc8e-452b-b748-347a4c168f73","savedPayload":{"position":{"x":24602.118333022536,"y":17848.869874362063},"targetPosition":{"x":25046.57808629035,"y":17778.47436509396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Position","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Current Position","project":"Superalgos","id":"b9d2f8af-f1ce-4942-a393-ba0bf3385679","savedPayload":{"position":{"x":24331.240331320878,"y":17956.828098898823},"targetPosition":{"x":24626.466894366607,"y":17617.208787798576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4ef62131-7c84-499e-b9c9-f22d88a09c97"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Current Position","project":"Superalgos","id":"f5e23e38-9c72-4a17-9a80-d65358d44f83","savedPayload":{"position":{"x":24232.88802615388,"y":17835.373116909428},"targetPosition":{"x":24626.466894366607,"y":17617.208787798576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"03b58ca5-0234-4f3d-8adb-db2faf9826bf"}}},{"type":"Output Dataset","name":"Multi-Period-Market Last Position","project":"Superalgos","id":"5941664a-d56b-4e88-8829-29f4a0400bd1","savedPayload":{"position":{"x":24182.007141098795,"y":17687.60429706668},"targetPosition":{"x":24626.466894366607,"y":17617.208787798576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"138cfff0-016c-40f9-8bd7-94dea0071300"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Last Position","project":"Superalgos","id":"8cd6eef8-c641-40b0-824b-b3a63b3634c0","savedPayload":{"position":{"x":24184.734661815157,"y":17531.344739879132},"targetPosition":{"x":24626.466894366607,"y":17617.208787798576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"c6dc8d6f-7a91-44f0-88dd-1470af1d4b88"}}},{"type":"Output Dataset","name":"Multi-Period-Market Stop Loss","project":"Superalgos","id":"2eebdddd-97ab-4852-9e02-3fff352f7f52","savedPayload":{"position":{"x":24240.741609050656,"y":17385.441654089052},"targetPosition":{"x":24626.466894366607,"y":17617.208787798576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"81187a8f-3b2d-459a-a82a-981d5d352d08"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Stop Loss","project":"Superalgos","id":"cd0b2a10-499b-4d4a-9bf3-61b09981a747","savedPayload":{"position":{"x":24343.27271839418,"y":17267.493105142938},"targetPosition":{"x":24626.466894366607,"y":17617.208787798576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"453d852e-d623-44ed-a52a-b45b630339f2"}}},{"type":"Output Dataset","name":"Multi-Period-Market Take Profit","project":"Superalgos","id":"f010a8ad-20c9-45eb-b47d-15140ceb39c5","savedPayload":{"position":{"x":24479.961224860886,"y":17191.725428778882},"targetPosition":{"x":24626.466894366607,"y":17617.208787798576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"3d1c0a63-d953-42f0-a617-63a16d9f358b"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Take Profit","project":"Superalgos","id":"1e1ae379-1ba5-4e14-8b65-895da4485f05","savedPayload":{"position":{"x":24634.320477263384,"y":17167.2773249782},"targetPosition":{"x":24626.466894366607,"y":17617.208787798576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"c2bf140a-4ee3-43cc-97ec-7ca59257ae6a"}}}],"outputDatasetFolders":[],"id":"45eabd9d-747a-4378-bab5-925a0852f940","savedPayload":{"position":{"x":24626.466894366607,"y":17617.208787798576},"targetPosition":{"x":25046.57808629035,"y":17778.47436509396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Stages","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Open Stage","project":"Superalgos","id":"ec31b6bd-db18-43ec-9fec-283d40a01555","savedPayload":{"position":{"x":24337.900551298226,"y":17575.264351944043},"targetPosition":{"x":24763.38391031792,"y":17428.75868243832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f527d726-fef7-4554-8427-93d18a493320"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Open Stage","project":"Superalgos","id":"61fa966e-1d33-4eeb-bf2f-82653685b542","savedPayload":{"position":{"x":24313.452447497544,"y":17420.905099541545},"targetPosition":{"x":24763.38391031792,"y":17428.75868243832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"d2d9fa16-2860-4c19-bedf-e93a15154925"}}},{"type":"Output Dataset","name":"Multi-Period-Market Close Stage","project":"Superalgos","id":"885770dc-d59b-4a96-9c5a-257a1cc2ef2e","savedPayload":{"position":{"x":24343.27271839418,"y":17267.493105142938},"targetPosition":{"x":24763.38391031792,"y":17428.75868243832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"eed98f43-3e1b-4cbb-b018-f1ea561a9a1e"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Close Stage","project":"Superalgos","id":"6b3531c1-55f4-4016-a3aa-ce3f1e4eb61b","savedPayload":{"position":{"x":24423.764599217673,"y":17133.532119392592},"targetPosition":{"x":24763.38391031792,"y":17428.75868243832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"06bb683f-abb8-4974-b7d6-52edae776856"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trigger Stage","project":"Superalgos","id":"8d8b549c-a00a-487c-b617-e3ae05ee7305","savedPayload":{"position":{"x":24545.219581207068,"y":17035.179814225594},"targetPosition":{"x":24763.38391031792,"y":17428.75868243832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"03a27bd2-56cb-4917-ad06-d5a5a4a78365"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trigger Stage","project":"Superalgos","id":"13aeddc9-fba4-40f4-98ab-ecbacde205e0","savedPayload":{"position":{"x":24692.988401049817,"y":16984.29892917051},"targetPosition":{"x":24763.38391031792,"y":17428.75868243832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"8b5b8c3a-ba7e-445d-a03b-bc5e259cdf8a"}}},{"type":"Output Dataset","name":"Multi-Period-Market Manage Stage","project":"Superalgos","id":"aa8fdf39-36a5-4237-aec1-43c8722cc2c7","savedPayload":{"position":{"x":24849.247958237363,"y":16987.02644988687},"targetPosition":{"x":24763.38391031792,"y":17428.75868243832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"845254d4-643c-4d37-8b0e-7832ced9c71c"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Manage Stage","project":"Superalgos","id":"50e6b338-8d1d-4515-bbf2-d6334cfb17bf","savedPayload":{"position":{"x":24995.151044027443,"y":17043.03339712237},"targetPosition":{"x":24763.38391031792,"y":17428.75868243832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"350a4e45-2b03-4da4-a6fc-aefdad5158e4"}}}],"outputDatasetFolders":[],"id":"95edcd07-cb31-4f0e-823e-da33eade8f03","savedPayload":{"position":{"x":24763.38391031792,"y":17428.75868243832},"targetPosition":{"x":25046.57808629035,"y":17778.47436509396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Orders","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Market Buy Orders","project":"Superalgos","id":"7c882ae0-ba3f-4836-8f3d-f9dbe6195b85","savedPayload":{"position":{"x":24527.791268348305,"y":17295.998374431183},"targetPosition":{"x":24976.182577022246,"y":17334.014611826147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"159928f4-1860-4440-af6b-cead732b0648"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Market Buy Orders","project":"Superalgos","id":"6d07bc1d-2291-47db-b277-ac6282a54775","savedPayload":{"position":{"x":24549.918585966214,"y":17189.79599330211},"targetPosition":{"x":24976.182577022246,"y":17334.014611826147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"74c1eba5-6d41-4306-887e-2737b05f5052"}}},{"type":"Output Dataset","name":"Multi-Period-Market Market Sell Orders","project":"Superalgos","id":"537836e0-25b4-46d6-9033-0e2927710e3d","savedPayload":{"position":{"x":24596.818817337735,"y":17091.9750740683},"targetPosition":{"x":24976.182577022246,"y":17334.014611826147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"3294707b-028f-4ac8-a952-995134194a1f"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Market Sell Orders","project":"Superalgos","id":"3b5e3ad1-ca25-4794-b5ec-a076b0daedff","savedPayload":{"position":{"x":24665.766291490956,"y":17008.22061299106},"targetPosition":{"x":24976.182577022246,"y":17334.014611826147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"30cb146d-088d-4066-9f26-38c1e557d892"}}},{"type":"Output Dataset","name":"Multi-Period-Market Limit Buy Orders","project":"Superalgos","id":"8aa1d2ee-9254-4c77-a7fd-83d7a97fdef2","savedPayload":{"position":{"x":24752.75403184197,"y":16943.400114913107},"targetPosition":{"x":24976.182577022246,"y":17334.014611826147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4682a1a3-edb5-4d7c-80ad-5480fbb6f60c"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Limit Buy Orders","project":"Superalgos","id":"2efe5d49-c2ce-4dc0-8ae6-f92810ef7a76","savedPayload":{"position":{"x":24852.726627109147,"y":16901.28071156982},"targetPosition":{"x":24976.182577022246,"y":17334.014611826147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"a1633615-2a0b-4b63-a6fe-720459a98aff"}}},{"type":"Output Dataset","name":"Multi-Period-Market Limit Sell Orders","project":"Superalgos","id":"cdb21adc-dd9b-47a6-83dd-25828abb8baf","savedPayload":{"position":{"x":24959.87403344115,"y":16884.3102295857},"targetPosition":{"x":24976.182577022246,"y":17334.014611826147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7d9f51b0-ef07-4139-a632-250d51bc3400"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Limit Sell Orders","project":"Superalgos","id":"87cb2d35-c621-48cf-ba7e-2df95d071768","savedPayload":{"position":{"x":25067.96923304694,"y":16893.474931688474},"targetPosition":{"x":24976.182577022246,"y":17334.014611826147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"7307f0c3-3742-4b12-b42f-e392d7dc1d3b"}}},{"type":"Output Dataset","name":"Multi-Period-Market Last Market Order","project":"Superalgos","id":"a6e96c7b-73b7-455c-9294-ccf06d7a3e78","savedPayload":{"position":{"x":25170.7301258355,"y":16928.242198704265},"targetPosition":{"x":24976.182577022246,"y":17334.014611826147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"d2ca2f05-9e18-4fc3-9b07-b3ad5a09f135"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Last Market Order","project":"Superalgos","id":"64f31fc8-e7a0-4590-9ce9-51205074e2ec","savedPayload":{"position":{"x":25262.184622238598,"y":16986.59148344799},"targetPosition":{"x":24976.182577022246,"y":17334.014611826147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"a473ba23-3652-45df-b5aa-eff704fbef2a"}}},{"type":"Output Dataset","name":"Multi-Period-Market Last Limit Order","project":"Superalgos","id":"7280209a-9a0b-4c34-8451-f016acee4a32","savedPayload":{"position":{"x":25337.01771934886,"y":17065.13173758137},"targetPosition":{"x":24976.182577022246,"y":17334.014611826147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"aa73477a-f1c2-480f-b8a2-fc8c65561f09"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Last Limit Order","project":"Superalgos","id":"e0c58374-9ee5-4d5f-86ac-796f4de87e3b","savedPayload":{"position":{"x":25390.880389569473,"y":17159.29848701637},"targetPosition":{"x":24976.182577022246,"y":17334.014611826147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"0d10dd78-e8f9-4dc5-9ede-b6fcce403d3f"}}}],"outputDatasetFolders":[],"id":"79bfd8ed-cd40-43c3-b99e-af9a63bfc4e0","savedPayload":{"position":{"x":24976.182577022246,"y":17334.014611826147},"targetPosition":{"x":25046.57808629035,"y":17778.47436509396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5c956f59-bd9b-4041-aee0-3ee1ba411892","savedPayload":{"position":{"x":25052.57808629035,"y":17778.47436509396},"targetPosition":{"x":25472.68927821409,"y":17939.739942389344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Trading System","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Trading System Errors","project":"Superalgos","id":"106c42de-2f87-4f85-941b-e67092053811","savedPayload":{"position":{"x":24848.043146083233,"y":17641.515576746246},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"82759bb0-1939-4a43-bd9d-186752054028"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Errors","project":"Superalgos","id":"8876582c-98df-4822-8570-f8c3f231085f","savedPayload":{"position":{"x":24835.406391167166,"y":17568.276348547904},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"5b41f5ae-5c91-40e4-8e7b-0c2dc98ff02b"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Highlights","project":"Superalgos","id":"b8bec993-f796-4dd2-8cf3-e72a9e0b2393","savedPayload":{"position":{"x":24834.996765875156,"y":17493.956066464092},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"1a96b029-6afe-4b02-bfd7-d858938f6b40"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Highlights","project":"Superalgos","id":"860c883a-0a0a-45f6-87a3-f4ed6f8d154c","savedPayload":{"position":{"x":24846.825443717356,"y":17420.581994051536},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"85832f2a-5431-4ea2-9ae7-a2862beac305"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Values","project":"Superalgos","id":"5d53382f-8041-4704-a36a-1a5d663ed17e","savedPayload":{"position":{"x":24870.569769197293,"y":17350.155584733722},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2d28fc91-36e0-4bbf-8118-8c02245a8a59"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Values","project":"Superalgos","id":"fa2bab3c-82a3-4670-b02e-d2a4d548991c","savedPayload":{"position":{"x":24905.58205901271,"y":17284.59788736889},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"4c8b6784-0282-4453-bb72-660d206298aa"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Status","project":"Superalgos","id":"cd5ee465-4688-4951-91a9-48f527ea7d96","savedPayload":{"position":{"x":24950.907269167674,"y":17225.697145044996},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"588ee579-3944-47f8-9a00-87fea39b4db7"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Status","project":"Superalgos","id":"9a0ae6db-d0cd-49b6-8e92-c92b879140a6","savedPayload":{"position":{"x":25005.309046083155,"y":17175.060016469855},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"67cc2f38-110a-4b70-b91f-648014283cbe"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Progress","project":"Superalgos","id":"96ccac58-d9a3-469f-8c97-7b3f0fcd5d86","savedPayload":{"position":{"x":25067.303451099753,"y":17134.067750509854},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5502978a-0322-40a4-8a0b-311b9f22ede9"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Progress","project":"Superalgos","id":"f1450578-41ea-4075-83a3-f0f012ad8408","savedPayload":{"position":{"x":25135.199438455966,"y":17103.838509321522},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"57c213ac-8eea-4fbc-ad48-9b828781b485"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Running","project":"Superalgos","id":"23eb3773-e684-4c4b-b3f8-45d620255dba","savedPayload":{"position":{"x":25207.144982608348,"y":17085.196867802726},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"1fb06a27-a69a-4b27-9008-67d28b8eee12"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Running","project":"Superalgos","id":"0459832b-e014-4aa9-b16b-86a7eac6ea1b","savedPayload":{"position":{"x":25281.177596660455,"y":17078.651321338966},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"caea7873-efd9-4368-be1b-97935c04f9f0"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Announcements","project":"Superalgos","id":"a1aa12ef-cf9a-44a2-86f9-94a2267653dd","savedPayload":{"position":{"x":25355.27786388957,"y":17084.380415374806},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7632fd9d-7db0-4c4a-bf29-f1787da23a09"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Announcements","project":"Superalgos","id":"b2353a69-d88f-4473-96ac-065c14eeecc7","savedPayload":{"position":{"x":25427.424522170655,"y":17102.22787515958},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"995cf29f-77ed-49e4-8abf-186178470ae0"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Warnings","project":"Superalgos","id":"df6b19e2-377e-4a7f-b37b-bc4783d5b0db","savedPayload":{"position":{"x":25495.649598738117,"y":17131.706868515223},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"d6469ef9-152d-4c25-823f-0692ec747925"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Warnings","project":"Superalgos","id":"e553072c-eac0-4170-b9bf-e8c34f068546","savedPayload":{"position":{"x":25558.092091352682,"y":17172.01328534898},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"650b8920-10a9-460f-9954-ca579427e84a"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Infos","project":"Superalgos","id":"83acdf66-d968-4747-b6fa-4447c5800c98","savedPayload":{"position":{"x":25613.04873159127,"y":17222.047671680626},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"466b1cd4-bf0d-47c2-8fd7-edbbbb0d96ae"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Infos","project":"Superalgos","id":"c34c8c11-90c4-4280-b863-59c364a699e7","savedPayload":{"position":{"x":25659.020445569426,"y":17280.44521988094},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"62f0faba-33df-431f-b05b-5c528b905680"}}}],"outputDatasetFolders":[],"id":"a96d57e2-7c25-4e7f-a30f-5bf48a77b83e","savedPayload":{"position":{"x":25289.65778882998,"y":17528.644486450172},"targetPosition":{"x":25472.68927821409,"y":17939.739942389344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Simulation Objects","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Episodes","project":"Superalgos","id":"cf719042-19de-4d71-aebc-2fcb9e503cb7","savedPayload":{"position":{"x":25301.536388553945,"y":17209.869191403413},"targetPosition":{"x":25627.954855509473,"y":17519.628750465603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"54f033fc-ed63-4b7e-8759-b50afd8e5524"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episodes","project":"Superalgos","id":"7578f9e2-27ca-4138-8516-4b3873f39097","savedPayload":{"position":{"x":25444.923366125364,"y":17108.53329452643},"targetPosition":{"x":25627.954855509473,"y":17519.628750465603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"a25be9ce-70ff-4869-9b19-d2a919e9a4e0"}}},{"type":"Output Dataset","name":"Multi-Period-Market Strategies","project":"Superalgos","id":"9fa9a1e9-5d97-45c7-a70e-e4911a81fe1c","savedPayload":{"position":{"x":25616.17522877093,"y":17069.7829542266},"targetPosition":{"x":25627.954855509473,"y":17519.628750465603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"825ee3d0-0cae-44e9-b0f1-2504705fdd67"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Strategies","project":"Superalgos","id":"c927b0ad-5903-4231-a403-bde9789ad3d1","savedPayload":{"position":{"x":25789.220432804857,"y":17099.517558541862},"targetPosition":{"x":25627.954855509473,"y":17519.628750465603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"367fe505-47d7-4285-ad8f-5e12c1b45840"}}}],"outputDatasetFolders":[{"type":"Output Dataset Folder","name":"Orders","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Market Buy Orders","project":"Superalgos","id":"5b19d44d-cd03-458c-9e57-65083da4e050","savedPayload":{"position":{"x":25736.92539867225,"y":16790.489820789164},"targetPosition":{"x":25937.714414571663,"y":17193.210283510074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"6290f06d-8abd-48c3-8737-2c560a52f7ab"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Market Buy Orders","project":"Superalgos","id":"4eaf8717-f172-4859-8fda-21e3fcba02a7","savedPayload":{"position":{"x":25886.772968376106,"y":16746.10294845561},"targetPosition":{"x":25937.714414571663,"y":17193.210283510074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"8e5f18d5-f5fa-4d58-86cb-dc27f3fb0815"}}},{"type":"Output Dataset","name":"Multi-Period-Market Market Sell Orders","project":"Superalgos","id":"bdc77a40-3b58-4190-85f6-47249d62f054","savedPayload":{"position":{"x":26042.76482830682,"y":16755.64381933112},"targetPosition":{"x":25937.714414571663,"y":17193.210283510074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f50e87bf-1961-4883-aa71-d467d9bf83f7"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Market Sell Orders","project":"Superalgos","id":"f47b74df-875f-4dba-bcaf-76140246c646","savedPayload":{"position":{"x":26186.08605796209,"y":16817.96166357985},"targetPosition":{"x":25937.714414571663,"y":17193.210283510074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"399ad34d-572f-4ef9-b544-d5659e7f1d54"}}},{"type":"Output Dataset","name":"Multi-Period-Market Limit Buy Orders","project":"Superalgos","id":"99818d6b-6382-43b2-a196-b7336d945e31","savedPayload":{"position":{"x":26299.45000184941,"y":16925.54002947197},"targetPosition":{"x":25937.714414571663,"y":17193.210283510074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"b43153b8-8e5c-43cb-853b-897d37aab175"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Limit Buy Orders","project":"Superalgos","id":"84999b86-fd36-479b-a947-358630ac0a90","savedPayload":{"position":{"x":26369.183295262348,"y":17065.40337839331},"targetPosition":{"x":25937.714414571663,"y":17193.210283510074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"a1069d96-1b1d-4a52-b145-253eb48ff746"}}},{"type":"Output Dataset","name":"Multi-Period-Market Limit Sell Orders","project":"Superalgos","id":"0895ae97-a8da-4c98-a107-68fb84eee4d2","savedPayload":{"position":{"x":26386.8750738615,"y":17220.68212630076},"targetPosition":{"x":25937.714414571663,"y":17193.210283510074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"a52fd596-dff0-4b9c-ba4d-0e2371a3da16"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Limit Sell Orders","project":"Superalgos","id":"01e5a1db-d75a-4d29-aba9-84beb97840a1","savedPayload":{"position":{"x":26350.391448044968,"y":17372.647364526434},"targetPosition":{"x":25937.714414571663,"y":17193.210283510074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"6652ded1-f3d8-4a7d-bbbf-236e7fb3e2c2"}}}],"outputDatasetFolders":[],"id":"f73cc803-caac-49be-b8e7-2eebd0bd1176","savedPayload":{"position":{"x":25937.714414571663,"y":17193.210283510074},"targetPosition":{"x":25627.954855509473,"y":17519.628750465603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Stages","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Trigger Stages","project":"Superalgos","id":"de4c509c-f4bb-4100-8c9c-50013e57adce","savedPayload":{"position":{"x":26007.659898263788,"y":16887.693438464572},"targetPosition":{"x":26039.050311448646,"y":17336.597261081493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5db36a14-86da-4df7-a06a-9ded5b727b98"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trigger Stages","project":"Superalgos","id":"0a72482d-94b5-4973-a28d-ba2275b1c649","savedPayload":{"position":{"x":26163.087121566296,"y":16904.02949790925},"targetPosition":{"x":26039.050311448646,"y":17336.597261081493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"5852e81c-0f36-44be-962c-c334f4065fdc"}}},{"type":"Output Dataset","name":"Multi-Period-Market Open Stages","project":"Superalgos","id":"0b3a1f5e-bac1-4635-891d-c9b17b1d715e","savedPayload":{"position":{"x":26303.55367498026,"y":16972.539613612767},"targetPosition":{"x":26039.050311448646,"y":17336.597261081493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"38bd122e-b188-4889-9d29-75309bdaae5e"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Open Stages","project":"Superalgos","id":"78fa4192-e507-4531-bee6-9732a95cbcb7","savedPayload":{"position":{"x":26412.117219098414,"y":17084.960454519656},"targetPosition":{"x":26039.050311448646,"y":17336.597261081493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b58efc5b-1047-46d6-9eb0-c456978fa843"}}},{"type":"Output Dataset","name":"Multi-Period-Market Manage Stages","project":"Superalgos","id":"b1af7b5c-1882-41b0-b91c-dd03689bccfc","savedPayload":{"position":{"x":26475.683388272842,"y":17227.73240806164},"targetPosition":{"x":26039.050311448646,"y":17336.597261081493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"58cb2b91-eb31-492a-8217-44bfada1bc2c"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Manage Stages","project":"Superalgos","id":"dadd483b-cf25-4739-a092-d2447d9ffbf5","savedPayload":{"position":{"x":26486.58516436437,"y":17383.635069551936},"targetPosition":{"x":26039.050311448646,"y":17336.597261081493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"a69dd6d7-ac9f-4687-bbe3-eab22a0ca1b1"}}},{"type":"Output Dataset","name":"Multi-Period-Market Close Stages","project":"Superalgos","id":"bd786695-c78a-48c0-a6c0-9f164c79bf84","savedPayload":{"position":{"x":26443.507632283272,"y":17533.864277136578},"targetPosition":{"x":26039.050311448646,"y":17336.597261081493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"8fdce5c4-1fcb-4891-8ca3-0fedb838a716"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Close Stages","project":"Superalgos","id":"a080c3b2-1bda-429e-b746-10139f3ac083","savedPayload":{"position":{"x":26351.646578155196,"y":17660.300171233885},"targetPosition":{"x":26039.050311448646,"y":17336.597261081493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b8830d28-d5fc-4168-986d-93556d83d1f8"}}}],"outputDatasetFolders":[],"id":"a30a1230-38d1-44af-93e9-ae105d98fc53","savedPayload":{"position":{"x":26039.050311448646,"y":17336.597261081493},"targetPosition":{"x":25627.954855509473,"y":17519.628750465603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Position","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Positions","project":"Superalgos","id":"0dd4ba30-191c-4ce2-8262-cad012c0add5","savedPayload":{"position":{"x":26193.234389019824,"y":17072.906538666033},"targetPosition":{"x":26077.800651748476,"y":17507.84912372706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"97d6f3b5-b6bb-4531-a8da-566a6cdb9be6"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Positions","project":"Superalgos","id":"ffd79af7-495b-4921-8d5d-91a0032057f2","savedPayload":{"position":{"x":26311.095998146862,"y":17123.046211382498},"targetPosition":{"x":26077.800651748476,"y":17507.84912372706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"5ef4bdfe-1aac-421f-80be-44048bf68c9e"}}},{"type":"Output Dataset","name":"Multi-Period-Market Position Base Asset","project":"Superalgos","id":"bb3b699b-d8fa-46f8-aa0d-410252f49d06","savedPayload":{"position":{"x":26410.05740576955,"y":17204.36032754608},"targetPosition":{"x":26077.800651748476,"y":17507.84912372706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"24ca111e-c5df-49ab-ad4b-63c77ee7369b"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Position Base Asset","project":"Superalgos","id":"5c6d0396-31b0-4a7d-bab7-77b6e3a41ee9","savedPayload":{"position":{"x":26482.10134718845,"y":17310.26130105888},"targetPosition":{"x":26077.800651748476,"y":17507.84912372706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"c2e14033-09ed-4081-a596-a6f2e71b3788"}}},{"type":"Output Dataset","name":"Multi-Period-Market Position Quoted Asset","project":"Superalgos","id":"449ddb5d-94c5-40fe-ae60-ccc7ff082699","savedPayload":{"position":{"x":26521.391250731624,"y":17432.169664864225},"targetPosition":{"x":26077.800651748476,"y":17507.84912372706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"68574259-4980-4e2c-82ab-bb6d3e8a8c31"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Position Quoted Asset","project":"Superalgos","id":"28b4287f-0797-4c83-8d3a-7cb7af080fd7","savedPayload":{"position":{"x":26524.744082080055,"y":17560.20912834357},"targetPosition":{"x":26077.800651748476,"y":17507.84912372706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"0b29d44d-e997-43e5-86df-8b588a4535c6"}}},{"type":"Output Dataset","name":"Multi-Period-Market Stop Loss","project":"Superalgos","id":"967c1cd5-022f-48d3-b792-b49d7cffbffe","savedPayload":{"position":{"x":26491.888214777948,"y":17684.006695645818},"targetPosition":{"x":26077.800651748476,"y":17507.84912372706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"1f551e12-8f74-4693-aabc-516de943f824"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Stop Loss","project":"Superalgos","id":"78ba7f7c-da5f-44cc-ae11-98222fec5332","savedPayload":{"position":{"x":26425.485435792758,"y":17793.53302412063},"targetPosition":{"x":26077.800651748476,"y":17507.84912372706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e406d86c-3526-4c90-963e-49f108be83b7"}}},{"type":"Output Dataset","name":"Multi-Period-Market Take Profit","project":"Superalgos","id":"0de34b27-b9ef-42a2-ad98-8b3487b1e438","savedPayload":{"position":{"x":26330.915303365324,"y":17879.91494201313},"targetPosition":{"x":26077.800651748476,"y":17507.84912372706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"84efd920-bb57-4655-808f-85fde99ae2cc"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Take Profit","project":"Superalgos","id":"1d6784dd-e3bb-45e9-a132-306b2b55c0b6","savedPayload":{"position":{"x":26215.83932719469,"y":17936.154300068712},"targetPosition":{"x":26077.800651748476,"y":17507.84912372706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"aab8d138-e137-45b9-b6d8-f91d92b3009b"}}}],"outputDatasetFolders":[],"id":"be232ab1-f73d-4fb1-b815-164c11e85f92","savedPayload":{"position":{"x":26077.800651748476,"y":17507.84912372706},"targetPosition":{"x":25627.954855509473,"y":17519.628750465603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"442d65eb-1f72-45bb-ba42-cfec9273b223","savedPayload":{"position":{"x":25633.954855509473,"y":17519.628750465603},"targetPosition":{"x":25472.68927821409,"y":17939.739942389344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1339729e-7113-416c-862c-06814c5a35c7","savedPayload":{"position":{"x":25472.68927821409,"y":17939.739942389344},"targetPosition":{"x":25655.7207675982,"y":18350.835398328516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Low Frequency Trading","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"9ff19c3e-6b35-427a-9ba0-f21627416e21","savedPayload":{"position":{"x":25291.66312012947,"y":17720.269056028683},"targetPosition":{"x":25702.75857606864,"y":17903.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"7b2c9744-0bf2-4c3c-82ee-e20bbf7ad4ba"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"3b41c641-d428-4ccf-8454-ca60c3dc1bcd","savedPayload":{"position":{"x":25368.343404603813,"y":17602.191772551305},"targetPosition":{"x":25702.75857606864,"y":17903.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"98b46e4b-8a5b-499f-bd69-538b9af44db5","savedPayload":{"position":{"x":25477.75857606864,"y":17513.589113709793},"targetPosition":{"x":25702.75857606864,"y":17903.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[],"dataMineDataDependencies":[{"type":"Data Mine Data Dependencies","name":"Masters","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"Webhooks","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"External Signals Single File","project":"Superalgos","id":"e170700b-8548-48bc-a35e-a768c7ea4ab2","savedPayload":{"position":{"x":24714.128609369203,"y":17369.058508141694},"targetPosition":{"x":25161.663462284927,"y":17416.096316612136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Single File","id":"c52d1012-5e3b-41a0-b5af-84098b0594bf"}}}],"dataDependencyFolders":[],"id":"f12949fc-3258-490b-b278-3a48f6ffa3f8","savedPayload":{"position":{"x":25161.663462284927,"y":17416.096316612136},"targetPosition":{"x":25609.19831520065,"y":17463.13412508258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Candles Volumes","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"f2c3514a-28ab-42c3-a598-c6a89b68c5d6","savedPayload":{"position":{"x":24808.39142755848,"y":17505.10263569847},"targetPosition":{"x":25198.10285926148,"y":17280.10263569847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}},{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"8446860a-70ff-4f7a-82cb-66c584b79f37","savedPayload":{"position":{"x":24750.568006345755,"y":17233.064827228027},"targetPosition":{"x":25198.10285926148,"y":17280.10263569847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Daily","project":"Superalgos","id":"d729396c-c8e6-47bd-a94e-d6dfbbf92529","savedPayload":{"position":{"x":24863.68768779665,"y":16978.993862836982},"targetPosition":{"x":25198.10285926148,"y":17280.10263569847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2e683057-f911-4105-bc77-16f2706d1915"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Market","project":"Superalgos","id":"7bb8bd33-4613-4807-ba7d-2c437729694f","savedPayload":{"position":{"x":25104.542598393487,"y":16839.936215368256},"targetPosition":{"x":25198.10285926148,"y":17280.10263569847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1"}}}],"dataDependencyFolders":[],"id":"3b84d644-6b5a-4d13-a11f-9c000134665a","savedPayload":{"position":{"x":25198.10285926148,"y":17280.10263569847},"targetPosition":{"x":25609.19831520065,"y":17463.13412508258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Bollinger Bands","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Bollinger Bands Multi-Period-Market","project":"Superalgos","id":"625f34d8-09f0-4dac-9598-5c5235d798ec","savedPayload":{"position":{"x":24834.61672340561,"y":17255.585613089082},"targetPosition":{"x":25274.78314373582,"y":17162.02535222109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f5b2a7d8-fc32-44a3-a002-9b0fc30a9719"}}},{"type":"Data Dependency","name":"Bollinger Bands Multi-Period-Daily","project":"Superalgos","id":"f6842101-28cb-4f3e-9f74-4377123ec4be","savedPayload":{"position":{"x":24863.68768779665,"y":16978.993862836982},"targetPosition":{"x":25274.78314373582,"y":17162.02535222109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"506104fa-e99a-4a46-930e-176bce311aff"}}},{"type":"Data Dependency","name":"Percentage Bandwidth Multi-Period-Market","project":"Superalgos","id":"0290bfa0-4693-4ca4-94f0-97c862e4ad6b","savedPayload":{"position":{"x":25049.78314373582,"y":16772.313920518092},"targetPosition":{"x":25274.78314373582,"y":17162.02535222109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"207e9481-0730-4304-a938-cfe223d70856"}}},{"type":"Data Dependency","name":"Percentage Bandwidth Multi-Period-Daily","project":"Superalgos","id":"ba5cb2d2-79a1-4b53-9725-20d87e3cf4f4","savedPayload":{"position":{"x":25321.820952206264,"y":16714.490499305368},"targetPosition":{"x":25274.78314373582,"y":17162.02535222109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e60d62dd-87f7-4f2d-ac21-3ac5c30a50ea"}}}],"dataDependencyFolders":[],"id":"2396ed14-c0eb-45df-9f72-21d2014029d4","savedPayload":{"position":{"x":25274.78314373582,"y":17162.02535222109},"targetPosition":{"x":25609.19831520065,"y":17463.13412508258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Bollinger Channels","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Bollinger Channels Objects Market","project":"Superalgos","id":"5fa6ba7d-a6c0-4aa0-853f-e59932a0ad6a","savedPayload":{"position":{"x":24941.034826345156,"y":17151.5643733297},"targetPosition":{"x":25384.19831520065,"y":17073.42269337958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"610cd062-ab88-4892-b711-0fb430305c61"}}},{"type":"Data Dependency","name":"Bollinger Channels Objects Daily","project":"Superalgos","id":"a3493163-163c-4d13-af29-29685cdfa3e4","savedPayload":{"position":{"x":24941.034826345156,"y":16995.28101342946},"targetPosition":{"x":25384.19831520065,"y":17073.42269337958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"64910fea-c92a-4a55-850a-aa62d98b478e"}}},{"type":"Data Dependency","name":"Bollinger Channels Market","project":"Superalgos","id":"410a9af3-ac58-4c9e-804c-e7abe8f8fd14","savedPayload":{"position":{"x":24994.48688349765,"y":16848.42269337958},"targetPosition":{"x":25384.19831520065,"y":17073.42269337958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"22c1f2c6-3838-4657-add8-2e01d7056917"}}},{"type":"Data Dependency","name":"Bollinger Channels Daily","project":"Superalgos","id":"c11d1a08-cc02-4379-ad3c-c4c8931b5eb3","savedPayload":{"position":{"x":25094.943890841707,"y":16728.70269397604},"targetPosition":{"x":25384.19831520065,"y":17073.42269337958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"96b4e65b-e6db-44a0-80a5-ceb9d68a09ec"}}},{"type":"Data Dependency","name":"Bollinger Sub-Channels Objects Market","project":"Superalgos","id":"ac9258ac-bf28-4b70-84d2-302a66f65945","savedPayload":{"position":{"x":25230.2892507041,"y":16650.56101402592},"targetPosition":{"x":25384.19831520065,"y":17073.42269337958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"869f615e-0cc0-44fd-8648-4a951c23a410"}}},{"type":"Data Dependency","name":"Bollinger Sub-Channels Objects Daily","project":"Superalgos","id":"8446895f-31d3-4e4d-849e-2ab7cfaae2e7","savedPayload":{"position":{"x":25384.19831520065,"y":16623.42269337958},"targetPosition":{"x":25384.19831520065,"y":17073.42269337958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"029479ae-275d-4854-ad3e-66948656a053"}}},{"type":"Data Dependency","name":"Bollinger Sub-Channels Market","project":"Superalgos","id":"6cf4b1f9-2376-400f-8c7e-738cee86f72e","savedPayload":{"position":{"x":25538.1073796972,"y":16650.56101402592},"targetPosition":{"x":25384.19831520065,"y":17073.42269337958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"f8d44a4d-3771-4a71-97ca-dc604ff565d3"}}},{"type":"Data Dependency","name":"Bollinger Sub-Channels Daily","project":"Superalgos","id":"39a87346-264f-4a2f-be2a-de925bec5061","savedPayload":{"position":{"x":25673.452739559594,"y":16728.70269397604},"targetPosition":{"x":25384.19831520065,"y":17073.42269337958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"ca71e765-0f66-4b18-b500-847b9d16169b"}}}],"dataDependencyFolders":[],"id":"4dc0e452-a8ec-418f-890f-9965a15fe248","savedPayload":{"position":{"x":25384.19831520065,"y":17073.42269337958},"targetPosition":{"x":25609.19831520065,"y":17463.13412508258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Candle Channels","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Candles Channels Multi-Period-Market","project":"Superalgos","id":"a142e50f-d9b3-4f78-ae5b-adb92ec15b42","savedPayload":{"position":{"x":25104.542598393487,"y":16839.936215368256},"targetPosition":{"x":25515.63805433266,"y":17022.967704752366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"df7d1cd7-95b0-499c-b51a-772c3fb8a2b0"}}},{"type":"Data Dependency","name":"Candles Channels Multi-Period-Daily","project":"Superalgos","id":"5180ab21-60ae-48a5-ae22-ee7e6acc41e3","savedPayload":{"position":{"x":25290.63805433266,"y":16633.256273049366},"targetPosition":{"x":25515.63805433266,"y":17022.967704752366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"07734f1c-e2e7-4a35-8567-6a996c68883e"}}},{"type":"Data Dependency","name":"Candles Channels Objects Multi-Period-Market","project":"Superalgos","id":"182619da-31d1-41fe-a220-795b2769e437","savedPayload":{"position":{"x":25562.675862803102,"y":16575.432851836642},"targetPosition":{"x":25515.63805433266,"y":17022.967704752366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"566b9df4-da86-4b4f-a3f4-ef8a76443714"}}},{"type":"Data Dependency","name":"Candles Channels Objects Multi-Period-Daily","project":"Superalgos","id":"be87e981-7a56-4dc3-9452-ee152d92e9d5","savedPayload":{"position":{"x":25816.746827194147,"y":16688.552533287537},"targetPosition":{"x":25515.63805433266,"y":17022.967704752366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"8a7d224b-7571-4e1a-8b8f-8a35aa25dc63"}}}],"dataDependencyFolders":[],"id":"912d599b-1317-4c28-9bf5-3e062a91c348","savedPayload":{"position":{"x":25515.63805433266,"y":17022.967704752366},"targetPosition":{"x":25609.19831520065,"y":17463.13412508258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Resistances and Supports","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Resistances Multi-Period-Market","project":"Superalgos","id":"027de631-ace2-402f-9762-9c5c8c27e485","savedPayload":{"position":{"x":25321.820952206264,"y":16714.490499305368},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"44e905fc-719f-453b-a567-fd5e3bfcae91"}}},{"type":"Data Dependency","name":"Resistances Multi-Period-Daily","project":"Superalgos","id":"7c182dfd-eaa5-418f-b390-747883b8f9ac","savedPayload":{"position":{"x":25562.675862803102,"y":16575.432851836642},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f4530d48-3239-4ab0-8c4d-d611cd55fde3"}}},{"type":"Data Dependency","name":"Supports Multi-Period-Market","project":"Superalgos","id":"0bcaadbd-88db-4652-9cf8-c121d4aaa0a3","savedPayload":{"position":{"x":25839.267613055203,"y":16604.503816227683},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4a1bd251-76ed-4530-8723-08e41d50f12d"}}},{"type":"Data Dependency","name":"Supports Multi-Period-Daily","project":"Superalgos","id":"1bde572c-ed3c-4256-be83-0ecba9076c8f","savedPayload":{"position":{"x":26045.947555374092,"y":16790.599272166855},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"deaaf4ec-9352-40b6-af9a-8541a73a5e13"}}}],"dataDependencyFolders":[],"id":"d03a3998-80a0-4b6c-a68b-bea7580e0931","savedPayload":{"position":{"x":25656.236123671093,"y":17015.599272166855},"targetPosition":{"x":25609.19831520065,"y":17463.13412508258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Fees Band","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Fees Band 0.2 Multi-Period-Market","project":"Superalgos","id":"eab5c460-85c6-486a-883f-78850eed29c6","savedPayload":{"position":{"x":25745.191996114318,"y":16604.503816227683},"targetPosition":{"x":25792.22980458476,"y":17052.038669143407},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9c699a57-f0cf-434c-8ef8-40aac182200e"}}},{"type":"Data Dependency","name":"Fees Band 0.2 Multi-Period-Daily","project":"Superalgos","id":"e03ae842-b68e-4964-a49b-836d6c3fb842","savedPayload":{"position":{"x":26156.287452053486,"y":16787.535305611793},"targetPosition":{"x":25792.22980458476,"y":17052.038669143407},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2dd03ed7-736e-4959-ad8e-8108e59b8796"}}}],"dataDependencyFolders":[],"id":"ade2ab64-6c54-408d-9e7b-c7c0c1593bc3","savedPayload":{"position":{"x":25792.22980458476,"y":17052.038669143407},"targetPosition":{"x":25609.19831520065,"y":17463.13412508258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Volume Analysis","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Volume Analysis Multi-Period-Market","project":"Superalgos","id":"45ee64c9-980b-4490-aa7e-b5164d903221","savedPayload":{"position":{"x":26003.86734893013,"y":16688.552533287537},"targetPosition":{"x":25910.307088062138,"y":17128.71895361775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"1d4df142-34c0-4439-a532-208c56cbb349"}}},{"type":"Data Dependency","name":"Volume Analysis Multi-Period-Daily","project":"Superalgos","id":"9d98733b-caaa-44f4-84cf-36cb4cf5bc27","savedPayload":{"position":{"x":26338.282520394958,"y":16989.661306149024},"targetPosition":{"x":25910.307088062138,"y":17128.71895361775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"cccbe688-75e9-405c-a087-8c1bb953430f"}}}],"dataDependencyFolders":[],"id":"2a8af8f6-eabb-4377-b1cc-c5464ec88a54","savedPayload":{"position":{"x":25910.307088062138,"y":17128.71895361775},"targetPosition":{"x":25609.19831520065,"y":17463.13412508258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Candle Analysis","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Candle Analysis Multi-Period-Market","project":"Superalgos","id":"26311546-6d42-4f80-976d-7b68ec9a8be0","savedPayload":{"position":{"x":26223.90974690365,"y":16848.42269337958},"targetPosition":{"x":25998.90974690365,"y":17238.13412508258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f65e4bf0-df3b-414c-aeba-f21dadb5d7ec"}}},{"type":"Data Dependency","name":"Candle Analysis Multi-Period-Daily","project":"Superalgos","id":"0f5ea6a7-b90e-46dc-9126-1022f05e4c58","savedPayload":{"position":{"x":26448.90974690365,"y":17238.13412508258},"targetPosition":{"x":25998.90974690365,"y":17238.13412508258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2127b8f1-932e-41c4-8eb9-1e0b6f02c2ec"}}}],"dataDependencyFolders":[],"id":"5c27c81a-7203-4a74-84d8-fecec21ae83a","savedPayload":{"position":{"x":25998.90974690365,"y":17238.13412508258},"targetPosition":{"x":25609.19831520065,"y":17463.13412508258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7bf4a444-8a2b-43e6-bb0b-0f55b71eba57","savedPayload":{"position":{"x":25609.19831520065,"y":17463.13412508258},"targetPosition":{"x":25702.75857606864,"y":17903.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Masters","id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"SMA","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"bef815ec-a180-44fd-84cc-881c9e0fee51","savedPayload":{"position":{"x":25051.32356560553,"y":17419.160283167195},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"3b21f9d7-2cbc-4c23-80c8-cc5e5b06a22c"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"fe15b835-f41b-4315-874f-b57fe979e699","savedPayload":{"position":{"x":25004.285757135083,"y":17337.68840901969},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2c338fe0-385f-45ab-b210-b98ef013228d"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"189fb331-8bfc-41c6-b857-86fb4ff389f7","savedPayload":{"position":{"x":24975.214792744042,"y":17248.217180503572},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"78a6ef37-4df8-4ac8-83a0-c9a732467c59"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"1f352966-dd1e-44a9-a620-b95a41676c5d","savedPayload":{"position":{"x":24965.381213074255,"y":17154.65691963558},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f155e2ed-7082-4021-a4ff-a6f3cfd5683d"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"da036b3d-baad-4035-9cb1-42b14c47383e","savedPayload":{"position":{"x":24975.214792744042,"y":17061.09665876759},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"af9b9cef-2a74-486f-b79e-047d68669a1f"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"3d7e2d6d-8cb1-4e24-b650-c80e64bfefef","savedPayload":{"position":{"x":25004.285757135083,"y":16971.62543025147},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"de5cfa30-edbf-4d5b-8d7f-facfb69a0f3e"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"5661a97f-67f0-4d48-80c4-f9437a377800","savedPayload":{"position":{"x":25051.32356560553,"y":16890.153556103967},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Muti-Period-Market","id":"a5d28568-fb58-469a-9820-b9f0e8eab705"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"4a0f04fa-0d82-4d9d-a227-6ec70b20658c","savedPayload":{"position":{"x":25114.272440212768,"y":16820.241748170753},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"01f32aa3-55e9-4f8c-80c7-997b52073274"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"2a2ebb5d-4110-4991-8e60-08787274cea5","savedPayload":{"position":{"x":25190.381213074255,"y":16764.945487932582},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"c0862b3d-d35a-4d3e-8d80-258b8a01c37c"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"f28be2b2-c306-4f80-a356-a31bf341ee93","savedPayload":{"position":{"x":25276.32356560553,"y":16726.68148730276},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f5050eb2-0a99-464e-b5e2-2d8f40453e9a"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"ed85972a-3737-4f94-ba89-d9e732337af0","savedPayload":{"position":{"x":25368.343404603813,"y":16707.122066719858},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"6ba76363-0f50-4e67-8678-3eb4fd6d07d6"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"c3ec6f92-a652-4b27-aa73-44142faa027f","savedPayload":{"position":{"x":25462.419021544698,"y":16707.122066719858},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"92d92b3e-6870-499b-bfec-33bab220bf62"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"a8da09cf-3d39-4f02-8fc1-16131caa2c30","savedPayload":{"position":{"x":25554.43886054298,"y":16726.68148730276},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4c486321-22e0-4991-9a1c-571bada649ad"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"18845738-837c-46d6-84d0-b4f92b0e3017","savedPayload":{"position":{"x":25640.381213074255,"y":16764.945487932582},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"819688c9-c7bd-444b-9658-2a4379125c72"}}}],"dataDependencyFolders":[],"id":"62091258-dc3b-45f9-b550-dc3a5fc51d73","savedPayload":{"position":{"x":25415.381213074255,"y":17154.65691963558},"targetPosition":{"x":25749.796384539084,"y":17455.76569249707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"EMA","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"231dd176-f158-4a5f-958d-7f37cc2a9e5d","savedPayload":{"position":{"x":25206.236123671093,"y":17015.599272166855},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ea1af06a-2584-43f0-aecf-ec8ad9169e9c"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"fd08ce43-24d9-463d-a807-3dbaa049a5df","savedPayload":{"position":{"x":25216.06970334088,"y":16922.039011298864},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e7f5899c-fc4c-412d-a8db-77c1bef8ed21"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"f9d281a8-2917-4179-9a18-11e7621a6c62","savedPayload":{"position":{"x":25245.14066773192,"y":16832.567782782746},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"85e3f0ce-5331-4c0b-900a-e73aaf53d96e"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"f8a60f97-4718-41a9-a396-4afdd11ad8bc","savedPayload":{"position":{"x":25292.178476202367,"y":16751.09590863524},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e04edb48-09ab-4f92-beb7-14ba647de7d6"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"6ac34e3c-04d6-498a-bbc8-6f882e15435b","savedPayload":{"position":{"x":25355.127350809606,"y":16681.184100702027},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"6b6840f7-3b76-474a-9d27-9515cbcd6499"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"e9e7337b-0d08-472d-9590-bdca59b16724","savedPayload":{"position":{"x":25431.236123671093,"y":16625.887840463856},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ef3d5a7d-11eb-4ead-8e24-49ac7c80b0c7"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"4ea2a940-bf12-408d-a286-1059ba3b33a3","savedPayload":{"position":{"x":25517.178476202367,"y":16587.623839834036},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4e36a5a5-7a03-43a9-b3e0-0c5763c29199"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"52be5cf8-6fb1-4386-b83d-b7269e09c2a5","savedPayload":{"position":{"x":25609.19831520065,"y":16568.06441925113},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"15ccbcff-318d-46db-93f2-d649b57fd52a"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"c1539b2b-5d26-47b7-b3c7-f0b900a3ce98","savedPayload":{"position":{"x":25703.273932141536,"y":16568.06441925113},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5586aa74-2ecb-4b71-83ea-d621aa400660"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"babba032-d47c-4603-84db-bb40c55ba793","savedPayload":{"position":{"x":25795.29377113982,"y":16587.623839834036},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"0198fa3f-98e3-4c57-a4a4-a7a8e27905d3"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"f77bda7f-9b0b-4946-a552-1c34a1eb3ccd","savedPayload":{"position":{"x":25881.236123671093,"y":16625.887840463856},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ea61dfed-8f93-4b4f-8575-61ca2547ea90"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"1665a947-acc8-4d27-add5-f9fc01de4c33","savedPayload":{"position":{"x":25957.34489653258,"y":16681.184100702027},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b251aca0-1996-4d13-99ed-6fb9796ec8d6"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"0bb7c02e-5234-4ff2-bde8-d5a11b0f867c","savedPayload":{"position":{"x":26020.29377113982,"y":16751.09590863524},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"dea3491f-aae7-4419-a98f-108cf5d69b87"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"d076c888-377a-4c93-93df-7437a9225811","savedPayload":{"position":{"x":26067.331579610265,"y":16832.567782782746},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"6624337b-4afd-44b8-a2ea-3f1779ddda7e"}}}],"dataDependencyFolders":[],"id":"6683a764-437a-4d1d-97f5-3a546847fa61","savedPayload":{"position":{"x":25656.236123671093,"y":17015.599272166855},"targetPosition":{"x":25749.796384539084,"y":17455.76569249707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"MACD","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"bd25822d-bdc6-414a-b5e3-9f45e497de5c","savedPayload":{"position":{"x":25609.124963770802,"y":16732.073969851346},"targetPosition":{"x":25932.827873923194,"y":17044.670236557897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"01d43ed0-2a80-4eca-bee6-db2fe40470fc"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"cd447f86-6370-418e-9a9e-805a227b7bb0","savedPayload":{"position":{"x":25735.56085786811,"y":16640.21291572327},"targetPosition":{"x":25932.827873923194,"y":17044.670236557897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"dd5d3067-ff7b-4353-ba4f-c030bd3da796"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"0c3a0108-0ce2-42d9-b801-573c8204ffac","savedPayload":{"position":{"x":25885.79006545275,"y":16597.135383642173},"targetPosition":{"x":25932.827873923194,"y":17044.670236557897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"19b1d791-d2ea-4f25-a6e1-fe0a64450745"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"721fca0d-2aea-4a9f-809b-55f98813ab82","savedPayload":{"position":{"x":26041.692726943045,"y":16608.0371597337},"targetPosition":{"x":25932.827873923194,"y":17044.670236557897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ec2611a6-699b-45a5-beec-679dd4b7734a"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"0694d871-4dd3-43b1-a59e-279aa4b07ca9","savedPayload":{"position":{"x":26184.46468048503,"y":16671.603328908128},"targetPosition":{"x":25932.827873923194,"y":17044.670236557897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"c390cbd3-0ba0-4507-8614-42c88f4ce7e6"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"1b8fe42e-4cad-46a5-b14f-2c43d3a9abc0","savedPayload":{"position":{"x":26296.88552139192,"y":16780.166873026283},"targetPosition":{"x":25932.827873923194,"y":17044.670236557897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"29e18539-f188-4d29-9531-25cd3ee8f282"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"e9499179-7d66-427d-ae30-f1ff4352f885","savedPayload":{"position":{"x":26365.395637095437,"y":16920.633426440247},"targetPosition":{"x":25932.827873923194,"y":17044.670236557897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"89254c6c-9be2-4037-b063-467edc660d10"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"ede6d255-7013-45a4-a7b0-55334f2d6a19","savedPayload":{"position":{"x":26381.731696540115,"y":17076.060649742754},"targetPosition":{"x":25932.827873923194,"y":17044.670236557897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"8a9dde13-e4b8-40f3-80bc-ea51050b2f08"}}}],"dataDependencyFolders":[],"id":"7e39fc22-ca87-4b68-a561-77385aa07e58","savedPayload":{"position":{"x":25932.827873923194,"y":17044.670236557897},"targetPosition":{"x":25749.796384539084,"y":17455.76569249707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"RSI","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"89a4fbdb-b730-45d3-8f24-08754277b666","savedPayload":{"position":{"x":26364.507816242083,"y":16841.05426079407},"targetPosition":{"x":26139.507816242083,"y":17230.76569249707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5ec62760-e144-4496-98ab-0415a4b315ec"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"2d3440aa-d836-4e8a-af84-e92ff1225b74","savedPayload":{"position":{"x":26589.507816242083,"y":17230.76569249707},"targetPosition":{"x":26139.507816242083,"y":17230.76569249707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f1556d09-f134-4678-83fb-04002d1dcd34"}}}],"dataDependencyFolders":[],"id":"4de082b9-0076-41c1-b482-579568452f4c","savedPayload":{"position":{"x":26139.507816242083,"y":17230.76569249707},"targetPosition":{"x":25749.796384539084,"y":17455.76569249707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"628ce72e-6a3f-47a7-b25a-96b0e20015b5","savedPayload":{"position":{"x":25749.796384539084,"y":17455.76569249707},"targetPosition":{"x":25702.75857606864,"y":17903.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Sparta","id":"9cfffc48-486a-48cb-b641-98c82e314d3a"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"Super Trend","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"f40d51a2-3f34-4ae1-8cef-bc9dafd64d19","savedPayload":{"position":{"x":25210.191245981965,"y":16945.115952620785},"targetPosition":{"x":25621.286701921137,"y":17128.147442004894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7c8e7a6f-99c8-4d90-9f44-e3e9e909eb88"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"8f2ba5ab-241f-485b-b74b-a5b5b439af54","savedPayload":{"position":{"x":25574.248893450695,"y":16680.61258908917},"targetPosition":{"x":25621.286701921137,"y":17128.147442004894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"c17b5d3f-7cf7-418a-92b8-f8c67a120446"}}}],"dataDependencyFolders":[],"id":"c5244750-4fb0-41e9-aadc-ddbb842082b0","savedPayload":{"position":{"x":25621.286701921137,"y":17128.147442004894},"targetPosition":{"x":25885.79006545275,"y":17492.20508947362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Wave Trend","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"933ba624-9b41-4c1e-a488-3f0e0a174724","savedPayload":{"position":{"x":25574.248893450695,"y":16680.61258908917},"targetPosition":{"x":25838.75225698231,"y":17044.670236557897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9b727bdd-1684-43e1-a39c-fbd14ce64828"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"59858690-cdaf-4855-9649-6c464193ded0","savedPayload":{"position":{"x":26021.78374636642,"y":16633.574780618725},"targetPosition":{"x":25838.75225698231,"y":17044.670236557897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"3bf983d5-4d3c-46f8-a130-9e621b76e62d"}}}],"dataDependencyFolders":[],"id":"72b7543e-6636-48e0-8c13-848f2e4eaf71","savedPayload":{"position":{"x":25838.75225698231,"y":17044.670236557897},"targetPosition":{"x":25885.79006545275,"y":17492.20508947362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Donchian Channel","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"04bc0f4a-9990-4aff-88ae-8f6dd12deb45","savedPayload":{"position":{"x":26021.78374636642,"y":16633.574780618725},"targetPosition":{"x":26068.82155483686,"y":17081.10963353445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7298225c-3b68-4f34-a935-fc0ab3d8f662"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"f0d7e325-bb7c-4c4d-adff-ac3f759621de","savedPayload":{"position":{"x":26432.879202305587,"y":16816.606270002834},"targetPosition":{"x":26068.82155483686,"y":17081.10963353445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"50ed783e-0e71-4903-8a82-854c8bd2ed6e"}}}],"dataDependencyFolders":[],"id":"aeb4261c-dd8c-423a-ab09-fea894f103ff","savedPayload":{"position":{"x":26068.82155483686,"y":17081.10963353445},"targetPosition":{"x":25885.79006545275,"y":17492.20508947362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"DMI Directional Movement","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"93e2e2b6-41a6-4091-9e19-713e23b7e809","savedPayload":{"position":{"x":26432.879202305587,"y":16816.606270002834},"targetPosition":{"x":26249.847712921477,"y":17227.701725942006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ffc7f78b-9ec3-4218-b76f-47233d535a17"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"2933cdda-b082-4de4-a7b7-6ef597e27c88","savedPayload":{"position":{"x":26697.3825658372,"y":17180.663917471564},"targetPosition":{"x":26249.847712921477,"y":17227.701725942006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"9b222dca-e8c2-4392-9c3e-7c970dca4a52"}}}],"dataDependencyFolders":[],"id":"c50b913b-8fe8-42d1-a059-5033deb921fd","savedPayload":{"position":{"x":26249.847712921477,"y":17227.701725942006},"targetPosition":{"x":25885.79006545275,"y":17492.20508947362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Ichimoku Cloud","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"46a32fec-eef5-4d46-acf2-096212edffcd","savedPayload":{"position":{"x":26697.3825658372,"y":17180.663917471564},"targetPosition":{"x":26333.324918368475,"y":17445.167281003178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"80018870-2528-42bf-a3a7-6f0b5e44d9c9"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"80251ed0-ab65-45ad-978a-c223d47ee44b","savedPayload":{"position":{"x":26744.420374307647,"y":17628.198770387287},"targetPosition":{"x":26333.324918368475,"y":17445.167281003178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ef8da44c-8cc5-41fc-add6-f2feff945632"}}}],"dataDependencyFolders":[],"id":"fd401312-a6ed-4513-97fa-f167d821dba0","savedPayload":{"position":{"x":26333.324918368475,"y":17445.167281003178},"targetPosition":{"x":25885.79006545275,"y":17492.20508947362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6487d9a5-96fe-4334-998a-fff109bda46c","savedPayload":{"position":{"x":25885.79006545275,"y":17492.20508947362},"targetPosition":{"x":25702.75857606864,"y":17903.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Zeus","id":"d2083ac0-43e2-41e4-83c7-eb09a6f29353"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"ATR","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"5910fe10-93b7-406d-9e80-8f7e110bfec8","savedPayload":{"position":{"x":25602.914413045364,"y":16874.414517551642},"targetPosition":{"x":25980.316168620804,"y":17119.502083308405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"67695466-be2d-43b4-9824-83baa7a08412"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"dc5fe2c3-f0db-4674-b969-2b6e6fa2d7a7","savedPayload":{"position":{"x":25819.05059132542,"y":16699.390891384664},"targetPosition":{"x":25980.316168620804,"y":17119.502083308405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e3d0bccf-5f97-4902-92df-4ac8fe8c41a8"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"40206771-eb9c-4e62-8482-549585b6fb46","savedPayload":{"position":{"x":26096.784738916936,"y":16684.835461478324},"targetPosition":{"x":25980.316168620804,"y":17119.502083308405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2570d2c7-72e3-4131-97dc-a9f97f493e93"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"903ed685-f822-42be-8333-380652787803","savedPayload":{"position":{"x":26330.031851276442,"y":16836.307907335977},"targetPosition":{"x":25980.316168620804,"y":17119.502083308405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"93eb665f-d903-4825-9fb1-2783e917ac89"}}}],"dataDependencyFolders":[],"id":"3f0a73ed-f13b-45ea-9e89-d86f0bc12775","savedPayload":{"position":{"x":25980.316168620804,"y":17119.502083308405},"targetPosition":{"x":26003.86734893013,"y":17568.885373947964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"ROC","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"01d29a72-9669-40b9-86ee-1021bb241e7d","savedPayload":{"position":{"x":26134.3246635978,"y":16818.083267269838},"targetPosition":{"x":26304.976121791617,"y":17234.470202483135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"40268fec-e5e8-4b05-9f27-c4072ebda94a"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"3abfc833-9e2f-44ef-aee7-6da1a98167ad","savedPayload":{"position":{"x":26331.887991066884,"y":16785.275644087655},"targetPosition":{"x":26304.976121791617,"y":17234.470202483135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"cb60d68b-b11d-4317-8830-65c212a8c728"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"032d1ed8-451f-437f-b0cd-719609b15c38","savedPayload":{"position":{"x":26524.12109277358,"y":16841.436512205426},"targetPosition":{"x":26304.976121791617,"y":17234.470202483135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"41a488be-c66c-458d-99fc-490b9e8172ef"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"65f334c0-f711-41df-b9f0-e427c9095965","savedPayload":{"position":{"x":26672.949845340612,"y":16975.442522924583},"targetPosition":{"x":26304.976121791617,"y":17234.470202483135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"30276899-0d68-40e3-9c35-a28442485b55"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"37fd30d9-3391-4b96-aa65-3a85f4f3f876","savedPayload":{"position":{"x":26748.8968890572,"y":17160.752142346322},"targetPosition":{"x":26304.976121791617,"y":17234.470202483135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9c6b7d85-01f5-449c-a5be-9a357b6588bc"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"50e77589-323e-4c28-a36e-d85c7da23e07","savedPayload":{"position":{"x":26736.919980485916,"y":17360.662527670836},"targetPosition":{"x":26304.976121791617,"y":17234.470202483135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"66f59b6d-9d4b-4cef-9ffd-aed019219809"}}}],"dataDependencyFolders":[],"id":"6a8eec40-4f99-4417-9a0e-64ae60cd18d8","savedPayload":{"position":{"x":26304.976121791617,"y":17234.470202483135},"targetPosition":{"x":26003.86734893013,"y":17568.885373947964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Stochastic","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"9a8dae77-3b63-4636-b010-ac827c15e377","savedPayload":{"position":{"x":26830.652395145127,"y":17300.246627881876},"targetPosition":{"x":26453.250639569687,"y":17545.33419363864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"88b1ff0e-ad99-474c-8833-7b76a5a57ebd"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"bc953f03-473c-42ed-b4c5-4d2406f1bdbf","savedPayload":{"position":{"x":26854.203575454452,"y":17749.629918521434},"targetPosition":{"x":26453.250639569687,"y":17545.33419363864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"4b941e0d-8b0a-41e2-bc20-54e0bc0d936a"}}}],"dataDependencyFolders":[],"id":"061d7a48-d160-472f-a32d-73dac531fe52","savedPayload":{"position":{"x":26453.250639569687,"y":17545.33419363864},"targetPosition":{"x":26003.86734893013,"y":17568.885373947964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"06794efe-addd-4dfe-ac59-872cbabf8ac6","savedPayload":{"position":{"x":26003.86734893013,"y":17568.885373947964},"targetPosition":{"x":25702.75857606864,"y":17903.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Alpha","id":"511bef1e-62d8-4ff9-8d87-15bd0d3d630c"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"Candles Probabilities","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"159cfa24-f7a3-4bfb-93ab-07d3dee7255e","savedPayload":{"position":{"x":26317.47000777164,"y":16838.589113709793},"targetPosition":{"x":26317.47000777164,"y":17288.589113709793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"85c67513-347a-4948-9121-dee04543fcff"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"250e683d-e337-4a84-a2ab-c67abaf8dd21","savedPayload":{"position":{"x":26707.18143947464,"y":17063.589113709793},"targetPosition":{"x":26317.47000777164,"y":17288.589113709793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"fa17370b-0a9c-4350-9cce-1df4be39b58c"}}}],"dataDependencyFolders":[],"id":"3c489ab2-8cac-4406-91ff-81b41284585a","savedPayload":{"position":{"x":26317.47000777164,"y":17288.589113709793},"targetPosition":{"x":26092.47000777164,"y":17678.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Candles Channels Probabilities","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"e27fe96d-9053-43ba-9b89-e011e8ac7a9c","savedPayload":{"position":{"x":26932.18143947464,"y":17453.300545412792},"targetPosition":{"x":26542.47000777164,"y":17678.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"fdee2b9c-3036-4db2-af42-b3507a6ffacf"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"e18c30b2-06f6-4d69-9dc2-88fa77aa2de9","savedPayload":{"position":{"x":26932.18143947464,"y":17903.300545412792},"targetPosition":{"x":26542.47000777164,"y":17678.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2774470d-7382-48e3-bd0a-957f0332a698"}}}],"dataDependencyFolders":[],"id":"cf8c7117-90a8-4435-be22-ba02a330930a","savedPayload":{"position":{"x":26542.47000777164,"y":17678.300545412792},"targetPosition":{"x":26092.47000777164,"y":17678.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51440018-dc42-4d54-8b9b-b46a95dadbb6","savedPayload":{"position":{"x":26092.47000777164,"y":17678.300545412792},"targetPosition":{"x":25702.75857606864,"y":17903.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Samurai","id":"37e312af-e076-47aa-a1cd-bf5b2e16127d"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"Candle Patterns","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"b91ef0de-7c9a-493b-b2e8-deab7b46e1f4","savedPayload":{"position":{"x":26645.719312161098,"y":17270.559392743104},"targetPosition":{"x":26583.09141672907,"y":17716.18002367681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"07be5b9b-e8fd-49fc-ab77-20f89fdea10f"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"1db4613f-6b9a-407f-8509-b3ab34722825","savedPayload":{"position":{"x":26794.353619982718,"y":17318.853606890294},"targetPosition":{"x":26583.09141672907,"y":17716.18002367681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"9e6d7f95-b2fe-466e-9a5d-175479cbf85d"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"74f98424-6c08-4c39-8150-048504c62d7b","savedPayload":{"position":{"x":26917.506588193897,"y":17415.071250815323},"targetPosition":{"x":26583.09141672907,"y":17716.18002367681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"144d8665-1ff0-4db3-9340-a33fd7d0d098"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"b9d23c99-4d79-43a4-bb69-de88eb811b71","savedPayload":{"position":{"x":27000.324151284123,"y":17547.60705663965},"targetPosition":{"x":26583.09141672907,"y":17716.18002367681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f0a11771-dd69-4b9a-9347-7cb2d1f231ff"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"0494a6a0-f00e-44cc-869b-ecf695c1a267","savedPayload":{"position":{"x":27032.81728888766,"y":17700.475250160685},"targetPosition":{"x":26583.09141672907,"y":17716.18002367681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"8c35ce52-9dee-4d20-92e6-50ba7fd2882b"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"0637f526-d44b-4ff9-a48f-c1b2c01cd2a5","savedPayload":{"position":{"x":27011.06684906189,"y":17855.237671145536},"targetPosition":{"x":26583.09141672907,"y":17716.18002367681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"4f1260c8-6d74-454e-963a-fa3ff910329c"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"34fdc94f-2082-449b-8a2f-8631e7437e61","savedPayload":{"position":{"x":26937.696255852094,"y":17993.227687573355},"targetPosition":{"x":26583.09141672907,"y":17716.18002367681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"087fc67e-78f9-4204-ba5e-8b670566a716"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"4ec5581a-ff21-49d8-ac01-4f48db483681","savedPayload":{"position":{"x":26821.555085634012,"y":18097.8016669472},"targetPosition":{"x":26583.09141672907,"y":17716.18002367681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b60cb94f-79c5-410c-b166-abc97d0f2bc3"}}}],"dataDependencyFolders":[],"id":"f3203c43-b002-4a72-bd37-a774c36ec109","savedPayload":{"position":{"x":26583.09141672907,"y":17716.18002367681},"targetPosition":{"x":26142.924996398855,"y":17809.7402845448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c890d827-7fc0-465b-8008-1296147df644","savedPayload":{"position":{"x":26142.924996398855,"y":17809.7402845448},"targetPosition":{"x":25702.75857606864,"y":17903.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Buddha","id":"38d04c99-51a6-4c1c-853e-ba67e216854b"}}}],"id":"32f1ed92-f4c2-4bde-954e-dfa12ee0a7a0","savedPayload":{"position":{"x":25702.75857606864,"y":17903.300545412792},"targetPosition":{"x":25655.7207675982,"y":18350.835398328516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"7b2c9744-0bf2-4c3c-82ee-e20bbf7ad4ba","savedPayload":{"position":{"x":25920.224131129813,"y":17986.77775085979},"targetPosition":{"x":25655.7207675982,"y":18350.835398328516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"","project":"Superalgos","id":"161c8533-2cd5-4dfd-b84c-7cb4073dae4a","savedPayload":{"position":{"x":26066.81622353737,"y":18167.803908944406},"targetPosition":{"x":25655.7207675982,"y":18350.835398328516},"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":"db6146e2-8060-4df0-862b-c32c6ec028c3","savedPayload":{"position":{"x":26103.255620513923,"y":18397.87320679896},"targetPosition":{"x":25655.7207675982,"y":18350.835398328516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"575d3201-4aa4-4a61-b067-251095b28455","savedPayload":{"position":{"x":25655.7207675982,"y":18350.835398328516},"targetPosition":{"x":25391.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"products":[],"productDefinitionFolders":[{"type":"Product Definition Folder","name":"Trading Engine","project":"Superalgos","products":[],"productDefinitionFolders":[{"type":"Product Definition Folder","name":"Trading Episode","project":"Superalgos","products":[{"type":"Product Definition","name":"Trading Episode Counters","config":"{\n \"codeName\": \"Trading-Episode-Counters\",\n \"singularVariableName\": \"tradingEpisodeCounter\",\n \"pluralVariableName\": \"tradingEpisodeCounters\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.tradingEpisodeCounters\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a57b7080-2b86-418d-88dc-8d8418f361e2","savedPayload":{"position":{"x":25303.217193651126,"y":17860.069597774705},"targetPosition":{"x":25525.131453997004,"y":17897.20530909336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"f66581e7-4401-4fa9-8f75-daeaa38c3365","savedPayload":{"position":{"x":25334.320632361807,"y":17777.973474640887},"targetPosition":{"x":25525.131453997004,"y":17897.20530909336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"8d851dd0-1c94-4b88-919a-f541a43f7123","savedPayload":{"position":{"x":24830.1814199832,"y":17651.11059506823},"targetPosition":{"x":25263.81512392708,"y":17530.853325833014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"55dffd72-5f50-4f8e-9f00-9a5f05373b30","savedPayload":{"position":{"x":24815.202323747173,"y":17495.546732755483},"targetPosition":{"x":25263.81512392708,"y":17530.853325833014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{\n \"codeName\": \"periods\",\n \"isString\": false\n}","project":"Superalgos","id":"072d17d9-3710-4c82-9db6-773d7b5f9a6e","savedPayload":{"position":{"x":24854.332552032636,"y":17344.241366637707},"targetPosition":{"x":25263.81512392708,"y":17530.853325833014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Strategies","config":"{\n \"codeName\": \"strategies\",\n \"isString\": false\n}","project":"Superalgos","id":"59c0eb7b-5d9e-4c58-883d-be392553b716","savedPayload":{"position":{"x":24942.8524218077,"y":17215.44415689808},"targetPosition":{"x":25263.81512392708,"y":17530.853325833014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Positions","config":"{\n \"codeName\": \"positions\",\n \"isString\": false\n}","project":"Superalgos","id":"3d5a037e-f23d-496c-bc01-061c60957e30","savedPayload":{"position":{"x":25070.08513036335,"y":17124.689947875577},"targetPosition":{"x":25263.81512392708,"y":17530.853325833014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Orders","config":"{\n \"codeName\": \"orders\",\n \"isString\": false\n}","project":"Superalgos","id":"38cad43d-43a6-4401-8ec1-8999bb75f16b","savedPayload":{"position":{"x":25220.68453529298,"y":17082.925036567784},"targetPosition":{"x":25263.81512392708,"y":17530.853325833014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hits","config":"{\n \"codeName\": \"hits\",\n \"isString\": false\n}","project":"Superalgos","id":"25df6755-ced7-47d9-8694-7e3472d335e0","savedPayload":{"position":{"x":25376.48612575158,"y":17095.186887662865},"targetPosition":{"x":25263.81512392708,"y":17530.853325833014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fails","config":"{\n \"codeName\": \"fails\",\n \"isString\": false\n}","project":"Superalgos","id":"9832fef8-1ed4-444c-aa3e-45dfaea1a902","savedPayload":{"position":{"x":25518.697930543254,"y":17159.996540953107},"targetPosition":{"x":25263.81512392708,"y":17530.853325833014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"590ba84a-0b08-4a74-84f3-a6e91599bb00","savedPayload":{"position":{"x":25263.81512392708,"y":17530.853325833014},"targetPosition":{"x":25525.131453997004,"y":17897.20530909336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"18ccacf3-b26d-4a36-ac30-cdb426c90c1e","savedPayload":{"position":{"x":25531.131453997004,"y":17897.20530909336},"targetPosition":{"x":25912.753097267396,"y":18135.668977998303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Trading Episode Counters","id":"292dc3fb-46e1-4387-bfc3-da2e3078da2b"}}},{"type":"Product Definition","name":"Trading Episode Statistics","config":"{\n \"codeName\": \"Trading-Episode-Statistics\",\n \"singularVariableName\": \"tradingEpisodeStatistics\",\n \"pluralVariableName\": \"tradingEpisodeStatistics\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.tradingEpisodeStatistics\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0f4ae6fe-d330-42f4-b122-647372d738b4","savedPayload":{"position":{"x":25439.875401784375,"y":17670.268837851996},"targetPosition":{"x":25635.70543337085,"y":17781.064138875277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"3eec72c3-2256-4270-8cf2-880e814d057f","savedPayload":{"position":{"x":25497.181601422577,"y":17603.761719313767},"targetPosition":{"x":25635.70543337085,"y":17781.064138875277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"f87de893-8566-4ce5-8d79-22e2de8181ef","savedPayload":{"position":{"x":25065.49928413865,"y":17340.647707643926},"targetPosition":{"x":25515.448164135636,"y":17347.430434931397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"331ffb66-b515-418f-b55b-67a0416f1e17","savedPayload":{"position":{"x":25085.63629039387,"y":17214.157207347635},"targetPosition":{"x":25515.448164135636,"y":17347.430434931397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss","config":"{\n \"codeName\": \"profitLoss\",\n \"isString\": false\n}","project":"Superalgos","id":"82ba6290-1d72-46a5-abad-68a8af299b84","savedPayload":{"position":{"x":25140.594098470014,"y":17098.46371134378},"targetPosition":{"x":25515.448164135636,"y":17347.430434931397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{\n \"codeName\": \"days\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"5d575a3f-bb9b-45e8-98ce-00fe0db57a23","savedPayload":{"position":{"x":25225.92035360342,"y":17002.940018622874},"targetPosition":{"x":25515.448164135636,"y":17347.430434931397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI","config":"{\n \"codeName\": \"ROI\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"d0719a00-2ca1-4782-a672-9926987b83f1","savedPayload":{"position":{"x":25334.70243005795,"y":16935.324890667893},"targetPosition":{"x":25515.448164135636,"y":17347.430434931397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Annualized Rate Of Return","config":"{ \n\"codeName\": \"annualizedRateOfReturn\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"19713de6-a416-443f-84df-9682afdf8cde","savedPayload":{"position":{"x":25458.12745095119,"y":16901.096103023097},"targetPosition":{"x":25515.448164135636,"y":17347.430434931397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail","config":"{\n \"codeName\": \"hitFail\",\n \"isString\": true\n}","project":"Superalgos","id":"6528399c-893e-4a81-8ad3-8096c3a451c0","savedPayload":{"position":{"x":25586.196255127223,"y":16903.026668497037},"targetPosition":{"x":25515.448164135636,"y":17347.430434931397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"406cf707-4a47-4839-bf3c-2b9a443661cf","savedPayload":{"position":{"x":25708.53346972622,"y":16940.96018415652},"targetPosition":{"x":25515.448164135636,"y":17347.430434931397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"7b5150d8-971e-4bf2-8e38-0e464715b636","savedPayload":{"position":{"x":25815.22806118879,"y":17011.823502162122},"targetPosition":{"x":25515.448164135636,"y":17347.430434931397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"0d2f6a78-333f-4d03-8b30-8c605923efcf","savedPayload":{"position":{"x":25897.636268251812,"y":17109.875697929412},"targetPosition":{"x":25515.448164135636,"y":17347.430434931397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ab06865a-4a17-4ca4-a9a9-c1ed76ac6cdc","savedPayload":{"position":{"x":25515.448164135636,"y":17347.430434931397},"targetPosition":{"x":25635.70543337085,"y":17781.064138875277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"dfd35f3c-f3ad-4597-b16b-195e3736e747","savedPayload":{"position":{"x":25635.70543337085,"y":17781.064138875277},"targetPosition":{"x":25912.753097267396,"y":18135.668977998303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Trading Episode Statistics","id":"7ac3b804-377e-4ac2-835a-0666fc1a0ed6"}}},{"type":"Product Definition","name":"Episode Candle","config":"{\n \"codeName\": \"Episode-Candle\",\n \"singularVariableName\": \"episodeCandle\",\n \"pluralVariableName\": \"episodeCandles\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\",\n \"saveAtCycle\": \"Second\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"6cd81e99-8c92-4b63-975d-cbffeff47a06","savedPayload":{"position":{"x":25621.56963892438,"y":17536.602203405477},"targetPosition":{"x":25767.69544979867,"y":17707.693545665483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"ec83880d-bc04-4a7b-9fa4-9dd1759296ab","savedPayload":{"position":{"x":25698.166626064307,"y":17493.705829499075},"targetPosition":{"x":25767.69544979867,"y":17707.693545665483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\"\n}","project":"Superalgos","id":"76a71cfd-0bfc-4ee8-a7af-c2bbd3e614f4","savedPayload":{"position":{"x":25402.049106991435,"y":17054.78502060278},"targetPosition":{"x":25803.0020428762,"y":17259.080745485575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\"\n}","project":"Superalgos","id":"1082ee08-3605-4b8f-83a5-2b64fb80bd29","savedPayload":{"position":{"x":25510.750421127617,"y":16916.89806096556},"targetPosition":{"x":25803.0020428762,"y":17259.080745485575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Open","config":"{\n \"codeName\": \"open\",\n \"isString\": false\n}","project":"Superalgos","id":"82addccc-28dd-452a-9d55-fc46d02a7e6d","savedPayload":{"position":{"x":25663.944395407474,"y":16831.105313152755},"targetPosition":{"x":25803.0020428762,"y":17259.080745485575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Close","config":"{\n \"codeName\": \"close\",\n \"isString\": false\n}","project":"Superalgos","id":"7d7ec861-beeb-4d3c-8f1d-ed84f7d1c802","savedPayload":{"position":{"x":25838.30863595373,"y":16810.467945305667},"targetPosition":{"x":25803.0020428762,"y":17259.080745485575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Min","config":"{\n \"codeName\": \"min\",\n \"isString\": false\n}","project":"Superalgos","id":"4ff85d4d-181e-4f7c-973e-b5b3482648f0","savedPayload":{"position":{"x":26007.297767758995,"y":16858.12780960081},"targetPosition":{"x":25803.0020428762,"y":17259.080745485575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Max","config":"{\n \"codeName\": \"max\",\n \"isString\": false\n}","project":"Superalgos","id":"97465250-e289-4598-a999-40707a4b2550","savedPayload":{"position":{"x":26145.184727396216,"y":16966.829123736992},"targetPosition":{"x":25803.0020428762,"y":17259.080745485575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Index","config":"{ \n\"codeName\": \"index\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"2c33ec1f-35ff-4a93-aa60-74e6c2407daa","savedPayload":{"position":{"x":26230.97747520902,"y":17120.02309801685},"targetPosition":{"x":25803.0020428762,"y":17259.080745485575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f1bb2e4c-d6db-4d33-bbff-ff26fb0020de","savedPayload":{"position":{"x":25803.0020428762,"y":17259.080745485575},"targetPosition":{"x":25767.69544979867,"y":17707.693545665483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"94816145-2bdc-4244-93d8-8d352ca36ab1","savedPayload":{"position":{"x":25773.69544979867,"y":17707.693545665483},"targetPosition":{"x":25912.753097267396,"y":18135.668977998303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Candle","id":"a55eb67e-bc93-44a4-b4d8-844dc6affe40"}}},{"type":"Product Definition","name":"Episode Balances","config":"{\n \"codeName\": \"Episode-Balances\",\n \"singularVariableName\": \"episodeBalance\",\n \"pluralVariableName\": \"episodeBalances\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"8cca405e-2e5a-4528-ae0d-a17777b67dd1","savedPayload":{"position":{"x":25843.66121000014,"y":17475.19186325882},"targetPosition":{"x":25922.45787078352,"y":17685.94310583971},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"59045de1-1968-41c9-bc81-1130508ad612","savedPayload":{"position":{"x":25930.310257541583,"y":17461.08016976041},"targetPosition":{"x":25922.45787078352,"y":17685.94310583971},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"1a453cb1-7975-468c-8a4d-1de614231b60","savedPayload":{"position":{"x":25788.107127859446,"y":16961.05136501033},"targetPosition":{"x":26109.069829978827,"y":17276.460533945265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"38cd5295-a701-4d8d-89af-2387291d988d","savedPayload":{"position":{"x":25915.339836415096,"y":16870.297155987828},"targetPosition":{"x":26109.069829978827,"y":17276.460533945265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Balance Base Asset","config":"{ \n\"codeName\": \"balanceBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"balance\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2e43bcef-22b9-4211-8dbe-38da5b295cfe","savedPayload":{"position":{"x":26065.939241344728,"y":16828.532244680035},"targetPosition":{"x":26109.069829978827,"y":17276.460533945265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Balance Quoted Asset","config":"{ \n\"codeName\": \"balanceQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"balance\",\n \"decimals\": 10\n}","project":"Superalgos","id":"841cdea4-9800-4bac-9612-344b752a6df6","savedPayload":{"position":{"x":26221.740831803327,"y":16840.794095775116},"targetPosition":{"x":26109.069829978827,"y":17276.460533945265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Balance Base Asset","config":"{ \n\"codeName\": \"beginBalanceBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"beginBalance\",\n \"decimals\": 10\n}","project":"Superalgos","id":"8190306f-f10b-463e-801d-91f3cde79d9f","savedPayload":{"position":{"x":26363.952636595,"y":16905.603749065358},"targetPosition":{"x":26109.069829978827,"y":17276.460533945265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Balance Quoted Asset","config":"{ \n\"codeName\": \"beginBalanceQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"beginBalance\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4900be55-f0a1-49ec-81a8-e661bc35c402","savedPayload":{"position":{"x":26475.421813239172,"y":17015.14420387534},"targetPosition":{"x":26109.069829978827,"y":17276.460533945265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Balance Base Asset","config":"{ \n\"codeName\": \"endBalanceBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"endBalance\",\n \"decimals\": 10\n}","project":"Superalgos","id":"36e48b03-d9f0-4512-aab8-6e2cd5074156","savedPayload":{"position":{"x":26542.703533922708,"y":17156.20326471005},"targetPosition":{"x":26109.069829978827,"y":17276.460533945265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Balance Quoted Asset","config":"{ \n\"codeName\": \"endBalanceQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"endBalance\",\n \"decimals\": 10\n}","project":"Superalgos","id":"eb3450ac-dafc-487a-8537-b35662082619","savedPayload":{"position":{"x":26557.682630158735,"y":17311.767127022795},"targetPosition":{"x":26109.069829978827,"y":17276.460533945265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"65f0b135-06c5-46aa-8678-c2aa4b053917","savedPayload":{"position":{"x":26109.069829978827,"y":17276.460533945265},"targetPosition":{"x":25922.45787078352,"y":17685.94310583971},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"35a371b7-0dd2-476f-ac7a-49699a74e5f0","savedPayload":{"position":{"x":25928.45787078352,"y":17685.94310583971},"targetPosition":{"x":25912.753097267396,"y":18135.668977998303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Episode Balances","id":"0f3b6cc9-4a41-40bf-87bc-b0ff1fc27d4d"}}},{"type":"Product Definition","name":"Distance To Trading Event","config":"{\n \"codeName\": \"Distance-To-Trading-Event\",\n \"singularVariableName\": \"distanceToTradingEvent\",\n \"pluralVariableName\": \"distanceToTradingEvents\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.distanceToTradingEvent\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"cab27391-302f-4bbb-a472-c80dd949b482","savedPayload":{"position":{"x":26073.362593817423,"y":17493.44481075381},"targetPosition":{"x":26075.326064304558,"y":17718.436243443248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"6a992d98-08e5-4856-a6f9-9d43a8397c03","savedPayload":{"position":{"x":26159.612547823137,"y":17509.819876165722},"targetPosition":{"x":26075.326064304558,"y":17718.436243443248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"5ef99c85-e377-409a-a30b-c99f945f50db","savedPayload":{"position":{"x":26162.342969907175,"y":17009.74041912518},"targetPosition":{"x":26390.73523323949,"y":17397.473541323867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"727014b4-c185-4a49-a0d5-c41de562cb72","savedPayload":{"position":{"x":26270.477964004276,"y":16963.839837379986},"targetPosition":{"x":26390.73523323949,"y":17397.473541323867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Trigger On","config":"{ \n\"codeName\": \"triggerOn\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"11bc1885-1aa3-4b04-b8e9-6968a903a36b","savedPayload":{"position":{"x":26386.808292265225,"y":16947.49067594499},"targetPosition":{"x":26390.73523323949,"y":17397.473541323867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Trigger Off","config":"{ \n\"codeName\": \"triggerOff\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"4e9caa14-bb7b-411c-92a6-d09331290be2","savedPayload":{"position":{"x":26503.40623506399,"y":16961.80710315372},"targetPosition":{"x":26390.73523323949,"y":17397.473541323867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Take Position","config":"{ \n\"codeName\": \"takePosition\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"aded0880-9e4c-4866-ac76-cc8a6760027a","savedPayload":{"position":{"x":26612.32583528605,"y":17005.81347815091},"targetPosition":{"x":26390.73523323949,"y":17397.473541323867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Close Position","config":"{ \n\"codeName\": \"closePosition\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b876f157-12ec-4493-aee6-30d3b299b7bc","savedPayload":{"position":{"x":26706.144402174425,"y":17076.510839204486},"targetPosition":{"x":26390.73523323949,"y":17397.473541323867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Phase","config":"{ \n\"codeName\": \"nextPhase\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"ad4372ea-786d-47b6-bb29-b7350a59de8e","savedPayload":{"position":{"x":26778.468355438177,"y":17169.08127799155},"targetPosition":{"x":26390.73523323949,"y":17397.473541323867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Move To Phase","config":"{ \n\"codeName\": \"moveToPhase\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"23e87458-5bdf-4cb4-987c-253b1d3a3db3","savedPayload":{"position":{"x":26824.36893718337,"y":17277.21627208865},"targetPosition":{"x":26390.73523323949,"y":17397.473541323867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Create Order","config":"{ \n\"codeName\": \"createOrder\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"cd9c601b-3f78-4b7f-a142-ba5345e4edd2","savedPayload":{"position":{"x":26840.718098618367,"y":17393.5466003496},"targetPosition":{"x":26390.73523323949,"y":17397.473541323867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Cancel Order","config":"{ \n\"codeName\": \"cancelOrder\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"6755f272-8f1c-4b0b-9af3-be4a1fc34a66","savedPayload":{"position":{"x":26826.40167140964,"y":17510.144543148366},"targetPosition":{"x":26390.73523323949,"y":17397.473541323867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Close Order","config":"{ \n\"codeName\": \"closeOrder\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"06385e3d-4ea7-4c84-83f4-2a2612555072","savedPayload":{"position":{"x":26782.395296412447,"y":17619.064143370426},"targetPosition":{"x":26390.73523323949,"y":17397.473541323867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ffd54dda-1030-46a0-b8ed-b01999775c8c","savedPayload":{"position":{"x":26390.73523323949,"y":17397.473541323867},"targetPosition":{"x":26075.326064304558,"y":17718.436243443248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"c026330c-81db-452d-b75b-d7e017ef9ab5","savedPayload":{"position":{"x":26081.326064304558,"y":17718.436243443248},"targetPosition":{"x":25912.753097267396,"y":18135.668977998303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Distance To Trading Event","id":"c229b04d-e511-4873-b866-0f6faae91da7"}}},{"type":"Product Definition","name":"Episode Base Asset","config":"{\n \"codeName\": \"Episode-BaseAsset\",\n \"singularVariableName\": \"episodeBaseAsset\",\n \"pluralVariableName\": \"episodeBaseAssets\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"2b565fc9-4af6-488d-b0e2-a1dd0389760f","savedPayload":{"position":{"x":26282.96841345648,"y":17589.159471037732},"targetPosition":{"x":26207.861870128883,"y":17801.253806533474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"48d12d31-544a-43d6-bcca-48ce4f5c2948","savedPayload":{"position":{"x":26358.416256559627,"y":17634.04622080106},"targetPosition":{"x":26207.861870128883,"y":17801.253806533474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"eb086b15-dcf6-4de3-b873-511952b0ef07","savedPayload":{"position":{"x":26555.288461587297,"y":17161.373625351527},"targetPosition":{"x":26614.02524808632,"y":17607.523812969743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"3b90f9b2-d9b0-4b49-b825-7f112e4541a7","savedPayload":{"position":{"x":26696.031234557788,"y":17165.059104565964},"targetPosition":{"x":26614.02524808632,"y":17607.523812969743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hits","config":"{\n \"codeName\": \"hits\",\n \"isString\": false\n}","project":"Superalgos","id":"59ec9bb8-0a42-4e61-8474-32b45a6334d7","savedPayload":{"position":{"x":26828.746690203145,"y":17212.056112271857},"targetPosition":{"x":26614.02524808632,"y":17607.523812969743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fails","config":"{\n \"codeName\": \"fails\",\n \"isString\": false\n}","project":"Superalgos","id":"19386d96-ffca-445b-93d0-50634a1be964","savedPayload":{"position":{"x":26940.44371504185,"y":17297.764253907553},"targetPosition":{"x":26614.02524808632,"y":17607.523812969743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Ratio","config":"{\n \"codeName\": \"hitRatio\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"8c9ac2a9-d69a-429e-a4e4-09ba2542b24a","savedPayload":{"position":{"x":27020.188626043757,"y":17413.79381940601},"targetPosition":{"x":26614.02524808632,"y":17607.523812969743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI","config":"{\n \"codeName\": \"ROI\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"6075eb9b-1c35-422b-bd04-28e49deda678","savedPayload":{"position":{"x":27060.175435704536,"y":17548.78702647072},"targetPosition":{"x":26614.02524808632,"y":17607.523812969743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss","config":"{ \n\"codeName\": \"profitLoss\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"0e30ca2c-d884-47b6-aa05-f24506544b67","savedPayload":{"position":{"x":27056.4899564901,"y":17689.52979944121},"targetPosition":{"x":26614.02524808632,"y":17607.523812969743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Annualized Rate Of Return","config":"{ \n\"codeName\": \"annualizedRateOfReturn\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"cbaf930e-b7f8-40c9-a2a2-4d2c665bff0d","savedPayload":{"position":{"x":27009.492948784206,"y":17822.245255086567},"targetPosition":{"x":26614.02524808632,"y":17607.523812969743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail","config":"{ \n\"codeName\": \"hitFail\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"0478e93b-fe1f-4e58-8b0f-e3239536c68d","savedPayload":{"position":{"x":26923.78480714851,"y":17933.94227992527},"targetPosition":{"x":26614.02524808632,"y":17607.523812969743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f1dbf511-3dc8-4446-aa67-61bce22e8042","savedPayload":{"position":{"x":26614.02524808632,"y":17607.523812969743},"targetPosition":{"x":26207.861870128883,"y":17801.253806533474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"b2c50120-93e3-4dbd-94c2-d78fe4804235","savedPayload":{"position":{"x":26213.861870128883,"y":17801.253806533474},"targetPosition":{"x":25912.753097267396,"y":18135.668977998303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Episode Base Asset","id":"b04a7cb4-0aff-4de4-a982-befd3944a8e5"}}},{"type":"Product Definition","name":"Episode Quoted Asset","config":"{\n \"codeName\": \"Episode-QuotedAsset\",\n \"singularVariableName\": \"episodeQuotedAsset\",\n \"pluralVariableName\": \"episodeQuotedAssets\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"ebdd227d-282e-4c05-a512-df30dfeb80e0","savedPayload":{"position":{"x":26453.19711361641,"y":17750.791243482417},"targetPosition":{"x":26310.079514053912,"y":17924.406774744653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a646c575-e477-4665-b540-da28fef585d7","savedPayload":{"position":{"x":26508.742722447172,"y":17818.775673117827},"targetPosition":{"x":26310.079514053912,"y":17924.406774744653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"d052dfc8-7dcf-4f99-a73c-077e4e6a239b","savedPayload":{"position":{"x":26855.40562959129,"y":17441.942982906585},"targetPosition":{"x":26758.007803319142,"y":17881.276186110554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"b4eb5dad-a272-407f-b51b-dab1d45ea890","savedPayload":{"position":{"x":26986.40006665146,"y":17493.543063911868},"targetPosition":{"x":26758.007803319142,"y":17881.276186110554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hits","config":"{\n \"codeName\": \"hits\",\n \"isString\": false\n}","project":"Superalgos","id":"f2b58143-8c6d-4527-9db5-376ec8c07dd8","savedPayload":{"position":{"x":27095.037877674193,"y":17583.097164413473},"targetPosition":{"x":26758.007803319142,"y":17881.276186110554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fails","config":"{\n \"codeName\": \"fails\",\n \"isString\": false\n}","project":"Superalgos","id":"96e076a0-526b-4627-a77b-2eb85624e785","savedPayload":{"position":{"x":27170.684836792447,"y":17701.839105094194},"targetPosition":{"x":26758.007803319142,"y":17881.276186110554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Ratio","config":"{\n \"codeName\": \"hitRatio\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"e5250418-80e6-4f00-8a33-1b6a4ebedc75","savedPayload":{"position":{"x":27205.936092584372,"y":17838.145597476454},"targetPosition":{"x":26758.007803319142,"y":17881.276186110554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI","config":"{\n \"codeName\": \"ROI\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"3b9b5862-b377-47a5-9c96-28b00b3e5df3","savedPayload":{"position":{"x":27197.34100652311,"y":17978.6740123827},"targetPosition":{"x":26758.007803319142,"y":17881.276186110554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss","config":"{ \n\"codeName\": \"profitLoss\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"ff143f88-4b6a-4433-b88a-d665214977e7","savedPayload":{"position":{"x":27145.740925517828,"y":18109.66844944287},"targetPosition":{"x":26758.007803319142,"y":17881.276186110554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Annualized Rate Of Return","config":"{ \n\"codeName\": \"annualizedRateOfReturn\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"76c15254-9ed2-4879-aae3-bc94983e2df5","savedPayload":{"position":{"x":27056.186825016222,"y":18218.306260465604},"targetPosition":{"x":26758.007803319142,"y":17881.276186110554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail","config":"{ \n\"codeName\": \"hitFail\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"fd003930-8fb9-48c5-adb5-01b91c4dc817","savedPayload":{"position":{"x":26937.444884335502,"y":18293.95321958386},"targetPosition":{"x":26758.007803319142,"y":17881.276186110554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"385fcdf7-8099-41cc-b334-446517400b2a","savedPayload":{"position":{"x":26758.007803319142,"y":17881.276186110554},"targetPosition":{"x":26310.079514053912,"y":17924.406774744653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"67c5c48a-3674-4592-b998-1e7144a61db4","savedPayload":{"position":{"x":26310.079514053912,"y":17924.406774744653},"targetPosition":{"x":25912.753097267396,"y":18135.668977998303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Episode Quoted Asset","id":"20b012e9-62dd-4da5-b79b-5e0678a31320"}}},{"type":"Product Definition","name":"Current Episode","config":"{\n \"codeName\": \"Current-Episode\",\n \"singularVariableName\": \"currentEpisode\",\n \"pluralVariableName\": \"currentEpisodes\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode\",\n \"saveAtCycle\": \"Second\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"89498f0e-d54f-45d2-81e8-d79e99ae225e","savedPayload":{"position":{"x":26552.240289300447,"y":17958.844950900115},"targetPosition":{"x":26358.373728201102,"y":18073.041082566273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0549151b-cdcf-49a3-8da6-2f6ed5171747","savedPayload":{"position":{"x":26581.184043667956,"y":18041.727134850258},"targetPosition":{"x":26358.373728201102,"y":18073.041082566273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"deaf6a63-4846-41fa-bddb-812189d7ea42","savedPayload":{"position":{"x":27015.63076841781,"y":17794.052021217816},"targetPosition":{"x":26794.04016637125,"y":18185.712084390772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"a8b106cd-d9a5-4a43-b3fc-5e4b8ced654a","savedPayload":{"position":{"x":27109.449335306184,"y":17864.74938227139},"targetPosition":{"x":26794.04016637125,"y":18185.712084390772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\"\n}","project":"Superalgos","id":"f42e0047-93dd-4e90-bc13-d2ac90ccba9c","savedPayload":{"position":{"x":27181.773288569937,"y":17957.319821058456},"targetPosition":{"x":26794.04016637125,"y":18185.712084390772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\"\n}","project":"Superalgos","id":"c6253659-4b6f-4f98-80d6-007043facb10","savedPayload":{"position":{"x":27227.67387031513,"y":18065.454815155557},"targetPosition":{"x":26794.04016637125,"y":18185.712084390772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"50a81601-06e3-4bc8-8ae9-94a0e0f3e1a6","savedPayload":{"position":{"x":27244.023031750126,"y":18181.785143416506},"targetPosition":{"x":26794.04016637125,"y":18185.712084390772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b190a969-16d4-4dde-b1f1-e472cd66e1f2","savedPayload":{"position":{"x":27229.7066045414,"y":18298.38308621527},"targetPosition":{"x":26794.04016637125,"y":18185.712084390772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"b77b009d-ee34-4c7e-94c5-9bfde3919b8c","savedPayload":{"position":{"x":27185.700229544207,"y":18407.30268643733},"targetPosition":{"x":26794.04016637125,"y":18185.712084390772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"bca03893-2c6b-436f-b4d8-767810de8784","savedPayload":{"position":{"x":27115.002868490632,"y":18501.121253325706},"targetPosition":{"x":26794.04016637125,"y":18185.712084390772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Cycle","config":"{ \n\"codeName\": \"cycle\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"335d7d1e-8858-48e9-9363-1ac416124d6f","savedPayload":{"position":{"x":27022.432429703567,"y":18573.44520658946},"targetPosition":{"x":26794.04016637125,"y":18185.712084390772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Head Of The Market","config":"{ \n\"codeName\": \"headOfTheMarket\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f3209022-4f42-474c-b6d1-9ac8e8804fa8","savedPayload":{"position":{"x":26914.297435606466,"y":18619.345788334653},"targetPosition":{"x":26794.04016637125,"y":18185.712084390772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Process Date","config":"{ \n\"codeName\": \"processDate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"01b8d2ec-f95b-43b3-88c6-0998acf58723","savedPayload":{"position":{"x":26797.967107345517,"y":18635.694949769648},"targetPosition":{"x":26794.04016637125,"y":18185.712084390772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6005e43c-79d2-484d-828f-41a3c89312b7","savedPayload":{"position":{"x":26794.04016637125,"y":18185.712084390772},"targetPosition":{"x":26358.373728201102,"y":18073.041082566273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"611312a6-dd16-4407-917a-03922c3d60ba","savedPayload":{"position":{"x":26358.373728201102,"y":18073.041082566273},"targetPosition":{"x":25912.753097267396,"y":18135.668977998303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Episode","id":"b4f39249-9877-4ee7-b8f0-f5628659339b"}}}],"productDefinitionFolders":[],"id":"eede8259-fa3b-42b4-8dfd-a5a5bfab9bc7","savedPayload":{"position":{"x":25912.753097267396,"y":18135.668977998303},"targetPosition":{"x":25819.192836399405,"y":18575.835398328516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Strategy","project":"Superalgos","products":[{"type":"Product Definition","name":"Current Strategy","config":"{\n \"codeName\": \"Current-Strategy\",\n \"singularVariableName\": \"currentStrategy\",\n \"pluralVariableName\": \"currentStrategies\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategy\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0b2d49e4-c342-4731-9732-3b04361e4c19","savedPayload":{"position":{"x":26172.85887689315,"y":17580.021452331584},"targetPosition":{"x":26213.861870128883,"y":17801.253806533474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a2887df5-22ad-459c-8b45-6e448bd3be7f","savedPayload":{"position":{"x":26260.64200056288,"y":17581.170596368367},"targetPosition":{"x":26213.861870128883,"y":17801.253806533474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"47c5ff94-7adf-4714-b0f7-68ccc1027d0a","savedPayload":{"position":{"x":26169.661764209803,"y":17094.168808337923},"targetPosition":{"x":26468.744676745056,"y":17430.397021653567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"970c6050-fb6c-4af0-bea8-de97e35af6c4","savedPayload":{"position":{"x":26258.817248308853,"y":17032.36376325653},"targetPosition":{"x":26468.744676745056,"y":17430.397021653567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"7ae59b82-0678-4fba-a3b7-dacf82072e28","savedPayload":{"position":{"x":26360.17295149346,"y":16993.690964361147},"targetPosition":{"x":26468.744676745056,"y":17430.397021653567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"c68716c7-6a75-4b0d-aae9-25ab087bbd4c","savedPayload":{"position":{"x":26467.838448707527,"y":16980.397934153665},"targetPosition":{"x":26468.744676745056,"y":17430.397021653567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Strategy Name","config":"{ \n\"codeName\": \"strategyName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b7865173-6f20-4b2a-896e-6b71bf1d462c","savedPayload":{"position":{"x":26575.55661260113,"y":16993.25721523155},"targetPosition":{"x":26468.744676745056,"y":17430.397021653567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Index","config":"{ \n\"codeName\": \"index\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b5595ebe-4363-4934-99e2-097e4c9ebff1","savedPayload":{"position":{"x":26677.067255028363,"y":17031.521472920136},"targetPosition":{"x":26468.744676745056,"y":17430.397021653567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"eaad4c72-08d5-4d5d-a51a-7a59eda3afae","savedPayload":{"position":{"x":26766.470946427537,"y":17092.966927647485},"targetPosition":{"x":26468.744676745056,"y":17430.397021653567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"060c03d5-3317-41ff-99c6-1ab444a7440f","savedPayload":{"position":{"x":26838.571869223724,"y":17174.022592929978},"targetPosition":{"x":26468.744676745056,"y":17430.397021653567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"9d701c83-d62b-4e66-aa72-2642f21fcb68","savedPayload":{"position":{"x":26889.179779860195,"y":17269.977808126754},"targetPosition":{"x":26468.744676745056,"y":17430.397021653567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f8e59b21-1a0a-41c2-a8c4-5a1464fb9406","savedPayload":{"position":{"x":26915.353530523036,"y":17375.25600491359},"targetPosition":{"x":26468.744676745056,"y":17430.397021653567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"66a71e8b-2a01-4aa1-944d-8992bbaf8b70","savedPayload":{"position":{"x":26915.571997961433,"y":17483.73879716392},"targetPosition":{"x":26468.744676745056,"y":17430.397021653567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategy.strategyCounters\"\n}","project":"Superalgos","id":"bbc066a2-1499-4fdc-8cd7-0541033aa289","savedPayload":{"position":{"x":26889.822485641962,"y":17589.121559311046},"targetPosition":{"x":26468.744676745056,"y":17430.397021653567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ac0dd9db-4d53-4154-9514-1a609b9cbc2f","savedPayload":{"position":{"x":26468.744676745056,"y":17430.397021653567},"targetPosition":{"x":26213.861870128883,"y":17801.253806533474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"edddf4e6-d7af-4376-8061-e04796e1b216","savedPayload":{"position":{"x":26213.861870128883,"y":17801.253806533474},"targetPosition":{"x":26120.301609260892,"y":18241.420226863687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Strategy","id":"0a49eb5b-1b48-44a9-81ff-a8cebe6cc26a"}}},{"type":"Product Definition","name":"Last Strategy","config":"{\n \"codeName\": \"Last-Strategy\",\n \"singularVariableName\": \"lastStrategy\",\n \"pluralVariableName\": \"lastStrategies\",\n \"nodePath\": \"tradingEngine.tradingLast.strategy\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"e23cf459-d8f5-4cd3-8f4d-a32a817248b3","savedPayload":{"position":{"x":26719.368383853718,"y":17956.23676852067},"targetPosition":{"x":26548.277041593712,"y":18102.36257939496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"52f4f3e4-2ae0-4923-a36d-0cabedf8ef34","savedPayload":{"position":{"x":26762.26475776012,"y":18032.8337556606},"targetPosition":{"x":26548.277041593712,"y":18102.36257939496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"b2ed8c3b-4a45-4257-89ca-9c78a8395462","savedPayload":{"position":{"x":27138.530559706396,"y":17710.541665721303},"targetPosition":{"x":26996.88984177362,"y":18137.66917247249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"4c2a5d24-f355-4080-a4c2-210c5136d748","savedPayload":{"position":{"x":27236.63304087845,"y":17756.85005729708},"targetPosition":{"x":26996.88984177362,"y":18137.66917247249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"e209ac3d-ed09-48e4-9fb5-c25b6c197550","savedPayload":{"position":{"x":27320.802518749602,"y":17825.290271625694},"targetPosition":{"x":26996.88984177362,"y":18137.66917247249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"a19f7ae5-e496-4873-9aca-9c9f8e0bb8c1","savedPayload":{"position":{"x":27386.147369209586,"y":17911.884812220418},"targetPosition":{"x":26996.88984177362,"y":18137.66917247249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Strategy Name","config":"{ \n\"codeName\": \"strategyName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"8bd9e455-4158-4ea3-b73b-9c4c0f5cae3f","savedPayload":{"position":{"x":27428.869987068534,"y":18011.601119140236},"targetPosition":{"x":26996.88984177362,"y":18137.66917247249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Index","config":"{ \n\"codeName\": \"index\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"88b38eea-7505-436a-81ba-57d1e36dcbae","savedPayload":{"position":{"x":27446.487489066883,"y":18118.644043080993},"targetPosition":{"x":26996.88984177362,"y":18137.66917247249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"6fbfa996-ee0f-4ff2-bb0e-c7a9c6116dff","savedPayload":{"position":{"x":27437.9760100255,"y":18226.792638388455},"targetPosition":{"x":26996.88984177362,"y":18137.66917247249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"602202ab-ae12-460b-9209-5e2269bc9c29","savedPayload":{"position":{"x":27403.830206168306,"y":18329.761701807496},"targetPosition":{"x":26996.88984177362,"y":18137.66917247249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"6f6ee820-07fb-444d-bb1b-b864d4ad6481","savedPayload":{"position":{"x":27346.03450750053,"y":18421.567045649525},"targetPosition":{"x":26996.88984177362,"y":18137.66917247249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"73e51af0-2b40-4369-b9cf-bebec9c0a98f","savedPayload":{"position":{"x":27267.947789949932,"y":18496.873277029285},"targetPosition":{"x":26996.88984177362,"y":18137.66917247249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"167e281a-873c-4cf6-a75c-a8c415de96fd","savedPayload":{"position":{"x":27174.108169706877,"y":18551.303871506},"targetPosition":{"x":26996.88984177362,"y":18137.66917247249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.strategy.strategyCounters\"\n}","project":"Superalgos","id":"9c976ec0-f91a-4d91-9968-7bafdd7d82b3","savedPayload":{"position":{"x":27069.969264406758,"y":18581.69552077584},"targetPosition":{"x":26996.88984177362,"y":18137.66917247249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9f55c5be-f994-49fb-857c-4bd03f8d7f8e","savedPayload":{"position":{"x":26996.88984177362,"y":18137.66917247249},"targetPosition":{"x":26548.277041593712,"y":18102.36257939496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"3a918a29-eca9-4148-9009-38546b5daa7a","savedPayload":{"position":{"x":26548.277041593712,"y":18102.36257939496},"targetPosition":{"x":26120.301609260892,"y":18241.420226863687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Last Strategy","id":"3ac94a35-bb3a-4bdd-9706-db043d57ee69"}}}],"productDefinitionFolders":[],"id":"b4e2e1aa-193d-401b-95b8-07bcefa0bdf8","savedPayload":{"position":{"x":26120.301609260892,"y":18241.420226863687},"targetPosition":{"x":25819.192836399405,"y":18575.835398328516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Position","project":"Superalgos","products":[{"type":"Product Definition","name":"Current Position","config":"{\n \"codeName\": \"Current-Position\",\n \"singularVariableName\": \"currentPosition\",\n \"pluralVariableName\": \"currentPositions\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"4ef62131-7c84-499e-b9c9-f22d88a09c97","savedPayload":{"position":{"x":26368.572619662187,"y":17784.495918437016},"targetPosition":{"x":26386.22591620095,"y":18008.80231852697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"03b58ca5-0234-4f3d-8adb-db2faf9826bf","savedPayload":{"position":{"x":26455.754739935313,"y":17794.814602360562},"targetPosition":{"x":26386.22591620095,"y":18008.80231852697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"d181f990-808d-497c-a0b4-3100de2af724","savedPayload":{"position":{"x":26351.210041573737,"y":16671.600015575885},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"97ce8f47-fd64-4376-b246-c49aa826966b","savedPayload":{"position":{"x":26422.843873590267,"y":16610.41894322483},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"2086668c-1af2-48b7-a9e7-5e7a2d36621d","savedPayload":{"position":{"x":26500.48045145376,"y":16557.06080156826},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"6ac590c5-3558-4e2b-91e5-3fa95e2aa935","savedPayload":{"position":{"x":26583.26917257065,"y":16512.11019357207},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"cb6178e5-f3d7-468a-a8be-f3a011645d13","savedPayload":{"position":{"x":26670.30298638772,"y":16476.059607503983},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"8db9c9e7-3725-4945-be08-9f7b69e67e7e","savedPayload":{"position":{"x":26760.6283322278,"y":16449.30402112903},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"e6219fb6-ddef-4e68-a44c-f017d2fbb221","savedPayload":{"position":{"x":26853.25558670007,"y":16432.136574250515},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"ec2103b5-7eab-416d-95be-24bc41a80a9c","savedPayload":{"position":{"x":26947.16990622103,"y":16424.745357008942},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"0fc8e23d-8b80-4f72-bf5e-98fe92be6708","savedPayload":{"position":{"x":27041.342345853176,"y":16427.211349127127},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionCounters\"\n}","project":"Superalgos","id":"784ecbef-d148-427e-85d4-14c1a05d3fbe","savedPayload":{"position":{"x":27134.741132641047,"y":16439.507532679385},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"3e9b6c78-41ca-4e96-86f9-5db49885723c","savedPayload":{"position":{"x":27226.342969931648,"y":16461.49918810557},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"42f5d7ac-f129-4805-9c75-71895ae06732","savedPayload":{"position":{"x":27315.1442488267,"y":16492.945370226786},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"402e7292-2370-45a6-9af8-ac2733ce4c05","savedPayload":{"position":{"x":27400.172043931765,"y":16533.501548091175},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Base Asset","config":"{ \n\"codeName\": \"profitLossInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"36a7c4a7-fbbd-42d5-84df-bcda9e0bed02","savedPayload":{"position":{"x":27480.494772930466,"y":16582.72337972713},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Quoted Asset","config":"{ \n\"codeName\": \"profitLossInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3fdc0d1b-e7e2-41c2-b3c0-4b796dfdef93","savedPayload":{"position":{"x":27555.23240319528,"y":16640.071580446915},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Base Asset","config":"{ \n\"codeName\": \"ROIInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"c9fb0dc6-f5cb-45a1-b585-cc8134517df6","savedPayload":{"position":{"x":27623.566093609174,"y":16704.917831362563},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Quoted Asset","config":"{ \n\"codeName\": \"ROIInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"6c8ed370-eac0-4cf2-8074-7cdf0d293a2c","savedPayload":{"position":{"x":27684.747165960227,"y":16776.551663379094},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Base Asset","config":"{ \n\"codeName\": \"hitFailInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"98bad91b-73f1-470a-be23-68834300fe9f","savedPayload":{"position":{"x":27738.1053076168,"y":16854.188241242588},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Quoted Asset","config":"{ \n\"codeName\": \"hitFailInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"204ea4ab-3a85-46ae-803c-3f8bde8bda09","savedPayload":{"position":{"x":27783.05591561299,"y":16936.976962359477},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Base Asset","config":"{ \n\"codeName\": \"entryTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"cc0d6dae-28ab-4373-b55a-a86fcf939d71","savedPayload":{"position":{"x":27819.106501681075,"y":17024.010776176547},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Quoted Asset","config":"{ \n\"codeName\": \"entryTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"ad41a150-c94c-4e26-ba4b-6d932a443c12","savedPayload":{"position":{"x":27845.862088056027,"y":17114.336122016626},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Base Asset","config":"{ \n\"codeName\": \"exitTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"7d3e4532-dad4-4c59-a59b-24abe30e11d1","savedPayload":{"position":{"x":27863.029534934547,"y":17206.963376488897},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Quoted Asset","config":"{ \n\"codeName\": \"exitTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"277f285c-2adf-4c24-afa8-7d6eed92d3f8","savedPayload":{"position":{"x":27870.420752176116,"y":17300.877696009855},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Rate","config":"{ \n\"codeName\": \"entryTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"ed3464f3-da86-4896-b1ef-34ed5fce81b7","savedPayload":{"position":{"x":27867.95476005793,"y":17395.050135642003},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Rate","config":"{ \n\"codeName\": \"exitTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"665705ed-a08e-435f-a229-bedaaf7a17cf","savedPayload":{"position":{"x":27855.658576505673,"y":17488.448922429874},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Profit Loss","config":"{ \n\"codeName\": \"profitLoss\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 10\n}","project":"Superalgos","id":"681527ab-a6a4-4a01-9438-e3123195aa2c","savedPayload":{"position":{"x":27833.66692107949,"y":17580.050759720474},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics ROI","config":"{ \n\"codeName\": \"ROI\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 10\n}","project":"Superalgos","id":"dfdc2737-f391-4c4d-b93f-ef6f1fea4ee5","savedPayload":{"position":{"x":27802.220738958273,"y":17668.852038615525},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Hit Fail","config":"{ \n\"codeName\": \"hitFail\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\"\n}","project":"Superalgos","id":"584248e1-98f0-4e67-826c-0d0c499bb8be","savedPayload":{"position":{"x":27761.664561093883,"y":17753.87983372059},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"11dbf70f-f6b2-45e1-9928-c07aa51150a9","savedPayload":{"position":{"x":27712.44272945793,"y":17834.202562719292},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"046ac8c9-0f50-4fa8-a150-3d37c9e2863c","savedPayload":{"position":{"x":26970.729159698116,"y":17324.436949486942},"targetPosition":{"x":26386.22591620095,"y":18008.80231852697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"88b07027-d287-43c1-8560-67ccabb4ab6b","savedPayload":{"position":{"x":26386.22591620095,"y":18008.80231852697},"targetPosition":{"x":26247.168268732225,"y":18436.77775085979},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Position","id":"e073ade9-a6e1-4c6c-978d-68ed48ebf4c3"}}},{"type":"Product Definition","name":"Last Position","config":"{\n \"codeName\": \"Last-Position\",\n \"singularVariableName\": \"lastPosition\",\n \"pluralVariableName\": \"lastPositions\",\n \"nodePath\": \"tradingEngine.tradingLast.position\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"138cfff0-016c-40f9-8bd7-94dea0071300","savedPayload":{"position":{"x":26728.78809326204,"y":17980.430350348506},"targetPosition":{"x":26611.22591620095,"y":18172.274387328176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"c6dc8d6f-7a91-44f0-88dd-1470af1d4b88","savedPayload":{"position":{"x":26793.254739935313,"y":18040.02270556237},"targetPosition":{"x":26611.22591620095,"y":18172.274387328176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"6216236f-1ed8-499f-86f4-f49a3f575cf9","savedPayload":{"position":{"x":27368.885271560815,"y":17069.87318462143},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"f41fdce4-55ea-41a3-8856-b20c261fcd41","savedPayload":{"position":{"x":27462.799591081774,"y":17062.48196737986},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"2851ed6d-620a-4fd0-a666-1c7e3881b58d","savedPayload":{"position":{"x":27556.97203071392,"y":17064.947959498044},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"29c496ba-ba71-439e-9cb1-58b0b2d12756","savedPayload":{"position":{"x":27650.370817501793,"y":17077.244143050302},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"a89cbdda-61bb-4a34-854f-382964eca4ce","savedPayload":{"position":{"x":27741.972654792393,"y":17099.235798476486},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"67606364-635d-4ced-92af-e8a09b27c794","savedPayload":{"position":{"x":27830.773933687444,"y":17130.681980597703},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"63a5a3c9-d3cd-4495-9bf2-b0691ce80f3b","savedPayload":{"position":{"x":27915.80172879251,"y":17171.238158462093},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"7c1b7421-615f-4d1a-999a-7c36f73de845","savedPayload":{"position":{"x":27996.12445779121,"y":17220.459990098047},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7ec0cc37-5f85-44b8-8086-bd1f6b97e9e3","savedPayload":{"position":{"x":28070.862088056027,"y":17277.808190817832},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionCounters\"\n}","project":"Superalgos","id":"1e98a01e-9459-4a58-a874-b91705602f16","savedPayload":{"position":{"x":28139.19577846992,"y":17342.65444173348},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"4bb280d7-634b-43ac-a8bc-d5d1419356d7","savedPayload":{"position":{"x":28200.376850820972,"y":17414.28827375001},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"2a654f43-1a37-4195-a4f0-7663506d06c9","savedPayload":{"position":{"x":28253.734992477544,"y":17491.924851613505},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"59357cfc-948b-4c25-9cd4-53a21f2efd2d","savedPayload":{"position":{"x":28298.685600473735,"y":17574.713572730394},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Base Asset","config":"{ \n\"codeName\": \"profitLossInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionBaseAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"d45d506e-81a0-46b1-99ba-566083f9f836","savedPayload":{"position":{"x":28334.73618654182,"y":17661.747386547464},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Quoted Asset","config":"{ \n\"codeName\": \"profitLossInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionQuotedAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4ed03085-4a95-4d65-9192-b75e188ba5d3","savedPayload":{"position":{"x":28361.491772916772,"y":17752.072732387544},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Base Asset","config":"{ \n\"codeName\": \"ROIInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionBaseAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"04aad770-1865-4715-ac1a-458f05cb9cf7","savedPayload":{"position":{"x":28378.659219795292,"y":17844.699986859814},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Quoted Asset","config":"{ \n\"codeName\": \"ROIInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionQuotedAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"6a42e1db-a6eb-4e8b-8566-7623945da89c","savedPayload":{"position":{"x":28386.05043703686,"y":17938.614306380772},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Base Asset","config":"{ \n\"codeName\": \"hitFailInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionBaseAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"3fad890a-9ffd-430b-b5c2-d2d5e46d2c97","savedPayload":{"position":{"x":28383.584444918677,"y":18032.78674601292},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Quoted Asset","config":"{ \n\"codeName\": \"hitFailInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionQuotedAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"87816945-979d-4eea-bf9a-c8685fcfbc94","savedPayload":{"position":{"x":28371.28826136642,"y":18126.18553280079},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Base Asset","config":"{ \n\"codeName\": \"entryTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"241b1a1f-40bf-4f27-ac2b-57d3ae67aea5","savedPayload":{"position":{"x":28349.296605940235,"y":18217.78737009139},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Quoted Asset","config":"{ \n\"codeName\": \"entryTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"61fb452f-373b-4f44-ae76-50a7a74820ce","savedPayload":{"position":{"x":28317.850423819018,"y":18306.588648986442},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Base Asset","config":"{ \n\"codeName\": \"exitTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"f195528f-af81-40f7-ae5a-4fb4f7c66c5e","savedPayload":{"position":{"x":28277.29424595463,"y":18391.61644409151},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Quoted Asset","config":"{ \n\"codeName\": \"exitTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"83306782-02be-4436-8692-cba5af8b1393","savedPayload":{"position":{"x":28228.072414318674,"y":18471.93917309021},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Rate","config":"{ \n\"codeName\": \"entryTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"0d2e86d7-6cb3-4c67-a374-c287c8f2c237","savedPayload":{"position":{"x":28170.72421359889,"y":18546.676803355025},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Rate","config":"{ \n\"codeName\": \"exitTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"1b26ebbe-e2fe-4651-9263-1b489f1968de","savedPayload":{"position":{"x":28105.87796268324,"y":18615.010493768918},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Profit Loss","config":"{ \n\"codeName\": \"profitLoss\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 10\n}","project":"Superalgos","id":"b603ef56-5af9-46c8-aab7-a66ced51c94f","savedPayload":{"position":{"x":28034.24413066671,"y":18676.19156611997},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics ROI","config":"{ \n\"codeName\": \"ROI\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 10\n}","project":"Superalgos","id":"e5dbfd5f-6033-4caa-ab14-5eea5748cca9","savedPayload":{"position":{"x":27956.607552803216,"y":18729.549707776543},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Hit Fail","config":"{ \n\"codeName\": \"hitFail\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\"\n}","project":"Superalgos","id":"8f430ecb-e930-4a73-8290-f4821564183c","savedPayload":{"position":{"x":27873.818831686327,"y":18774.500315772733},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"4aac010a-f5c1-47eb-8238-862a7adbb819","savedPayload":{"position":{"x":27786.785017869257,"y":18810.55090184082},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d876bb94-c01b-42e3-aec1-52089ade1d7e","savedPayload":{"position":{"x":27486.35884455886,"y":17962.17355985786},"targetPosition":{"x":26611.22591620095,"y":18172.274387328176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"ac5022b2-869b-44b7-8658-1e86bcb55261","savedPayload":{"position":{"x":26611.22591620095,"y":18172.274387328176},"targetPosition":{"x":26247.168268732225,"y":18436.77775085979},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Last Position","id":"076daf73-6ad5-458f-ac52-ad89d5a0cf65"}}},{"type":"Product Definition","name":"Stop Loss","config":"{\n \"codeName\": \"Stop-Loss\",\n \"singularVariableName\": \"stopLoss\",\n \"pluralVariableName\": \"stopLosses\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAtCycle\": \"Second\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"81187a8f-3b2d-459a-a82a-981d5d352d08","savedPayload":{"position":{"x":26905.041163547263,"y":18350.673978577644},"targetPosition":{"x":26697.168268732225,"y":18436.77775085979},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"453d852e-d623-44ed-a52a-b45b630339f2","savedPayload":{"position":{"x":26922.168268732225,"y":18436.77775085979},"targetPosition":{"x":26697.168268732225,"y":18436.77775085979},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\",\n \"childProperty\": \"begin\"\n}","project":"Superalgos","id":"bb90ed39-4316-423f-9a47-5a0605b1c91f","savedPayload":{"position":{"x":27068.64104381858,"y":18521.56398768685},"targetPosition":{"x":26856.267294499197,"y":18595.876776626763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\",\n \"childProperty\": \"end\"\n}","project":"Superalgos","id":"83ec0bcb-6b19-4476-8f17-dca922c250b0","savedPayload":{"position":{"x":27079.852541725177,"y":18621.068783750008},"targetPosition":{"x":26856.267294499197,"y":18595.876776626763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stop Loss","config":"{\n \"codeName\": \"stopLoss\",\n \"isString\": false\n}","project":"Superalgos","id":"30cb86ad-aca1-4e7e-a353-d7fb67dc2a7b","savedPayload":{"position":{"x":27046.780239325562,"y":18715.583993842713},"targetPosition":{"x":26856.267294499197,"y":18595.876776626763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stop Loss Phase","config":"{\n \"codeName\": \"stopLossPhase\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\"\n}","project":"Superalgos","id":"db60a045-4439-4349-a09d-f3f42c8c5bb1","savedPayload":{"position":{"x":26975.974511715147,"y":18786.389721453128},"targetPosition":{"x":26856.267294499197,"y":18595.876776626763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Initial Value","config":"{\n \"codeName\": \"initialValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\"\n}","project":"Superalgos","id":"4e2b722f-7eda-4e6c-9a1f-aee271fdf57f","savedPayload":{"position":{"x":26881.459301622443,"y":18819.462023852742},"targetPosition":{"x":26856.267294499197,"y":18595.876776626763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Final Value","config":"{\n \"codeName\": \"finalValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\"\n}","project":"Superalgos","id":"99108d42-3ba2-4eef-87cd-aceb54420f06","savedPayload":{"position":{"x":26781.954505559286,"y":18808.250525946147},"targetPosition":{"x":26856.267294499197,"y":18595.876776626763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1a94c2b4-ef10-4d05-ac7f-c74235b5545a","savedPayload":{"position":{"x":26856.267294499197,"y":18595.876776626763},"targetPosition":{"x":26697.168268732225,"y":18436.77775085979},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7da63f2e-fb79-4de4-b3d6-0b3d2a47ef9c","savedPayload":{"position":{"x":26697.168268732225,"y":18436.77775085979},"targetPosition":{"x":26247.168268732225,"y":18436.77775085979},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Stop Loss","id":"bc31643e-0889-469e-bb39-136a35e276ea"}}},{"type":"Product Definition","name":"Take Profit","config":"{\n \"codeName\": \"Take-Profit\",\n \"singularVariableName\": \"takeProfit\",\n \"pluralVariableName\": \"takeProfits\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAtCycle\": \"Second\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"3d1c0a63-d953-42f0-a617-63a16d9f358b","savedPayload":{"position":{"x":26824.009148290428,"y":18753.806321258984},"targetPosition":{"x":26605.22591620095,"y":18701.281114391404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"c2bf140a-4ee3-43cc-97ec-7ca59257ae6a","savedPayload":{"position":{"x":26787.254739935313,"y":18833.53279615721},"targetPosition":{"x":26605.22591620095,"y":18701.281114391404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\",\n \"childProperty\": \"begin\"\n}","project":"Superalgos","id":"030753d9-346d-460d-81e4-8fdb9a773871","savedPayload":{"position":{"x":26855.917604589114,"y":18988.22083969751},"targetPosition":{"x":26640.423670835004,"y":18923.51099102531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\",\n \"childProperty\": \"end\"\n}","project":"Superalgos","id":"bcdc98cb-11a8-41d3-b1e0-68a0071fb4f8","savedPayload":{"position":{"x":26806.500445269656,"y":19075.311863860024},"targetPosition":{"x":26640.423670835004,"y":18923.51099102531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Take Profit","config":"{\n \"codeName\": \"takeProfit\",\n \"isString\": false\n}","project":"Superalgos","id":"6551908e-0bbd-4757-b51a-4f1e615a2f96","savedPayload":{"position":{"x":26724.189743975443,"y":19132.33686344209},"targetPosition":{"x":26640.423670835004,"y":18923.51099102531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stop Loss Phase","config":"{\n \"codeName\": \"takeProfitPhase\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\"\n}","project":"Superalgos","id":"7d727a19-48ff-4f9c-982f-0296d26f3478","savedPayload":{"position":{"x":26625.288144572296,"y":19148.001337910762},"targetPosition":{"x":26640.423670835004,"y":18923.51099102531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Initial Value","config":"{\n \"codeName\": \"initialValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\"\n}","project":"Superalgos","id":"03baaaf0-b9a8-4e24-9ec4-2514700b41d7","savedPayload":{"position":{"x":26529.384321770525,"y":19119.20274598534},"targetPosition":{"x":26640.423670835004,"y":18923.51099102531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Final Value","config":"{\n \"codeName\": \"finalValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\"\n}","project":"Superalgos","id":"65afe887-9dec-474b-8946-908cf92b7fcf","savedPayload":{"position":{"x":26455.473203859223,"y":19051.64500198821},"targetPosition":{"x":26640.423670835004,"y":18923.51099102531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1ceb14bf-2797-4aa8-8335-33d18b4a9510","savedPayload":{"position":{"x":26640.423670835004,"y":18923.51099102531},"targetPosition":{"x":26605.22591620095,"y":18701.281114391404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"35f7a1fa-95f7-4ba1-8e83-b480df1ddab3","savedPayload":{"position":{"x":26611.22591620095,"y":18701.281114391404},"targetPosition":{"x":26247.168268732225,"y":18436.77775085979},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Take Profit","id":"7b58bb52-2ed2-4bea-8296-7db87dfb45b2"}}}],"productDefinitionFolders":[],"id":"ae61fe36-43af-4180-9877-6ad4bbcdd257","savedPayload":{"position":{"x":26247.168268732225,"y":18436.77775085979},"targetPosition":{"x":25819.192836399405,"y":18575.835398328516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Stages","project":"Superalgos","products":[{"type":"Product Definition","name":"Open Stage","config":"{\n \"codeName\": \"Current-Strategy-Open-Stage\",\n \"singularVariableName\": \"currentStrategyOpenStage\",\n \"pluralVariableName\": \"currentStrategyOpenStages\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"f527d726-fef7-4554-8427-93d18a493320","savedPayload":{"position":{"x":26690.639424976314,"y":18165.2051973563},"targetPosition":{"x":26593.774428194447,"y":18368.28688633502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"d2d9fa16-2860-4c19-bedf-e93a15154925","savedPayload":{"position":{"x":26760.98201392686,"y":18217.732499904276},"targetPosition":{"x":26593.774428194447,"y":18368.28688633502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"75f63fa8-2c01-4530-b7fd-6d58191c1474","savedPayload":{"position":{"x":26953.391419289896,"y":17772.730675610972},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"9e75b3dd-8bdf-4f6a-bede-5299085c7626","savedPayload":{"position":{"x":27041.51427949525,"y":17768.690509040265},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7835e46c-684c-4ed5-86c9-fe120060a8ad","savedPayload":{"position":{"x":27128.732081048973,"y":17781.919890311783},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"1676787d-1b5b-4c23-a5ec-f74ef9e6b72a","savedPayload":{"position":{"x":27211.693092749658,"y":17811.910421722387},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"1e77f7c2-46d3-44fe-b888-f665dc0e4c48","savedPayload":{"position":{"x":27287.20916944272,"y":17857.509583968847},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"a3cf3f99-0863-4dda-9a6b-c717d54d501a","savedPayload":{"position":{"x":27352.378270650755,"y":17916.965026818336},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"fe408d51-05b8-49e9-b8c7-5fd13e0ad9c2","savedPayload":{"position":{"x":27404.69598436158,"y":17987.99191094515},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"cc47a84f-d10c-43e0-9880-c63365270338","savedPayload":{"position":{"x":27442.151770177406,"y":18067.860713024627},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageBaseAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"fd5f0cc5-260d-4311-889f-d0b87956e3eb","savedPayload":{"position":{"x":27463.306223254778,"y":18153.502119783792},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageQuotedAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"21a550fa-fc28-45e0-b25a-3dc00f16f62b","savedPayload":{"position":{"x":27467.346389825485,"y":18241.62497998915},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Placed In Base Asset","config":"{\n \"codeName\": \"sizePlacedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageBaseAsset\",\n \"childProperty\": \"sizePlaced\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3cf4def4-4d07-4900-be02-40d553624673","savedPayload":{"position":{"x":27454.117008553967,"y":18328.84278154287},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Placed In Quoted Asset","config":"{\n \"codeName\": \"sizePlacedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageQuotedAsset\",\n \"childProperty\": \"sizePlaced\",\n \"decimals\": 10\n}","project":"Superalgos","id":"d5e2b34e-601c-449b-8f9e-6666b6ae471d","savedPayload":{"position":{"x":27424.126477143363,"y":18411.803793243555},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Target Size In Base Asset","config":"{\n \"codeName\": \"targetSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageBaseAsset\",\n \"childProperty\": \"targetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"edd96966-d41f-47f7-9506-022fb9f9bcb9","savedPayload":{"position":{"x":27378.527314896903,"y":18487.31986993662},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Target Size In Quoted Asset","config":"{\n \"codeName\": \"targetSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageQuotedAsset\",\n \"childProperty\": \"targetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"f0e19e97-0f8c-49e7-9f6b-ab5cd553123f","savedPayload":{"position":{"x":27319.071872047414,"y":18552.488971144652},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stage Defined In","config":"{ \n\"codeName\": \"stageDefinedIn\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"102cb61e-9548-42cd-bc80-3895642b1df2","savedPayload":{"position":{"x":27248.0449879206,"y":18604.806684855477},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"05ef34d7-13b2-4a2d-8ac2-786851642879","savedPayload":{"position":{"x":27017.963099185927,"y":18218.073799679823},"targetPosition":{"x":26593.774428194447,"y":18368.28688633502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"f4bffdbe-b3f8-42b1-a398-44c8e971c0d2","savedPayload":{"position":{"x":26593.774428194447,"y":18368.28688633502},"targetPosition":{"x":26259.35925672962,"y":18669.395659196507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Strategy Open Stage","id":"61b82daf-1441-4179-bbf2-6acc5a87d995"}}},{"type":"Product Definition","name":"Close Stage","config":"{\n \"codeName\": \"Current-Strategy-Close-Stage\",\n \"singularVariableName\": \"currentStrategyCloseStage\",\n \"pluralVariableName\": \"currentStrategyCloseStages\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"eed98f43-3e1b-4cbb-b018-f1ea561a9a1e","savedPayload":{"position":{"x":26904.627959994283,"y":18514.997129667652},"targetPosition":{"x":26706.89410964534,"y":18622.357850726064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"06bb683f-abb8-4974-b7d6-52edae776856","savedPayload":{"position":{"x":26930.6615361032,"y":18598.838946490843},"targetPosition":{"x":26706.89410964534,"y":18622.357850726064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"582344aa-da8f-45a1-9438-6a49e509e322","savedPayload":{"position":{"x":27347.88952448233,"y":18351.920318984463},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"563e9422-3ee9-4e47-a954-c42901433b71","savedPayload":{"position":{"x":27421.557166308456,"y":18400.449073187192},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e859390c-42fe-4f68-abda-621389623428","savedPayload":{"position":{"x":27484.341814769083,"y":18462.417204951566},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"aee741ae-a4d0-4315-9d49-20516d8d4e0e","savedPayload":{"position":{"x":27533.830691033912,"y":18535.443313726006},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"2e609fb2-d067-4159-90ee-969d54f91e84","savedPayload":{"position":{"x":27568.12196534176,"y":18616.721047103823},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"c5833779-691b-4bbb-af78-5aeb5db49e50","savedPayload":{"position":{"x":27585.89784325175,"y":18703.126947372388},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"e364638e-0564-4565-8f98-64b0bfecc711","savedPayload":{"position":{"x":27586.475207744625,"y":18791.340484241362},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"d0835943-c488-49b6-b8f5-e468bcf7efba","savedPayload":{"position":{"x":27569.831871026712,"y":18877.971660959596},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageBaseAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"042d32af-ead3-455f-b5d9-1648e859ef96","savedPayload":{"position":{"x":27536.607427194394,"y":18959.691289989132},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageQuotedAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"1af22cc8-625a-4ede-8f47-503b18d35a21","savedPayload":{"position":{"x":27488.078672991665,"y":19033.35893181526},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Placed In Base Asset","config":"{\n \"codeName\": \"sizePlacedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageBaseAsset\",\n \"childProperty\": \"sizePlaced\",\n \"decimals\": 10\n}","project":"Superalgos","id":"174f1855-329f-48d4-a968-9706874d18c6","savedPayload":{"position":{"x":27426.110541227292,"y":19096.143580275886},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Placed In Quoted Asset","config":"{\n \"codeName\": \"sizePlacedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageQuotedAsset\",\n \"childProperty\": \"sizePlaced\",\n \"decimals\": 10\n}","project":"Superalgos","id":"ed12c76c-9fb1-4606-b47c-59b6e21d7f33","savedPayload":{"position":{"x":27353.08443245285,"y":19145.632456540716},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Target Size In Base Asset","config":"{\n \"codeName\": \"targetSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageBaseAsset\",\n \"childProperty\": \"targetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4b437dcb-2093-42ec-b7e9-1731d4f19c88","savedPayload":{"position":{"x":27271.806699075034,"y":19179.923730848564},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Target Size In Quoted Asset","config":"{\n \"codeName\": \"targetSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageQuotedAsset\",\n \"childProperty\": \"targetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"ceb5c2fd-5712-47fe-b0e4-f04c3e72c034","savedPayload":{"position":{"x":27185.40079880647,"y":19197.699608758554},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stage Defined In","config":"{ \n\"codeName\": \"stageDefinedIn\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f01a914f-70aa-4125-9b6b-654046031a38","savedPayload":{"position":{"x":27097.187261937495,"y":19198.276973251428},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"34a0ab96-c394-4b54-92d7-31e615cc3f24","savedPayload":{"position":{"x":27138.362990336027,"y":18750.16475584283},"targetPosition":{"x":26706.89410964534,"y":18622.357850726064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"82ba950e-1bd2-4878-8d62-51fb736341e8","savedPayload":{"position":{"x":26706.89410964534,"y":18622.357850726064},"targetPosition":{"x":26259.35925672962,"y":18669.395659196507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Strategy Close Stage","id":"a09c480e-2287-4be2-8615-cb915f288c67"}}},{"type":"Product Definition","name":"Trigger Stage","config":"{\n \"codeName\": \"Current-Strategy-Trigger-Stage\",\n \"singularVariableName\": \"currentStrategyTriggerStage\",\n \"pluralVariableName\": \"currentStrategyTriggerStages\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyTriggerStage\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"03a27bd2-56cb-4917-ad06-d5a5a4a78365","savedPayload":{"position":{"x":26872.145782241725,"y":18923.76405244602},"targetPosition":{"x":26649.070688432617,"y":18894.395659196507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"8b5b8c3a-ba7e-445d-a03b-bc5e259cdf8a","savedPayload":{"position":{"x":26843.926404284117,"y":19006.895659196507},"targetPosition":{"x":26649.070688432617,"y":18894.395659196507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"b03b4c3c-efd4-44cd-a255-4008b2707ac6","savedPayload":{"position":{"x":27006.29863778655,"y":19026.943464859356},"targetPosition":{"x":26786.04200995958,"y":19072.900160762034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"3ae5418b-7f8c-4687-b213-aa332b662a0e","savedPayload":{"position":{"x":27004.42623763659,"y":19127.060377729053},"targetPosition":{"x":26786.04200995958,"y":19072.900160762034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"47b13562-f703-4c26-b7db-f6230b5cfceb","savedPayload":{"position":{"x":26959.300162888412,"y":19216.45019539696},"targetPosition":{"x":26786.04200995958,"y":19072.900160762034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"68dff13c-829b-4b05-8bea-741b95325c50","savedPayload":{"position":{"x":26879.858186080877,"y":19277.40816817978},"targetPosition":{"x":26786.04200995958,"y":19072.900160762034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"03d39757-baf9-4199-ae81-df9b87c4a7ef","savedPayload":{"position":{"x":26781.834765012627,"y":19297.860821967402},"targetPosition":{"x":26786.04200995958,"y":19072.900160762034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"2f7ecfd9-005d-453d-959d-eedf90a9bdf2","savedPayload":{"position":{"x":26684.644640404593,"y":19273.757257841848},"targetPosition":{"x":26786.04200995958,"y":19072.900160762034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e1d88da5-0853-42e8-8903-a475d2574cfc","savedPayload":{"position":{"x":26786.04200995958,"y":19072.900160762034},"targetPosition":{"x":26649.070688432617,"y":18894.395659196507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"cef3298b-13e0-40e8-84bb-a98510677585","savedPayload":{"position":{"x":26649.070688432617,"y":18894.395659196507},"targetPosition":{"x":26259.35925672962,"y":18669.395659196507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Strategy Trigger Stage","id":"a642588d-6568-4bd1-8a19-dfa8f7257582"}}},{"type":"Product Definition","name":"Manage Stage","config":"{\n \"codeName\": \"Current-Strategy-Manage-Stage\",\n \"singularVariableName\": \"currentStrategyManageStage\",\n \"pluralVariableName\": \"currentStrategyManageStages\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyManageStage\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"845254d4-643c-4d37-8b0e-7832ced9c71c","savedPayload":{"position":{"x":26605.599979591494,"y":19235.370894666772},"targetPosition":{"x":26442.390746113728,"y":19080.49111513568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"350a4e45-2b03-4da4-a6fc-aefdad5158e4","savedPayload":{"position":{"x":26533.906490805784,"y":19286.038843105263},"targetPosition":{"x":26442.390746113728,"y":19080.49111513568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"2df31596-0f40-4479-9ea0-348642555f46","savedPayload":{"position":{"x":26653.48458261442,"y":19397.697862820958},"targetPosition":{"x":26448.280559483,"y":19305.41401325518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"a724f462-a544-44dc-a42b-6f20f929516f","savedPayload":{"position":{"x":26593.122534182974,"y":19477.593577562362},"targetPosition":{"x":26448.280559483,"y":19305.41401325518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"0c3a4dde-f071-47f2-835d-76ab1aa3d140","savedPayload":{"position":{"x":26504.072756291956,"y":19523.38701794895},"targetPosition":{"x":26448.280559483,"y":19305.41401325518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"4f984ad4-53ba-4f25-86d8-24d02e0bab22","savedPayload":{"position":{"x":26403.97264957653,"y":19526.00823149247},"targetPosition":{"x":26448.280559483,"y":19305.41401325518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"ef0d16ef-3b57-4fea-90a9-6373944ea202","savedPayload":{"position":{"x":26312.64826781894,"y":19484.938054703547},"targetPosition":{"x":26448.280559483,"y":19305.41401325518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"c60453a0-43af-43b4-830f-f2ba8819ba87","savedPayload":{"position":{"x":26248.187524846304,"y":19408.310939787894},"targetPosition":{"x":26448.280559483,"y":19305.41401325518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"66d571a2-b3ca-486e-95fa-106b6fa33358","savedPayload":{"position":{"x":26448.280559483,"y":19305.41401325518},"targetPosition":{"x":26442.390746113728,"y":19080.49111513568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"59b44499-2f37-42f6-bb1a-20f1cae0305c","savedPayload":{"position":{"x":26442.390746113728,"y":19080.49111513568},"targetPosition":{"x":26259.35925672962,"y":18669.395659196507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Strategy Manage Stage","id":"470491c3-d385-4924-ae69-805af4dc03d6"}}}],"productDefinitionFolders":[],"id":"116f652a-c7f0-4702-a361-f6027f1aa501","savedPayload":{"position":{"x":26259.35925672962,"y":18669.395659196507},"targetPosition":{"x":25819.192836399405,"y":18575.835398328516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Orders","project":"Superalgos","products":[{"type":"Product Definition","name":"Market Buy Orders","config":"{ \n \"codeName\": \"Market-Buy-Orders\", \n \"singularVariableName\": \"marketBuyOrder\", \n \"pluralVariableName\": \"marketBuyOrders\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"159928f4-1860-4440-af6b-cead732b0648","savedPayload":{"position":{"x":26729.687883722007,"y":18547.789827507248},"targetPosition":{"x":26569.99494307753,"y":18706.292712996186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"74c1eba5-6d41-4306-887e-2737b05f5052","savedPayload":{"position":{"x":26778.18841068418,"y":18620.966983899278},"targetPosition":{"x":26569.99494307753,"y":18706.292712996186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"e64f4a98-00d5-4ce9-a8f9-d2f386304552","savedPayload":{"position":{"x":27065.774088629263,"y":18260.310672248503},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"509a174a-0d63-4d3e-adea-9a9255365c44","savedPayload":{"position":{"x":27109.432480725412,"y":18266.953751153596},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"b76df73e-558b-4887-9405-77868efa560d","savedPayload":{"position":{"x":27152.229510133304,"y":18277.844112562674},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"1e948660-1293-484a-beda-133cf32956e6","savedPayload":{"position":{"x":27193.753018064504,"y":18292.87687634209},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"dbcece5b-073a-49c9-95ed-96e7081ccbb7","savedPayload":{"position":{"x":27233.60311043858,"y":18311.9072687589},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"45a3ee2b-7f81-4ae2-b517-cc8fc2764292","savedPayload":{"position":{"x":27271.39600908169,"y":18334.75201673107},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"698f4de7-b49b-4054-9086-42c2852b413a","savedPayload":{"position":{"x":27306.767747720205,"y":18361.191112847406},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7a85ce78-d2ae-47b7-85f1-b1ff1cc4063b","savedPayload":{"position":{"x":27339.37767717487,"y":18390.969934159235},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"638311e7-4cf7-48c4-b636-3dc78945481b","savedPayload":{"position":{"x":27368.91174599864,"y":18423.801694338566},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"fb102317-83ec-4b3d-98b7-c036de3217a2","savedPayload":{"position":{"x":27395.085524963783,"y":18459.3702055872},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"8636a7e5-c043-414f-8057-d0abd4af45cc","savedPayload":{"position":{"x":27417.646946270812,"y":18497.332923698094},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderCounters\"\n}","project":"Superalgos","id":"3ef7e897-e9e2-461d-9c26-4a2248233425","savedPayload":{"position":{"x":27436.378731099216,"y":18537.3242469433},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"a18b8b6f-327a-41bd-8700-c1a363e663f3","savedPayload":{"position":{"x":27451.100482121266,"y":18578.95903701849},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"fde79096-1355-443b-ba21-8ff1a77a6a80","savedPayload":{"position":{"x":27461.67042082689,"y":18621.83632813534},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"e1ccf599-ef1e-422a-9f08-2d8e5150fb1e","savedPayload":{"position":{"x":27467.986752928235,"y":18665.5431885413},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lock","config":"{\n \"codeName\": \"lock\",\n \"isString\": true\n}","project":"Superalgos","id":"29dba182-0852-4a8f-9875-2b23c4f78eb1","savedPayload":{"position":{"x":27469.988648694307,"y":18709.658697278046},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"f2801e46-4494-4b8a-8f03-bffef80b9fd5","savedPayload":{"position":{"x":27467.656828774532,"y":18753.75799788046},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"d1baa239-6770-4d6f-b118-24b1a413d356","savedPayload":{"position":{"x":27461.01374986944,"y":18797.41638997661},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"16ef5c5b-56fe-4a17-a2e7-345f7e89cb2c","savedPayload":{"position":{"x":27450.12338846036,"y":18840.2134193845},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"6577a746-1469-430f-87b3-f23dea49b415","savedPayload":{"position":{"x":27435.090624680946,"y":18881.736927315702},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"0c6b67d2-84e8-4872-8413-b25ef3d40f32","savedPayload":{"position":{"x":27416.060232264135,"y":18921.587019689778},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"67f9e762-4fc3-4afc-b118-a38bba188803","savedPayload":{"position":{"x":27393.215484291966,"y":18959.37991833289},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4c61fc25-c7b6-4313-b863-a27fc9fa28cb","savedPayload":{"position":{"x":27366.77638817563,"y":18994.751656971403},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"e4d4435e-7b45-48fc-a0fb-cd0648faa5a2","savedPayload":{"position":{"x":27336.9975668638,"y":19027.36158642607},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"feeb506e-b31b-4711-8b62-8d6bdfad4d29","savedPayload":{"position":{"x":27304.16580668447,"y":19056.89565524984},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Base Asset","config":"{\n \"codeName\": \"actualSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2add99e8-c8cd-42b8-ab33-b0968cf3f3c9","savedPayload":{"position":{"x":27268.597295435833,"y":19083.06943421498},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Quoted Asset","config":"{\n \"codeName\": \"actualSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"44bf9407-a349-4555-b128-581029a73a31","savedPayload":{"position":{"x":27230.63457732494,"y":19105.63085552201},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Base Asset","config":"{\n \"codeName\": \"amountReceivedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"f9bc9751-e271-401b-8e31-bf0e34760edb","savedPayload":{"position":{"x":27190.643254079736,"y":19124.362640350413},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Quoted Asset","config":"{\n \"codeName\": \"amountReceivedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"31d9f379-fec7-4c6a-b3e1-e33ab7c7c6b9","savedPayload":{"position":{"x":27149.008464004546,"y":19139.084391372464},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Base Asset","config":"{ \n\"codeName\": \"feesToBePaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"d3dfb27a-cfd2-4cdf-8447-b65e35875bbf","savedPayload":{"position":{"x":27106.131172887694,"y":19149.654330078087},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesToBePaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"1d7d913c-34ed-4c3d-803f-e0f78bd55fa6","savedPayload":{"position":{"x":27062.424312481737,"y":19155.970662179432},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"684d7ec1-eedc-4db8-ba54-3fda30722e23","savedPayload":{"position":{"x":27019.99179588592,"y":18707.975705137116},"targetPosition":{"x":26569.99494307753,"y":18706.292712996186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"3cd61be0-013f-45e4-820f-786aebdf229a","savedPayload":{"position":{"x":26569.99494307753,"y":18706.292712996186},"targetPosition":{"x":26153.608007864234,"y":18876.944171190004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Market Buy Orders","id":"eacc640d-6715-4734-9d0a-00dbe9a40847"}}},{"type":"Product Definition","name":"Market Sell Orders","config":"{ \n \"codeName\": \"Market-Sell-Orders\", \n \"singularVariableName\": \"marketSellOrder\", \n \"pluralVariableName\": \"marketSellOrders\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"3294707b-028f-4ac8-a952-995134194a1f","savedPayload":{"position":{"x":26815.45275882104,"y":18830.338045364537},"targetPosition":{"x":26602.802566259714,"y":18903.85604046527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"30cb146d-088d-4066-9f26-38c1e557d892","savedPayload":{"position":{"x":26827.399845457454,"y":18917.311975102904},"targetPosition":{"x":26602.802566259714,"y":18903.85604046527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"2a40d0df-d25b-48f9-a8bb-02d52cc2dd0d","savedPayload":{"position":{"x":27242.98849717597,"y":18717.15061555652},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"facb5096-04c8-4a9a-8cbf-d5e7f90a4812","savedPayload":{"position":{"x":27279.441025362685,"y":18742.078489243562},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"a8e19192-c03c-4be2-8ca0-e880031a6880","savedPayload":{"position":{"x":27313.274665769386,"y":18770.459300975966},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"09959b1f-ef54-496a-897a-51ed1b372a46","savedPayload":{"position":{"x":27344.163581943616,"y":18802.019728022216},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"997a376f-df28-4e2a-9d9b-09e4c9bde0a1","savedPayload":{"position":{"x":27371.81029673701,"y":18836.455826217178},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b10cdba6-f26a-402c-a85e-d0d828ad1d19","savedPayload":{"position":{"x":27395.948557172884,"y":18873.435957110538},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"67dfd087-0722-4376-addd-006e51aaa152","savedPayload":{"position":{"x":27416.345898607917,"y":18912.603981826407},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f0657078-31ae-4975-b8d8-70aabb4a70cf","savedPayload":{"position":{"x":27432.805883493776,"y":18953.582690875344},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"db561394-81f8-4670-ac24-fe5b968bf4b6","savedPayload":{"position":{"x":27445.169993178064,"y":18995.977436887973},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"4b12754d-55c3-4558-9370-9c27b749a16a","savedPayload":{"position":{"x":27453.319154525612,"y":19039.379935284862},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"03d78427-a6ae-4e60-9540-6195a70f795d","savedPayload":{"position":{"x":27457.174886657856,"y":19083.37219628023},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderCounters\"\n}","project":"Superalgos","id":"187c983a-644f-40ef-8e9b-ad50debad761","savedPayload":{"position":{"x":27456.700056766607,"y":19127.53055035208},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"d857608a-9af1-4fee-8d00-312cb7bce6fd","savedPayload":{"position":{"x":27451.899237723286,"y":19171.42972841128},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"c3dc3c8f-281f-4a6c-a3f5-ada58f27a6af","savedPayload":{"position":{"x":27442.818664039678,"y":19214.646957375397},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"8d60bf40-fb84-48cb-9f95-0165f41ba0b7","savedPayload":{"position":{"x":27429.545786604296,"y":19256.76603170456},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lock","config":"{\n \"codeName\": \"lock\",\n \"isString\": true\n}","project":"Superalgos","id":"0d7ec7ad-c3c1-4edb-a6e1-d00b549ac90f","savedPayload":{"position":{"x":27412.20843048254,"y":19297.381321688354},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"8a0087cb-1c46-428c-85e8-9992a4df0552","savedPayload":{"position":{"x":27390.97356389142,"y":19336.101679881656},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"e80c490e-c927-4e9a-a897-c8e807b9e91a","savedPayload":{"position":{"x":27366.045690204377,"y":19372.55420806837},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"b0cb2728-8f21-45b7-bdb7-e30b14601859","savedPayload":{"position":{"x":27337.664878471973,"y":19406.38784847507},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"ec1de80a-d157-4a58-8f60-2866f8333a3b","savedPayload":{"position":{"x":27306.104451425723,"y":19437.2767646493},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"ca68e146-6725-48d2-bcfd-b0b2dd56bc7e","savedPayload":{"position":{"x":27271.66835323076,"y":19464.923479442696},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4877c9f5-453e-4f62-bf5c-8764c065194b","savedPayload":{"position":{"x":27234.6882223374,"y":19489.06173987857},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"eb7cffe8-d829-475d-8ece-16e08f59af5f","savedPayload":{"position":{"x":27195.520197621532,"y":19509.459081313602},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"646a76dd-1ec2-47f3-b28c-c4d6786fd7ff","savedPayload":{"position":{"x":27154.541488572595,"y":19525.91906619946},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"b7aba5a7-e8b7-420e-8fc5-8f5d6f9a5efa","savedPayload":{"position":{"x":27112.146742559966,"y":19538.28317588375},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Base Asset","config":"{\n \"codeName\": \"actualSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"1df498a1-a080-4c13-ace3-d083d7b4259b","savedPayload":{"position":{"x":27068.744244163077,"y":19546.432337231297},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Quoted Asset","config":"{\n \"codeName\": \"actualSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"67dc41a2-4efd-477a-8c17-c0f628da9a5e","savedPayload":{"position":{"x":27024.75198316771,"y":19550.28806936354},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Base Asset","config":"{\n \"codeName\": \"amountReceivedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"9102dfa0-3d32-4215-88b3-419dc9012c81","savedPayload":{"position":{"x":26980.59362909586,"y":19549.813239472292},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Quoted Asset","config":"{\n \"codeName\": \"amountReceivedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"92550ee2-dfab-404b-bc33-b7d4d88fd8d7","savedPayload":{"position":{"x":26936.69445103666,"y":19545.01242042897},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Base Asset","config":"{ \n\"codeName\": \"feesToBePaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"ba827fbc-b3a7-44b8-a3b0-87bce39b47ae","savedPayload":{"position":{"x":26893.477222072543,"y":19535.931846745363},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesToBePaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"57f524cc-8835-4ff9-b1bc-a0176e78e897","savedPayload":{"position":{"x":26851.35814774338,"y":19522.65896930998},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"66db165f-619e-497e-8e01-cd7bf3e78735","savedPayload":{"position":{"x":27007.505498371127,"y":19100.618681076812},"targetPosition":{"x":26602.802566259714,"y":18903.85604046527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"34fcaec3-7648-452d-a8fb-dec48c7ba2d2","savedPayload":{"position":{"x":26602.802566259714,"y":18903.85604046527},"targetPosition":{"x":26153.608007864234,"y":18876.944171190004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Market Sell Orders","id":"9c5b3d7c-d10c-45ae-851a-4a8326a87059"}}},{"type":"Product Definition","name":"Limit Buy Orders","config":"{ \n \"codeName\": \"Limit-Buy-Orders\", \n \"singularVariableName\": \"limitBuyOrder\", \n \"pluralVariableName\": \"limitBuyOrders\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"4682a1a3-edb5-4d7c-80ad-5480fbb6f60c","savedPayload":{"position":{"x":26770.131163999882,"y":19122.11717802818},"targetPosition":{"x":26546.641698141942,"y":19096.089142171968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a1633615-2a0b-4b63-a6fe-720459a98aff","savedPayload":{"position":{"x":26743.158543280795,"y":19205.66162766295},"targetPosition":{"x":26546.641698141942,"y":19096.089142171968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"b47e1e5d-2025-41a3-a71c-d4d485d95be6","savedPayload":{"position":{"x":27204.437739439563,"y":19205.639632297083},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"af04fb93-ab6f-44ca-8ae4-431b054682fe","savedPayload":{"position":{"x":27226.46453344854,"y":19243.915029662054},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"01ee55ba-58df-4080-bfd7-3f0786fd0d3d","savedPayload":{"position":{"x":27244.633617429135,"y":19284.16512388637},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"100e5d5d-5270-4ed7-8137-195b38a4cead","savedPayload":{"position":{"x":27258.77001317039,"y":19326.00228455971},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"7af2d913-1109-4f78-bdbe-ab19d6fc9039","savedPayload":{"position":{"x":27268.73757945357,"y":19369.023596954274},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"66e442a4-cac5-458f-8de7-fe3e1055237d","savedPayload":{"position":{"x":27274.440323166542,"y":19412.81474231386},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"22f16525-4d00-4a0a-a18b-d0a20fed060c","savedPayload":{"position":{"x":27275.823323769913,"y":19456.95398796998},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b7ffc0f3-b59c-4ddf-8e13-bdea7f6dfdb3","savedPayload":{"position":{"x":27272.873262211855,"y":19501.016248858},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"0f167bc8-f4a8-4e82-9e2d-10943f06a343","savedPayload":{"position":{"x":27265.61854919783,"y":19544.577181318688},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"3255f356-0865-4258-a41b-15aa3c2d9576","savedPayload":{"position":{"x":27254.12905158,"y":19587.217269759614},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"a62f1774-f821-48f8-932a-5d77479da26b","savedPayload":{"position":{"x":27238.515419501215,"y":19628.52586681965},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderCounters\"\n}","project":"Superalgos","id":"74160fa6-e6d6-44a2-a5e4-48ced0462b28","savedPayload":{"position":{"x":27218.92802077368,"y":19668.10514812754},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"cc2daab1-0266-48b6-8efe-975d26826f23","savedPayload":{"position":{"x":27195.555492754702,"y":19705.573943568044},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"1fa7a3c9-a89a-4e1e-b108-bc5dbb107936","savedPayload":{"position":{"x":27168.622925665823,"y":19740.571408158543},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"160fb293-1a8c-40ed-a273-a47d2685844a","savedPayload":{"position":{"x":27138.389694850954,"y":19772.760497183477},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lock","config":"{\n \"codeName\": \"lock\",\n \"isString\": true\n}","project":"Superalgos","id":"5a062c19-8b9d-4d88-a523-8bd8a1f1707c","savedPayload":{"position":{"x":27105.14696285,"y":19801.83121211918},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"77e3cc8f-32e6-429b-9f02-d18aa12e2119","savedPayload":{"position":{"x":27069.214875344464,"y":19827.503586089166},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"6249aef5-2026-48d2-b231-c838349e5820","savedPayload":{"position":{"x":27030.939477979493,"y":19849.530380098142},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"d68ce96d-1993-40f0-9306-c512add581d8","savedPayload":{"position":{"x":26990.689383755176,"y":19867.69946407874},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"be934011-b78c-4a23-9c4b-536594df4c27","savedPayload":{"position":{"x":26948.852223081838,"y":19881.835859819992},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"28917113-809d-44a0-af32-47406ea73a20","savedPayload":{"position":{"x":26905.830910687273,"y":19891.80342610317},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2bf2e140-7569-4af7-bc2b-e8c7453db254","savedPayload":{"position":{"x":26862.039765327685,"y":19897.506169816144},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"5e56da7e-35cb-4f6d-a1f9-c39215dd3a26","savedPayload":{"position":{"x":26817.900519671566,"y":19898.889170419516},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"435e1e14-0452-4e44-868a-a83783e10e31","savedPayload":{"position":{"x":26773.838258783548,"y":19895.939108861457},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"e246ad00-c4c2-4e61-9c17-3ea5f7a0b3ea","savedPayload":{"position":{"x":26730.27732632286,"y":19888.68439584743},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Base Asset","config":"{\n \"codeName\": \"actualSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"be6dd544-2dc4-4b60-a1d3-569f25526113","savedPayload":{"position":{"x":26687.637237881932,"y":19877.1948982296},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Quoted Asset","config":"{\n \"codeName\": \"actualSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"cf22078f-e0f4-465b-a9eb-4b57ad3862fd","savedPayload":{"position":{"x":26646.328640821896,"y":19861.581266150817},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Base Asset","config":"{\n \"codeName\": \"amountReceivedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"a040100b-1616-4ffe-864f-f2a0c4e2019b","savedPayload":{"position":{"x":26606.749359514008,"y":19841.993867423284},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Quoted Asset","config":"{\n \"codeName\": \"amountReceivedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"f581ad16-ee2d-41f0-8e97-8d9b6e23b1cf","savedPayload":{"position":{"x":26569.280564073502,"y":19818.621339404304},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Base Asset","config":"{ \n\"codeName\": \"feesToBePaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"41a46d57-7cb1-494f-b522-95c098f72902","savedPayload":{"position":{"x":26534.283099483004,"y":19791.688772315425},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesToBePaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"b1618d48-eb95-4367-a2a9-39f42949c3fa","savedPayload":{"position":{"x":26502.09401045807,"y":19761.455541500556},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"58a1663c-4dd9-4d71-bd44-a8fec9858abf","savedPayload":{"position":{"x":26825.894330495972,"y":19448.960177145575},"targetPosition":{"x":26546.641698141942,"y":19096.089142171968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"305fdc12-cc25-4e46-9d7a-bf72b3e970ef","savedPayload":{"position":{"x":26546.641698141942,"y":19096.089142171968},"targetPosition":{"x":26153.608007864234,"y":18876.944171190004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Limit Buy Orders","id":"71dceb6b-45b8-44d1-a44d-bb17b87f037f"}}},{"type":"Product Definition","name":"Limit Sell Orders","config":"{ \n \"codeName\": \"Limit-Sell-Orders\", \n \"singularVariableName\": \"limitSellOrder\", \n \"pluralVariableName\": \"limitSellOrders\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"7d9f51b0-ef07-4139-a632-250d51bc3400","savedPayload":{"position":{"x":26602.699596945753,"y":19365.336789837926},"targetPosition":{"x":26412.635687422786,"y":19244.917894739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"7307f0c3-3742-4b12-b42f-e392d7dc1d3b","savedPayload":{"position":{"x":26542.149527202062,"y":19428.904756513497},"targetPosition":{"x":26412.635687422786,"y":19244.917894739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"16fbb9ed-f280-4ea4-8800-3b3aadb2b6a3","savedPayload":{"position":{"x":26957.757265783745,"y":19629.02648178012},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"b27c0c96-9c13-490b-8a3e-d8ef3fc5ac3e","savedPayload":{"position":{"x":26960.995648920612,"y":19673.06849095794},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"294f9b8b-b922-482a-a3a1-6628c72c66d1","savedPayload":{"position":{"x":26959.901566563552,"y":19717.21584287803},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"f71a3717-b972-4390-b784-a4dac5b07084","savedPayload":{"position":{"x":26954.48555532376,"y":19761.043374408},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"e195a2aa-ebee-4b1d-a5b3-95ab2c4cb927","savedPayload":{"position":{"x":26944.79977435016,"y":19804.129002460657},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b45067dc-4e5e-46a9-9c3c-e32256f988ed","savedPayload":{"position":{"x":26930.937503008317,"y":19846.057788884846},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"fbd731e3-8193-4190-a3ae-da6fc4518ed8","savedPayload":{"position":{"x":26913.03224254914,"y":19886.4259365467},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"d370a08f-54f0-45b9-855e-ab475ed44fda","savedPayload":{"position":{"x":26891.256430418864,"y":19924.844678116762},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"58e81727-4e74-4206-93c4-819ee03967a5","savedPayload":{"position":{"x":26865.819779592173,"y":19960.944020111892},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"c972c224-d5df-4b34-8dff-8aa11176c3b3","savedPayload":{"position":{"x":26836.967258921613,"y":19994.376306134764},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"4fe019b1-c62c-414a-909c-96cfa0cff815","savedPayload":{"position":{"x":26804.976733953637,"y":20024.81956499504},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderCounters\"\n}","project":"Superalgos","id":"0c3fc1db-ccdc-4e78-91d4-a7afd79dd602","savedPayload":{"position":{"x":26770.156290931485,"y":20051.98061146791},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"34283e55-3527-439f-b866-ee6e0c0a800b","savedPayload":{"position":{"x":26732.841269756253,"y":20075.5978698281},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"e73028f3-c880-454d-af6b-b96599e1e822","savedPayload":{"position":{"x":26693.39103448032,"y":20095.4438929671},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"5dc685cc-12a5-4045-a027-ed74e0fa21fa","savedPayload":{"position":{"x":26652.185512435088,"y":20111.327552833147},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lock","config":"{\n \"codeName\": \"lock\",\n \"isString\": true\n}","project":"Superalgos","id":"cbcfcad0-1c60-43a1-a178-aaaf3fdaa569","savedPayload":{"position":{"x":26609.62153532308,"y":20123.095881098827},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"d4cf821f-890b-49af-95e6-9b738b6d4d8a","savedPayload":{"position":{"x":26566.109017511724,"y":20130.635542329725},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"ec116e01-4d8b-4c33-be72-a84d98460d77","savedPayload":{"position":{"x":26522.067008333906,"y":20133.873925466592},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"633e63b7-681a-43d4-9422-028e45b61c69","savedPayload":{"position":{"x":26477.919656413815,"y":20132.779843109533},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2142b0f3-d3a0-40bd-83d6-677e8abb4265","savedPayload":{"position":{"x":26434.092124883842,"y":20127.36383186974},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"c66fbd39-438a-495a-b8ab-1fb9fbb0d3ba","savedPayload":{"position":{"x":26391.00649683119,"y":20117.67805089614},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"a82ff7a3-6009-478b-9e7b-e8c75d15f692","savedPayload":{"position":{"x":26349.077710407,"y":20103.815779554297},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"50946fc1-533e-4469-9550-3567b305efbc","savedPayload":{"position":{"x":26308.709562745145,"y":20085.91051909512},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"84aa152c-e830-4359-9bfe-e89df17df352","savedPayload":{"position":{"x":26270.290821175084,"y":20064.134706964844},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"0708c0b2-c192-4278-b3ec-f05044283861","savedPayload":{"position":{"x":26234.191479179954,"y":20038.698056138153},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Base Asset","config":"{\n \"codeName\": \"actualSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"1a54d0f6-ed38-4c40-992c-906395f95e7c","savedPayload":{"position":{"x":26200.75919315708,"y":20009.845535467593},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Quoted Asset","config":"{\n \"codeName\": \"actualSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"9b309098-3437-4c06-adc0-781e86716cfc","savedPayload":{"position":{"x":26170.315934296807,"y":19977.855010499617},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Base Asset","config":"{\n \"codeName\": \"amountReceivedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"88502233-a385-484a-9aaa-f1973c175ca9","savedPayload":{"position":{"x":26143.154887823937,"y":19943.034567477465},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Quoted Asset","config":"{\n \"codeName\": \"amountReceivedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"36ae158a-c43e-4ca9-9321-19d8e4c6cae9","savedPayload":{"position":{"x":26119.537629463746,"y":19905.719546302233},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Base Asset","config":"{ \n\"codeName\": \"feesToBePaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"5accdc78-156c-4458-adf1-c9a610fa5246","savedPayload":{"position":{"x":26099.691606324744,"y":19866.2693110263},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesToBePaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"6d7851aa-ddd4-4d16-98e6-bda3a9f82e08","savedPayload":{"position":{"x":26083.8079464587,"y":19825.063788981068},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"16cc49ed-13ff-41c1-bf6a-594e4401ce89","savedPayload":{"position":{"x":26511.128611372933,"y":19684.006887918913},"targetPosition":{"x":26412.635687422786,"y":19244.917894739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"4c6d766e-f226-4727-8ed7-bfb3c824d00d","savedPayload":{"position":{"x":26412.635687422786,"y":19244.917894739},"targetPosition":{"x":26153.608007864234,"y":18876.944171190004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Limit Sell Orders","id":"162f2c81-4524-4af9-adea-f5e144ed404f"}}},{"type":"Product Definition","name":"Last Market Order","config":"{ \n \"codeName\": \"Last-Market-Order\", \n \"singularVariableName\": \"lastMarketOrder\", \n \"pluralVariableName\": \"lastMarketOrders\",\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"d2ca2f05-9e18-4fc3-9b07-b3ad5a09f135","savedPayload":{"position":{"x":26346.319932927134,"y":19511.82425378205},"targetPosition":{"x":26227.326068001046,"y":19320.864938455587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a473ba23-3652-45df-b5aa-eff704fbef2a","savedPayload":{"position":{"x":26264.18509806945,"y":19542.825322088378},"targetPosition":{"x":26227.326068001046,"y":19320.864938455587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"368eda0b-0f89-43db-ac64-3c66cde2070b","savedPayload":{"position":{"x":26551.805169353538,"y":19903.45420596654},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"a68df5b2-163a-43bf-9341-d562645c408b","savedPayload":{"position":{"x":26535.613740121873,"y":19944.539766899747},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"99b6e48e-5529-420d-a567-30cd3d3520f5","savedPayload":{"position":{"x":26515.473187856016,"y":19983.840452036096},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"a1e480f2-a017-43af-8948-078b9a940102","savedPayload":{"position":{"x":26491.577477084233,"y":20020.977774293788},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"dd1dac77-8f43-4607-aa52-e4eb9ae10647","savedPayload":{"position":{"x":26464.156736563982,"y":20055.594080958155},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"c9855d01-a915-4f20-ac19-0f322c29ecf0","savedPayload":{"position":{"x":26433.475043016177,"y":20087.35599807282},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"8fe0afb0-572e-42df-8eb2-7f4ef2279e34","savedPayload":{"position":{"x":26399.827877922,"y":20115.957641013138},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"5830fee1-ade7-493d-ad1f-e6bad9b53fdd","savedPayload":{"position":{"x":26363.53928187472,"y":20141.123560322347},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"d6d4a8c4-76d2-4de1-a50a-2f274a8b89ba","savedPayload":{"position":{"x":26324.958733891635,"y":20162.611394440406},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"0e4f0882-2763-4c15-bd5f-d985daa81734","savedPayload":{"position":{"x":26284.457785740102,"y":20180.214203778316},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"507475d5-fee8-4f3d-b94f-14e6a8f0e6a6","savedPayload":{"position":{"x":26242.42648369088,"y":20193.762463659477},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderCounters\"\n}","project":"Superalgos","id":"ad49aa86-73df-4b3c-8cd5-f07b6abb810b","savedPayload":{"position":{"x":26199.269612159358,"y":20203.125696935},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"d7bed724-00c4-44f4-9da2-4b52444ceb7a","savedPayload":{"position":{"x":26155.402795410326,"y":20208.213730549982},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderStatistics\"\n}","project":"Superalgos","id":"fdd9e3d1-082c-4be2-9bf7-72dbe138eaf4","savedPayload":{"position":{"x":26111.24849486912,"y":20208.977563959306},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"53f23b5e-a1fa-4882-b3f8-8d2ae7e79be1","savedPayload":{"position":{"x":26067.23194058715,"y":20205.409841029683},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lock","config":"{\n \"codeName\": \"lock\",\n \"isString\": true\n}","project":"Superalgos","id":"f1638173-e0aa-4b4d-bd54-30154eecdeb6","savedPayload":{"position":{"x":26023.777036044045,"y":20197.544920883247},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"fbedbddf-2bf8-4c91-802a-56245e84c057","savedPayload":{"position":{"x":25981.302275725422,"y":20185.45854700041},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"669e75da-6f07-4134-8a14-e0b13e1f0180","savedPayload":{"position":{"x":25940.216714792215,"y":20169.26711776874},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"34156ed7-379d-4299-87ec-b634376980ba","savedPayload":{"position":{"x":25900.916029655866,"y":20149.126565502887},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"a68dfe93-b787-4885-ac84-7d9956c7ea2f","savedPayload":{"position":{"x":25863.778707398174,"y":20125.230854731104},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3ed52093-65fb-4103-9720-78ad5196291c","savedPayload":{"position":{"x":25829.162400733807,"y":20097.810114210853},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"b30a1242-d280-46aa-b9a1-0a84801e67dd","savedPayload":{"position":{"x":25797.40048361914,"y":20067.128420663048},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"6edb98b1-34a6-45b5-9c5b-648dac875889","savedPayload":{"position":{"x":25768.798840678824,"y":20033.481255568873},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"823541d9-4b0c-4e2a-8b3a-33f7a3b7acc6","savedPayload":{"position":{"x":25743.632921369615,"y":19997.192659521592},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"c8aef7c8-5010-4f12-8300-b016ed659fed","savedPayload":{"position":{"x":25722.145087251556,"y":19958.612111538507},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Base Asset","config":"{\n \"codeName\": \"actualSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderBaseAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"40e4d8e5-e7af-4006-9099-e8afc085fcb7","savedPayload":{"position":{"x":25704.542277913646,"y":19918.111163386973},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Quoted Asset","config":"{\n \"codeName\": \"actualSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderQuotedAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"b7e6873c-7b45-41b8-b64f-98c85264e87c","savedPayload":{"position":{"x":25690.994018032485,"y":19876.079861337752},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Base Asset","config":"{\n \"codeName\": \"amountReceivedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderBaseAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"367ec446-4cd3-49dd-8d74-cc03a49cb8e8","savedPayload":{"position":{"x":25681.630784756962,"y":19832.92298980623},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Quoted Asset","config":"{\n \"codeName\": \"amountReceivedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderQuotedAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"69da7435-638e-4331-95e1-5464a3f47cd3","savedPayload":{"position":{"x":25676.54275114198,"y":19789.056173057197},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Base Asset","config":"{ \n\"codeName\": \"feesToBePaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderBaseAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"7676e811-a781-46c6-8f8a-eec20305a7e8","savedPayload":{"position":{"x":25675.778917732656,"y":19744.90187251599},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesToBePaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderQuotedAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"316d9338-2402-4a73-a247-a0acb832e8f1","savedPayload":{"position":{"x":25679.34664066228,"y":19700.88531823402},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5ffc56b0-babe-4341-86cc-a6dea77f1bdb","savedPayload":{"position":{"x":26125.551552022545,"y":19759.204929669417},"targetPosition":{"x":26227.326068001046,"y":19320.864938455587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"7ee7d9a7-496e-4e19-89e0-c720e0ca4790","savedPayload":{"position":{"x":26227.326068001046,"y":19320.864938455587},"targetPosition":{"x":26153.608007864234,"y":18876.944171190004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Last Market Order","id":"a26050ca-9d86-478a-a48c-f3f2c9eb5a73"}}},{"type":"Product Definition","name":"Last Limit Order","config":"{ \n \"codeName\": \"Last-Limit-Order\", \n \"singularVariableName\": \"lastLimitOrder\", \n \"pluralVariableName\": \"lastLimitOrders\",\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"aa73477a-f1c2-480f-b8a2-fc8c65561f09","savedPayload":{"position":{"x":26051.771308693147,"y":19532.56593107559},"targetPosition":{"x":26027.415682676532,"y":19308.888029884303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0d10dd78-e8f9-4dc5-9ede-b6fcce403d3f","savedPayload":{"position":{"x":25964.31952008268,"y":19524.859959231453},"targetPosition":{"x":26027.415682676532,"y":19308.888029884303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"26d4353d-983c-4151-889c-ae0f5009012a","savedPayload":{"position":{"x":26066.98524152267,"y":19974.569028446072},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"74b1bc5c-08de-43fb-8c83-a9d1d41e7ca8","savedPayload":{"position":{"x":26034.57091105665,"y":20004.560641910506},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"0e1ec674-1445-4ca6-974a-57b149dd1fc4","savedPayload":{"position":{"x":25999.37297226591,"y":20031.230677580592},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"faceb2df-7159-4936-8c1b-ac9352edc768","savedPayload":{"position":{"x":25961.730400542154,"y":20054.322288433497},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"bc8b49c3-516f-4765-847e-e62cc9ca4f3c","savedPayload":{"position":{"x":25922.005714428604,"y":20073.613089633556},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"c86c1b4f-90c6-4d42-b156-5d0009f92f84","savedPayload":{"position":{"x":25880.581484368256,"y":20088.917300219786},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e853292d-9994-48f5-a4f3-5c6305ed7580","savedPayload":{"position":{"x":25837.856648341378,"y":20100.087532278103},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"95566c2a-3b4a-4a07-9fb7-ee5d20f9452c","savedPayload":{"position":{"x":25794.242669874682,"y":20107.016210367525},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"cbb29ec4-fcc7-48ae-9df2-cd87a7959f25","savedPayload":{"position":{"x":25750.15957542263,"y":20109.636607530443},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"8dd603c6-dfc6-4f6b-b388-74384327c6db","savedPayload":{"position":{"x":25706.031909283058,"y":20107.923487909728},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"206ba7a9-22e5-4700-9a51-c5decb1b4b66","savedPayload":{"position":{"x":25662.284645003532,"y":20101.89334978381},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderCounters\"\n}","project":"Superalgos","id":"f3daf4b0-ac46-4b6d-b43a-7e54ec3c3356","savedPayload":{"position":{"x":25619.33909265375,"y":20091.604266679253},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"c43e1a81-6b08-4cf1-afad-dfb4a6d46c77","savedPayload":{"position":{"x":25577.60884137927,"y":20077.15532809094},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderStatistics\"\n}","project":"Superalgos","id":"d55ac36e-1894-4d51-9790-3d407dde4e17","savedPayload":{"position":{"x":25537.49577631194,"y":20058.685685196062},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"b27fb0eb-ffb0-436e-84b2-1d1a167a1c52","savedPayload":{"position":{"x":25499.38620819638,"y":20036.37321075224},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lock","config":"{\n \"codeName\": \"lock\",\n \"isString\": true\n}","project":"Superalgos","id":"7de159c4-efa8-48bf-8139-f3ec260921d9","savedPayload":{"position":{"x":25463.64715300637,"y":20010.432786085603},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"7ff34fc8-2b22-46a9-a50b-cf9625b4f266","savedPayload":{"position":{"x":25430.622797380332,"y":19981.11423166617},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"9a90495f-3d54-4782-b604-374855217992","savedPayload":{"position":{"x":25400.6311839159,"y":19948.69990120015},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"4f2d1c02-0abe-4ae1-9c10-9f097ed7c566","savedPayload":{"position":{"x":25373.961148245813,"y":19913.501962409413},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"fb84b68f-536c-4cfb-a9d9-c52583c76533","savedPayload":{"position":{"x":25350.869537392908,"y":19875.859390685655},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"0f872488-7916-4746-a34d-71af3b8ed8de","savedPayload":{"position":{"x":25331.57873619285,"y":19836.134704572105},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"c0910bbc-ba23-4001-aadc-a677946a5be7","savedPayload":{"position":{"x":25316.27452560662,"y":19794.710474511758},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"0a136f03-455e-4780-9194-36ac54fd250f","savedPayload":{"position":{"x":25305.104293548302,"y":19751.98563848488},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"3b2c5c76-2104-4534-b9c3-2af4bf4eec71","savedPayload":{"position":{"x":25298.17561545888,"y":19708.371660018183},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"83bb7013-8960-4970-9205-1eb7a254b5e4","savedPayload":{"position":{"x":25295.555218295962,"y":19664.288565566127},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Base Asset","config":"{\n \"codeName\": \"actualSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderBaseAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"1a1ca8a8-d624-427c-a7b7-7671371d8da8","savedPayload":{"position":{"x":25297.268337916677,"y":19620.16089942656},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Quoted Asset","config":"{\n \"codeName\": \"actualSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderQuotedAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"c95b3c5e-d93b-4def-81aa-b6237a312677","savedPayload":{"position":{"x":25303.298476042593,"y":19576.413635147033},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Base Asset","config":"{\n \"codeName\": \"amountReceivedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderBaseAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"af9596f8-8282-4046-8266-fcaf4fbef1aa","savedPayload":{"position":{"x":25313.587559147152,"y":19533.46808279725},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Quoted Asset","config":"{\n \"codeName\": \"amountReceivedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderQuotedAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"7dcd1cce-14f7-4f82-92b6-367c7c7f8017","savedPayload":{"position":{"x":25328.036497735466,"y":19491.737831522772},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Base Asset","config":"{ \n\"codeName\": \"feesToBePaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderBaseAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"30058420-180a-4d0f-a287-0f265ef448d0","savedPayload":{"position":{"x":25346.506140630343,"y":19451.62476645544},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesToBePaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderQuotedAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"c39fef8f-d171-4e15-9129-d42a9721b190","savedPayload":{"position":{"x":25368.818615074164,"y":19413.515198339883},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2100fd99-a281-4116-8fdb-531031093492","savedPayload":{"position":{"x":25745.531417841452,"y":19659.660407984953},"targetPosition":{"x":26027.415682676532,"y":19308.888029884303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"f686e12f-ca57-43a4-8c53-a786d46184e1","savedPayload":{"position":{"x":26027.415682676532,"y":19308.888029884303},"targetPosition":{"x":26153.608007864234,"y":18876.944171190004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Last Limit Order","id":"3c2bc2f1-78bc-4561-81c1-6d4c6565934a"}}}],"productDefinitionFolders":[],"id":"e8167d6e-6596-4f39-a539-8fd7f5c31da5","savedPayload":{"position":{"x":26153.608007864234,"y":18876.944171190004},"targetPosition":{"x":25819.192836399405,"y":18575.835398328516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cfb7bf3a-c49c-46ef-b25d-4ed25e3b0831","savedPayload":{"position":{"x":25819.192836399405,"y":18575.835398328516},"targetPosition":{"x":25391.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Trading System","project":"Superalgos","products":[{"type":"Product Definition","name":"Trading System Errors","config":"{\n \"codeName\": \"Trading-System-Errors\",\n \"singularVariableName\": \"tradingSystemError\",\n \"pluralVariableName\": \"tradingSystemErrors\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"errors\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"82759bb0-1939-4a43-bd9d-186752054028","savedPayload":{"position":{"x":26136.2214067986,"y":18271.109813707764},"targetPosition":{"x":26083.69619993102,"y":18489.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"5b41f5ae-5c91-40e4-8e7b-0c2dc98ff02b","savedPayload":{"position":{"x":26215.947881696826,"y":18307.86422206288},"targetPosition":{"x":26083.69619993102,"y":18489.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"d02ff3c3-00b5-40dc-b735-fe9a04a73533","savedPayload":{"position":{"x":26328.06544377827,"y":18153.547636646676},"targetPosition":{"x":26275.54023691069,"y":18372.330868736153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"8ce694d5-3028-40cc-ae9a-bf9ca7b17815","savedPayload":{"position":{"x":26467.38427389036,"y":18254.768691675064},"targetPosition":{"x":26275.54023691069,"y":18372.330868736153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Errors","config":"{\n \"codeName\": \"errors\",\n \"isString\": false\n}","project":"Superalgos","id":"7314054b-3f16-437b-98f5-e9b9d28ccb09","savedPayload":{"position":{"x":26494.323469000166,"y":18424.856075603733},"targetPosition":{"x":26275.54023691069,"y":18372.330868736153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"db772377-017f-4d9e-a28a-6be3a092e864","savedPayload":{"position":{"x":26275.54023691069,"y":18372.330868736153},"targetPosition":{"x":26083.69619993102,"y":18489.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"49c5b89f-f351-4f74-a1fd-4bb6a1e05098","savedPayload":{"position":{"x":26083.69619993102,"y":18489.893045797242},"targetPosition":{"x":25819.192836399405,"y":18853.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Errors","id":"27cde61e-3730-4f41-9008-498bc303c3d3"}}},{"type":"Product Definition","name":"Trading System Highlights","config":"{\n \"codeName\": \"Trading-System-Highlights\",\n \"singularVariableName\": \"tradingSystemHighlight\",\n \"pluralVariableName\": \"tradingSystemHighlights\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"highlights\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"1a96b029-6afe-4b02-bfd7-d858938f6b40","savedPayload":{"position":{"x":26300.81266092922,"y":18397.603292754684},"targetPosition":{"x":26183.25048386813,"y":18589.447329734354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"85832f2a-5431-4ea2-9ae7-a2862beac305","savedPayload":{"position":{"x":26365.279307602494,"y":18457.195647968547},"targetPosition":{"x":26183.25048386813,"y":18589.447329734354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"73b3b560-d076-44c5-b07a-6a04dbabdc38","savedPayload":{"position":{"x":26519.595893018697,"y":18345.078085887104},"targetPosition":{"x":26402.03371595761,"y":18536.922122866774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"7f1ffe63-6e49-44c2-8e02-be9c3af103ac","savedPayload":{"position":{"x":26620.816948047086,"y":18484.396915999194},"targetPosition":{"x":26402.03371595761,"y":18536.922122866774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Highlights","config":"{\n \"codeName\": \"highlights\",\n \"isString\": false\n}","project":"Superalgos","id":"d4326ce9-7f9c-4a31-a054-015068669220","savedPayload":{"position":{"x":26593.87775293728,"y":18654.484299927863},"targetPosition":{"x":26402.03371595761,"y":18536.922122866774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"853add30-b97f-45ef-9486-cae18e99c943","savedPayload":{"position":{"x":26402.03371595761,"y":18536.922122866774},"targetPosition":{"x":26183.25048386813,"y":18589.447329734354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"7e9b887d-e428-4ff6-850d-b965ea7950a8","savedPayload":{"position":{"x":26183.25048386813,"y":18589.447329734354},"targetPosition":{"x":25819.192836399405,"y":18853.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Highlights","id":"5cf0221d-769c-4251-8597-6ac33ed7ed6e"}}},{"type":"Product Definition","name":"Trading System Values","config":"{\n \"codeName\": \"Trading-System-Values\",\n \"singularVariableName\": \"tradingSystemValue\",\n \"pluralVariableName\": \"tradingSystemValues\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"values\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"2d28fc91-36e0-4bbf-8118-8c02245a8a59","savedPayload":{"position":{"x":26418.25961099223,"y":18568.76723492295},"targetPosition":{"x":26247.168268732225,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"4c8b6784-0282-4453-bb72-660d206298aa","savedPayload":{"position":{"x":26461.155984898633,"y":18645.36422206288},"targetPosition":{"x":26247.168268732225,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"58a24775-857d-4482-834d-1a5d676f289f","savedPayload":{"position":{"x":26642.566011082185,"y":18586.420531461717},"targetPosition":{"x":26471.47466882218,"y":18732.54634233601},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"794560d0-d70c-42e6-ab67-f8e37a086021","savedPayload":{"position":{"x":26695.781068912132,"y":18750.199638874776},"targetPosition":{"x":26471.47466882218,"y":18732.54634233601},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Values","config":"{\n \"codeName\": \"values\",\n \"isString\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"b926df89-4297-4d11-a04d-74cf45dcdbea","savedPayload":{"position":{"x":26617.60047969647,"y":18903.637684596015},"targetPosition":{"x":26471.47466882218,"y":18732.54634233601},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0e1212a8-0452-4da1-b66d-f5596af09acd","savedPayload":{"position":{"x":26471.47466882218,"y":18732.54634233601},"targetPosition":{"x":26247.168268732225,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"3928dd0d-e1a4-4936-8d76-8fb335686ddf","savedPayload":{"position":{"x":26247.168268732225,"y":18714.893045797242},"targetPosition":{"x":25819.192836399405,"y":18853.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Values","id":"44486853-550b-420e-bf50-4157985c1017"}}},{"type":"Product Definition","name":"Trading System Status","config":"{\n \"codeName\": \"Trading-System-Status\",\n \"singularVariableName\": \"tradingSystemState\",\n \"pluralVariableName\": \"tradingSystemStatus\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"588ee579-3944-47f8-9a00-87fea39b4db7","savedPayload":{"position":{"x":26477.065731214443,"y":18767.846920983822},"targetPosition":{"x":26269.192836399405,"y":18853.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"67cc2f38-110a-4b70-b91f-648014283cbe","savedPayload":{"position":{"x":26494.192836399405,"y":18853.950693265968},"targetPosition":{"x":26269.192836399405,"y":18853.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"28108d3a-c3cd-4759-8324-b460d85c711e","savedPayload":{"position":{"x":26684.93862602948,"y":18853.950693265968},"targetPosition":{"x":26477.065731214443,"y":18940.054465548114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"a167f837-b378-4b31-84ff-0d2fa60d2a29","savedPayload":{"position":{"x":26684.93862602948,"y":19026.15823783026},"targetPosition":{"x":26477.065731214443,"y":18940.054465548114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{\n \"codeName\": \"status\",\n \"isString\": false\n}","project":"Superalgos","id":"ca54f4d4-d932-4dff-9cd1-587040886d1f","savedPayload":{"position":{"x":26563.16950349659,"y":19147.927360363152},"targetPosition":{"x":26477.065731214443,"y":18940.054465548114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4ee3808a-634e-430e-9bf9-b6c48f918ac3","savedPayload":{"position":{"x":26477.065731214443,"y":18940.054465548114},"targetPosition":{"x":26269.192836399405,"y":18853.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"9bb9f64d-f7d8-43e4-941c-55461594ab0c","savedPayload":{"position":{"x":26269.192836399405,"y":18853.950693265968},"targetPosition":{"x":25819.192836399405,"y":18853.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Status","id":"743904f9-2055-442a-b783-c7b34457dd3b"}}},{"type":"Product Definition","name":"Trading System Progress","config":"{\n \"codeName\": \"Trading-System-Progress\",\n \"singularVariableName\": \"tradingSystemProgress\",\n \"pluralVariableName\": \"tradingSystemProgresses\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"progress\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"5502978a-0322-40a4-8a0b-311b9f22ede9","savedPayload":{"position":{"x":26471.47466882218,"y":18975.355044195927},"targetPosition":{"x":26247.168268732225,"y":18993.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"57c213ac-8eea-4fbc-ad48-9b828781b485","savedPayload":{"position":{"x":26461.155984898633,"y":19062.537164469057},"targetPosition":{"x":26247.168268732225,"y":18993.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"66ddabd4-217f-46f8-9c91-39ea343da9ac","savedPayload":{"position":{"x":26642.566011082185,"y":19121.48085507022},"targetPosition":{"x":26418.25961099223,"y":19139.134151608985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"005c4f2c-5571-4adf-a12c-3c5f0107e193","savedPayload":{"position":{"x":26589.350953252237,"y":19285.259962483276},"targetPosition":{"x":26418.25961099223,"y":19139.134151608985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Progress","config":"{\n \"codeName\": \"progress\",\n \"isString\": false\n}","project":"Superalgos","id":"a60c1123-8082-4964-8416-554f4df67a2b","savedPayload":{"position":{"x":26435.912907530997,"y":19363.44055169894},"targetPosition":{"x":26418.25961099223,"y":19139.134151608985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3254f7c7-53e7-4d27-8572-cafbaeb6be50","savedPayload":{"position":{"x":26418.25961099223,"y":19139.134151608985},"targetPosition":{"x":26247.168268732225,"y":18993.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"23757b48-f77e-4ad2-a0f7-5185b5ee37a1","savedPayload":{"position":{"x":26247.168268732225,"y":18993.008340734694},"targetPosition":{"x":25819.192836399405,"y":18853.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Progress","id":"e22ad59c-4da9-4afa-8501-69dffc649e9b"}}},{"type":"Product Definition","name":"Trading System Running","config":"{\n \"codeName\": \"Trading-System-Running\",\n \"singularVariableName\": \"tradingSystemRun\",\n \"pluralVariableName\": \"tradingSystemRunning\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"running\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"1fb06a27-a69a-4b27-9008-67d28b8eee12","savedPayload":{"position":{"x":26402.03371595761,"y":19170.979263665162},"targetPosition":{"x":26183.25048386813,"y":19118.454056797582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"caea7873-efd9-4368-be1b-97935c04f9f0","savedPayload":{"position":{"x":26365.279307602494,"y":19250.70573856339},"targetPosition":{"x":26183.25048386813,"y":19118.454056797582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"40a8482b-891b-4544-8adc-801c8bd150c0","savedPayload":{"position":{"x":26519.595893018697,"y":19362.82330064483},"targetPosition":{"x":26300.81266092922,"y":19310.29809377725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"af621d55-4c15-41fc-b19d-2737839e568b","savedPayload":{"position":{"x":26418.374837990308,"y":19502.14213075692},"targetPosition":{"x":26300.81266092922,"y":19310.29809377725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Running","config":"{\n \"codeName\": \"running\",\n \"isString\": false\n}","project":"Superalgos","id":"1597e962-908c-4a6c-8b72-79d62a0c7bd8","savedPayload":{"position":{"x":26248.28745406164,"y":19529.08132586673},"targetPosition":{"x":26300.81266092922,"y":19310.29809377725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"44a78788-e128-4c6c-a8b7-b74c0993c557","savedPayload":{"position":{"x":26300.81266092922,"y":19310.29809377725},"targetPosition":{"x":26183.25048386813,"y":19118.454056797582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"026860d0-2749-4dac-b131-810603162c39","savedPayload":{"position":{"x":26183.25048386813,"y":19118.454056797582},"targetPosition":{"x":25819.192836399405,"y":18853.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Running","id":"1f7328f6-847b-4fe2-b227-e9d59cebcbba"}}},{"type":"Product Definition","name":"Trading System Announcements","config":"{\n \"codeName\": \"Trading-System-Announcements\",\n \"singularVariableName\": \"tradingSystemAnnouncement\",\n \"pluralVariableName\": \"tradingSystemAnnouncements\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"announcements\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"7632fd9d-7db0-4c4a-bf29-f1787da23a09","savedPayload":{"position":{"x":26275.54023691069,"y":19335.570517795783},"targetPosition":{"x":26083.69619993102,"y":19218.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"995cf29f-77ed-49e4-8abf-186178470ae0","savedPayload":{"position":{"x":26215.947881696826,"y":19400.037164469057},"targetPosition":{"x":26083.69619993102,"y":19218.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"d2366c44-f84d-4754-8ffe-5a037f48c123","savedPayload":{"position":{"x":26328.06544377827,"y":19554.35374988526},"targetPosition":{"x":26136.2214067986,"y":19436.79157282417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"affdde9d-da89-4eff-b1b2-8460421ce0ba","savedPayload":{"position":{"x":26188.74661366618,"y":19655.57480491365},"targetPosition":{"x":26136.2214067986,"y":19436.79157282417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Announcements","config":"{\n \"codeName\": \"announcements\",\n \"isString\": false\n}","project":"Superalgos","id":"cf4cb676-2504-4491-824b-7a51468273e0","savedPayload":{"position":{"x":26018.65922973751,"y":19628.63560980384},"targetPosition":{"x":26136.2214067986,"y":19436.79157282417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7242f486-1800-4eb8-89aa-ed333033424b","savedPayload":{"position":{"x":26136.2214067986,"y":19436.79157282417},"targetPosition":{"x":26083.69619993102,"y":19218.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"23eae0ca-0a94-448e-8812-a03dfdafc659","savedPayload":{"position":{"x":26083.69619993102,"y":19218.008340734694},"targetPosition":{"x":25819.192836399405,"y":18853.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Announcements","id":"41b7b669-00f5-4686-a0ea-4500c728becf"}}},{"type":"Product Definition","name":"Trading System Warnings","config":"{\n \"codeName\": \"Trading-System-Warnings\",\n \"singularVariableName\": \"tradingSystemWarning\",\n \"pluralVariableName\": \"tradingSystemWarnings\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"warnings\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"d6469ef9-152d-4c25-823f-0692ec747925","savedPayload":{"position":{"x":26104.376294742422,"y":19453.017467858794},"targetPosition":{"x":25958.25048386813,"y":19281.926125598788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"650b8920-10a9-460f-9954-ca579427e84a","savedPayload":{"position":{"x":26027.779307602494,"y":19495.913841765196},"targetPosition":{"x":25958.25048386813,"y":19281.926125598788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"628feb31-daca-4b51-b860-c0ca8c6f4da9","savedPayload":{"position":{"x":26086.722998203655,"y":19677.323867948748},"targetPosition":{"x":25940.597187329364,"y":19506.23252568874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"b1e44cfc-5efb-4841-b975-357e3ea30e0e","savedPayload":{"position":{"x":25922.943890790597,"y":19730.538925778696},"targetPosition":{"x":25940.597187329364,"y":19506.23252568874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Warnings","config":"{\n \"codeName\": \"warnings\",\n \"isString\": false\n}","project":"Superalgos","id":"a24af599-a991-4f8b-9095-ebe715dacad9","savedPayload":{"position":{"x":25769.505845069358,"y":19652.358336563033},"targetPosition":{"x":25940.597187329364,"y":19506.23252568874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"57605c7a-6a81-4cd3-9baa-d676c8e8f994","savedPayload":{"position":{"x":25940.597187329364,"y":19506.23252568874},"targetPosition":{"x":25958.25048386813,"y":19281.926125598788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"7dc71ef3-48c6-4e21-b342-b7b11624f26f","savedPayload":{"position":{"x":25958.25048386813,"y":19281.926125598788},"targetPosition":{"x":25819.192836399405,"y":18853.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Warnings","id":"f6c2dfef-f995-42ce-a71b-d91007e5328d"}}},{"type":"Product Definition","name":"Trading System Infos","config":"{\n \"codeName\": \"Trading-System-Infos\",\n \"singularVariableName\": \"tradingSystemInfo\",\n \"pluralVariableName\": \"tradingSystemInfos\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"infos\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"466b1cd4-bf0d-47c2-8fd7-edbbbb0d96ae","savedPayload":{"position":{"x":25905.29660868155,"y":19511.823588081006},"targetPosition":{"x":25819.192836399405,"y":19303.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"62f0faba-33df-431f-b05b-5c528b905680","savedPayload":{"position":{"x":25819.192836399405,"y":19528.950693265968},"targetPosition":{"x":25819.192836399405,"y":19303.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"58840dd5-e7e8-44ba-9e90-d56ed8da2c6d","savedPayload":{"position":{"x":25819.192836399405,"y":19719.696482896044},"targetPosition":{"x":25733.08906411726,"y":19511.823588081006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"c50de1a4-03c6-479c-81f3-bb277312caa9","savedPayload":{"position":{"x":25646.985291835113,"y":19719.696482896044},"targetPosition":{"x":25733.08906411726,"y":19511.823588081006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Infos","config":"{\n \"codeName\": \"infos\",\n \"isString\": false\n}","project":"Superalgos","id":"d9af0c01-0e54-4a5b-b86d-631b2e8171aa","savedPayload":{"position":{"x":25525.21616930222,"y":19597.927360363152},"targetPosition":{"x":25733.08906411726,"y":19511.823588081006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"81cf22f8-7ce6-41f1-87dc-9c61533a2446","savedPayload":{"position":{"x":25733.08906411726,"y":19511.823588081006},"targetPosition":{"x":25819.192836399405,"y":19303.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"a3e7dae2-38c7-4129-bb65-230f96b1e4cb","savedPayload":{"position":{"x":25819.192836399405,"y":19303.950693265968},"targetPosition":{"x":25819.192836399405,"y":18853.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Infos","id":"591d337c-9135-42e7-bca4-11ffdf52a80e"}}}],"productDefinitionFolders":[],"id":"19bd263d-7b4e-48d0-986d-86c2669671b3","savedPayload":{"position":{"x":25819.192836399405,"y":18853.950693265968},"targetPosition":{"x":25391.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Simulation Objects","project":"Superalgos","products":[{"type":"Product Definition","name":"Episodes","config":"{\n \"codeName\": \"Episode-Objects\",\n \"singularVariableName\": \"episodeObject\",\n \"pluralVariableName\": \"episodeObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"54f033fc-ed63-4b7e-8759-b50afd8e5524","savedPayload":{"position":{"x":26300.989470862864,"y":18924.552163737113},"targetPosition":{"x":26103.255620513923,"y":19031.912884795525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a25be9ce-70ff-4869-9b19-d2a919e9a4e0","savedPayload":{"position":{"x":26327.023046971783,"y":19008.393980560304},"targetPosition":{"x":26103.255620513923,"y":19031.912884795525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"5cbb3772-9a9c-4a44-8563-56bc6c84b0ee","savedPayload":{"position":{"x":27320.259782415276,"y":18460.09876220178},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"86d96497-e9d3-464e-81cb-fed400cc1a45","savedPayload":{"position":{"x":27413.924232029894,"y":18506.798134108074},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"99450550-bb58-4204-872f-b765de52f69e","savedPayload":{"position":{"x":27501.533889971503,"y":18564.05552047356},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"cec14473-ca84-47f0-a3e0-6dba2b908172","savedPayload":{"position":{"x":27581.903985909397,"y":18631.09661337177},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"1f014ab3-30eb-4901-b72e-001f346c95a3","savedPayload":{"position":{"x":27653.94765216962,"y":18707.014797029165},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"0c1d0f70-4262-431e-a1a3-72aff3aaf364","savedPayload":{"position":{"x":27716.690621755748,"y":18790.783408248204},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"87bc14c4-8b33-4579-a9fa-835e54b0ea7c","savedPayload":{"position":{"x":27769.284403638685,"y":18881.269620265848},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"122785c8-e804-4459-bae7-301cb4f18dac","savedPayload":{"position":{"x":27811.017757142254,"y":18977.249762292202},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hits In Base Asset","config":"{ \n\"codeName\": \"hitsInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"hits\",\n \"decimals\": 0\n}","project":"Superalgos","id":"f9e9f899-d21f-4463-9794-2568b70d9bda","savedPayload":{"position":{"x":27841.326310253207,"y":19077.42586755874},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fails In Base Asset","config":"{ \n\"codeName\": \"failsInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"fails\",\n \"decimals\": 0\n}","project":"Superalgos","id":"07593376-a19a-4420-bea4-e8df01f087be","savedPayload":{"position":{"x":27859.800191784554,"y":19180.443226092233},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Ratio In Base Asset","config":"{ \n\"codeName\": \"hitRatioInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"hitRatio\",\n \"decimals\": 2\n}","project":"Superalgos","id":"c917ef2f-9183-4c35-99a5-ef8ea529a4d5","savedPayload":{"position":{"x":27866.189574180233,"y":19284.908704843132},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Base Asset","config":"{ \n\"codeName\": \"profitLossInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"9fa6a2be-6fb9-489f-88a2-3068d00120f1","savedPayload":{"position":{"x":27860.408052004226,"y":19389.409587420174},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Base Asset","config":"{ \n\"codeName\": \"ROIInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"e702adf6-fba8-41c7-b2c2-923fa460d285","savedPayload":{"position":{"x":27842.53381042585,"y":19492.532678656084},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Annualized Rate Of ReturnIn Base Asset","config":"{ \n\"codeName\": \"annualizedRateOfReturnInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"annualizedRateOfReturn\",\n \"decimals\": 2\n}","project":"Superalgos","id":"29714ff8-9430-49cf-9683-696fb5713684","savedPayload":{"position":{"x":27812.808567899483,"y":19592.883415647902},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Base Asset","config":"{ \n\"codeName\": \"hitFailInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"25ce30e2-9737-4f64-a2eb-108829926c7d","savedPayload":{"position":{"x":27771.634307337117,"y":19689.104726827885},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hits In Quoted Asset","config":"{ \n\"codeName\": \"hitsInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"hits\",\n \"decimals\": 0\n}","project":"Superalgos","id":"7863443e-f934-4b42-9567-abc5ec8b6133","savedPayload":{"position":{"x":27719.567839979085,"y":19779.89538402843},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fails In Quoted Asset","config":"{ \n\"codeName\": \"failsInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"fails\",\n \"decimals\": 0\n}","project":"Superalgos","id":"23e70d44-cd7c-4987-9231-c039aa763b2e","savedPayload":{"position":{"x":27657.313275477205,"y":19864.027599360812},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Ratio In Quoted Asset","config":"{ \n\"codeName\": \"hitRatioInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"hitRatio\",\n \"decimals\": 2\n}","project":"Superalgos","id":"d6dccbf5-d186-472a-bbde-92e10264f573","savedPayload":{"position":{"x":27585.712500019676,"y":19940.363628940115},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Quoted Asset","config":"{ \n\"codeName\": \"profitLossInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"c8a121a5-06fa-470b-aa20-eba9d97ae108","savedPayload":{"position":{"x":27505.733791264578,"y":20007.871158919515},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Quoted Asset","config":"{ \n\"codeName\": \"ROIInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"a82dd325-f98b-4581-a638-bf02c4582050","savedPayload":{"position":{"x":27418.458724045635,"y":20065.637265764115},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Annualized Rate Of ReturnIn Quoted Asset","config":"{ \n\"codeName\": \"annualizedRateOfReturnInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"annualizedRateOfReturn\",\n \"decimals\": 2\n}","project":"Superalgos","id":"d6a00e45-c692-4e90-a86c-0ae969dbca31","savedPayload":{"position":{"x":27325.06754392802,"y":20112.88076197567},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Quoted Asset","config":"{ \n\"codeName\": \"hitFailInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"dc12f60a-bf31-4d9e-b144-922f62423e93","savedPayload":{"position":{"x":27226.82320641175,"y":20148.96276031337},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Balance In Base Asset","config":"{ \n\"codeName\": \"beginBalanceInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"beginBalance\"\n}","project":"Superalgos","id":"ec66c56c-6ce8-4768-98f0-f95e833c8a02","savedPayload":{"position":{"x":27125.05429762516,"y":20173.395313647794},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Balance In Base Asset","config":"{ \n\"codeName\": \"endBalanceInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"endBalance\"\n}","project":"Superalgos","id":"201e08b7-4f8c-4587-b912-a26f20d2d929","savedPayload":{"position":{"x":27021.13706747667,"y":20185.84801360874},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Balance In Quoted Asset","config":"{ \n\"codeName\": \"beginBalanceInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"beginBalance\"\n}","project":"Superalgos","id":"a0f9a8c2-f314-445e-9d05-b363f91a2b70","savedPayload":{"position":{"x":26916.476818235693,"y":20186.152458791636},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Balance In Quoted Asset","config":"{ \n\"codeName\": \"endBalanceInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"endBalance\"\n}","project":"Superalgos","id":"97e05019-e087-4b6e-9b8f-9a85ce463696","savedPayload":{"position":{"x":26812.488900230248,"y":20174.304532097667},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f6eee601-0f71-43e8-8aac-c1dae444aad3","savedPayload":{"position":{"x":26966.193381895297,"y":19287.526695029057},"targetPosition":{"x":26103.255620513923,"y":19031.912884795525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"4fec03d1-9735-4b6d-ae87-68e5d8696539","savedPayload":{"position":{"x":26103.255620513923,"y":19031.912884795525},"targetPosition":{"x":25655.7207675982,"y":19078.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Episode Objects","id":"cb6ea47e-a9b7-4c61-b706-17d767ca601e"}}},{"type":"Product Definition","name":"Strategies","config":"{\n \"codeName\": \"Strategy-Objects\",\n \"singularVariableName\": \"strategyObject\",\n \"pluralVariableName\": \"strategyObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategy\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"825ee3d0-0cae-44e9-b0f1-2504705fdd67","savedPayload":{"position":{"x":26285.739121656872,"y":19267.87199601935},"targetPosition":{"x":26060.81622353737,"y":19261.982182650077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"367fe505-47d7-4285-ad8f-5e12c1b45840","savedPayload":{"position":{"x":26266.363951506955,"y":19353.497927342134},"targetPosition":{"x":26060.81622353737,"y":19261.982182650077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"81ec0e91-ccf1-46a0-a96b-8b6186689c7d","savedPayload":{"position":{"x":26761.639436793175,"y":19365.759192619862},"targetPosition":{"x":26370.57578259956,"y":19588.400649605606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"4ef14c09-7bdf-483f-9331-144e57fb8445","savedPayload":{"position":{"x":26803.55742590808,"y":19465.816406907546},"targetPosition":{"x":26370.57578259956,"y":19588.400649605606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"d665788c-4bc6-4c3f-a97d-b9e4a2d268b2","savedPayload":{"position":{"x":26820.312095738125,"y":19572.997771805254},"targetPosition":{"x":26370.57578259956,"y":19588.400649605606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"c64a9b25-a5fe-45e1-b7be-cb2d3a614aaf","savedPayload":{"position":{"x":26810.92972577354,"y":19681.074295973533},"targetPosition":{"x":26370.57578259956,"y":19588.400649605606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Strategy Name","config":"{ \n\"codeName\": \"strategyName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"0ab3b8a3-5483-47e6-9f0e-267ce5350932","savedPayload":{"position":{"x":26775.95558525314,"y":19783.764964669906},"targetPosition":{"x":26370.57578259956,"y":19588.400649605606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Index","config":"{ \n\"codeName\": \"index\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"2ec6c943-c638-4096-8fd7-5d3c561d686d","savedPayload":{"position":{"x":26717.422244098147,"y":19875.101769495133},"targetPosition":{"x":26370.57578259956,"y":19588.400649605606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f992b3c6-036b-4f44-933f-0dc48b9c89d6","savedPayload":{"position":{"x":26638.731447336446,"y":19949.776547348552},"targetPosition":{"x":26370.57578259956,"y":19588.400649605606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"3c4434e8-7078-4a16-b73d-f91c57f8b5a8","savedPayload":{"position":{"x":26544.456418046415,"y":20003.44947157309},"targetPosition":{"x":26370.57578259956,"y":19588.400649605606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"275c60f2-d2bf-456f-85fa-36d1e8fd932e","savedPayload":{"position":{"x":26440.07607825461,"y":20033.001266905965},"targetPosition":{"x":26370.57578259956,"y":19588.400649605606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"68618bf3-e783-4e21-99ba-0186a0c49983","savedPayload":{"position":{"x":26331.65663390263,"y":20036.71449041883},"targetPosition":{"x":26370.57578259956,"y":19588.400649605606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"99e8d9e6-e79a-4fda-a244-b51a6ca8bb33","savedPayload":{"position":{"x":26225.499029007562,"y":20014.37334305814},"targetPosition":{"x":26370.57578259956,"y":19588.400649605606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategy.strategyCounters\"\n}","project":"Superalgos","id":"075f275f-effa-46e9-8840-0d987d2ae044","savedPayload":{"position":{"x":26127.77275769872,"y":19967.27621110173},"targetPosition":{"x":26370.57578259956,"y":19588.400649605606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"83d3634a-831f-4dca-9390-3770be42d0d1","savedPayload":{"position":{"x":26370.57578259956,"y":19588.400649605606},"targetPosition":{"x":26060.81622353737,"y":19261.982182650077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"5d2d2065-a81f-4387-8795-78b01eca0430","savedPayload":{"position":{"x":26066.81622353737,"y":19261.982182650077},"targetPosition":{"x":25655.7207675982,"y":19078.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Strategy Objects","id":"22c56897-7ccd-4979-bbc9-d4ec3d7fd384"}}}],"productDefinitionFolders":[{"type":"Product Definition Folder","name":"Orders","project":"Superalgos","products":[{"type":"Product Definition","name":"Market Buy Orders","config":"{ \n \"codeName\": \"Market-Buy-Orders-Objects\", \n \"singularVariableName\": \"marketBuyOrdersObject\", \n \"pluralVariableName\": \"marketBuyOrdersObjects\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"6290f06d-8abd-48c3-8737-2c560a52f7ab","savedPayload":{"position":{"x":26578.09702594485,"y":19356.904568452548},"targetPosition":{"x":26370.224131129813,"y":19443.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"8e5f18d5-f5fa-4d58-86cb-dc27f3fb0815","savedPayload":{"position":{"x":26595.224131129813,"y":19443.008340734694},"targetPosition":{"x":26370.224131129813,"y":19443.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"70443fec-2661-443a-b17e-3ce4ca661265","savedPayload":{"position":{"x":27008.926321554478,"y":19224.3317038018},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"e8bedf70-f788-4010-92f5-b77f54943395","savedPayload":{"position":{"x":27056.159022156542,"y":19255.357788979793},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"8332d565-510e-47ad-bb4d-b453589aa719","savedPayload":{"position":{"x":27099.130679226433,"y":19292.05905130555},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"cdf7bce3-4d55-4cbe-9ae2-e7edd7d5522a","savedPayload":{"position":{"x":27137.16360406214,"y":19333.85668994792},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"356184ef-e1b9-48a1-962e-f3670d85bf4f","savedPayload":{"position":{"x":27169.657994719233,"y":19380.091531176808},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7e75a9f1-03ec-4837-882b-ad5207f47c89","savedPayload":{"position":{"x":27196.101395245845,"y":19430.034423926685},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"ae97c490-c86a-491d-925b-19463e6f627c","savedPayload":{"position":{"x":27216.07677741914,"y":19482.897738944448},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"081a64a4-615d-4d47-b777-9744c1518055","savedPayload":{"position":{"x":27229.26911752954,"y":19537.84779017325},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"abff877a-5466-470b-8243-b3c097100679","savedPayload":{"position":{"x":27235.47036449278,"y":19594.017982479647},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"96ce9f58-87aa-4ea1-a400-ea8b5ce8286e","savedPayload":{"position":{"x":27234.5827209398,"y":19650.522478376515},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"83c6f8c1-7455-4e2f-8237-baf5950fb14c","savedPayload":{"position":{"x":27226.620185539687,"y":19706.470168209416},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderCounters\"\n}","project":"Superalgos","id":"ca4a2f55-4d29-4e99-884e-c1927d0d2443","savedPayload":{"position":{"x":27211.708332232287,"y":19760.97872348815},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"c60bf812-cade-4160-a339-2888b44334c9","savedPayload":{"position":{"x":27190.082329852172,"y":19813.188511734148},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"48e320d4-0eb4-4e1b-8098-6247feefa99c","savedPayload":{"position":{"x":27162.083233375615,"y":19862.276153398143},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"901777af-0002-4f45-a884-3f00567db2c0","savedPayload":{"position":{"x":27128.15260527991,"y":19907.467507047568},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"216eb022-77aa-4363-9526-7ab0e1b9bb26","savedPayload":{"position":{"x":27088.82555183929,"y":19948.04987803936},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"6e9a58f8-2460-4d01-a6da-84e2a1ebd0db","savedPayload":{"position":{"x":27044.72228417937,"y":19983.383258140246},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"b41cf871-8300-4d98-82da-80c44a6845d5","savedPayload":{"position":{"x":26996.53833717715,"y":20012.910418838896},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"d42785b9-f915-4d24-affd-963539a367fe","savedPayload":{"position":{"x":26945.03360046056,"y":20036.165699172427},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"b1e54a9b-d9d4-4ae5-a9d4-f9350d59d974","savedPayload":{"position":{"x":26891.02033449505,"y":20052.78234947794},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"c8feae09-147b-44a8-8a93-0cc12a5d8102","savedPayload":{"position":{"x":26835.350360750865,"y":20062.498315253815},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"e1c0f17d-18c1-444c-b737-6d61f8c5e238","savedPayload":{"position":{"x":26778.901627969575,"y":20065.16036991573},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"21a52ab2-7b9b-4da1-8eea-2ebe2b04c092","savedPayload":{"position":{"x":26722.564366387982,"y":20060.726531271437},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"0e5d99c3-7ad2-4f94-bca8-1f788a4cdebe","savedPayload":{"position":{"x":26667.227048275476,"y":20049.266723604993},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0b65a7d1-b579-4c8a-8e87-01cac04d0de8","savedPayload":{"position":{"x":26785.969920759893,"y":19615.215885298985},"targetPosition":{"x":26370.224131129813,"y":19443.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"3f9e1e21-47ae-49fa-80c8-e9adb6a986d7","savedPayload":{"position":{"x":26370.224131129813,"y":19443.008340734694},"targetPosition":{"x":25920.224131129813,"y":19443.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Market Buy Orders","id":"d3dcd315-1e28-47b6-9dec-04618dee4b7c"}}},{"type":"Product Definition","name":"Market Sell Orders","config":"{ \n \"codeName\": \"Market-Sell-Orders-Objects\", \n \"singularVariableName\": \"marketSellOrdersObject\", \n \"pluralVariableName\": \"marketSellOrdersObjects\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"f50e87bf-1961-4883-aa71-d467d9bf83f7","savedPayload":{"position":{"x":30561.738732165315,"y":19494.9752599936},"targetPosition":{"x":29408.814780098182,"y":19536.331183214137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"399ad34d-572f-4ef9-b544-d5659e7f1d54","savedPayload":{"position":{"x":30489.972435810672,"y":19938.880402813473},"targetPosition":{"x":29408.814780098182,"y":19536.331183214137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"e43a06d0-7193-40de-9912-9000f414eaa7","savedPayload":{"position":{"x":31137.75016687439,"y":19583.491557084188},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"6446bb4e-2ad5-4d74-8d86-d75a54d59916","savedPayload":{"position":{"x":31223.59019320684,"y":19700.48808514457},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"85e23761-27e7-49cb-bf51-7baf80f3228f","savedPayload":{"position":{"x":31293.925598084115,"y":19827.10169376592},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"865287ef-adae-4e23-acda-6c74ba0f2a4c","savedPayload":{"position":{"x":31347.809295129613,"y":19961.494120027153},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"0721ef9b-9d06-49f2-8db8-a0cc49c21dbb","savedPayload":{"position":{"x":31384.415963180018,"y":20101.568255043232},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"2939c812-c368-4d77-8837-ac96f788245b","savedPayload":{"position":{"x":31403.17513221224,"y":20245.12110225893},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f85c42c8-f1d5-411e-9b94-68a87fd6ace4","savedPayload":{"position":{"x":31403.79324483422,"y":20389.636504684615},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"2378b1a1-f107-4506-a144-496edc426c3d","savedPayload":{"position":{"x":31386.26222781504,"y":20533.34014537474},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"073e28e2-9881-4a38-8b51-e2c4b027f879","savedPayload":{"position":{"x":31350.858055249915,"y":20673.714015474605},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"19f845d9-6138-447a-b050-d35e5341e424","savedPayload":{"position":{"x":31298.193419518546,"y":20808.570665695763},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"dceaeb6f-c6f5-410c-9410-45440569a532","savedPayload":{"position":{"x":31228.990190844597,"y":20935.73691104689},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderCounters\"\n}","project":"Superalgos","id":"a5013c2e-63c8-4b79-8c0e-7d3f4e6fa538","savedPayload":{"position":{"x":31144.394291431676,"y":21053.227009645278},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"d488bc24-d6f0-4613-ad93-dec86ea579d2","savedPayload":{"position":{"x":31045.741167293418,"y":21159.18943521726},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"4955d155-2194-428e-aae9-e8eb9ff0c047","savedPayload":{"position":{"x":30934.58488915104,"y":21251.951816221826},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"df4d5705-8080-4c6a-bc02-23c134321c81","savedPayload":{"position":{"x":30812.678958481207,"y":21330.05196198316},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"97f590ba-d213-4790-9cde-e1bbe009e1e2","savedPayload":{"position":{"x":30681.94435157234,"y":21392.255360223204},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"8de23659-ce28-476b-9e6e-2859db84e702","savedPayload":{"position":{"x":30544.444149962183,"y":21437.582953517252},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"9ed436a5-5ee0-4aec-9b4e-966d14f1d263","savedPayload":{"position":{"x":30402.351837467053,"y":21465.323233903342},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"fe597ddf-90a2-4954-9910-227386b209ed","savedPayload":{"position":{"x":30257.89452491479,"y":21475.03389310028},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"53062b6f-8baf-491d-a701-9763964996a4","savedPayload":{"position":{"x":30113.5996546336,"y":21466.557990485704},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"428f78fc-cb30-416c-a068-4449a5782358","savedPayload":{"position":{"x":29971.2601313813,"y":21440.023120152193},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"f8acd911-eb56-431e-a9da-4c2fba7b66ca","savedPayload":{"position":{"x":29833.350606475353,"y":21395.85959370992},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"6f3c460a-10f7-404d-aa65-38c183fdbda0","savedPayload":{"position":{"x":29702.03898532638,"y":21334.71973025635},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"e01519f3-5271-4a72-94de-97498105da66","savedPayload":{"position":{"x":29579.22571035548,"y":21257.44662910848},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5ffbfbf7-f128-42c1-b776-e98852d12010","savedPayload":{"position":{"x":30253.090992910802,"y":20322.300037072073},"targetPosition":{"x":29408.814780098182,"y":19536.331183214137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"03ef29c5-656f-454f-b2b7-a25f6a56928e","savedPayload":{"position":{"x":26284.28177859854,"y":19707.511704266308},"targetPosition":{"x":25920.224131129813,"y":19443.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Market Sell Orders","id":"5ba19f07-f9ad-4310-ab76-a00d1762104c"}}},{"type":"Product Definition","name":"Limit Buy Orders","config":"{ \n \"codeName\": \"Limit-Buy-Orders-Objects\", \n \"singularVariableName\": \"limitBuyOrdersObject\", \n \"pluralVariableName\": \"limitBuyOrdersObjects\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"b43153b8-8e5c-43cb-853b-897d37aab175","savedPayload":{"position":{"x":28297.197763643733,"y":21254.638734022392},"targetPosition":{"x":27618.030908282355,"y":20544.350359783835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a1069d96-1b1d-4a52-b145-253eb48ff746","savedPayload":{"position":{"x":27973.536925117998,"y":21460.391216004435},"targetPosition":{"x":27618.030908282355,"y":20544.350359783835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"5cf786df-4935-4c0a-ac85-b54843daba7e","savedPayload":{"position":{"x":28566.53165501038,"y":21671.070019801824},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"0ee67033-b39d-444d-8907-f1bee091fa44","savedPayload":{"position":{"x":28540.63485756526,"y":21792.12269491024},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"bf228332-f75c-403f-ab72-6ac900eb9764","savedPayload":{"position":{"x":28499.693156964597,"y":21908.857857102503},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"97d4c945-d710-431a-b957-837e96bd1d15","savedPayload":{"position":{"x":28444.689411601263,"y":22019.021801782652},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"d00bc8ec-f8c1-47a8-9c01-415008a7d3e5","savedPayload":{"position":{"x":28376.135292015268,"y":22121.64233460315},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7811f02a-7d41-4516-b2df-1b58d53961e7","savedPayload":{"position":{"x":28295.34173115862,"y":22214.827356148584},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"86494c71-d0e4-479e-8962-ef044119ff53","savedPayload":{"position":{"x":28203.659913217394,"y":22297.206187916145},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"a1b75f8d-8f47-4ee8-8e9b-a268114cd631","savedPayload":{"position":{"x":28102.142034383698,"y":22367.542065015663},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"070e2ab5-6d41-4aba-9082-7a04aecd6491","savedPayload":{"position":{"x":27992.76073699908,"y":22424.442118304734},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"ba1abc3b-21e1-4df0-9ce9-42d39a985712","savedPayload":{"position":{"x":27876.92096092378,"y":22467.126723543264},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f75b4bc1-1faf-4821-b507-2409ca070e7a","savedPayload":{"position":{"x":27756.744444576438,"y":22495.171417414513},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderCounters\"\n}","project":"Superalgos","id":"02c3329c-f81c-4dfb-8cfd-82d8bc93f88f","savedPayload":{"position":{"x":27634.110580413726,"y":22507.721865495383},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"8474e2bf-4fd5-4910-b627-483a933748b1","savedPayload":{"position":{"x":27510.91556099024,"y":22504.747941266374},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"55d3f13f-e4fa-483f-b32f-a892ecea0351","savedPayload":{"position":{"x":27389.173590827744,"y":22486.635706378893},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"40489f96-4df1-43dd-abcf-e56e9a2bb7cd","savedPayload":{"position":{"x":27270.44003256182,"y":22453.23846783036},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"b95af92e-9bc4-49e0-83ef-da522d0a85b7","savedPayload":{"position":{"x":27156.8443638509,"y":22405.040629805422},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"49da6bdb-cea5-4807-88ec-c4069cf17e7a","savedPayload":{"position":{"x":27050.026317545897,"y":22343.18494480721},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"f9251045-bc2b-47f1-aede-2fc6e735d3c3","savedPayload":{"position":{"x":26951.898528766327,"y":22268.42286949116},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"04f8dbca-a0a3-48b0-bb78-d634fe7e87ea","savedPayload":{"position":{"x":26864.141771684357,"y":22181.819082158923},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4792b081-13e1-4fcc-b675-c19bb7e616fa","savedPayload":{"position":{"x":26787.70832147373,"y":22084.910878230232},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"eaad4c97-3157-4389-b209-a484d32e0b3b","savedPayload":{"position":{"x":26724.04682404267,"y":21979.423067100885},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"bd181457-2895-4b1a-b743-bff520be4756","savedPayload":{"position":{"x":26674.004763905472,"y":21866.301966483763},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"5ecff3b1-690c-4d06-8689-ad9e1d1a88a6","savedPayload":{"position":{"x":26638.53767020416,"y":21747.95572609214},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"5fb07491-2555-465c-a31d-858669ea0c4d","savedPayload":{"position":{"x":26618.133927503637,"y":21625.844692678227},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8af1ae66-5f8d-4ed9-9d22-91f3f2586074","savedPayload":{"position":{"x":27595.290901255852,"y":21526.407214958588},"targetPosition":{"x":27618.030908282355,"y":20544.350359783835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"b1491e66-a5fe-4e26-a9b4-dce62211af1e","savedPayload":{"position":{"x":26059.28177859854,"y":19870.983773067514},"targetPosition":{"x":25920.224131129813,"y":19443.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Limit Buy Orders","id":"7f9a5845-5e7f-4cb6-8838-7f100fd02239"}}},{"type":"Product Definition","name":"Limit Sell Orders","config":"{ \n \"codeName\": \"Limit-Sell-Orders-Objects\", \n \"singularVariableName\": \"limitSellOrdersObject\", \n \"pluralVariableName\": \"limitSellOrdersObjects\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a52fd596-dff0-4b9c-ba4d-0e2371a3da16","savedPayload":{"position":{"x":28056.842483361772,"y":21371.855356224252},"targetPosition":{"x":27446.21311072474,"y":20601.957715152446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"6652ded1-f3d8-4a7d-bbbf-236e7fb3e2c2","savedPayload":{"position":{"x":27715.73892569853,"y":21546.866004515214},"targetPosition":{"x":27446.21311072474,"y":20601.957715152446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"dd2cafdb-3951-44bd-9d52-d994968f0a92","savedPayload":{"position":{"x":28286.642705425853,"y":21811.62837671577},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"2910e3ff-bd50-45e6-8906-a27b1260a25a","savedPayload":{"position":{"x":28249.628877741394,"y":21929.826458928645},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"aa787047-fa57-4953-8342-e11bd0e21723","savedPayload":{"position":{"x":28198.237875678045,"y":22042.222135762946},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"6284b20f-2547-44cf-9842-d3f3de2baad5","savedPayload":{"position":{"x":28133.194574364174,"y":22146.995566699028},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"47d13538-6617-4954-9bb4-4a238e3044bc","savedPayload":{"position":{"x":28055.5442435588,"y":22242.94335722536},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"fed45e20-b7b2-403e-b0ce-d531237187ec","savedPayload":{"position":{"x":27966.384495706923,"y":22328.192014211934},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"97e7c94f-71c6-4b02-9d5d-b5a7ca578cca","savedPayload":{"position":{"x":27867.37167569742,"y":22401.71176915763},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"8126c3fb-de4d-4a3e-be20-2956f723bc54","savedPayload":{"position":{"x":27759.874814033887,"y":22462.230037799345},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"14029729-f0c7-4e4a-8022-e1c119ef11b8","savedPayload":{"position":{"x":27645.70028038436,"y":22508.917596845477},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"24a87daa-96cf-4ca6-a293-c2cebc3ac4ca","savedPayload":{"position":{"x":27526.492771804093,"y":22540.642978294054},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"2e6393f9-efbd-4ecb-8be6-eea933b3ea86","savedPayload":{"position":{"x":27404.277467496388,"y":22557.45893567008},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderCounters\"\n}","project":"Superalgos","id":"c51f4284-fd75-4f0f-a79c-2d8c2a2a5df4","savedPayload":{"position":{"x":27281.165965446533,"y":22558.67093566599},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"b707de93-a583-40e0-b353-45157985021e","savedPayload":{"position":{"x":27158.815874086402,"y":22544.367134465414},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"2c58cf67-2394-4192-bac2-210098aa7ac3","savedPayload":{"position":{"x":27039.057545900876,"y":22514.986069123413},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"1cfcf983-b6af-4622-828f-46950e29362a","savedPayload":{"position":{"x":26923.871803818827,"y":22470.67621583085},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"92eef429-8457-4cfc-8a0a-ac9465b8f11f","savedPayload":{"position":{"x":26815.13676709853,"y":22412.417912489123},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"37073f51-7598-4508-9274-58c056c914a0","savedPayload":{"position":{"x":26714.66890764104,"y":22340.94618200058},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"f4828e96-04ed-43d1-8fba-dd352bc45ade","savedPayload":{"position":{"x":26623.842255693136,"y":22257.341933241474},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"8b093b1c-f825-4370-973e-9b15ff93c2eb","savedPayload":{"position":{"x":26544.287342494084,"y":22163.153899990564},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"1272376b-dfdc-4151-82a4-d01a90bb69ca","savedPayload":{"position":{"x":26477.24095152323,"y":22059.599923252197},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3031fded-bf20-43b5-acfe-6ecf26bc0b08","savedPayload":{"position":{"x":26423.46979906318,"y":21948.60958956997},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"39410721-f322-44c4-8b3c-03a596d304c0","savedPayload":{"position":{"x":26384.19042546744,"y":21831.394549288983},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"f8cddc02-2c00-429e-842d-8d223cb47262","savedPayload":{"position":{"x":26359.85221739352,"y":21710.328594972158},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"4db0b825-45a0-4027-a36b-d6c2835b2562","savedPayload":{"position":{"x":26350.85964166914,"y":21586.961644423463},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c5001536-0fbf-4307-b316-69fad208b7fc","savedPayload":{"position":{"x":27332.892945833497,"y":21578.01924614344},"targetPosition":{"x":27446.21311072474,"y":20601.957715152446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"0d145cc0-a1a4-47d4-953f-ff1dc7c1366f","savedPayload":{"position":{"x":25781.166483661087,"y":19870.983773067514},"targetPosition":{"x":25920.224131129813,"y":19443.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Limit Sell Orders","id":"a4778a65-1fda-4af2-955e-403778580781"}}}],"productDefinitionFolders":[],"id":"1cd9cd29-ba0b-4b3c-969c-a0422a27b65a","savedPayload":{"position":{"x":25920.224131129813,"y":19443.008340734694},"targetPosition":{"x":25655.7207675982,"y":19078.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Stages","project":"Superalgos","products":[{"type":"Product Definition","name":"Trigger Stages","config":"{\n \"codeName\": \"Trigger-Stages-Objects\",\n \"singularVariableName\": \"triggerStagesObject\",\n \"pluralVariableName\": \"triggerStagesObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyTriggerStage\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"5db36a14-86da-4df7-a06a-9ded5b727b98","savedPayload":{"position":{"x":26309.54510158075,"y":19780.853939431203},"targetPosition":{"x":26086.47000777164,"y":19751.48554618169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"5852e81c-0f36-44be-962c-c334f4065fdc","savedPayload":{"position":{"x":26281.32572362314,"y":19863.98554618169},"targetPosition":{"x":26086.47000777164,"y":19751.48554618169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"bff76e98-dc9d-42d4-85b9-94676fffcd42","savedPayload":{"position":{"x":26443.697957125572,"y":19884.03335184454},"targetPosition":{"x":26223.441329298603,"y":19929.99004774722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"5dbd01ec-8aa3-4884-a724-3cb32d78c627","savedPayload":{"position":{"x":26441.825556975615,"y":19984.150264714237},"targetPosition":{"x":26223.441329298603,"y":19929.99004774722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"1dee8dcf-a2a3-4a1d-bf74-b0e5614bfbb5","savedPayload":{"position":{"x":26396.699482227436,"y":20073.540082382144},"targetPosition":{"x":26223.441329298603,"y":19929.99004774722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"bd9ddecd-fea6-4f9b-a042-cfeda884e70a","savedPayload":{"position":{"x":26317.2575054199,"y":20134.498055164964},"targetPosition":{"x":26223.441329298603,"y":19929.99004774722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"ba96147d-a8a9-4b79-ba70-e0960f259b8d","savedPayload":{"position":{"x":26219.23408435165,"y":20154.950708952587},"targetPosition":{"x":26223.441329298603,"y":19929.99004774722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"077e7986-29a7-44a1-bb80-717b630dea76","savedPayload":{"position":{"x":26122.043959743616,"y":20130.847144827032},"targetPosition":{"x":26223.441329298603,"y":19929.99004774722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"decaf1e6-5363-4a1c-ae95-e329e2fc836c","savedPayload":{"position":{"x":26223.441329298603,"y":19929.99004774722},"targetPosition":{"x":26086.47000777164,"y":19751.48554618169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"ff649432-1a20-47f7-b719-2dc6a4b3ca01","savedPayload":{"position":{"x":26086.47000777164,"y":19751.48554618169},"targetPosition":{"x":25696.75857606864,"y":19526.48554618169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Trigger Stage Objects","id":"7e2cc45c-6a00-4b5c-9b28-292a29131fc2"}}},{"type":"Product Definition","name":"Open Stages","config":"{\n \"codeName\": \"Open-Stages-Objects\",\n \"singularVariableName\": \"openStagesObject\",\n \"pluralVariableName\": \"openStagesObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"38bd122e-b188-4889-9d29-75309bdaae5e","savedPayload":{"position":{"x":28398.6614474727,"y":21928.22275844946},"targetPosition":{"x":27740.84508349377,"y":20980.998416317794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"b58efc5b-1047-46d6-9eb0-c456978fa843","savedPayload":{"position":{"x":27986.095580353165,"y":22107.939905953335},"targetPosition":{"x":27740.84508349377,"y":20980.998416317794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"213b0a65-7aa2-4ced-aa0c-d4d8dd2e3530","savedPayload":{"position":{"x":28468.57238629253,"y":22791.973017604116},"targetPosition":{"x":27536.02002765068,"y":22115.902618767796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"fcabe122-68f7-4b98-b70c-68a5b7509779","savedPayload":{"position":{"x":28082.754021654368,"y":23129.75593680144},"targetPosition":{"x":27536.02002765068,"y":22115.902618767796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"98f439c3-816d-4a40-890b-399937caec04","savedPayload":{"position":{"x":27588.701816424502,"y":23266.5820034291},"targetPosition":{"x":27536.02002765068,"y":22115.902618767796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"07c00ddd-799a-4225-a06c-1e697761bdb9","savedPayload":{"position":{"x":27084.434021559406,"y":23175.5858485332},"targetPosition":{"x":27536.02002765068,"y":22115.902618767796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"4040820a-0a79-4d30-8616-59c5d2ccc426","savedPayload":{"position":{"x":26669.36231396078,"y":22874.619854762474},"targetPosition":{"x":27536.02002765068,"y":22115.902618767796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"c7a1818f-cb86-467b-b405-fa8f8e6e2b67","savedPayload":{"position":{"x":26425.89018402749,"y":22423.412213674277},"targetPosition":{"x":27536.02002765068,"y":22115.902618767796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cbc2db59-d1ec-4cdd-8636-130a1503d454","savedPayload":{"position":{"x":27536.02002765068,"y":22115.902618767796},"targetPosition":{"x":27740.84508349377,"y":20980.998416317794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"71aec3a9-fdfb-4e2d-b963-43ea37fc8c93","savedPayload":{"position":{"x":25879.79006545275,"y":19937.581002120864},"targetPosition":{"x":25696.75857606864,"y":19526.48554618169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Open Stage Objects","id":"ccc6592f-fcfc-430a-a36e-0ef7879c3a5d"}}},{"type":"Product Definition","name":"Manage Stages","config":"{\n \"codeName\": \"Manage-Stages-Objects\",\n \"singularVariableName\": \"manageStagesObject\",\n \"pluralVariableName\": \"manageStagesObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyManageStage\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"58cb2b91-eb31-492a-8217-44bfada1bc2c","savedPayload":{"position":{"x":27664.23350042233,"y":21505.375775512246},"targetPosition":{"x":27169.4545030535,"y":20659.82377732973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a69dd6d7-ac9f-4687-bbe3-eab22a0ca1b1","savedPayload":{"position":{"x":27302.888149758302,"y":21630.39266316751},"targetPosition":{"x":27169.4545030535,"y":20659.82377732973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"ff3991e2-09de-4bea-883f-2eaaed19dd12","savedPayload":{"position":{"x":27666.62411628632,"y":22241.66352220627},"targetPosition":{"x":26921.268299705767,"y":21607.540024649887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"6cc8bff5-b597-4504-82a1-7571b98a0894","savedPayload":{"position":{"x":27317.585605250995,"y":22502.312126408855},"targetPosition":{"x":26921.268299705767,"y":21607.540024649887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"1ad440d4-1c0c-42a7-b69b-3f60816e7266","savedPayload":{"position":{"x":26890.3587458279,"y":22585.71195647841},"targetPosition":{"x":26921.268299705767,"y":21607.540024649887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"2a16f9cf-3221-4a37-81db-8da88c5954bd","savedPayload":{"position":{"x":26468.97508991858,"y":22475.36790895691},"targetPosition":{"x":26921.268299705767,"y":21607.540024649887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"bb738de7-97d0-42ed-aec0-f7e3c595f184","savedPayload":{"position":{"x":26137.198528003973,"y":22193.126859834138},"targetPosition":{"x":26921.268299705767,"y":21607.540024649887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"9b01caaf-eff5-40fb-827a-9251fdef264f","savedPayload":{"position":{"x":25960.7448968667,"y":21794.862226010446},"targetPosition":{"x":26921.268299705767,"y":21607.540024649887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"69746b74-de8e-455e-98cd-13f037188df6","savedPayload":{"position":{"x":26921.268299705767,"y":21607.540024649887},"targetPosition":{"x":27169.4545030535,"y":20659.82377732973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"8326cce3-9a13-4099-89e6-507c7cfc3504","savedPayload":{"position":{"x":25603.19831520065,"y":19966.651966511905},"targetPosition":{"x":25696.75857606864,"y":19526.48554618169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Manage Stage Objects","id":"14b60635-cf33-454a-87e0-871ad0389645"}}},{"type":"Product Definition","name":"Close Stages","config":"{\n \"codeName\": \"Close-Stages-Objects\",\n \"singularVariableName\": \"closeStagesObject\",\n \"pluralVariableName\": \"closeStagesObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"8fdce5c4-1fcb-4891-8ca3-0fedb838a716","savedPayload":{"position":{"x":27347.964704616847,"y":21569.271820620306},"targetPosition":{"x":26912.050299901148,"y":20691.916982233615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"b8830d28-d5fc-4168-986d-93556d83d1f8","savedPayload":{"position":{"x":26978.92628007235,"y":21669.32612854922},"targetPosition":{"x":26912.050299901148,"y":20691.916982233615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"a6b1bb7e-d7b5-4b5a-97b7-588335db70fc","savedPayload":{"position":{"x":27300.080083118486,"y":22304.001601423606},"targetPosition":{"x":26599.70532043249,"y":21620.43811822156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"0291033a-826c-485e-a8ea-39a33fdccfb2","savedPayload":{"position":{"x":26934.051949713037,"y":22540.23414313807},"targetPosition":{"x":26599.70532043249,"y":21620.43811822156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"9cd8f0a8-c95d-4710-9c4b-09bc7e171b03","savedPayload":{"position":{"x":26502.102999881954,"y":22594.268741317428},"targetPosition":{"x":26599.70532043249,"y":21620.43811822156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"672bbc35-1eca-466f-9e62-ecf11322a071","savedPayload":{"position":{"x":26089.214231924274,"y":22455.418533798624},"targetPosition":{"x":26599.70532043249,"y":21620.43811822156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"0ddeaa85-9d2d-4bd5-afc5-ebf88b697031","savedPayload":{"position":{"x":25777.45870130793,"y":22151.179326432477},"targetPosition":{"x":26599.70532043249,"y":21620.43811822156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"ec1ad80e-a6a7-4284-813b-2f80810b0b95","savedPayload":{"position":{"x":25628.586038385503,"y":21741.78221500365},"targetPosition":{"x":26599.70532043249,"y":21620.43811822156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"52438fdd-edea-4e40-b40f-cb0d06b2208e","savedPayload":{"position":{"x":26599.70532043249,"y":21620.43811822156},"targetPosition":{"x":26912.050299901148,"y":20691.916982233615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"828a0a14-ee90-4f0d-8326-9802812679c8","savedPayload":{"position":{"x":25362.343404603813,"y":19827.59431904318},"targetPosition":{"x":25696.75857606864,"y":19526.48554618169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Close Stage Objects","id":"fc953591-3b22-4a19-a5f8-717ad3dc99fa"}}}],"productDefinitionFolders":[],"id":"43945d61-21cc-4b34-819c-8c08ea8194fc","savedPayload":{"position":{"x":25702.75857606864,"y":19526.48554618169},"targetPosition":{"x":25655.7207675982,"y":19078.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Position","project":"Superalgos","products":[{"type":"Product Definition","name":"Positions","config":"{\n \"codeName\": \"Position-Objects\",\n \"singularVariableName\": \"positionObject\",\n \"pluralVariableName\": \"positionObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"97d6f3b5-b6bb-4531-a8da-566a6cdb9be6","savedPayload":{"position":{"x":25923.036678725373,"y":19971.665973734955},"targetPosition":{"x":25731.192641745703,"y":19854.103796673866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"5ef4bdfe-1aac-421f-80be-44048bf68c9e","savedPayload":{"position":{"x":25863.44432351151,"y":20036.13262040823},"targetPosition":{"x":25731.192641745703,"y":19854.103796673866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"045acb6e-09df-4326-afd5-411757559abf","savedPayload":{"position":{"x":26833.59384445245,"y":20611.76315203373},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"9d219b03-74a9-41d2-8689-da7e7c4d5261","savedPayload":{"position":{"x":26840.98506169402,"y":20705.67747155469},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"d2545b70-6c78-42bc-a361-15cf2ac43fc3","savedPayload":{"position":{"x":26838.519069575836,"y":20799.849911186837},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"4b0a8b61-ba99-4c2b-9e7e-14dc985dd1c7","savedPayload":{"position":{"x":26826.222886023577,"y":20893.24869797471},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f35a7acb-8644-450b-bec1-a70cf0392e92","savedPayload":{"position":{"x":26804.231230597394,"y":20984.85053526531},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"a469786f-4dc6-48b0-9aee-522f942f87b6","savedPayload":{"position":{"x":26772.785048476177,"y":21073.65181416036},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"8a6827fa-9915-45c2-bdc2-9a96b11cdccb","savedPayload":{"position":{"x":26732.228870611787,"y":21158.679609265426},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"c2451e65-43c5-45cb-92af-06287cebca12","savedPayload":{"position":{"x":26683.007038975833,"y":21239.002338264127},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"a3530b0b-4837-4ea6-a3f8-05b5abcbc346","savedPayload":{"position":{"x":26625.658838256048,"y":21313.739968528942},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionCounters\"\n}","project":"Superalgos","id":"eaab7626-ad7e-4c84-afa1-dfaa17e71427","savedPayload":{"position":{"x":26560.8125873404,"y":21382.073658942834},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"e778a7c1-201f-485b-ba43-781ef1d3e164","savedPayload":{"position":{"x":26489.17875532387,"y":21443.254731293888},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"796a1149-eef3-4d4f-95cc-dd363252de0c","savedPayload":{"position":{"x":26411.542177460375,"y":21496.61287295046},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"50b1ab55-dd61-413c-bd79-69ae43cd91d2","savedPayload":{"position":{"x":26328.753456343486,"y":21541.56348094665},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Base Asset","config":"{ \n\"codeName\": \"profitLossInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"6b16dcbe-a6fe-49e8-bdc2-021717e4b71b","savedPayload":{"position":{"x":26241.719642526412,"y":21577.614067014736},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Quoted Asset","config":"{ \n\"codeName\": \"profitLossInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"cf75c764-003e-4aa7-b7c9-83a319581065","savedPayload":{"position":{"x":26151.394296686336,"y":21604.369653389687},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Base Asset","config":"{ \n\"codeName\": \"ROIInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"81b23950-7553-470a-9db2-9e9f9373dc8c","savedPayload":{"position":{"x":26058.767042214065,"y":21621.537100268208},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Quoted Asset","config":"{ \n\"codeName\": \"ROIInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"332c4506-2ec0-43b7-af68-d6c72840f3e0","savedPayload":{"position":{"x":25964.852722693107,"y":21628.928317509777},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Base Asset","config":"{ \n\"codeName\": \"hitFailInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"24ca54a3-fb57-418f-9d43-da2f94b5766a","savedPayload":{"position":{"x":25870.68028306096,"y":21626.462325391592},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Quoted Asset","config":"{ \n\"codeName\": \"hitFailInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"e09f4521-5d2a-4fa0-bc69-85a67c540cb7","savedPayload":{"position":{"x":25777.281496273088,"y":21614.166141839334},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Base Asset","config":"{ \n\"codeName\": \"entryTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"6f6bbfd4-9353-4dea-a98a-ebacb12775ae","savedPayload":{"position":{"x":25685.679658982488,"y":21592.17448641315},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Quoted Asset","config":"{ \n\"codeName\": \"entryTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"94e98be3-b1bd-4361-b3b9-7dd73eebd4e5","savedPayload":{"position":{"x":25596.87838008744,"y":21560.728304291933},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Base Asset","config":"{ \n\"codeName\": \"exitTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"c94b4ce7-368e-4a3f-b60d-ee6eef6029eb","savedPayload":{"position":{"x":25511.85058498237,"y":21520.172126427544},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Quoted Asset","config":"{ \n\"codeName\": \"exitTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"9db8e85b-8f3d-42cd-839a-07dfb36f588a","savedPayload":{"position":{"x":25431.52785598367,"y":21470.95029479159},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Rate","config":"{ \n\"codeName\": \"entryTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"86022e9a-94ba-4f1e-ad8e-e7439f1e595a","savedPayload":{"position":{"x":25356.790225718854,"y":21413.602094071804},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Rate","config":"{ \n\"codeName\": \"exitTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"713300f8-a7b1-4e4d-98b1-e66e8bdbd502","savedPayload":{"position":{"x":25288.456535304962,"y":21348.755843156156},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Profit Loss","config":"{ \n\"codeName\": \"profitLoss\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 10\n}","project":"Superalgos","id":"fd7c4308-3bb6-4c71-a1fb-ff1c4f897bff","savedPayload":{"position":{"x":25227.27546295391,"y":21277.122011139625},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics ROI","config":"{ \n\"codeName\": \"ROI\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 10\n}","project":"Superalgos","id":"c50cd240-e54d-48e1-b14b-97d47056167a","savedPayload":{"position":{"x":25173.917321297336,"y":21199.48543327613},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Hit Fail","config":"{ \n\"codeName\": \"hitFail\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\"\n}","project":"Superalgos","id":"436f9bbd-458b-4bc0-aa91-0d1da97c1cb3","savedPayload":{"position":{"x":25128.966713301146,"y":21116.696712159242},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"7b7600bd-b696-4fb6-a21f-35fab7092f15","savedPayload":{"position":{"x":25092.91612723306,"y":21029.662898342172},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"571e7591-3453-4f0d-9f56-21d89bcecc92","savedPayload":{"position":{"x":25941.29346921602,"y":20729.236725031777},"targetPosition":{"x":25731.192641745703,"y":19854.103796673866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"139528dd-cd77-4bfb-b961-c0dbd8b35bd5","savedPayload":{"position":{"x":25737.192641745703,"y":19854.103796673866},"targetPosition":{"x":25472.68927821409,"y":19490.04614920514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Position Objects","id":"84e55a86-bf76-460b-8fb7-29f5f78beecc"}}},{"type":"Product Definition","name":"Position Base Asset","config":"{\n \"codeName\": \"Position-Base-Asset-Objects\",\n \"singularVariableName\": \"positionBaseAssetObject\",\n \"pluralVariableName\": \"positionBaseAssetObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"24ca111e-c5df-49ab-ad4b-63c77ee7369b","savedPayload":{"position":{"x":25627.087807742944,"y":20135.314852469804},"targetPosition":{"x":25519.727086684532,"y":19937.581002120864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"c2e14033-09ed-4081-a596-a6f2e71b3788","savedPayload":{"position":{"x":25543.245990919753,"y":20161.348428578724},"targetPosition":{"x":25519.727086684532,"y":19937.581002120864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"4f9ba8f4-e226-4627-b031-cb35c213cc3e","savedPayload":{"position":{"x":25775.608255527106,"y":20604.174236933726},"targetPosition":{"x":25391.920181567766,"y":20369.04988281155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"289b319d-188a-447c-9cd1-9f0ebb7e3f42","savedPayload":{"position":{"x":25701.679740629956,"y":20695.468349767078},"targetPosition":{"x":25391.920181567766,"y":20369.04988281155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"49e4356a-9d91-45ad-ba83-76a340caa32c","savedPayload":{"position":{"x":25606.64162368459,"y":20764.517583509434},"targetPosition":{"x":25391.920181567766,"y":20369.04988281155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Base Asset","config":"{ \n\"codeName\": \"profitLossInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"ec763515-d435-4d11-bd24-db40f20d5124","savedPayload":{"position":{"x":25496.970595302922,"y":20806.616346990504},"targetPosition":{"x":25391.920181567766,"y":20369.04988281155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Base Asset","config":"{ \n\"codeName\": \"ROIInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"03ba9be8-2ce7-4c90-912a-31626d341740","savedPayload":{"position":{"x":25380.140554829224,"y":20818.89567905055},"targetPosition":{"x":25391.920181567766,"y":20369.04988281155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Base Asset","config":"{ \n\"codeName\": \"hitFailInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"899ec1c9-365e-4664-b386-04b9b86399ca","savedPayload":{"position":{"x":25264.113276451,"y":20800.518763502234},"targetPosition":{"x":25391.920181567766,"y":20369.04988281155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Base Asset","config":"{ \n\"codeName\": \"entryTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"c864baa5-c74d-4bfc-a640-e3db7d835e5d","savedPayload":{"position":{"x":25156.79582744559,"y":20752.73795677089},"targetPosition":{"x":25391.920181567766,"y":20369.04988281155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Base Asset","config":"{ \n\"codeName\": \"exitTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"8405dfc5-5cf0-4a49-a6d2-e9f413847518","savedPayload":{"position":{"x":25065.501714612237,"y":20678.80944187374},"targetPosition":{"x":25391.920181567766,"y":20369.04988281155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Rate","config":"{ \n\"codeName\": \"entryTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"79e92280-8628-4f93-a507-310038c6b375","savedPayload":{"position":{"x":24996.45248086988,"y":20583.771324928373},"targetPosition":{"x":25391.920181567766,"y":20369.04988281155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Rate","config":"{ \n\"codeName\": \"exitTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"6d481ace-4b67-4a60-b9b9-93eec4d26fb7","savedPayload":{"position":{"x":24954.35371738881,"y":20474.100296546705},"targetPosition":{"x":25391.920181567766,"y":20369.04988281155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Candle Close","config":"{ \n\"codeName\": \"candleClose\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\",\n \"childProperty\": \"close\",\n \"decimals\": 10\n}","project":"Superalgos","id":"986954d7-657b-44f1-8fb5-9ad5f4a4f3b2","savedPayload":{"position":{"x":24942.074385328764,"y":20357.270256073007},"targetPosition":{"x":25391.920181567766,"y":20369.04988281155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8fec9d6d-f749-4d59-9bb7-611a5d48a32f","savedPayload":{"position":{"x":25391.920181567766,"y":20369.04988281155},"targetPosition":{"x":25519.727086684532,"y":19937.581002120864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"2989ce0d-1ac6-4040-8562-176f3f078c85","savedPayload":{"position":{"x":25519.727086684532,"y":19937.581002120864},"targetPosition":{"x":25472.68927821409,"y":19490.04614920514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Position Base Asset","id":"772aac92-a7ad-48f3-8c7c-83374c3c2327"}}},{"type":"Product Definition","name":"Position Quoted Asset","config":"{\n \"codeName\": \"Position-Quoted-Asset-Objects\",\n \"singularVariableName\": \"positionQuotedAssetObject\",\n \"pluralVariableName\": \"positionQuotedAssetObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"68574259-4980-4e2c-82ab-bb6d3e8a8c31","savedPayload":{"position":{"x":25283.76797546071,"y":20126.064503263813},"targetPosition":{"x":25289.65778882998,"y":19901.141605144312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0b29d44d-e997-43e5-86df-8b588a4535c6","savedPayload":{"position":{"x":25198.142044137923,"y":20106.689333113896},"targetPosition":{"x":25289.65778882998,"y":19901.141605144312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"510fda66-155c-4b24-b0f4-708964c877c8","savedPayload":{"position":{"x":25177.960763991276,"y":20606.368864904387},"targetPosition":{"x":24963.23932187445,"y":20210.9011642065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"19012ca0-7b30-42f4-a357-00c8fd4642f4","savedPayload":{"position":{"x":25068.289735609607,"y":20648.467628385457},"targetPosition":{"x":24963.23932187445,"y":20210.9011642065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b4c11b4a-84d5-4432-a41e-13184169b177","savedPayload":{"position":{"x":24951.45969513591,"y":20660.746960445504},"targetPosition":{"x":24963.23932187445,"y":20210.9011642065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Quoted Asset","config":"{ \n\"codeName\": \"profitLossInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"ecfaad3f-5635-41bf-945d-76ec7114ffe8","savedPayload":{"position":{"x":24835.432416757685,"y":20642.370044897187},"targetPosition":{"x":24963.23932187445,"y":20210.9011642065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Quoted Asset","config":"{ \n\"codeName\": \"ROIInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"44cef14e-eeeb-4ea4-8cc8-07e1422a205f","savedPayload":{"position":{"x":24728.114967752274,"y":20594.58923816584},"targetPosition":{"x":24963.23932187445,"y":20210.9011642065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Quoted Asset","config":"{ \n\"codeName\": \"hitFailInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"67451c58-57b1-4fdc-96a0-1dce73778deb","savedPayload":{"position":{"x":24636.820854918922,"y":20520.66072326869},"targetPosition":{"x":24963.23932187445,"y":20210.9011642065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Quoted Asset","config":"{ \n\"codeName\": \"entryTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"c996c0cc-4d43-4ea2-aa93-e5ffcd08c222","savedPayload":{"position":{"x":24567.771621176566,"y":20425.622606323326},"targetPosition":{"x":24963.23932187445,"y":20210.9011642065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Quoted Asset","config":"{ \n\"codeName\": \"exitTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"654d2003-aa67-4750-96b1-8438e23f167d","savedPayload":{"position":{"x":24525.672857695496,"y":20315.951577941658},"targetPosition":{"x":24963.23932187445,"y":20210.9011642065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Rate","config":"{ \n\"codeName\": \"entryTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"83bf7573-20bc-4751-be25-7b914f7f29dd","savedPayload":{"position":{"x":24513.39352563545,"y":20199.12153746796},"targetPosition":{"x":24963.23932187445,"y":20210.9011642065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Rate","config":"{ \n\"codeName\": \"exitTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"40a4ab3c-eb5e-4886-8f00-8902f5051569","savedPayload":{"position":{"x":24531.770441183766,"y":20083.094259089736},"targetPosition":{"x":24963.23932187445,"y":20210.9011642065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Candle Close","config":"{ \n\"codeName\": \"candleClose\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\",\n \"childProperty\": \"close\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2d233410-b59d-4a77-946c-c84357ed6fcf","savedPayload":{"position":{"x":24579.55124791511,"y":19975.776810084324},"targetPosition":{"x":24963.23932187445,"y":20210.9011642065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2486bc11-8cda-45e0-9f33-3f7e2ba1bf2e","savedPayload":{"position":{"x":24963.23932187445,"y":20210.9011642065},"targetPosition":{"x":25289.65778882998,"y":19901.141605144312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"6712c4b0-433a-431e-b146-2977115731b1","savedPayload":{"position":{"x":25289.65778882998,"y":19901.141605144312},"targetPosition":{"x":25472.68927821409,"y":19490.04614920514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Position Quoted Asset","id":"e6a8f8dc-c0a2-4b05-9c65-9f5eba30a4d2"}}},{"type":"Product Definition","name":"Stop Loss","config":"{\n \"codeName\": \"Stop-Loss\",\n \"singularVariableName\": \"stopLoss\",\n \"pluralVariableName\": \"stopLosses\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAtCycle\": \"Second\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"1f551e12-8f74-4693-aabc-516de943f824","savedPayload":{"position":{"x":24985.069453684275,"y":19946.393549716424},"targetPosition":{"x":25102.631630745364,"y":19754.549512736754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"e406d86c-3526-4c90-963e-49f108be83b7","savedPayload":{"position":{"x":24920.602807011,"y":19886.80119450256},"targetPosition":{"x":25102.631630745364,"y":19754.549512736754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\",\n \"childProperty\": \"begin\"\n}","project":"Superalgos","id":"e5929ccd-390d-483c-a7de-c0b410a0b58b","savedPayload":{"position":{"x":24752.267743148557,"y":19904.30222507848},"targetPosition":{"x":24880.40175411146,"y":19719.3517581027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\",\n \"childProperty\": \"end\"\n}","project":"Superalgos","id":"39668dc9-7396-465c-bf97-f994a825645d","savedPayload":{"position":{"x":24684.709999151426,"y":19830.39110716718},"targetPosition":{"x":24880.40175411146,"y":19719.3517581027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stop Loss","config":"{\n \"codeName\": \"stopLoss\",\n \"isString\": false\n}","project":"Superalgos","id":"18d3c1f9-5bd9-46ea-9894-913353b9e920","savedPayload":{"position":{"x":24655.911407226005,"y":19734.48728436541},"targetPosition":{"x":24880.40175411146,"y":19719.3517581027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stop Loss Phase","config":"{\n \"codeName\": \"stopLossPhase\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\"\n}","project":"Superalgos","id":"a05fc94d-2619-40b0-b9bd-e2f946b695cb","savedPayload":{"position":{"x":24671.575881694676,"y":19635.58568496226},"targetPosition":{"x":24880.40175411146,"y":19719.3517581027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Initial Value","config":"{\n \"codeName\": \"initialValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\"\n}","project":"Superalgos","id":"ceb80da5-c77c-407f-b261-c727c1d2655b","savedPayload":{"position":{"x":24728.600881276743,"y":19553.27498366805},"targetPosition":{"x":24880.40175411146,"y":19719.3517581027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Final Value","config":"{\n \"codeName\": \"finalValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\"\n}","project":"Superalgos","id":"8b1ad9a0-aaf1-44ec-bf1d-95800e359c93","savedPayload":{"position":{"x":24815.691905439257,"y":19503.85782434859},"targetPosition":{"x":24880.40175411146,"y":19719.3517581027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"107c53fb-b40b-42c4-9c32-b7e8fe8d35df","savedPayload":{"position":{"x":24880.40175411146,"y":19719.3517581027},"targetPosition":{"x":25102.631630745364,"y":19754.549512736754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"30d84b24-3631-421b-b61b-2a9e69ad35ee","savedPayload":{"position":{"x":25108.631630745364,"y":19754.549512736754},"targetPosition":{"x":25472.68927821409,"y":19490.04614920514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Stop Loss","id":"02860a99-0b00-4e7e-90f6-7697cd980e96"}}},{"type":"Product Definition","name":"Take Profit","config":"{\n \"codeName\": \"Take-Profit\",\n \"singularVariableName\": \"takeProfit\",\n \"pluralVariableName\": \"takeProfits\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAtCycle\": \"Second\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"84efd920-bb57-4655-808f-85fde99ae2cc","savedPayload":{"position":{"x":24827.420574949425,"y":19644.444678733995},"targetPosition":{"x":25025.154425298366,"y":19537.083957675582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"aab8d138-e137-45b9-b6d8-f91d92b3009b","savedPayload":{"position":{"x":24801.386998840506,"y":19560.602861910804},"targetPosition":{"x":25025.154425298366,"y":19537.083957675582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\",\n \"childProperty\": \"begin\"\n}","project":"Superalgos","id":"02fd483f-8381-4966-a2c2-9c3f3e489cf2","savedPayload":{"position":{"x":24646.85404189999,"y":19491.591667050736},"targetPosition":{"x":24850.296583970547,"y":19395.486869689368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\",\n \"childProperty\": \"end\"\n}","project":"Superalgos","id":"d4dc93d4-a904-441a-8d7c-cff1e8e8d22a","savedPayload":{"position":{"x":24625.30287833176,"y":19393.80388931888},"targetPosition":{"x":24850.296583970547,"y":19395.486869689368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Take Profit","config":"{\n \"codeName\": \"takeProfit\",\n \"isString\": false\n}","project":"Superalgos","id":"bb2adf04-287b-4235-9db9-329655b1c998","savedPayload":{"position":{"x":24648.31447753201,"y":19296.349446489796},"targetPosition":{"x":24850.296583970547,"y":19395.486869689368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Take Profit Phase","config":"{\n \"codeName\": \"takeProfitPhase\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\"\n}","project":"Superalgos","id":"fd46277c-ed70-4dbf-82bb-b0e5e4661ca2","savedPayload":{"position":{"x":24711.331110060382,"y":19218.53038616609},"targetPosition":{"x":24850.296583970547,"y":19395.486869689368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Initial Value","config":"{\n \"codeName\": \"initialValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\"\n}","project":"Superalgos","id":"81fb8103-ec5b-4bbf-9b83-8b50c9863d54","savedPayload":{"position":{"x":24801.871558996358,"y":19175.759727633023},"targetPosition":{"x":24850.296583970547,"y":19395.486869689368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Final Value","config":"{\n \"codeName\": \"finalValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\"\n}","project":"Superalgos","id":"f6560d41-b441-476c-977d-c05ffbe6cc64","savedPayload":{"position":{"x":24902.003178022427,"y":19176.508724360767},"targetPosition":{"x":24850.296583970547,"y":19395.486869689368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"af2062ca-8a24-4daf-bc32-87cd6e545022","savedPayload":{"position":{"x":24850.296583970547,"y":19395.486869689368},"targetPosition":{"x":25025.154425298366,"y":19537.083957675582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"84d6b369-6dea-4803-b920-df1a5dcf28e5","savedPayload":{"position":{"x":25025.154425298366,"y":19537.083957675582},"targetPosition":{"x":25472.68927821409,"y":19490.04614920514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Take Profit","id":"e33f2181-7f3a-4baa-a66d-8deee3e6967d"}}}],"productDefinitionFolders":[],"id":"95c47be4-4330-4010-89c5-a58c76ef8d69","savedPayload":{"position":{"x":25472.68927821409,"y":19490.04614920514},"targetPosition":{"x":25655.7207675982,"y":19078.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d91b5fee-bf9b-4358-a02e-affb9f99d985","savedPayload":{"position":{"x":25655.7207675982,"y":19078.950693265968},"targetPosition":{"x":25391.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"36c46643-044d-4713-b7d2-2227e29cddeb","savedPayload":{"position":{"x":25391.217404066585,"y":18714.893045797242},"targetPosition":{"x":24941.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}}],"plotters":[{"type":"Plotter","name":"Trading Engine","config":"{ \n\"codeName\": \"Trading-Engine\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Trading Episode Counters","config":"{ \n\"codeName\": \"Trading-Episode-Counters\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Trading Episode Counters","config":"{ \n \"codeName\": \"Trading-Episode-Counters\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"b1669370-094c-4a76-b50e-9857112f3cc2","savedPayload":{"position":{"x":25394.435035785104,"y":18214.335562081542},"targetPosition":{"x":25546.044692554773,"y":18380.5869138781},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32cc0aa2-a37a-4184-b0f9-a02d6ab04c52","savedPayload":{"position":{"x":25546.044692554773,"y":18380.5869138781},"targetPosition":{"x":25697.654349324443,"y":18546.83826567466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Strategies","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.strategies","project":"Superalgos","id":"9cf7d75c-9652-41a5-b93c-aa75d101eac0","savedPayload":{"position":{"x":25568.73070398044,"y":18115.701751712768},"targetPosition":{"x":25633.19252665244,"y":18331.270008693715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f69fd277-8c88-4394-9f9d-dd72b10f3dd0","savedPayload":{"position":{"x":25633.19252665244,"y":18331.270008693715},"targetPosition":{"x":25697.654349324443,"y":18546.83826567466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Positions","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.positions","project":"Superalgos","id":"615717ab-811d-47bd-8c2b-4bbafd228b64","savedPayload":{"position":{"x":25768.561281280894,"y":18102.459815476497},"targetPosition":{"x":25733.10781530267,"y":18324.64904057558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"084ea352-f3c4-4c9a-8391-102486511877","savedPayload":{"position":{"x":25733.10781530267,"y":18324.64904057558},"targetPosition":{"x":25697.654349324443,"y":18546.83826567466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Orders","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.orders","project":"Superalgos","id":"10228b63-4d82-4bd8-aa1b-4c032f00486d","savedPayload":{"position":{"x":25954.34787109093,"y":18177.232481246007},"targetPosition":{"x":25826.001110207686,"y":18362.035373460334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d23e9e59-dbd0-4b1c-8359-1cc649ca9ab4","savedPayload":{"position":{"x":25826.001110207686,"y":18362.035373460334},"targetPosition":{"x":25697.654349324443,"y":18546.83826567466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hits","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hits","project":"Superalgos","id":"133704b5-c413-4d17-a70c-8b4fec5cfc56","savedPayload":{"position":{"x":26089.293160775658,"y":18325.21010553909},"targetPosition":{"x":25893.47375505005,"y":18436.024185606875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e5fb728b-949b-4c6d-a87b-3e8591761de3","savedPayload":{"position":{"x":25893.47375505005,"y":18436.024185606875},"targetPosition":{"x":25697.654349324443,"y":18546.83826567466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fails","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.fails","project":"Superalgos","id":"deaacbb9-1da1-45bc-939f-13711d71f8d4","savedPayload":{"position":{"x":26146.669580717662,"y":18517.08390503803},"targetPosition":{"x":25922.161965021052,"y":18531.961085356346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cbe39e9e-863c-4989-8399-8650222d9e01","savedPayload":{"position":{"x":25922.161965021052,"y":18531.961085356346},"targetPosition":{"x":25697.654349324443,"y":18546.83826567466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"65d9dc9d-ce21-4acc-825f-0f5131cef86a","savedPayload":{"position":{"x":25697.654349324443,"y":18546.83826567466},"targetPosition":{"x":25613.648021874604,"y":18755.567604648342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"7cd9f0b7-43b7-4587-90da-adca2b7dd9db","savedPayload":{"position":{"x":25725.032058770234,"y":18739.761076730018},"targetPosition":{"x":25613.648021874604,"y":18755.567604648342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"292dc3fb-46e1-4387-bfc3-da2e3078da2b","savedPayload":{"position":{"x":25613.648021874604,"y":18755.567604648342},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Trading Episode Statistics","config":"{ \n\"codeName\": \"Trading-Episode-Statistics\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Trading Episode Statistics","config":"{ \n \"codeName\": \"Trading-Episode-Statistics\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"4151571a-780a-4b21-9d99-77e817d1accd","savedPayload":{"position":{"x":25492.140665186413,"y":18236.580023736882},"targetPosition":{"x":25622.605530827106,"y":18419.893740717787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1f32ab1a-e854-4b18-afaa-e2073bdc6616","savedPayload":{"position":{"x":25622.605530827106,"y":18419.893740717787},"targetPosition":{"x":25753.0703964678,"y":18603.207457698692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Profit Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.profitLoss","project":"Superalgos","id":"9b3264b7-353d-4c79-8a9c-aaaf5362a94b","savedPayload":{"position":{"x":25677.054513783554,"y":18159.67438612484},"targetPosition":{"x":25715.062455125677,"y":18381.440921911766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"630dc706-f0b3-40fe-ba2d-c043aa3a98b8","savedPayload":{"position":{"x":25715.062455125677,"y":18381.440921911766},"targetPosition":{"x":25753.0703964678,"y":18603.207457698692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ROI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ROI","project":"Superalgos","id":"18dcd029-b9ec-4b03-b08a-c77af81c61a1","savedPayload":{"position":{"x":25877.024240219933,"y":18170.615912914152},"targetPosition":{"x":25815.047318343866,"y":18386.911685306422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fa7d3298-430e-4144-a7f4-9a05b4e7e85f","savedPayload":{"position":{"x":25815.047318343866,"y":18386.911685306422},"targetPosition":{"x":25753.0703964678,"y":18603.207457698692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Ratio","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitRatio","project":"Superalgos","id":"11bc7ed7-cd1e-4941-b1d2-50e7c6e95217","savedPayload":{"position":{"x":26052.443387707066,"y":18267.23750053518},"targetPosition":{"x":25902.756892087433,"y":18435.222479116936},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"26797e95-5829-415d-970a-2c603b2171d9","savedPayload":{"position":{"x":25902.756892087433,"y":18435.222479116936},"targetPosition":{"x":25753.0703964678,"y":18603.207457698692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Annualized Rate Of Return","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.annualizedRateOfReturn","project":"Superalgos","id":"db989555-1a7b-40bd-83f9-593c5bb7e330","savedPayload":{"position":{"x":26168.56804271047,"y":18430.402058573556},"targetPosition":{"x":25960.819219589135,"y":18516.804758136124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d32f789b-aa52-4667-8898-69c8d211aef6","savedPayload":{"position":{"x":25960.819219589135,"y":18516.804758136124},"targetPosition":{"x":25753.0703964678,"y":18603.207457698692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFail","project":"Superalgos","id":"91342d8e-973b-456d-b3f4-b332b42c470d","savedPayload":{"position":{"x":26202.398293131297,"y":18627.792845227807},"targetPosition":{"x":25977.734344799548,"y":18615.50015146325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"46ad67f0-3fc1-4762-bdd4-6b0bd49c828a","savedPayload":{"position":{"x":25977.734344799548,"y":18615.50015146325},"targetPosition":{"x":25753.0703964678,"y":18603.207457698692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"796f2ff7-b9a9-4b9b-8d53-8fc17fbeb7e1","savedPayload":{"position":{"x":25753.0703964678,"y":18603.207457698692},"targetPosition":{"x":25644.517028136182,"y":18800.289080951243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"a3207304-b45e-4f64-9fb2-a355123b71af","savedPayload":{"position":{"x":25756.99421639698,"y":18798.02366245888},"targetPosition":{"x":25644.517028136182,"y":18800.289080951243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"7ac3b804-377e-4ac2-835a-0666fc1a0ed6","savedPayload":{"position":{"x":25644.517028136182,"y":18800.289080951243},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Candle","config":"{ \n\"codeName\": \"Current-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"1fa3f647-d73f-44ba-9d46-93cf00f8a527","savedPayload":{"position":{"x":25772.359118971082,"y":18802.233894264013},"targetPosition":{"x":25669.770386296972,"y":18848.405334877447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"a55eb67e-bc93-44a4-b4d8-844dc6affe40","savedPayload":{"position":{"x":25669.770386296972,"y":18848.405334877447},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Episode Balances","config":"{ \n\"codeName\": \"Current-Balance\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Current Balance","config":"{ \n \"codeName\": \"Current-Balance\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Balance Base Asset","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.balanceBaseAsset","project":"Superalgos","id":"2a3d9faf-9fd0-4d9e-adad-8457e86fdbd9","savedPayload":{"position":{"x":26111.197603362525,"y":18536.394795062704},"targetPosition":{"x":26144.28573143284,"y":18701.86907790086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4c225781-e9c5-408d-a03c-f6682a0ca630","savedPayload":{"position":{"x":26144.28573143284,"y":18701.86907790086},"targetPosition":{"x":26177.373859503154,"y":18867.343360739018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Balance Quoted Asset","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.balanceQuotedAsset","project":"Superalgos","id":"eab5e58f-e69b-4db6-8437-8845d9b4885b","savedPayload":{"position":{"x":26318.36282983316,"y":18560.702919431475},"targetPosition":{"x":26247.868344668157,"y":18714.023140085246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5ed6fbc7-df06-4ed5-b9f1-4343ec6593c8","savedPayload":{"position":{"x":26247.868344668157,"y":18714.023140085246},"targetPosition":{"x":26177.373859503154,"y":18867.343360739018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Both Assets in Base Asset","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.balanceBaseAsset + (record.balanceQuotedAsset / candle.close)","project":"Superalgos","id":"bafb77ca-b873-4948-a0a8-e7f46573b6c9","savedPayload":{"position":{"x":26471.675061676586,"y":18702.13727005446},"targetPosition":{"x":26324.52446058987,"y":18784.74031539674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6c8c1edf-02a9-4ab9-855d-4f59526ecd7b","savedPayload":{"position":{"x":26324.52446058987,"y":18784.74031539674},"targetPosition":{"x":26177.373859503154,"y":18867.343360739018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Both Assets in Quoted Asset","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.balanceQuotedAsset + (record.balanceBaseAsset * candle.close)","project":"Superalgos","id":"f2687934-86e9-43e1-862a-cedccf46b368","savedPayload":{"position":{"x":26512.574237219713,"y":18906.674732170453},"targetPosition":{"x":26344.974048361433,"y":18887.009046454736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"97488555-6fda-47d0-ab98-83d7999c96fd","savedPayload":{"position":{"x":26344.974048361433,"y":18887.009046454736},"targetPosition":{"x":26177.373859503154,"y":18867.343360739018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8155d144-5b1e-4cb3-a135-d2e9543712ec","savedPayload":{"position":{"x":26177.373859503154,"y":18867.343360739018},"targetPosition":{"x":26062.95106626077,"y":18991.3755617459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"277bba55-3969-4c4c-931c-319dee170118","savedPayload":{"position":{"x":26227.57749984122,"y":19028.452506962334},"targetPosition":{"x":26062.95106626077,"y":18991.3755617459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"0f3b6cc9-4a41-40bf-87bc-b0ff1fc27d4d","savedPayload":{"position":{"x":25689.039845529376,"y":18899.214723096346},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Distance To Trading Event","config":"{ \n\"codeName\": \"Distance-To-Trading-Event\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"fd939ef6-264f-4a25-9dd1-5c57b7aafd79","savedPayload":{"position":{"x":25812.701653258297,"y":18931.697638560865},"targetPosition":{"x":25702.044413726744,"y":18951.97633031493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"c229b04d-e511-4873-b866-0f6faae91da7","savedPayload":{"position":{"x":25702.044413726744,"y":18951.97633031493},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Strategy","config":"{ \n\"codeName\": \"Current-Strategy\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"a6601fb6-9eac-4d8d-b298-36fe49b6c6f2","savedPayload":{"position":{"x":25820.889204851148,"y":18999.128192531152},"targetPosition":{"x":25708.594455001024,"y":19005.920773491158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"0a49eb5b-1b48-44a9-81ff-a8cebe6cc26a","savedPayload":{"position":{"x":25708.594455001024,"y":19005.920773491158},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Last Strategy","config":"{ \n\"codeName\": \"Last-Strategy\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"a72fdc30-11f9-4ee6-8ae5-e3b692d632ff","savedPayload":{"position":{"x":25820.889204851148,"y":19067.054002131223},"targetPosition":{"x":25708.594455001024,"y":19060.261421171217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"3ac94a35-bb3a-4bdd-9706-db043d57ee69","savedPayload":{"position":{"x":25708.594455001024,"y":19060.261421171217},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Position","config":"{ \n\"codeName\": \"Current-Position\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"50c1d8f6-3d38-4846-b376-15e45520e8f2","savedPayload":{"position":{"x":25812.701653258297,"y":19134.48455610151},"targetPosition":{"x":25702.044413726744,"y":19114.205864347445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"e073ade9-a6e1-4c6c-978d-68ed48ebf4c3","savedPayload":{"position":{"x":25702.044413726744,"y":19114.205864347445},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Last Position","config":"{ \n\"codeName\": \"Last-Position\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"ff23f3c7-7260-416e-8252-e03336d525b7","savedPayload":{"position":{"x":25796.445943011586,"y":19200.43656512474},"targetPosition":{"x":25689.039845529376,"y":19166.96747156603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"076daf73-6ad5-458f-ac52-ad89d5a0cf65","savedPayload":{"position":{"x":25689.039845529376,"y":19166.96747156603},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Previous Candle","config":"{ \n\"codeName\": \"Previous-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"fa22d88f-fdc6-4a7d-903b-305430f642c8","savedPayload":{"position":{"x":25772.359118971082,"y":19263.948300398362},"targetPosition":{"x":25669.770386296972,"y":19217.776859784928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"c6f3cdbd-86a5-45cd-bc59-df80fb1e7ad2","savedPayload":{"position":{"x":25669.770386296972,"y":19217.776859784928},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Market Buy Orders","config":"{ \n\"codeName\": \"Market-Buy-Orders\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"actualRate\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"07cea3ed-e946-435a-bb14-a34e0f627622","savedPayload":{"position":{"x":25740.792421270096,"y":19324.09361780612},"targetPosition":{"x":25644.517028136182,"y":19265.893113711132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"eacc640d-6715-4734-9d0a-00dbe9a40847","savedPayload":{"position":{"x":25644.517028136182,"y":19265.893113711132},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Market Sell Orders","config":"{ \n\"codeName\": \"Market-Sell-Orders\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"actualRate\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"f299cdba-e685-4399-8b40-5103cd67c222","savedPayload":{"position":{"x":25702.206163443123,"y":19379.995463184743},"targetPosition":{"x":25613.648021874604,"y":19310.614590014033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"9c5b3d7c-d10c-45ae-851a-4a8326a87059","savedPayload":{"position":{"x":25613.648021874604,"y":19310.614590014033},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Limit Buy Orders","config":"{ \n\"codeName\": \"Limit-Buy-Orders\",\n \"useRateAtMousePosition\": true\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"f29372e1-3f64-4501-9a6f-f08811b8f065","savedPayload":{"position":{"x":25657.163020017964,"y":19430.83866174862},"targetPosition":{"x":25577.613507134476,"y":19351.289148865133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"71dceb6b-45b8-44d1-a44d-bb17b87f037f","savedPayload":{"position":{"x":25577.613507134476,"y":19351.289148865133},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Limit Sell Orders","config":"{ \n\"codeName\": \"Limit-Sell-Orders\",\n \"useRateAtMousePosition\": true\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"b63c01ef-1a0d-428f-b4d9-9d28d87cc7ce","savedPayload":{"position":{"x":25606.319821454086,"y":19475.88180517378},"targetPosition":{"x":25536.938948283376,"y":19387.32366360526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"162f2c81-4524-4af9-adea-f5e144ed404f","savedPayload":{"position":{"x":25536.938948283376,"y":19387.32366360526},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Strategy Open Stage","config":"{ \n\"codeName\": \"Current-Strategy-Open-Stage\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"63f3f062-605d-45ef-9f08-7fee03aafc5c","savedPayload":{"position":{"x":25550.417976075463,"y":19514.468063000753},"targetPosition":{"x":25492.217471980475,"y":19418.19266986684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"61b82daf-1441-4179-bbf2-6acc5a87d995","savedPayload":{"position":{"x":25492.217471980475,"y":19418.19266986684},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Strategy Close Stage","config":"{ \n\"codeName\": \"Current-Strategy-Close-Stage\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"5a045ede-7361-470b-868f-1260bbd25586","savedPayload":{"position":{"x":25490.272658667705,"y":19546.03476070174},"targetPosition":{"x":25444.10121805427,"y":19443.44602802763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"a09c480e-2287-4be2-8615-cb915f288c67","savedPayload":{"position":{"x":25444.10121805427,"y":19443.44602802763},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Strategy Trigger Stage","config":"{ \n\"codeName\": \"Current-Strategy-Trigger-Stage\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"64425a9e-26a2-49b9-9e0f-d44a6e15ca4e","savedPayload":{"position":{"x":25426.760923394082,"y":19570.121584742243},"targetPosition":{"x":25393.291829835372,"y":19462.715487260033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"a642588d-6568-4bd1-8a19-dfa8f7257582","savedPayload":{"position":{"x":25393.291829835372,"y":19462.715487260033},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Strategy Manage Stage","config":"{ \n\"codeName\": \"Current-Strategy-Manage-Stage\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"41f0e546-ab7b-47d1-8a68-ad14ecd32683","savedPayload":{"position":{"x":25360.808914370853,"y":19586.377294988954},"targetPosition":{"x":25340.530222616788,"y":19475.7200554574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"470491c3-d385-4924-ae69-805af4dc03d6","savedPayload":{"position":{"x":25340.530222616788,"y":19475.7200554574},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Episode","config":"{ \n\"codeName\": \"Current-Position\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"973e79f3-77f2-4833-a9f0-41f6826cb555","savedPayload":{"position":{"x":25293.378360400566,"y":19594.564846581805},"targetPosition":{"x":25286.58577944056,"y":19482.27009673168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"b4f39249-9877-4ee7-b8f0-f5628659339b","savedPayload":{"position":{"x":25286.58577944056,"y":19482.27009673168},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Episode Base Asset","config":"{ \n\"codeName\": \"Previous-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"93416f2f-f26d-4029-b797-f50145916f98","savedPayload":{"position":{"x":25225.452550800495,"y":19594.564846581805},"targetPosition":{"x":25232.2451317605,"y":19482.27009673168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"b04a7cb4-0aff-4de4-a982-befd3944a8e5","savedPayload":{"position":{"x":25232.2451317605,"y":19482.27009673168},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Episode Quoted Asset","config":"{ \n\"codeName\": \"Previous-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"c352b16f-dc2f-4189-b41b-a48b81b7aab9","savedPayload":{"position":{"x":25158.021996830208,"y":19586.377294988954},"targetPosition":{"x":25178.300688584273,"y":19475.7200554574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"20b012e9-62dd-4da5-b79b-5e0678a31320","savedPayload":{"position":{"x":25178.300688584273,"y":19475.7200554574},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Last Market Order","config":"{ \n\"codeName\": \"Previous-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"c648edb1-22d0-45de-9b69-751b9e1cd740","savedPayload":{"position":{"x":25092.06998780698,"y":19570.121584742243},"targetPosition":{"x":25125.53908136569,"y":19462.715487260033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"a26050ca-9d86-478a-a48c-f3f2c9eb5a73","savedPayload":{"position":{"x":25125.53908136569,"y":19462.715487260033},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Last Limit Order","config":"{ \n\"codeName\": \"Previous-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"1918f256-6ace-46fe-bf57-2fefecb10a3b","savedPayload":{"position":{"x":25028.558252533356,"y":19546.03476070174},"targetPosition":{"x":25074.72969314679,"y":19443.44602802763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"3c2bc2f1-78bc-4561-81c1-6d4c6565934a","savedPayload":{"position":{"x":25074.72969314679,"y":19443.44602802763},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Stop Loss","config":"{ \n\"codeName\": \"Stop-Loss\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"544a5e2d-4020-4741-aea1-dade5d4bfbca","savedPayload":{"position":{"x":24968.412935125598,"y":19514.468063000753},"targetPosition":{"x":25026.613439220586,"y":19418.19266986684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"bc31643e-0889-469e-bb39-136a35e276ea","savedPayload":{"position":{"x":25026.613439220586,"y":19418.19266986684},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Take Profit","config":"{ \n\"codeName\": \"Take-Profit\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"996b64a8-c94f-458f-a5bb-7bae22a4de0e","savedPayload":{"position":{"x":24912.511089746975,"y":19475.88180517378},"targetPosition":{"x":24981.891962917685,"y":19387.32366360526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"7b58bb52-2ed2-4bea-8296-7db87dfb45b2","savedPayload":{"position":{"x":24981.891962917685,"y":19387.32366360526},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"295ce06f-db4f-4c04-9684-5908fb53df20","savedPayload":{"position":{"x":25259.41545560053,"y":19033.091097331187},"targetPosition":{"x":24941.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Trading System","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Highlights","config":"{ \n\"codeName\": \"Highlights\",\n\"connectTo\": \"Trading System\"\n}","project":"Superalgos","panels":[],"nodesHighlights":{"type":"Nodes Highlights","name":"New Nodes Highlights","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"99d6b31a-f188-4f5b-a1a4-9fa1c5f88391","savedPayload":{"position":{"x":25797.168268732225,"y":19443.008340734694},"targetPosition":{"x":25369.192836399405,"y":19303.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5cf0221d-769c-4251-8597-6ac33ed7ed6e","savedPayload":{"position":{"x":25369.192836399405,"y":19303.950693265968},"targetPosition":{"x":24941.217404066585,"y":19164.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Values","config":"{ \n\"codeName\": \"Values\",\n\"connectTo\": \"Trading System\"\n}","project":"Superalgos","panels":[],"nodesValues":{"type":"Nodes Values","name":"New Nodes Values","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"fa6aceb3-196b-4781-b42e-b5e342059294","savedPayload":{"position":{"x":25669.332699004037,"y":19693.89977286047},"targetPosition":{"x":25305.27505153531,"y":19429.396409328856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"44486853-550b-420e-bf50-4157985c1017","savedPayload":{"position":{"x":25305.27505153531,"y":19429.396409328856},"targetPosition":{"x":24941.217404066585,"y":19164.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Errors","config":"{\n \"codeName\": \"Errors\",\n \"connectTo\": \"Trading System\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"errors\",\n \"rateInArrayAtIndex\": 3,\n \"rateOffset\": -100,\n \"rateOffsetBasedOnArrayIndex\": -50,\n \"rateRange\": 20\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"Errors","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Error #1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[0][3]","project":"Superalgos","id":"2f00c2dc-5ba2-48c7-a739-9525f7065c61","savedPayload":{"position":{"x":25825.41848078168,"y":18652.57179987533},"targetPosition":{"x":25872.45628925212,"y":19100.106652791055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"735fedb5-72c3-4ee4-b860-11cb456423ee","savedPayload":{"position":{"x":25872.45628925212,"y":19100.106652791055},"targetPosition":{"x":25919.494097722563,"y":19547.64150570678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Error #2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[1][3]","project":"Superalgos","id":"44565d96-f817-4f03-ab39-39666d4a11fa","savedPayload":{"position":{"x":26285.557076490782,"y":18725.450593828435},"targetPosition":{"x":26102.525587106673,"y":19136.546049767607},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"04538655-b613-4fe2-a821-68f5b8e6f674","savedPayload":{"position":{"x":26102.525587106673,"y":19136.546049767607},"targetPosition":{"x":25919.494097722563,"y":19547.64150570678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Error #3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[2][3]","project":"Superalgos","id":"cd03fe58-4c2b-481f-9558-e96c1e2b7419","savedPayload":{"position":{"x":26647.609392660015,"y":19018.63477864355},"targetPosition":{"x":26283.55174519129,"y":19283.138142175165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6c9c6f00-725f-4593-b58b-d3e6e62d00a3","savedPayload":{"position":{"x":26283.55174519129,"y":19283.138142175165},"targetPosition":{"x":25919.494097722563,"y":19547.64150570678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Error #4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[3][3]","project":"Superalgos","id":"ac018318-4c4b-43b4-a564-f7ef403585d6","savedPayload":{"position":{"x":26814.56380355401,"y":19453.565888765894},"targetPosition":{"x":26367.028950638287,"y":19500.603697236336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ae0cabe4-c6f8-4633-b526-2cafba71a8be","savedPayload":{"position":{"x":26367.028950638287,"y":19500.603697236336},"targetPosition":{"x":25919.494097722563,"y":19547.64150570678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Error #5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[4][3]","project":"Superalgos","id":"2265a0b4-23d1-4fa0-a595-764906c8817f","savedPayload":{"position":{"x":26741.685009600908,"y":19913.704484474998},"targetPosition":{"x":26330.589553661735,"y":19730.67299509089},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fd882653-4f17-4fb5-8457-dc720276c6b4","savedPayload":{"position":{"x":26330.589553661735,"y":19730.67299509089},"targetPosition":{"x":25919.494097722563,"y":19547.64150570678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cb267def-5372-4868-b2cf-dfff9778d181","savedPayload":{"position":{"x":25919.494097722563,"y":19547.64150570678},"targetPosition":{"x":25555.436450253837,"y":19812.144869238393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[],"images":[{"type":"Image","name":"Error #1","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 30\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[0] !== undefined","project":"Superalgos","id":"0cfc3feb-fdfa-43dc-9e00-5f28d015749a","savedPayload":{"position":{"x":26117.144730163793,"y":19476.02145061519},"targetPosition":{"x":25975.54764217758,"y":19650.87929194301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": -100\n}","project":"Superalgos","id":"837b1076-ea5b-4f1a-93a2-a48aa9d10dea","savedPayload":{"position":{"x":26197.777518811483,"y":19686.077046577062},"targetPosition":{"x":25975.54764217758,"y":19650.87929194301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #1","id":"735fedb5-72c3-4ee4-b860-11cb456423ee"}}},"id":"57723831-a94c-4f9e-a772-a7311e7b5ed0","savedPayload":{"position":{"x":25975.54764217758,"y":19650.87929194301},"targetPosition":{"x":25555.436450253837,"y":19812.144869238393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Error #2","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 25\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[1] !== undefined","project":"Superalgos","id":"6899a5b1-57dc-4c24-bab0-4667d9af384d","savedPayload":{"position":{"x":26185.000126903924,"y":19632.855379002143},"targetPosition":{"x":26002.97130316956,"y":19765.10706076795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": -150\n}","project":"Superalgos","id":"6df4519f-0fca-40e5-a108-5bba009b20ed","savedPayload":{"position":{"x":26208.519031139145,"y":19856.622805460007},"targetPosition":{"x":26002.97130316956,"y":19765.10706076795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #2","id":"04538655-b613-4fe2-a821-68f5b8e6f674"}}},"id":"8f3e2c1c-fb63-4a71-9df8-d94ec730147e","savedPayload":{"position":{"x":26002.97130316956,"y":19765.10706076795},"targetPosition":{"x":25555.436450253837,"y":19812.144869238393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Error #3","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[2] !== undefined","project":"Superalgos","id":"e49205e9-8575-482e-a7d1-bf077e9aee36","savedPayload":{"position":{"x":26209.95179948352,"y":19801.9075898588},"targetPosition":{"x":25999.89620352165,"y":19882.540378506495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": -200\n}","project":"Superalgos","id":"6035a5e5-6ef8-43e9-90f0-65c7166a155d","savedPayload":{"position":{"x":26174.75404484947,"y":20024.13746649271},"targetPosition":{"x":25999.89620352165,"y":19882.540378506495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #3","id":"6c9c6f00-725f-4593-b58b-d3e6e62d00a3"}}},"id":"ac6336f6-af8c-4781-85d9-dd5188fda6e2","savedPayload":{"position":{"x":25999.89620352165,"y":19882.540378506495},"targetPosition":{"x":25555.436450253837,"y":19812.144869238393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Error #4","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 15\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[3] !== undefined","project":"Superalgos","id":"2a3c0da9-580d-4ee6-b113-fa72af5ff5e7","savedPayload":{"position":{"x":26190.29933265087,"y":19971.65745438728},"targetPosition":{"x":25966.53190619301,"y":19995.176358622502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": -250\n}","project":"Superalgos","id":"b129f3b8-5dd0-4ef4-9d81-441030b02030","savedPayload":{"position":{"x":26098.783587958816,"y":20177.205182356865},"targetPosition":{"x":25966.53190619301,"y":19995.176358622502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #4","id":"ae0cabe4-c6f8-4633-b526-2cafba71a8be"}}},"id":"9ce85f50-60dd-467d-9593-5fe505be7e70","savedPayload":{"position":{"x":25966.53190619301,"y":19995.176358622502},"targetPosition":{"x":25555.436450253837,"y":19812.144869238393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Error #5","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[4] !== undefined","project":"Superalgos","id":"59adbb0e-e6b9-4172-94a6-8856c352df60","savedPayload":{"position":{"x":26127.38200954338,"y":20130.536799844875},"targetPosition":{"x":25905.152132909476,"y":20095.33904521082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": -300\n}","project":"Superalgos","id":"35459052-b127-4be9-ae80-1d2ea65d783c","savedPayload":{"position":{"x":25985.78492155717,"y":20305.39464117269},"targetPosition":{"x":25905.152132909476,"y":20095.33904521082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #5","id":"fd882653-4f17-4fb5-8457-dc720276c6b4"}}},"id":"41b52b72-8778-4130-923c-f442a2762d40","savedPayload":{"position":{"x":25905.152132909476,"y":20095.33904521082},"targetPosition":{"x":25555.436450253837,"y":19812.144869238393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"Error #1","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[0] !== undefined","project":"Superalgos","id":"0158ea17-b9b5-4d24-8f90-32a4be1764bb","savedPayload":{"position":{"x":26044.93981378545,"y":20176.20251670712},"targetPosition":{"x":25819.93981378545,"y":20176.20251670712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": -135\n}","project":"Superalgos","id":"1ee1feeb-902b-4337-b887-d1106692b476","savedPayload":{"position":{"x":26001.968637519814,"y":20308.454198472926},"targetPosition":{"x":25819.93981378545,"y":20176.20251670712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #1","id":"735fedb5-72c3-4ee4-b860-11cb456423ee"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"1","project":"Superalgos","id":"c8f0e425-782c-4862-93ee-a9f3bab2eae0","savedPayload":{"position":{"x":25889.468637519814,"y":20390.190232873527},"targetPosition":{"x":25819.93981378545,"y":20176.20251670712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"02f402a6-7e88-44d6-a444-ca8e7f6dba86","savedPayload":{"position":{"x":25750.41099005109,"y":20390.190232873527},"targetPosition":{"x":25819.93981378545,"y":20176.20251670712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"33e906ed-c70a-4e27-9e16-64792cdaf39a","savedPayload":{"position":{"x":25819.93981378545,"y":20176.20251670712},"targetPosition":{"x":25555.436450253837,"y":19812.144869238393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Error #2","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[1] !== undefined","project":"Superalgos","id":"8e748a5f-7d57-4e40-999c-0facc9d0f9a8","savedPayload":{"position":{"x":25934.035338464262,"y":20290.490346310202},"targetPosition":{"x":25716.70202754922,"y":20232.256061162134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": -180\n}","project":"Superalgos","id":"942ca922-a701-47ff-82db-df4cf7d05bb4","savedPayload":{"position":{"x":25858.299115535436,"y":20407.113902489953},"targetPosition":{"x":25716.70202754922,"y":20232.256061162134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #2","id":"04538655-b613-4fe2-a821-68f5b8e6f674"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"2","project":"Superalgos","id":"bef1a518-c844-49ff-9aee-edd404c74720","savedPayload":{"position":{"x":25728.477617703884,"y":20456.94770648191},"targetPosition":{"x":25716.70202754922,"y":20232.256061162134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"67ea46ce-a99b-482d-9a9c-e4271fe3e0d7","savedPayload":{"position":{"x":25594.15824467084,"y":20420.956938949854},"targetPosition":{"x":25716.70202754922,"y":20232.256061162134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0595d0cd-81f1-4c65-9fc9-d23cad976042","savedPayload":{"position":{"x":25716.70202754922,"y":20232.256061162134},"targetPosition":{"x":25555.436450253837,"y":19812.144869238393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Error #3","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[2] !== undefined","project":"Superalgos","id":"70717dba-2f2d-4923-ad6b-2c432973f6b1","savedPayload":{"position":{"x":25797.32997457578,"y":20372.179722154116},"targetPosition":{"x":25602.47425872428,"y":20259.679722154116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": -225\n}","project":"Superalgos","id":"86fccb22-1623-45c9-9841-08c3393fdcb9","savedPayload":{"position":{"x":25693.990003416337,"y":20465.2274501237},"targetPosition":{"x":25602.47425872428,"y":20259.679722154116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #3","id":"6c9c6f00-725f-4593-b58b-d3e6e62d00a3"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"3","project":"Superalgos","id":"c245e73c-e422-4ba3-a4b4-1b88e7489c79","savedPayload":{"position":{"x":25555.694128290284,"y":20479.762932319223},"targetPosition":{"x":25602.47425872428,"y":20259.679722154116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"90bdc9c7-269c-4895-8dfa-91670ccf8287","savedPayload":{"position":{"x":25435.266672991867,"y":20410.23410858486},"targetPosition":{"x":25602.47425872428,"y":20259.679722154116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ca7be876-b9ce-4f86-9bb6-ccf0e146d453","savedPayload":{"position":{"x":25602.47425872428,"y":20259.679722154116},"targetPosition":{"x":25555.436450253837,"y":19812.144869238393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Error #4","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[3] !== undefined","project":"Superalgos","id":"009ee9e9-43f4-499f-9262-66121e615c9b","savedPayload":{"position":{"x":25644.139966752708,"y":20415.70364827318},"targetPosition":{"x":25485.040940985735,"y":20256.604622506205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": -270\n}","project":"Superalgos","id":"45d131bd-98a1-43cc-98df-e7b2695c537c","savedPayload":{"position":{"x":25520.238695619788,"y":20478.83449914011},"targetPosition":{"x":25485.040940985735,"y":20256.604622506205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #4","id":"ae0cabe4-c6f8-4633-b526-2cafba71a8be"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"4","project":"Superalgos","id":"1879b7a1-550f-4832-bdb6-74d8974b13cf","savedPayload":{"position":{"x":25382.893078544337,"y":20457.081090448588},"targetPosition":{"x":25485.040940985735,"y":20256.604622506205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"ce285b95-ca40-44ec-865c-dcdf60ef30d9","savedPayload":{"position":{"x":25284.564473043352,"y":20358.752484947603},"targetPosition":{"x":25485.040940985735,"y":20256.604622506205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d0b1be4b-fa65-413e-9bf1-b1eaaffff9b4","savedPayload":{"position":{"x":25485.040940985735,"y":20256.604622506205},"targetPosition":{"x":25555.436450253837,"y":19812.144869238393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Error #5","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[4] !== undefined","project":"Superalgos","id":"2d401c2f-b021-4a44-b453-5c4dfd1978e0","savedPayload":{"position":{"x":25484.904960869728,"y":20418.096041029065},"targetPosition":{"x":25372.404960869728,"y":20223.240325177565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": -315\n}","project":"Superalgos","id":"ab38c012-69ad-4c10-b96b-7aaa233b823e","savedPayload":{"position":{"x":25348.886056634507,"y":20447.007751635425},"targetPosition":{"x":25372.404960869728,"y":20223.240325177565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #5","id":"fd882653-4f17-4fb5-8457-dc720276c6b4"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"5","project":"Superalgos","id":"7765054e-977a-469a-bbbc-d0fa035d276b","savedPayload":{"position":{"x":25221.850574438984,"y":20390.447910909978},"targetPosition":{"x":25372.404960869728,"y":20223.240325177565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"ae9a2dcd-c5eb-47f1-ba10-757d74f2dddf","savedPayload":{"position":{"x":25152.32175070462,"y":20270.02045561156},"targetPosition":{"x":25372.404960869728,"y":20223.240325177565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"41f8238f-c25c-4940-88ce-ab441b80ba34","savedPayload":{"position":{"x":25372.404960869728,"y":20223.240325177565},"targetPosition":{"x":25555.436450253837,"y":19812.144869238393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d725de3f-e7a7-4223-af14-61933d664cb1","savedPayload":{"position":{"x":25555.436450253837,"y":19812.144869238393},"targetPosition":{"x":25205.7207675982,"y":19528.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[],"nodesErrors":{"type":"Nodes Errors","name":"New Nodes Errors","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"6e32348c-4434-4bd2-b500-e364265c4f56","savedPayload":{"position":{"x":25366.986344893583,"y":19949.06188518971},"targetPosition":{"x":25205.7207675982,"y":19528.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"27cde61e-3730-4f41-9008-498bc303c3d3","savedPayload":{"position":{"x":25205.7207675982,"y":19528.950693265968},"targetPosition":{"x":24941.217404066585,"y":19164.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Status","config":"{ \n\"codeName\": \"Status\",\n\"connectTo\": \"Trading System\"\n}","project":"Superalgos","panels":[],"nodesStatus":{"type":"Nodes Status","name":"New Nodes Status","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"e21aeda7-f4c0-435f-99af-03e947dfb767","savedPayload":{"position":{"x":25219.332699004037,"y":20020.84391046288},"targetPosition":{"x":25080.27505153531,"y":19592.86847813006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"743904f9-2055-442a-b783-c7b34457dd3b","savedPayload":{"position":{"x":25080.27505153531,"y":19592.86847813006},"targetPosition":{"x":24941.217404066585,"y":19164.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Progress","config":"{ \n\"codeName\": \"Progress\",\n\"connectTo\": \"Trading System\"\n}","project":"Superalgos","panels":[],"nodesProgress":{"type":"Nodes Progress","name":"New Nodes Progress","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"6c7c6d32-9be7-4ec4-b37b-48bc7eaae839","savedPayload":{"position":{"x":24941.217404066585,"y":20064.893045797242},"targetPosition":{"x":24941.217404066585,"y":19614.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e22ad59c-4da9-4afa-8501-69dffc649e9b","savedPayload":{"position":{"x":24941.217404066585,"y":19614.893045797242},"targetPosition":{"x":24941.217404066585,"y":19164.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Running","config":"{ \n\"codeName\": \"Running\",\n\"connectTo\": \"Trading System\"\n}","project":"Superalgos","panels":[],"nodesRunning":{"type":"Nodes Running","name":"New Nodes Running","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"523bb03c-82da-493b-b829-2596e2bc0cd7","savedPayload":{"position":{"x":24663.102109129133,"y":20020.84391046288},"targetPosition":{"x":24802.15975659786,"y":19592.86847813006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1f7328f6-847b-4fe2-b227-e9d59cebcbba","savedPayload":{"position":{"x":24802.15975659786,"y":19592.86847813006},"targetPosition":{"x":24941.217404066585,"y":19164.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Announcements","config":"{ \n\"codeName\": \"Announcements\",\n\"connectTo\": \"Trading System\"\n}","project":"Superalgos","panels":[],"nodesAnnouncements":{"type":"Nodes Announcements","name":"New Nodes Announcements","project":"Superalgos","id":"cfff0210-c75d-4a29-ad32-a8d066dc8c72","savedPayload":{"position":{"x":24412.210677003357,"y":19893.008340734694},"targetPosition":{"x":24676.71404053497,"y":19528.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"41b7b669-00f5-4686-a0ea-4500c728becf","savedPayload":{"position":{"x":24676.71404053497,"y":19528.950693265968},"targetPosition":{"x":24941.217404066585,"y":19164.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Warnings","config":"{\n \"codeName\": \"Warnings\",\n \"connectTo\": \"Trading System\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"warnings\",\n \"rateInArrayAtIndex\": 3,\n \"rateOffset\": 100,\n \"rateOffsetBasedOnArrayIndex\": 50,\n \"rateRange\": 20\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"Warnings","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Warning #1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[0][3]","project":"Superalgos","id":"e07ea315-57a6-4e7f-a4e8-e8fe6369d716","savedPayload":{"position":{"x":24863.115242270665,"y":20218.141898864807},"targetPosition":{"x":24603.307621135333,"y":20068.141898864807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fb884d56-a5eb-4ff5-ada7-48e408f1e8eb","savedPayload":{"position":{"x":24603.307621135333,"y":20068.141898864807},"targetPosition":{"x":24343.5,"y":19918.141898864807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Warning #2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[1][3]","project":"Superalgos","id":"bd1ff0de-d00f-4848-a95d-807880744592","savedPayload":{"position":{"x":24643.5,"y":20437.757141135473},"targetPosition":{"x":24493.5,"y":20177.94952000014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8faff33c-1162-4da3-a767-6e3e1eed92cc","savedPayload":{"position":{"x":24493.5,"y":20177.94952000014},"targetPosition":{"x":24343.5,"y":19918.141898864807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Warning #3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[2][3]","project":"Superalgos","id":"c722b287-5373-4a02-a4d7-d99a355edf08","savedPayload":{"position":{"x":24343.5,"y":20518.141898864807},"targetPosition":{"x":24343.5,"y":20218.141898864807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ddbb33a6-3733-4ea2-b5ce-b9e7764aa606","savedPayload":{"position":{"x":24343.5,"y":20218.141898864807},"targetPosition":{"x":24343.5,"y":19918.141898864807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Warning #4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[3][3]","project":"Superalgos","id":"5eb8787d-fd95-4b3a-834e-fdd92801c8fe","savedPayload":{"position":{"x":24043.5,"y":20437.757141135473},"targetPosition":{"x":24193.5,"y":20177.94952000014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d1c53700-0f60-4b13-a76e-33bf7af62cca","savedPayload":{"position":{"x":24193.5,"y":20177.94952000014},"targetPosition":{"x":24343.5,"y":19918.141898864807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Warning #5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[4][3]","project":"Superalgos","id":"4c2e6355-a1bb-4813-be15-b432efcfa6a9","savedPayload":{"position":{"x":23823.884757729335,"y":20218.141898864807},"targetPosition":{"x":24083.692378864667,"y":20068.141898864807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"974964b2-0dce-4498-9e8f-46d107fd5a9e","savedPayload":{"position":{"x":24083.692378864667,"y":20068.141898864807},"targetPosition":{"x":24343.5,"y":19918.141898864807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2d0dfd2b-b016-4cdc-bf93-1defcc8c5295","savedPayload":{"position":{"x":24558.468944157048,"y":20143.16973945322},"targetPosition":{"x":24293.965580625434,"y":19779.112091984494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[],"images":[{"type":"Image","name":"Warning #1","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 30\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[0] !== undefined","project":"Superalgos","id":"529c02e1-f2cf-427c-ba88-1bbeb90f455e","savedPayload":{"position":{"x":24294.344073273987,"y":20051.761526197686},"targetPosition":{"x":24258.98023294757,"y":19905.989790949156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": 100\n}","project":"Superalgos","id":"9aa9edab-fd6c-4049-9e39-cdebb5dbb2c9","savedPayload":{"position":{"x":24150.42012723181,"y":20009.501642671472},"targetPosition":{"x":24258.98023294757,"y":19905.989790949156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #1","id":"fb884d56-a5eb-4ff5-ada7-48e408f1e8eb"}}},"id":"70417dd3-6e2e-4b1d-853d-420669575faa","savedPayload":{"position":{"x":24455.231157920818,"y":20199.223283908235},"targetPosition":{"x":24293.965580625434,"y":19779.112091984494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Warning #2","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 25\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[1] !== undefined","project":"Superalgos","id":"ac9d83b1-14cf-46a9-b414-0b8774ee009b","savedPayload":{"position":{"x":24174.170467389762,"y":20020.34805959161},"targetPosition":{"x":24181.307754763322,"y":19870.51795871416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": 150\n}","project":"Superalgos","id":"4311d9d4-8d69-403a-a5eb-b7f0e6d4a5db","savedPayload":{"position":{"x":24047.982437465085,"y":19939.251936973273},"targetPosition":{"x":24181.307754763322,"y":19870.51795871416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #2","id":"8faff33c-1162-4da3-a767-6e3e1eed92cc"}}},"id":"32323fdb-d370-475f-8181-20b58c7f8aa8","savedPayload":{"position":{"x":24341.003389095877,"y":20226.646944900218},"targetPosition":{"x":24293.965580625434,"y":19779.112091984494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Warning #3","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[2] !== undefined","project":"Superalgos","id":"917d51ea-9db9-42b7-b56c-bb7bbb1f3326","savedPayload":{"position":{"x":24067.71493319611,"y":19956.35024185559},"targetPosition":{"x":24116.775127693723,"y":19814.60011904839},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": 200\n}","project":"Superalgos","id":"680390f4-89f6-4d33-bcb8-893308209c0d","savedPayload":{"position":{"x":23969.485823104318,"y":19842.987805702454},"targetPosition":{"x":24116.775127693723,"y":19814.60011904839},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #3","id":"ddbb33a6-3733-4ea2-b5ce-b9e7764aa606"}}},"id":"30de00f9-e048-41fc-b597-2551b12a58c6","savedPayload":{"position":{"x":24223.57007135733,"y":20223.571845252307},"targetPosition":{"x":24293.965580625434,"y":19779.112091984494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Warning #4","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 15\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[3] !== undefined","project":"Superalgos","id":"8ef7270a-3e07-4cac-bd7e-84541a4b412c","savedPayload":{"position":{"x":23983.601864957967,"y":19864.952795572925},"targetPosition":{"x":24070.610401393646,"y":19742.766402765374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": 250\n}","project":"Superalgos","id":"18ef91a0-c5b1-4e05-9026-9921705e51f9","savedPayload":{"position":{"x":23921.289613007684,"y":19728.507996269745},"targetPosition":{"x":24070.610401393646,"y":19742.766402765374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #4","id":"d1c53700-0f60-4b13-a76e-33bf7af62cca"}}},"id":"1609f7de-78a1-43ee-b26d-e915d15c10b0","savedPayload":{"position":{"x":24110.934091241324,"y":20190.207547923666},"targetPosition":{"x":24293.965580625434,"y":19779.112091984494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Warning #5","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[4] !== undefined","project":"Superalgos","id":"34422b54-e622-415e-a3b1-284ba05c804f","savedPayload":{"position":{"x":23928.6456032243,"y":19753.560198279883},"targetPosition":{"x":24046.55356743572,"y":19660.83635034679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": 300\n}","project":"Superalgos","id":"1fcb6d31-f9c0-4110-8126-8163fd523ffe","savedPayload":{"position":{"x":23907.29837748331,"y":19605.08698199774},"targetPosition":{"x":24046.55356743572,"y":19660.83635034679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #5","id":"974964b2-0dce-4498-9e8f-46d107fd5a9e"}}},"id":"b6725a5f-a740-4152-9dd6-e0ad223834c8","savedPayload":{"position":{"x":24010.77140465301,"y":20128.827774640133},"targetPosition":{"x":24293.965580625434,"y":19779.112091984494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"Warning #1","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[0] !== undefined","project":"Superalgos","id":"877c671e-272b-45da-9ee4-9507b0062034","savedPayload":{"position":{"x":23942.012932137426,"y":19683.01721809667},"targetPosition":{"x":24046.55356743572,"y":19575.447447382823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": 125\n}","project":"Superalgos","id":"fb6c054d-5a40-4836-ae4c-bd0aaae11b81","savedPayload":{"position":{"x":23898.750492058567,"y":19601.02577627772},"targetPosition":{"x":24046.55356743572,"y":19575.447447382823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #1","id":"fb884d56-a5eb-4ff5-ada7-48e408f1e8eb"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"1","project":"Superalgos","id":"be7d1906-3345-4e13-8861-4c2edccc52af","savedPayload":{"position":{"x":23911.943803132017,"y":19509.264282196338},"targetPosition":{"x":24046.55356743572,"y":19575.447447382823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"85b1d8b1-9dd7-497c-a0dc-6396dc426eea","savedPayload":{"position":{"x":23976.553468951868,"y":19442.78250773315},"targetPosition":{"x":24046.55356743572,"y":19575.447447382823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"35ba75bf-2c5f-4e27-91a2-5797c5ad6460","savedPayload":{"position":{"x":23929.907933156708,"y":20043.61545551611},"targetPosition":{"x":24293.965580625434,"y":19779.112091984494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Warning #2","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[1] !== undefined","project":"Superalgos","id":"559edbbc-c406-43ae-a9bd-35c521b139e3","savedPayload":{"position":{"x":23939.99848982568,"y":19567.27733366108},"targetPosition":{"x":24070.610401393646,"y":19493.51739496424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": 170\n}","project":"Superalgos","id":"70454379-a731-4498-a718-2d1cf67ecdd5","savedPayload":{"position":{"x":23921.588141091364,"y":19476.41868348066},"targetPosition":{"x":24070.610401393646,"y":19493.51739496424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #2","id":"8faff33c-1162-4da3-a767-6e3e1eed92cc"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"2","project":"Superalgos","id":"b2502d78-462f-4c89-b00b-f34adcb99a5e","savedPayload":{"position":{"x":23960.099230712185,"y":19392.091159923137},"targetPosition":{"x":24070.610401393646,"y":19493.51739496424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"34f8a320-e2c7-4ee1-be2f-89453bc84cb2","savedPayload":{"position":{"x":24040.821831396785,"y":19346.50501080038},"targetPosition":{"x":24070.610401393646,"y":19493.51739496424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"21e32fa1-a672-4d74-8677-27944af48991","savedPayload":{"position":{"x":23873.854388701693,"y":19940.37766927988},"targetPosition":{"x":24293.965580625434,"y":19779.112091984494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Warning #3","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[2] !== undefined","project":"Superalgos","id":"3a7eb0ce-d965-4384-b221-e5286f071268","savedPayload":{"position":{"x":23970.673340152374,"y":19455.658193795087},"targetPosition":{"x":24116.775127693723,"y":19421.683678681224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": 215\n}","project":"Superalgos","id":"e26d5470-b6f7-4c5c-99e5-81d739871e45","savedPayload":{"position":{"x":23978.606579726496,"y":19363.293162733615},"targetPosition":{"x":24116.775127693723,"y":19421.683678681224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #3","id":"ddbb33a6-3733-4ea2-b5ce-b9e7764aa606"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"3","project":"Superalgos","id":"a13a5ede-d84f-40b9-a1f9-6c1cf07d4dc4","savedPayload":{"position":{"x":24039.31550844788,"y":19293.231324143486},"targetPosition":{"x":24116.775127693723,"y":19421.683678681224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"8b405229-c99b-42e7-9e11-c43a9e4f0588","savedPayload":{"position":{"x":24129.61137896555,"y":19272.23391905182},"targetPosition":{"x":24116.775127693723,"y":19421.683678681224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"472c7dbf-f691-4759-abd9-faac4a653665","savedPayload":{"position":{"x":23846.43072770971,"y":19826.149900454937},"targetPosition":{"x":24293.965580625434,"y":19779.112091984494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Warning #4","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[3] !== undefined","project":"Superalgos","id":"19abcbc9-44f4-4837-be38-20e7096ae350","savedPayload":{"position":{"x":24031.5523891744,"y":19357.20251738604},"targetPosition":{"x":24181.307754763322,"y":19365.765839015454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": 260\n}","project":"Superalgos","id":"5ef0241a-e530-47f2-96fc-69526c6d6e7a","savedPayload":{"position":{"x":24065.18651316746,"y":19270.813970944124},"targetPosition":{"x":24181.307754763322,"y":19365.765839015454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #4","id":"d1c53700-0f60-4b13-a76e-33bf7af62cca"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"4","project":"Superalgos","id":"d16a0dd4-e4d0-4aa5-a92b-5da52fc95183","savedPayload":{"position":{"x":24143.1750046343,"y":19220.69381081016},"targetPosition":{"x":24181.307754763322,"y":19365.765839015454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"684b1cc4-84f7-4d1a-b50e-c77bf1573a16","savedPayload":{"position":{"x":24235.72891056592,"y":19225.986234633736},"targetPosition":{"x":24181.307754763322,"y":19365.765839015454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f8b6ac73-d69d-45f1-b484-732019dbccd0","savedPayload":{"position":{"x":23849.50582735762,"y":19708.71658271639},"targetPosition":{"x":24293.965580625434,"y":19779.112091984494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Warning #5","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[4] !== undefined","project":"Superalgos","id":"0830bdd3-a4cd-49ad-a1a6-00f93c356623","savedPayload":{"position":{"x":24117.703578401644,"y":19279.886597798144},"targetPosition":{"x":24258.98023294757,"y":19330.29400678046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": 305\n}","project":"Superalgos","id":"aa7247b3-cdd2-413f-9928-68c38cf55010","savedPayload":{"position":{"x":24174.313750117555,"y":19206.473222236044},"targetPosition":{"x":24258.98023294757,"y":19330.29400678046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #5","id":"974964b2-0dce-4498-9e8f-46d107fd5a9e"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"5","project":"Superalgos","id":"c0948566-4adc-43cd-b272-47977dcae5bb","savedPayload":{"position":{"x":24263.263640566627,"y":19180.355177856232},"targetPosition":{"x":24258.98023294757,"y":19330.29400678046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"b9f29114-e942-4b35-aabf-81a147df9ae2","savedPayload":{"position":{"x":24350.577414892887,"y":19211.50866989212},"targetPosition":{"x":24258.98023294757,"y":19330.29400678046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"071903fb-e354-4da5-9a4f-fe6ef757f46b","savedPayload":{"position":{"x":23882.870124686262,"y":19596.080602600385},"targetPosition":{"x":24293.965580625434,"y":19779.112091984494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"27e0b520-ed9a-478f-9aa3-9d784b68fb69","savedPayload":{"position":{"x":24293.965580625434,"y":19779.112091984494},"targetPosition":{"x":24577.15975659786,"y":19429.396409328856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[],"nodesWarnings":{"type":"Nodes Warnings","name":"New Nodes Warnings","project":"Superalgos","id":"79431fa7-4d80-46fc-9fe8-c5bb156709c3","savedPayload":{"position":{"x":24157.048564674118,"y":19590.66198662424},"targetPosition":{"x":24577.15975659786,"y":19429.396409328856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f6c2dfef-f995-42ce-a71b-d91007e5328d","savedPayload":{"position":{"x":24577.15975659786,"y":19429.396409328856},"targetPosition":{"x":24941.217404066585,"y":19164.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Infos","config":"{\n \"codeName\": \"Infos\",\n \"connectTo\": \"Trading System\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"infos\",\n \"rateInArrayAtIndex\": 3,\n \"rateOffset\": 100,\n \"rateOffsetBasedOnArrayIndex\": 50,\n \"rateRange\": 20\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"Infos","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Info #1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[0][3]","project":"Superalgos","id":"a9b4914c-8309-4b4f-8bbd-23fcff148ada","savedPayload":{"position":{"x":24285.27466164523,"y":20025.567990574844},"targetPosition":{"x":24025.4670405099,"y":19875.567990574844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c39c1848-6304-4dea-b9db-a939239c8014","savedPayload":{"position":{"x":24025.4670405099,"y":19875.567990574844},"targetPosition":{"x":23765.659419374566,"y":19725.567990574844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Info #2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[1][3]","project":"Superalgos","id":"c2c859e1-857d-4d81-a1c1-f701c143955d","savedPayload":{"position":{"x":24065.659419374566,"y":20245.18323284551},"targetPosition":{"x":23915.659419374566,"y":19985.375611710177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f75a148b-9118-49e9-9405-76b17fcc5eab","savedPayload":{"position":{"x":23915.659419374566,"y":19985.375611710177},"targetPosition":{"x":23765.659419374566,"y":19725.567990574844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Info #3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[2][3]","project":"Superalgos","id":"14bc1348-81fc-416b-bbc9-fa2283424ba3","savedPayload":{"position":{"x":23765.659419374566,"y":20325.567990574844},"targetPosition":{"x":23765.659419374566,"y":20025.567990574844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"33743d51-582f-44c2-a918-15f1f1b44cb8","savedPayload":{"position":{"x":23765.659419374566,"y":20025.567990574844},"targetPosition":{"x":23765.659419374566,"y":19725.567990574844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Info #4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[3][3]","project":"Superalgos","id":"9e27effb-6cb6-40f6-99d0-9ae724a4749a","savedPayload":{"position":{"x":23465.659419374566,"y":20245.18323284551},"targetPosition":{"x":23615.659419374566,"y":19985.375611710177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a51667bd-5e53-41de-9604-a50c23b3d7a1","savedPayload":{"position":{"x":23615.659419374566,"y":19985.375611710177},"targetPosition":{"x":23765.659419374566,"y":19725.567990574844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Info #5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[4][3]","project":"Superalgos","id":"d3f953a0-7edc-4da5-87b0-f2c455de4800","savedPayload":{"position":{"x":23246.0441771039,"y":20025.567990574844},"targetPosition":{"x":23505.851798239233,"y":19875.567990574844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d6b35ecf-825c-4af1-a63a-4987c03c48b0","savedPayload":{"position":{"x":23505.851798239233,"y":19875.567990574844},"targetPosition":{"x":23765.659419374566,"y":19725.567990574844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d9162944-7779-427f-99db-b95f468b70a7","savedPayload":{"position":{"x":24274.89786362705,"y":19977.01369135555},"targetPosition":{"x":24135.840216158325,"y":19549.03825902273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[],"images":[{"type":"Image","name":"Info #1","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 30\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[0] !== undefined","project":"Superalgos","id":"f08d3344-1b5a-4637-be20-b0b412aa967d","savedPayload":{"position":{"x":23716.503492648553,"y":19859.187617907723},"targetPosition":{"x":23681.139652322137,"y":19713.415882659192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": 100\n}","project":"Superalgos","id":"cd8783d3-a36b-43f5-bc88-ba7e7a6e9f18","savedPayload":{"position":{"x":23572.579546606376,"y":19816.92773438151},"targetPosition":{"x":23681.139652322137,"y":19713.415882659192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #1","id":"c39c1848-6304-4dea-b9db-a939239c8014"}}},"id":"12779603-e4f2-4c2c-88c8-56b574fa4e6e","savedPayload":{"position":{"x":24159.39139646765,"y":19998.42154966229},"targetPosition":{"x":24135.840216158325,"y":19549.03825902273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Info #2","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 25\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[1] !== undefined","project":"Superalgos","id":"a2f0deff-0497-40b9-bbed-1fca1a834006","savedPayload":{"position":{"x":23596.329886764328,"y":19827.774151301648},"targetPosition":{"x":23603.467174137888,"y":19677.944050424197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": 150\n}","project":"Superalgos","id":"b107e584-717d-4be9-afa2-eaec4de5d518","savedPayload":{"position":{"x":23470.14185683965,"y":19746.67802868331},"targetPosition":{"x":23603.467174137888,"y":19677.944050424197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #2","id":"f75a148b-9118-49e9-9405-76b17fcc5eab"}}},"id":"005ebdb0-3456-48bb-80e0-3251219743d5","savedPayload":{"position":{"x":24042.279955290334,"y":19989.204679352944},"targetPosition":{"x":24135.840216158325,"y":19549.03825902273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Info #3","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[2] !== undefined","project":"Superalgos","id":"71cd4d73-4ede-45ad-affb-308091f1a19c","savedPayload":{"position":{"x":23489.874352570678,"y":19763.776333565627},"targetPosition":{"x":23538.93454706829,"y":19622.026210758428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": 200\n}","project":"Superalgos","id":"c73d335d-3501-4c31-95d5-c0aaecdee2b9","savedPayload":{"position":{"x":23391.645242478884,"y":19650.41389741249},"targetPosition":{"x":23538.93454706829,"y":19622.026210758428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #3","id":"33743d51-582f-44c2-a918-15f1f1b44cb8"}}},"id":"3f5a9095-a41d-4b39-874d-f1c9e264b512","savedPayload":{"position":{"x":23931.54449127553,"y":19949.991194907496},"targetPosition":{"x":24135.840216158325,"y":19549.03825902273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Info #4","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 15\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[3] !== undefined","project":"Superalgos","id":"2430a8a0-087f-4616-8484-836116d68654","savedPayload":{"position":{"x":23405.761284332533,"y":19672.37888728296},"targetPosition":{"x":23492.76982076821,"y":19550.19249447541},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": 250\n}","project":"Superalgos","id":"20bcd9fd-9fa8-4c36-a1ee-3ceda7bce24e","savedPayload":{"position":{"x":23343.44903238225,"y":19535.934087979782},"targetPosition":{"x":23492.76982076821,"y":19550.19249447541},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #4","id":"a51667bd-5e53-41de-9604-a50c23b3d7a1"}}},"id":"b31c9bba-77a5-44c9-ba3a-611b3026c2b9","savedPayload":{"position":{"x":23834.731443296838,"y":19883.45343048756},"targetPosition":{"x":24135.840216158325,"y":19549.03825902273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Info #5","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[4] !== undefined","project":"Superalgos","id":"ba2032b1-6597-4abc-a35e-905601e5c8d5","savedPayload":{"position":{"x":23350.805022598866,"y":19560.98628998992},"targetPosition":{"x":23468.712986810286,"y":19468.262442056828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": 300\n}","project":"Superalgos","id":"785e31e9-b9e7-4ce5-93c4-e4893da5bd7b","savedPayload":{"position":{"x":23329.457796857874,"y":19412.513073707778},"targetPosition":{"x":23468.712986810286,"y":19468.262442056828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #5","id":"d6b35ecf-825c-4af1-a63a-4987c03c48b0"}}},"id":"97b5fc07-611c-4d18-933c-6b438a02671f","savedPayload":{"position":{"x":23758.438460582885,"y":19794.125824779494},"targetPosition":{"x":24135.840216158325,"y":19549.03825902273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"Info #1","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[0] !== undefined","project":"Superalgos","id":"a5bb8201-03b0-4590-a6bb-8de5caec87d6","savedPayload":{"position":{"x":23364.172351511992,"y":19490.443309806706},"targetPosition":{"x":23468.712986810286,"y":19382.87353909286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": 125\n}","project":"Superalgos","id":"0ad20d64-cb4a-41ff-92b0-af9eed0e3322","savedPayload":{"position":{"x":23320.909911433133,"y":19408.451867987755},"targetPosition":{"x":23468.712986810286,"y":19382.87353909286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #1","id":"c39c1848-6304-4dea-b9db-a939239c8014"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"1","project":"Superalgos","id":"a620f19d-adbc-4f01-8fa4-f2bcf8043d89","savedPayload":{"position":{"x":23334.103222506583,"y":19316.690373906375},"targetPosition":{"x":23468.712986810286,"y":19382.87353909286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"f9a89ebe-4b5e-4521-b007-e03a9541930a","savedPayload":{"position":{"x":23398.712888326434,"y":19250.208599443187},"targetPosition":{"x":23468.712986810286,"y":19382.87353909286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c98a0eef-cd99-4e5c-95f9-959ca5c3819c","savedPayload":{"position":{"x":23707.864783825506,"y":19688.095906491457},"targetPosition":{"x":24135.840216158325,"y":19549.03825902273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Info #2","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[1] !== undefined","project":"Superalgos","id":"9b7a2774-ae9b-455f-8228-a52d49e2e93f","savedPayload":{"position":{"x":23362.157909200247,"y":19374.703425371117},"targetPosition":{"x":23492.76982076821,"y":19300.943486674278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": 170\n}","project":"Superalgos","id":"caf7c63c-f6cf-4a50-9dfd-02c88af2beb1","savedPayload":{"position":{"x":23343.74756046593,"y":19283.844775190697},"targetPosition":{"x":23492.76982076821,"y":19300.943486674278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #2","id":"f75a148b-9118-49e9-9405-76b17fcc5eab"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"2","project":"Superalgos","id":"5a8dc378-cf1f-4f78-ba3b-cac532253093","savedPayload":{"position":{"x":23382.25865008675,"y":19199.517251633173},"targetPosition":{"x":23492.76982076821,"y":19300.943486674278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"a9bf6ec2-ea70-44b3-8ca1-ab4934a06782","savedPayload":{"position":{"x":23462.98125077135,"y":19153.931102510418},"targetPosition":{"x":23492.76982076821,"y":19300.943486674278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d2a99116-6d5a-4971-b34e-160200278933","savedPayload":{"position":{"x":23686.456925518767,"y":19572.589439332056},"targetPosition":{"x":24135.840216158325,"y":19549.03825902273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Info #3","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[2] !== undefined","project":"Superalgos","id":"09823450-f4dc-4e73-adbf-bf69e202cf96","savedPayload":{"position":{"x":23392.83275952694,"y":19263.084285505123},"targetPosition":{"x":23538.93454706829,"y":19229.10977039126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": 215\n}","project":"Superalgos","id":"ff386aca-4305-4b69-a89c-cdafca03e823","savedPayload":{"position":{"x":23400.765999101062,"y":19170.71925444365},"targetPosition":{"x":23538.93454706829,"y":19229.10977039126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #3","id":"33743d51-582f-44c2-a918-15f1f1b44cb8"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"3","project":"Superalgos","id":"7d26e1eb-3498-43ab-82e6-073871c1806f","savedPayload":{"position":{"x":23461.474927822444,"y":19100.657415853522},"targetPosition":{"x":23538.93454706829,"y":19229.10977039126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"5900fbbe-a2f8-4934-8d85-c372866c6a17","savedPayload":{"position":{"x":23551.770798340116,"y":19079.660010761858},"targetPosition":{"x":23538.93454706829,"y":19229.10977039126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"851107b1-b965-4176-afe2-eb4e247250c1","savedPayload":{"position":{"x":23695.673795828112,"y":19455.47799815474},"targetPosition":{"x":24135.840216158325,"y":19549.03825902273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Info #4","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[3] !== undefined","project":"Superalgos","id":"eb054582-2dfe-4748-8117-868e09e85cd1","savedPayload":{"position":{"x":23453.711808548967,"y":19164.628609096075},"targetPosition":{"x":23603.467174137888,"y":19173.19193072549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": 260\n}","project":"Superalgos","id":"8dd51064-a662-482c-86e9-c598e0018b18","savedPayload":{"position":{"x":23487.345932542026,"y":19078.24006265416},"targetPosition":{"x":23603.467174137888,"y":19173.19193072549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #4","id":"a51667bd-5e53-41de-9604-a50c23b3d7a1"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"4","project":"Superalgos","id":"71af9e73-c434-410d-b842-9d6c7bb4dc3a","savedPayload":{"position":{"x":23565.334424008866,"y":19028.119902520197},"targetPosition":{"x":23603.467174137888,"y":19173.19193072549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"59d35fcd-2093-4149-af3f-024ae0653917","savedPayload":{"position":{"x":23657.888329940484,"y":19033.412326343772},"targetPosition":{"x":23603.467174137888,"y":19173.19193072549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"bfba3d87-1248-4877-bd61-1502d27e3801","savedPayload":{"position":{"x":23734.88728027356,"y":19344.742534139936},"targetPosition":{"x":24135.840216158325,"y":19549.03825902273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Info #5","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[4] !== undefined","project":"Superalgos","id":"44e08d92-7ecf-42ed-b815-7c48c94e24c3","savedPayload":{"position":{"x":23539.86299777621,"y":19087.31268950818},"targetPosition":{"x":23681.139652322137,"y":19137.720098490496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": 305\n}","project":"Superalgos","id":"981003d1-dca3-4eb5-924a-29222d76aaa5","savedPayload":{"position":{"x":23596.47316949212,"y":19013.89931394608},"targetPosition":{"x":23681.139652322137,"y":19137.720098490496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #5","id":"d6b35ecf-825c-4af1-a63a-4987c03c48b0"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"5","project":"Superalgos","id":"3a746503-f887-4453-b913-9d46c303fcca","savedPayload":{"position":{"x":23685.423059941193,"y":18987.78126956627},"targetPosition":{"x":23681.139652322137,"y":19137.720098490496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"621d9588-53e0-476c-8986-10947b3e00d0","savedPayload":{"position":{"x":23772.736834267453,"y":19018.934761602155},"targetPosition":{"x":23681.139652322137,"y":19137.720098490496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b6fb28e9-1914-4f65-94fc-5edc15977a9b","savedPayload":{"position":{"x":23801.425044693497,"y":19247.929486161243},"targetPosition":{"x":24135.840216158325,"y":19549.03825902273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"71864133-f916-4706-8c61-a9c27ec80b87","savedPayload":{"position":{"x":24135.840216158325,"y":19549.03825902273},"targetPosition":{"x":24513.241971733765,"y":19303.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[],"nodesInfos":{"type":"Nodes Infos","name":"New Nodes Infos","project":"Superalgos","id":"0d8a795b-1c62-41c5-b3f5-cf7f62250dc0","savedPayload":{"position":{"x":24063.858681094207,"y":19327.501873575293},"targetPosition":{"x":24513.241971733765,"y":19303.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"591d337c-9135-42e7-bca4-11ffdf52a80e","savedPayload":{"position":{"x":24513.241971733765,"y":19303.950693265968},"targetPosition":{"x":24941.217404066585,"y":19164.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8e32c978-64b7-446e-8120-d9e9c6fe4ebc","savedPayload":{"position":{"x":24941.217404066585,"y":19164.893045797242},"targetPosition":{"x":24941.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Trading Episode","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Episode Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"44c3bd9e-39a0-48cd-ab2d-d72128209e3a","savedPayload":{"position":{"x":25469.132970714185,"y":19743.223695265366},"targetPosition":{"x":25250.349738624707,"y":19795.748902132946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1b09879e-f074-4aa2-aee0-d8dc1ca6e443","savedPayload":{"position":{"x":25250.349738624707,"y":19795.748902132946},"targetPosition":{"x":24812.783274445752,"y":19900.799315868102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"6201e0b4-f839-4149-9260-0c101d0fd663","savedPayload":{"position":{"x":25485.702474715614,"y":19953.7592054844},"targetPosition":{"x":25261.39607462566,"y":19936.105908945632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a3688aee-e828-497b-a497-3d6cd9b0c4b3","savedPayload":{"position":{"x":25261.39607462566,"y":19936.105908945632},"targetPosition":{"x":24812.783274445752,"y":19900.799315868102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"55d9610c-06b7-43c3-9f84-ae554d18a80e","savedPayload":{"position":{"x":25436.40195889087,"y":20159.11063271454},"targetPosition":{"x":25228.529064075832,"y":20073.006860432393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0e7a3dcb-cfc7-4cdc-a284-a3981032cfed","savedPayload":{"position":{"x":25228.529064075832,"y":20073.006860432393},"targetPosition":{"x":24812.783274445752,"y":19900.799315868102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"4b37341d-2ee0-4c01-bfaf-b5aa42402c3a","savedPayload":{"position":{"x":25326.057301225774,"y":20339.176748490976},"targetPosition":{"x":25154.965958965768,"y":20193.050937616685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"94e8a3fc-bf7b-49e6-8b83-6f3ea27bb87c","savedPayload":{"position":{"x":25154.965958965768,"y":20193.050937616685},"targetPosition":{"x":24812.783274445752,"y":19900.799315868102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8bebe826-09d1-4e0c-8f13-72f8698dc6b8","savedPayload":{"position":{"x":24812.783274445752,"y":19900.799315868102},"targetPosition":{"x":24375.216810266797,"y":19795.748902132946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"f2732de7-a828-434e-a671-8e51ad4c49b8","savedPayload":{"position":{"x":24245.979671521156,"y":20232.976397686947},"targetPosition":{"x":24078.779762334307,"y":20577.500690620127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 2,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 2,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"ae0d82d9-cbc8-47ab-9b8a-b011d4b56310","savedPayload":{"position":{"x":24792.55059602381,"y":20747.205554246633},"targetPosition":{"x":24450.783855635804,"y":20666.160678812274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"44665dd7-5570-461d-a032-5a5da0e6a627","savedPayload":{"position":{"x":24450.783855635804,"y":20666.160678812274},"targetPosition":{"x":24078.779762334307,"y":20577.500690620127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"043e8d4a-a0cb-4f65-b9a5-3f40cfe6b064","savedPayload":{"position":{"x":24109.91297694319,"y":20958.129613361627},"targetPosition":{"x":24078.779762334307,"y":20577.500690620127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"1b09879e-f074-4aa2-aee0-d8dc1ca6e443"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"6dbf9678-850d-4cec-8895-e279c5035acd","savedPayload":{"position":{"x":23694.349050710403,"y":20714.58276632412},"targetPosition":{"x":24078.779762334307,"y":20577.500690620127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"0e7a3dcb-cfc7-4cdc-a284-a3981032cfed"}}}],"id":"da3b3c97-1021-496b-8a11-03297d749402","savedPayload":{"position":{"x":24739.274457735522,"y":20060.25226566456},"targetPosition":{"x":24375.216810266797,"y":19795.748902132946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"61bca000-aa91-47bb-8989-c64c5832db40","savedPayload":{"position":{"x":24125.34951961687,"y":20448.114324078524},"targetPosition":{"x":23839.69732282563,"y":20712.286183561904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 2,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 2,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"f3b9081f-13a9-4969-bf69-f761298c77e5","savedPayload":{"position":{"x":24434.580644591468,"y":21141.89978871252},"targetPosition":{"x":24149.491183441933,"y":20936.062861603354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"8211a3e1-ad2e-4afb-9e38-90f7497384c9","savedPayload":{"position":{"x":24149.491183441933,"y":20936.062861603354},"targetPosition":{"x":23839.69732282563,"y":20712.286183561904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"067334ca-51b6-4ec9-bcde-2fd2032beae7","savedPayload":{"position":{"x":23723.10471225306,"y":21076.13322759533},"targetPosition":{"x":23839.69732282563,"y":20712.286183561904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"1b09879e-f074-4aa2-aee0-d8dc1ca6e443"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"1a51d354-d52b-467c-8f5b-ac633176b4b2","savedPayload":{"position":{"x":23433.160941247017,"y":20691.996021616073},"targetPosition":{"x":23839.69732282563,"y":20712.286183561904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"0e7a3dcb-cfc7-4cdc-a284-a3981032cfed"}}}],"id":"4859ccc6-52eb-4a5d-92e7-de61216df482","savedPayload":{"position":{"x":24610.341164388974,"y":20179.436976092285},"targetPosition":{"x":24375.216810266797,"y":19795.748902132946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"c54e2f90-f19f-44a9-a7f7-83121b3bd61b","savedPayload":{"position":{"x":23537.03154447312,"y":16160.650063190064},"targetPosition":{"x":23765.91706815518,"y":16346.103988950654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bfc76946-cf52-4b03-87cd-b4cc6fd0f9a2","savedPayload":{"position":{"x":23765.91706815518,"y":16346.103988950654},"targetPosition":{"x":24033.39056085776,"y":16562.828459543056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"8bd077f5-c423-4017-b204-8758b24a31b0","savedPayload":{"position":{"x":23997.561263329026,"y":16220.41623451958},"targetPosition":{"x":24033.39056085776,"y":16562.828459543056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"1b09879e-f074-4aa2-aee0-d8dc1ca6e443"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"55ef07a1-41c1-4945-b056-ceece8538226","savedPayload":{"position":{"x":24250.164232306724,"y":16295.06035250861},"targetPosition":{"x":24033.39056085776,"y":16562.828459543056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"a3688aee-e828-497b-a497-3d6cd9b0c4b3"}}}],"id":"86089c56-0a27-49d7-bdcd-34cdb3afacca","savedPayload":{"position":{"x":24445.6123195349,"y":20240.20865540076},"targetPosition":{"x":24375.216810266797,"y":19795.748902132946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"1872a087-1b39-4180-9a72-5e181aed674c","savedPayload":{"position":{"x":23657.715624489734,"y":16122.358204813214},"targetPosition":{"x":23865.460538755982,"y":16330.280713946628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"f4098935-645b-444f-bf25-6db0eb6a2319","savedPayload":{"position":{"x":23865.460538755982,"y":16330.280713946628},"targetPosition":{"x":24094.89791082273,"y":16559.93821830005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"67be891d-101a-455f-b928-01c499f071e2","savedPayload":{"position":{"x":24094.896121211164,"y":16234.255474737212},"targetPosition":{"x":24094.89791082273,"y":16559.93821830005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"0e7a3dcb-cfc7-4cdc-a284-a3981032cfed"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"f1283858-5098-4f73-87c4-ba2aa23528b1","savedPayload":{"position":{"x":24325.4610126125,"y":16329.333935430455},"targetPosition":{"x":24094.89791082273,"y":16559.93821830005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"94e8a3fc-bf7b-49e6-8b83-6f3ea27bb87c"}}}],"id":"118b4f42-f6c7-42fc-aed2-b12f9d4d760c","savedPayload":{"position":{"x":24270.16639653164,"y":20233.3153663119},"targetPosition":{"x":24375.216810266797,"y":19795.748902132946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{\n \"codeName\": \"trading-episode\",\n \"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"1cc4cf6f-e786-4882-aa18-a38c237519f0","savedPayload":{"position":{"x":23978.461764969376,"y":20341.835373336035},"targetPosition":{"x":24110.713446735183,"y":20159.80654960167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"1b09879e-f074-4aa2-aee0-d8dc1ca6e443"}}},"id":"819a2a7e-a142-463e-811b-fdb035350d2d","savedPayload":{"position":{"x":24110.713446735183,"y":20159.80654960167},"targetPosition":{"x":24375.216810266797,"y":19795.748902132946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{\n \"codeName\": \"trading-episode\",\n \"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"ef393312-c2b3-4d6a-a17f-96121543d2df","savedPayload":{"position":{"x":23799.684699327787,"y":20148.435433316212},"targetPosition":{"x":23991.528736307457,"y":20030.873256255123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"0e7a3dcb-cfc7-4cdc-a284-a3981032cfed"}}},"id":"3e1dd151-d903-418f-bc55-e9d67b21554a","savedPayload":{"position":{"x":23991.528736307457,"y":20030.873256255123},"targetPosition":{"x":24375.216810266797,"y":19795.748902132946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"932f42ac-83c6-4977-aaee-4e6b89113720","savedPayload":{"position":{"x":24375.216810266797,"y":19795.748902132946},"targetPosition":{"x":24304.821300998694,"y":19351.289148865133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Episode Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"7f71ed01-8fd0-467b-a124-c03998ccdcac","savedPayload":{"position":{"x":24538.903008738773,"y":20265.51611152992},"targetPosition":{"x":24392.77719786448,"y":20094.424769269914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"52154f98-37e5-4609-999b-7938d7be93bc","savedPayload":{"position":{"x":24392.77719786448,"y":20094.424769269914},"targetPosition":{"x":24100.5255761159,"y":19752.242084749898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"9d759442-c65c-4fcb-a337-2ad136f86610","savedPayload":{"position":{"x":24309.112047318988,"y":20394.205233249126},"targetPosition":{"x":24239.583223584625,"y":20180.217517082718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a26e66b7-8e1a-4c3f-8180-59b2b162b496","savedPayload":{"position":{"x":24239.583223584625,"y":20180.217517082718},"targetPosition":{"x":24100.5255761159,"y":19752.242084749898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"dcdf186a-d077-453e-a6d0-2a52f46ea722","savedPayload":{"position":{"x":24047.5656864996,"y":20425.16128501976},"targetPosition":{"x":24065.21898303837,"y":20200.854884929806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3eab8a91-adf4-45b4-a3f5-13b237303be0","savedPayload":{"position":{"x":24065.21898303837,"y":20200.854884929806},"targetPosition":{"x":24100.5255761159,"y":19752.242084749898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Rate","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"15126a3f-6a92-4ec1-9a57-39e0601bc7bd","savedPayload":{"position":{"x":23794.081988791706,"y":20353.671488577045},"targetPosition":{"x":23896.229851233104,"y":20153.195020634663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"aa111c8c-5f0a-47bd-8460-a28336c5086c","savedPayload":{"position":{"x":23896.229851233104,"y":20153.195020634663},"targetPosition":{"x":24100.5255761159,"y":19752.242084749898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Rate","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"e25dbec7-ee89-4455-bc03-0d2146c69b48","savedPayload":{"position":{"x":23587.25154933588,"y":20190.619517372772},"targetPosition":{"x":23758.342891595887,"y":20044.49370649848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d06f4319-b60b-41c6-8237-2726d0cfaa2e","savedPayload":{"position":{"x":23758.342891595887,"y":20044.49370649848},"targetPosition":{"x":24100.5255761159,"y":19752.242084749898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin","config":"{\n }","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"UI.projects.superalgos.utilities.dates.formatDate(record.begin)","project":"Superalgos","id":"11becfbe-4e37-4fb7-83d6-833dca789dd3","savedPayload":{"position":{"x":23458.56242761667,"y":19960.828555952987},"targetPosition":{"x":23672.55014378308,"y":19891.299732218624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b17a28fc-2016-4455-900a-4d8f09c99594","savedPayload":{"position":{"x":23672.55014378308,"y":19891.299732218624},"targetPosition":{"x":24100.5255761159,"y":19752.242084749898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End","config":"{\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"UI.projects.superalgos.utilities.dates.formatDate(record.end)","project":"Superalgos","id":"a155c131-cdcf-4a95-a191-96e4428cbce1","savedPayload":{"position":{"x":23427.606375846037,"y":19699.2821951336},"targetPosition":{"x":23651.91277593599,"y":19716.935491672368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ccc4df37-e53b-43a5-bc46-8d505fc2637d","savedPayload":{"position":{"x":23651.91277593599,"y":19716.935491672368},"targetPosition":{"x":24100.5255761159,"y":19752.242084749898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"be21291c-cfb9-4076-b3ac-727dde44001e","savedPayload":{"position":{"x":24100.5255761159,"y":19752.242084749898},"targetPosition":{"x":24304.821300998694,"y":19351.289148865133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Episode Base Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Hits","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitsInBaseAsset","project":"Superalgos","id":"711e0140-0ec0-48e4-9a68-73cb061b6470","savedPayload":{"position":{"x":24044.659383650134,"y":20444.504380283553},"targetPosition":{"x":23974.26387438203,"y":20000.04462701574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"23c2e253-d2a1-4a78-8b9a-0540e421a0ca","savedPayload":{"position":{"x":23974.26387438203,"y":20000.04462701574},"targetPosition":{"x":23903.86836511393,"y":19555.58487374793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fails","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.failsInBaseAsset","project":"Superalgos","id":"dfa86999-005f-44ac-8084-b8c0b4c93efb","savedPayload":{"position":{"x":23763.077346577724,"y":20444.504380283553},"targetPosition":{"x":23833.472855845826,"y":20000.04462701574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e2d4f4d2-3c23-48d7-9720-e09276948294","savedPayload":{"position":{"x":23833.472855845826,"y":20000.04462701574},"targetPosition":{"x":23903.86836511393,"y":19555.58487374793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Ratio","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitRatioInBaseAsset","project":"Superalgos","id":"696e5620-de9b-4af8-9c9e-f37783998e24","savedPayload":{"position":{"x":23495.27691534834,"y":20357.490745517458},"targetPosition":{"x":23699.572640231134,"y":19956.537809632693},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"92900336-ad0f-4c54-bb25-391f49710534","savedPayload":{"position":{"x":23699.572640231134,"y":19956.537809632693},"targetPosition":{"x":23903.86836511393,"y":19555.58487374793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Profit Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.profitLossInBaseAsset","project":"Superalgos","id":"49a0f3bf-880e-4649-93cc-cdcf9449d498","savedPayload":{"position":{"x":23267.472262046038,"y":20191.98097681582},"targetPosition":{"x":23585.670313579983,"y":19873.782925281874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fa6fa05d-9c5d-4139-9966-887f3c52c91c","savedPayload":{"position":{"x":23585.670313579983,"y":19873.782925281874},"targetPosition":{"x":23903.86836511393,"y":19555.58487374793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ROI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ROIInBaseAsset","project":"Superalgos","id":"c3360fbf-850f-485f-a27b-e2c18b7e4a82","savedPayload":{"position":{"x":23101.9624933444,"y":19964.17632351352},"targetPosition":{"x":23502.915429229164,"y":19759.880598630723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c9536b19-391e-4761-a8dc-09f5a03f626e","savedPayload":{"position":{"x":23502.915429229164,"y":19759.880598630723},"targetPosition":{"x":23903.86836511393,"y":19555.58487374793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Annualized Rate Of Return","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.annualizedRateOfReturnInBaseAsset","project":"Superalgos","id":"b7f2998d-c210-4b91-9127-2dd07236bd72","savedPayload":{"position":{"x":23014.948858578304,"y":19696.375892284133},"targetPosition":{"x":23459.408611846116,"y":19625.98038301603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a09f8ca5-f073-4e61-9109-c0a3e67f520c","savedPayload":{"position":{"x":23459.408611846116,"y":19625.98038301603},"targetPosition":{"x":23903.86836511393,"y":19555.58487374793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFailInBaseAsset","project":"Superalgos","id":"4b072ef9-6447-4543-a6d2-59b6261341db","savedPayload":{"position":{"x":23014.948858578304,"y":19414.793855211723},"targetPosition":{"x":23459.408611846116,"y":19485.189364479826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"314c2d96-cce3-47e0-9f23-7119b1d27094","savedPayload":{"position":{"x":23459.408611846116,"y":19485.189364479826},"targetPosition":{"x":23903.86836511393,"y":19555.58487374793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Balance","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginBalanceInBaseAsset","project":"Superalgos","id":"5c5bb394-b24b-41b9-8717-2a4fbd2839e9","savedPayload":{"position":{"x":23101.9624933444,"y":19146.993423982338},"targetPosition":{"x":23502.915429229164,"y":19351.289148865133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b3ad87e6-0ab0-4d16-9501-d4aaaf1e9c8c","savedPayload":{"position":{"x":23502.915429229164,"y":19351.289148865133},"targetPosition":{"x":23903.86836511393,"y":19555.58487374793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Balance","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endBalanceInBaseAsset","project":"Superalgos","id":"86fd4b55-99f5-4a9c-9a4e-c2ebd8edc23e","savedPayload":{"position":{"x":23267.472262046038,"y":18919.188770680037},"targetPosition":{"x":23585.670313579983,"y":19237.386822213983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"03c929c6-5013-409b-9591-7f823441c15c","savedPayload":{"position":{"x":23585.670313579983,"y":19237.386822213983},"targetPosition":{"x":23903.86836511393,"y":19555.58487374793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"21ea35d4-afa4-4a9f-b15c-5fc7232c3fa7","savedPayload":{"position":{"x":23903.86836511393,"y":19555.58487374793},"targetPosition":{"x":24304.821300998694,"y":19351.289148865133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Episode Quoted Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Hits","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitsInQuotedAsset","project":"Superalgos","id":"009cbf9b-b73d-4ea4-8a2c-64706b98a231","savedPayload":{"position":{"x":23451.77009796529,"y":20082.79951136656},"targetPosition":{"x":23656.065822848086,"y":19681.846575481795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6a435564-c558-4fd6-8bd7-824c62f0b951","savedPayload":{"position":{"x":23656.065822848086,"y":19681.846575481795},"targetPosition":{"x":23860.36154773088,"y":19280.89363959703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fails","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.failsInQuotedAsset","project":"Superalgos","id":"01462484-f827-419c-b810-9adb0e3f2661","savedPayload":{"position":{"x":23223.96544466299,"y":19917.28974266492},"targetPosition":{"x":23542.163496196936,"y":19599.091691130976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"713b4fd1-6131-4ef6-8008-7958a967a888","savedPayload":{"position":{"x":23542.163496196936,"y":19599.091691130976},"targetPosition":{"x":23860.36154773088,"y":19280.89363959703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Ratio","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitRatioInQuotedAsset","project":"Superalgos","id":"4fb18b65-78b8-4e5c-8629-efd219a802d1","savedPayload":{"position":{"x":23058.45567596135,"y":19689.48508936262},"targetPosition":{"x":23459.408611846116,"y":19485.189364479826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1c5225af-4346-49a0-a814-c8a8b10b7c60","savedPayload":{"position":{"x":23459.408611846116,"y":19485.189364479826},"targetPosition":{"x":23860.36154773088,"y":19280.89363959703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Profit Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.profitLossInQuotedAsset","project":"Superalgos","id":"70493a19-c0d2-4cce-8060-932be5cc07fa","savedPayload":{"position":{"x":22971.442041195256,"y":19421.684658133236},"targetPosition":{"x":23415.90179446307,"y":19351.289148865133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"84936b39-4f2a-46d0-a556-7910f8432047","savedPayload":{"position":{"x":23415.90179446307,"y":19351.289148865133},"targetPosition":{"x":23860.36154773088,"y":19280.89363959703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ROI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ROIInQuotedAsset","project":"Superalgos","id":"46bdab29-95b6-4a8b-b725-c2114b3964c7","savedPayload":{"position":{"x":22971.442041195256,"y":19140.102621060825},"targetPosition":{"x":23415.90179446307,"y":19210.498130328928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"51dcbc0e-28ba-4433-9210-9f85701b47f2","savedPayload":{"position":{"x":23415.90179446307,"y":19210.498130328928},"targetPosition":{"x":23860.36154773088,"y":19280.89363959703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Annualized Rate Of Return","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.annualizedRateOfReturnInQuotedAsset","project":"Superalgos","id":"29f377ac-9abc-4641-9114-391f48c32ba0","savedPayload":{"position":{"x":23058.45567596135,"y":18872.30218983144},"targetPosition":{"x":23459.408611846116,"y":19076.597914714235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2c9cc3c9-8bba-461e-93b8-ed799ee3eae7","savedPayload":{"position":{"x":23459.408611846116,"y":19076.597914714235},"targetPosition":{"x":23860.36154773088,"y":19280.89363959703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFailInQuotedAsset","project":"Superalgos","id":"f07fb766-0f6e-4a1b-b1b1-9c75a9274904","savedPayload":{"position":{"x":23223.96544466299,"y":18644.49753652914},"targetPosition":{"x":23542.163496196936,"y":18962.695588063085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2eb3c687-3111-4030-ad69-8680c8eb2415","savedPayload":{"position":{"x":23542.163496196936,"y":18962.695588063085},"targetPosition":{"x":23860.36154773088,"y":19280.89363959703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Balance","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginBalanceInQuotedAsset","project":"Superalgos","id":"d2d1fab0-0b58-4060-9e09-42f2709c92ec","savedPayload":{"position":{"x":23451.77009796529,"y":18478.9877678275},"targetPosition":{"x":23656.065822848086,"y":18879.940703712266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2a4904f0-e57f-4653-909d-aa437856f259","savedPayload":{"position":{"x":23656.065822848086,"y":18879.940703712266},"targetPosition":{"x":23860.36154773088,"y":19280.89363959703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Balance","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endBalanceInQuotedAsset","project":"Superalgos","id":"7d77239f-7b8a-417b-b0e3-18fcada0cc24","savedPayload":{"position":{"x":23719.570529194676,"y":18391.974133061405},"targetPosition":{"x":23789.96603846278,"y":18836.433886329218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e92af4b0-621d-414a-8cc6-907ef8e5f6f0","savedPayload":{"position":{"x":23789.96603846278,"y":18836.433886329218},"targetPosition":{"x":23860.36154773088,"y":19280.89363959703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7ed1aeaa-80d7-4470-a9ca-97f1cd2c1850","savedPayload":{"position":{"x":23860.36154773088,"y":19280.89363959703},"targetPosition":{"x":24304.821300998694,"y":19351.289148865133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cb6ea47e-a9b7-4c61-b706-17d767ca601e","savedPayload":{"position":{"x":24304.821300998694,"y":19351.289148865133},"targetPosition":{"x":24623.01935253264,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"513bb52a-673f-433e-bc1f-098ceca5c488","savedPayload":{"position":{"x":24623.01935253264,"y":19033.091097331187},"targetPosition":{"x":24941.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Trading Strategy","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Strategy Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"648e30ef-44af-4f90-ac02-ea7e19caa5c7","savedPayload":{"position":{"x":23673.031603122057,"y":19570.982297667073},"targetPosition":{"x":23570.047532580196,"y":19442.973500913187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"63926142-e2ba-49b8-9107-2c151d696b8a","savedPayload":{"position":{"x":23570.047532580196,"y":19442.973500913187},"targetPosition":{"x":23352.431821974955,"y":19172.245715531662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"eb258e33-f20c-409d-a575-4c4b21853d34","savedPayload":{"position":{"x":23534.01580878851,"y":19650.751238925084},"targetPosition":{"x":23475.69111797499,"y":19497.117910011708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7915c23f-7b94-46ef-a105-05da237ac1b2","savedPayload":{"position":{"x":23475.69111797499,"y":19497.117910011708},"targetPosition":{"x":23352.431821974955,"y":19172.245715531662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"f5c18100-5320-4e41-b56f-897999a309f2","savedPayload":{"position":{"x":23376.80753939302,"y":19682.75925339549},"targetPosition":{"x":23369.0567542045,"y":19519.26706893857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"eac25654-c1b0-416f-b2b0-37b98552d158","savedPayload":{"position":{"x":23369.0567542045,"y":19519.26706893857},"targetPosition":{"x":23352.431821974955,"y":19172.245715531662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"3272f71d-4135-4ef9-91ee-412b885928d7","savedPayload":{"position":{"x":23217.43367888208,"y":19666.326567848617},"targetPosition":{"x":23261.188708707676,"y":19506.62044651284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9397d632-f884-4bbc-b730-02a5121070aa","savedPayload":{"position":{"x":23261.188708707676,"y":19506.62044651284},"targetPosition":{"x":23352.431821974955,"y":19172.245715531662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"10a38b62-6bc8-4e9a-8485-f6dead38a053","savedPayload":{"position":{"x":24090.16004712051,"y":19461.6134806313},"targetPosition":{"x":23816.217404066585,"y":19104.60447750024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"f13376b3-c871-42bb-a383-bbd0e2fcd93b","savedPayload":{"position":{"x":23458.034916247892,"y":19095.896634054898},"targetPosition":{"x":23096.330833588872,"y":19175.230567710623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 4,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 4,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"a47cb5ec-0ba2-4e3a-b652-fe8c51f960cf","savedPayload":{"position":{"x":23395.314169592093,"y":19811.027853873587},"targetPosition":{"x":23255.299233616654,"y":19513.51419379196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"323fdd02-f236-4b5e-acf2-57e5c8ad1f65","savedPayload":{"position":{"x":23255.299233616654,"y":19513.51419379196},"targetPosition":{"x":23096.330833588872,"y":19175.230567710623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"8a68019b-bf43-4be1-ad6c-5f565dd20ba0","savedPayload":{"position":{"x":22823.906812133944,"y":19431.684029138312},"targetPosition":{"x":23096.330833588872,"y":19175.230567710623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"63926142-e2ba-49b8-9107-2c151d696b8a"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"0ec5d7ee-1958-4afd-b24c-72e34f8cd19f","savedPayload":{"position":{"x":22759.97151481076,"y":18968.006912231718},"targetPosition":{"x":23096.330833588872,"y":19175.230567710623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"eac25654-c1b0-416f-b2b0-37b98552d158"}}}],"id":"9f4397f8-aa4c-4cfb-abd9-03e303216bdf","savedPayload":{"position":{"x":23932.68597436272,"y":19539.271099330323},"targetPosition":{"x":23816.217404066585,"y":19104.60447750024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"ab862072-f17c-4525-9c42-44616623b5bd","savedPayload":{"position":{"x":23232.584473975658,"y":19125.115409062902},"targetPosition":{"x":22859.18144953736,"y":19079.566504230155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 4,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 4,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"5eb959ea-31a2-4496-924d-5e0e0eee813a","savedPayload":{"position":{"x":22892.2516308732,"y":19781.12411657158},"targetPosition":{"x":22876.75695077428,"y":19453.107373591916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"4d523882-3ed3-4958-aa52-4ecdc5c7ce36","savedPayload":{"position":{"x":22876.75695077428,"y":19453.107373591916},"targetPosition":{"x":22859.18144953736,"y":19079.566504230155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"cd57bf8c-fc77-41c3-9f28-c818785391fc","savedPayload":{"position":{"x":22509.604963398855,"y":19212.216856709278},"targetPosition":{"x":22859.18144953736,"y":19079.566504230155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"63926142-e2ba-49b8-9107-2c151d696b8a"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"73f7775c-1558-48ed-b97c-ea17ffc485dc","savedPayload":{"position":{"x":22627.923464950298,"y":18759.529686353388},"targetPosition":{"x":22859.18144953736,"y":19079.566504230155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"eac25654-c1b0-416f-b2b0-37b98552d158"}}}],"id":"a077a48f-b335-4120-93e2-872d01e636e5","savedPayload":{"position":{"x":23757.480617567562,"y":19550.754665118457},"targetPosition":{"x":23816.217404066585,"y":19104.60447750024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"73ece056-61ba-4f5d-8774-bd6edc0f1d8a","savedPayload":{"position":{"x":23864.690743282812,"y":16265.600788433647},"targetPosition":{"x":24093.576266964872,"y":16451.054714194237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9bf77b0b-f1a9-466d-aec3-8bccd7de2ec1","savedPayload":{"position":{"x":24093.576266964872,"y":16451.054714194237},"targetPosition":{"x":24361.04975966745,"y":16667.77918478664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"82d2980c-a74e-4f09-9cd4-83463ac852de","savedPayload":{"position":{"x":24325.220462138717,"y":16325.366959763163},"targetPosition":{"x":24361.04975966745,"y":16667.77918478664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"63926142-e2ba-49b8-9107-2c151d696b8a"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"287447ce-d038-4ed1-90d4-69a1718f5a46","savedPayload":{"position":{"x":24577.823431116416,"y":16400.01107775219},"targetPosition":{"x":24361.04975966745,"y":16667.77918478664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"7915c23f-7b94-46ef-a105-05da237ac1b2"}}}],"id":"b9e6cbf9-c8a6-4fae-ab2a-f528b60decda","savedPayload":{"position":{"x":23591.217404066585,"y":19494.31590920324},"targetPosition":{"x":23816.217404066585,"y":19104.60447750024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"9b34826a-ca42-43b6-8e06-da448b0d67e1","savedPayload":{"position":{"x":23985.374823299426,"y":16227.308930056797},"targetPosition":{"x":24193.119737565674,"y":16435.23143919021},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"887991ce-dbb5-49f2-a8cb-275417e42cbe","savedPayload":{"position":{"x":24193.119737565674,"y":16435.23143919021},"targetPosition":{"x":24422.55710963242,"y":16664.888943543632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"217cd5e6-8d8e-44d2-b7a3-15719cb09510","savedPayload":{"position":{"x":24422.555320020856,"y":16339.206199980796},"targetPosition":{"x":24422.55710963242,"y":16664.888943543632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"eac25654-c1b0-416f-b2b0-37b98552d158"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"3788dc04-07dd-42a2-b8cb-9a90270f1290","savedPayload":{"position":{"x":24653.120211422192,"y":16434.28466067404},"targetPosition":{"x":24422.55710963242,"y":16664.888943543632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"9397d632-f884-4bbc-b730-02a5121070aa"}}}],"id":"af73cf57-76e2-4671-baa2-16404a711902","savedPayload":{"position":{"x":23459.208400935528,"y":19378.547120554165},"targetPosition":{"x":23816.217404066585,"y":19104.60447750024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"strategy\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"5cea6bd0-b9fc-49ce-93a0-3645cc37ad56","savedPayload":{"position":{"x":23164.217471321463,"y":19279.307332944445},"targetPosition":{"x":23381.550782236503,"y":19221.073047796377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"63926142-e2ba-49b8-9107-2c151d696b8a"}}},"id":"46d6999a-81ac-4a9a-af3a-cb5f09c8bbfb","savedPayload":{"position":{"x":23381.550782236503,"y":19221.073047796377},"targetPosition":{"x":23816.217404066585,"y":19104.60447750024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"strategy\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"538d815c-d659-45b8-bc06-9a5fe9e38f18","savedPayload":{"position":{"x":23146.99212263926,"y":19016.499297751707},"targetPosition":{"x":23370.06721644837,"y":19045.86769100122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"eac25654-c1b0-416f-b2b0-37b98552d158"}}},"id":"8ebd5ae8-cc93-4561-a1e6-a4025f87e48a","savedPayload":{"position":{"x":23370.06721644837,"y":19045.86769100122},"targetPosition":{"x":23816.217404066585,"y":19104.60447750024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"802b7854-6666-4e0b-a4dc-1649f21598b0","savedPayload":{"position":{"x":23816.217404066585,"y":19104.60447750024},"targetPosition":{"x":24041.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Strategy Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"6f2a3fd6-6be6-4d81-84bb-db0163b6ffe6","savedPayload":{"position":{"x":23479.661122517937,"y":18350.40302067966},"targetPosition":{"x":23591.84654970082,"y":18341.995885151187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"bbb3b981-d335-44da-9cb1-4df2b3ac8111","savedPayload":{"position":{"x":23591.84654970082,"y":18341.995885151187},"targetPosition":{"x":23816.217404066585,"y":18325.181614094243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"07882620-5abf-4c08-a584-a6d68c806605","savedPayload":{"position":{"x":23502.047513899164,"y":18201.879018370582},"targetPosition":{"x":23606.770810621638,"y":18242.979883611803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"029f9063-a5fd-4896-98cc-9218d41e7052","savedPayload":{"position":{"x":23606.770810621638,"y":18242.979883611803},"targetPosition":{"x":23816.217404066585,"y":18325.181614094243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.strategyName","project":"Superalgos","id":"b7e2cad8-b05f-4262-8d75-c309f6a24701","savedPayload":{"position":{"x":23586.6591050689,"y":18077.776607351676},"targetPosition":{"x":23663.17853806813,"y":18160.24494293253},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d07212ec-31de-4b17-abfa-31635c16fbdf","savedPayload":{"position":{"x":23663.17853806813,"y":18160.24494293253},"targetPosition":{"x":23816.217404066585,"y":18325.181614094243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Triggered By Situation","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.situationName","project":"Superalgos","id":"9e5796db-5a4a-421e-92bb-21a58b6722f0","savedPayload":{"position":{"x":23716.737532702904,"y":18002.67579214142},"targetPosition":{"x":23749.897489824132,"y":18110.177732792363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ad73d928-f539-47cc-8244-3a9b1493be0d","savedPayload":{"position":{"x":23749.897489824132,"y":18110.177732792363},"targetPosition":{"x":23816.217404066585,"y":18325.181614094243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"52892e12-95a1-41f4-ac57-1d1ec2d85b72","savedPayload":{"position":{"x":23866.519168901043,"y":17991.45121024326},"targetPosition":{"x":23849.751913956225,"y":18102.694678193588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"fb903579-33c4-482d-9338-f8c1a1291544","savedPayload":{"position":{"x":23849.751913956225,"y":18102.694678193588},"targetPosition":{"x":23816.217404066585,"y":18325.181614094243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"a60b9fb7-484c-49d1-bb2b-76059175f0b8","savedPayload":{"position":{"x":24006.337923663057,"y":18046.326027762596},"targetPosition":{"x":23942.9644171309,"y":18139.277889873145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c187ba44-86b8-4b29-aafc-7073d227124d","savedPayload":{"position":{"x":23942.9644171309,"y":18139.277889873145},"targetPosition":{"x":23816.217404066585,"y":18325.181614094243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"19e97600-4b83-45e5-ac22-ef344d59f179","savedPayload":{"position":{"x":23816.217404066585,"y":18325.181614094243},"targetPosition":{"x":24041.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"22c56897-7ccd-4979-bbc9-d4ec3d7fd384","savedPayload":{"position":{"x":24041.217404066585,"y":18714.893045797242},"targetPosition":{"x":24491.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"510768b8-e284-49c6-8206-1ec6f7d7738f","savedPayload":{"position":{"x":24491.217404066585,"y":18714.893045797242},"targetPosition":{"x":24941.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Trading Position","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Position Objects","config":"{ \n \"codeName\": \"Position-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Left Exit Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.exitTargetRate","project":"Superalgos","id":"90c0c22d-4727-42d7-ba50-6c4d8303940d","savedPayload":{"position":{"x":23372.89131831053,"y":19594.166578643504},"targetPosition":{"x":23258.289226615554,"y":19452.589943059153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3082783b-8f2c-47c0-9d8f-b2272ed15d32","savedPayload":{"position":{"x":23258.289226615554,"y":19452.589943059153},"targetPosition":{"x":23028.47649584858,"y":19168.88288477962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Right Exit Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.exitTargetRate","project":"Superalgos","id":"1537f08e-fe64-4f33-bd56-db12b577041b","savedPayload":{"position":{"x":23056.792676404817,"y":19714.77684558158},"targetPosition":{"x":23047.457563011074,"y":19533.740963507993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"04824ee9-ff87-4715-9438-b30ae87da1fa","savedPayload":{"position":{"x":23047.457563011074,"y":19533.740963507993},"targetPosition":{"x":23028.47649584858,"y":19168.88288477962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Left Entry Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.entryTargetRate","project":"Superalgos","id":"4d559513-e76b-4cda-89de-689fdf7f3d7a","savedPayload":{"position":{"x":22730.669448976547,"y":19627.42686922161},"targetPosition":{"x":22829.732153144694,"y":19474.879679402802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f4430186-c937-40d4-be84-62f3be5d4283","savedPayload":{"position":{"x":22829.732153144694,"y":19474.879679402802},"targetPosition":{"x":23028.47649584858,"y":19168.88288477962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Right Entry Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.entryTargetRate","project":"Superalgos","id":"fc8a0d51-f87e-4bab-b007-8175544fcd53","savedPayload":{"position":{"x":22517.899313523405,"y":19364.533311359763},"targetPosition":{"x":22687.304882078766,"y":19299.63546617169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"888c27f0-0f44-4c1a-8f43-a1aeee135baf","savedPayload":{"position":{"x":22687.304882078766,"y":19299.63546617169},"targetPosition":{"x":23028.47649584858,"y":19168.88288477962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"053cd4d3-65d1-4326-9822-26c16d6d5066","savedPayload":{"position":{"x":24079.821300998694,"y":19337.541618092513},"targetPosition":{"x":23963.352730702558,"y":18902.87499626243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Entry Target Rate Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 2,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 3,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"3c52e72d-ad84-40a9-8dfb-0249d7c1d99b","savedPayload":{"position":{"x":21462.0855205249,"y":19494.420337141244},"targetPosition":{"x":21975.50998714314,"y":18981.053483751624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c18c979a-e23e-4062-afae-e7b5b1126efc","savedPayload":{"position":{"x":21975.50998714314,"y":18981.053483751624},"targetPosition":{"x":22489.031257440536,"y":18467.716125216677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"8fa93da7-501e-4634-8bce-ae7348520ff9","savedPayload":{"position":{"x":21762.882913942445,"y":18467.716005129925},"targetPosition":{"x":22489.031257440536,"y":18467.716125216677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"f4430186-c937-40d4-be84-62f3be5d4283"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"ea5880bf-fb87-4667-937a-13eadf49bf1a","savedPayload":{"position":{"x":21975.60058357288,"y":17954.297287620375},"targetPosition":{"x":22489.031257440536,"y":18467.716125216677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"888c27f0-0f44-4c1a-8f43-a1aeee135baf"}}}],"id":"f6e9b726-de30-42b8-95fa-a23b3cba994c","savedPayload":{"position":{"x":23738.352730702558,"y":19292.58642796543},"targetPosition":{"x":23963.352730702558,"y":18902.87499626243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Exit Target Rate Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 2,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 3,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"1718c122-31ed-4c35-9180-0e08c0eadcab","savedPayload":{"position":{"x":21256.28928373682,"y":19005.553773101605},"targetPosition":{"x":21885.1239293732,"y":18642.568827656476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"805b0545-673d-430b-ae3d-d293d2105136","savedPayload":{"position":{"x":21885.1239293732,"y":18642.568827656476},"targetPosition":{"x":22513.99599403495,"y":18279.565926553114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Exit Target Rate","project":"Superalgos","id":"52f68cb8-dce2-4599-bdce-34076c00670f","savedPayload":{"position":{"x":21812.569736612473,"y":18091.692025952238},"targetPosition":{"x":22513.99599403495,"y":18279.565926553114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Exit Target Rate","id":"3082783b-8f2c-47c0-9d8f-b2272ed15d32"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"7d5f11d5-e8f2-49c7-a1a8-486edbbcee81","savedPayload":{"position":{"x":22150.94314223121,"y":17650.710827287014},"targetPosition":{"x":22513.99599403495,"y":18279.565926553114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"04824ee9-ff87-4715-9438-b30ae87da1fa"}}}],"id":"e74e97a6-9b79-4022-bcd2-464d16ee17cb","savedPayload":{"position":{"x":23528.686108872476,"y":19019.343566558568},"targetPosition":{"x":23963.352730702558,"y":18902.87499626243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"7a578011-f1c0-48f6-90d1-19c83098b8fb","savedPayload":{"position":{"x":23963.352730702558,"y":18902.87499626243},"targetPosition":{"x":24188.352730702558,"y":18513.163564559432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Position Object","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"6e6bf608-8dc1-4d3f-b638-b966af43c64b","savedPayload":{"position":{"x":23302.956041198773,"y":19420.909541569563},"targetPosition":{"x":23308.310523146647,"y":19195.973262763608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"677b65de-15c6-44a9-89db-a384213c3d7d","savedPayload":{"position":{"x":23308.310523146647,"y":19195.973262763608},"targetPosition":{"x":23319.019487042395,"y":18746.1007051517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"52462a27-ead7-4234-aec3-128c4d47f165","savedPayload":{"position":{"x":23113.491104760207,"y":19389.049446558405},"targetPosition":{"x":23182.000565520935,"y":19174.733199422837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a1410960-47bf-41b4-8896-53b90bc45de5","savedPayload":{"position":{"x":23182.000565520935,"y":19174.733199422837},"targetPosition":{"x":23319.019487042395,"y":18746.1007051517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Situation Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.situationName","project":"Superalgos","id":"252a3b70-f10a-4e60-8760-35cc10710e57","savedPayload":{"position":{"x":22940.67685552979,"y":19305.101468281875},"targetPosition":{"x":23066.79106603399,"y":19118.767880571817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d718c59b-59e7-41e7-8f1d-b493f381ee7e","savedPayload":{"position":{"x":23066.79106603399,"y":19118.767880571817},"targetPosition":{"x":23319.019487042395,"y":18746.1007051517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Entry Target Rate","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.entryTargetRate","project":"Superalgos","id":"a3d50fb5-a8fb-4c12-87b2-de7d3e04e2a8","savedPayload":{"position":{"x":22798.513676214257,"y":19175.866572682087},"targetPosition":{"x":22972.01561315697,"y":19032.61128350529},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"82eff2a9-e126-44b5-9841-9aad10532d53","savedPayload":{"position":{"x":22972.01561315697,"y":19032.61128350529},"targetPosition":{"x":23319.019487042395,"y":18746.1007051517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Target Rate","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitTargetRate","project":"Superalgos","id":"d0e4bb11-eec3-4002-ba12-b908d170052f","savedPayload":{"position":{"x":22698.51878212477,"y":19011.814602411014},"targetPosition":{"x":22905.352350430647,"y":18923.243303324576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"21a02ba5-4c46-44c1-9382-a7e1caf17beb","savedPayload":{"position":{"x":22905.352350430647,"y":18923.243303324576},"targetPosition":{"x":23319.019487042395,"y":18746.1007051517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Position Begin Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"8fd29f3c-33fb-4e06-a1e8-a8cd60f69b11","savedPayload":{"position":{"x":22648.793164887924,"y":18826.236072445383},"targetPosition":{"x":22872.201938939415,"y":18799.524283347488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f7ef5f55-d14f-4b9b-a2c6-00ad218efc25","savedPayload":{"position":{"x":22872.201938939415,"y":18799.524283347488},"targetPosition":{"x":23319.019487042395,"y":18746.1007051517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Position End Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"0653a1f8-d107-4233-85da-d088cb49e800","savedPayload":{"position":{"x":22653.365298282617,"y":18634.165451604997},"targetPosition":{"x":22875.25002786921,"y":18671.47720278723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"49a64557-217a-407d-8d74-fe0e7c57b0ac","savedPayload":{"position":{"x":22875.25002786921,"y":18671.47720278723},"targetPosition":{"x":23319.019487042395,"y":18746.1007051517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"782db18b-9db2-4a15-9381-0978becd09dd","savedPayload":{"position":{"x":22711.864775252736,"y":18451.163159302385},"targetPosition":{"x":22914.249679182623,"y":18549.47567458549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f43218a9-e3d1-4871-a42d-9a992ec40456","savedPayload":{"position":{"x":22914.249679182623,"y":18549.47567458549},"targetPosition":{"x":23319.019487042395,"y":18746.1007051517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"3e051cc3-2056-43e0-982c-386a1df8b59b","savedPayload":{"position":{"x":22819.552316083948,"y":18292.054952903356},"targetPosition":{"x":22986.041373070097,"y":18443.403536986138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"52664c1e-98f0-45f2-8144-32894edc6ec4","savedPayload":{"position":{"x":22986.041373070097,"y":18443.403536986138},"targetPosition":{"x":23319.019487042395,"y":18746.1007051517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"cd373aaa-e92f-4fbb-a4dc-f75f07faf9a8","savedPayload":{"position":{"x":22967.703716660573,"y":18169.730833037425},"targetPosition":{"x":23084.808973454514,"y":18361.854123742185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"89a5899d-9b38-4989-9596-5b67261ae979","savedPayload":{"position":{"x":23084.808973454514,"y":18361.854123742185},"targetPosition":{"x":23319.019487042395,"y":18746.1007051517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3189321c-056c-405b-ae4e-95ff4b518d55","savedPayload":{"position":{"x":23319.019487042395,"y":18746.1007051517},"targetPosition":{"x":24188.352730702558,"y":18513.163564559432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"a"}}},{"type":"Plotter Panel","name":"Position Combined Statistics","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Profit Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.profitLoss","project":"Superalgos","id":"9b1efd5f-917e-41a0-a7ee-ead0f74297c0","savedPayload":{"position":{"x":23082.929900924002,"y":18150.514992281533},"targetPosition":{"x":23191.596556381523,"y":18121.3978497075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0078b679-dcb9-4864-81a4-b645afd1de9b","savedPayload":{"position":{"x":23191.596556381523,"y":18121.3978497075},"targetPosition":{"x":23408.929867296563,"y":18063.163564559432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ROI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ROI","project":"Superalgos","id":"7fde8301-e1bf-49a0-8049-d269b4b67ae0","savedPayload":{"position":{"x":23116.646293519316,"y":17894.413564559432},"targetPosition":{"x":23214.074151445064,"y":17950.663564559432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ef3a06b8-f853-44ec-b3eb-4ee5085153d1","savedPayload":{"position":{"x":23214.074151445064,"y":17950.663564559432},"targetPosition":{"x":23408.929867296563,"y":18063.163564559432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFail","project":"Superalgos","id":"f37a0678-ae59-41d3-9470-293b7daefafe","savedPayload":{"position":{"x":23321.578439574463,"y":17737.16359818687},"targetPosition":{"x":23350.695582148495,"y":17845.83025364439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e4216f8a-7a64-41a7-b775-63f7576a7124","savedPayload":{"position":{"x":23350.695582148495,"y":17845.83025364439},"targetPosition":{"x":23408.929867296563,"y":18063.163564559432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"50ac97fe-c078-4f3a-9bfe-0acb09dbf0fb","savedPayload":{"position":{"x":23408.929867296563,"y":18063.163564559432},"targetPosition":{"x":24188.352730702558,"y":18513.163564559432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"a"}}}],"id":"84e55a86-bf76-460b-8fb7-29f5f78beecc","savedPayload":{"position":{"x":24188.352730702558,"y":18513.163564559432},"targetPosition":{"x":24623.01935253264,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Position Base Asset","config":"{ \n \"codeName\": \"Position-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Left Entry Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.entryTargetRate","project":"Superalgos","id":"b63fa6ae-c199-4fbd-aee9-b10a510b41bc","savedPayload":{"position":{"x":23729.694148615177,"y":19125.127778141414},"targetPosition":{"x":23683.93627626915,"y":19022.35391415662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6d99be84-8b75-4fe9-8319-c04325146b51","savedPayload":{"position":{"x":23683.93627626915,"y":19022.35391415662},"targetPosition":{"x":23592.420531577092,"y":18816.806186187037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Right Entry Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.entryTargetRate","project":"Superalgos","id":"5bbfff67-3dd4-4644-ad29-d60664ef1caf","savedPayload":{"position":{"x":23471.47134860555,"y":19131.889580129842},"targetPosition":{"x":23511.7877429294,"y":19026.861782148906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"81720e58-5297-4e2c-839d-9d23bfc489b6","savedPayload":{"position":{"x":23511.7877429294,"y":19026.861782148906},"targetPosition":{"x":23592.420531577092,"y":18816.806186187037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Right Exit Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\n\nif (record.exitTargetRate > 0) {\n y = record.exitTargetRate\n} else {\n y = record.candleClose\n}","project":"Superalgos","id":"6b6fae4d-5b98-4bd2-b7cd-9a9248e2dd70","savedPayload":{"position":{"x":23284.098939622716,"y":18954.079803225122},"targetPosition":{"x":23386.872803607508,"y":18908.321930879094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"523c4374-e1dc-45cf-846a-d73348dd2e66","savedPayload":{"position":{"x":23386.872803607508,"y":18908.321930879094},"targetPosition":{"x":23592.420531577092,"y":18816.806186187037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"357f4575-2ebe-4c07-882a-7b610a931c74","savedPayload":{"position":{"x":23592.420531577092,"y":18816.806186187037},"targetPosition":{"x":23753.686108872476,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Profit Triangle","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.ROIInBaseAsset > 0 && record.exitTargetRate > 0","project":"Superalgos","id":"55a1c2fa-9c0a-4b74-86c5-177932270e66","savedPayload":{"position":{"x":23433.35213509526,"y":19088.149301927013},"targetPosition":{"x":23376.284353297036,"y":18641.78256002006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"876a4d26-a717-48d4-b8e3-55dec65886d4","savedPayload":{"position":{"x":23091.774400825314,"y":19495.62920136998},"targetPosition":{"x":23234.029377061175,"y":19068.70588069502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1f95b9ff-bf6d-4013-bc51-f170bf9d5955","savedPayload":{"position":{"x":23234.029377061175,"y":19068.70588069502},"targetPosition":{"x":23376.284353297036,"y":18641.78256002006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"e3cede5d-d077-4e87-9599-d7a4d9926928","savedPayload":{"position":{"x":22749.479570129748,"y":19287.62755984479},"targetPosition":{"x":23062.881961713392,"y":18964.705059932425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"3a88acec-5f8a-40a5-b1c6-74891ac0ca04","savedPayload":{"position":{"x":23062.881961713392,"y":18964.705059932425},"targetPosition":{"x":23376.284353297036,"y":18641.78256002006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"c9576a8c-9051-4208-ac93-639af4215008","savedPayload":{"position":{"x":22953.80773364684,"y":18796.745477677625},"targetPosition":{"x":23376.284353297036,"y":18641.78256002006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"6d99be84-8b75-4fe9-8319-c04325146b51"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"76ff2428-1dde-40d4-98b2-481294fee8ca","savedPayload":{"position":{"x":22928.410181437728,"y":18598.09358908528},"targetPosition":{"x":23376.284353297036,"y":18641.78256002006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"81720e58-5297-4e2c-839d-9d23bfc489b6"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"7fd76b32-5ea8-4b6d-84dc-7477d2ef9e76","savedPayload":{"position":{"x":22991.719601781602,"y":18408.094836996635},"targetPosition":{"x":23376.284353297036,"y":18641.78256002006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"523c4374-e1dc-45cf-846a-d73348dd2e66"}}}],"id":"db596620-de1b-4676-a2ff-856a21151e4a","savedPayload":{"position":{"x":23376.284353297036,"y":18641.78256002006},"targetPosition":{"x":23753.686108872476,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Loss Triangle","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.ROIInBaseAsset < 0 && record.exitTargetRate > 0","project":"Superalgos","id":"c95508e0-1349-48ac-86d2-bd51d9dcdd22","savedPayload":{"position":{"x":23088.103835532216,"y":18767.805694402516},"targetPosition":{"x":23304.302818232918,"y":18373.14381395397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"7689f3be-759c-4c73-8567-5fb91d52e807","savedPayload":{"position":{"x":22572.250968109543,"y":18896.689503202713},"targetPosition":{"x":22938.27689317123,"y":18634.916658578342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"aa8a0f60-346c-4b65-adb1-ccb6dbf334a0","savedPayload":{"position":{"x":22938.27689317123,"y":18634.916658578342},"targetPosition":{"x":23304.302818232918,"y":18373.14381395397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"ae7abd5f-8cc0-4dff-bd80-657d2c7baecd","savedPayload":{"position":{"x":22417.58893033126,"y":18527.216786932153},"targetPosition":{"x":22860.94587428209,"y":18450.180300443062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bf671737-50aa-4775-ac0a-bfe8ae0085dd","savedPayload":{"position":{"x":22860.94587428209,"y":18450.180300443062},"targetPosition":{"x":23304.302818232918,"y":18373.14381395397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"dc7404d4-1ecf-4e10-b5e9-a630a6b5fb70","savedPayload":{"position":{"x":22871.4271355585,"y":18250.185921368105},"targetPosition":{"x":23304.302818232918,"y":18373.14381395397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"6d99be84-8b75-4fe9-8319-c04325146b51"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"020882d8-63b2-4833-9025-308a020edc51","savedPayload":{"position":{"x":22967.64473466043,"y":18074.544860899376},"targetPosition":{"x":23304.302818232918,"y":18373.14381395397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"81720e58-5297-4e2c-839d-9d23bfc489b6"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"b42640dd-78b6-42b5-828d-642b49679383","savedPayload":{"position":{"x":23130.541596054332,"y":17958.044985158944},"targetPosition":{"x":23304.302818232918,"y":18373.14381395397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"523c4374-e1dc-45cf-846a-d73348dd2e66"}}}],"id":"fb8d24f6-13bd-4ddb-88fe-4532365269ad","savedPayload":{"position":{"x":23304.302818232918,"y":18373.14381395397},"targetPosition":{"x":23753.686108872476,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Empty Triangle","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.ROIInBaseAsset === 0 && record.exitTargetRate > 0","project":"Superalgos","id":"736bf055-d29d-47d2-95da-288b2ef70dc2","savedPayload":{"position":{"x":22983.859234293097,"y":18274.76639558625},"targetPosition":{"x":23403.970426216838,"y":18113.500818290868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"f6b0b439-1a64-4696-bc91-d00992848e78","savedPayload":{"position":{"x":22515.050919681213,"y":17972.709799754663},"targetPosition":{"x":22959.510672949025,"y":18043.105309022765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"eafe1322-11c1-4642-bb7e-27958b430c30","savedPayload":{"position":{"x":22959.510672949025,"y":18043.105309022765},"targetPosition":{"x":23403.970426216838,"y":18113.500818290868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"6a99919d-9e27-4e39-b31d-d2459ab74d15","savedPayload":{"position":{"x":23054.2547435612,"y":17830.30664231844},"targetPosition":{"x":23403.970426216838,"y":18113.500818290868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"6d99be84-8b75-4fe9-8319-c04325146b51"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"cb93795e-13a1-40c9-9b6a-23032b62fd28","savedPayload":{"position":{"x":23242.704848921454,"y":17693.389626367127},"targetPosition":{"x":23403.970426216838,"y":18113.500818290868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"81720e58-5297-4e2c-839d-9d23bfc489b6"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"86975ed4-51a7-4e1e-a607-07b4e62ae8a6","savedPayload":{"position":{"x":23474.36593548494,"y":17669.041065023055},"targetPosition":{"x":23403.970426216838,"y":18113.500818290868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"523c4374-e1dc-45cf-846a-d73348dd2e66"}}}],"id":"446947ee-8e4a-42fd-90f2-cca9449ecb39","savedPayload":{"position":{"x":23403.970426216838,"y":18113.500818290868},"targetPosition":{"x":23753.686108872476,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"983b97b5-a5e5-443e-a1be-84e39842ab3e","savedPayload":{"position":{"x":23753.686108872476,"y":18396.694994263296},"targetPosition":{"x":24188.352730702558,"y":18280.22642396716},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Position Base Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Entry Target Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.entryTargetSizeInBaseAsset","project":"Superalgos","id":"9926cbf2-bb1e-4d8d-b098-24837bb1b596","savedPayload":{"position":{"x":23222.055703842798,"y":17671.90220508309},"targetPosition":{"x":23385.05568702908,"y":17715.577918944142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c433e684-d24d-4cb5-8c95-3a9b972f151f","savedPayload":{"position":{"x":23385.05568702908,"y":17715.577918944142},"targetPosition":{"x":23711.05565340164,"y":17802.929346666242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Target Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitTargetSizeInBaseAsset","project":"Superalgos","id":"9376a192-36b4-4041-bd49-541fdbdb960d","savedPayload":{"position":{"x":23272.63029273577,"y":17549.804346666242},"targetPosition":{"x":23418.772079624392,"y":17634.179346666242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c1be93b9-ddad-452e-b78c-8029dc92b815","savedPayload":{"position":{"x":23418.772079624392,"y":17634.179346666242},"targetPosition":{"x":23711.05565340164,"y":17802.929346666242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Profit Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.profitLossInBaseAsset","project":"Superalgos","id":"cd008cc3-4360-44f8-9047-3e4c7f613f57","savedPayload":{"position":{"x":23353.08284542595,"y":17444.956538690552},"targetPosition":{"x":23472.40711475118,"y":17564.28080801578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"605108fe-71ba-48e6-abc7-28c50299d794","savedPayload":{"position":{"x":23472.40711475118,"y":17564.28080801578},"targetPosition":{"x":23711.05565340164,"y":17802.929346666242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ROI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ROIInBaseAsset + ' %'","project":"Superalgos","id":"34be9e39-1833-4165-ac84-6636dbc4ab54","savedPayload":{"position":{"x":23457.93065340164,"y":17364.50398600037},"targetPosition":{"x":23542.30565340164,"y":17510.645772888995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"719cb9e7-37dc-4044-8d04-724b270291f7","savedPayload":{"position":{"x":23542.30565340164,"y":17510.645772888995},"targetPosition":{"x":23711.05565340164,"y":17802.929346666242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFailInBaseAsset","project":"Superalgos","id":"4837f9de-4c07-48cf-b71d-f34f3300d7ef","savedPayload":{"position":{"x":23580.028511818487,"y":17313.9293971074},"targetPosition":{"x":23623.70422567954,"y":17476.92938029368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6d98bb0a-4b64-4ec9-a090-6695f1f47fa3","savedPayload":{"position":{"x":23623.70422567954,"y":17476.92938029368},"targetPosition":{"x":23711.05565340164,"y":17802.929346666242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a2f5b6fd-7a60-4d10-9f5f-505312edc756","savedPayload":{"position":{"x":23711.05565340164,"y":17802.929346666242},"targetPosition":{"x":24188.352730702558,"y":18280.22642396716},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"772aac92-a7ad-48f3-8c7c-83374c3c2327","savedPayload":{"position":{"x":24188.352730702558,"y":18280.22642396716},"targetPosition":{"x":24623.01935253264,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Position Quoted Asset","config":"{ \n \"codeName\": \"Position-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Left Entry Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.entryTargetRate","project":"Superalgos","id":"4eddb935-411d-4b99-a78a-ac6ee3783c89","savedPayload":{"position":{"x":23485.160640160142,"y":18580.87368809243},"targetPosition":{"x":23496.920092277753,"y":18468.9899748635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8dea8117-a3b1-4131-82a8-368f3b3b1e8a","savedPayload":{"position":{"x":23496.920092277753,"y":18468.9899748635},"targetPosition":{"x":23520.438996512974,"y":18245.22254840564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Right Entry Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.entryTargetRate","project":"Superalgos","id":"da42c707-8619-4fcb-8514-5b9179bc5f58","savedPayload":{"position":{"x":23258.152234521247,"y":18457.61818038496},"targetPosition":{"x":23345.581155185155,"y":18386.819636391854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7c3730d6-e003-42d7-b099-2b5994fc55ee","savedPayload":{"position":{"x":23345.581155185155,"y":18386.819636391854},"targetPosition":{"x":23520.438996512974,"y":18245.22254840564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Right Exit Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\n\nif (record.exitTargetRate > 0) {\n y = record.exitTargetRate\n} else {\n y = record.candleClose\n}","project":"Superalgos","id":"3f7d2c02-a366-4d29-86aa-b26843bc8449","savedPayload":{"position":{"x":23184.787856826184,"y":18209.944192052808},"targetPosition":{"x":23296.671570055114,"y":18221.70364417042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b5886ff0-fbcb-4c46-81e3-16aff8f777cb","savedPayload":{"position":{"x":23296.671570055114,"y":18221.70364417042},"targetPosition":{"x":23520.438996512974,"y":18245.22254840564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"65731f99-2b90-4f8e-bd52-f6fb5662c390","savedPayload":{"position":{"x":23520.438996512974,"y":18245.22254840564},"targetPosition":{"x":23870.154679168612,"y":17962.028372433215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Profit Triangle","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.ROIInQuotedAsset > 0 && record.exitTargetRate > 0","project":"Superalgos","id":"a96940a9-ee41-4c25-a2d3-75d7ec64db29","savedPayload":{"position":{"x":23247.01016635047,"y":18400.678381537567},"targetPosition":{"x":23420.771388529054,"y":17985.57955274254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"1f547068-deb9-4a50-8b49-63db984b6402","savedPayload":{"position":{"x":22747.45522138408,"y":18582.77745885173},"targetPosition":{"x":23084.11330495657,"y":18284.178505797136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"90c73d16-0770-4a9d-b1dd-9d63e7669cb8","savedPayload":{"position":{"x":23084.11330495657,"y":18284.178505797136},"targetPosition":{"x":23420.771388529054,"y":17985.57955274254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"3be88561-514d-453d-9c02-9d227ca4f86a","savedPayload":{"position":{"x":22555.02002318022,"y":18231.49533791427},"targetPosition":{"x":22987.895705854637,"y":18108.537445328406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"5c139f83-5e0f-4d58-8998-f6518c4a360e","savedPayload":{"position":{"x":22987.895705854637,"y":18108.537445328406},"targetPosition":{"x":23420.771388529054,"y":17985.57955274254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"499bea35-4811-46ea-b8ca-f445398fe3cd","savedPayload":{"position":{"x":22977.414444578226,"y":17908.54306625345},"targetPosition":{"x":23420.771388529054,"y":17985.57955274254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"8dea8117-a3b1-4131-82a8-368f3b3b1e8a"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"d36784be-c38f-4510-a114-fe43014f8b8b","savedPayload":{"position":{"x":23054.745463467367,"y":17723.80670811817},"targetPosition":{"x":23420.771388529054,"y":17985.57955274254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"7c3730d6-e003-42d7-b099-2b5994fc55ee"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"cc508daa-dae4-408f-bd8e-a4f1e8993f12","savedPayload":{"position":{"x":23204.572405828352,"y":17590.917672293996},"targetPosition":{"x":23420.771388529054,"y":17985.57955274254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"b5886ff0-fbcb-4c46-81e3-16aff8f777cb"}}}],"id":"b8abd0ac-6859-41bb-8c86-1f79a68e584e","savedPayload":{"position":{"x":23420.771388529054,"y":17985.57955274254},"targetPosition":{"x":23870.154679168612,"y":17962.028372433215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Loss Triangle","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.ROIInQuotedAsset < 0 && record.exitTargetRate > 0","project":"Superalgos","id":"7ff92680-ba99-44a3-a597-a22fcbb6672e","savedPayload":{"position":{"x":23108.18817207774,"y":17950.62852969988},"targetPosition":{"x":23492.752923593172,"y":17716.94080667645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"f488857d-3d1e-40f6-b8fc-1fb0a5cf35ea","savedPayload":{"position":{"x":22597.004579874556,"y":17804.318748546008},"targetPosition":{"x":23044.878751733864,"y":17760.62977761123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ac7304a7-c98d-4d16-8c43-704951d21679","savedPayload":{"position":{"x":23044.878751733864,"y":17760.62977761123},"targetPosition":{"x":23492.752923593172,"y":17716.94080667645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"3b793cb9-0812-49b9-8b5a-20c26633e4b8","savedPayload":{"position":{"x":22647.799684292782,"y":17407.01497136132},"targetPosition":{"x":23070.276303942977,"y":17561.977889018886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"5beac8f9-721c-4279-b480-43a40f63b2cc","savedPayload":{"position":{"x":23070.276303942977,"y":17561.977889018886},"targetPosition":{"x":23492.752923593172,"y":17716.94080667645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"a45b6071-b30a-470a-ad4d-daf55c21bc4a","savedPayload":{"position":{"x":23179.35053200953,"y":17394.018306764086},"targetPosition":{"x":23492.752923593172,"y":17716.94080667645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"8dea8117-a3b1-4131-82a8-368f3b3b1e8a"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"aa1ac550-c9f8-44b7-8b3b-15ad98f0f083","savedPayload":{"position":{"x":23350.49794735731,"y":17290.017486001492},"targetPosition":{"x":23492.752923593172,"y":17716.94080667645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"7c3730d6-e003-42d7-b099-2b5994fc55ee"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"ce4acda0-f350-465b-a858-adaa0d47fb73","savedPayload":{"position":{"x":23549.820705391397,"y":17270.5740647695},"targetPosition":{"x":23492.752923593172,"y":17716.94080667645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"b5886ff0-fbcb-4c46-81e3-16aff8f777cb"}}}],"id":"a0e77f5d-48aa-4c50-8e6a-1ec1211d142d","savedPayload":{"position":{"x":23492.752923593172,"y":17716.94080667645},"targetPosition":{"x":23870.154679168612,"y":17962.028372433215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Empty Triangle","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.ROIInQuotedAsset === 0 && record.exitTargetRate > 0","project":"Superalgos","id":"e1911f58-4f04-46cc-93b9-08277179b7f3","savedPayload":{"position":{"x":23264.429348605416,"y":17471.52167124137},"targetPosition":{"x":23708.88910187323,"y":17541.917180509474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"17608ac8-58c7-4792-996f-66cc647abb2f","savedPayload":{"position":{"x":23009.45773656195,"y":16975.528828564617},"targetPosition":{"x":23359.17341921759,"y":17258.723004537045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"aebd422c-a229-4476-a034-8882d43b9fec","savedPayload":{"position":{"x":23359.17341921759,"y":17258.723004537045},"targetPosition":{"x":23708.88910187323,"y":17541.917180509474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"b8014bf2-1d52-4ae0-a92c-c9dc1039428b","savedPayload":{"position":{"x":23547.623524577844,"y":17121.805988585733},"targetPosition":{"x":23708.88910187323,"y":17541.917180509474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"8dea8117-a3b1-4131-82a8-368f3b3b1e8a"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"10535483-4b25-4273-894d-80113510de32","savedPayload":{"position":{"x":23779.28461114133,"y":17097.45742724166},"targetPosition":{"x":23708.88910187323,"y":17541.917180509474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"7c3730d6-e003-42d7-b099-2b5994fc55ee"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"d6c96f4a-cea9-4675-99de-4e46b0e76d7d","savedPayload":{"position":{"x":23992.083277845657,"y":17192.201497853835},"targetPosition":{"x":23708.88910187323,"y":17541.917180509474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"b5886ff0-fbcb-4c46-81e3-16aff8f777cb"}}}],"id":"e1d63d02-d8ef-449d-9b5f-c74d288f0e0a","savedPayload":{"position":{"x":23708.88910187323,"y":17541.917180509474},"targetPosition":{"x":23870.154679168612,"y":17962.028372433215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"f730ea54-7b54-48fa-a0d6-7663f504c8f0","savedPayload":{"position":{"x":23870.154679168612,"y":17962.028372433215},"targetPosition":{"x":24304.821300998694,"y":18078.49694272935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Position Quoted Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Entry Target Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.entryTargetSizeInQuotedAsset","project":"Superalgos","id":"cdc9b0a9-d2d2-4e5d-9bec-a3910b68a8ea","savedPayload":{"position":{"x":23772.145637578804,"y":17068.52420200854},"targetPosition":{"x":23891.469906904033,"y":17187.848471333768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d6d851c4-1b78-4310-a733-f71e50481be0","savedPayload":{"position":{"x":23891.469906904033,"y":17187.848471333768},"targetPosition":{"x":24130.118445554494,"y":17426.49700998423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Target Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitTargetSizeInQuotedAsset","project":"Superalgos","id":"2aedab1a-3c72-46c9-8534-80e8cbef2bd3","savedPayload":{"position":{"x":23876.993445554494,"y":16988.071649318357},"targetPosition":{"x":23961.368445554494,"y":17134.21343620698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"92b37051-805f-4f1f-a271-f226d775a27b","savedPayload":{"position":{"x":23961.368445554494,"y":17134.21343620698},"targetPosition":{"x":24130.118445554494,"y":17426.49700998423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Profit Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.profitLossInQuotedAsset","project":"Superalgos","id":"b880886c-47d0-4e20-9a5f-a760dd57a3fe","savedPayload":{"position":{"x":23999.09130397134,"y":16937.497060425387},"targetPosition":{"x":24042.767017832393,"y":17100.497043611667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c6c9f3b5-a2be-46e8-8ecb-39fb7a68b5fd","savedPayload":{"position":{"x":24042.767017832393,"y":17100.497043611667},"targetPosition":{"x":24130.118445554494,"y":17426.49700998423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ROI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ROIInQuotedAsset + ' %'","project":"Superalgos","id":"9dae12d7-6a93-4f2c-b93d-f5a2ec11311c","savedPayload":{"position":{"x":24130.118445554494,"y":16920.24700998423},"targetPosition":{"x":24130.118445554494,"y":17088.99700998423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"47d85b7f-fe51-4a59-857d-8ca05a4282ad","savedPayload":{"position":{"x":24130.118445554494,"y":17088.99700998423},"targetPosition":{"x":24130.118445554494,"y":17426.49700998423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFailInQuotedAsset","project":"Superalgos","id":"747fad41-eddd-4cbc-a9f5-73f1a1c27e9b","savedPayload":{"position":{"x":24261.145587137646,"y":16937.497060425387},"targetPosition":{"x":24217.469873276594,"y":17100.497043611667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4aa2191e-71c9-4e3c-a2a3-cf52ac8faab1","savedPayload":{"position":{"x":24217.469873276594,"y":17100.497043611667},"targetPosition":{"x":24130.118445554494,"y":17426.49700998423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6d8187b5-e2d6-4795-82db-6ab7f7b9b625","savedPayload":{"position":{"x":24130.118445554494,"y":17426.49700998423},"targetPosition":{"x":24304.821300998694,"y":18078.49694272935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e6a8f8dc-c0a2-4b05-9c65-9f5eba30a4d2","savedPayload":{"position":{"x":24304.821300998694,"y":18078.49694272935},"targetPosition":{"x":24623.01935253264,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Stop Loss","config":"{ \n \"codeName\": \"Module-Name\", \n \"icon\": \"histogram|band|moving-average|oscillator|trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.stopLoss","project":"Superalgos","id":"211e4e03-cb47-46b9-9623-cb120b058a24","savedPayload":{"position":{"x":23663.26018878705,"y":17924.281426129244},"targetPosition":{"x":23703.5765831109,"y":17819.253628148308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a1a8df2b-3b4a-4c9b-ad0a-a88ae6ed2598","savedPayload":{"position":{"x":23703.5765831109,"y":17819.253628148308},"targetPosition":{"x":23743.892977434745,"y":17714.225830167372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.stopLoss","project":"Superalgos","id":"2388eb52-9c73-4c26-a4ff-29cee1c8205e","savedPayload":{"position":{"x":23602.29588944853,"y":17539.367988839556},"targetPosition":{"x":23673.094433441638,"y":17626.796909503464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cc722c95-e58b-4a61-ba69-291b571d7f55","savedPayload":{"position":{"x":23673.094433441638,"y":17626.796909503464},"targetPosition":{"x":23743.892977434745,"y":17714.225830167372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"56b7e86f-4a24-4072-88b8-d3e49c5859d1","savedPayload":{"position":{"x":23743.892977434745,"y":17714.225830167372},"targetPosition":{"x":24188.352730702558,"y":17643.83032089927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"New Polygon","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.stopLoss > 0","project":"Superalgos","id":"b4183eac-e560-4423-b036-2376bcf254a3","savedPayload":{"position":{"x":23386.446858933028,"y":17643.83032089927},"targetPosition":{"x":23787.399794817793,"y":17439.534596016474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.5,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.8,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"5ed36c9e-d6df-4d40-9f4e-862836994ded","savedPayload":{"position":{"x":22898.480288282168,"y":17298.74357748027},"targetPosition":{"x":23342.94004154998,"y":17369.13908674837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c5ca78c3-f41e-4889-b907-c864550755f1","savedPayload":{"position":{"x":23342.94004154998,"y":17369.13908674837},"targetPosition":{"x":23787.399794817793,"y":17439.534596016474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"238cea21-116b-452e-863e-0a4a6c3637e4","savedPayload":{"position":{"x":23469.201743283847,"y":17121.33654448253},"targetPosition":{"x":23787.399794817793,"y":17439.534596016474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"a1a8df2b-3b4a-4c9b-ad0a-a88ae6ed2598"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"41525119-3df4-4296-b157-b906fa87403e","savedPayload":{"position":{"x":23717.00428554969,"y":16995.07484274866},"targetPosition":{"x":23787.399794817793,"y":17439.534596016474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"cc722c95-e58b-4a61-ba69-291b571d7f55"}}}],"id":"bc5f5248-feb8-4510-bec1-756d9f4a018b","savedPayload":{"position":{"x":23787.399794817793,"y":17439.534596016474},"targetPosition":{"x":24188.352730702558,"y":17643.83032089927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"phase\", \n\"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"(record.positions !== record.previous.positions && record.stopLossPhase >= 0 ) || \n(record.stopLossPhase !== record.previous.stopLossPhase && record.stopLossPhase >= 0 ) ","project":"Superalgos","id":"fef28c3a-1b41-463a-a4b1-24eff6bd4ef8","savedPayload":{"position":{"x":23795.356128032043,"y":17120.333602136125},"targetPosition":{"x":23984.057005819763,"y":17242.877385014504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Begin","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 10\n }","project":"Superalgos","id":"90388890-9571-4323-9ece-c8ec15bfaa56","savedPayload":{"position":{"x":23995.832595974425,"y":17018.185739694727},"targetPosition":{"x":23984.057005819763,"y":17242.877385014504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"a1a8df2b-3b4a-4c9b-ad0a-a88ae6ed2598"}}},"id":"0eaba59a-872e-449e-8c8f-292022b48949","savedPayload":{"position":{"x":23984.057005819763,"y":17242.877385014504},"targetPosition":{"x":24188.352730702558,"y":17643.83032089927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"New Text","config":"{ \n\"codeName\": \"\", \n\"fontSize\": 10\n}","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"(record.positions !== record.previous.positions && record.stopLossPhase >= 0 ) || \n(record.stopLossPhase !== record.previous.stopLossPhase && record.stopLossPhase >= 0 ) ","project":"Superalgos","id":"7823612d-109d-4529-ac23-378f535d886b","savedPayload":{"position":{"x":24099.649214203688,"y":17040.271541864484},"targetPosition":{"x":24258.74823997066,"y":17199.370567631457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Begin","config":"{ \n\"offsetX\": -3,\n \"offsetY\": -15\n }","project":"Superalgos","id":"a2fb3fdc-4482-48dc-b065-ee948d9e5fa8","savedPayload":{"position":{"x":24223.550485336607,"y":16977.140690997552},"targetPosition":{"x":24258.74823997066,"y":17199.370567631457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"a1a8df2b-3b4a-4c9b-ad0a-a88ae6ed2598"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"record.stopLossPhase","project":"Superalgos","id":"8b6ad55e-cc69-4fc9-b53d-5f145563135a","savedPayload":{"position":{"x":24360.896102412058,"y":16998.894099689074},"targetPosition":{"x":24258.74823997066,"y":17199.370567631457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"9e7e1896-c37f-4ac7-98df-e8e90a510ddd","savedPayload":{"position":{"x":24459.224707913043,"y":17097.22270519006},"targetPosition":{"x":24258.74823997066,"y":17199.370567631457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f587babf-18e2-4b52-98c7-c445470d7d09","savedPayload":{"position":{"x":24258.74823997066,"y":17199.370567631457},"targetPosition":{"x":24188.352730702558,"y":17643.83032089927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2a58a495-88bb-48f3-a741-056ef6479974","savedPayload":{"position":{"x":24188.352730702558,"y":17643.83032089927},"targetPosition":{"x":24506.550782236503,"y":17962.028372433215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Stop Loss Panel","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Stop Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.stopLoss","project":"Superalgos","id":"77069ac3-56e7-4807-953d-1fae814ec196","savedPayload":{"position":{"x":24339.825176560207,"y":17177.646067947495},"targetPosition":{"x":24481.42226454642,"y":17352.503909275314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"caf4afc1-a3a4-46fc-a02b-6e694d8ee3c0","savedPayload":{"position":{"x":24481.42226454642,"y":17352.503909275314},"targetPosition":{"x":24623.019352532636,"y":17527.361750603133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Stop Loss Phase","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.stopLossPhase","project":"Superalgos","id":"a311e3af-1cdd-4f11-b6bd-48802c563cee","savedPayload":{"position":{"x":24605.355967300642,"y":17190.324282623467},"targetPosition":{"x":24611.243762377973,"y":17302.670105283356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d0b89dad-950b-4793-98a1-3252013bdff2","savedPayload":{"position":{"x":24611.243762377973,"y":17302.670105283356},"targetPosition":{"x":24623.019352532636,"y":17527.361750603133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Initial Value","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.initialValue","project":"Superalgos","id":"3c5a56b6-98fe-474f-8738-e2170cb2ee1d","savedPayload":{"position":{"x":24806.835026850207,"y":17244.310433921553},"targetPosition":{"x":24745.563135411016,"y":17338.660872815413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6b85b53b-bbcb-4aa9-8d3d-fc8addd8ba79","savedPayload":{"position":{"x":24745.563135411016,"y":17338.660872815413},"targetPosition":{"x":24623.019352532636,"y":17527.361750603133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Final Value","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.finalValue","project":"Superalgos","id":"59e1d9a7-0935-4b03-9aa8-a3a704124ec0","savedPayload":{"position":{"x":24938.10274647544,"y":17406.412567631593},"targetPosition":{"x":24833.074948494504,"y":17446.72896195544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3162b8e0-34c6-46a2-ab19-be6725482744","savedPayload":{"position":{"x":24833.074948494504,"y":17446.72896195544},"targetPosition":{"x":24623.019352532636,"y":17527.361750603133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"79a09684-6ac4-4bf1-918a-b04b15ea83e4","savedPayload":{"position":{"x":24623.019352532636,"y":17527.361750603133},"targetPosition":{"x":24506.550782236503,"y":17962.028372433215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"02860a99-0b00-4e7e-90f6-7697cd980e96","savedPayload":{"position":{"x":24506.550782236503,"y":17962.028372433215},"targetPosition":{"x":24623.01935253264,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Take Profit","config":"{ \n \"codeName\": \"Module-Name\", \n \"icon\": \"histogram|band|moving-average|oscillator|trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.takeProfit","project":"Superalgos","id":"85920004-78d6-4206-ba94-815aef9849a9","savedPayload":{"position":{"x":24028.05031928108,"y":17507.693261293964},"targetPosition":{"x":24115.479239944987,"y":17436.894717300856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a323c02a-2c56-43cb-be8d-dba42090e125","savedPayload":{"position":{"x":24115.479239944987,"y":17436.894717300856},"targetPosition":{"x":24202.908160608895,"y":17366.09617330775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.takeProfit","project":"Superalgos","id":"cb2e4f57-0177-4057-9e2e-262b10ebf701","savedPayload":{"position":{"x":24167.710405974845,"y":17143.86629667384},"targetPosition":{"x":24185.30928329187,"y":17254.981234990795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a43e6f85-8d3c-4714-b992-0219b1761a99","savedPayload":{"position":{"x":24185.30928329187,"y":17254.981234990795},"targetPosition":{"x":24202.908160608895,"y":17366.09617330775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e019b9ed-c5e9-4a9c-aeab-8df6ebd22a73","savedPayload":{"position":{"x":24202.908160608895,"y":17366.09617330775},"targetPosition":{"x":24623.019352532636,"y":17527.361750603133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"New Polygon","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.takeProfit > 0","project":"Superalgos","id":"5b61c8a2-7d98-4d74-8e53-451c110754ff","savedPayload":{"position":{"x":26569.112002446196,"y":16676.11048973976},"targetPosition":{"x":26146.905331465543,"y":16780.975770196957},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.5,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.8,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"67ef6e88-2ca4-4ea5-b3ca-1f64731989ae","savedPayload":{"position":{"x":26084.06092851102,"y":15571.019366885823},"targetPosition":{"x":26115.567478095134,"y":16175.902612099606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1271f6ef-ba8f-497e-8ae2-dc64d22e9090","savedPayload":{"position":{"x":26115.567478095134,"y":16175.902612099606},"targetPosition":{"x":26146.905331465543,"y":16780.975770196957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"667b1490-05b8-4530-a01a-3cc629bade1e","savedPayload":{"position":{"x":26476.857455321606,"y":16272.850166000817},"targetPosition":{"x":26146.905331465543,"y":16780.975770196957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"a323c02a-2c56-43cb-be8d-dba42090e125"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"8d826b89-bc38-49e1-a1ac-a16c18335673","savedPayload":{"position":{"x":26712.62787798267,"y":16563.643719677715},"targetPosition":{"x":26146.905331465543,"y":16780.975770196957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"a43e6f85-8d3c-4714-b992-0219b1761a99"}}}],"id":"65affa01-597b-44f2-86f8-8f8ca5813e75","savedPayload":{"position":{"x":24377.931786775873,"y":17149.959995027693},"targetPosition":{"x":24623.019352532636,"y":17527.361750603133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"phase\", \n\"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"(record.positions !== record.previous.positions && record.takeProfitPhase >= 0 ) || \n(record.takeProfitPhase !== record.previous.takeProfitPhase && record.takeProfitPhase >= 0 ) ","project":"Superalgos","id":"e35f08b9-d8aa-4efe-9cb9-2a1c85c3f6d0","savedPayload":{"position":{"x":24544.422670400563,"y":16877.501992021193},"targetPosition":{"x":24646.57053284196,"y":17077.978459963575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Begin","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 10\n }","project":"Superalgos","id":"af6dfc53-f1b4-4c04-81a5-69f3162f7917","savedPayload":{"position":{"x":24769.11431572034,"y":16889.277582175855},"targetPosition":{"x":24646.57053284196,"y":17077.978459963575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"a323c02a-2c56-43cb-be8d-dba42090e125"}}},"id":"e41d92c0-264d-4c70-9347-50dddff21958","savedPayload":{"position":{"x":24646.57053284196,"y":17077.978459963575},"targetPosition":{"x":24623.019352532636,"y":17527.361750603133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"New Text","config":"{ \n\"codeName\": \"\", \n\"fontSize\": 10\n}","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"(record.positions !== record.previous.positions && record.takeProfitPhase >= 0 ) || \n(record.takeProfitPhase !== record.previous.takeProfitPhase && record.takeProfitPhase >= 0 ) ","project":"Superalgos","id":"8d2d519d-b44c-450c-9d65-10f3f9516b00","savedPayload":{"position":{"x":24847.979243356996,"y":16960.312757032454},"targetPosition":{"x":24906.213528505064,"y":17177.646067947495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Begin","config":"{ \n\"offsetX\": -3,\n \"offsetY\": -15\n }","project":"Superalgos","id":"49031ec6-c757-4cee-847a-dd5c10a985f9","savedPayload":{"position":{"x":24986.84631715276,"y":16967.590471985626},"targetPosition":{"x":24906.213528505064,"y":17177.646067947495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"a323c02a-2c56-43cb-be8d-dba42090e125"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"record.takeProfitPhase","project":"Superalgos","id":"da2651cd-bd63-4c56-9a81-2d2bef68345f","savedPayload":{"position":{"x":25094.914406292784,"y":17055.102285069115},"targetPosition":{"x":24906.213528505064,"y":17177.646067947495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"631cd941-a9fd-4608-935f-85d7a4899bb5","savedPayload":{"position":{"x":25130.90517382484,"y":17189.421658102157},"targetPosition":{"x":24906.213528505064,"y":17177.646067947495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"33c7f548-e248-4361-b9a3-6f8331d7b49e","savedPayload":{"position":{"x":24906.213528505064,"y":17177.646067947495},"targetPosition":{"x":24623.019352532636,"y":17527.361750603133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8e2246e8-c88c-486a-8828-3c5a09907251","savedPayload":{"position":{"x":24623.019352532636,"y":17527.361750603133},"targetPosition":{"x":24739.487922828772,"y":17962.028372433215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Take Profit Panel","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Take Profit","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.takeProfit","project":"Superalgos","id":"db34c26e-ffd4-448e-9d3a-e0f51253d01e","savedPayload":{"position":{"x":24987.29046509461,"y":17199.37056763146},"targetPosition":{"x":25022.488219728664,"y":17421.600444265365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"16224c64-838e-41bb-9b48-f3be443c1f3c","savedPayload":{"position":{"x":25022.488219728664,"y":17421.600444265365},"targetPosition":{"x":25057.685974362717,"y":17643.83032089927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Take Profit Phase","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.takeProfitPhase","project":"Superalgos","id":"09913fac-add7-455b-bed3-18beb62104b6","savedPayload":{"position":{"x":25210.907768024816,"y":17343.115618985696},"targetPosition":{"x":25159.833836804115,"y":17443.353852956887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d5537a43-c082-4b60-b6d6-df54fa885421","savedPayload":{"position":{"x":25159.833836804115,"y":17443.353852956887},"targetPosition":{"x":25057.685974362717,"y":17643.83032089927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Initial Value","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.initialValue","project":"Superalgos","id":"ef887ec1-5db5-4223-8d99-fe22acdfcb26","savedPayload":{"position":{"x":25358.40067627629,"y":17490.60852723717},"targetPosition":{"x":25258.1624423051,"y":17541.68245845787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"17173884-98db-4047-a6b8-6f00d9c4f327","savedPayload":{"position":{"x":25258.1624423051,"y":17541.68245845787},"targetPosition":{"x":25057.685974362717,"y":17643.83032089927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Final Value","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.finalValue","project":"Superalgos","id":"7df5247e-a10e-4fb1-b1ad-ad8dc17ef26f","savedPayload":{"position":{"x":25391.030789313576,"y":17696.626952850347},"targetPosition":{"x":25279.915850996622,"y":17679.028075533322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4ca34287-3f82-472d-b047-d995054c05e6","savedPayload":{"position":{"x":25279.915850996622,"y":17679.028075533322},"targetPosition":{"x":25057.685974362717,"y":17643.83032089927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3e9b0881-9f46-4a9e-9e3d-28f21b3834ae","savedPayload":{"position":{"x":25057.685974362717,"y":17643.83032089927},"targetPosition":{"x":24739.487922828772,"y":17962.028372433215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e33f2181-7f3a-4baa-a66d-8deee3e6967d","savedPayload":{"position":{"x":24739.487922828772,"y":17962.028372433215},"targetPosition":{"x":24623.01935253264,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8db1bac8-4d86-4f09-902c-2bc5871cb3b2","savedPayload":{"position":{"x":24623.01935253264,"y":18396.694994263296},"targetPosition":{"x":24941.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Trading Stages","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Trigger Stage Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate * 0.90","project":"Superalgos","id":"9e9a7d87-a5e6-413e-8f1c-69104127fc7e","savedPayload":{"position":{"x":23953.634761775054,"y":18983.6418680964},"targetPosition":{"x":23958.405529617292,"y":18783.39297649099},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"86f766f6-472f-45cd-9027-6fba27704c23","savedPayload":{"position":{"x":23958.405529617292,"y":18783.39297649099},"targetPosition":{"x":23967.684520128718,"y":18383.664611408898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"2d1c8023-7938-42b0-af85-8d21731eb693","savedPayload":{"position":{"x":23767.94253246708,"y":18949.947089032758},"targetPosition":{"x":23834.43055042814,"y":18761.087884904173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"17d214eb-8108-4dbb-9c4e-b179ca63827b","savedPayload":{"position":{"x":23834.43055042814,"y":18761.087884904173},"targetPosition":{"x":23967.684520128718,"y":18383.664611408898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.beginRate * 0.90","project":"Superalgos","id":"2407b43a-ad71-4c0d-b868-c1a28c168839","savedPayload":{"position":{"x":23602.20663344135,"y":18860.257501555803},"targetPosition":{"x":23723.823366611363,"y":18701.39680428531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1ce6aefe-3042-4c58-a618-980cabb11e8a","savedPayload":{"position":{"x":23723.823366611363,"y":18701.39680428531},"targetPosition":{"x":23967.684520128718,"y":18383.664611408898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"2bea20eb-6074-4599-a23a-7199c82e8d61","savedPayload":{"position":{"x":23471.234673007188,"y":18721.05727518828},"targetPosition":{"x":23636.01044652075,"y":18607.867618782395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"00c3c26a-3cda-4b5f-a0cf-524df1ae92ca","savedPayload":{"position":{"x":23636.01044652075,"y":18607.867618782395},"targetPosition":{"x":23967.684520128718,"y":18383.664611408898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"836bc32d-8d46-460f-ba93-67e4b6fd141e","savedPayload":{"position":{"x":23967.684520128718,"y":18383.664611408898},"targetPosition":{"x":24158.210377696632,"y":18032.396906137597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"0fdc5052-c4dd-4760-a76a-1a1b83338cf3","savedPayload":{"position":{"x":24024.31893563412,"y":17630.485376124627},"targetPosition":{"x":23805.45539209999,"y":17340.196301060725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"b0a73857-16f0-417c-9d6d-ec58dd356ad7","savedPayload":{"position":{"x":23377.789652508112,"y":17867.812847777677},"targetPosition":{"x":23573.694825711726,"y":17626.112833393323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"5d3ddc37-fc97-42ba-aa68-8d709eb5ed94","savedPayload":{"position":{"x":23573.694825711726,"y":17626.112833393323},"targetPosition":{"x":23805.45539209999,"y":17340.196301060725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"56a7597f-5e80-4c94-8963-49c9c4d5cc86","savedPayload":{"position":{"x":23461.659798144865,"y":17208.384482990754},"targetPosition":{"x":23805.45539209999,"y":17340.196301060725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"86f766f6-472f-45cd-9027-6fba27704c23"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"dec128bf-c8f3-423e-b36b-dd05e0afea6c","savedPayload":{"position":{"x":23841.39246989028,"y":16965.754606139933},"targetPosition":{"x":23805.45539209999,"y":17340.196301060725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"1ce6aefe-3042-4c58-a618-980cabb11e8a"}}}],"id":"f754e13f-0c3f-4dca-af60-cd5695eb2ee3","savedPayload":{"position":{"x":23847.21084764623,"y":18284.078003063783},"targetPosition":{"x":24158.210377696632,"y":18032.396906137597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"49f1ba9a-94a9-46e7-bf20-7daa417e91de","savedPayload":{"position":{"x":23910.21343606553,"y":17444.060066378373},"targetPosition":{"x":23789.57396245202,"y":17098.694237658383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"441387e5-7a07-444c-9ca0-94effdc40d40","savedPayload":{"position":{"x":23192.813045226125,"y":17422.152888421446},"targetPosition":{"x":23465.667922806253,"y":17274.236201487205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"adb620d5-64bc-4d95-9b32-bcc3d5539f9f","savedPayload":{"position":{"x":23465.667922806253,"y":17274.236201487205},"targetPosition":{"x":23789.57396245202,"y":17098.694237658383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"e29f5c9c-a5c0-405e-8907-91f6e0919c4a","savedPayload":{"position":{"x":23522.24863433687,"y":16845.215356289587},"targetPosition":{"x":23789.57396245202,"y":17098.694237658383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"86f766f6-472f-45cd-9027-6fba27704c23"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"7ee41d0d-6010-440d-a275-d1a7d1cfb865","savedPayload":{"position":{"x":23965.88121273497,"y":16766.91825748183},"targetPosition":{"x":23789.57396245202,"y":17098.694237658383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"1ce6aefe-3042-4c58-a618-980cabb11e8a"}}}],"id":"fa37d5ed-1276-4905-bdd4-6ef584ae52a1","savedPayload":{"position":{"x":23774.320507376346,"y":18145.827472651818},"targetPosition":{"x":24158.210377696632,"y":18032.396906137597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"871342da-c385-4e92-a3ab-665908cc53be","savedPayload":{"position":{"x":24011.056589387055,"y":13341.960424578621},"targetPosition":{"x":24239.942113069115,"y":13527.414350339212},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"f606cf66-3788-4436-9a42-88c89376b8e5","savedPayload":{"position":{"x":24239.942113069115,"y":13527.414350339212},"targetPosition":{"x":24507.415605771694,"y":13744.138820931614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"8e5dc941-9a42-4cff-bb90-8cf1b0148f0d","savedPayload":{"position":{"x":24471.58630824296,"y":13401.726595908138},"targetPosition":{"x":24507.415605771694,"y":13744.138820931614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"86f766f6-472f-45cd-9027-6fba27704c23"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"634bb0c3-d4fd-4788-b7c0-603ddb87eff1","savedPayload":{"position":{"x":24724.18927722066,"y":13476.370713897168},"targetPosition":{"x":24507.415605771694,"y":13744.138820931614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"17d214eb-8108-4dbb-9c4e-b179ca63827b"}}}],"id":"a6f1f8e0-bad9-4891-a24f-fbfdb28eb253","savedPayload":{"position":{"x":23759.9992238542,"y":17990.616409282826},"targetPosition":{"x":24158.210377696632,"y":18032.396906137597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"593e56ad-7913-48fb-8b3e-66fa7b871f7c","savedPayload":{"position":{"x":24131.74066940367,"y":13303.668566201772},"targetPosition":{"x":24339.485583669917,"y":13511.591075335185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"987e0d90-745d-485d-a7ac-2bd46c14779f","savedPayload":{"position":{"x":24339.485583669917,"y":13511.591075335185},"targetPosition":{"x":24568.922955736663,"y":13741.248579688607},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"c071b203-e856-43ef-a406-012d958e6539","savedPayload":{"position":{"x":24568.9211661251,"y":13415.56583612577},"targetPosition":{"x":24568.922955736663,"y":13741.248579688607},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"1ce6aefe-3042-4c58-a618-980cabb11e8a"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"cbea980e-afd0-4cb2-9711-236e5b89c38b","savedPayload":{"position":{"x":24799.486057526436,"y":13510.644296819013},"targetPosition":{"x":24568.922955736663,"y":13741.248579688607},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"00c3c26a-3cda-4b5f-a0cf-524df1ae92ca"}}}],"id":"4024ff01-ba6d-40ff-8d9c-20f0f7ca514d","savedPayload":{"position":{"x":23806.295532315955,"y":17841.523107494806},"targetPosition":{"x":24158.210377696632,"y":18032.396906137597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"trigger-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"15631da9-a3ad-4666-9826-4ea10440e858","savedPayload":{"position":{"x":23779.517425616163,"y":17565.66729854801},"targetPosition":{"x":23906.169735536485,"y":17721.488854982836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"86f766f6-472f-45cd-9027-6fba27704c23"}}},"id":"c99c050c-7865-482b-b059-bc1b70f2b8d3","savedPayload":{"position":{"x":23906.169735536485,"y":17721.488854982836},"targetPosition":{"x":24158.210377696632,"y":18032.396906137597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"trigger-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"89a673eb-872f-4265-af9c-1d2d27fc2eda","savedPayload":{"position":{"x":23985.707335767092,"y":17456.818597680136},"targetPosition":{"x":24042.922979998802,"y":17649.29875956626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"1ce6aefe-3042-4c58-a618-980cabb11e8a"}}},"id":"aac1eb7b-d5d0-4b49-be08-1c4a9b20a5c1","savedPayload":{"position":{"x":24042.922979998802,"y":17649.29875956626},"targetPosition":{"x":24158.210377696632,"y":18032.396906137597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"41a364f9-10c2-4538-b654-6b530ddcacb3","savedPayload":{"position":{"x":24158.210377696632,"y":18032.396906137597},"targetPosition":{"x":24612.97355199314,"y":18080.07393575662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Trigger Stage Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"a7377191-cc9a-4be3-85b8-1f00f577eadd","savedPayload":{"position":{"x":24136.141488558333,"y":17603.948025093236},"targetPosition":{"x":24260.701196638118,"y":17630.585317927158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"902c1b42-f356-4fd2-9afd-f22285553a1e","savedPayload":{"position":{"x":24260.701196638118,"y":17630.585317927158},"targetPosition":{"x":24427.44088328152,"y":17662.33720700488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"5838a230-e2f9-4d06-832d-410c37f5b782","savedPayload":{"position":{"x":24221.22124511846,"y":17437.466547787037},"targetPosition":{"x":24307.599691353065,"y":17529.79164760578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3c7d5cd3-f431-42d9-ba4d-626ce852b4fa","savedPayload":{"position":{"x":24307.599691353065,"y":17529.79164760578},"targetPosition":{"x":24427.44088328152,"y":17662.33720700488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"109d15f9-caec-4035-9c1f-6cd40653577f","savedPayload":{"position":{"x":24393.630197051298,"y":17357.3819697611},"targetPosition":{"x":24409.249062335773,"y":17482.727396056966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"93feedc1-368c-425a-ae0f-c76477694de5","savedPayload":{"position":{"x":24409.249062335773,"y":17482.727396056966},"targetPosition":{"x":24427.44088328152,"y":17662.33720700488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"f0123565-c546-4459-b908-5d51f18d3419","savedPayload":{"position":{"x":24587.40475662828,"y":17401.744207783537},"targetPosition":{"x":24523.24547406063,"y":17513.078689135087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b0d95258-c517-4935-8b23-d5ec100f663a","savedPayload":{"position":{"x":24523.24547406063,"y":17513.078689135087},"targetPosition":{"x":24427.44088328152,"y":17662.33720700488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"db3c6e78-48c1-4688-99d9-413494f16877","savedPayload":{"position":{"x":24427.44088328152,"y":17662.33720700488},"targetPosition":{"x":24612.97355199314,"y":18080.07393575662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7e2cc45c-6a00-4b5c-9b28-292a29131fc2","savedPayload":{"position":{"x":24581.688913748076,"y":18057.575831546175},"targetPosition":{"x":24936.211964982052,"y":18315.02517647312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Open Stage Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate * 1.05","project":"Superalgos","id":"bc0d7d35-d29a-402c-8994-fcdc39fb8f15","savedPayload":{"position":{"x":23748.168759963883,"y":18277.93435146567},"targetPosition":{"x":23869.924226643827,"y":18119.01897140589},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d83356e9-0134-4e28-a55b-8417500c8560","savedPayload":{"position":{"x":23869.924226643827,"y":18119.01897140589},"targetPosition":{"x":24112.330856768156,"y":17801.07553114317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"1a7c80e4-5cce-49be-8e20-d2f0b31f0a34","savedPayload":{"position":{"x":23617.703285161606,"y":18141.538322202814},"targetPosition":{"x":23782.729973895257,"y":18028.122193249652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1fcf9144-c53e-41ae-871d-c3b94b0f3685","savedPayload":{"position":{"x":23782.729973895257,"y":18028.122193249652},"targetPosition":{"x":24112.330856768156,"y":17801.07553114317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.beginRate * 1.05","project":"Superalgos","id":"c3961302-df48-41d7-ad63-a39bd516d1ae","savedPayload":{"position":{"x":23536.24676435274,"y":17971.585519594522},"targetPosition":{"x":23728.273675326196,"y":17914.83920841476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f48edb4a-64ae-43f4-b3bc-88966d36a1e1","savedPayload":{"position":{"x":23728.273675326196,"y":17914.83920841476},"targetPosition":{"x":24112.330856768156,"y":17801.07553114317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"e3d49c92-4dc8-4645-8e1e-0837c6a29f5d","savedPayload":{"position":{"x":23512.083039382753,"y":17782.299475112093},"targetPosition":{"x":23712.192752087623,"y":17787.588822714322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"73ecbbe1-cdca-4b77-9a6f-0d2c168c1772","savedPayload":{"position":{"x":23712.192752087623,"y":17787.588822714322},"targetPosition":{"x":24112.330856768156,"y":17801.07553114317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8f2a1b21-a5f8-45f6-8dfa-0560157ad604","savedPayload":{"position":{"x":24112.330856768156,"y":17801.07553114317},"targetPosition":{"x":24472.86230987924,"y":17628.784392450263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"21aec372-3e6b-49a1-86b8-5780e9756122","savedPayload":{"position":{"x":23823.512662519723,"y":17466.501172816945},"targetPosition":{"x":23669.55248658413,"y":17137.432160629713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"c864114f-007c-4b2b-b15b-054ae3a9f828","savedPayload":{"position":{"x":23142.055197191596,"y":17564.090182030504},"targetPosition":{"x":23382.87582752122,"y":17369.290545821023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"d9a4f4b7-1714-4c4d-8bff-77deb01a67eb","savedPayload":{"position":{"x":23382.87582752122,"y":17369.290545821023},"targetPosition":{"x":23669.55248658413,"y":17137.432160629713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"8fc1ce4d-1d72-4090-94b4-e6c0411afb54","savedPayload":{"position":{"x":23360.426325249937,"y":16936.87765768171},"targetPosition":{"x":23669.55248658413,"y":17137.432160629713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"d83356e9-0134-4e28-a55b-8417500c8560"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"6f563ea6-cbce-446f-ad75-569a7202949a","savedPayload":{"position":{"x":23782.274626122147,"y":16778.836470480615},"targetPosition":{"x":23669.55248658413,"y":17137.432160629713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"f48edb4a-64ae-43f4-b3bc-88966d36a1e1"}}}],"id":"65b0d481-07cf-485c-ace5-7cec8ad9fea6","savedPayload":{"position":{"x":24073.406096601542,"y":17649.665993859668},"targetPosition":{"x":24472.86230987924,"y":17628.784392450263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"5863d43e-fed0-4738-bb46-c41430ed76d8","savedPayload":{"position":{"x":23750.621590364204,"y":17260.892652857692},"targetPosition":{"x":23704.25096066634,"y":16897.922228570224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"b76b6078-1554-4c2b-a83c-fb907094671f","savedPayload":{"position":{"x":23053.13589393478,"y":17090.412107672168},"targetPosition":{"x":23350.94171730639,"y":17002.229593653705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c499776e-414c-411f-88bd-b6888047110d","savedPayload":{"position":{"x":23350.94171730639,"y":17002.229593653705},"targetPosition":{"x":23704.25096066634,"y":16897.922228570224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"7509c7e5-bcfc-4769-a9be-9a6c0c909d35","savedPayload":{"position":{"x":23495.525427014352,"y":16594.213442636104},"targetPosition":{"x":23704.25096066634,"y":16897.922228570224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"d83356e9-0134-4e28-a55b-8417500c8560"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"09ed76e9-fad9-4afd-9bd9-75345957b9f8","savedPayload":{"position":{"x":23945.592510903658,"y":16610.04995509977},"targetPosition":{"x":23704.25096066634,"y":16897.922228570224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"f48edb4a-64ae-43f4-b3bc-88966d36a1e1"}}}],"id":"cd67413e-6f6f-4502-852b-9f7fd029d96b","savedPayload":{"position":{"x":24095.69934259661,"y":17495.2343839386},"targetPosition":{"x":24472.86230987924,"y":17628.784392450263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"48841f87-c826-4af5-8dbd-a68ddc46e4a1","savedPayload":{"position":{"x":24450.17795246025,"y":13535.976728597892},"targetPosition":{"x":24679.06347614231,"y":13721.430654358483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"82d60887-f066-43c0-a56c-b6e71fbd536a","savedPayload":{"position":{"x":24679.06347614231,"y":13721.430654358483},"targetPosition":{"x":24946.536968844888,"y":13938.155124950885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"e59ddaec-564c-403c-aaea-2a4e80856de7","savedPayload":{"position":{"x":24910.707671316155,"y":13595.742899927409},"targetPosition":{"x":24946.536968844888,"y":13938.155124950885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"d83356e9-0134-4e28-a55b-8417500c8560"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"70788bdf-02b9-4fd9-973f-6da2646c817f","savedPayload":{"position":{"x":25163.310640293854,"y":13670.387017916439},"targetPosition":{"x":24946.536968844888,"y":13938.155124950885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"1fcf9144-c53e-41ae-871d-c3b94b0f3685"}}}],"id":"6bf1abf9-b398-4bb3-a2be-cb14a3da3634","savedPayload":{"position":{"x":24175.503670891194,"y":17361.02196231903},"targetPosition":{"x":24472.86230987924,"y":17628.784392450263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"db123433-4f53-471d-bb9a-c96d3fe83b73","savedPayload":{"position":{"x":24570.862032476864,"y":13497.684870221043},"targetPosition":{"x":24778.60694674311,"y":13705.607379354456},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"366341dc-e740-4f71-b189-f838ae184693","savedPayload":{"position":{"x":24778.60694674311,"y":13705.607379354456},"targetPosition":{"x":25008.044318809858,"y":13935.264883707878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"23749a47-0771-4256-a40e-bc1d2c17a69c","savedPayload":{"position":{"x":25008.042529198294,"y":13609.582140145041},"targetPosition":{"x":25008.044318809858,"y":13935.264883707878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"f48edb4a-64ae-43f4-b3bc-88966d36a1e1"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"e7017cfb-ed60-462f-8b82-4609868fc85e","savedPayload":{"position":{"x":25238.60742059963,"y":13704.660600838284},"targetPosition":{"x":25008.044318809858,"y":13935.264883707878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"73ecbbe1-cdca-4b77-9a6f-0d2c168c1772"}}}],"id":"751a032e-413d-4db7-84b6-1442a4dcdc94","savedPayload":{"position":{"x":24300.58935161967,"y":17267.609238312958},"targetPosition":{"x":24472.86230987924,"y":17628.784392450263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"open-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"a472a835-95d5-4d76-a0db-be9b94ae991f","savedPayload":{"position":{"x":24441.192568344843,"y":17028.700034623955},"targetPosition":{"x":24451.941207889042,"y":17229.205957942057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"d83356e9-0134-4e28-a55b-8417500c8560"}}},"id":"62eaef2a-48d2-486d-837c-3d198f5ebf4e","savedPayload":{"position":{"x":24451.941207889042,"y":17229.205957942057},"targetPosition":{"x":24472.86230987924,"y":17628.784392450263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"open-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"4dc5eb5d-187f-4e69-8911-172d853f86b1","savedPayload":{"position":{"x":24671.376007960083,"y":17061.831375195663},"targetPosition":{"x":24604.814310842226,"y":17251.22232007174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"f48edb4a-64ae-43f4-b3bc-88966d36a1e1"}}},"id":"79914b94-56db-4ca6-8e3b-3ca54d207e4d","savedPayload":{"position":{"x":24604.814310842226,"y":17251.22232007174},"targetPosition":{"x":24472.86230987924,"y":17628.784392450263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"94f945c1-5096-4d7c-82d9-16a0c0c04f83","savedPayload":{"position":{"x":24472.86230987924,"y":17628.784392450263},"targetPosition":{"x":24812.865548584658,"y":17934.85020292712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Open Stage Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"d10b4917-4a12-41f7-a1f5-bef6405f9648","savedPayload":{"position":{"x":24706.94461228994,"y":17268.857283834},"targetPosition":{"x":24791.616413206015,"y":17364.323215493157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0a67d348-ccb6-411e-9116-df30f2503fc7","savedPayload":{"position":{"x":24791.616413206015,"y":17364.323215493157},"targetPosition":{"x":24908.14729586783,"y":17487.514142464897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"6f62279b-2f8c-4ddc-a693-2cd6f7c4d613","savedPayload":{"position":{"x":24873.84998310131,"y":17184.49599486259},"targetPosition":{"x":24888.81759722733,"y":17310.230012956483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a56cd846-a1c2-4d93-a553-82eea500a5f9","savedPayload":{"position":{"x":24888.81759722733,"y":17310.230012956483},"targetPosition":{"x":24908.14729586783,"y":17487.514142464897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"ed0785c5-01ed-481b-9c5b-ad09a74f8013","savedPayload":{"position":{"x":25060.018325494995,"y":17221.34053577333},"targetPosition":{"x":24998.7757025298,"y":17331.921504956874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0e358750-3a4b-4538-a4a2-71ebb1cc1421","savedPayload":{"position":{"x":24998.7757025298,"y":17331.921504956874},"targetPosition":{"x":24908.14729586783,"y":17487.514142464897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"08c80476-f586-4a3e-9441-0a510b223e49","savedPayload":{"position":{"x":25190.54749505843,"y":17371.430741823027},"targetPosition":{"x":25073.172988381953,"y":17423.446609478142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f3f687e2-6ada-4aee-adaa-67455c0c633c","savedPayload":{"position":{"x":25073.172988381953,"y":17423.446609478142},"targetPosition":{"x":24908.14729586783,"y":17487.514142464897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4df670cb-f7ec-4858-9260-400dc534e99f","savedPayload":{"position":{"x":24908.14729586783,"y":17487.514142464897},"targetPosition":{"x":24812.865548584658,"y":17934.85020292712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ccc6592f-fcfc-430a-a36e-0ef7879c3a5d","savedPayload":{"position":{"x":24800.791503600904,"y":17898.425268662773},"targetPosition":{"x":24936.211964982052,"y":18315.02517647312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Manage Stage Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate * 0.95","project":"Superalgos","id":"73b96f04-81c5-4313-bff3-18195ef765a3","savedPayload":{"position":{"x":23989.61297381892,"y":17597.579773541947},"targetPosition":{"x":24181.56988010251,"y":17540.6400028731},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1ad35710-0e45-4279-bb57-14f929c5ebbb","savedPayload":{"position":{"x":24181.56988010251,"y":17540.6400028731},"targetPosition":{"x":24564.757850042763,"y":17425.686459373293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"25aef06c-2fe8-4d62-b7e2-cf78c347144f","savedPayload":{"position":{"x":23964.172800887925,"y":17410.81649489765},"targetPosition":{"x":24164.41624574587,"y":17415.86336875541},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a3f5cf3c-963b-481b-8603-34fd19d22691","savedPayload":{"position":{"x":24164.41624574587,"y":17415.86336875541},"targetPosition":{"x":24564.757850042763,"y":17425.686459373293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.beginRate * 0.95","project":"Superalgos","id":"459ae839-8176-410a-a30d-e79436288259","savedPayload":{"position":{"x":23998.196000742184,"y":17225.465024618632},"targetPosition":{"x":24187.002972329494,"y":17292.243737627356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"66e2cb94-d35f-467c-a2a4-8befad393288","savedPayload":{"position":{"x":24187.002972329494,"y":17292.243737627356},"targetPosition":{"x":24564.757850042763,"y":17425.686459373293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"a6d7befa-6df4-42a5-a2a5-905110da8534","savedPayload":{"position":{"x":24089.83468421934,"y":17058.032316501794},"targetPosition":{"x":24248.62725198452,"y":17180.00421254225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4bee822d-c6a4-4672-bfe7-e8ff5d2a3c83","savedPayload":{"position":{"x":24248.62725198452,"y":17180.00421254225},"targetPosition":{"x":24564.757850042763,"y":17425.686459373293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bb879e4a-bfd7-47eb-9a27-ad3aafecba83","savedPayload":{"position":{"x":24564.757850042763,"y":17425.686459373293},"targetPosition":{"x":24961.73392317004,"y":17489.296902865837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"a72ecad9-eb55-4a57-9ac4-6b47c6490d6f","savedPayload":{"position":{"x":24415.763123001547,"y":16932.144616107194},"targetPosition":{"x":24484.49711032994,"y":16575.463548937794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"0cec5a45-bfee-45bc-99e8-00e2172997a9","savedPayload":{"position":{"x":23806.780619230267,"y":16610.348454258638},"targetPosition":{"x":24116.234079965558,"y":16594.413862145233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9613639a-5208-4855-a232-a68c92291f72","savedPayload":{"position":{"x":24116.234079965558,"y":16594.413862145233},"targetPosition":{"x":24484.49711032994,"y":16575.463548937794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"f50d94df-1894-4095-99fa-df1b34f50419","savedPayload":{"position":{"x":24352.38939899577,"y":16231.458035432808},"targetPosition":{"x":24484.49711032994,"y":16575.463548937794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"1ad35710-0e45-4279-bb57-14f929c5ebbb"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"79d364b6-08c9-482f-9727-5d895f181888","savedPayload":{"position":{"x":24786.65666431669,"y":16351.563062282014},"targetPosition":{"x":24484.49711032994,"y":16575.463548937794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"66e2cb94-d35f-467c-a2a4-8befad393288"}}}],"id":"b07e2940-5562-40af-8588-a7e08cfb8799","savedPayload":{"position":{"x":24632.677723003882,"y":17241.808935262274},"targetPosition":{"x":24961.73392317004,"y":17489.296902865837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"c6513ced-e1aa-40ca-b75e-2bbee6e815c2","savedPayload":{"position":{"x":24604.42413949528,"y":17368.684628122508},"targetPosition":{"x":24735.402082011235,"y":17159.59562994399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"448e87ac-3fa0-478c-a2f7-cde8104467d6","savedPayload":{"position":{"x":24358.098579835358,"y":17024.962668422362},"targetPosition":{"x":24546.652807358096,"y":17092.105065052485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bcfb7a9c-1406-4238-8fa5-7e957befe06e","savedPayload":{"position":{"x":24546.652807358096,"y":17092.105065052485},"targetPosition":{"x":24735.402082011235,"y":17159.59562994399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"94c048cd-2fc8-4d0e-a2ec-817951680ca2","savedPayload":{"position":{"x":24740.189158804,"y":16958.592681203845},"targetPosition":{"x":24735.402082011235,"y":17159.59562994399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"1ad35710-0e45-4279-bb57-14f929c5ebbb"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"fdfe4724-e49e-42d9-b27d-11cf63454537","savedPayload":{"position":{"x":24931.84999493606,"y":17116.63576135556},"targetPosition":{"x":24735.402082011235,"y":17159.59562994399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"66e2cb94-d35f-467c-a2a4-8befad393288"}}}],"id":"08eb9d04-c2a8-43de-8907-ad8adfbde331","savedPayload":{"position":{"x":24735.402082011235,"y":17159.59562994399},"targetPosition":{"x":24961.73392317004,"y":17489.296902865837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"0b5eeef9-b427-4819-9fc6-a34fd7a45250","savedPayload":{"position":{"x":24561.930872739886,"y":13885.76170133438},"targetPosition":{"x":24790.816396421946,"y":14071.21562709497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"d6ee6a4d-c4ec-4e49-8a56-61072bd78583","savedPayload":{"position":{"x":24790.816396421946,"y":14071.21562709497},"targetPosition":{"x":25058.289889124524,"y":14287.940097687373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"9054fb32-64d2-4273-9ad5-b4a5e5d9b489","savedPayload":{"position":{"x":25022.46059159579,"y":13945.527872663897},"targetPosition":{"x":25058.289889124524,"y":14287.940097687373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"1ad35710-0e45-4279-bb57-14f929c5ebbb"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"175898af-c9d4-46b6-a861-199e4077b23d","savedPayload":{"position":{"x":25275.06356057349,"y":14020.171990652927},"targetPosition":{"x":25058.289889124524,"y":14287.940097687373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"a3f5cf3c-963b-481b-8603-34fd19d22691"}}}],"id":"d1b509d0-e038-472e-a649-c8438d6f1c43","savedPayload":{"position":{"x":24851.84722114082,"y":17095.424636529846},"targetPosition":{"x":24961.73392317004,"y":17489.296902865837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"69c24080-a898-417d-90c6-6d799eb0766b","savedPayload":{"position":{"x":24682.6149527565,"y":13847.469842957531},"targetPosition":{"x":24890.359867022747,"y":14055.392352090945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"62f2bc21-d96e-42bb-83e2-6769a50070da","savedPayload":{"position":{"x":24890.359867022747,"y":14055.392352090945},"targetPosition":{"x":25119.797239089494,"y":14285.049856444366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"dcf485b0-6d81-4d5b-8de7-5390fffe4fb8","savedPayload":{"position":{"x":25119.79544947793,"y":13959.36711288153},"targetPosition":{"x":25119.797239089494,"y":14285.049856444366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"66e2cb94-d35f-467c-a2a4-8befad393288"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"73c6e88b-5d6e-4573-a506-21bd9e0e374c","savedPayload":{"position":{"x":25350.360340879266,"y":14054.445573574772},"targetPosition":{"x":25119.797239089494,"y":14285.049856444366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"4bee822d-c6a4-4672-bfe7-e8ff5d2a3c83"}}}],"id":"1ab7099b-60c4-40ba-8da3-5c31250db665","savedPayload":{"position":{"x":25059.35434285554,"y":17090.773714853665},"targetPosition":{"x":24961.73392317004,"y":17489.296902865837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"manage-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"719c5b49-d55d-45cb-90c3-5e9af89b67c7","savedPayload":{"position":{"x":25288.869520532997,"y":16985.1670166947},"targetPosition":{"x":25179.76053830832,"y":17153.776879011035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"1ad35710-0e45-4279-bb57-14f929c5ebbb"}}},"id":"b8d67ea0-e06d-4d7e-b195-52fcf17804c1","savedPayload":{"position":{"x":25179.76053830832,"y":17153.776879011035},"targetPosition":{"x":24961.73392317004,"y":17489.296902865837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"manage-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"288bf4f1-71a7-4377-b7c0-7c2212ca81b8","savedPayload":{"position":{"x":25455.85101914124,"y":17147.537169013773},"targetPosition":{"x":25290.554108859025,"y":17261.511759905385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"66e2cb94-d35f-467c-a2a4-8befad393288"}}},"id":"abf8e294-9d00-4b54-8025-61c7bdfe15e5","savedPayload":{"position":{"x":25290.554108859025,"y":17261.511759905385},"targetPosition":{"x":24961.73392317004,"y":17489.296902865837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"9ad26115-702c-4b0e-af31-928dd5d9c7d5","savedPayload":{"position":{"x":24961.73392317004,"y":17489.296902865837},"targetPosition":{"x":25056.781273974313,"y":17936.99613464608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Manage Stage Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"cb508f20-6e15-419e-9a1a-97c42830429c","savedPayload":{"position":{"x":25362.99844787749,"y":17336.127094477473},"targetPosition":{"x":25374.997958157037,"y":17463.060147419073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2e2fbad0-2460-44c7-b6bf-51e7af8f8ea7","savedPayload":{"position":{"x":25374.997958157037,"y":17463.060147419073},"targetPosition":{"x":25396.930917348676,"y":17631.17974777773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"07a01653-d729-4ed2-8017-87475ad57511","savedPayload":{"position":{"x":25547.349343509766,"y":17365.878163328063},"targetPosition":{"x":25485.459108529652,"y":17476.386215563372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"af537884-ee98-4d2f-af85-2bb3b3791bb1","savedPayload":{"position":{"x":25485.459108529652,"y":17476.386215563372},"targetPosition":{"x":25396.930917348676,"y":17631.17974777773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"6e437285-66cf-4b88-8e51-fef76a4926da","savedPayload":{"position":{"x":25676.274546227418,"y":17505.2153018006},"targetPosition":{"x":25561.691138422226,"y":17558.604219809975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e8175962-92c6-4917-b576-cb1486762e81","savedPayload":{"position":{"x":25561.691138422226,"y":17558.604219809975},"targetPosition":{"x":25396.930917348676,"y":17631.17974777773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"7c4f63e9-f9d9-4036-a5bb-400bbe2a65b4","savedPayload":{"position":{"x":25693.775419998332,"y":17703.03138544741},"targetPosition":{"x":25568.123444674664,"y":17676.41891499346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"28e960e1-2e60-437c-9dac-9e646403874a","savedPayload":{"position":{"x":25568.123444674664,"y":17676.41891499346},"targetPosition":{"x":25396.930917348676,"y":17631.17974777773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"86ca5ec4-ae7d-4b2b-88cf-13d2cc9ae75b","savedPayload":{"position":{"x":25396.930917348676,"y":17631.17974777773},"targetPosition":{"x":25056.781273974313,"y":17936.99613464608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"14b60635-cf33-454a-87e0-871ad0389645","savedPayload":{"position":{"x":25071.14850997705,"y":17898.410158313432},"targetPosition":{"x":24936.211964982052,"y":18315.02517647312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Close Stage Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate * 1.05","project":"Superalgos","id":"7cd635fa-4a2a-4c10-a3a7-2fb99cdd24e7","savedPayload":{"position":{"x":24603.981796664386,"y":17173.793306038704},"targetPosition":{"x":24792.878932990257,"y":17240.285894025405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f1240d6d-c23e-4aa6-aacd-97493ce45234","savedPayload":{"position":{"x":24792.878932990257,"y":17240.285894025405},"targetPosition":{"x":25170.227806190716,"y":17372.511667638948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"ced4a69d-b368-422f-8f6c-1cd7f0c62396","savedPayload":{"position":{"x":24693.43924790597,"y":17007.576275133044},"targetPosition":{"x":24852.4234484772,"y":17129.308396751825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9c1ec846-d0d1-44a4-b645-cf71dfc5e9eb","savedPayload":{"position":{"x":24852.4234484772,"y":17129.308396751825},"targetPosition":{"x":25170.227806190716,"y":17372.511667638948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.beginRate * 1.05","project":"Superalgos","id":"59e35400-9a93-487c-b341-473e51051cc9","savedPayload":{"position":{"x":24829.932571856185,"y":16877.615490164808},"targetPosition":{"x":24943.351578285597,"y":17042.553220788395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d9229007-7e6c-4395-b674-c8200d1302a2","savedPayload":{"position":{"x":24943.351578285597,"y":17042.553220788395},"targetPosition":{"x":25170.227806190716,"y":17372.511667638948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"b834c8be-dc40-4eb2-94c9-f6b27c9bf203","savedPayload":{"position":{"x":25002.747837940853,"y":16796.026877474058},"targetPosition":{"x":25059.39419093945,"y":16987.91674892192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8d88a4f7-e75d-46ac-af99-c9c8383d9ba3","savedPayload":{"position":{"x":25059.39419093945,"y":16987.91674892192},"targetPosition":{"x":25170.227806190716,"y":17372.511667638948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d4cb26b9-90a4-47cc-8a11-d3499b94ca95","savedPayload":{"position":{"x":25170.227806190716,"y":17372.511667638948},"targetPosition":{"x":25445.489223080098,"y":17662.29899610047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"1a53131a-b125-4d77-bb15-10924c5c3797","savedPayload":{"position":{"x":25208.00714764315,"y":16848.37412295763},"targetPosition":{"x":25473.583762565733,"y":16600.096094773846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"56033b64-4e11-4bfa-92ad-6db25f2b48c0","savedPayload":{"position":{"x":24904.94351595144,"y":16230.678454146599},"targetPosition":{"x":25164.220706971144,"y":16399.093056012447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2add26e5-2c75-4868-bb26-dce896825311","savedPayload":{"position":{"x":25164.220706971144,"y":16399.093056012447},"targetPosition":{"x":25473.583762565733,"y":16600.096094773846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"08d8a2d0-7642-4b72-af66-0a9e78338431","savedPayload":{"position":{"x":25568.620486288033,"y":16244.36669967966},"targetPosition":{"x":25473.583762565733,"y":16600.096094773846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"f1240d6d-c23e-4aa6-aacd-97493ce45234"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"0e3a0510-ce61-4342-9b84-fed95bcff6ce","savedPayload":{"position":{"x":25848.896588752737,"y":16596.300635787647},"targetPosition":{"x":25473.583762565733,"y":16600.096094773846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"d9229007-7e6c-4395-b674-c8200d1302a2"}}}],"id":"45a5d7f3-aedc-4808-b120-8d2233ff20e3","savedPayload":{"position":{"x":25302.20974161536,"y":17288.674570457908},"targetPosition":{"x":25445.489223080098,"y":17662.29899610047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"5a1c2615-f48b-475a-aa87-c617efd0e640","savedPayload":{"position":{"x":25380.193526422514,"y":16714.45717864927},"targetPosition":{"x":25712.084202970855,"y":16558.939762472644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"ac7d3c06-6d38-4a75-829d-1dc5e1b4ddbd","savedPayload":{"position":{"x":25327.843242628373,"y":15999.323623054206},"targetPosition":{"x":25503.43862266737,"y":16255.223247439988},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"53f7af3a-4bdd-4f42-b015-028e26f29f63","savedPayload":{"position":{"x":25503.43862266737,"y":16255.223247439988},"targetPosition":{"x":25712.084202970855,"y":16558.939762472644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"f07749bf-06e6-4c63-9505-57e1ec29c967","savedPayload":{"position":{"x":25935.98001848433,"y":16266.705827831736},"targetPosition":{"x":25712.084202970855,"y":16558.939762472644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"f1240d6d-c23e-4aa6-aacd-97493ce45234"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"06bdc105-7cef-4c34-986d-17d5dacb21c5","savedPayload":{"position":{"x":26060.468067215366,"y":16699.211162198673},"targetPosition":{"x":25712.084202970855,"y":16558.939762472644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"d9229007-7e6c-4395-b674-c8200d1302a2"}}}],"id":"8d7dbd92-a621-4095-9ffa-99e90a732257","savedPayload":{"position":{"x":25455.963621188937,"y":17262.057680973976},"targetPosition":{"x":25445.489223080098,"y":17662.29899610047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"c86bffd2-fdd2-4512-9e27-3a228e7dbfdf","savedPayload":{"position":{"x":25706.113038509237,"y":15977.769488781074},"targetPosition":{"x":25817.154730275273,"y":16267.724869987025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"90d9972c-b734-4f1b-b431-0c9f466d8bde","savedPayload":{"position":{"x":25817.154730275273,"y":16267.724869987025},"targetPosition":{"x":25948.991874823794,"y":16611.832998990303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"97950cab-c1dd-4d71-8367-f927cf4a04b9","savedPayload":{"position":{"x":26098.736003293696,"y":16275.224868604024},"targetPosition":{"x":25948.991874823794,"y":16611.832998990303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"f1240d6d-c23e-4aa6-aacd-97493ce45234"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"c1015b1f-d495-4560-bdb6-26c9c893af8e","savedPayload":{"position":{"x":26292.996323669162,"y":16479.665189475432},"targetPosition":{"x":25948.991874823794,"y":16611.832998990303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"9c1ec846-d0d1-44a4-b645-cf71dfc5e9eb"}}}],"id":"3aa5d6bb-2da0-4913-bbcf-13dcd020b88f","savedPayload":{"position":{"x":25608.27850607035,"y":17296.47688435172},"targetPosition":{"x":25445.489223080098,"y":17662.29899610047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"cd60254f-81d5-490b-80f7-f905afcb8323","savedPayload":{"position":{"x":26164.53202427431,"y":16072.702860737658},"targetPosition":{"x":26156.52896593925,"y":16383.027662005394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"a0d7fbf6-0b19-44ef-a2d3-5e4dc98e5926","savedPayload":{"position":{"x":26156.52896593925,"y":16383.027662005394},"targetPosition":{"x":26146.993297019664,"y":16751.563980824445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"4ff9759d-29b5-475f-8551-3814eb33b251","savedPayload":{"position":{"x":26414.030997271555,"y":16497.96932180807},"targetPosition":{"x":26146.993297019664,"y":16751.563980824445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"d9229007-7e6c-4395-b674-c8200d1302a2"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"2fdff9f3-8dde-4562-90b2-916988c97a16","savedPayload":{"position":{"x":26514.97091356275,"y":16760.848756377032},"targetPosition":{"x":26146.993297019664,"y":16751.563980824445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"8d88a4f7-e75d-46ac-af99-c9c8383d9ba3"}}}],"id":"b42348da-3524-494a-8774-f47030261ca0","savedPayload":{"position":{"x":25735.781677324325,"y":17386.56995393502},"targetPosition":{"x":25445.489223080098,"y":17662.29899610047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"close-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"3d976909-0ba1-4a27-9be1-322d70054353","savedPayload":{"position":{"x":26006.399601957903,"y":17446.4431610194},"targetPosition":{"x":25819.08439083658,"y":17518.642216019605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"f1240d6d-c23e-4aa6-aacd-97493ce45234"}}},"id":"859b956a-11ca-45fb-8f18-e14627c7a154","savedPayload":{"position":{"x":25819.08439083658,"y":17518.642216019605},"targetPosition":{"x":25445.489223080098,"y":17662.29899610047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"close-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"f7ff7a3d-b8c5-4d21-91b3-9a187ab08581","savedPayload":{"position":{"x":26046.20198605366,"y":17675.729129769694},"targetPosition":{"x":25845.465235867778,"y":17670.891224989064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"d9229007-7e6c-4395-b674-c8200d1302a2"}}},"id":"6e3ff89e-b686-4159-8055-5c94a168dd40","savedPayload":{"position":{"x":25845.465235867778,"y":17670.891224989064},"targetPosition":{"x":25445.489223080098,"y":17662.29899610047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"74072d0d-cf19-48b9-89b0-b46d8a7536a6","savedPayload":{"position":{"x":25445.489223080098,"y":17662.29899610047},"targetPosition":{"x":25259.650016852967,"y":18080.142869128475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Close Stage Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"8fde3e24-dda5-43e0-b6b6-08e43053e6d7","savedPayload":{"position":{"x":25860.351018277473,"y":17773.697769214185},"targetPosition":{"x":25795.881018401167,"y":17883.70407874333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e17295d7-f61c-41a7-8221-0c604e04d929","savedPayload":{"position":{"x":25795.881018401167,"y":17883.70407874333},"targetPosition":{"x":25714.430132212674,"y":18032.693400433986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"96501191-f359-46aa-bc68-00eddbe2273d","savedPayload":{"position":{"x":25992.17850610818,"y":17906.20460691568},"targetPosition":{"x":25877.29291097318,"y":17959.507066043225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5c30e80d-89fd-40f7-82e8-796ab0ddc9c2","savedPayload":{"position":{"x":25877.29291097318,"y":17959.507066043225},"targetPosition":{"x":25714.430132212674,"y":18032.693400433986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"df962422-e12a-4f6a-ba03-79c21c202f92","savedPayload":{"position":{"x":26014.882942709355,"y":18094.651578501012},"targetPosition":{"x":25890.695033874275,"y":18070.769375650347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"dba25a67-fc53-4fc7-b409-87d37fe6c784","savedPayload":{"position":{"x":25890.695033874275,"y":18070.769375650347},"targetPosition":{"x":25714.430132212674,"y":18032.693400433986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"0cc8f537-1de7-4fa1-9965-ca4baad75df4","savedPayload":{"position":{"x":25912.687413960644,"y":18265.106323810534},"targetPosition":{"x":25826.678259869346,"y":18169.725107442817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cbdc6d37-3396-4e0d-89a2-d1e9a40d1f76","savedPayload":{"position":{"x":25826.678259869346,"y":18169.725107442817},"targetPosition":{"x":25714.430132212674,"y":18032.693400433986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5a04b18d-ca78-443d-ab8c-267ae9b0054a","savedPayload":{"position":{"x":25714.430132212674,"y":18032.693400433986},"targetPosition":{"x":25259.650016852967,"y":18080.142869128475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fc953591-3b22-4a19-a5f8-717ad3dc99fa","savedPayload":{"position":{"x":25290.45345596248,"y":18057.63918933579},"targetPosition":{"x":24936.211964982052,"y":18315.02517647312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"048b1895-0625-46c5-9582-6b1ba38a1052","savedPayload":{"position":{"x":24941.217404066585,"y":18264.893045797242},"targetPosition":{"x":24941.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Exchange Orders","config":"{ \n \"codeName\": \"Exchange-Orders\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Market Buy Orders","config":"{ \n \"codeName\": \"Market-Buy-Orders\", \n \"icon\": \"trend\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"actualRate\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}\n","project":"Superalgos","id":"b71cdbd3-5a13-4885-aba1-00b0770913b0","savedPayload":{"position":{"x":24298.85766290749,"y":18246.543055860882},"targetPosition":{"x":24431.109344673296,"y":18064.51423212652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"163a9b39-cb11-4c1b-b26d-0a65998df503","savedPayload":{"position":{"x":24431.109344673296,"y":18064.51423212652},"targetPosition":{"x":24563.361026439103,"y":17882.485408392156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"ac79b80f-8851-4609-99e8-c1fe6da799c1","savedPayload":{"position":{"x":24115.826173523383,"y":17835.447599921714},"targetPosition":{"x":24339.593599981243,"y":17858.966504156935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"20e936a0-d68a-4c6b-ac4f-7d840196307b","savedPayload":{"position":{"x":24339.593599981243,"y":17858.966504156935},"targetPosition":{"x":24563.361026439103,"y":17882.485408392156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8857212b-88de-4745-aa00-e1fa101b5b44","savedPayload":{"position":{"x":24563.361026439103,"y":17882.485408392156},"targetPosition":{"x":24768.908754408687,"y":17790.9696637001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"New Polygon","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"736124b5-10fc-43f9-ac1e-94ed3f58fa95","savedPayload":{"position":{"x":24147.75770250765,"y":17893.36836443652},"targetPosition":{"x":24353.305430477234,"y":17801.852619744463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6719f0d9-9dd5-4a58-b33d-cf62871964f7","savedPayload":{"position":{"x":24353.305430477234,"y":17801.852619744463},"targetPosition":{"x":24558.85315844682,"y":17710.336875052406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"d4093c8c-6584-440b-a08a-fcbd8b967322","savedPayload":{"position":{"x":24348.79756248495,"y":17629.704086404712},"targetPosition":{"x":24558.85315844682,"y":17710.336875052406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"163a9b39-cb11-4c1b-b26d-0a65998df503"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"9e3dd75e-b06d-426b-9d06-449f323cd124","savedPayload":{"position":{"x":24467.33741375476,"y":17504.78914708282},"targetPosition":{"x":24558.85315844682,"y":17710.336875052406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"20e936a0-d68a-4c6b-ac4f-7d840196307b"}}}],"id":"f97a0410-58f5-4f62-92e5-26455b1228cb","savedPayload":{"position":{"x":24558.85315844682,"y":17710.336875052406},"targetPosition":{"x":24768.908754408687,"y":17790.9696637001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"bullet-market-buy-order\", \n\"size\": 20\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin","config":"{ \n\"offsetX\": 10,\n \"offsetY\": 0\n }","project":"Superalgos","id":"09cd465e-50f4-49b9-a979-5f10e1eef85d","savedPayload":{"position":{"x":24631.635137370602,"y":17482.648071745723},"targetPosition":{"x":24677.39300971663,"y":17585.421935730516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"163a9b39-cb11-4c1b-b26d-0a65998df503"}}},"id":"37471658-8dae-48f7-b6b8-9f40997011f6","savedPayload":{"position":{"x":24677.39300971663,"y":17585.421935730516},"targetPosition":{"x":24768.908754408687,"y":17790.9696637001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"d287dbf8-1eeb-4683-b3af-81c127af0f2f","savedPayload":{"position":{"x":24768.908754408687,"y":17790.9696637001},"targetPosition":{"x":25189.019946332428,"y":17952.235240995484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Market Buy Order","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"be69705a-70bd-4103-91ca-959ce0214d3b","savedPayload":{"position":{"x":23862.399092957447,"y":17170.9616351311},"targetPosition":{"x":24202.183627462626,"y":17033.749621410225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9b22f692-a9fb-4abd-8f3f-bbf649358634","savedPayload":{"position":{"x":24202.183627462626,"y":17033.749621410225},"targetPosition":{"x":24541.967815566248,"y":16896.297154647396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.rate","project":"Superalgos","id":"c376b5d9-0ed4-48a8-9182-dcbdede2bdfe","savedPayload":{"position":{"x":23809.295253307635,"y":16921.740187466366},"targetPosition":{"x":24175.591181145603,"y":16909.06589895518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"590154cf-7de4-456a-9344-77635e22d9ea","savedPayload":{"position":{"x":24175.591181145603,"y":16909.06589895518},"targetPosition":{"x":24541.967815566248,"y":16896.297154647396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"2f37eacb-ffac-4cbc-b422-eadd3d54235a","savedPayload":{"position":{"x":23844.686042368026,"y":16669.917379737602},"targetPosition":{"x":24193.281240664917,"y":16783.12074227086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ed46ae93-6b10-4e7d-9305-8dafd5037985","savedPayload":{"position":{"x":24193.281240664917,"y":16783.12074227086},"targetPosition":{"x":24541.967815566248,"y":16896.297154647396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"18762355-25df-4646-b7c5-b4df35163f2a","savedPayload":{"position":{"x":23964.21643519404,"y":16445.037650075534},"targetPosition":{"x":24253.052371519163,"y":16670.65746647881},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2bd1f447-3cec-4f9e-9cd5-65b90fe62f35","savedPayload":{"position":{"x":24253.052371519163,"y":16670.65746647881},"targetPosition":{"x":24541.967815566248,"y":16896.297154647396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Order Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.orderName","project":"Superalgos","id":"41c9ed74-0e7e-4db3-bcf6-5d798a21b4d9","savedPayload":{"position":{"x":24153.45061837541,"y":16274.622167143008},"targetPosition":{"x":24347.685211466985,"y":16585.437309734738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"838ee716-58a7-4c5a-b137-bf7975562076","savedPayload":{"position":{"x":24347.685211466985,"y":16585.437309734738},"targetPosition":{"x":24541.967815566248,"y":16896.297154647396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Algorithm Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.algorithmName","project":"Superalgos","id":"ad63a89f-7c62-4191-8a69-c0a4a8c0b312","savedPayload":{"position":{"x":24389.548221643516,"y":16179.227629767918},"targetPosition":{"x":24465.76049520407,"y":16537.741599180794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6f9a2851-8667-49d4-922d-9e318c14b191","savedPayload":{"position":{"x":24465.76049520407,"y":16537.741599180794},"targetPosition":{"x":24541.967815566248,"y":16896.297154647396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Situation Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.situationName","project":"Superalgos","id":"4c2a30a2-b441-4ef8-b0de-ddfc46caf8f8","savedPayload":{"position":{"x":24643.593633954613,"y":16170.362364262595},"targetPosition":{"x":24592.833400129206,"y":16533.334709673683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0bf0f2c4-795f-4de5-a0ab-a219fbc297b2","savedPayload":{"position":{"x":24592.833400129206,"y":16533.334709673683},"targetPosition":{"x":24541.967815566248,"y":16896.297154647396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"604bf3df-f49f-4e0e-91ec-7d1fe3e928b0","savedPayload":{"position":{"x":24855.758065811726,"y":16252.321756420351},"targetPosition":{"x":24714.016025858626,"y":16572.824580531535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9e9835d4-e108-4159-b4a4-c31bd08f0540","savedPayload":{"position":{"x":24714.016025858626,"y":16572.824580531535},"targetPosition":{"x":24541.967815566248,"y":16896.297154647396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"76da9595-d339-4c33-bc94-6826d0608c1a","savedPayload":{"position":{"x":24905.82577036,"y":17602.519558339845},"targetPosition":{"x":25189.019946332428,"y":17952.235240995484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Market Buy Order Stats","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Percentage Filled","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.percentageFilled","project":"Superalgos","id":"ee7b58ba-cf67-4c40-88a2-c10477e43f13","savedPayload":{"position":{"x":24618.09570162402,"y":16439.966226993307},"targetPosition":{"x":24760.75621966212,"y":16555.3445127771},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7c9d9771-5be8-4b07-9b5f-bc44efb756ff","savedPayload":{"position":{"x":24760.75621966212,"y":16555.3445127771},"targetPosition":{"x":24954.703993567215,"y":16712.091785698405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Actual Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.actualRate","project":"Superalgos","id":"c044d703-c3f6-4e29-9368-dcd29166668f","savedPayload":{"position":{"x":24899.031477799002,"y":16292.004712325104},"targetPosition":{"x":24928.43089547231,"y":16464.4358144584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ced9f2a4-9f6d-4e66-b0ff-cbd4991cf214","savedPayload":{"position":{"x":24928.43089547231,"y":16464.4358144584},"targetPosition":{"x":24954.703993567215,"y":16712.091785698405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"ecbc55a5-0fb9-4541-ae9c-8619862424f6","savedPayload":{"position":{"x":25205.165582800037,"y":16377.122256855275},"targetPosition":{"x":25090.252681451027,"y":16520.09968608916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2782a117-47d8-4d30-9bca-49149ce5a1c2","savedPayload":{"position":{"x":25090.252681451027,"y":16520.09968608916},"targetPosition":{"x":24954.703993567215,"y":16712.091785698405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"41f92f89-4cf5-4c19-838c-ba23f835e64d","savedPayload":{"position":{"x":25118.624437064325,"y":17507.77548772767},"targetPosition":{"x":25189.019946332428,"y":17952.235240995484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Market Buy Order Base Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInBaseAsset","project":"Superalgos","id":"368489f4-24e4-4c46-b3bb-dca530392723","savedPayload":{"position":{"x":25167.2540342437,"y":17121.028593132574},"targetPosition":{"x":25258.769778935755,"y":17326.57632110216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0cf805a9-635d-4e28-bb68-2a4090aae862","savedPayload":{"position":{"x":25258.769778935755,"y":17326.57632110216},"targetPosition":{"x":25350.285523627812,"y":17532.124049071743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInBaseAsset","project":"Superalgos","id":"f019cc0c-290b-4635-b475-fb193e948d76","savedPayload":{"position":{"x":25511.5511009232,"y":17112.012857148005},"targetPosition":{"x":25430.918312275506,"y":17322.068453109874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9f208cb9-74df-4723-aae6-57b4cdc3fee2","savedPayload":{"position":{"x":25430.918312275506,"y":17322.068453109874},"targetPosition":{"x":25350.285523627812,"y":17532.124049071743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInBaseAsset","project":"Superalgos","id":"bf4f8f43-d39d-4447-b914-ebcfbb8f36ed","savedPayload":{"position":{"x":25761.38097956698,"y":17349.09255968763},"targetPosition":{"x":25555.833251597396,"y":17440.608304379686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32ea2ff4-6870-4679-9446-95b565073ec3","savedPayload":{"position":{"x":25555.833251597396,"y":17440.608304379686},"targetPosition":{"x":25350.285523627812,"y":17532.124049071743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"139bff81-1951-4112-a08c-31c14d142238","savedPayload":{"position":{"x":25350.285523627812,"y":17532.124049071743},"targetPosition":{"x":25189.019946332428,"y":17952.235240995484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Market Buy Order Quoted Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInQuotedAsset","project":"Superalgos","id":"c4210296-f178-494c-92ca-80483ec0db5a","savedPayload":{"position":{"x":25585.77343745851,"y":17221.506212107335},"targetPosition":{"x":25562.254533223288,"y":17445.273638565195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"255f75ae-aaed-4efd-88a7-963f7884730f","savedPayload":{"position":{"x":25562.254533223288,"y":17445.273638565195},"targetPosition":{"x":25538.735628988066,"y":17669.041065023055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInQuotedAsset","project":"Superalgos","id":"158dd324-a48c-43f7-b0e7-3124e5b5f0de","savedPayload":{"position":{"x":25888.451311643705,"y":17385.846889050626},"targetPosition":{"x":25713.593470315885,"y":17527.44397703684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e9d48e0c-ef63-4c63-9cf9-cb3af328bed1","savedPayload":{"position":{"x":25713.593470315885,"y":17527.44397703684},"targetPosition":{"x":25538.735628988066,"y":17669.041065023055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInQuotedAsset","project":"Superalgos","id":"ffd50fcd-fac2-4b6a-ae73-65d84974bf63","savedPayload":{"position":{"x":25986.270481903786,"y":17716.078873493498},"targetPosition":{"x":25762.503055445926,"y":17692.559969258276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ed2bfbc1-da0d-41c1-9e27-9c440c0bbc5c","savedPayload":{"position":{"x":25762.503055445926,"y":17692.559969258276},"targetPosition":{"x":25538.735628988066,"y":17669.041065023055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"37c3a257-cd08-4bfd-b59d-71b90f8ce4a4","savedPayload":{"position":{"x":25538.735628988066,"y":17669.041065023055},"targetPosition":{"x":25189.019946332428,"y":17952.235240995484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d3dcd315-1e28-47b6-9dec-04618dee4b7c","savedPayload":{"position":{"x":25189.019946332428,"y":17952.235240995484},"targetPosition":{"x":25259.41545560053,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Market Sell Orders","config":"{ \n \"codeName\": \"Market-Sell-Orders\", \n \"icon\": \"trend\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"actualRate\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"5915a3b2-fd8c-4107-8c3d-3153c1fdac13","savedPayload":{"position":{"x":24570.56497222864,"y":17710.617819837822},"targetPosition":{"x":24784.552688395048,"y":17641.08899610346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"20c0051b-3996-42c8-9bf1-9128c51c2179","savedPayload":{"position":{"x":24784.552688395048,"y":17641.08899610346},"targetPosition":{"x":24998.540404561456,"y":17571.560172369096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"653745b0-2f0d-4f01-9bfe-a26c641837e6","savedPayload":{"position":{"x":24664.12523309663,"y":17270.45139950761},"targetPosition":{"x":24831.332818829043,"y":17421.005785938352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4a148b9a-d98a-442a-bd5d-5c52db397ac1","savedPayload":{"position":{"x":24831.332818829043,"y":17421.005785938352},"targetPosition":{"x":24998.540404561456,"y":17571.560172369096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1e080048-b0b2-42b3-bd7a-a93d59350367","savedPayload":{"position":{"x":24998.540404561456,"y":17571.560172369096},"targetPosition":{"x":25218.623614726563,"y":17618.34030280309},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"New Polygon","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"a6132d2c-9651-462e-8571-5a5bfcc0f4b4","savedPayload":{"position":{"x":24655.91341151797,"y":17336.07916414738},"targetPosition":{"x":24875.996621683076,"y":17382.859294581376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ed893416-db69-4148-a40f-6b185dd2816a","savedPayload":{"position":{"x":24875.996621683076,"y":17382.859294581376},"targetPosition":{"x":25096.079831848183,"y":17429.63942501537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"2eb65ab7-60cd-47bf-95dd-2758d539d56a","savedPayload":{"position":{"x":24973.536048969803,"y":17240.93854722765},"targetPosition":{"x":25096.079831848183,"y":17429.63942501537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"20c0051b-3996-42c8-9bf1-9128c51c2179"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"2a28c8ef-716c-4c69-8080-99ae4f90feb5","savedPayload":{"position":{"x":25142.85996228218,"y":17209.556214850265},"targetPosition":{"x":25096.079831848183,"y":17429.63942501537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"4a148b9a-d98a-442a-bd5d-5c52db397ac1"}}}],"id":"4ed031d6-de35-424f-84c5-4f024b732f61","savedPayload":{"position":{"x":25096.079831848183,"y":17429.63942501537},"targetPosition":{"x":25218.623614726563,"y":17618.34030280309},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"bullet-market-sell-order\", \n\"size\": 20\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin","config":"{ \n\"offsetX\": 10,\n \"offsetY\": 0\n }","project":"Superalgos","id":"f37bba1b-a21a-44eb-a7d4-4b6d2ce2b0f6","savedPayload":{"position":{"x":25288.793810377556,"y":17288.215487555433},"targetPosition":{"x":25265.403745160558,"y":17398.257092637985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"20c0051b-3996-42c8-9bf1-9128c51c2179"}}},"id":"c963121c-2575-4301-98f9-bd18325fe066","savedPayload":{"position":{"x":25265.403745160558,"y":17398.257092637985},"targetPosition":{"x":25218.623614726563,"y":17618.34030280309},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"eaca3e87-5df7-4c38-ae52-4925a1fecdb9","savedPayload":{"position":{"x":25218.623614726563,"y":17618.34030280309},"targetPosition":{"x":25463.711180483326,"y":17995.74205837853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Market Sell Order","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"3fd3805d-5c55-4f50-bb78-3313ce846a06","savedPayload":{"position":{"x":25264.31333581048,"y":17379.902973956123},"targetPosition":{"x":25604.097870315658,"y":17242.690960235246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eeb6933e-f89a-4989-85e2-6eb4f40c9172","savedPayload":{"position":{"x":25604.097870315658,"y":17242.690960235246},"targetPosition":{"x":25943.88205841928,"y":17105.238493472418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.rate","project":"Superalgos","id":"861d2ed7-d769-480c-bc82-bce6b8c98552","savedPayload":{"position":{"x":25211.209496160667,"y":17130.681526291388},"targetPosition":{"x":25577.505423998635,"y":17118.007237780203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"70d3b28f-dbfc-4ad8-b773-4913db162c6d","savedPayload":{"position":{"x":25577.505423998635,"y":17118.007237780203},"targetPosition":{"x":25943.88205841928,"y":17105.238493472418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"9907e04b-dce0-4da4-9efe-268035e0106f","savedPayload":{"position":{"x":25246.60028522106,"y":16878.858718562624},"targetPosition":{"x":25595.19548351795,"y":16992.062081095883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"88c8d54d-4289-412b-b00c-f7b60c088c90","savedPayload":{"position":{"x":25595.19548351795,"y":16992.062081095883},"targetPosition":{"x":25943.88205841928,"y":17105.238493472418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"b99f40f9-1963-45ba-b04f-168aec8c4574","savedPayload":{"position":{"x":25366.130678047073,"y":16653.978988900555},"targetPosition":{"x":25654.966614372195,"y":16879.59880530383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9df1ec6a-8fc1-421f-8c4e-f1f6085e4d81","savedPayload":{"position":{"x":25654.966614372195,"y":16879.59880530383},"targetPosition":{"x":25943.88205841928,"y":17105.238493472418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Order Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.orderName","project":"Superalgos","id":"6c24dcab-3b53-4899-b3af-6935aa4491f4","savedPayload":{"position":{"x":25555.36486122844,"y":16483.56350596803},"targetPosition":{"x":25749.599454320018,"y":16794.37864855976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8b0f7e3-5fc4-4b63-9cdc-362a55a5316d","savedPayload":{"position":{"x":25749.599454320018,"y":16794.37864855976},"targetPosition":{"x":25943.88205841928,"y":17105.238493472418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Algorithm Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.algorithmName","project":"Superalgos","id":"4169b24e-f16e-4b57-addb-56303d627266","savedPayload":{"position":{"x":25791.462464496548,"y":16388.168968592938},"targetPosition":{"x":25867.674738057103,"y":16746.682938005815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"86510a10-ddd1-4462-919e-7558a40f126b","savedPayload":{"position":{"x":25867.674738057103,"y":16746.682938005815},"targetPosition":{"x":25943.88205841928,"y":17105.238493472418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Situation Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.situationName","project":"Superalgos","id":"d6e17dff-286b-4706-bed3-cf00f3b2486e","savedPayload":{"position":{"x":26045.507876807646,"y":16379.303703087617},"targetPosition":{"x":25994.747642982238,"y":16742.276048498705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0838c8cf-082b-44ae-aaad-6a89699fee11","savedPayload":{"position":{"x":25994.747642982238,"y":16742.276048498705},"targetPosition":{"x":25943.88205841928,"y":17105.238493472418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"2a07c30b-f6c8-4381-b944-059c32f596f7","savedPayload":{"position":{"x":26257.672308664758,"y":16461.263095245373},"targetPosition":{"x":26115.930268711658,"y":16781.765919356556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"10208192-1ad8-4a28-ba9d-5e8816b7587c","savedPayload":{"position":{"x":26115.930268711658,"y":16781.765919356556},"targetPosition":{"x":25943.88205841928,"y":17105.238493472418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f690609a-88a5-4c37-93d7-3a2da183a4bc","savedPayload":{"position":{"x":25440.160000174,"y":17546.358767738973},"targetPosition":{"x":25463.711180483326,"y":17995.74205837853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Market Sell Order Stats","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Percentage Filled","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.percentageFilled","project":"Superalgos","id":"a8532b82-0c87-4d1e-8aec-09a41977ac06","savedPayload":{"position":{"x":25686.699363342137,"y":16973.220124804247},"targetPosition":{"x":25829.359881380235,"y":17088.59841058804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f65e3f70-2235-4158-b7d8-7719c1242f1a","savedPayload":{"position":{"x":25829.359881380235,"y":17088.59841058804},"targetPosition":{"x":26023.30765528533,"y":17245.345683509346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Actual Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.actualRate","project":"Superalgos","id":"7d676b84-497b-430b-8f5f-c16e20cf2c91","savedPayload":{"position":{"x":25967.63513951712,"y":16825.258610136047},"targetPosition":{"x":25997.034557190425,"y":16997.68971226934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"44c26a8c-c8fb-42d4-8bb0-44e4ae2d63e1","savedPayload":{"position":{"x":25997.034557190425,"y":16997.68971226934},"targetPosition":{"x":26023.30765528533,"y":17245.345683509346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"8d1c097a-d876-4eb2-bbcd-5793078be0a8","savedPayload":{"position":{"x":26273.769244518153,"y":16910.376154666217},"targetPosition":{"x":26158.856343169144,"y":17053.3535839001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b7c1ca38-62ec-4bbb-9ea3-4f3f82ee8105","savedPayload":{"position":{"x":26158.856343169144,"y":17053.3535839001},"targetPosition":{"x":26023.30765528533,"y":17245.345683509346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fbec4f64-2ff7-434f-b7ae-cd4c30cbe1e7","savedPayload":{"position":{"x":25668.00690536612,"y":17594.789122493767},"targetPosition":{"x":25463.711180483326,"y":17995.74205837853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Market Sell Order Base Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInBaseAsset","project":"Superalgos","id":"f9be4822-1ff7-460a-bae6-4e5e27f11e0f","savedPayload":{"position":{"x":25934.673196926757,"y":17310.488072291555},"targetPosition":{"x":25887.89306649276,"y":17530.57128245666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"787b9c80-fd74-42b5-824c-7078dffc7933","savedPayload":{"position":{"x":25887.89306649276,"y":17530.57128245666},"targetPosition":{"x":25841.112936058766,"y":17750.65449262177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInBaseAsset","project":"Superalgos","id":"01923a7f-eb44-408f-a52d-b99690af4932","savedPayload":{"position":{"x":26218.514691634206,"y":17505.56692686501},"targetPosition":{"x":26029.813813846486,"y":17628.11070974339},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c7a48458-a70b-47ae-978b-ba1633271008","savedPayload":{"position":{"x":26029.813813846486,"y":17628.11070974339},"targetPosition":{"x":25841.112936058766,"y":17750.65449262177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInBaseAsset","project":"Superalgos","id":"8f11f759-fe14-4797-88b0-dd018cae85b8","savedPayload":{"position":{"x":26281.27935638898,"y":17844.21475348976},"targetPosition":{"x":26061.196146223872,"y":17797.434623055764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6e12a42d-af7b-4795-a1a6-ea6838da187c","savedPayload":{"position":{"x":26061.196146223872,"y":17797.434623055764},"targetPosition":{"x":25841.112936058766,"y":17750.65449262177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a86832e6-6662-4b81-9f04-af44a411bd62","savedPayload":{"position":{"x":25841.112936058766,"y":17750.65449262177},"targetPosition":{"x":25463.711180483326,"y":17995.74205837853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Market Sell Order Quoted Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInQuotedAsset","project":"Superalgos","id":"a4c41f97-84f3-41bf-9fb1-7d9925b450d6","savedPayload":{"position":{"x":26214.20324398437,"y":17637.77570660438},"targetPosition":{"x":26063.648857553628,"y":17804.983292336794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"da1ecdc3-4d2f-4a33-89a2-8fd6f0749f49","savedPayload":{"position":{"x":26063.648857553628,"y":17804.983292336794},"targetPosition":{"x":25913.094471122884,"y":17972.190878069207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInQuotedAsset","project":"Superalgos","id":"410f0e06-17f7-4c24-8923-94d5a57a181a","savedPayload":{"position":{"x":26362.47776176244,"y":17948.63969775988},"targetPosition":{"x":26137.78611644266,"y":17960.415287914544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"abf7992c-07ed-451f-be65-5bfa043f50a3","savedPayload":{"position":{"x":26137.78611644266,"y":17960.415287914544},"targetPosition":{"x":25913.094471122884,"y":17972.190878069207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInQuotedAsset","project":"Superalgos","id":"b4e02998-1b2b-4c08-bc93-11a4e8f5b7ef","savedPayload":{"position":{"x":26247.50964258771,"y":18273.299650930694},"targetPosition":{"x":26080.302056855297,"y":18122.74526449995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1cc8ee1a-7d99-44fb-8b24-a7b3274b89ef","savedPayload":{"position":{"x":26080.302056855297,"y":18122.74526449995},"targetPosition":{"x":25913.094471122884,"y":17972.190878069207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9d8a0b00-3e4c-4a97-8d8e-6d62c7bf5917","savedPayload":{"position":{"x":25913.094471122884,"y":17972.190878069207},"targetPosition":{"x":25463.711180483326,"y":17995.74205837853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5ba19f07-f9ad-4310-ab76-a00d1762104c","savedPayload":{"position":{"x":25463.711180483326,"y":17995.74205837853},"targetPosition":{"x":25259.41545560053,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Limit Buy Orders","config":"{\n \"codeName\": \"Market-Buy-Orders\",\n \"icon\": \"trend\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"actualRate\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"c69a9f1e-2cf9-45c2-bf44-90956393bea0","savedPayload":{"position":{"x":24727.375565875533,"y":17250.017858541167},"targetPosition":{"x":25059.22409717837,"y":17311.522348394767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bba798ce-44e1-4b23-b0c7-d54e3b4d0bfe","savedPayload":{"position":{"x":25059.22409717837,"y":17311.522348394767},"targetPosition":{"x":25391.072628481204,"y":17373.026838248366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"629982dc-a286-400d-aea4-25eb5d886cc9","savedPayload":{"position":{"x":24877.798601701186,"y":16934.649405625492},"targetPosition":{"x":25134.435615091195,"y":17153.83812193693},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad30df82-5002-4777-a4b3-dd25a1477249","savedPayload":{"position":{"x":25134.435615091195,"y":17153.83812193693},"targetPosition":{"x":25391.072628481204,"y":17373.026838248366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"12123f33-1968-40d7-ad62-d0141351872a","savedPayload":{"position":{"x":25391.072628481204,"y":17373.026838248366},"targetPosition":{"x":25695.695161949283,"y":17518.324333421166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Status Open","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"2cad1e82-f61c-4f7d-9a87-5261f877da44","savedPayload":{"position":{"x":25154.780188360364,"y":17146.563771851004},"targetPosition":{"x":25469.86358230317,"y":17267.512954822545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [2,2]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"cbc82d21-6236-4fb2-acfe-4602bc49d46c","savedPayload":{"position":{"x":24945.290058319715,"y":16842.721690863902},"targetPosition":{"x":25207.576820311442,"y":17055.117322843224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"b5bb2a55-7502-4883-946d-ed2e0f5c5941","savedPayload":{"position":{"x":25207.576820311442,"y":17055.117322843224},"targetPosition":{"x":25469.86358230317,"y":17267.512954822545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"243ef692-1158-408b-9312-8e0cc8da43bb","savedPayload":{"position":{"x":25286.047907985598,"y":16984.461638140965},"targetPosition":{"x":25469.86358230317,"y":17267.512954822545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"bba798ce-44e1-4b23-b0c7-d54e3b4d0bfe"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"cdb7846e-8664-4b05-b801-d7f344e067e9","savedPayload":{"position":{"x":25382.51215458107,"y":16941.512988449984},"targetPosition":{"x":25469.86358230317,"y":17267.512954822545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"ad30df82-5002-4777-a4b3-dd25a1477249"}}}],"id":"579d171a-992f-4ef7-b0fb-2400e0831bc9","savedPayload":{"position":{"x":25469.86358230317,"y":17267.512954822545},"targetPosition":{"x":25695.695161949283,"y":17518.324333421166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Status Closed Cancel Event","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed' && record.exitType === 'Cancel Event'","project":"Superalgos","id":"94823fcf-a959-4af6-b15d-60173a910e55","savedPayload":{"position":{"x":25338.221496741236,"y":16967.863160880916},"targetPosition":{"x":25583.035346957884,"y":17200.182830177557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [4,4]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"e5f098aa-306e-4648-be49-b10ce502c914","savedPayload":{"position":{"x":25260.95318378265,"y":16606.98127913073},"targetPosition":{"x":25421.994265370267,"y":16903.582054654144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"d468e2bd-90ac-421d-892f-f18cbeac2aac","savedPayload":{"position":{"x":25421.994265370267,"y":16903.582054654144},"targetPosition":{"x":25583.035346957884,"y":17200.182830177557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"518aae3e-c873-435f-985c-438243d45701","savedPayload":{"position":{"x":25521.530857104284,"y":16868.33429887472},"targetPosition":{"x":25583.035346957884,"y":17200.182830177557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"bba798ce-44e1-4b23-b0c7-d54e3b4d0bfe"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"2dbe575d-9e1c-45ab-b114-c8242cb7aef7","savedPayload":{"position":{"x":25627.08793683215,"y":16865.570189463895},"targetPosition":{"x":25583.035346957884,"y":17200.182830177557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"ad30df82-5002-4777-a4b3-dd25a1477249"}}}],"id":"bf17dbda-714d-4796-938a-461d1dab12f7","savedPayload":{"position":{"x":25583.035346957884,"y":17200.182830177557},"targetPosition":{"x":25695.695161949283,"y":17518.324333421166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Status Closed Filled","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed' && record.exitType === 'Filled'","project":"Superalgos","id":"ee979cc9-775d-481d-8b76-bc6c30b8b1a8","savedPayload":{"position":{"x":25576.084930143195,"y":16872.96527348712},"targetPosition":{"x":25713.358547181277,"y":17181.286865441496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"9d7a5e25-e310-43cb-b4b1-64714bd76e3e","savedPayload":{"position":{"x":25642.801834475613,"y":16509.98458606791},"targetPosition":{"x":25678.080190828445,"y":16845.635725754702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"e517314f-1427-4aea-ad70-f7454bfef6a9","savedPayload":{"position":{"x":25678.080190828445,"y":16845.635725754702},"targetPosition":{"x":25713.358547181277,"y":17181.286865441496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"d287d529-60c6-4afb-a628-e153022076f2","savedPayload":{"position":{"x":25783.52874283227,"y":16851.162050193838},"targetPosition":{"x":25713.358547181277,"y":17181.286865441496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"bba798ce-44e1-4b23-b0c7-d54e3b4d0bfe"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"4bcb4ff6-590f-46b7-92ad-eb3f125e7589","savedPayload":{"position":{"x":25882.108547181277,"y":16889.00329166425},"targetPosition":{"x":25713.358547181277,"y":17181.286865441496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"ad30df82-5002-4777-a4b3-dd25a1477249"}}}],"id":"e8ea5a64-7397-41cc-b67a-20eb83b38777","savedPayload":{"position":{"x":25713.358547181277,"y":17181.286865441496},"targetPosition":{"x":25695.695161949283,"y":17518.324333421166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"Status Closed Cancel Event","config":"{ \n\"codeName\": \"bullet-cancelled-order\", \n\"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.status === 'Closed' && record.exitType === 'Cancel Event'","project":"Superalgos","id":"8692ef39-99d5-4df4-94bc-9c3ae59a441b","savedPayload":{"position":{"x":25871.744902048882,"y":17047.77753430167},"targetPosition":{"x":25840.992657122082,"y":17213.701799953087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"End","config":"{ \n\"offsetX\": -5,\n \"offsetY\": 0\n }","project":"Superalgos","id":"a05e9a36-45df-4b41-9d54-e32198c1c801","savedPayload":{"position":{"x":25950.5870152778,"y":17085.38329325808},"targetPosition":{"x":25840.992657122082,"y":17213.701799953087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End","id":"ad30df82-5002-4777-a4b3-dd25a1477249"}}},"id":"b0c34c16-2d70-45b0-ac78-9a5240145a61","savedPayload":{"position":{"x":25840.992657122082,"y":17213.701799953087},"targetPosition":{"x":25695.695161949283,"y":17518.324333421166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Starting Point","config":"{ \n\"codeName\": \"bullet-limit-buy-order\", \n\"size\": 20\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin","config":"{ \n\"offsetX\": 10,\n \"offsetY\": 0\n }","project":"Superalgos","id":"3bd34492-c245-4649-984f-69064877108a","savedPayload":{"position":{"x":26071.912229847214,"y":17179.576963951993},"targetPosition":{"x":25946.506540547904,"y":17292.492753775052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"bba798ce-44e1-4b23-b0c7-d54e3b4d0bfe"}}},"id":"49b9c204-ff4e-4826-9d3c-40b3afa44ec4","savedPayload":{"position":{"x":25946.506540547904,"y":17292.492753775052},"targetPosition":{"x":25695.695161949283,"y":17518.324333421166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Status Closed Filled","config":"{ \n\"codeName\": \"bullet-limit-buy-order-filled\", \n\"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.status === 'Closed' && record.exitType === 'Filled'","project":"Superalgos","id":"78dcd2aa-a5c5-4c53-b189-8f1bdbee5557","savedPayload":{"position":{"x":26152.907959522858,"y":17310.0834659487},"targetPosition":{"x":26013.83666519289,"y":17405.664518429767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"End","config":"{ \n\"offsetX\": -10,\n \"offsetY\": 0\n }","project":"Superalgos","id":"a9990550-0eb8-4758-ad69-313993d64908","savedPayload":{"position":{"x":26182.066465260355,"y":17392.424546025693},"targetPosition":{"x":26013.83666519289,"y":17405.664518429767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End","id":"ad30df82-5002-4777-a4b3-dd25a1477249"}}},"id":"51511ba1-3f46-4515-9076-91f1551cde19","savedPayload":{"position":{"x":26013.83666519289,"y":17405.664518429767},"targetPosition":{"x":25695.695161949283,"y":17518.324333421166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"b55960a1-9168-450f-8fe3-ebb049afc764","savedPayload":{"position":{"x":25695.695161949283,"y":17518.324333421166},"targetPosition":{"x":25660.368391485295,"y":18192.3992693805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Limit Buy Order","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"c9f56c70-6dcb-4702-a17e-23f3125ab9f0","savedPayload":{"position":{"x":25833.520774648186,"y":16844.729747350353},"targetPosition":{"x":26024.779213225724,"y":17098.389452365012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"257d190a-cce1-4f8b-bbc1-a729e6b27f1f","savedPayload":{"position":{"x":26024.779213225724,"y":17098.389452365012},"targetPosition":{"x":26304.926817547024,"y":17460.705984473396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.rate","project":"Superalgos","id":"76819d54-fe35-4c6a-90d5-31810c4342f6","savedPayload":{"position":{"x":26075.1492288885,"y":16718.485801362534},"targetPosition":{"x":26168.024723435738,"y":17022.524368134324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0179f00a-eee2-41e5-8cb1-961aff9422f8","savedPayload":{"position":{"x":26168.024723435738,"y":17022.524368134324},"targetPosition":{"x":26304.926817547024,"y":17460.705984473396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"8cb47439-9bdf-468b-a107-9a9b89261fa7","savedPayload":{"position":{"x":26344.131394734948,"y":16684.161952212493},"targetPosition":{"x":26327.57552282128,"y":17001.768915162287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9bbb1c5e-9338-45d5-8ac4-8f0f5ebe130b","savedPayload":{"position":{"x":26327.57552282128,"y":17001.768915162287},"targetPosition":{"x":26304.926817547024,"y":17460.705984473396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"c3d19ec9-e6a8-4a01-b454-1acaf46df215","savedPayload":{"position":{"x":26608.390851391137,"y":16744.256958459442},"targetPosition":{"x":26483.943393495392,"y":17037.275687191617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"68e7bd5c-ad40-449e-9bf6-e1d48b6a96da","savedPayload":{"position":{"x":26483.943393495392,"y":17037.275687191617},"targetPosition":{"x":26304.926817547024,"y":17460.705984473396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Order Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.orderName","project":"Superalgos","id":"bbdc75d8-facf-47e4-9cba-bf86531bac87","savedPayload":{"position":{"x":26835.50307556864,"y":16891.596992091232},"targetPosition":{"x":26618.563015671192,"y":17124.042992508068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d552dd69-e023-4b5a-b2cc-b90724a3cee0","savedPayload":{"position":{"x":26618.563015671192,"y":17124.042992508068},"targetPosition":{"x":26304.926817547024,"y":17460.705984473396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Algorithm Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.algorithmName","project":"Superalgos","id":"7e2825ee-049d-41c0-a2b6-cf5efd96327b","savedPayload":{"position":{"x":26998.647709815898,"y":17107.574544065763},"targetPosition":{"x":26714.925452476375,"y":17251.78937096081},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3799aa7a-6ea9-4e11-aa9f-654fd01d8310","savedPayload":{"position":{"x":26714.925452476375,"y":17251.78937096081},"targetPosition":{"x":26304.926817547024,"y":17460.705984473396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Situation Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.situationName","project":"Superalgos","id":"7cd103ee-6a36-49bb-9cb3-427415ecee6e","savedPayload":{"position":{"x":27077.421494033337,"y":17366.417494960642},"targetPosition":{"x":26762.068994502195,"y":17404.718128900655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"61ff9cbd-0173-40c1-b220-3b3bf8c8a781","savedPayload":{"position":{"x":26762.068994502195,"y":17404.718128900655},"targetPosition":{"x":26304.926817547024,"y":17460.705984473396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"6d75b984-146d-4321-a69b-96b9fc128da4","savedPayload":{"position":{"x":27059.098117231082,"y":17646.70383417113},"targetPosition":{"x":26748.843682533174,"y":17574.298399856838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b3c815c6-dbc5-4bcf-8e49-230f869a9c06","savedPayload":{"position":{"x":26748.843682533174,"y":17574.298399856838},"targetPosition":{"x":26304.926817547024,"y":17460.705984473396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4d66ead1-b243-4abd-a0a5-42aedb98f4f1","savedPayload":{"position":{"x":25905.45595724206,"y":17814.99751380506},"targetPosition":{"x":25660.368391485295,"y":18192.3992693805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Limit Buy Order Stats","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Percentage Filled","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.percentageFilled","project":"Superalgos","id":"34fa8770-e46d-4202-ab33-0d20ad84f4f6","savedPayload":{"position":{"x":26209.744370251676,"y":17393.41353984155},"targetPosition":{"x":26352.404888289773,"y":17508.791825625343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e5cd717e-7ed5-4cad-a33d-6c415aa152c6","savedPayload":{"position":{"x":26352.404888289773,"y":17508.791825625343},"targetPosition":{"x":26546.35266219487,"y":17665.539098546647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Actual Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.actualRate","project":"Superalgos","id":"e247bc7e-c1ee-4b26-98ee-ee7d4cebfb56","savedPayload":{"position":{"x":26490.680146426657,"y":17245.452025173345},"targetPosition":{"x":26520.079564099964,"y":17417.883127306643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b54e6263-3340-465f-9ea5-e0fa2648190c","savedPayload":{"position":{"x":26520.079564099964,"y":17417.883127306643},"targetPosition":{"x":26546.35266219487,"y":17665.539098546647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"43650bc3-8244-4126-8a87-52faa5411b38","savedPayload":{"position":{"x":26796.81425142769,"y":17330.569569703515},"targetPosition":{"x":26681.901350078682,"y":17473.546998937403},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"da8b0939-bbb1-4f1a-bd7e-7a53d080b3c9","savedPayload":{"position":{"x":26681.901350078682,"y":17473.546998937403},"targetPosition":{"x":26546.35266219487,"y":17665.539098546647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cfa12a86-ec64-4df3-ad27-d69cb3788cf5","savedPayload":{"position":{"x":26061.32132737006,"y":17988.103544497706},"targetPosition":{"x":25660.368391485295,"y":18192.3992693805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Limit Buy Order Base Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInBaseAsset","project":"Superalgos","id":"b1d866b4-4c80-4892-8fad-33e6d2ca146d","savedPayload":{"position":{"x":27168.42740560968,"y":17508.087845937593},"targetPosition":{"x":26932.92827047577,"y":17720.099271153897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f2685cff-38f3-4b79-82f6-a20c3cfc0092","savedPayload":{"position":{"x":26932.92827047577,"y":17720.099271153897},"targetPosition":{"x":26593.600999444443,"y":18025.86211070353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInBaseAsset","project":"Superalgos","id":"941521f9-d414-4669-9c92-261b16de10fe","savedPayload":{"position":{"x":27366.506969563958,"y":18066.024283002414},"targetPosition":{"x":27048.759936787967,"y":18049.597120613977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2483904-9df3-4fe7-99a6-73253c514caf","savedPayload":{"position":{"x":27048.759936787967,"y":18049.597120613977},"targetPosition":{"x":26593.600999444443,"y":18025.86211070353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInBaseAsset","project":"Superalgos","id":"cd33840d-4c4c-4e6a-9cc3-6f64dbd2510d","savedPayload":{"position":{"x":27111.5787956666,"y":18600.943146731624},"targetPosition":{"x":26899.05404149945,"y":18365.04915827637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5fe8130b-541f-42d6-bc1d-2f6666784d42","savedPayload":{"position":{"x":26899.05404149945,"y":18365.04915827637},"targetPosition":{"x":26593.600999444443,"y":18025.86211070353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e9000de1-293c-4d42-86d6-a6c69ff70f2e","savedPayload":{"position":{"x":26109.751682124854,"y":18215.950449689826},"targetPosition":{"x":25660.368391485295,"y":18192.3992693805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Limit Buy Order Quoted Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInQuotedAsset","project":"Superalgos","id":"d3666832-b304-4ead-9f35-8970d8949729","savedPayload":{"position":{"x":27249.905648596738,"y":18177.43630018128},"targetPosition":{"x":26938.08379991229,"y":18243.70523216879},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"44bf451c-cc4a-4f7b-b519-a81919e3c67c","savedPayload":{"position":{"x":26938.08379991229,"y":18243.70523216879},"targetPosition":{"x":26492.174089175543,"y":18338.662656737823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInQuotedAsset","project":"Superalgos","id":"202c1666-dfa5-4f3f-8a00-fb2f04e906a3","savedPayload":{"position":{"x":27141.527686477177,"y":18760.17435970883},"targetPosition":{"x":26874.928420935088,"y":18587.15239263583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c4d2fd39-ec6a-4ba7-b064-7f088eef445f","savedPayload":{"position":{"x":26874.928420935088,"y":18587.15239263583},"targetPosition":{"x":26492.174089175543,"y":18338.662656737823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInQuotedAsset","project":"Superalgos","id":"3902659e-c3fa-4468-aa75-97761a3960e8","savedPayload":{"position":{"x":26653.123886502704,"y":19096.015661650654},"targetPosition":{"x":26586.957890978683,"y":18784.71514709761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"548c8dbe-b6e3-4cd5-b1ef-3c7443d2600e","savedPayload":{"position":{"x":26586.957890978683,"y":18784.71514709761},"targetPosition":{"x":26492.174089175543,"y":18338.662656737823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7d90cdc3-5e8f-44d8-bc46-e1741599bf1d","savedPayload":{"position":{"x":26037.770147060735,"y":18437.486835137264},"targetPosition":{"x":25660.368391485295,"y":18192.3992693805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7f9a5845-5e7f-4cb6-8838-7f100fd02239","savedPayload":{"position":{"x":25660.368391485295,"y":18192.3992693805},"targetPosition":{"x":25259.41545560053,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Limit Sell Orders","config":"{ \n \"codeName\": \"Market-Sell-Orders\", \n \"icon\": \"trend\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"actualRate\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"b3820f8b-80aa-4cc5-85b9-86b96dfbcce1","savedPayload":{"position":{"x":25502.986052646083,"y":17156.288503591237},"targetPosition":{"x":25735.305721942725,"y":17401.102353807884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c00751e8-d81f-4f91-bc75-0b9795e07930","savedPayload":{"position":{"x":25735.305721942725,"y":17401.102353807884},"targetPosition":{"x":25967.625391239366,"y":17645.916204024532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"94bf1309-ec3a-440b-8b94-c41fd4ca8545","savedPayload":{"position":{"x":25810.04977063663,"y":16989.566507756103},"targetPosition":{"x":25888.837580937998,"y":17317.741355890317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"da71c5a2-86ba-4166-be9f-3708f987cc1b","savedPayload":{"position":{"x":25888.837580937998,"y":17317.741355890317},"targetPosition":{"x":25967.625391239366,"y":17645.916204024532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1e0d98c2-45ed-4618-b345-03e1ba3e788e","savedPayload":{"position":{"x":25967.625391239366,"y":17645.916204024532},"targetPosition":{"x":26128.666472826982,"y":17942.516979547945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Status Open","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"108b2fb1-b4f4-4c2f-8277-9ada0a626c7e","savedPayload":{"position":{"x":25909.57244215658,"y":17323.81452317957},"targetPosition":{"x":26093.38811647415,"y":17606.86583986115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [2,2]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"96caa5ec-b3c0-4a5b-a609-39f917bba060","savedPayload":{"position":{"x":25918.68526102995,"y":16954.86590711603},"targetPosition":{"x":26006.03668875205,"y":17280.86587348859},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"3e9eabf5-230c-47c8-9791-b6d1d0fcbd10","savedPayload":{"position":{"x":26006.03668875205,"y":17280.86587348859},"targetPosition":{"x":26093.38811647415,"y":17606.86583986115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"ff583a1c-535e-4fe3-b269-179856b9d7c0","savedPayload":{"position":{"x":26111.051501706144,"y":17269.828371881482},"targetPosition":{"x":26093.38811647415,"y":17606.86583986115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"c00751e8-d81f-4f91-bc75-0b9795e07930"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"00c1b3ed-e045-412f-9812-5cdf0da6a2b0","savedPayload":{"position":{"x":26214.337299445688,"y":17291.782445918347},"targetPosition":{"x":26093.38811647415,"y":17606.86583986115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"da71c5a2-86ba-4166-be9f-3708f987cc1b"}}}],"id":"1acbf70d-ddc4-45ea-a605-dc799e3cf941","savedPayload":{"position":{"x":26093.38811647415,"y":17606.86583986115},"targetPosition":{"x":26128.666472826982,"y":17942.516979547945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Status Closed Cancel Event","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed' && record.exitType === 'Cancel Event'","project":"Superalgos","id":"7b0e5df5-98ea-41f5-9ab9-274d2f80c4a1","savedPayload":{"position":{"x":26163.017161810956,"y":17287.066787727093},"targetPosition":{"x":26224.521651664556,"y":17618.91531902993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [4,4]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"cd265e59-54ea-4ac4-a461-3a2cf5e6f815","savedPayload":{"position":{"x":26312.62683141309,"y":16949.690037602606},"targetPosition":{"x":26268.574241538823,"y":17284.302678316268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"002704e2-7ec8-4332-9c6b-2b7ec3275976","savedPayload":{"position":{"x":26268.574241538823,"y":17284.302678316268},"targetPosition":{"x":26224.521651664556,"y":17618.91531902993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"1c94214e-d239-473f-9b57-c1b9481aa889","savedPayload":{"position":{"x":26369.819146837355,"y":17314.29278556185},"targetPosition":{"x":26224.521651664556,"y":17618.91531902993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"c00751e8-d81f-4f91-bc75-0b9795e07930"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"aad1a99f-f1ab-41f9-b563-5ff7ebb1bc94","savedPayload":{"position":{"x":26456.841320961197,"y":17374.101468813282},"targetPosition":{"x":26224.521651664556,"y":17618.91531902993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"da71c5a2-86ba-4166-be9f-3708f987cc1b"}}}],"id":"6fa2b1b6-990f-4912-bbd5-4a0ea6a203cf","savedPayload":{"position":{"x":26224.521651664556,"y":17618.91531902993},"targetPosition":{"x":26128.666472826982,"y":17942.516979547945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Status Closed Filled","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed' && record.exitType === 'Filled'","project":"Superalgos","id":"62ec973b-1e1a-4971-aef1-b85a3c930c14","savedPayload":{"position":{"x":26411.232300457297,"y":17350.10540230856},"targetPosition":{"x":26341.062104806304,"y":17680.230217556218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"f6b3c7d4-71ae-40da-8153-98b2daa870f9","savedPayload":{"position":{"x":26678.562104806304,"y":17095.663070001723},"targetPosition":{"x":26509.812104806304,"y":17387.94664377897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"3befba49-736c-43ab-9360-30e84479a93a","savedPayload":{"position":{"x":26509.812104806304,"y":17387.94664377897},"targetPosition":{"x":26341.062104806304,"y":17680.230217556218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"bce0da06-80b7-49c2-b4f3-f695c032724b","savedPayload":{"position":{"x":26591.873483404925,"y":17454.398637910104},"targetPosition":{"x":26341.062104806304,"y":17680.230217556218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"c00751e8-d81f-4f91-bc75-0b9795e07930"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"e9646d18-7749-464d-ba64-3f0088dd1510","savedPayload":{"position":{"x":26649.38369676068,"y":17542.956600518137},"targetPosition":{"x":26341.062104806304,"y":17680.230217556218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"da71c5a2-86ba-4166-be9f-3708f987cc1b"}}}],"id":"21d42c93-a63d-445c-b6c5-1bcbe8c7f519","savedPayload":{"position":{"x":26341.062104806304,"y":17680.230217556218},"targetPosition":{"x":26128.666472826982,"y":17942.516979547945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"Status Closed Cancel Event","config":"{ \n\"codeName\": \"bullet-cancelled-order\", \n\"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.status === 'Closed' && record.exitType === 'Cancel Event'","project":"Superalgos","id":"c8644009-cc1f-4f31-aae3-132cceba5b21","savedPayload":{"position":{"x":26547.67417345872,"y":17665.316063312006},"targetPosition":{"x":26425.267248350396,"y":17781.47589796033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"End","config":"{ \n\"offsetX\": -5,\n \"offsetY\": 0\n }","project":"Superalgos","id":"fabdc105-a11c-4cca-8d1c-d021d97211a3","savedPayload":{"position":{"x":26589.354672417503,"y":17742.081992809646},"targetPosition":{"x":26425.267248350396,"y":17781.47589796033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End","id":"da71c5a2-86ba-4166-be9f-3708f987cc1b"}}},"id":"657d055d-113f-488b-9ceb-d70a107a3bdd","savedPayload":{"position":{"x":26425.267248350396,"y":17781.47589796033},"targetPosition":{"x":26128.666472826982,"y":17942.516979547945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Starting Point","config":"{ \n\"codeName\": \"bullet-limit-sell-order\", \n\"size\": 20\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin","config":"{ \n\"offsetX\": 10,\n \"offsetY\": 0\n }","project":"Superalgos","id":"f604099e-39da-4512-bc92-0d7601f3335f","savedPayload":{"position":{"x":26632.143182357173,"y":17889.599445018695},"targetPosition":{"x":26464.317612513776,"y":17907.238623195113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"c00751e8-d81f-4f91-bc75-0b9795e07930"}}},"id":"c1dd5167-003a-4e0f-a6c8-1def414ce9e2","savedPayload":{"position":{"x":26464.317612513776,"y":17907.238623195113},"targetPosition":{"x":26128.666472826982,"y":17942.516979547945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Status Closed Filled","config":"{ \n\"codeName\": \"bullet-limit-sell-order-filled\", \n\"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.status === 'Closed' && record.exitType === 'Filled'","project":"Superalgos","id":"0d5aa40b-2bc5-4e9d-98d5-889740aa8dd8","savedPayload":{"position":{"x":26620.960306934623,"y":18042.78951841247},"targetPosition":{"x":26452.268133345,"y":18038.37215838552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"End","config":"{ \n\"offsetX\": -10,\n \"offsetY\": 0\n }","project":"Superalgos","id":"ee0823df-f991-4999-98dc-e4c599e53ce0","savedPayload":{"position":{"x":26596.15116107975,"y":18126.543791181335},"targetPosition":{"x":26452.268133345,"y":18038.37215838552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End","id":"da71c5a2-86ba-4166-be9f-3708f987cc1b"}}},"id":"11995ff8-4aa7-488d-a484-af894565399e","savedPayload":{"position":{"x":26452.268133345,"y":18038.37215838552},"targetPosition":{"x":26128.666472826982,"y":17942.516979547945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"a02e87a5-147e-436b-8003-eb279c302e7e","savedPayload":{"position":{"x":26128.666472826982,"y":17942.516979547945},"targetPosition":{"x":25703.875208868343,"y":18467.0905035314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Limit Sell Order","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"763109eb-a5ab-4d4c-b1cf-c19451ce0a27","savedPayload":{"position":{"x":25603.880192707555,"y":19270.643344420576},"targetPosition":{"x":25943.664727212734,"y":19133.4313306997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1c6d8309-730f-4aff-932f-0cdaf376a6fc","savedPayload":{"position":{"x":25943.664727212734,"y":19133.4313306997},"targetPosition":{"x":26283.448915316356,"y":18995.97886393687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.rate","project":"Superalgos","id":"1c040bde-7e70-4660-ab5b-5e24c9ddce87","savedPayload":{"position":{"x":25550.776353057743,"y":19021.42189675584},"targetPosition":{"x":25917.07228089571,"y":19008.747608244656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f133340d-8b99-4e61-8ea5-78ef2eeb5cdb","savedPayload":{"position":{"x":25917.07228089571,"y":19008.747608244656},"targetPosition":{"x":26283.448915316356,"y":18995.97886393687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"ac243411-ad3c-4933-bba7-47f891508595","savedPayload":{"position":{"x":25586.167142118135,"y":18769.599089027077},"targetPosition":{"x":25934.762340415025,"y":18882.802451560336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"277ace9d-322d-4b10-91b3-83c0ceb3c9c7","savedPayload":{"position":{"x":25934.762340415025,"y":18882.802451560336},"targetPosition":{"x":26283.448915316356,"y":18995.97886393687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"ea9c94d0-0d70-41cf-b7d4-b5882435c421","savedPayload":{"position":{"x":25705.69753494415,"y":18544.719359365008},"targetPosition":{"x":25994.53347126927,"y":18770.339175768284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c08c26f6-898d-497a-934d-4f92309912e6","savedPayload":{"position":{"x":25994.53347126927,"y":18770.339175768284},"targetPosition":{"x":26283.448915316356,"y":18995.97886393687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Order Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.orderName","project":"Superalgos","id":"d3c90964-23b9-4e8a-922c-407b5db1287e","savedPayload":{"position":{"x":25894.931718125517,"y":18374.30387643248},"targetPosition":{"x":26089.166311217094,"y":18685.119019024212},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"44fd3bd9-3811-4998-bb18-cd12b5de0d3b","savedPayload":{"position":{"x":26089.166311217094,"y":18685.119019024212},"targetPosition":{"x":26283.448915316356,"y":18995.97886393687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Algorithm Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.algorithmName","project":"Superalgos","id":"3ab22667-9ed7-4aaf-9e14-1ffe047fc02e","savedPayload":{"position":{"x":26131.029321393624,"y":18278.90933905739},"targetPosition":{"x":26207.24159495418,"y":18637.42330847027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2f99a04d-d19c-4a65-8b53-a88e876281da","savedPayload":{"position":{"x":26207.24159495418,"y":18637.42330847027},"targetPosition":{"x":26283.448915316356,"y":18995.97886393687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Situation Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.situationName","project":"Superalgos","id":"899e0b29-6122-4129-a802-29781fda0f2f","savedPayload":{"position":{"x":26385.07473370472,"y":18270.044073552068},"targetPosition":{"x":26334.314499879314,"y":18633.016418963158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"287af8ad-7baa-4391-9b23-c72cb4cc8060","savedPayload":{"position":{"x":26334.314499879314,"y":18633.016418963158},"targetPosition":{"x":26283.448915316356,"y":18995.97886393687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"9bbeeda1-449b-4466-b44c-62b7041180f8","savedPayload":{"position":{"x":26597.239165561834,"y":18352.003465709826},"targetPosition":{"x":26455.497125608734,"y":18672.50628982101},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9a0b8434-d5e6-4461-9d36-01d261067eb5","savedPayload":{"position":{"x":26455.497125608734,"y":18672.50628982101},"targetPosition":{"x":26283.448915316356,"y":18995.97886393687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"680b5c5d-239e-46dc-a72c-eebbb5cfe659","savedPayload":{"position":{"x":26123.986400792084,"y":18305.824926236015},"targetPosition":{"x":25703.875208868343,"y":18467.0905035314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Limit Sell Order Stats","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Percentage Filled","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.percentageFilled","project":"Superalgos","id":"8d84cfd7-fdcc-4990-a6e6-79b2eab1770e","savedPayload":{"position":{"x":26986.0723962566,"y":18232.14371165281},"targetPosition":{"x":26858.42963948916,"y":18325.545570627848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c76e20c3-faba-45ee-8278-a9f130f4ad30","savedPayload":{"position":{"x":26858.42963948916,"y":18325.545570627848},"targetPosition":{"x":26646.795627538373,"y":18480.671535225363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Actual Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.actualRate","project":"Superalgos","id":"9ff1add9-79da-4b33-8e35-a469c41a46d8","savedPayload":{"position":{"x":27062.080870283033,"y":18545.620670988774},"targetPosition":{"x":26905.591419073797,"y":18521.417591734717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e49efdcf-a3cc-4cd9-9b41-b2504ed0b919","savedPayload":{"position":{"x":26905.591419073797,"y":18521.417591734717},"targetPosition":{"x":26646.795627538373,"y":18480.671535225363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"0083ab80-f439-4ffd-9bd0-8c674fb69168","savedPayload":{"position":{"x":26891.88105174628,"y":18822.21496175113},"targetPosition":{"x":26799.92639171644,"y":18693.27010543133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"94d87992-4131-490f-857a-dc74ae3804bc","savedPayload":{"position":{"x":26799.92639171644,"y":18693.27010543133},"targetPosition":{"x":26646.795627538373,"y":18480.671535225363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"69039d19-7d3c-4584-95bf-93e8e8a5c6a7","savedPayload":{"position":{"x":26148.334962136156,"y":18537.4860127995},"targetPosition":{"x":25703.875208868343,"y":18467.0905035314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Limit Sell Order Base Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInBaseAsset","project":"Superalgos","id":"99906d42-74ad-4e19-9c73-9e720d6e1dfc","savedPayload":{"position":{"x":27284.118642669102,"y":18700.96465435519},"targetPosition":{"x":26967.693916083277,"y":18733.821636006396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f37b0681-ed24-494f-9e5f-c0b366e9467e","savedPayload":{"position":{"x":26967.693916083277,"y":18733.821636006396},"targetPosition":{"x":26514.36200037679,"y":18781.263842312026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInBaseAsset","project":"Superalgos","id":"4ad577a9-ffba-44d3-9bd6-7557a4bc6419","savedPayload":{"position":{"x":27115.757142379465,"y":19268.57138872106},"targetPosition":{"x":26868.809412502742,"y":19068.470960417053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d38cd944-d1a6-4009-a3cb-0960ea7d8831","savedPayload":{"position":{"x":26868.809412502742,"y":19068.470960417053},"targetPosition":{"x":26514.36200037679,"y":18781.263842312026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInBaseAsset","project":"Superalgos","id":"70fa4665-f857-4a46-8f50-5d7bb3d61753","savedPayload":{"position":{"x":26595.17520314173,"y":19551.37925824329},"targetPosition":{"x":26562.04104559584,"y":19235.264803650254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dc3c07d1-ec99-42dd-845f-ed9f9931f394","savedPayload":{"position":{"x":26562.04104559584,"y":19235.264803650254},"targetPosition":{"x":26514.36200037679,"y":18781.263842312026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8a11b699-9bd2-4d50-82eb-d71649d55586","savedPayload":{"position":{"x":26053.59089152398,"y":18750.284679503828},"targetPosition":{"x":25703.875208868343,"y":18467.0905035314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Limit Sell Order Quoted Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInQuotedAsset","project":"Superalgos","id":"abd59872-d45c-453f-ad4a-5b9d1d7c8630","savedPayload":{"position":{"x":26955.59633919207,"y":19289.145386940756},"targetPosition":{"x":26665.39116256476,"y":19159.96491881869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ef9e9397-6ea9-4f19-ba19-9a689b500b3e","savedPayload":{"position":{"x":26665.39116256476,"y":19159.96491881869},"targetPosition":{"x":26248.531247833645,"y":18974.50594254728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInQuotedAsset","project":"Superalgos","id":"dfefabd5-e46a-4b40-84e7-1dfb6ed6cef1","savedPayload":{"position":{"x":26525.878839175366,"y":19697.01120346041},"targetPosition":{"x":26411.785498098317,"y":19399.980505865737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a2fecebd-c6d4-4f86-a112-820328a5c3ed","savedPayload":{"position":{"x":26411.785498098317,"y":19399.980505865737},"targetPosition":{"x":26248.531247833645,"y":18974.50594254728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInQuotedAsset","project":"Superalgos","id":"90942fbd-1de1-452a-a9f1-da7ef7b61478","savedPayload":{"position":{"x":25933.914514576503,"y":19682.149708045836},"targetPosition":{"x":26063.1824601456,"y":19391.27495675221},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"98523f5f-adda-4acb-8b75-94b40a2522ca","savedPayload":{"position":{"x":26063.1824601456,"y":19391.27495675221},"targetPosition":{"x":26248.531247833645,"y":18974.50594254728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"63364498-20df-4dce-838f-5de465d46f25","savedPayload":{"position":{"x":25865.140786163727,"y":18887.20169545514},"targetPosition":{"x":25703.875208868343,"y":18467.0905035314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a4778a65-1fda-4af2-955e-403778580781","savedPayload":{"position":{"x":25703.875208868343,"y":18467.0905035314},"targetPosition":{"x":25259.41545560053,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e0a3677a-adcd-4315-ad0d-eb51a2eb0d57","savedPayload":{"position":{"x":25259.41545560053,"y":18396.694994263296},"targetPosition":{"x":24941.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9b154c26-b393-4c3e-b3c1-46244c0c861d","savedPayload":{"position":{"x":24941.217404066585,"y":18714.893045797242},"targetPosition":{"x":24941.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}} \ No newline at end of file +{"type":"Trading Mine","name":"Masters","config":"{ \n\"codeName\": \"Masters\"\n}","project":"Superalgos","tradingBots":[{"type":"Trading Bot","name":"Low Frequency","config":"{\n\"codeName\": \"Low-Frequency\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Trading","config":"{\n \"codeName\": \"Trading\",\n \"sessionRunWaitTime\": 5000,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Low-Frequency-Trading-Process\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[],"outputDatasetFolders":[{"type":"Output Dataset Folder","name":"Trading Engine","project":"Superalgos","outputDatasets":[],"outputDatasetFolders":[{"type":"Output Dataset Folder","name":"Trading Episode","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Trading Episode Counters","project":"Superalgos","id":"ec8d74ba-a4ad-417a-b479-6bae95b8a1fe","savedPayload":{"position":{"x":24910.97457254189,"y":18457.46644293786},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"3ed03a02-381d-43fe-9faa-761728c53bd8"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading Episode Counters","project":"Superalgos","id":"22b0af33-8c2f-4194-839b-affd18f298d5","savedPayload":{"position":{"x":24834.601232363748,"y":18490.07023931273},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"15f5b150-f1cf-403c-8cb9-2c7c4e1db8e8"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading Episode Statistics","project":"Superalgos","id":"23ab91ae-2e78-4993-bb69-855f69cef1ce","savedPayload":{"position":{"x":24753.53736157276,"y":18508.085329665024},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"fc9dc0f7-35e0-4548-bb91-f920825d694f"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading Episode Statistics","project":"Superalgos","id":"d0a4515a-279d-4c27-8de2-168108861242","savedPayload":{"position":{"x":24670.543493063306,"y":18510.89823169951},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"91953362-8751-4440-a898-21245cd47c15"}}},{"type":"Output Dataset","name":"Multi-Period-Market Episode Candle","project":"Superalgos","id":"7fc80977-5b37-413e-8107-0a89a16e08b0","savedPayload":{"position":{"x":24588.445883487308,"y":18498.413155411115},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"17fb41f5-61b5-4433-9a10-950ff8216a7e"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Candle","project":"Superalgos","id":"a6888750-1043-420c-9253-633e1399c5e4","savedPayload":{"position":{"x":24510.040268473647,"y":18471.05526509864},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"bbc9467d-28bf-432b-9e49-582d1bcabfb9"}}},{"type":"Output Dataset","name":"Multi-Period-Market Episode Balances","project":"Superalgos","id":"0ad114df-f076-4a86-8c62-4c4a146da73c","savedPayload":{"position":{"x":24437.996657204443,"y":18429.756200904503},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"acddff59-b51b-4b45-b58f-71d4077755ee"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Balances","project":"Superalgos","id":"04b51302-957d-4365-ad55-9f89d60e261c","savedPayload":{"position":{"x":24374.76840845468,"y":18375.922352927064},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"213b8fe8-f772-41ea-a3f5-97867be555f7"}}},{"type":"Output Dataset","name":"Multi-Period-Market Distance To Trading Event","project":"Superalgos","id":"6d460b9b-5bf6-49ad-9611-70904cdc85be","savedPayload":{"position":{"x":24322.508684401608,"y":18311.386968292616},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"0ef6aa1d-3345-40f8-bc4f-4d2e2ff199ff"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Distance To Trading Event","project":"Superalgos","id":"ef6652ab-d2ef-482c-bfb4-a96bbd36d239","savedPayload":{"position":{"x":24282.997127269216,"y":18238.34772212322},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"c291211b-4012-4440-a302-8e15412b0990"}}},{"type":"Output Dataset","name":"Multi-Period-Market Episode Base Asset","project":"Superalgos","id":"83ceb16b-c882-4528-908a-d03387b475f1","savedPayload":{"position":{"x":24257.579255746765,"y":18159.291878346256},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"e8b67591-d484-4c08-a711-7a4418ee101a"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Base Asset","project":"Superalgos","id":"bf9c3526-8056-425f-954e-33bea9d757bf","savedPayload":{"position":{"x":24247.120644963576,"y":18076.91158890451},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"c6f34adc-2863-4ce6-8379-9b3cc1b37b73"}}},{"type":"Output Dataset","name":"Multi-Period-Market Episode Quoted Asset","project":"Superalgos","id":"c6af3132-aa9f-4703-8031-d078c75bc579","savedPayload":{"position":{"x":24251.977450366147,"y":17994.01221575066},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"99d1f17b-92cb-4544-88a2-fe463dd1de4b"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Quoted Asset","project":"Superalgos","id":"5390a269-2c8e-4eee-ba8d-23e026cd793d","savedPayload":{"position":{"x":24271.984279271586,"y":17913.41679761062},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"daf4e3e9-426d-44c3-8b43-6849778d972f"}}},{"type":"Output Dataset","name":"Multi-Period-Market Current Episode","project":"Superalgos","id":"a97335c5-a44f-4052-b66b-b5bedbe6b3a0","savedPayload":{"position":{"x":24306.45982311707,"y":17837.869914785595},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"26f6b248-21de-4898-9ee5-58b728a04267"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Current Episode","project":"Superalgos","id":"f448ea93-263f-419d-95a4-518301c1968d","savedPayload":{"position":{"x":24354.230058605797,"y":17769.944225761697},"targetPosition":{"x":24696.86240363471,"y":18061.668541066385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ecdfe444-00e6-4ad4-a482-14b59a1e752a"}}}],"outputDatasetFolders":[],"id":"995b0e5f-ea6a-4142-9877-4edd429d8bd7","savedPayload":{"position":{"x":24696.86240363471,"y":18061.668541066385},"targetPosition":{"x":25046.57808629035,"y":17778.47436509396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Strategy","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Current Strategy","project":"Superalgos","id":"6907e0fe-9f3e-466b-85ca-04f83447b5c3","savedPayload":{"position":{"x":24397.82260813974,"y":18249.822810246827},"targetPosition":{"x":24602.118333022536,"y":17848.869874362063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7b4550d3-69d1-41ac-bad3-e2283f798bb8"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Current Strategy","project":"Superalgos","id":"6f3c4eff-ed37-4fe6-862c-39d96ea9e10e","savedPayload":{"position":{"x":24201.16539713777,"y":18053.165599244858},"targetPosition":{"x":24602.118333022536,"y":17848.869874362063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"49d55660-71e9-4c5a-8b1a-198934844e4a"}}},{"type":"Output Dataset","name":"Multi-Period-Market Last Strategy","project":"Superalgos","id":"922a493f-254d-48dc-870b-83e96a0df0fe","savedPayload":{"position":{"x":24157.658579754723,"y":17778.47436509396},"targetPosition":{"x":24602.118333022536,"y":17848.869874362063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"a2e7b5d2-8556-4c58-b2f6-a9c27c939e94"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Last Strategy","project":"Superalgos","id":"0a0466df-1c89-4ecb-beb0-1e3bedaf4953","savedPayload":{"position":{"x":24283.92028148859,"y":17530.671822828117},"targetPosition":{"x":24602.118333022536,"y":17848.869874362063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"76ff2401-1d4f-4dda-87f6-5e0b7af3eab2"}}}],"outputDatasetFolders":[],"id":"fafacd7f-c6d4-425a-b483-68054946b94c","savedPayload":{"position":{"x":24602.118333022536,"y":17848.869874362063},"targetPosition":{"x":25046.57808629035,"y":17778.47436509396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Position","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Current Position","project":"Superalgos","id":"2e19e13d-2709-4622-856d-c5efa444eff5","savedPayload":{"position":{"x":24331.240331320878,"y":17956.828098898823},"targetPosition":{"x":24626.466894366607,"y":17617.208787798576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7506dd91-ad9d-4aad-bb1a-604bc5d3fe8d"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Current Position","project":"Superalgos","id":"7f943c9b-5a42-4590-a02b-dc52e26ab8bd","savedPayload":{"position":{"x":24232.88802615388,"y":17835.373116909428},"targetPosition":{"x":24626.466894366607,"y":17617.208787798576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"06678152-1082-4f00-9275-22ffde715469"}}},{"type":"Output Dataset","name":"Multi-Period-Market Last Position","project":"Superalgos","id":"2f77df6b-e0f3-4a23-bf2c-bc2531567744","savedPayload":{"position":{"x":24182.007141098795,"y":17687.60429706668},"targetPosition":{"x":24626.466894366607,"y":17617.208787798576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"485671ff-0d50-4c08-958c-93e657cd238f"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Last Position","project":"Superalgos","id":"a464a09e-8f91-43f1-8752-85194adc3927","savedPayload":{"position":{"x":24184.734661815157,"y":17531.344739879132},"targetPosition":{"x":24626.466894366607,"y":17617.208787798576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"a909df42-6192-4bbd-9f38-e8800149aaa1"}}},{"type":"Output Dataset","name":"Multi-Period-Market Stop Loss","project":"Superalgos","id":"30e7e833-628e-4133-8960-e0e19d268425","savedPayload":{"position":{"x":24240.741609050656,"y":17385.441654089052},"targetPosition":{"x":24626.466894366607,"y":17617.208787798576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"b0276d53-e43b-4f1b-a5d8-b118921970dd"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Stop Loss","project":"Superalgos","id":"63595c6e-3a95-4f40-8016-3d7957eb0944","savedPayload":{"position":{"x":24343.27271839418,"y":17267.493105142938},"targetPosition":{"x":24626.466894366607,"y":17617.208787798576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b5d51a14-eed9-405f-90d7-e91c0ceed659"}}},{"type":"Output Dataset","name":"Multi-Period-Market Take Profit","project":"Superalgos","id":"504a520b-1aa2-44c3-95e0-1aa96444f847","savedPayload":{"position":{"x":24479.961224860886,"y":17191.725428778882},"targetPosition":{"x":24626.466894366607,"y":17617.208787798576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"67fd9603-5184-4570-bebb-07c33974b40c"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Take Profit","project":"Superalgos","id":"a1c1a1e1-2617-4c71-b10b-4a0f9542da34","savedPayload":{"position":{"x":24634.320477263384,"y":17167.2773249782},"targetPosition":{"x":24626.466894366607,"y":17617.208787798576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"d1fc090a-18c0-4ff6-87d6-726d276bad43"}}}],"outputDatasetFolders":[],"id":"945db015-7460-4822-b1ce-9086206ddbb5","savedPayload":{"position":{"x":24626.466894366607,"y":17617.208787798576},"targetPosition":{"x":25046.57808629035,"y":17778.47436509396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Stages","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Open Stage","project":"Superalgos","id":"4d3664a4-74a0-428f-8790-93ec819ab48d","savedPayload":{"position":{"x":24337.900551298226,"y":17575.264351944043},"targetPosition":{"x":24763.38391031792,"y":17428.75868243832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"b553683f-14f4-48be-91a6-0fb5381887e4"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Open Stage","project":"Superalgos","id":"e5c413a5-599d-4544-a8ee-240de57b4bc2","savedPayload":{"position":{"x":24313.452447497544,"y":17420.905099541545},"targetPosition":{"x":24763.38391031792,"y":17428.75868243832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"3287fb46-854d-41de-8a42-285f9c10d4fa"}}},{"type":"Output Dataset","name":"Multi-Period-Market Close Stage","project":"Superalgos","id":"d1ac39c5-f175-40a4-b55c-2631e262b360","savedPayload":{"position":{"x":24343.27271839418,"y":17267.493105142938},"targetPosition":{"x":24763.38391031792,"y":17428.75868243832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"0c30c4d3-3e58-4422-a178-450c24f95001"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Close Stage","project":"Superalgos","id":"a7425ac8-801e-4d44-8beb-43e0670cd6dd","savedPayload":{"position":{"x":24423.764599217673,"y":17133.532119392592},"targetPosition":{"x":24763.38391031792,"y":17428.75868243832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"4903a08c-90b6-4726-aa4d-1d8a0acdbd77"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trigger Stage","project":"Superalgos","id":"84379ea1-432c-42c2-910b-ce2d64cae90c","savedPayload":{"position":{"x":24545.219581207068,"y":17035.179814225594},"targetPosition":{"x":24763.38391031792,"y":17428.75868243832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"a179150b-2eaa-45ef-a7fa-14a1decf7dfc"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trigger Stage","project":"Superalgos","id":"433f36c0-cd49-410a-8649-603edcd1c9bc","savedPayload":{"position":{"x":24692.988401049817,"y":16984.29892917051},"targetPosition":{"x":24763.38391031792,"y":17428.75868243832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"493f0951-e638-4da1-88b4-1c1d3829046e"}}},{"type":"Output Dataset","name":"Multi-Period-Market Manage Stage","project":"Superalgos","id":"7213f716-e04b-4f34-afdc-2189c1cb65ec","savedPayload":{"position":{"x":24849.247958237363,"y":16987.02644988687},"targetPosition":{"x":24763.38391031792,"y":17428.75868243832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"56d1a25b-54b1-419c-a323-f2fad41de0ec"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Manage Stage","project":"Superalgos","id":"d0a10c39-8aeb-4700-bc2d-7711a272f9da","savedPayload":{"position":{"x":24995.151044027443,"y":17043.03339712237},"targetPosition":{"x":24763.38391031792,"y":17428.75868243832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"fef1dba7-fc21-4338-b75e-a040d71dbde5"}}}],"outputDatasetFolders":[],"id":"dc792f37-8560-4ef0-82f1-1d620b8d1754","savedPayload":{"position":{"x":24763.38391031792,"y":17428.75868243832},"targetPosition":{"x":25046.57808629035,"y":17778.47436509396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Orders","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Market Buy Orders","project":"Superalgos","id":"234a4f87-b71a-4354-8e78-a8adb1c9d04e","savedPayload":{"position":{"x":24527.791268348305,"y":17295.998374431183},"targetPosition":{"x":24976.182577022246,"y":17334.014611826147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"a2ea8001-2143-4055-b1d3-525d95fa8e6f"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Market Buy Orders","project":"Superalgos","id":"35e9dacf-0814-4d91-8ee4-ee9674252333","savedPayload":{"position":{"x":24549.918585966214,"y":17189.79599330211},"targetPosition":{"x":24976.182577022246,"y":17334.014611826147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"557357c6-f814-4bf9-9426-82fc5e22c028"}}},{"type":"Output Dataset","name":"Multi-Period-Market Market Sell Orders","project":"Superalgos","id":"fad3d464-a7e1-4fe6-a6e5-c90cd2c2ccd6","savedPayload":{"position":{"x":24596.818817337735,"y":17091.9750740683},"targetPosition":{"x":24976.182577022246,"y":17334.014611826147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"917cfdae-b736-4ed5-ad8e-d572c49ea489"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Market Sell Orders","project":"Superalgos","id":"4d0c0274-c640-40d9-a617-e632fe0307ac","savedPayload":{"position":{"x":24665.766291490956,"y":17008.22061299106},"targetPosition":{"x":24976.182577022246,"y":17334.014611826147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"3c878a50-6d76-412b-95d7-f2e546960293"}}},{"type":"Output Dataset","name":"Multi-Period-Market Limit Buy Orders","project":"Superalgos","id":"b3970d06-c11b-4e23-9688-4305533c0697","savedPayload":{"position":{"x":24752.75403184197,"y":16943.400114913107},"targetPosition":{"x":24976.182577022246,"y":17334.014611826147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"df8cfaa4-a4d4-4bc1-9fa2-4f8e91e45a87"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Limit Buy Orders","project":"Superalgos","id":"0b27dde5-84e1-45b5-80b5-675bf309a7c4","savedPayload":{"position":{"x":24852.726627109147,"y":16901.28071156982},"targetPosition":{"x":24976.182577022246,"y":17334.014611826147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"12652573-9506-4d3e-82bb-64b1bb9e7ce0"}}},{"type":"Output Dataset","name":"Multi-Period-Market Limit Sell Orders","project":"Superalgos","id":"4090e0da-861e-4681-bc52-ec95cfb59a6d","savedPayload":{"position":{"x":24959.87403344115,"y":16884.3102295857},"targetPosition":{"x":24976.182577022246,"y":17334.014611826147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f645108f-4648-497f-b361-0be5b84c233a"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Limit Sell Orders","project":"Superalgos","id":"ef44fbac-4f91-47a8-983a-a34a9bff9e8b","savedPayload":{"position":{"x":25067.96923304694,"y":16893.474931688474},"targetPosition":{"x":24976.182577022246,"y":17334.014611826147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e98191d1-5b13-42eb-bd52-31e3c6830188"}}},{"type":"Output Dataset","name":"Multi-Period-Market Last Market Order","project":"Superalgos","id":"7e238b18-d0f3-426c-b10d-194e81d6e5bf","savedPayload":{"position":{"x":25170.7301258355,"y":16928.242198704265},"targetPosition":{"x":24976.182577022246,"y":17334.014611826147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"768b42e9-59fe-494f-9e05-3be57fb17ca8"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Last Market Order","project":"Superalgos","id":"4bc6b052-2f68-4335-8f0d-930d869a289d","savedPayload":{"position":{"x":25262.184622238598,"y":16986.59148344799},"targetPosition":{"x":24976.182577022246,"y":17334.014611826147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"26a39916-4f2d-42ab-ae86-7ab622f80624"}}},{"type":"Output Dataset","name":"Multi-Period-Market Last Limit Order","project":"Superalgos","id":"614692d9-50af-4f5f-9790-ef471eecd20b","savedPayload":{"position":{"x":25337.01771934886,"y":17065.13173758137},"targetPosition":{"x":24976.182577022246,"y":17334.014611826147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f9263cd7-460d-461c-be7b-ed2a69d38d11"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Last Limit Order","project":"Superalgos","id":"3520e492-6504-4db7-9cab-1a118a31f89b","savedPayload":{"position":{"x":25390.880389569473,"y":17159.29848701637},"targetPosition":{"x":24976.182577022246,"y":17334.014611826147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f3d5b047-d9c2-4e71-8fce-6e9be3499556"}}}],"outputDatasetFolders":[],"id":"d6594a81-44be-4a3d-9186-b590e4df0d73","savedPayload":{"position":{"x":24976.182577022246,"y":17334.014611826147},"targetPosition":{"x":25046.57808629035,"y":17778.47436509396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"914ae121-5a93-4ee5-9a99-6aba6a39aead","savedPayload":{"position":{"x":25052.57808629035,"y":17778.47436509396},"targetPosition":{"x":25472.68927821409,"y":17939.739942389344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Trading System","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Trading System Errors","project":"Superalgos","id":"fffef2bc-4075-4d0d-b7ea-f66f3c794439","savedPayload":{"position":{"x":24848.043146083233,"y":17641.515576746246},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2ef33675-fc52-49fd-a8ef-bc5da1711dd1"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Errors","project":"Superalgos","id":"82523512-94b4-4b08-8932-049265af5daa","savedPayload":{"position":{"x":24835.406391167166,"y":17568.276348547904},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2d0dd4c2-4f4c-4d8c-b9a5-9ca62f186369"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Highlights","project":"Superalgos","id":"777f4b37-3c50-4ae8-8005-42aa960cdae6","savedPayload":{"position":{"x":24834.996765875156,"y":17493.956066464092},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"6e0f951c-25e7-4b92-85da-8be04d424bd0"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Highlights","project":"Superalgos","id":"da5be91d-2f77-4147-b31b-c2f273af28d1","savedPayload":{"position":{"x":24846.825443717356,"y":17420.581994051536},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"fa53ecfb-a558-4810-b6f8-1f9c6c8bfc5b"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Values","project":"Superalgos","id":"eae22a32-d154-4854-a471-f6b5febd41d8","savedPayload":{"position":{"x":24870.569769197293,"y":17350.155584733722},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9c4ec2f8-f4a8-45b9-aba3-b093a7b8f86a"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Values","project":"Superalgos","id":"2e848753-bdf4-4303-93ce-cea96b78fb3a","savedPayload":{"position":{"x":24905.58205901271,"y":17284.59788736889},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b3d3fe62-e714-4cb9-a78d-55bc0add1d7c"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Status","project":"Superalgos","id":"beca64ab-2509-43f5-bca6-095c6eaf6ecf","savedPayload":{"position":{"x":24950.907269167674,"y":17225.697145044996},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b83dc93-dc14-44d9-8f8c-889f39a952da"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Status","project":"Superalgos","id":"2aa4ae9f-6938-4967-b0ce-97c97e729127","savedPayload":{"position":{"x":25005.309046083155,"y":17175.060016469855},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"0f8dcda3-1eab-439d-956c-c6eb9b1c481f"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Progress","project":"Superalgos","id":"cde9d10e-f3fc-445c-8ab8-f765f428e7d6","savedPayload":{"position":{"x":25067.303451099753,"y":17134.067750509854},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"77735fc0-9ce6-4dec-a3ad-8075a22eda40"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Progress","project":"Superalgos","id":"e277a4df-c725-4164-ba3f-bcd595ba5f60","savedPayload":{"position":{"x":25135.199438455966,"y":17103.838509321522},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2fde11bd-4515-4a4e-9dc0-f6869dd3a04e"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Running","project":"Superalgos","id":"63ba83d9-9098-4fe0-bc15-8c4aa138cb98","savedPayload":{"position":{"x":25207.144982608348,"y":17085.196867802726},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"c7b45884-6cdf-43f7-a1e5-c5325effd207"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Running","project":"Superalgos","id":"dca719f2-e5b1-4676-a5cc-0aa78cdf817d","savedPayload":{"position":{"x":25281.177596660455,"y":17078.651321338966},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"a21cbc62-e6d8-4286-b0ff-430071d46700"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Announcements","project":"Superalgos","id":"d1a11ace-444a-4709-8464-230cf0b5b4a4","savedPayload":{"position":{"x":25355.27786388957,"y":17084.380415374806},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9e29a710-30c0-4faa-b71a-f4ee109673a2"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Announcements","project":"Superalgos","id":"5cc7df48-a3d5-49c4-ab98-95d977d7ac12","savedPayload":{"position":{"x":25427.424522170655,"y":17102.22787515958},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b7e24195-a9d0-45e7-9dba-447db8000feb"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Warnings","project":"Superalgos","id":"030ff471-5471-4e48-8da1-24e48bd7a95e","savedPayload":{"position":{"x":25495.649598738117,"y":17131.706868515223},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"0381cc1b-24c3-4705-9c76-94129e8605ff"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Warnings","project":"Superalgos","id":"5be3c8fd-243e-47ca-90e5-cc263c14da8b","savedPayload":{"position":{"x":25558.092091352682,"y":17172.01328534898},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b93b5cc3-7d61-4071-8eba-de15a4fea64b"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Infos","project":"Superalgos","id":"bdeac361-8693-44df-a47d-10eb881a0f3e","savedPayload":{"position":{"x":25613.04873159127,"y":17222.047671680626},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"cd834a3e-1b23-4e15-a068-59c235a90f89"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Infos","project":"Superalgos","id":"540aea70-6c45-46e7-a4c7-717731f50872","savedPayload":{"position":{"x":25659.020445569426,"y":17280.44521988094},"targetPosition":{"x":25283.65778882998,"y":17528.644486450172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e24a4dcf-5adb-4c63-b9db-3ba2a7ece789"}}}],"outputDatasetFolders":[],"id":"c01cb90b-67d6-4e38-8720-46c405e790ca","savedPayload":{"position":{"x":25289.65778882998,"y":17528.644486450172},"targetPosition":{"x":25472.68927821409,"y":17939.739942389344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Simulation Objects","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Episodes","project":"Superalgos","id":"f80a4896-072b-4e06-9d1b-e68998fef8ad","savedPayload":{"position":{"x":25301.536388553945,"y":17209.869191403413},"targetPosition":{"x":25627.954855509473,"y":17519.628750465603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"38264ecd-10e7-4a62-a2ca-9b607c30e72c"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episodes","project":"Superalgos","id":"4d029e2f-760c-4ad2-b3db-336f28f84b60","savedPayload":{"position":{"x":25444.923366125364,"y":17108.53329452643},"targetPosition":{"x":25627.954855509473,"y":17519.628750465603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"cdc39b61-9aa5-46d5-9e80-915e0c2d545d"}}},{"type":"Output Dataset","name":"Multi-Period-Market Strategies","project":"Superalgos","id":"cf8fb7ee-dc19-4e15-b6c5-41a36ba68a50","savedPayload":{"position":{"x":25616.17522877093,"y":17069.7829542266},"targetPosition":{"x":25627.954855509473,"y":17519.628750465603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"03d1a187-b188-4ad7-b99e-6e4f6c6f0278"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Strategies","project":"Superalgos","id":"a312982f-f91a-475f-a27c-582a8312a4cd","savedPayload":{"position":{"x":25789.220432804857,"y":17099.517558541862},"targetPosition":{"x":25627.954855509473,"y":17519.628750465603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"58a5a046-53a1-43a7-bb76-0c29d94ef579"}}}],"outputDatasetFolders":[{"type":"Output Dataset Folder","name":"Orders","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Market Buy Orders","project":"Superalgos","id":"7548b90c-e06e-4733-bea8-09f5338b5170","savedPayload":{"position":{"x":25736.92539867225,"y":16790.489820789164},"targetPosition":{"x":25937.714414571663,"y":17193.210283510074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"45609efb-0edc-4aa9-bc12-f5b4ca6dc5bf"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Market Buy Orders","project":"Superalgos","id":"669a6acd-3570-4ffd-901f-61087b26c682","savedPayload":{"position":{"x":25886.772968376106,"y":16746.10294845561},"targetPosition":{"x":25937.714414571663,"y":17193.210283510074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"5eed53d0-a3e7-4082-b7f1-cb321b3d306b"}}},{"type":"Output Dataset","name":"Multi-Period-Market Market Sell Orders","project":"Superalgos","id":"6cad3b70-d38a-46a8-ad81-899f8b2bd79f","savedPayload":{"position":{"x":26042.76482830682,"y":16755.64381933112},"targetPosition":{"x":25937.714414571663,"y":17193.210283510074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"6112bd4d-07cb-41db-98c4-e286d172b5c0"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Market Sell Orders","project":"Superalgos","id":"4fe326fe-2bc5-4808-b1f4-4d234d3ec8d8","savedPayload":{"position":{"x":26186.08605796209,"y":16817.96166357985},"targetPosition":{"x":25937.714414571663,"y":17193.210283510074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"07cd5668-5e0f-4385-9c02-72eebc99344a"}}},{"type":"Output Dataset","name":"Multi-Period-Market Limit Buy Orders","project":"Superalgos","id":"57dd9169-fc8f-4ff9-8019-bfd6c3dd62a9","savedPayload":{"position":{"x":26299.45000184941,"y":16925.54002947197},"targetPosition":{"x":25937.714414571663,"y":17193.210283510074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"b82fb0f9-74c1-42e6-961c-a696214ef079"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Limit Buy Orders","project":"Superalgos","id":"e06f03ae-e9e5-4a58-ba22-e5f0c3251de0","savedPayload":{"position":{"x":26369.183295262348,"y":17065.40337839331},"targetPosition":{"x":25937.714414571663,"y":17193.210283510074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2e03f52e-0cd2-46b4-9c10-0b8516ef9c71"}}},{"type":"Output Dataset","name":"Multi-Period-Market Limit Sell Orders","project":"Superalgos","id":"0319a6de-a73d-4a29-883b-28e473f3c5f1","savedPayload":{"position":{"x":26386.8750738615,"y":17220.68212630076},"targetPosition":{"x":25937.714414571663,"y":17193.210283510074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"356495a9-b063-495d-b06d-5281c7c0007e"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Limit Sell Orders","project":"Superalgos","id":"1e6c50d7-3828-4f96-828f-8447a99b10f1","savedPayload":{"position":{"x":26350.391448044968,"y":17372.647364526434},"targetPosition":{"x":25937.714414571663,"y":17193.210283510074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"934ab813-127e-4bbf-aa71-09b3cdadc0d0"}}}],"outputDatasetFolders":[],"id":"035fbced-8761-4dca-b634-ffae62724f7f","savedPayload":{"position":{"x":25937.714414571663,"y":17193.210283510074},"targetPosition":{"x":25627.954855509473,"y":17519.628750465603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Stages","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Trigger Stages","project":"Superalgos","id":"2faef203-7d0e-47d2-9d36-47f38ed179a6","savedPayload":{"position":{"x":26007.659898263788,"y":16887.693438464572},"targetPosition":{"x":26039.050311448646,"y":17336.597261081493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"e951c491-c864-4668-9d70-c48df90d8342"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trigger Stages","project":"Superalgos","id":"e676f3b6-e65b-42e7-84be-44c12be7f3f7","savedPayload":{"position":{"x":26163.087121566296,"y":16904.02949790925},"targetPosition":{"x":26039.050311448646,"y":17336.597261081493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ace4518d-bfe1-49e2-af7b-4ff9559fe6a9"}}},{"type":"Output Dataset","name":"Multi-Period-Market Open Stages","project":"Superalgos","id":"c8bd6875-e505-458b-afa7-80b779b7cf99","savedPayload":{"position":{"x":26303.55367498026,"y":16972.539613612767},"targetPosition":{"x":26039.050311448646,"y":17336.597261081493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"613bf56d-986e-4a94-9b39-4f0ac3300b0c"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Open Stages","project":"Superalgos","id":"3d2d5c0c-8bf1-4c5c-aa6b-8ca822df0c7c","savedPayload":{"position":{"x":26412.117219098414,"y":17084.960454519656},"targetPosition":{"x":26039.050311448646,"y":17336.597261081493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"44a0d895-2a7e-4f9a-b9a7-81dc32bf30e4"}}},{"type":"Output Dataset","name":"Multi-Period-Market Manage Stages","project":"Superalgos","id":"eec39a94-771d-4dd6-b1c0-1856a759f24a","savedPayload":{"position":{"x":26475.683388272842,"y":17227.73240806164},"targetPosition":{"x":26039.050311448646,"y":17336.597261081493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f6e10004-71dd-4ae9-8c1f-0b71de02d274"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Manage Stages","project":"Superalgos","id":"c8340bc7-1214-452e-b8b2-5d2a83e971f2","savedPayload":{"position":{"x":26486.58516436437,"y":17383.635069551936},"targetPosition":{"x":26039.050311448646,"y":17336.597261081493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"8f3984d8-e735-4dab-a9cc-51e97d704154"}}},{"type":"Output Dataset","name":"Multi-Period-Market Close Stages","project":"Superalgos","id":"c889f02f-9bba-4f5b-a1a3-70c76e5bbb22","savedPayload":{"position":{"x":26443.507632283272,"y":17533.864277136578},"targetPosition":{"x":26039.050311448646,"y":17336.597261081493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ee0f2bab-26b6-44c6-af1c-efbca2c765cd"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Close Stages","project":"Superalgos","id":"2052f35f-d3ab-425d-97b3-5b69edb3d1ef","savedPayload":{"position":{"x":26351.646578155196,"y":17660.300171233885},"targetPosition":{"x":26039.050311448646,"y":17336.597261081493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"cbd3905d-fafc-47f3-8a61-20c9aab10d86"}}}],"outputDatasetFolders":[],"id":"1b4dcc33-ac77-4f53-9a63-47e8426f3776","savedPayload":{"position":{"x":26039.050311448646,"y":17336.597261081493},"targetPosition":{"x":25627.954855509473,"y":17519.628750465603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Position","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Positions","project":"Superalgos","id":"d2c1174c-ce8a-404f-98fd-d3b91895ef6e","savedPayload":{"position":{"x":26193.234389019824,"y":17072.906538666033},"targetPosition":{"x":26077.800651748476,"y":17507.84912372706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"55df9376-2806-429d-b43d-b96700787f74"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Positions","project":"Superalgos","id":"9ca58bc6-4b21-4b70-ba5d-c6abafa3fee0","savedPayload":{"position":{"x":26311.095998146862,"y":17123.046211382498},"targetPosition":{"x":26077.800651748476,"y":17507.84912372706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"fd62b468-93fa-44e0-941f-fff7ea4b04ea"}}},{"type":"Output Dataset","name":"Multi-Period-Market Position Base Asset","project":"Superalgos","id":"57931139-936d-4ee2-99eb-9b9628321398","savedPayload":{"position":{"x":26410.05740576955,"y":17204.36032754608},"targetPosition":{"x":26077.800651748476,"y":17507.84912372706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"a0ff2796-59dd-4aa4-93ed-ba4601b9de5d"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Position Base Asset","project":"Superalgos","id":"ea9f9e0d-114d-4ed4-9b61-7d155a881969","savedPayload":{"position":{"x":26482.10134718845,"y":17310.26130105888},"targetPosition":{"x":26077.800651748476,"y":17507.84912372706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"9985d32d-c070-4593-8a2a-ec8bc1c78cbb"}}},{"type":"Output Dataset","name":"Multi-Period-Market Position Quoted Asset","project":"Superalgos","id":"57285cd0-120d-43a2-b4a8-d25bc166c6ce","savedPayload":{"position":{"x":26521.391250731624,"y":17432.169664864225},"targetPosition":{"x":26077.800651748476,"y":17507.84912372706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"abab2ab2-3a9b-49bd-8935-9bb01c113761"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Position Quoted Asset","project":"Superalgos","id":"f085adfd-36e2-4ebd-9a42-eff08f337439","savedPayload":{"position":{"x":26524.744082080055,"y":17560.20912834357},"targetPosition":{"x":26077.800651748476,"y":17507.84912372706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"40ac7181-100d-4b65-b7fd-a8103cda2300"}}},{"type":"Output Dataset","name":"Multi-Period-Market Stop Loss","project":"Superalgos","id":"09a58e0e-2309-447e-8be4-c272385c49bd","savedPayload":{"position":{"x":26491.888214777948,"y":17684.006695645818},"targetPosition":{"x":26077.800651748476,"y":17507.84912372706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"0ea22a69-e7cb-4fcf-b7ae-4b7233b196c4"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Stop Loss","project":"Superalgos","id":"19c2422b-f0f9-4714-bf28-e58897c75355","savedPayload":{"position":{"x":26425.485435792758,"y":17793.53302412063},"targetPosition":{"x":26077.800651748476,"y":17507.84912372706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"75b13383-2771-4f58-b2c4-ffadad2e9519"}}},{"type":"Output Dataset","name":"Multi-Period-Market Take Profit","project":"Superalgos","id":"8555e8dd-5892-435e-9051-a8ac0d901815","savedPayload":{"position":{"x":26330.915303365324,"y":17879.91494201313},"targetPosition":{"x":26077.800651748476,"y":17507.84912372706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"3cd59aa1-0590-43b6-9fb7-c85276ac132e"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Take Profit","project":"Superalgos","id":"fd77d264-2a52-4b8a-9a85-2510a1cb6f68","savedPayload":{"position":{"x":26215.83932719469,"y":17936.154300068712},"targetPosition":{"x":26077.800651748476,"y":17507.84912372706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"916d5610-87ae-47e7-9067-9a406141e3df"}}}],"outputDatasetFolders":[],"id":"31ecd1c1-4248-4b51-9066-e6c6b9c4a819","savedPayload":{"position":{"x":26077.800651748476,"y":17507.84912372706},"targetPosition":{"x":25627.954855509473,"y":17519.628750465603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"059498d1-eae4-4842-8846-8d21b32ab139","savedPayload":{"position":{"x":25633.954855509473,"y":17519.628750465603},"targetPosition":{"x":25472.68927821409,"y":17939.739942389344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f50da2e7-a341-4272-9947-db65142b1e23","savedPayload":{"position":{"x":25472.68927821409,"y":17939.739942389344},"targetPosition":{"x":25655.7207675982,"y":18350.835398328516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Low Frequency Trading","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"e7fd528f-46bb-4a13-a11f-b6994236e3e7","savedPayload":{"position":{"x":25291.66312012947,"y":17720.269056028683},"targetPosition":{"x":25702.75857606864,"y":17903.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a8577e6c-9afc-4c9e-87ef-ee38531de864"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"0517c2f1-627f-44e2-b58d-6d3f72d6c931","savedPayload":{"position":{"x":25368.343404603813,"y":17602.191772551305},"targetPosition":{"x":25702.75857606864,"y":17903.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"0b6d7ced-ccef-4a98-909c-443125480c10","savedPayload":{"position":{"x":25477.75857606864,"y":17513.589113709793},"targetPosition":{"x":25702.75857606864,"y":17903.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[],"dataMineDataDependencies":[{"type":"Data Mine Data Dependencies","name":"Masters","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"Webhooks","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"External Signals Single File","project":"Superalgos","id":"4d262c83-ea85-4c13-b2c2-e06273f0dce3","savedPayload":{"position":{"x":24714.128609369203,"y":17369.058508141694},"targetPosition":{"x":25161.663462284927,"y":17416.096316612136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Single File","id":"c52d1012-5e3b-41a0-b5af-84098b0594bf"}}}],"dataDependencyFolders":[],"id":"6b94d500-7c95-4178-b714-a13261f88ddf","savedPayload":{"position":{"x":25161.663462284927,"y":17416.096316612136},"targetPosition":{"x":25609.19831520065,"y":17463.13412508258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Candles Volumes","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"d49e652b-79c6-409b-abac-22604b4e88aa","savedPayload":{"position":{"x":24808.39142755848,"y":17505.10263569847},"targetPosition":{"x":25198.10285926148,"y":17280.10263569847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}},{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"16310d45-0ce4-4c0d-a307-c205aeb48e64","savedPayload":{"position":{"x":24750.568006345755,"y":17233.064827228027},"targetPosition":{"x":25198.10285926148,"y":17280.10263569847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Daily","project":"Superalgos","id":"1f7365be-a68e-491a-8446-32ba2ea0e7a3","savedPayload":{"position":{"x":24863.68768779665,"y":16978.993862836982},"targetPosition":{"x":25198.10285926148,"y":17280.10263569847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2e683057-f911-4105-bc77-16f2706d1915"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Market","project":"Superalgos","id":"3cf1d63c-155a-45ae-a2b3-36faabb5ea9f","savedPayload":{"position":{"x":25104.542598393487,"y":16839.936215368256},"targetPosition":{"x":25198.10285926148,"y":17280.10263569847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1"}}}],"dataDependencyFolders":[],"id":"c226ac3e-1e4d-48fc-8b5e-27ea871abeeb","savedPayload":{"position":{"x":25198.10285926148,"y":17280.10263569847},"targetPosition":{"x":25609.19831520065,"y":17463.13412508258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Bollinger Bands","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Bollinger Bands Multi-Period-Market","project":"Superalgos","id":"af7dc60c-d5d2-433b-ab09-fd37c61654a7","savedPayload":{"position":{"x":24834.61672340561,"y":17255.585613089082},"targetPosition":{"x":25274.78314373582,"y":17162.02535222109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f5b2a7d8-fc32-44a3-a002-9b0fc30a9719"}}},{"type":"Data Dependency","name":"Bollinger Bands Multi-Period-Daily","project":"Superalgos","id":"a7dd4c24-e5b3-4ddf-b350-44c5ef206eea","savedPayload":{"position":{"x":24863.68768779665,"y":16978.993862836982},"targetPosition":{"x":25274.78314373582,"y":17162.02535222109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"506104fa-e99a-4a46-930e-176bce311aff"}}},{"type":"Data Dependency","name":"Percentage Bandwidth Multi-Period-Market","project":"Superalgos","id":"eeb73829-8815-4e9d-be40-80ce46049381","savedPayload":{"position":{"x":25049.78314373582,"y":16772.313920518092},"targetPosition":{"x":25274.78314373582,"y":17162.02535222109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"207e9481-0730-4304-a938-cfe223d70856"}}},{"type":"Data Dependency","name":"Percentage Bandwidth Multi-Period-Daily","project":"Superalgos","id":"05418e2b-de4a-4855-ad43-82dd22c5ab57","savedPayload":{"position":{"x":25321.820952206264,"y":16714.490499305368},"targetPosition":{"x":25274.78314373582,"y":17162.02535222109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e60d62dd-87f7-4f2d-ac21-3ac5c30a50ea"}}}],"dataDependencyFolders":[],"id":"42a0318e-15de-4d4f-937a-aa93c8bf6799","savedPayload":{"position":{"x":25274.78314373582,"y":17162.02535222109},"targetPosition":{"x":25609.19831520065,"y":17463.13412508258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Bollinger Channels","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Bollinger Channels Objects Market","project":"Superalgos","id":"38f62ac3-67a7-4bfe-bede-7c64ffce5585","savedPayload":{"position":{"x":24941.034826345156,"y":17151.5643733297},"targetPosition":{"x":25384.19831520065,"y":17073.42269337958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"610cd062-ab88-4892-b711-0fb430305c61"}}},{"type":"Data Dependency","name":"Bollinger Channels Objects Daily","project":"Superalgos","id":"63c7dc87-60f4-450b-b03f-460e24871381","savedPayload":{"position":{"x":24941.034826345156,"y":16995.28101342946},"targetPosition":{"x":25384.19831520065,"y":17073.42269337958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"64910fea-c92a-4a55-850a-aa62d98b478e"}}},{"type":"Data Dependency","name":"Bollinger Channels Market","project":"Superalgos","id":"31fd8b9d-5d0f-4df7-9db8-a92565e93280","savedPayload":{"position":{"x":24994.48688349765,"y":16848.42269337958},"targetPosition":{"x":25384.19831520065,"y":17073.42269337958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"22c1f2c6-3838-4657-add8-2e01d7056917"}}},{"type":"Data Dependency","name":"Bollinger Channels Daily","project":"Superalgos","id":"3edfa5d9-1267-45df-95a7-d6a0fabf0dc5","savedPayload":{"position":{"x":25094.943890841707,"y":16728.70269397604},"targetPosition":{"x":25384.19831520065,"y":17073.42269337958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"96b4e65b-e6db-44a0-80a5-ceb9d68a09ec"}}},{"type":"Data Dependency","name":"Bollinger Sub-Channels Objects Market","project":"Superalgos","id":"ac0cddc1-4817-45fa-a960-038a8f014fa2","savedPayload":{"position":{"x":25230.2892507041,"y":16650.56101402592},"targetPosition":{"x":25384.19831520065,"y":17073.42269337958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"869f615e-0cc0-44fd-8648-4a951c23a410"}}},{"type":"Data Dependency","name":"Bollinger Sub-Channels Objects Daily","project":"Superalgos","id":"37ed91b7-4a0a-4f56-af52-697b97e866cf","savedPayload":{"position":{"x":25384.19831520065,"y":16623.42269337958},"targetPosition":{"x":25384.19831520065,"y":17073.42269337958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"029479ae-275d-4854-ad3e-66948656a053"}}},{"type":"Data Dependency","name":"Bollinger Sub-Channels Market","project":"Superalgos","id":"82e17882-4e77-47d6-8ac4-709232f21771","savedPayload":{"position":{"x":25538.1073796972,"y":16650.56101402592},"targetPosition":{"x":25384.19831520065,"y":17073.42269337958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"f8d44a4d-3771-4a71-97ca-dc604ff565d3"}}},{"type":"Data Dependency","name":"Bollinger Sub-Channels Daily","project":"Superalgos","id":"a592c4ef-e086-4081-9c99-7c557376627d","savedPayload":{"position":{"x":25673.452739559594,"y":16728.70269397604},"targetPosition":{"x":25384.19831520065,"y":17073.42269337958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"ca71e765-0f66-4b18-b500-847b9d16169b"}}}],"dataDependencyFolders":[],"id":"5b8b4ab5-f886-4639-89e5-c8c4eca90f9c","savedPayload":{"position":{"x":25384.19831520065,"y":17073.42269337958},"targetPosition":{"x":25609.19831520065,"y":17463.13412508258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Candle Channels","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Candles Channels Multi-Period-Market","project":"Superalgos","id":"1470209a-172e-40ca-bec0-25f57eb4ee5c","savedPayload":{"position":{"x":25104.542598393487,"y":16839.936215368256},"targetPosition":{"x":25515.63805433266,"y":17022.967704752366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"df7d1cd7-95b0-499c-b51a-772c3fb8a2b0"}}},{"type":"Data Dependency","name":"Candles Channels Multi-Period-Daily","project":"Superalgos","id":"81c48ba3-d186-4b22-8981-752d3d28e554","savedPayload":{"position":{"x":25290.63805433266,"y":16633.256273049366},"targetPosition":{"x":25515.63805433266,"y":17022.967704752366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"07734f1c-e2e7-4a35-8567-6a996c68883e"}}},{"type":"Data Dependency","name":"Candles Channels Objects Multi-Period-Market","project":"Superalgos","id":"f72351b7-367b-459e-a297-b5abec7155f8","savedPayload":{"position":{"x":25562.675862803102,"y":16575.432851836642},"targetPosition":{"x":25515.63805433266,"y":17022.967704752366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"566b9df4-da86-4b4f-a3f4-ef8a76443714"}}},{"type":"Data Dependency","name":"Candles Channels Objects Multi-Period-Daily","project":"Superalgos","id":"c1d62c3f-6345-4ff9-9170-26a7ff91d1f2","savedPayload":{"position":{"x":25816.746827194147,"y":16688.552533287537},"targetPosition":{"x":25515.63805433266,"y":17022.967704752366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"8a7d224b-7571-4e1a-8b8f-8a35aa25dc63"}}}],"dataDependencyFolders":[],"id":"4e734cf8-48e2-49a7-836f-b1249bef2547","savedPayload":{"position":{"x":25515.63805433266,"y":17022.967704752366},"targetPosition":{"x":25609.19831520065,"y":17463.13412508258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Resistances and Supports","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Resistances Multi-Period-Market","project":"Superalgos","id":"f7bf772f-37d3-47a8-a243-a158e2efa091","savedPayload":{"position":{"x":25321.820952206264,"y":16714.490499305368},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"44e905fc-719f-453b-a567-fd5e3bfcae91"}}},{"type":"Data Dependency","name":"Resistances Multi-Period-Daily","project":"Superalgos","id":"39757544-c0bc-4ccf-b786-fc961d845db0","savedPayload":{"position":{"x":25562.675862803102,"y":16575.432851836642},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f4530d48-3239-4ab0-8c4d-d611cd55fde3"}}},{"type":"Data Dependency","name":"Supports Multi-Period-Market","project":"Superalgos","id":"70ed349c-815a-4eef-b06b-5c8690bf5268","savedPayload":{"position":{"x":25839.267613055203,"y":16604.503816227683},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4a1bd251-76ed-4530-8723-08e41d50f12d"}}},{"type":"Data Dependency","name":"Supports Multi-Period-Daily","project":"Superalgos","id":"b7b2012d-6b3a-4a81-a841-0b08061a6b60","savedPayload":{"position":{"x":26045.947555374092,"y":16790.599272166855},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"deaaf4ec-9352-40b6-af9a-8541a73a5e13"}}}],"dataDependencyFolders":[],"id":"955c58c7-5e4f-4f91-9a12-0c6a81fb9ba0","savedPayload":{"position":{"x":25656.236123671093,"y":17015.599272166855},"targetPosition":{"x":25609.19831520065,"y":17463.13412508258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Fees Band","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Fees Band 0.2 Multi-Period-Market","project":"Superalgos","id":"05b4030f-7240-4f9c-a03a-45591d7c9079","savedPayload":{"position":{"x":25745.191996114318,"y":16604.503816227683},"targetPosition":{"x":25792.22980458476,"y":17052.038669143407},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9c699a57-f0cf-434c-8ef8-40aac182200e"}}},{"type":"Data Dependency","name":"Fees Band 0.2 Multi-Period-Daily","project":"Superalgos","id":"93dee846-2d29-46f7-8298-bc17475a360d","savedPayload":{"position":{"x":26156.287452053486,"y":16787.535305611793},"targetPosition":{"x":25792.22980458476,"y":17052.038669143407},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2dd03ed7-736e-4959-ad8e-8108e59b8796"}}}],"dataDependencyFolders":[],"id":"dc1f8f70-5255-48aa-945a-c6ca9d9eb9cf","savedPayload":{"position":{"x":25792.22980458476,"y":17052.038669143407},"targetPosition":{"x":25609.19831520065,"y":17463.13412508258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Volume Analysis","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Volume Analysis Multi-Period-Market","project":"Superalgos","id":"943209e4-1d8c-4a82-a6c3-51fb0a92a848","savedPayload":{"position":{"x":26003.86734893013,"y":16688.552533287537},"targetPosition":{"x":25910.307088062138,"y":17128.71895361775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"1d4df142-34c0-4439-a532-208c56cbb349"}}},{"type":"Data Dependency","name":"Volume Analysis Multi-Period-Daily","project":"Superalgos","id":"489ed763-0358-4ad6-8b67-27479e37456d","savedPayload":{"position":{"x":26338.282520394958,"y":16989.661306149024},"targetPosition":{"x":25910.307088062138,"y":17128.71895361775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"cccbe688-75e9-405c-a087-8c1bb953430f"}}}],"dataDependencyFolders":[],"id":"967f32f4-bf9a-48ee-b029-0aac6d7f6c6f","savedPayload":{"position":{"x":25910.307088062138,"y":17128.71895361775},"targetPosition":{"x":25609.19831520065,"y":17463.13412508258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Candle Analysis","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Candle Analysis Multi-Period-Market","project":"Superalgos","id":"f28c08ba-4f8e-4f1d-a8d6-9b448332ca91","savedPayload":{"position":{"x":26223.90974690365,"y":16848.42269337958},"targetPosition":{"x":25998.90974690365,"y":17238.13412508258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f65e4bf0-df3b-414c-aeba-f21dadb5d7ec"}}},{"type":"Data Dependency","name":"Candle Analysis Multi-Period-Daily","project":"Superalgos","id":"6f2baf08-d5ba-4e97-99a0-d3b1860779ae","savedPayload":{"position":{"x":26448.90974690365,"y":17238.13412508258},"targetPosition":{"x":25998.90974690365,"y":17238.13412508258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2127b8f1-932e-41c4-8eb9-1e0b6f02c2ec"}}}],"dataDependencyFolders":[],"id":"9372e4cf-b684-4535-b1db-0806cb0f21cd","savedPayload":{"position":{"x":25998.90974690365,"y":17238.13412508258},"targetPosition":{"x":25609.19831520065,"y":17463.13412508258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bb373fba-6e46-49cb-96f3-3993b0fabddf","savedPayload":{"position":{"x":25609.19831520065,"y":17463.13412508258},"targetPosition":{"x":25702.75857606864,"y":17903.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Masters","id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"SMA","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"f6c100bb-6d55-4413-885a-cf72c0c88737","savedPayload":{"position":{"x":25051.32356560553,"y":17419.160283167195},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"3b21f9d7-2cbc-4c23-80c8-cc5e5b06a22c"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"f222eb9d-03d7-4d07-8359-eab4175236f8","savedPayload":{"position":{"x":25004.285757135083,"y":17337.68840901969},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2c338fe0-385f-45ab-b210-b98ef013228d"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"f6916d88-c2c3-47b1-b1e2-17b07cc7f806","savedPayload":{"position":{"x":24975.214792744042,"y":17248.217180503572},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"78a6ef37-4df8-4ac8-83a0-c9a732467c59"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"3ef5ba50-e0e4-43e3-9ff6-7e5a38cdb27a","savedPayload":{"position":{"x":24965.381213074255,"y":17154.65691963558},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f155e2ed-7082-4021-a4ff-a6f3cfd5683d"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"c54592c1-b3ff-4e26-afd7-2c99a41bc480","savedPayload":{"position":{"x":24975.214792744042,"y":17061.09665876759},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"af9b9cef-2a74-486f-b79e-047d68669a1f"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"da27910b-25c6-4353-aaa6-11833ceff9e2","savedPayload":{"position":{"x":25004.285757135083,"y":16971.62543025147},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"de5cfa30-edbf-4d5b-8d7f-facfb69a0f3e"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"94e0b16a-5479-41cc-ac49-c3731d7649a7","savedPayload":{"position":{"x":25051.32356560553,"y":16890.153556103967},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Muti-Period-Market","id":"a5d28568-fb58-469a-9820-b9f0e8eab705"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"f53b92bf-81a9-460c-8606-d7393f7ea1b9","savedPayload":{"position":{"x":25114.272440212768,"y":16820.241748170753},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"01f32aa3-55e9-4f8c-80c7-997b52073274"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"7255a015-bcba-46cc-bce3-a086bde7cd9c","savedPayload":{"position":{"x":25190.381213074255,"y":16764.945487932582},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"c0862b3d-d35a-4d3e-8d80-258b8a01c37c"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"7d125034-419a-4213-99f9-17ee742b5060","savedPayload":{"position":{"x":25276.32356560553,"y":16726.68148730276},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f5050eb2-0a99-464e-b5e2-2d8f40453e9a"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"40e2db15-fa28-4e7f-a06f-55db43a82c9b","savedPayload":{"position":{"x":25368.343404603813,"y":16707.122066719858},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"6ba76363-0f50-4e67-8678-3eb4fd6d07d6"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"4428af09-2752-4150-8a93-e67835f9f153","savedPayload":{"position":{"x":25462.419021544698,"y":16707.122066719858},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"92d92b3e-6870-499b-bfec-33bab220bf62"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"22181196-5218-4820-97e8-7e5611db578a","savedPayload":{"position":{"x":25554.43886054298,"y":16726.68148730276},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4c486321-22e0-4991-9a1c-571bada649ad"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"43064f0e-46fb-4ddf-9aa1-2e60cfc2bcdd","savedPayload":{"position":{"x":25640.381213074255,"y":16764.945487932582},"targetPosition":{"x":25415.381213074255,"y":17154.65691963558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"819688c9-c7bd-444b-9658-2a4379125c72"}}}],"dataDependencyFolders":[],"id":"865ca804-48d0-453f-859b-59da94c60e7f","savedPayload":{"position":{"x":25415.381213074255,"y":17154.65691963558},"targetPosition":{"x":25749.796384539084,"y":17455.76569249707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"EMA","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"45ed8174-7f73-4ef4-9b97-c7fdd06d3440","savedPayload":{"position":{"x":25206.236123671093,"y":17015.599272166855},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ea1af06a-2584-43f0-aecf-ec8ad9169e9c"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"896fadd1-75bd-4c5f-9ee6-e0bb01aef101","savedPayload":{"position":{"x":25216.06970334088,"y":16922.039011298864},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e7f5899c-fc4c-412d-a8db-77c1bef8ed21"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"fede78a8-c43d-466b-bdbd-37e06a3f5c1b","savedPayload":{"position":{"x":25245.14066773192,"y":16832.567782782746},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"85e3f0ce-5331-4c0b-900a-e73aaf53d96e"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"7b1ed9bd-230c-416f-a429-53162bee94c6","savedPayload":{"position":{"x":25292.178476202367,"y":16751.09590863524},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e04edb48-09ab-4f92-beb7-14ba647de7d6"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"9baa62ae-c198-46b7-8ac0-4e682cac04d1","savedPayload":{"position":{"x":25355.127350809606,"y":16681.184100702027},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"6b6840f7-3b76-474a-9d27-9515cbcd6499"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"cb48a108-c578-4423-a809-b93fe5dc1178","savedPayload":{"position":{"x":25431.236123671093,"y":16625.887840463856},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ef3d5a7d-11eb-4ead-8e24-49ac7c80b0c7"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"6c98f48d-b32a-4afa-b6e2-f5879d75d2cb","savedPayload":{"position":{"x":25517.178476202367,"y":16587.623839834036},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4e36a5a5-7a03-43a9-b3e0-0c5763c29199"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"f8ffaf2b-65bc-4000-8d70-6a5bd073330e","savedPayload":{"position":{"x":25609.19831520065,"y":16568.06441925113},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"15ccbcff-318d-46db-93f2-d649b57fd52a"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"1474cd98-5fa6-40cb-997b-c845639bb284","savedPayload":{"position":{"x":25703.273932141536,"y":16568.06441925113},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5586aa74-2ecb-4b71-83ea-d621aa400660"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"523d76b3-5cb7-43a2-84d3-2cd9e416f4cd","savedPayload":{"position":{"x":25795.29377113982,"y":16587.623839834036},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"0198fa3f-98e3-4c57-a4a4-a7a8e27905d3"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"116353fa-9a96-4b92-aae0-3360a555417e","savedPayload":{"position":{"x":25881.236123671093,"y":16625.887840463856},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ea61dfed-8f93-4b4f-8575-61ca2547ea90"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"3bed9aac-6c45-43d3-8886-f415cf8e2a0c","savedPayload":{"position":{"x":25957.34489653258,"y":16681.184100702027},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b251aca0-1996-4d13-99ed-6fb9796ec8d6"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"c6c3542a-4fac-429b-9887-d4aa78602149","savedPayload":{"position":{"x":26020.29377113982,"y":16751.09590863524},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"dea3491f-aae7-4419-a98f-108cf5d69b87"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"c6efe95b-6f58-4916-b879-eafe896d42fe","savedPayload":{"position":{"x":26067.331579610265,"y":16832.567782782746},"targetPosition":{"x":25656.236123671093,"y":17015.599272166855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"6624337b-4afd-44b8-a2ea-3f1779ddda7e"}}}],"dataDependencyFolders":[],"id":"c4bcaef1-029d-42a2-adaf-c89bd5e340ed","savedPayload":{"position":{"x":25656.236123671093,"y":17015.599272166855},"targetPosition":{"x":25749.796384539084,"y":17455.76569249707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"MACD","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"4ebcee82-fb06-48c5-bd00-be086fe9b10d","savedPayload":{"position":{"x":25609.124963770802,"y":16732.073969851346},"targetPosition":{"x":25932.827873923194,"y":17044.670236557897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"01d43ed0-2a80-4eca-bee6-db2fe40470fc"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"dc57c67e-aee7-43e5-812c-1a2b6f4b0523","savedPayload":{"position":{"x":25735.56085786811,"y":16640.21291572327},"targetPosition":{"x":25932.827873923194,"y":17044.670236557897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"dd5d3067-ff7b-4353-ba4f-c030bd3da796"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"929cdf22-03cf-4808-87c9-410788b306ff","savedPayload":{"position":{"x":25885.79006545275,"y":16597.135383642173},"targetPosition":{"x":25932.827873923194,"y":17044.670236557897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"19b1d791-d2ea-4f25-a6e1-fe0a64450745"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"6acc9176-a33a-4d95-a065-8a7f278d3d7b","savedPayload":{"position":{"x":26041.692726943045,"y":16608.0371597337},"targetPosition":{"x":25932.827873923194,"y":17044.670236557897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ec2611a6-699b-45a5-beec-679dd4b7734a"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"0cc6f43f-ed39-4ff4-9811-cc3ad841bc42","savedPayload":{"position":{"x":26184.46468048503,"y":16671.603328908128},"targetPosition":{"x":25932.827873923194,"y":17044.670236557897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"c390cbd3-0ba0-4507-8614-42c88f4ce7e6"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"756737a7-a6c7-4f2a-845b-2881814537d2","savedPayload":{"position":{"x":26296.88552139192,"y":16780.166873026283},"targetPosition":{"x":25932.827873923194,"y":17044.670236557897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"29e18539-f188-4d29-9531-25cd3ee8f282"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"a4c788e6-3c63-46a3-b752-f584eab5213b","savedPayload":{"position":{"x":26365.395637095437,"y":16920.633426440247},"targetPosition":{"x":25932.827873923194,"y":17044.670236557897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"89254c6c-9be2-4037-b063-467edc660d10"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"ba2ac8fe-e021-444d-957e-84be68d6f918","savedPayload":{"position":{"x":26381.731696540115,"y":17076.060649742754},"targetPosition":{"x":25932.827873923194,"y":17044.670236557897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"8a9dde13-e4b8-40f3-80bc-ea51050b2f08"}}}],"dataDependencyFolders":[],"id":"cc197aba-39d0-4736-8c2b-bda6eb134bf0","savedPayload":{"position":{"x":25932.827873923194,"y":17044.670236557897},"targetPosition":{"x":25749.796384539084,"y":17455.76569249707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"RSI","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"d346bec8-3710-4295-8953-20350461715c","savedPayload":{"position":{"x":26364.507816242083,"y":16841.05426079407},"targetPosition":{"x":26139.507816242083,"y":17230.76569249707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5ec62760-e144-4496-98ab-0415a4b315ec"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"3e7e6c8d-9473-49b2-b2fd-4a3f6dc58edc","savedPayload":{"position":{"x":26589.507816242083,"y":17230.76569249707},"targetPosition":{"x":26139.507816242083,"y":17230.76569249707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f1556d09-f134-4678-83fb-04002d1dcd34"}}}],"dataDependencyFolders":[],"id":"285b291e-023c-4c30-9739-b75f72e47ef8","savedPayload":{"position":{"x":26139.507816242083,"y":17230.76569249707},"targetPosition":{"x":25749.796384539084,"y":17455.76569249707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"35f72951-fd87-499a-9094-2674c68386c3","savedPayload":{"position":{"x":25749.796384539084,"y":17455.76569249707},"targetPosition":{"x":25702.75857606864,"y":17903.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Sparta","id":"9cfffc48-486a-48cb-b641-98c82e314d3a"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"Super Trend","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"aa25c359-b0ad-471a-9beb-2f36a5343e25","savedPayload":{"position":{"x":25210.191245981965,"y":16945.115952620785},"targetPosition":{"x":25621.286701921137,"y":17128.147442004894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7c8e7a6f-99c8-4d90-9f44-e3e9e909eb88"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"75981994-324a-46e8-bb53-fa2d3ce6d2ca","savedPayload":{"position":{"x":25574.248893450695,"y":16680.61258908917},"targetPosition":{"x":25621.286701921137,"y":17128.147442004894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"c17b5d3f-7cf7-418a-92b8-f8c67a120446"}}}],"dataDependencyFolders":[],"id":"182ce481-aaa7-4eb6-a941-87ea4bd18e5f","savedPayload":{"position":{"x":25621.286701921137,"y":17128.147442004894},"targetPosition":{"x":25885.79006545275,"y":17492.20508947362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Wave Trend","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"b5de16ef-ce7e-4dc2-9719-0715ed9b6de7","savedPayload":{"position":{"x":25574.248893450695,"y":16680.61258908917},"targetPosition":{"x":25838.75225698231,"y":17044.670236557897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9b727bdd-1684-43e1-a39c-fbd14ce64828"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"3ab774f7-128d-4d79-870d-eeedeb53674e","savedPayload":{"position":{"x":26021.78374636642,"y":16633.574780618725},"targetPosition":{"x":25838.75225698231,"y":17044.670236557897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"3bf983d5-4d3c-46f8-a130-9e621b76e62d"}}}],"dataDependencyFolders":[],"id":"afd3b0b9-8d11-4d78-a777-de60564a8162","savedPayload":{"position":{"x":25838.75225698231,"y":17044.670236557897},"targetPosition":{"x":25885.79006545275,"y":17492.20508947362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Donchian Channel","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"1a048d09-ae81-4514-a9bd-605420d81ba4","savedPayload":{"position":{"x":26021.78374636642,"y":16633.574780618725},"targetPosition":{"x":26068.82155483686,"y":17081.10963353445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7298225c-3b68-4f34-a935-fc0ab3d8f662"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"981bf6e9-f3e9-4818-9db0-f97924723a2b","savedPayload":{"position":{"x":26432.879202305587,"y":16816.606270002834},"targetPosition":{"x":26068.82155483686,"y":17081.10963353445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"50ed783e-0e71-4903-8a82-854c8bd2ed6e"}}}],"dataDependencyFolders":[],"id":"cb76ca1e-8d5e-4155-a830-105e5b2e9591","savedPayload":{"position":{"x":26068.82155483686,"y":17081.10963353445},"targetPosition":{"x":25885.79006545275,"y":17492.20508947362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"DMI Directional Movement","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"dc3dfe16-1717-4205-84bc-cfb4901cd882","savedPayload":{"position":{"x":26432.879202305587,"y":16816.606270002834},"targetPosition":{"x":26249.847712921477,"y":17227.701725942006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ffc7f78b-9ec3-4218-b76f-47233d535a17"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"475e4ca7-1deb-400d-8f00-2cb436ccf866","savedPayload":{"position":{"x":26697.3825658372,"y":17180.663917471564},"targetPosition":{"x":26249.847712921477,"y":17227.701725942006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"9b222dca-e8c2-4392-9c3e-7c970dca4a52"}}}],"dataDependencyFolders":[],"id":"b5dc9ede-b1c0-4c9d-8af3-47dca243d9ae","savedPayload":{"position":{"x":26249.847712921477,"y":17227.701725942006},"targetPosition":{"x":25885.79006545275,"y":17492.20508947362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Ichimoku Cloud","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"c077f92a-4899-4a01-961c-da5c6a460ed4","savedPayload":{"position":{"x":26697.3825658372,"y":17180.663917471564},"targetPosition":{"x":26333.324918368475,"y":17445.167281003178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"80018870-2528-42bf-a3a7-6f0b5e44d9c9"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"2ae91f5c-28de-40d1-93ba-89e50bca120b","savedPayload":{"position":{"x":26744.420374307647,"y":17628.198770387287},"targetPosition":{"x":26333.324918368475,"y":17445.167281003178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ef8da44c-8cc5-41fc-add6-f2feff945632"}}}],"dataDependencyFolders":[],"id":"bb7bd319-2d2a-4ee7-af94-e21613f73543","savedPayload":{"position":{"x":26333.324918368475,"y":17445.167281003178},"targetPosition":{"x":25885.79006545275,"y":17492.20508947362},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4753c44e-2dfa-48c4-8e93-159d17f4511b","savedPayload":{"position":{"x":25885.79006545275,"y":17492.20508947362},"targetPosition":{"x":25702.75857606864,"y":17903.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Zeus","id":"d2083ac0-43e2-41e4-83c7-eb09a6f29353"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"ATR","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"0bd705dc-9278-4d39-b266-f142a556c94c","savedPayload":{"position":{"x":25602.914413045364,"y":16874.414517551642},"targetPosition":{"x":25980.316168620804,"y":17119.502083308405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"67695466-be2d-43b4-9824-83baa7a08412"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"0681e9a9-9895-4420-aa40-598f1474919a","savedPayload":{"position":{"x":25819.05059132542,"y":16699.390891384664},"targetPosition":{"x":25980.316168620804,"y":17119.502083308405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e3d0bccf-5f97-4902-92df-4ac8fe8c41a8"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"e59288bb-e428-4686-837f-1475ae86f7b0","savedPayload":{"position":{"x":26096.784738916936,"y":16684.835461478324},"targetPosition":{"x":25980.316168620804,"y":17119.502083308405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2570d2c7-72e3-4131-97dc-a9f97f493e93"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"75de7f05-ae08-462d-9840-c7e8ce83db21","savedPayload":{"position":{"x":26330.031851276442,"y":16836.307907335977},"targetPosition":{"x":25980.316168620804,"y":17119.502083308405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"93eb665f-d903-4825-9fb1-2783e917ac89"}}}],"dataDependencyFolders":[],"id":"fb94c6f8-1001-49ee-95fb-300c10e94c7d","savedPayload":{"position":{"x":25980.316168620804,"y":17119.502083308405},"targetPosition":{"x":26003.86734893013,"y":17568.885373947964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"ROC","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"06cc9d0c-7a8d-4da0-8ab8-1724352c44f0","savedPayload":{"position":{"x":26134.3246635978,"y":16818.083267269838},"targetPosition":{"x":26304.976121791617,"y":17234.470202483135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"40268fec-e5e8-4b05-9f27-c4072ebda94a"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"4384ac6e-1f40-426a-baea-42e353612ffd","savedPayload":{"position":{"x":26331.887991066884,"y":16785.275644087655},"targetPosition":{"x":26304.976121791617,"y":17234.470202483135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"cb60d68b-b11d-4317-8830-65c212a8c728"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"f44fb6a3-2dee-47ad-850b-37fb02cc7d82","savedPayload":{"position":{"x":26524.12109277358,"y":16841.436512205426},"targetPosition":{"x":26304.976121791617,"y":17234.470202483135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"41a488be-c66c-458d-99fc-490b9e8172ef"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"727b8b9a-b93b-4c75-bfe7-24e5a5117140","savedPayload":{"position":{"x":26672.949845340612,"y":16975.442522924583},"targetPosition":{"x":26304.976121791617,"y":17234.470202483135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"30276899-0d68-40e3-9c35-a28442485b55"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"d62366e0-983c-44f4-8091-0c5d35c7fd3a","savedPayload":{"position":{"x":26748.8968890572,"y":17160.752142346322},"targetPosition":{"x":26304.976121791617,"y":17234.470202483135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9c6b7d85-01f5-449c-a5be-9a357b6588bc"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"68de0e1d-b715-457f-8317-3de7f4a95ba7","savedPayload":{"position":{"x":26736.919980485916,"y":17360.662527670836},"targetPosition":{"x":26304.976121791617,"y":17234.470202483135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"66f59b6d-9d4b-4cef-9ffd-aed019219809"}}}],"dataDependencyFolders":[],"id":"b9d44070-286a-4e06-a1b1-e8f0a4c443cb","savedPayload":{"position":{"x":26304.976121791617,"y":17234.470202483135},"targetPosition":{"x":26003.86734893013,"y":17568.885373947964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Stochastic","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"4e1b5819-e232-4e83-b823-adaaea13f6be","savedPayload":{"position":{"x":26830.652395145127,"y":17300.246627881876},"targetPosition":{"x":26453.250639569687,"y":17545.33419363864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"88b1ff0e-ad99-474c-8833-7b76a5a57ebd"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"e326bbc5-5a60-47a7-bc0c-f5cbf73ed6f4","savedPayload":{"position":{"x":26854.203575454452,"y":17749.629918521434},"targetPosition":{"x":26453.250639569687,"y":17545.33419363864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"4b941e0d-8b0a-41e2-bc20-54e0bc0d936a"}}}],"dataDependencyFolders":[],"id":"8906261a-12ed-426f-9e61-e3364d3416f9","savedPayload":{"position":{"x":26453.250639569687,"y":17545.33419363864},"targetPosition":{"x":26003.86734893013,"y":17568.885373947964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"590a75c2-4bf6-48e0-9d78-161dde4ab1dd","savedPayload":{"position":{"x":26003.86734893013,"y":17568.885373947964},"targetPosition":{"x":25702.75857606864,"y":17903.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Alpha","id":"511bef1e-62d8-4ff9-8d87-15bd0d3d630c"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"Candles Probabilities","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"701b2fe3-63a4-42ea-8258-a6ccfbb4dda1","savedPayload":{"position":{"x":26317.47000777164,"y":16838.589113709793},"targetPosition":{"x":26317.47000777164,"y":17288.589113709793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"85c67513-347a-4948-9121-dee04543fcff"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"ad078b3b-3e2f-41d4-b47d-0276b121a9e1","savedPayload":{"position":{"x":26707.18143947464,"y":17063.589113709793},"targetPosition":{"x":26317.47000777164,"y":17288.589113709793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"fa17370b-0a9c-4350-9cce-1df4be39b58c"}}}],"dataDependencyFolders":[],"id":"9661bd50-2f23-4064-b92c-969cc5c43a8a","savedPayload":{"position":{"x":26317.47000777164,"y":17288.589113709793},"targetPosition":{"x":26092.47000777164,"y":17678.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Candles Channels Probabilities","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"ef21ded7-724f-4808-92ee-0aea97adb1b6","savedPayload":{"position":{"x":26932.18143947464,"y":17453.300545412792},"targetPosition":{"x":26542.47000777164,"y":17678.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"fdee2b9c-3036-4db2-af42-b3507a6ffacf"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"94b23c10-760f-470a-b662-a81279f667b3","savedPayload":{"position":{"x":26932.18143947464,"y":17903.300545412792},"targetPosition":{"x":26542.47000777164,"y":17678.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2774470d-7382-48e3-bd0a-957f0332a698"}}}],"dataDependencyFolders":[],"id":"2463d929-6149-4723-8ef0-7dd9705bb5c6","savedPayload":{"position":{"x":26542.47000777164,"y":17678.300545412792},"targetPosition":{"x":26092.47000777164,"y":17678.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"90d6ef9d-8d5b-48ec-b593-ac9b45bfc3d7","savedPayload":{"position":{"x":26092.47000777164,"y":17678.300545412792},"targetPosition":{"x":25702.75857606864,"y":17903.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Samurai","id":"37e312af-e076-47aa-a1cd-bf5b2e16127d"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"Candle Patterns","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"aeae278a-dfe9-4eb8-ae40-43221dd83c16","savedPayload":{"position":{"x":26645.719312161098,"y":17270.559392743104},"targetPosition":{"x":26583.09141672907,"y":17716.18002367681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"07be5b9b-e8fd-49fc-ab77-20f89fdea10f"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"9eb1255c-faa0-43da-9931-9f72fe2025bb","savedPayload":{"position":{"x":26794.353619982718,"y":17318.853606890294},"targetPosition":{"x":26583.09141672907,"y":17716.18002367681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"9e6d7f95-b2fe-466e-9a5d-175479cbf85d"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"67d4fcaf-7a5d-4cbc-ba27-c7bf56bb4ea4","savedPayload":{"position":{"x":26917.506588193897,"y":17415.071250815323},"targetPosition":{"x":26583.09141672907,"y":17716.18002367681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"144d8665-1ff0-4db3-9340-a33fd7d0d098"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"0c6208be-27c6-49f8-a96f-9eac016daeb5","savedPayload":{"position":{"x":27000.324151284123,"y":17547.60705663965},"targetPosition":{"x":26583.09141672907,"y":17716.18002367681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f0a11771-dd69-4b9a-9347-7cb2d1f231ff"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"6bea13b9-5a49-4bd0-9f6d-e592b48a8d82","savedPayload":{"position":{"x":27032.81728888766,"y":17700.475250160685},"targetPosition":{"x":26583.09141672907,"y":17716.18002367681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"8c35ce52-9dee-4d20-92e6-50ba7fd2882b"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"4b02fcb4-0e38-45c8-b0a9-c10556b57f0c","savedPayload":{"position":{"x":27011.06684906189,"y":17855.237671145536},"targetPosition":{"x":26583.09141672907,"y":17716.18002367681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"4f1260c8-6d74-454e-963a-fa3ff910329c"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"f4aae5aa-54ac-44b2-a9f2-f96e558d6d17","savedPayload":{"position":{"x":26937.696255852094,"y":17993.227687573355},"targetPosition":{"x":26583.09141672907,"y":17716.18002367681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"087fc67e-78f9-4204-ba5e-8b670566a716"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"b4b47d84-e4d2-459d-b13e-a4fc62985b46","savedPayload":{"position":{"x":26821.555085634012,"y":18097.8016669472},"targetPosition":{"x":26583.09141672907,"y":17716.18002367681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b60cb94f-79c5-410c-b166-abc97d0f2bc3"}}}],"dataDependencyFolders":[],"id":"2a036cda-055e-409e-a588-a08134c16ecf","savedPayload":{"position":{"x":26583.09141672907,"y":17716.18002367681},"targetPosition":{"x":26142.924996398855,"y":17809.7402845448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"61739442-c10b-49af-a5a2-ece01fa74fdd","savedPayload":{"position":{"x":26142.924996398855,"y":17809.7402845448},"targetPosition":{"x":25702.75857606864,"y":17903.300545412792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Buddha","id":"38d04c99-51a6-4c1c-853e-ba67e216854b"}}}],"id":"5175cccd-58ed-40d8-8e0d-1a234d7460eb","savedPayload":{"position":{"x":25702.75857606864,"y":17903.300545412792},"targetPosition":{"x":25655.7207675982,"y":18350.835398328516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"a8577e6c-9afc-4c9e-87ef-ee38531de864","savedPayload":{"position":{"x":25920.224131129813,"y":17986.77775085979},"targetPosition":{"x":25655.7207675982,"y":18350.835398328516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"","project":"Superalgos","id":"a47d063a-c7b9-40d9-8d77-26cead472b6c","savedPayload":{"position":{"x":26066.81622353737,"y":18167.803908944406},"targetPosition":{"x":25655.7207675982,"y":18350.835398328516},"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":"dd185847-d39a-4501-8863-f906716b5f79","savedPayload":{"position":{"x":26103.255620513923,"y":18397.87320679896},"targetPosition":{"x":25655.7207675982,"y":18350.835398328516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a8c8d761-96e5-4a86-9285-6c3881d61442","savedPayload":{"position":{"x":25655.7207675982,"y":18350.835398328516},"targetPosition":{"x":25391.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"products":[],"productDefinitionFolders":[{"type":"Product Definition Folder","name":"Trading Engine","project":"Superalgos","products":[],"productDefinitionFolders":[{"type":"Product Definition Folder","name":"Trading Episode","project":"Superalgos","products":[{"type":"Product Definition","name":"Trading Episode Counters","config":"{\n \"codeName\": \"Trading-Episode-Counters\",\n \"singularVariableName\": \"tradingEpisodeCounter\",\n \"pluralVariableName\": \"tradingEpisodeCounters\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.tradingEpisodeCounters\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"3ed03a02-381d-43fe-9faa-761728c53bd8","savedPayload":{"position":{"x":25303.217193651126,"y":17860.069597774705},"targetPosition":{"x":25525.131453997004,"y":17897.20530909336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"15f5b150-f1cf-403c-8cb9-2c7c4e1db8e8","savedPayload":{"position":{"x":25334.320632361807,"y":17777.973474640887},"targetPosition":{"x":25525.131453997004,"y":17897.20530909336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"f0032eaa-4b31-4e39-84c1-5e5957f21ba9","savedPayload":{"position":{"x":24830.1814199832,"y":17651.11059506823},"targetPosition":{"x":25263.81512392708,"y":17530.853325833014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"baf72135-2aa6-4be6-b673-09151eeea3e6","savedPayload":{"position":{"x":24815.202323747173,"y":17495.546732755483},"targetPosition":{"x":25263.81512392708,"y":17530.853325833014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{\n \"codeName\": \"periods\",\n \"isString\": false\n}","project":"Superalgos","id":"4274f7bf-7f70-4775-8d30-fc56153f70fc","savedPayload":{"position":{"x":24854.332552032636,"y":17344.241366637707},"targetPosition":{"x":25263.81512392708,"y":17530.853325833014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Strategies","config":"{\n \"codeName\": \"strategies\",\n \"isString\": false\n}","project":"Superalgos","id":"10f5cc85-e009-4feb-9eba-8997ccc46ba5","savedPayload":{"position":{"x":24942.8524218077,"y":17215.44415689808},"targetPosition":{"x":25263.81512392708,"y":17530.853325833014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Positions","config":"{\n \"codeName\": \"positions\",\n \"isString\": false\n}","project":"Superalgos","id":"d3aaaeb9-d602-4188-a594-372d67545aed","savedPayload":{"position":{"x":25070.08513036335,"y":17124.689947875577},"targetPosition":{"x":25263.81512392708,"y":17530.853325833014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Orders","config":"{\n \"codeName\": \"orders\",\n \"isString\": false\n}","project":"Superalgos","id":"2be38b73-1ea0-4e08-ae4a-9caaa44e486f","savedPayload":{"position":{"x":25220.68453529298,"y":17082.925036567784},"targetPosition":{"x":25263.81512392708,"y":17530.853325833014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hits","config":"{\n \"codeName\": \"hits\",\n \"isString\": false\n}","project":"Superalgos","id":"bb822003-abbb-4748-8d18-02c67a33e24f","savedPayload":{"position":{"x":25376.48612575158,"y":17095.186887662865},"targetPosition":{"x":25263.81512392708,"y":17530.853325833014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fails","config":"{\n \"codeName\": \"fails\",\n \"isString\": false\n}","project":"Superalgos","id":"e114274f-a7ba-47e4-b0d3-710b5bd7fcd9","savedPayload":{"position":{"x":25518.697930543254,"y":17159.996540953107},"targetPosition":{"x":25263.81512392708,"y":17530.853325833014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"72e8a046-c0a4-4402-b1b9-c6a65b759515","savedPayload":{"position":{"x":25263.81512392708,"y":17530.853325833014},"targetPosition":{"x":25525.131453997004,"y":17897.20530909336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"d81c6019-864e-42f5-94ba-2f249b865f85","savedPayload":{"position":{"x":25531.131453997004,"y":17897.20530909336},"targetPosition":{"x":25912.753097267396,"y":18135.668977998303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Trading Episode Counters","id":"5e478e3f-e432-4364-8f2c-2f3b2849848b"}}},{"type":"Product Definition","name":"Trading Episode Statistics","config":"{\n \"codeName\": \"Trading-Episode-Statistics\",\n \"singularVariableName\": \"tradingEpisodeStatistics\",\n \"pluralVariableName\": \"tradingEpisodeStatistics\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.tradingEpisodeStatistics\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"fc9dc0f7-35e0-4548-bb91-f920825d694f","savedPayload":{"position":{"x":25439.875401784375,"y":17670.268837851996},"targetPosition":{"x":25635.70543337085,"y":17781.064138875277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"91953362-8751-4440-a898-21245cd47c15","savedPayload":{"position":{"x":25497.181601422577,"y":17603.761719313767},"targetPosition":{"x":25635.70543337085,"y":17781.064138875277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"8a268555-b786-4756-9e5c-7a190c3ae37e","savedPayload":{"position":{"x":25065.49928413865,"y":17340.647707643926},"targetPosition":{"x":25515.448164135636,"y":17347.430434931397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"ef14e964-9f33-4b53-bf44-bd81c386319d","savedPayload":{"position":{"x":25085.63629039387,"y":17214.157207347635},"targetPosition":{"x":25515.448164135636,"y":17347.430434931397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss","config":"{\n \"codeName\": \"profitLoss\",\n \"isString\": false\n}","project":"Superalgos","id":"360e05d7-340f-4975-93f2-b15835e975d2","savedPayload":{"position":{"x":25140.594098470014,"y":17098.46371134378},"targetPosition":{"x":25515.448164135636,"y":17347.430434931397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{\n \"codeName\": \"days\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"72167f7d-b29e-4f27-a68c-4a3fa3d7c321","savedPayload":{"position":{"x":25225.92035360342,"y":17002.940018622874},"targetPosition":{"x":25515.448164135636,"y":17347.430434931397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI","config":"{\n \"codeName\": \"ROI\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"2e89519e-eab5-4656-ade5-3a18eb1cf07f","savedPayload":{"position":{"x":25334.70243005795,"y":16935.324890667893},"targetPosition":{"x":25515.448164135636,"y":17347.430434931397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Annualized Rate Of Return","config":"{ \n\"codeName\": \"annualizedRateOfReturn\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"9177857b-5e67-4e42-a874-b0e1633ad45d","savedPayload":{"position":{"x":25458.12745095119,"y":16901.096103023097},"targetPosition":{"x":25515.448164135636,"y":17347.430434931397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail","config":"{\n \"codeName\": \"hitFail\",\n \"isString\": true\n}","project":"Superalgos","id":"81ebbfbf-23c5-4156-b1b4-0f0f35dc1d03","savedPayload":{"position":{"x":25586.196255127223,"y":16903.026668497037},"targetPosition":{"x":25515.448164135636,"y":17347.430434931397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"8356215e-6e31-45d0-bd78-ba080d2258de","savedPayload":{"position":{"x":25708.53346972622,"y":16940.96018415652},"targetPosition":{"x":25515.448164135636,"y":17347.430434931397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"59b47d20-5679-4889-8c1f-7853aa68f4a0","savedPayload":{"position":{"x":25815.22806118879,"y":17011.823502162122},"targetPosition":{"x":25515.448164135636,"y":17347.430434931397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"df7dbe99-16e8-42ad-9c8b-5acdf3b63f05","savedPayload":{"position":{"x":25897.636268251812,"y":17109.875697929412},"targetPosition":{"x":25515.448164135636,"y":17347.430434931397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c0f124f4-1e7d-4d06-94fd-b547257b4061","savedPayload":{"position":{"x":25515.448164135636,"y":17347.430434931397},"targetPosition":{"x":25635.70543337085,"y":17781.064138875277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"400c7f49-37da-41fb-b83d-879960aa74ff","savedPayload":{"position":{"x":25635.70543337085,"y":17781.064138875277},"targetPosition":{"x":25912.753097267396,"y":18135.668977998303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Trading Episode Statistics","id":"6ce18a43-2e6a-452e-a72d-1c56a58d3f81"}}},{"type":"Product Definition","name":"Episode Candle","config":"{\n \"codeName\": \"Episode-Candle\",\n \"singularVariableName\": \"episodeCandle\",\n \"pluralVariableName\": \"episodeCandles\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\",\n \"saveAtCycle\": \"Second\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"17fb41f5-61b5-4433-9a10-950ff8216a7e","savedPayload":{"position":{"x":25621.56963892438,"y":17536.602203405477},"targetPosition":{"x":25767.69544979867,"y":17707.693545665483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"bbc9467d-28bf-432b-9e49-582d1bcabfb9","savedPayload":{"position":{"x":25698.166626064307,"y":17493.705829499075},"targetPosition":{"x":25767.69544979867,"y":17707.693545665483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\"\n}","project":"Superalgos","id":"9ffe3183-b249-41b6-8e57-56b5d5023376","savedPayload":{"position":{"x":25402.049106991435,"y":17054.78502060278},"targetPosition":{"x":25803.0020428762,"y":17259.080745485575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\"\n}","project":"Superalgos","id":"b7b61cc0-b94d-40cb-abe1-047463675f5b","savedPayload":{"position":{"x":25510.750421127617,"y":16916.89806096556},"targetPosition":{"x":25803.0020428762,"y":17259.080745485575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Open","config":"{\n \"codeName\": \"open\",\n \"isString\": false\n}","project":"Superalgos","id":"f93f3ac6-8420-401c-9921-2229d02f5832","savedPayload":{"position":{"x":25663.944395407474,"y":16831.105313152755},"targetPosition":{"x":25803.0020428762,"y":17259.080745485575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Close","config":"{\n \"codeName\": \"close\",\n \"isString\": false\n}","project":"Superalgos","id":"86935367-3d64-4ad2-8171-be1368ca0a8d","savedPayload":{"position":{"x":25838.30863595373,"y":16810.467945305667},"targetPosition":{"x":25803.0020428762,"y":17259.080745485575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Min","config":"{\n \"codeName\": \"min\",\n \"isString\": false\n}","project":"Superalgos","id":"e5bad869-4386-48a6-b434-36253eaf7f48","savedPayload":{"position":{"x":26007.297767758995,"y":16858.12780960081},"targetPosition":{"x":25803.0020428762,"y":17259.080745485575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Max","config":"{\n \"codeName\": \"max\",\n \"isString\": false\n}","project":"Superalgos","id":"9c960e9d-7d1f-440b-9e5a-76e81f5a8e29","savedPayload":{"position":{"x":26145.184727396216,"y":16966.829123736992},"targetPosition":{"x":25803.0020428762,"y":17259.080745485575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Index","config":"{ \n\"codeName\": \"index\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"67d251d5-a236-42e7-8b34-4a5276e64d25","savedPayload":{"position":{"x":26230.97747520902,"y":17120.02309801685},"targetPosition":{"x":25803.0020428762,"y":17259.080745485575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d52a6d09-8b78-49db-a525-48a82991fcbc","savedPayload":{"position":{"x":25803.0020428762,"y":17259.080745485575},"targetPosition":{"x":25767.69544979867,"y":17707.693545665483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"b9a58113-cf27-4d57-9810-87a2cc158804","savedPayload":{"position":{"x":25773.69544979867,"y":17707.693545665483},"targetPosition":{"x":25912.753097267396,"y":18135.668977998303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Candle","id":"31789d43-d608-4eeb-a3ff-338a99074045"}}},{"type":"Product Definition","name":"Episode Balances","config":"{\n \"codeName\": \"Episode-Balances\",\n \"singularVariableName\": \"episodeBalance\",\n \"pluralVariableName\": \"episodeBalances\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"acddff59-b51b-4b45-b58f-71d4077755ee","savedPayload":{"position":{"x":25843.66121000014,"y":17475.19186325882},"targetPosition":{"x":25922.45787078352,"y":17685.94310583971},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"213b8fe8-f772-41ea-a3f5-97867be555f7","savedPayload":{"position":{"x":25930.310257541583,"y":17461.08016976041},"targetPosition":{"x":25922.45787078352,"y":17685.94310583971},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"c9e3558a-d9e9-4466-97fb-c0e9ec3752c1","savedPayload":{"position":{"x":25788.107127859446,"y":16961.05136501033},"targetPosition":{"x":26109.069829978827,"y":17276.460533945265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"bfb43790-48a8-4437-a191-9f4c396504fb","savedPayload":{"position":{"x":25915.339836415096,"y":16870.297155987828},"targetPosition":{"x":26109.069829978827,"y":17276.460533945265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Balance Base Asset","config":"{ \n\"codeName\": \"balanceBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"balance\",\n \"decimals\": 10\n}","project":"Superalgos","id":"7658d8bf-a4e0-490e-a3ae-df3bef72e491","savedPayload":{"position":{"x":26065.939241344728,"y":16828.532244680035},"targetPosition":{"x":26109.069829978827,"y":17276.460533945265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Balance Quoted Asset","config":"{ \n\"codeName\": \"balanceQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"balance\",\n \"decimals\": 10\n}","project":"Superalgos","id":"1f5cf49c-7040-4cee-b525-83810013a4fb","savedPayload":{"position":{"x":26221.740831803327,"y":16840.794095775116},"targetPosition":{"x":26109.069829978827,"y":17276.460533945265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Balance Base Asset","config":"{ \n\"codeName\": \"beginBalanceBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"beginBalance\",\n \"decimals\": 10\n}","project":"Superalgos","id":"b2e41c55-b66c-4895-b2a8-82b9cf53bfa1","savedPayload":{"position":{"x":26363.952636595,"y":16905.603749065358},"targetPosition":{"x":26109.069829978827,"y":17276.460533945265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Balance Quoted Asset","config":"{ \n\"codeName\": \"beginBalanceQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"beginBalance\",\n \"decimals\": 10\n}","project":"Superalgos","id":"121b09db-2f3d-43c9-a271-e716a66f019b","savedPayload":{"position":{"x":26475.421813239172,"y":17015.14420387534},"targetPosition":{"x":26109.069829978827,"y":17276.460533945265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Balance Base Asset","config":"{ \n\"codeName\": \"endBalanceBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"endBalance\",\n \"decimals\": 10\n}","project":"Superalgos","id":"14f17c26-2832-4aa6-b39f-05acc8c3626f","savedPayload":{"position":{"x":26542.703533922708,"y":17156.20326471005},"targetPosition":{"x":26109.069829978827,"y":17276.460533945265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Balance Quoted Asset","config":"{ \n\"codeName\": \"endBalanceQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"endBalance\",\n \"decimals\": 10\n}","project":"Superalgos","id":"b8d553ad-2dfb-4db7-b858-b086daeee2a6","savedPayload":{"position":{"x":26557.682630158735,"y":17311.767127022795},"targetPosition":{"x":26109.069829978827,"y":17276.460533945265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0755daf6-8847-48c4-9013-394ddb96a89b","savedPayload":{"position":{"x":26109.069829978827,"y":17276.460533945265},"targetPosition":{"x":25922.45787078352,"y":17685.94310583971},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"a9a53d82-133b-4417-b639-f9a56d338233","savedPayload":{"position":{"x":25928.45787078352,"y":17685.94310583971},"targetPosition":{"x":25912.753097267396,"y":18135.668977998303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Episode Balances","id":"e5d9e3e1-d1f4-4493-b452-33fe49c81228"}}},{"type":"Product Definition","name":"Distance To Trading Event","config":"{\n \"codeName\": \"Distance-To-Trading-Event\",\n \"singularVariableName\": \"distanceToTradingEvent\",\n \"pluralVariableName\": \"distanceToTradingEvents\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.distanceToTradingEvent\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0ef6aa1d-3345-40f8-bc4f-4d2e2ff199ff","savedPayload":{"position":{"x":26073.362593817423,"y":17493.44481075381},"targetPosition":{"x":26075.326064304558,"y":17718.436243443248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"c291211b-4012-4440-a302-8e15412b0990","savedPayload":{"position":{"x":26159.612547823137,"y":17509.819876165722},"targetPosition":{"x":26075.326064304558,"y":17718.436243443248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"0235ad32-fd46-41eb-b875-ae81f3ce48c5","savedPayload":{"position":{"x":26162.342969907175,"y":17009.74041912518},"targetPosition":{"x":26390.73523323949,"y":17397.473541323867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"9d6c01fa-af2b-4d51-9aa4-f169c53e63b3","savedPayload":{"position":{"x":26270.477964004276,"y":16963.839837379986},"targetPosition":{"x":26390.73523323949,"y":17397.473541323867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Trigger On","config":"{ \n\"codeName\": \"triggerOn\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7e17fb3f-495f-49c5-9b41-6869155b99fc","savedPayload":{"position":{"x":26386.808292265225,"y":16947.49067594499},"targetPosition":{"x":26390.73523323949,"y":17397.473541323867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Trigger Off","config":"{ \n\"codeName\": \"triggerOff\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"9de32719-925a-4796-b562-379323cb4d82","savedPayload":{"position":{"x":26503.40623506399,"y":16961.80710315372},"targetPosition":{"x":26390.73523323949,"y":17397.473541323867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Take Position","config":"{ \n\"codeName\": \"takePosition\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e4276497-b218-4b18-b089-70fcc5806fa3","savedPayload":{"position":{"x":26612.32583528605,"y":17005.81347815091},"targetPosition":{"x":26390.73523323949,"y":17397.473541323867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Close Position","config":"{ \n\"codeName\": \"closePosition\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"4793082b-ddc8-4246-bb0e-c7f6340da600","savedPayload":{"position":{"x":26706.144402174425,"y":17076.510839204486},"targetPosition":{"x":26390.73523323949,"y":17397.473541323867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Phase","config":"{ \n\"codeName\": \"nextPhase\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"0ada00bc-9398-47a0-9659-63b0838b81d7","savedPayload":{"position":{"x":26778.468355438177,"y":17169.08127799155},"targetPosition":{"x":26390.73523323949,"y":17397.473541323867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Move To Phase","config":"{ \n\"codeName\": \"moveToPhase\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"9020e64b-d301-49f6-bc6c-cb8086730b19","savedPayload":{"position":{"x":26824.36893718337,"y":17277.21627208865},"targetPosition":{"x":26390.73523323949,"y":17397.473541323867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Create Order","config":"{ \n\"codeName\": \"createOrder\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"906c1925-caab-4db6-8fec-06845a13fd0a","savedPayload":{"position":{"x":26840.718098618367,"y":17393.5466003496},"targetPosition":{"x":26390.73523323949,"y":17397.473541323867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Cancel Order","config":"{ \n\"codeName\": \"cancelOrder\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e864d723-5ad5-4bbd-ad7b-0f975d480ee3","savedPayload":{"position":{"x":26826.40167140964,"y":17510.144543148366},"targetPosition":{"x":26390.73523323949,"y":17397.473541323867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Close Order","config":"{ \n\"codeName\": \"closeOrder\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f5be374b-36e6-484c-bd78-6e126e3020fb","savedPayload":{"position":{"x":26782.395296412447,"y":17619.064143370426},"targetPosition":{"x":26390.73523323949,"y":17397.473541323867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0c3c5d0b-6072-4e57-bff9-9823e0f79b5b","savedPayload":{"position":{"x":26390.73523323949,"y":17397.473541323867},"targetPosition":{"x":26075.326064304558,"y":17718.436243443248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"8ea88d6c-7d7f-4152-b781-ea108df52c63","savedPayload":{"position":{"x":26081.326064304558,"y":17718.436243443248},"targetPosition":{"x":25912.753097267396,"y":18135.668977998303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Distance To Trading Event","id":"56eb7de2-0281-404a-bd4d-34ac113e2325"}}},{"type":"Product Definition","name":"Episode Base Asset","config":"{\n \"codeName\": \"Episode-BaseAsset\",\n \"singularVariableName\": \"episodeBaseAsset\",\n \"pluralVariableName\": \"episodeBaseAssets\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"e8b67591-d484-4c08-a711-7a4418ee101a","savedPayload":{"position":{"x":26282.96841345648,"y":17589.159471037732},"targetPosition":{"x":26207.861870128883,"y":17801.253806533474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"c6f34adc-2863-4ce6-8379-9b3cc1b37b73","savedPayload":{"position":{"x":26358.416256559627,"y":17634.04622080106},"targetPosition":{"x":26207.861870128883,"y":17801.253806533474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"2d706d6c-f204-4209-bda6-20f6bccef1fb","savedPayload":{"position":{"x":26555.288461587297,"y":17161.373625351527},"targetPosition":{"x":26614.02524808632,"y":17607.523812969743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"45aadf3c-c609-42fc-95dd-400968a950dd","savedPayload":{"position":{"x":26696.031234557788,"y":17165.059104565964},"targetPosition":{"x":26614.02524808632,"y":17607.523812969743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hits","config":"{\n \"codeName\": \"hits\",\n \"isString\": false\n}","project":"Superalgos","id":"16a724af-e57e-4e5b-9f8f-597ade0521d8","savedPayload":{"position":{"x":26828.746690203145,"y":17212.056112271857},"targetPosition":{"x":26614.02524808632,"y":17607.523812969743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fails","config":"{\n \"codeName\": \"fails\",\n \"isString\": false\n}","project":"Superalgos","id":"94c63c77-f7e4-4d15-bb6c-6b49bb600b10","savedPayload":{"position":{"x":26940.44371504185,"y":17297.764253907553},"targetPosition":{"x":26614.02524808632,"y":17607.523812969743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Ratio","config":"{\n \"codeName\": \"hitRatio\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"0b91b798-b30f-46f5-935b-1e4dac8dfee0","savedPayload":{"position":{"x":27020.188626043757,"y":17413.79381940601},"targetPosition":{"x":26614.02524808632,"y":17607.523812969743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI","config":"{\n \"codeName\": \"ROI\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"db2cd2b2-5c5f-4eef-874a-201059d80ea0","savedPayload":{"position":{"x":27060.175435704536,"y":17548.78702647072},"targetPosition":{"x":26614.02524808632,"y":17607.523812969743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss","config":"{ \n\"codeName\": \"profitLoss\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"c4bb2bd0-02a8-47de-9fa8-c2b87776e36f","savedPayload":{"position":{"x":27056.4899564901,"y":17689.52979944121},"targetPosition":{"x":26614.02524808632,"y":17607.523812969743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Annualized Rate Of Return","config":"{ \n\"codeName\": \"annualizedRateOfReturn\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"432a1f4e-283a-4276-b436-42ef167dd9e7","savedPayload":{"position":{"x":27009.492948784206,"y":17822.245255086567},"targetPosition":{"x":26614.02524808632,"y":17607.523812969743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail","config":"{ \n\"codeName\": \"hitFail\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"08161b1c-ad52-4c01-88b1-8cd8ed077b6b","savedPayload":{"position":{"x":26923.78480714851,"y":17933.94227992527},"targetPosition":{"x":26614.02524808632,"y":17607.523812969743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e2ea652a-5508-4eef-998a-8cb0b2fac0a7","savedPayload":{"position":{"x":26614.02524808632,"y":17607.523812969743},"targetPosition":{"x":26207.861870128883,"y":17801.253806533474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"234969ff-eab1-4d59-b6fa-79433c9a20e9","savedPayload":{"position":{"x":26213.861870128883,"y":17801.253806533474},"targetPosition":{"x":25912.753097267396,"y":18135.668977998303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Episode Base Asset","id":"a99b25e6-7aca-41a2-aacc-1911aac2ee3e"}}},{"type":"Product Definition","name":"Episode Quoted Asset","config":"{\n \"codeName\": \"Episode-QuotedAsset\",\n \"singularVariableName\": \"episodeQuotedAsset\",\n \"pluralVariableName\": \"episodeQuotedAssets\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"99d1f17b-92cb-4544-88a2-fe463dd1de4b","savedPayload":{"position":{"x":26453.19711361641,"y":17750.791243482417},"targetPosition":{"x":26310.079514053912,"y":17924.406774744653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"daf4e3e9-426d-44c3-8b43-6849778d972f","savedPayload":{"position":{"x":26508.742722447172,"y":17818.775673117827},"targetPosition":{"x":26310.079514053912,"y":17924.406774744653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"408f6716-f1a1-4f7f-924c-c5c0d9bb814d","savedPayload":{"position":{"x":26855.40562959129,"y":17441.942982906585},"targetPosition":{"x":26758.007803319142,"y":17881.276186110554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"b07f31ed-986d-4b45-bd05-017e3d9268bd","savedPayload":{"position":{"x":26986.40006665146,"y":17493.543063911868},"targetPosition":{"x":26758.007803319142,"y":17881.276186110554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hits","config":"{\n \"codeName\": \"hits\",\n \"isString\": false\n}","project":"Superalgos","id":"709ed8fc-94d8-4f8c-977a-fa865c43a83e","savedPayload":{"position":{"x":27095.037877674193,"y":17583.097164413473},"targetPosition":{"x":26758.007803319142,"y":17881.276186110554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fails","config":"{\n \"codeName\": \"fails\",\n \"isString\": false\n}","project":"Superalgos","id":"d874a492-fb07-4704-8589-73f864040da9","savedPayload":{"position":{"x":27170.684836792447,"y":17701.839105094194},"targetPosition":{"x":26758.007803319142,"y":17881.276186110554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Ratio","config":"{\n \"codeName\": \"hitRatio\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"4ad7e208-1cfb-402d-89d6-3ca98832f2f9","savedPayload":{"position":{"x":27205.936092584372,"y":17838.145597476454},"targetPosition":{"x":26758.007803319142,"y":17881.276186110554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI","config":"{\n \"codeName\": \"ROI\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"02d21bbe-a2b9-4d61-9ee6-243f21208c9f","savedPayload":{"position":{"x":27197.34100652311,"y":17978.6740123827},"targetPosition":{"x":26758.007803319142,"y":17881.276186110554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss","config":"{ \n\"codeName\": \"profitLoss\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"d78850bc-4017-4a14-b7a2-4efb03156596","savedPayload":{"position":{"x":27145.740925517828,"y":18109.66844944287},"targetPosition":{"x":26758.007803319142,"y":17881.276186110554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Annualized Rate Of Return","config":"{ \n\"codeName\": \"annualizedRateOfReturn\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"51e1f4b1-fe6a-4125-ae19-a34859928ab0","savedPayload":{"position":{"x":27056.186825016222,"y":18218.306260465604},"targetPosition":{"x":26758.007803319142,"y":17881.276186110554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail","config":"{ \n\"codeName\": \"hitFail\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"cb125657-fff3-49bc-99d5-393d2baaec15","savedPayload":{"position":{"x":26937.444884335502,"y":18293.95321958386},"targetPosition":{"x":26758.007803319142,"y":17881.276186110554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e5dde8e0-9f3d-4d58-878b-316e2888384f","savedPayload":{"position":{"x":26758.007803319142,"y":17881.276186110554},"targetPosition":{"x":26310.079514053912,"y":17924.406774744653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"ae525e31-d6a8-47d2-9021-3f2ddb9615b0","savedPayload":{"position":{"x":26310.079514053912,"y":17924.406774744653},"targetPosition":{"x":25912.753097267396,"y":18135.668977998303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Episode Quoted Asset","id":"ede92318-db13-4951-83b1-11fc0345d677"}}},{"type":"Product Definition","name":"Current Episode","config":"{\n \"codeName\": \"Current-Episode\",\n \"singularVariableName\": \"currentEpisode\",\n \"pluralVariableName\": \"currentEpisodes\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode\",\n \"saveAtCycle\": \"Second\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"26f6b248-21de-4898-9ee5-58b728a04267","savedPayload":{"position":{"x":26552.240289300447,"y":17958.844950900115},"targetPosition":{"x":26358.373728201102,"y":18073.041082566273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"ecdfe444-00e6-4ad4-a482-14b59a1e752a","savedPayload":{"position":{"x":26581.184043667956,"y":18041.727134850258},"targetPosition":{"x":26358.373728201102,"y":18073.041082566273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"fb250d69-0a1d-44db-a823-6ce600fabc5c","savedPayload":{"position":{"x":27015.63076841781,"y":17794.052021217816},"targetPosition":{"x":26794.04016637125,"y":18185.712084390772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"1e3e49d8-8494-474c-85df-93d080271a32","savedPayload":{"position":{"x":27109.449335306184,"y":17864.74938227139},"targetPosition":{"x":26794.04016637125,"y":18185.712084390772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\"\n}","project":"Superalgos","id":"8da52905-c159-42b2-81eb-bcdb0e82213c","savedPayload":{"position":{"x":27181.773288569937,"y":17957.319821058456},"targetPosition":{"x":26794.04016637125,"y":18185.712084390772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\"\n}","project":"Superalgos","id":"3fb36608-3225-4e84-9e7c-deb0cd4e0c90","savedPayload":{"position":{"x":27227.67387031513,"y":18065.454815155557},"targetPosition":{"x":26794.04016637125,"y":18185.712084390772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"dc27dfcd-81f7-4796-94bf-9552681c5781","savedPayload":{"position":{"x":27244.023031750126,"y":18181.785143416506},"targetPosition":{"x":26794.04016637125,"y":18185.712084390772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f2738fa9-e225-49ba-adce-8e3f5490ae79","savedPayload":{"position":{"x":27229.7066045414,"y":18298.38308621527},"targetPosition":{"x":26794.04016637125,"y":18185.712084390772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"0bfb640f-7160-4f9f-9a37-a93ad21ac304","savedPayload":{"position":{"x":27185.700229544207,"y":18407.30268643733},"targetPosition":{"x":26794.04016637125,"y":18185.712084390772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"66977e9f-19c3-445e-baec-72fd24bcfd4f","savedPayload":{"position":{"x":27115.002868490632,"y":18501.121253325706},"targetPosition":{"x":26794.04016637125,"y":18185.712084390772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Cycle","config":"{ \n\"codeName\": \"cycle\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"2e9b2ae9-fa39-4767-8f15-918680491022","savedPayload":{"position":{"x":27022.432429703567,"y":18573.44520658946},"targetPosition":{"x":26794.04016637125,"y":18185.712084390772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Head Of The Market","config":"{ \n\"codeName\": \"headOfTheMarket\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"87f75619-ada5-4a35-851c-901776e8dd53","savedPayload":{"position":{"x":26914.297435606466,"y":18619.345788334653},"targetPosition":{"x":26794.04016637125,"y":18185.712084390772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Process Date","config":"{ \n\"codeName\": \"processDate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"aa739894-963f-4535-b4c4-d057e185ad9c","savedPayload":{"position":{"x":26797.967107345517,"y":18635.694949769648},"targetPosition":{"x":26794.04016637125,"y":18185.712084390772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"973a9bbe-dcc2-4df3-acef-63999441e21f","savedPayload":{"position":{"x":26794.04016637125,"y":18185.712084390772},"targetPosition":{"x":26358.373728201102,"y":18073.041082566273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"b8da0132-ba28-46ec-aa54-eb9eaac56ce7","savedPayload":{"position":{"x":26358.373728201102,"y":18073.041082566273},"targetPosition":{"x":25912.753097267396,"y":18135.668977998303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Episode","id":"bf241117-1c2c-470c-a172-b86b2befa9a2"}}}],"productDefinitionFolders":[],"id":"6e3006f3-06dc-4cc6-a8fc-51f0e99ca9eb","savedPayload":{"position":{"x":25912.753097267396,"y":18135.668977998303},"targetPosition":{"x":25819.192836399405,"y":18575.835398328516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Strategy","project":"Superalgos","products":[{"type":"Product Definition","name":"Current Strategy","config":"{\n \"codeName\": \"Current-Strategy\",\n \"singularVariableName\": \"currentStrategy\",\n \"pluralVariableName\": \"currentStrategies\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategy\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"7b4550d3-69d1-41ac-bad3-e2283f798bb8","savedPayload":{"position":{"x":26172.85887689315,"y":17580.021452331584},"targetPosition":{"x":26213.861870128883,"y":17801.253806533474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"49d55660-71e9-4c5a-8b1a-198934844e4a","savedPayload":{"position":{"x":26260.64200056288,"y":17581.170596368367},"targetPosition":{"x":26213.861870128883,"y":17801.253806533474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"3808ed7c-4ae4-4ad8-8ea8-237ee2f8cc8c","savedPayload":{"position":{"x":26169.661764209803,"y":17094.168808337923},"targetPosition":{"x":26468.744676745056,"y":17430.397021653567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"c8b93e25-fe0e-450a-bcc7-262a06936372","savedPayload":{"position":{"x":26258.817248308853,"y":17032.36376325653},"targetPosition":{"x":26468.744676745056,"y":17430.397021653567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"702327c6-5dfe-4ab0-bce1-750637a4b863","savedPayload":{"position":{"x":26360.17295149346,"y":16993.690964361147},"targetPosition":{"x":26468.744676745056,"y":17430.397021653567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"a152bb71-b294-48e7-bf9c-9be7510c8461","savedPayload":{"position":{"x":26467.838448707527,"y":16980.397934153665},"targetPosition":{"x":26468.744676745056,"y":17430.397021653567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Strategy Name","config":"{ \n\"codeName\": \"strategyName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"35b9d166-f366-4601-a472-5e8d74be8f82","savedPayload":{"position":{"x":26575.55661260113,"y":16993.25721523155},"targetPosition":{"x":26468.744676745056,"y":17430.397021653567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Index","config":"{ \n\"codeName\": \"index\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"dcdb4018-97ea-4bb8-9e55-5efa00ab8404","savedPayload":{"position":{"x":26677.067255028363,"y":17031.521472920136},"targetPosition":{"x":26468.744676745056,"y":17430.397021653567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"c2ac38c8-3bc5-4359-8f92-510263b841d1","savedPayload":{"position":{"x":26766.470946427537,"y":17092.966927647485},"targetPosition":{"x":26468.744676745056,"y":17430.397021653567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"1ae37227-35b8-4abc-a42b-aa0c42fa9fc2","savedPayload":{"position":{"x":26838.571869223724,"y":17174.022592929978},"targetPosition":{"x":26468.744676745056,"y":17430.397021653567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"288b5fed-0d4b-4b85-9cb5-802c2ff30ca7","savedPayload":{"position":{"x":26889.179779860195,"y":17269.977808126754},"targetPosition":{"x":26468.744676745056,"y":17430.397021653567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"3802817a-f022-4762-9ff4-412d42f22316","savedPayload":{"position":{"x":26915.353530523036,"y":17375.25600491359},"targetPosition":{"x":26468.744676745056,"y":17430.397021653567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"97832d1b-40b4-4fc3-9e52-ec3beacf164e","savedPayload":{"position":{"x":26915.571997961433,"y":17483.73879716392},"targetPosition":{"x":26468.744676745056,"y":17430.397021653567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategy.strategyCounters\"\n}","project":"Superalgos","id":"d219dca7-ae8f-422d-a90a-f86b617a76e2","savedPayload":{"position":{"x":26889.822485641962,"y":17589.121559311046},"targetPosition":{"x":26468.744676745056,"y":17430.397021653567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a4bce1f3-c9cc-470d-b271-1190684aff6f","savedPayload":{"position":{"x":26468.744676745056,"y":17430.397021653567},"targetPosition":{"x":26213.861870128883,"y":17801.253806533474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"895d8a04-ef45-41a7-909a-ba31013ffb90","savedPayload":{"position":{"x":26213.861870128883,"y":17801.253806533474},"targetPosition":{"x":26120.301609260892,"y":18241.420226863687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Strategy","id":"a3c31000-1b82-4fe9-ae56-6d5893582b16"}}},{"type":"Product Definition","name":"Last Strategy","config":"{\n \"codeName\": \"Last-Strategy\",\n \"singularVariableName\": \"lastStrategy\",\n \"pluralVariableName\": \"lastStrategies\",\n \"nodePath\": \"tradingEngine.tradingLast.strategy\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a2e7b5d2-8556-4c58-b2f6-a9c27c939e94","savedPayload":{"position":{"x":26719.368383853718,"y":17956.23676852067},"targetPosition":{"x":26548.277041593712,"y":18102.36257939496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"76ff2401-1d4f-4dda-87f6-5e0b7af3eab2","savedPayload":{"position":{"x":26762.26475776012,"y":18032.8337556606},"targetPosition":{"x":26548.277041593712,"y":18102.36257939496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"02e1c6bb-e984-4104-98c8-dbcba98ab660","savedPayload":{"position":{"x":27138.530559706396,"y":17710.541665721303},"targetPosition":{"x":26996.88984177362,"y":18137.66917247249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"0fbc8383-f53b-42c2-ac1a-060f6bc80c5c","savedPayload":{"position":{"x":27236.63304087845,"y":17756.85005729708},"targetPosition":{"x":26996.88984177362,"y":18137.66917247249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"5785bb06-20d0-4683-b5d3-3cce32ddf13f","savedPayload":{"position":{"x":27320.802518749602,"y":17825.290271625694},"targetPosition":{"x":26996.88984177362,"y":18137.66917247249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"cca74655-a684-4b14-a70b-63a95f520418","savedPayload":{"position":{"x":27386.147369209586,"y":17911.884812220418},"targetPosition":{"x":26996.88984177362,"y":18137.66917247249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Strategy Name","config":"{ \n\"codeName\": \"strategyName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"10192034-747b-49ed-ba2b-a645da326297","savedPayload":{"position":{"x":27428.869987068534,"y":18011.601119140236},"targetPosition":{"x":26996.88984177362,"y":18137.66917247249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Index","config":"{ \n\"codeName\": \"index\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"5cc8df5d-637c-4059-88ca-b30193db45cd","savedPayload":{"position":{"x":27446.487489066883,"y":18118.644043080993},"targetPosition":{"x":26996.88984177362,"y":18137.66917247249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e44d0b8d-1bd1-457b-b3ec-efafe83135e2","savedPayload":{"position":{"x":27437.9760100255,"y":18226.792638388455},"targetPosition":{"x":26996.88984177362,"y":18137.66917247249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"c1181965-30d7-455c-84f8-b59a10b17292","savedPayload":{"position":{"x":27403.830206168306,"y":18329.761701807496},"targetPosition":{"x":26996.88984177362,"y":18137.66917247249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"f233bd2e-9c8a-415c-b348-890e2b8c835b","savedPayload":{"position":{"x":27346.03450750053,"y":18421.567045649525},"targetPosition":{"x":26996.88984177362,"y":18137.66917247249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"09b0f818-5159-433b-8eae-f0209351e6b3","savedPayload":{"position":{"x":27267.947789949932,"y":18496.873277029285},"targetPosition":{"x":26996.88984177362,"y":18137.66917247249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"8cfbc9c3-071f-43d0-b245-4c0278f975c0","savedPayload":{"position":{"x":27174.108169706877,"y":18551.303871506},"targetPosition":{"x":26996.88984177362,"y":18137.66917247249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.strategy.strategyCounters\"\n}","project":"Superalgos","id":"bb8b605d-bf3a-4408-a147-f316bdee7df7","savedPayload":{"position":{"x":27069.969264406758,"y":18581.69552077584},"targetPosition":{"x":26996.88984177362,"y":18137.66917247249},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"325b09da-1fc2-43bc-a59d-381c30a4ba1d","savedPayload":{"position":{"x":26996.88984177362,"y":18137.66917247249},"targetPosition":{"x":26548.277041593712,"y":18102.36257939496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"0625f524-2b97-4b4d-8a90-590ffc62ecd3","savedPayload":{"position":{"x":26548.277041593712,"y":18102.36257939496},"targetPosition":{"x":26120.301609260892,"y":18241.420226863687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Last Strategy","id":"028aaa23-630c-4aa6-a168-6b2a128b1a83"}}}],"productDefinitionFolders":[],"id":"bb870967-9e1d-44a9-9bbc-68e6c024a3c3","savedPayload":{"position":{"x":26120.301609260892,"y":18241.420226863687},"targetPosition":{"x":25819.192836399405,"y":18575.835398328516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Position","project":"Superalgos","products":[{"type":"Product Definition","name":"Current Position","config":"{\n \"codeName\": \"Current-Position\",\n \"singularVariableName\": \"currentPosition\",\n \"pluralVariableName\": \"currentPositions\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"7506dd91-ad9d-4aad-bb1a-604bc5d3fe8d","savedPayload":{"position":{"x":26368.572619662187,"y":17784.495918437016},"targetPosition":{"x":26386.22591620095,"y":18008.80231852697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"06678152-1082-4f00-9275-22ffde715469","savedPayload":{"position":{"x":26455.754739935313,"y":17794.814602360562},"targetPosition":{"x":26386.22591620095,"y":18008.80231852697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"6e9bd403-9341-4573-9509-39592db0f4ae","savedPayload":{"position":{"x":26351.210041573737,"y":16671.600015575885},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"e9f969f0-20f4-4d61-870b-2997e715c706","savedPayload":{"position":{"x":26422.843873590267,"y":16610.41894322483},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"c9761b5c-3714-4253-9906-873e8933e698","savedPayload":{"position":{"x":26500.48045145376,"y":16557.06080156826},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"e0d6465b-de24-4ce2-9cc3-b7e3e563d4d7","savedPayload":{"position":{"x":26583.26917257065,"y":16512.11019357207},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"1b892131-86ea-4264-bfae-3eae52374803","savedPayload":{"position":{"x":26670.30298638772,"y":16476.059607503983},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f7d48869-1ac5-4e6c-9f73-52112cf5a9c8","savedPayload":{"position":{"x":26760.6283322278,"y":16449.30402112903},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"08064bc3-d662-46d7-a9ac-da517de9f0f3","savedPayload":{"position":{"x":26853.25558670007,"y":16432.136574250515},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"07748c3d-c020-4734-b505-38ceeb96ddc2","savedPayload":{"position":{"x":26947.16990622103,"y":16424.745357008942},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"5f987e27-560f-485d-b832-46025f14f446","savedPayload":{"position":{"x":27041.342345853176,"y":16427.211349127127},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionCounters\"\n}","project":"Superalgos","id":"c00c9780-7a99-40fe-8563-9ef38089edae","savedPayload":{"position":{"x":27134.741132641047,"y":16439.507532679385},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"90759217-f2a3-4203-8249-35c703108863","savedPayload":{"position":{"x":27226.342969931648,"y":16461.49918810557},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"905584a9-29a2-4e59-be9d-7859ada74e43","savedPayload":{"position":{"x":27315.1442488267,"y":16492.945370226786},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"a85c3f00-4b38-430d-a911-b404de9c2ce3","savedPayload":{"position":{"x":27400.172043931765,"y":16533.501548091175},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Base Asset","config":"{ \n\"codeName\": \"profitLossInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3c081ea4-6bcb-4ba2-8e3e-2f572b428003","savedPayload":{"position":{"x":27480.494772930466,"y":16582.72337972713},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Quoted Asset","config":"{ \n\"codeName\": \"profitLossInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"1b65da38-1f4b-4c28-81bb-38e95fed5a3d","savedPayload":{"position":{"x":27555.23240319528,"y":16640.071580446915},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Base Asset","config":"{ \n\"codeName\": \"ROIInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"9705d87a-bc3a-473e-b205-4eefcbbeeb21","savedPayload":{"position":{"x":27623.566093609174,"y":16704.917831362563},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Quoted Asset","config":"{ \n\"codeName\": \"ROIInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3fdcd35b-a08a-4d68-bcbd-f547b8265203","savedPayload":{"position":{"x":27684.747165960227,"y":16776.551663379094},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Base Asset","config":"{ \n\"codeName\": \"hitFailInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"14d4fbc8-7b1b-4b27-a9ed-c4c5601116d8","savedPayload":{"position":{"x":27738.1053076168,"y":16854.188241242588},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Quoted Asset","config":"{ \n\"codeName\": \"hitFailInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"2ba0cad6-6f43-4fb3-9dfb-8ad67e0c8a09","savedPayload":{"position":{"x":27783.05591561299,"y":16936.976962359477},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Base Asset","config":"{ \n\"codeName\": \"entryTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"7a3cc7f2-ecf2-4f50-968a-ca27117b4bac","savedPayload":{"position":{"x":27819.106501681075,"y":17024.010776176547},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Quoted Asset","config":"{ \n\"codeName\": \"entryTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"cfa55f9f-0792-4a1d-8bbd-5350864e8a61","savedPayload":{"position":{"x":27845.862088056027,"y":17114.336122016626},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Base Asset","config":"{ \n\"codeName\": \"exitTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"8172e284-94fd-4dc4-8591-53a2c5ca475a","savedPayload":{"position":{"x":27863.029534934547,"y":17206.963376488897},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Quoted Asset","config":"{ \n\"codeName\": \"exitTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"0d0bdeba-f4d9-4de7-81d0-b4aa3bb9ec6b","savedPayload":{"position":{"x":27870.420752176116,"y":17300.877696009855},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Rate","config":"{ \n\"codeName\": \"entryTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f03c45fb-c2ca-4294-abce-650cf8656471","savedPayload":{"position":{"x":27867.95476005793,"y":17395.050135642003},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Rate","config":"{ \n\"codeName\": \"exitTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"472bf4ef-2e4f-4aa9-a054-ed458249032d","savedPayload":{"position":{"x":27855.658576505673,"y":17488.448922429874},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Profit Loss","config":"{ \n\"codeName\": \"profitLoss\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2ab54033-cbad-4618-9681-e8ae36c1ace5","savedPayload":{"position":{"x":27833.66692107949,"y":17580.050759720474},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics ROI","config":"{ \n\"codeName\": \"ROI\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 10\n}","project":"Superalgos","id":"a0778ae5-4242-4a8e-8ebc-6af71dad5c58","savedPayload":{"position":{"x":27802.220738958273,"y":17668.852038615525},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Hit Fail","config":"{ \n\"codeName\": \"hitFail\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\"\n}","project":"Superalgos","id":"e87e024f-3726-4d08-a890-829b44616eeb","savedPayload":{"position":{"x":27761.664561093883,"y":17753.87983372059},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"d6e98d71-15ee-4e22-b18c-b154b1ecec52","savedPayload":{"position":{"x":27712.44272945793,"y":17834.202562719292},"targetPosition":{"x":26970.729159698116,"y":17324.436949486942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a35249e0-a2dc-43b0-bb8c-ebd6265e13c2","savedPayload":{"position":{"x":26970.729159698116,"y":17324.436949486942},"targetPosition":{"x":26386.22591620095,"y":18008.80231852697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"832ecada-8da3-4ba6-b6e9-be34dd5f7ce9","savedPayload":{"position":{"x":26386.22591620095,"y":18008.80231852697},"targetPosition":{"x":26247.168268732225,"y":18436.77775085979},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Position","id":"0d2212c7-07bb-4c41-94fb-00844415ba5e"}}},{"type":"Product Definition","name":"Last Position","config":"{\n \"codeName\": \"Last-Position\",\n \"singularVariableName\": \"lastPosition\",\n \"pluralVariableName\": \"lastPositions\",\n \"nodePath\": \"tradingEngine.tradingLast.position\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"485671ff-0d50-4c08-958c-93e657cd238f","savedPayload":{"position":{"x":26728.78809326204,"y":17980.430350348506},"targetPosition":{"x":26611.22591620095,"y":18172.274387328176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a909df42-6192-4bbd-9f38-e8800149aaa1","savedPayload":{"position":{"x":26793.254739935313,"y":18040.02270556237},"targetPosition":{"x":26611.22591620095,"y":18172.274387328176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"a616f774-00d3-475e-b0b6-631a93777573","savedPayload":{"position":{"x":27368.885271560815,"y":17069.87318462143},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"2e577616-21a7-4199-a64f-d90386edc6ec","savedPayload":{"position":{"x":27462.799591081774,"y":17062.48196737986},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"9993ddd9-d4f8-4eef-91db-45eb57c04d8e","savedPayload":{"position":{"x":27556.97203071392,"y":17064.947959498044},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"dd7f3f5d-3f52-4256-b7e1-c2d94aa85795","savedPayload":{"position":{"x":27650.370817501793,"y":17077.244143050302},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e7f50ea4-ebd4-448f-bd18-54fc2d7e2e7b","savedPayload":{"position":{"x":27741.972654792393,"y":17099.235798476486},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"d9ff5483-8800-49f7-8d9f-9e8e48f8b795","savedPayload":{"position":{"x":27830.773933687444,"y":17130.681980597703},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"f0e01315-185f-4092-9b13-0f529a794336","savedPayload":{"position":{"x":27915.80172879251,"y":17171.238158462093},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"a41e9fac-16b2-4b08-b9e8-b494359f1737","savedPayload":{"position":{"x":27996.12445779121,"y":17220.459990098047},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e6137e7e-940e-44b9-937f-4c6a89709af4","savedPayload":{"position":{"x":28070.862088056027,"y":17277.808190817832},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionCounters\"\n}","project":"Superalgos","id":"3976c01c-c92d-47b1-965d-4e4d7678a59a","savedPayload":{"position":{"x":28139.19577846992,"y":17342.65444173348},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"5a796662-dd46-4e75-8d5b-192ec323901e","savedPayload":{"position":{"x":28200.376850820972,"y":17414.28827375001},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"373f4395-e367-4089-ad1c-6bcefb4a1d40","savedPayload":{"position":{"x":28253.734992477544,"y":17491.924851613505},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"337bc66f-9deb-4e01-b4a8-24cac360726f","savedPayload":{"position":{"x":28298.685600473735,"y":17574.713572730394},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Base Asset","config":"{ \n\"codeName\": \"profitLossInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionBaseAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2c6b4f74-ede6-4055-96e9-7b6a7fe6f14b","savedPayload":{"position":{"x":28334.73618654182,"y":17661.747386547464},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Quoted Asset","config":"{ \n\"codeName\": \"profitLossInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionQuotedAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"1ea905bd-9a4f-45ef-a3f9-ecdfb8e68ce1","savedPayload":{"position":{"x":28361.491772916772,"y":17752.072732387544},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Base Asset","config":"{ \n\"codeName\": \"ROIInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionBaseAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"29924f25-d402-499e-a51a-952a4d1bc015","savedPayload":{"position":{"x":28378.659219795292,"y":17844.699986859814},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Quoted Asset","config":"{ \n\"codeName\": \"ROIInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionQuotedAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2af609c6-806d-4dd2-af9e-4cc9e1a2b0c3","savedPayload":{"position":{"x":28386.05043703686,"y":17938.614306380772},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Base Asset","config":"{ \n\"codeName\": \"hitFailInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionBaseAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"1f4d9780-e2f9-400c-b47b-e303c3a2bac1","savedPayload":{"position":{"x":28383.584444918677,"y":18032.78674601292},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Quoted Asset","config":"{ \n\"codeName\": \"hitFailInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionQuotedAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"4019c021-32b6-48bc-9523-39befbf74aeb","savedPayload":{"position":{"x":28371.28826136642,"y":18126.18553280079},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Base Asset","config":"{ \n\"codeName\": \"entryTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"e8cd2d2b-0ca6-46e1-946b-2aa4bfdb341c","savedPayload":{"position":{"x":28349.296605940235,"y":18217.78737009139},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Quoted Asset","config":"{ \n\"codeName\": \"entryTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2f52b5a7-cd53-485d-b2b6-64c1ce2f5af1","savedPayload":{"position":{"x":28317.850423819018,"y":18306.588648986442},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Base Asset","config":"{ \n\"codeName\": \"exitTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"45e8300d-baf1-4d87-aef6-ec10dd85da2d","savedPayload":{"position":{"x":28277.29424595463,"y":18391.61644409151},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Quoted Asset","config":"{ \n\"codeName\": \"exitTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4c4be570-1f2d-4e3e-9c4e-8076fd4a5b9d","savedPayload":{"position":{"x":28228.072414318674,"y":18471.93917309021},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Rate","config":"{ \n\"codeName\": \"entryTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"546beb6d-17ef-4b1b-b0e5-f9f716cbf09c","savedPayload":{"position":{"x":28170.72421359889,"y":18546.676803355025},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Rate","config":"{ \n\"codeName\": \"exitTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"d71cf631-337c-40ff-8637-89ab1bf10316","savedPayload":{"position":{"x":28105.87796268324,"y":18615.010493768918},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Profit Loss","config":"{ \n\"codeName\": \"profitLoss\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 10\n}","project":"Superalgos","id":"c5e7ea1d-2314-48a4-8c2f-eea2054521aa","savedPayload":{"position":{"x":28034.24413066671,"y":18676.19156611997},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics ROI","config":"{ \n\"codeName\": \"ROI\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 10\n}","project":"Superalgos","id":"6ccc1352-bb8a-4b4c-9e3e-e3107e4610c8","savedPayload":{"position":{"x":27956.607552803216,"y":18729.549707776543},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Hit Fail","config":"{ \n\"codeName\": \"hitFail\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\"\n}","project":"Superalgos","id":"afc68726-a40f-49f8-b9a3-c841e9f14c84","savedPayload":{"position":{"x":27873.818831686327,"y":18774.500315772733},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"871e0d9c-c467-4fbf-bb51-ff06cdd97a24","savedPayload":{"position":{"x":27786.785017869257,"y":18810.55090184082},"targetPosition":{"x":27486.35884455886,"y":17962.17355985786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"731e7326-c591-4d9f-a9d7-1c7abd42156f","savedPayload":{"position":{"x":27486.35884455886,"y":17962.17355985786},"targetPosition":{"x":26611.22591620095,"y":18172.274387328176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"477cd6d5-862a-44d0-9313-786a4e63a602","savedPayload":{"position":{"x":26611.22591620095,"y":18172.274387328176},"targetPosition":{"x":26247.168268732225,"y":18436.77775085979},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Last Position","id":"08c88b9c-70f1-49ff-aa16-21f2bc1c0ba1"}}},{"type":"Product Definition","name":"Stop Loss","config":"{\n \"codeName\": \"Stop-Loss\",\n \"singularVariableName\": \"stopLoss\",\n \"pluralVariableName\": \"stopLosses\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAtCycle\": \"Second\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"b0276d53-e43b-4f1b-a5d8-b118921970dd","savedPayload":{"position":{"x":26905.041163547263,"y":18350.673978577644},"targetPosition":{"x":26697.168268732225,"y":18436.77775085979},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"b5d51a14-eed9-405f-90d7-e91c0ceed659","savedPayload":{"position":{"x":26922.168268732225,"y":18436.77775085979},"targetPosition":{"x":26697.168268732225,"y":18436.77775085979},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\",\n \"childProperty\": \"begin\"\n}","project":"Superalgos","id":"496f95fc-0a29-4a08-a5ba-7fbd1979b326","savedPayload":{"position":{"x":27068.64104381858,"y":18521.56398768685},"targetPosition":{"x":26856.267294499197,"y":18595.876776626763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\",\n \"childProperty\": \"end\"\n}","project":"Superalgos","id":"62a7bb07-5534-4c43-818c-8125eb98cc21","savedPayload":{"position":{"x":27079.852541725177,"y":18621.068783750008},"targetPosition":{"x":26856.267294499197,"y":18595.876776626763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stop Loss","config":"{\n \"codeName\": \"stopLoss\",\n \"isString\": false\n}","project":"Superalgos","id":"f1054e02-00f1-4a93-8a5f-10bb181d57ac","savedPayload":{"position":{"x":27046.780239325562,"y":18715.583993842713},"targetPosition":{"x":26856.267294499197,"y":18595.876776626763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stop Loss Phase","config":"{\n \"codeName\": \"stopLossPhase\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\"\n}","project":"Superalgos","id":"d6b29dfa-d7bf-4995-bff3-2641052c3e4a","savedPayload":{"position":{"x":26975.974511715147,"y":18786.389721453128},"targetPosition":{"x":26856.267294499197,"y":18595.876776626763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Initial Value","config":"{\n \"codeName\": \"initialValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\"\n}","project":"Superalgos","id":"a87ea0f8-6d19-40ce-97b4-d4ce51b41df2","savedPayload":{"position":{"x":26881.459301622443,"y":18819.462023852742},"targetPosition":{"x":26856.267294499197,"y":18595.876776626763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Final Value","config":"{\n \"codeName\": \"finalValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\"\n}","project":"Superalgos","id":"c78fd29a-b6c9-4fab-a805-2f11cce53f6a","savedPayload":{"position":{"x":26781.954505559286,"y":18808.250525946147},"targetPosition":{"x":26856.267294499197,"y":18595.876776626763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d1352dcb-8236-4dfc-98da-4abb3c3813d5","savedPayload":{"position":{"x":26856.267294499197,"y":18595.876776626763},"targetPosition":{"x":26697.168268732225,"y":18436.77775085979},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a1c047bd-e95e-469a-aac9-3d45c4157440","savedPayload":{"position":{"x":26697.168268732225,"y":18436.77775085979},"targetPosition":{"x":26247.168268732225,"y":18436.77775085979},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Stop Loss","id":"cdafbd38-ade8-4548-b951-b404c1bd7885"}}},{"type":"Product Definition","name":"Take Profit","config":"{\n \"codeName\": \"Take-Profit\",\n \"singularVariableName\": \"takeProfit\",\n \"pluralVariableName\": \"takeProfits\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAtCycle\": \"Second\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"67fd9603-5184-4570-bebb-07c33974b40c","savedPayload":{"position":{"x":26824.009148290428,"y":18753.806321258984},"targetPosition":{"x":26605.22591620095,"y":18701.281114391404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"d1fc090a-18c0-4ff6-87d6-726d276bad43","savedPayload":{"position":{"x":26787.254739935313,"y":18833.53279615721},"targetPosition":{"x":26605.22591620095,"y":18701.281114391404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\",\n \"childProperty\": \"begin\"\n}","project":"Superalgos","id":"cba47a0d-3982-454d-a2e1-8bfbc9314c0e","savedPayload":{"position":{"x":26855.917604589114,"y":18988.22083969751},"targetPosition":{"x":26640.423670835004,"y":18923.51099102531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\",\n \"childProperty\": \"end\"\n}","project":"Superalgos","id":"e30faa7e-ff94-485a-a2c6-6c2f4767ef0c","savedPayload":{"position":{"x":26806.500445269656,"y":19075.311863860024},"targetPosition":{"x":26640.423670835004,"y":18923.51099102531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Take Profit","config":"{\n \"codeName\": \"takeProfit\",\n \"isString\": false\n}","project":"Superalgos","id":"094ba661-8e22-4924-9529-465052979f5c","savedPayload":{"position":{"x":26724.189743975443,"y":19132.33686344209},"targetPosition":{"x":26640.423670835004,"y":18923.51099102531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stop Loss Phase","config":"{\n \"codeName\": \"takeProfitPhase\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\"\n}","project":"Superalgos","id":"b7897f40-beef-425c-afb0-b62383df7644","savedPayload":{"position":{"x":26625.288144572296,"y":19148.001337910762},"targetPosition":{"x":26640.423670835004,"y":18923.51099102531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Initial Value","config":"{\n \"codeName\": \"initialValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\"\n}","project":"Superalgos","id":"e0218aec-2f5e-4307-8533-990d87464375","savedPayload":{"position":{"x":26529.384321770525,"y":19119.20274598534},"targetPosition":{"x":26640.423670835004,"y":18923.51099102531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Final Value","config":"{\n \"codeName\": \"finalValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\"\n}","project":"Superalgos","id":"046e68e8-98db-49a9-bf07-c3a9638a7fbb","savedPayload":{"position":{"x":26455.473203859223,"y":19051.64500198821},"targetPosition":{"x":26640.423670835004,"y":18923.51099102531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3012a392-5c3a-4204-82f1-44f46d08621a","savedPayload":{"position":{"x":26640.423670835004,"y":18923.51099102531},"targetPosition":{"x":26605.22591620095,"y":18701.281114391404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"11513bf1-0f23-4d79-b760-83ccebc4e1c5","savedPayload":{"position":{"x":26611.22591620095,"y":18701.281114391404},"targetPosition":{"x":26247.168268732225,"y":18436.77775085979},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Take Profit","id":"d06674eb-36cf-4048-bd99-31712b0523a0"}}}],"productDefinitionFolders":[],"id":"83cdc0a1-260e-42bb-a054-5719c34b0165","savedPayload":{"position":{"x":26247.168268732225,"y":18436.77775085979},"targetPosition":{"x":25819.192836399405,"y":18575.835398328516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Stages","project":"Superalgos","products":[{"type":"Product Definition","name":"Open Stage","config":"{\n \"codeName\": \"Current-Strategy-Open-Stage\",\n \"singularVariableName\": \"currentStrategyOpenStage\",\n \"pluralVariableName\": \"currentStrategyOpenStages\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"b553683f-14f4-48be-91a6-0fb5381887e4","savedPayload":{"position":{"x":26690.639424976314,"y":18165.2051973563},"targetPosition":{"x":26593.774428194447,"y":18368.28688633502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"3287fb46-854d-41de-8a42-285f9c10d4fa","savedPayload":{"position":{"x":26760.98201392686,"y":18217.732499904276},"targetPosition":{"x":26593.774428194447,"y":18368.28688633502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"16f06257-04df-47fc-8a3c-29daf922e556","savedPayload":{"position":{"x":26953.391419289896,"y":17772.730675610972},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"4d6aabc2-0b50-4948-9c21-82f6a1df7bbf","savedPayload":{"position":{"x":27041.51427949525,"y":17768.690509040265},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"22ea5554-c115-4081-bc2a-03243d8630c4","savedPayload":{"position":{"x":27128.732081048973,"y":17781.919890311783},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"37d59f42-6664-4cdb-a563-599f4c926ed2","savedPayload":{"position":{"x":27211.693092749658,"y":17811.910421722387},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"4768b50b-1fb1-4a31-a9ce-9dd1bb7ae14c","savedPayload":{"position":{"x":27287.20916944272,"y":17857.509583968847},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"fa740c89-d602-4dda-953b-80b4744e742c","savedPayload":{"position":{"x":27352.378270650755,"y":17916.965026818336},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"f022ac0c-4a8c-4ea1-bc77-f9e03c706e6e","savedPayload":{"position":{"x":27404.69598436158,"y":17987.99191094515},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3491a030-50f3-4909-be44-b40a7c8fe8c0","savedPayload":{"position":{"x":27442.151770177406,"y":18067.860713024627},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageBaseAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"20e53cb6-ac86-4d7f-823c-d9dcd3fe3683","savedPayload":{"position":{"x":27463.306223254778,"y":18153.502119783792},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageQuotedAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"6e4fd9ec-7ff6-4f34-911e-4954d1e17b18","savedPayload":{"position":{"x":27467.346389825485,"y":18241.62497998915},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Placed In Base Asset","config":"{\n \"codeName\": \"sizePlacedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageBaseAsset\",\n \"childProperty\": \"sizePlaced\",\n \"decimals\": 10\n}","project":"Superalgos","id":"180c4f89-8767-48c0-8319-c3564cf17c90","savedPayload":{"position":{"x":27454.117008553967,"y":18328.84278154287},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Placed In Quoted Asset","config":"{\n \"codeName\": \"sizePlacedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageQuotedAsset\",\n \"childProperty\": \"sizePlaced\",\n \"decimals\": 10\n}","project":"Superalgos","id":"df80e04b-729b-482e-a088-90a164e53095","savedPayload":{"position":{"x":27424.126477143363,"y":18411.803793243555},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Target Size In Base Asset","config":"{\n \"codeName\": \"targetSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageBaseAsset\",\n \"childProperty\": \"targetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"709e3369-660e-4109-bbcb-3d4e45b6609f","savedPayload":{"position":{"x":27378.527314896903,"y":18487.31986993662},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Target Size In Quoted Asset","config":"{\n \"codeName\": \"targetSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageQuotedAsset\",\n \"childProperty\": \"targetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"eb37666f-1459-4bbc-8a33-5030dd2468fa","savedPayload":{"position":{"x":27319.071872047414,"y":18552.488971144652},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stage Defined In","config":"{ \n\"codeName\": \"stageDefinedIn\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"68d9f756-49e1-4541-b94b-e6502c2dd812","savedPayload":{"position":{"x":27248.0449879206,"y":18604.806684855477},"targetPosition":{"x":27017.963099185927,"y":18218.073799679823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"59f991ac-f3e7-410e-9caf-bf14ed61d69c","savedPayload":{"position":{"x":27017.963099185927,"y":18218.073799679823},"targetPosition":{"x":26593.774428194447,"y":18368.28688633502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"73c3c041-ba2a-4798-a362-a453409b518a","savedPayload":{"position":{"x":26593.774428194447,"y":18368.28688633502},"targetPosition":{"x":26259.35925672962,"y":18669.395659196507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Strategy Open Stage","id":"f759a457-fc11-43a8-bf2c-6ebf1db0e78d"}}},{"type":"Product Definition","name":"Close Stage","config":"{\n \"codeName\": \"Current-Strategy-Close-Stage\",\n \"singularVariableName\": \"currentStrategyCloseStage\",\n \"pluralVariableName\": \"currentStrategyCloseStages\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0c30c4d3-3e58-4422-a178-450c24f95001","savedPayload":{"position":{"x":26904.627959994283,"y":18514.997129667652},"targetPosition":{"x":26706.89410964534,"y":18622.357850726064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"4903a08c-90b6-4726-aa4d-1d8a0acdbd77","savedPayload":{"position":{"x":26930.6615361032,"y":18598.838946490843},"targetPosition":{"x":26706.89410964534,"y":18622.357850726064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"840e560a-bfeb-473e-9a22-e0388757f531","savedPayload":{"position":{"x":27347.88952448233,"y":18351.920318984463},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"4beb9d7d-106c-440a-9ea0-db16de4c2da4","savedPayload":{"position":{"x":27421.557166308456,"y":18400.449073187192},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"517d1407-6464-46e0-b5f7-ce3ca23a7cbd","savedPayload":{"position":{"x":27484.341814769083,"y":18462.417204951566},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"23275807-6666-4821-a84b-060a46ed4993","savedPayload":{"position":{"x":27533.830691033912,"y":18535.443313726006},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"75a1d315-4027-402a-8646-565331def8e4","savedPayload":{"position":{"x":27568.12196534176,"y":18616.721047103823},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"f46867ef-8d39-4aa9-b57d-12ab7eb8c293","savedPayload":{"position":{"x":27585.89784325175,"y":18703.126947372388},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"73317d39-d014-45f3-bf3b-07230c4055cc","savedPayload":{"position":{"x":27586.475207744625,"y":18791.340484241362},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"f4815fd2-f336-4867-ae0c-8d31ac90ced9","savedPayload":{"position":{"x":27569.831871026712,"y":18877.971660959596},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageBaseAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"81b366f7-5fb3-4b55-98c8-cea47462b138","savedPayload":{"position":{"x":27536.607427194394,"y":18959.691289989132},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageQuotedAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"7f1e01e4-f353-4cd4-b145-871558d5ab60","savedPayload":{"position":{"x":27488.078672991665,"y":19033.35893181526},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Placed In Base Asset","config":"{\n \"codeName\": \"sizePlacedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageBaseAsset\",\n \"childProperty\": \"sizePlaced\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3074287b-add9-4baf-a74c-9f09c17cf4f8","savedPayload":{"position":{"x":27426.110541227292,"y":19096.143580275886},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Placed In Quoted Asset","config":"{\n \"codeName\": \"sizePlacedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageQuotedAsset\",\n \"childProperty\": \"sizePlaced\",\n \"decimals\": 10\n}","project":"Superalgos","id":"b8c6b690-b924-4a51-88c0-e17e95c16d38","savedPayload":{"position":{"x":27353.08443245285,"y":19145.632456540716},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Target Size In Base Asset","config":"{\n \"codeName\": \"targetSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageBaseAsset\",\n \"childProperty\": \"targetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"e0e42bb9-3f23-49d1-a286-bdb3b58f4a14","savedPayload":{"position":{"x":27271.806699075034,"y":19179.923730848564},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Target Size In Quoted Asset","config":"{\n \"codeName\": \"targetSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageQuotedAsset\",\n \"childProperty\": \"targetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3ab9f66f-69b9-4d05-a7a1-105d49ce0c09","savedPayload":{"position":{"x":27185.40079880647,"y":19197.699608758554},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stage Defined In","config":"{ \n\"codeName\": \"stageDefinedIn\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7bcc6d7f-a5c9-4a06-9730-7744461e9a75","savedPayload":{"position":{"x":27097.187261937495,"y":19198.276973251428},"targetPosition":{"x":27138.362990336027,"y":18750.16475584283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"722161de-6374-4eb6-a3cc-ab6638d0c484","savedPayload":{"position":{"x":27138.362990336027,"y":18750.16475584283},"targetPosition":{"x":26706.89410964534,"y":18622.357850726064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"2bb9bb41-1ff5-4f83-aa5b-bfc4c9f06a9a","savedPayload":{"position":{"x":26706.89410964534,"y":18622.357850726064},"targetPosition":{"x":26259.35925672962,"y":18669.395659196507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Strategy Close Stage","id":"6be13ce1-0fae-4355-99b2-dc8db000251f"}}},{"type":"Product Definition","name":"Trigger Stage","config":"{\n \"codeName\": \"Current-Strategy-Trigger-Stage\",\n \"singularVariableName\": \"currentStrategyTriggerStage\",\n \"pluralVariableName\": \"currentStrategyTriggerStages\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyTriggerStage\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a179150b-2eaa-45ef-a7fa-14a1decf7dfc","savedPayload":{"position":{"x":26872.145782241725,"y":18923.76405244602},"targetPosition":{"x":26649.070688432617,"y":18894.395659196507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"493f0951-e638-4da1-88b4-1c1d3829046e","savedPayload":{"position":{"x":26843.926404284117,"y":19006.895659196507},"targetPosition":{"x":26649.070688432617,"y":18894.395659196507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"42eb64c6-8540-44fa-a428-e6f6514464c1","savedPayload":{"position":{"x":27006.29863778655,"y":19026.943464859356},"targetPosition":{"x":26786.04200995958,"y":19072.900160762034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"56c868af-79a0-4b0e-a9ec-7d82999155b7","savedPayload":{"position":{"x":27004.42623763659,"y":19127.060377729053},"targetPosition":{"x":26786.04200995958,"y":19072.900160762034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"22df8e6e-b5c8-4ee3-80a9-425ef95d88f8","savedPayload":{"position":{"x":26959.300162888412,"y":19216.45019539696},"targetPosition":{"x":26786.04200995958,"y":19072.900160762034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"fcf315f5-afd7-449e-b0bf-d7cf4af9bba0","savedPayload":{"position":{"x":26879.858186080877,"y":19277.40816817978},"targetPosition":{"x":26786.04200995958,"y":19072.900160762034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"5f4b2d5b-c8bc-401b-90ec-14ede9ec8f64","savedPayload":{"position":{"x":26781.834765012627,"y":19297.860821967402},"targetPosition":{"x":26786.04200995958,"y":19072.900160762034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"292f1ff7-7038-4826-8af8-1fdd34661d0b","savedPayload":{"position":{"x":26684.644640404593,"y":19273.757257841848},"targetPosition":{"x":26786.04200995958,"y":19072.900160762034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c9ec94f8-1ccc-4111-817f-2fb25f5f02b5","savedPayload":{"position":{"x":26786.04200995958,"y":19072.900160762034},"targetPosition":{"x":26649.070688432617,"y":18894.395659196507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"b6cff826-9056-4fbd-8eca-cbd6cceec962","savedPayload":{"position":{"x":26649.070688432617,"y":18894.395659196507},"targetPosition":{"x":26259.35925672962,"y":18669.395659196507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Strategy Trigger Stage","id":"823fa15f-bf29-4784-a5f8-5b82d2ed7645"}}},{"type":"Product Definition","name":"Manage Stage","config":"{\n \"codeName\": \"Current-Strategy-Manage-Stage\",\n \"singularVariableName\": \"currentStrategyManageStage\",\n \"pluralVariableName\": \"currentStrategyManageStages\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyManageStage\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"56d1a25b-54b1-419c-a323-f2fad41de0ec","savedPayload":{"position":{"x":26605.599979591494,"y":19235.370894666772},"targetPosition":{"x":26442.390746113728,"y":19080.49111513568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"fef1dba7-fc21-4338-b75e-a040d71dbde5","savedPayload":{"position":{"x":26533.906490805784,"y":19286.038843105263},"targetPosition":{"x":26442.390746113728,"y":19080.49111513568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"4df09191-2517-4b69-8d05-ba22ee71d7a5","savedPayload":{"position":{"x":26653.48458261442,"y":19397.697862820958},"targetPosition":{"x":26448.280559483,"y":19305.41401325518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"41b7d04c-0aeb-478f-9515-8ee8d6eb15e4","savedPayload":{"position":{"x":26593.122534182974,"y":19477.593577562362},"targetPosition":{"x":26448.280559483,"y":19305.41401325518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"1250e9d7-07f0-47a5-b1bb-9ad2af6ee8ef","savedPayload":{"position":{"x":26504.072756291956,"y":19523.38701794895},"targetPosition":{"x":26448.280559483,"y":19305.41401325518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"c629a906-31b2-4dae-bc5b-44f189b024ae","savedPayload":{"position":{"x":26403.97264957653,"y":19526.00823149247},"targetPosition":{"x":26448.280559483,"y":19305.41401325518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"e876f72a-fef5-4956-b401-3d2b7b4b8b95","savedPayload":{"position":{"x":26312.64826781894,"y":19484.938054703547},"targetPosition":{"x":26448.280559483,"y":19305.41401325518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"e248dba4-bfa4-4879-8276-edc85ee6b0d9","savedPayload":{"position":{"x":26248.187524846304,"y":19408.310939787894},"targetPosition":{"x":26448.280559483,"y":19305.41401325518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"188b2d1c-91c4-4a50-9101-91596ac53407","savedPayload":{"position":{"x":26448.280559483,"y":19305.41401325518},"targetPosition":{"x":26442.390746113728,"y":19080.49111513568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"bd691611-e7a6-49a8-b07d-c15360b55e40","savedPayload":{"position":{"x":26442.390746113728,"y":19080.49111513568},"targetPosition":{"x":26259.35925672962,"y":18669.395659196507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Strategy Manage Stage","id":"34a912c3-4b0f-4f21-9736-4ef47cd0544d"}}}],"productDefinitionFolders":[],"id":"e3ceaf77-f718-477c-bf10-3dc0cf2235bb","savedPayload":{"position":{"x":26259.35925672962,"y":18669.395659196507},"targetPosition":{"x":25819.192836399405,"y":18575.835398328516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Orders","project":"Superalgos","products":[{"type":"Product Definition","name":"Market Buy Orders","config":"{ \n \"codeName\": \"Market-Buy-Orders\", \n \"singularVariableName\": \"marketBuyOrder\", \n \"pluralVariableName\": \"marketBuyOrders\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a2ea8001-2143-4055-b1d3-525d95fa8e6f","savedPayload":{"position":{"x":26729.687883722007,"y":18547.789827507248},"targetPosition":{"x":26569.99494307753,"y":18706.292712996186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"557357c6-f814-4bf9-9426-82fc5e22c028","savedPayload":{"position":{"x":26778.18841068418,"y":18620.966983899278},"targetPosition":{"x":26569.99494307753,"y":18706.292712996186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"1f788bde-d5cc-4556-9cb3-f6ad2a085870","savedPayload":{"position":{"x":27065.774088629263,"y":18260.310672248503},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"cbe57e07-e492-45ef-be26-6e5ace5cc49d","savedPayload":{"position":{"x":27109.432480725412,"y":18266.953751153596},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"0eef5d2a-489b-402b-a1bc-bbf6105bc226","savedPayload":{"position":{"x":27152.229510133304,"y":18277.844112562674},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"76a37b2a-ff68-425c-95ae-9da13d4f11e3","savedPayload":{"position":{"x":27193.753018064504,"y":18292.87687634209},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"81aa9c0a-b729-471f-8b3f-046d83779376","savedPayload":{"position":{"x":27233.60311043858,"y":18311.9072687589},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"48215010-5717-4f29-aa92-edc16d881270","savedPayload":{"position":{"x":27271.39600908169,"y":18334.75201673107},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"588b02df-d269-4fac-a942-0e148bef8573","savedPayload":{"position":{"x":27306.767747720205,"y":18361.191112847406},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f44959e8-ba4e-41f2-a349-7003d00ef570","savedPayload":{"position":{"x":27339.37767717487,"y":18390.969934159235},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"43c9c172-0930-4a94-86c4-6de1b82604d3","savedPayload":{"position":{"x":27368.91174599864,"y":18423.801694338566},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e637160d-ab4a-4d36-8324-994615efa900","savedPayload":{"position":{"x":27395.085524963783,"y":18459.3702055872},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b9cf9af0-758e-46c8-ad34-0afb01aa1658","savedPayload":{"position":{"x":27417.646946270812,"y":18497.332923698094},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderCounters\"\n}","project":"Superalgos","id":"69f674b7-9532-406e-bda9-6a128a9b3e8b","savedPayload":{"position":{"x":27436.378731099216,"y":18537.3242469433},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"5f50a6c7-0123-4f45-802c-897b7f1d9186","savedPayload":{"position":{"x":27451.100482121266,"y":18578.95903701849},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"ff92e722-7f93-4935-ab39-5fe5d901d275","savedPayload":{"position":{"x":27461.67042082689,"y":18621.83632813534},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"7ed49f47-7cf0-4c04-8ec7-c42b77bbc496","savedPayload":{"position":{"x":27467.986752928235,"y":18665.5431885413},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lock","config":"{\n \"codeName\": \"lock\",\n \"isString\": true\n}","project":"Superalgos","id":"c8db7716-5a26-4aa6-b6fa-594e9b4998f0","savedPayload":{"position":{"x":27469.988648694307,"y":18709.658697278046},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"9033bc32-f754-4d94-87a6-4c16cd8ca7d7","savedPayload":{"position":{"x":27467.656828774532,"y":18753.75799788046},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"1524688a-c64c-434c-84ea-79e57f7e37bc","savedPayload":{"position":{"x":27461.01374986944,"y":18797.41638997661},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"200c3a3d-f082-4cb0-86b1-ba12429f6c0e","savedPayload":{"position":{"x":27450.12338846036,"y":18840.2134193845},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"256902a5-0c3d-4a8d-9f85-e68bb07405e0","savedPayload":{"position":{"x":27435.090624680946,"y":18881.736927315702},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"5f054d54-a92e-4d88-a654-20f9257ab794","savedPayload":{"position":{"x":27416.060232264135,"y":18921.587019689778},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2180ac7e-b09a-404f-86cd-3e0d0eb0635f","savedPayload":{"position":{"x":27393.215484291966,"y":18959.37991833289},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"cd182952-6fd9-40be-82c6-d5b1356c3fc7","savedPayload":{"position":{"x":27366.77638817563,"y":18994.751656971403},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"81cb024b-b64e-4f2c-be9d-c343fc27b08e","savedPayload":{"position":{"x":27336.9975668638,"y":19027.36158642607},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"bfd95185-6f74-4710-b798-b76a5c3cc109","savedPayload":{"position":{"x":27304.16580668447,"y":19056.89565524984},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Base Asset","config":"{\n \"codeName\": \"actualSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4a7527d6-b18c-4e2d-a999-7a0adae10446","savedPayload":{"position":{"x":27268.597295435833,"y":19083.06943421498},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Quoted Asset","config":"{\n \"codeName\": \"actualSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"563763f2-8250-4ba4-86b6-4513fff2809d","savedPayload":{"position":{"x":27230.63457732494,"y":19105.63085552201},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Base Asset","config":"{\n \"codeName\": \"amountReceivedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"f8f2196b-973a-4f6f-a78b-408d4ac24b4d","savedPayload":{"position":{"x":27190.643254079736,"y":19124.362640350413},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Quoted Asset","config":"{\n \"codeName\": \"amountReceivedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"cc17eb10-cd63-4be5-9190-6d2f94e02f70","savedPayload":{"position":{"x":27149.008464004546,"y":19139.084391372464},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Base Asset","config":"{ \n\"codeName\": \"feesToBePaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"cf03df3f-d37a-4970-a8d3-d1983d680ebf","savedPayload":{"position":{"x":27106.131172887694,"y":19149.654330078087},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesToBePaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"3af34380-403a-4cee-b0b1-767b8fff60f5","savedPayload":{"position":{"x":27062.424312481737,"y":19155.970662179432},"targetPosition":{"x":27019.99179588592,"y":18707.975705137116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2b743c15-4ca6-46e9-a96e-b0a62b42de60","savedPayload":{"position":{"x":27019.99179588592,"y":18707.975705137116},"targetPosition":{"x":26569.99494307753,"y":18706.292712996186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"7c769317-2639-4460-8b88-9dc92f7b0585","savedPayload":{"position":{"x":26569.99494307753,"y":18706.292712996186},"targetPosition":{"x":26153.608007864234,"y":18876.944171190004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Market Buy Orders","id":"50d624c9-9a6e-4d57-a147-29d5c004b3f2"}}},{"type":"Product Definition","name":"Market Sell Orders","config":"{ \n \"codeName\": \"Market-Sell-Orders\", \n \"singularVariableName\": \"marketSellOrder\", \n \"pluralVariableName\": \"marketSellOrders\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"917cfdae-b736-4ed5-ad8e-d572c49ea489","savedPayload":{"position":{"x":26815.45275882104,"y":18830.338045364537},"targetPosition":{"x":26602.802566259714,"y":18903.85604046527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"3c878a50-6d76-412b-95d7-f2e546960293","savedPayload":{"position":{"x":26827.399845457454,"y":18917.311975102904},"targetPosition":{"x":26602.802566259714,"y":18903.85604046527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"7dd0d738-2116-4010-a9d5-19624a9bc097","savedPayload":{"position":{"x":27242.98849717597,"y":18717.15061555652},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"5843c701-ba88-42c1-97c2-215cb97b309c","savedPayload":{"position":{"x":27279.441025362685,"y":18742.078489243562},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"f3f77a4c-acf5-4026-aa2a-9b34e231a9d5","savedPayload":{"position":{"x":27313.274665769386,"y":18770.459300975966},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"cc0b04e1-acd8-413b-8366-e620d55a22be","savedPayload":{"position":{"x":27344.163581943616,"y":18802.019728022216},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"89bb217d-a5ce-4197-b33b-4b251e3ec5c9","savedPayload":{"position":{"x":27371.81029673701,"y":18836.455826217178},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"3a6b6603-5de8-47a1-b2cb-e2078397aca1","savedPayload":{"position":{"x":27395.948557172884,"y":18873.435957110538},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"a0d62501-1822-4d56-afce-b5eee40212f7","savedPayload":{"position":{"x":27416.345898607917,"y":18912.603981826407},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"9f72bb4a-779d-453f-a7b2-bf240eec29fa","savedPayload":{"position":{"x":27432.805883493776,"y":18953.582690875344},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7b91a979-7175-49aa-a83b-faa1d7c22bf3","savedPayload":{"position":{"x":27445.169993178064,"y":18995.977436887973},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b47e5776-92ed-468e-8040-16a655a9a92b","savedPayload":{"position":{"x":27453.319154525612,"y":19039.379935284862},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"178e1183-6b29-4a8b-b2a2-3e817bf56c0b","savedPayload":{"position":{"x":27457.174886657856,"y":19083.37219628023},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderCounters\"\n}","project":"Superalgos","id":"16eb66bd-cbd5-4272-83bd-7aa5cbf79965","savedPayload":{"position":{"x":27456.700056766607,"y":19127.53055035208},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"4694fc1a-8031-4b21-8002-fb2259b98221","savedPayload":{"position":{"x":27451.899237723286,"y":19171.42972841128},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"3fdfa893-f3ff-4595-bfd1-e9e191a2f7de","savedPayload":{"position":{"x":27442.818664039678,"y":19214.646957375397},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"fd90ed73-a52a-41b0-988e-f85896e4e119","savedPayload":{"position":{"x":27429.545786604296,"y":19256.76603170456},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lock","config":"{\n \"codeName\": \"lock\",\n \"isString\": true\n}","project":"Superalgos","id":"a0541e00-0150-4089-82c3-1f596ed4fc0c","savedPayload":{"position":{"x":27412.20843048254,"y":19297.381321688354},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"2320eff7-cd11-46a6-8f2b-7c6c6bd9afa2","savedPayload":{"position":{"x":27390.97356389142,"y":19336.101679881656},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"cbcd69c4-f332-4615-a1aa-ff5a63c2f63a","savedPayload":{"position":{"x":27366.045690204377,"y":19372.55420806837},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"67d569c5-929d-4f9a-a7a2-1a31aecab027","savedPayload":{"position":{"x":27337.664878471973,"y":19406.38784847507},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"42ccc010-d59e-45d0-9ded-718df8f547cc","savedPayload":{"position":{"x":27306.104451425723,"y":19437.2767646493},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"da1eb092-2796-4d86-9e20-095b75b18911","savedPayload":{"position":{"x":27271.66835323076,"y":19464.923479442696},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4b2b02b0-2297-4cae-997e-ddadffae94e1","savedPayload":{"position":{"x":27234.6882223374,"y":19489.06173987857},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"49e12e85-2250-420d-ae4e-4d7ee514e59c","savedPayload":{"position":{"x":27195.520197621532,"y":19509.459081313602},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"f28662d2-c0e7-4051-a8ab-868707defe65","savedPayload":{"position":{"x":27154.541488572595,"y":19525.91906619946},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"a4c176bc-6da0-459f-ac04-7c414f92ce02","savedPayload":{"position":{"x":27112.146742559966,"y":19538.28317588375},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Base Asset","config":"{\n \"codeName\": \"actualSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"294f76ca-f9e2-4286-a23d-5c99566196e6","savedPayload":{"position":{"x":27068.744244163077,"y":19546.432337231297},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Quoted Asset","config":"{\n \"codeName\": \"actualSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"8568ef28-9a27-42e2-bb4c-4369687ffc12","savedPayload":{"position":{"x":27024.75198316771,"y":19550.28806936354},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Base Asset","config":"{\n \"codeName\": \"amountReceivedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"cf72b9d2-d399-4a2b-9928-9caa64660f4a","savedPayload":{"position":{"x":26980.59362909586,"y":19549.813239472292},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Quoted Asset","config":"{\n \"codeName\": \"amountReceivedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"885e6120-43c9-4eee-85c1-668a539be5b6","savedPayload":{"position":{"x":26936.69445103666,"y":19545.01242042897},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Base Asset","config":"{ \n\"codeName\": \"feesToBePaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"9e9c5625-295a-4292-a5de-8b4e5d637afd","savedPayload":{"position":{"x":26893.477222072543,"y":19535.931846745363},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesToBePaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"f8d17b8d-ae68-4b25-970e-2fb371884d48","savedPayload":{"position":{"x":26851.35814774338,"y":19522.65896930998},"targetPosition":{"x":27007.505498371127,"y":19100.618681076812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e2626cbd-29b0-4582-a408-4720feb8123d","savedPayload":{"position":{"x":27007.505498371127,"y":19100.618681076812},"targetPosition":{"x":26602.802566259714,"y":18903.85604046527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"9cc7645a-54fe-40d6-9896-9278167011fb","savedPayload":{"position":{"x":26602.802566259714,"y":18903.85604046527},"targetPosition":{"x":26153.608007864234,"y":18876.944171190004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Market Sell Orders","id":"4f84a1a5-f9cd-4b9d-9d91-661ba912e2ca"}}},{"type":"Product Definition","name":"Limit Buy Orders","config":"{ \n \"codeName\": \"Limit-Buy-Orders\", \n \"singularVariableName\": \"limitBuyOrder\", \n \"pluralVariableName\": \"limitBuyOrders\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"df8cfaa4-a4d4-4bc1-9fa2-4f8e91e45a87","savedPayload":{"position":{"x":26770.131163999882,"y":19122.11717802818},"targetPosition":{"x":26546.641698141942,"y":19096.089142171968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"12652573-9506-4d3e-82bb-64b1bb9e7ce0","savedPayload":{"position":{"x":26743.158543280795,"y":19205.66162766295},"targetPosition":{"x":26546.641698141942,"y":19096.089142171968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"b0dc1303-0b65-4328-b885-f33d4ef395a6","savedPayload":{"position":{"x":27204.437739439563,"y":19205.639632297083},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"451e4e45-854c-4b9f-ac75-ddfe076fb6d8","savedPayload":{"position":{"x":27226.46453344854,"y":19243.915029662054},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"fa7958e6-31e1-4216-b3bf-f341cae3ad92","savedPayload":{"position":{"x":27244.633617429135,"y":19284.16512388637},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"f3230b63-049f-457a-abc1-9117d8443337","savedPayload":{"position":{"x":27258.77001317039,"y":19326.00228455971},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"544aae22-e5cf-41d2-912e-f19699a7f65a","savedPayload":{"position":{"x":27268.73757945357,"y":19369.023596954274},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7cccabcc-97ae-4e46-86b4-70c8b6ab73c5","savedPayload":{"position":{"x":27274.440323166542,"y":19412.81474231386},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"3f94ee88-bb65-4f46-9cef-c3468b2e5831","savedPayload":{"position":{"x":27275.823323769913,"y":19456.95398796998},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"fbe17bbd-1af9-4b97-be44-f267039077e5","savedPayload":{"position":{"x":27272.873262211855,"y":19501.016248858},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"593c0354-1f6a-4ec1-879b-13f95de9d66d","savedPayload":{"position":{"x":27265.61854919783,"y":19544.577181318688},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7a473c6b-849a-46f7-befa-661675c6b6a7","savedPayload":{"position":{"x":27254.12905158,"y":19587.217269759614},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7e05bfad-d3ba-4170-bb97-b02911c65b81","savedPayload":{"position":{"x":27238.515419501215,"y":19628.52586681965},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderCounters\"\n}","project":"Superalgos","id":"e86cdc19-1330-4dbd-b0d9-6300bb84b504","savedPayload":{"position":{"x":27218.92802077368,"y":19668.10514812754},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"dc8ff39f-2ebf-4097-a324-69714556e67e","savedPayload":{"position":{"x":27195.555492754702,"y":19705.573943568044},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"e9f153ec-763f-45ce-ab8e-9095762a8b5c","savedPayload":{"position":{"x":27168.622925665823,"y":19740.571408158543},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"45ca3d8c-ba98-4ff9-8825-d515ad54d235","savedPayload":{"position":{"x":27138.389694850954,"y":19772.760497183477},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lock","config":"{\n \"codeName\": \"lock\",\n \"isString\": true\n}","project":"Superalgos","id":"0952905d-7adc-497d-859c-9bf80bd5753c","savedPayload":{"position":{"x":27105.14696285,"y":19801.83121211918},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"7becceb8-d380-4e4e-b5ce-70b63b32445f","savedPayload":{"position":{"x":27069.214875344464,"y":19827.503586089166},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"4deb6a9d-3914-4a70-b2f5-992a09504eec","savedPayload":{"position":{"x":27030.939477979493,"y":19849.530380098142},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"3213e0e6-5b5f-4e9a-b67e-33f596bad152","savedPayload":{"position":{"x":26990.689383755176,"y":19867.69946407874},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"737e90c6-6468-4873-a786-8e998b39163b","savedPayload":{"position":{"x":26948.852223081838,"y":19881.835859819992},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"08461bfb-7f11-40d4-96a8-0b84ab258efe","savedPayload":{"position":{"x":26905.830910687273,"y":19891.80342610317},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"1c6d07ec-602d-412b-b384-b9170f8bb8de","savedPayload":{"position":{"x":26862.039765327685,"y":19897.506169816144},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"bb16c953-c112-4828-8f29-6604be02b427","savedPayload":{"position":{"x":26817.900519671566,"y":19898.889170419516},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"a698c86e-8997-4053-9bd7-222876eb9a74","savedPayload":{"position":{"x":26773.838258783548,"y":19895.939108861457},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"07aef603-7b78-4446-b0e2-03c365d5941c","savedPayload":{"position":{"x":26730.27732632286,"y":19888.68439584743},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Base Asset","config":"{\n \"codeName\": \"actualSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"d28dd916-3d2e-459c-9899-4dc31385242d","savedPayload":{"position":{"x":26687.637237881932,"y":19877.1948982296},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Quoted Asset","config":"{\n \"codeName\": \"actualSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"b5bedab9-5eb2-4334-9c65-901f03abf58c","savedPayload":{"position":{"x":26646.328640821896,"y":19861.581266150817},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Base Asset","config":"{\n \"codeName\": \"amountReceivedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"0c5084c6-c8cd-4985-8971-2055b7e81781","savedPayload":{"position":{"x":26606.749359514008,"y":19841.993867423284},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Quoted Asset","config":"{\n \"codeName\": \"amountReceivedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"980d1de1-2e7e-434c-88c8-e0990cefff6d","savedPayload":{"position":{"x":26569.280564073502,"y":19818.621339404304},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Base Asset","config":"{ \n\"codeName\": \"feesToBePaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"cc86032e-ef23-4fbd-920a-11e92467a2f8","savedPayload":{"position":{"x":26534.283099483004,"y":19791.688772315425},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesToBePaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"5c1dcd41-a39e-4933-b591-3a8f1c2d8de9","savedPayload":{"position":{"x":26502.09401045807,"y":19761.455541500556},"targetPosition":{"x":26825.894330495972,"y":19448.960177145575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d3c594aa-6573-44f7-b93e-2bd2b0d4134e","savedPayload":{"position":{"x":26825.894330495972,"y":19448.960177145575},"targetPosition":{"x":26546.641698141942,"y":19096.089142171968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"4c827ee0-a29b-4b65-8438-03e2ea98b410","savedPayload":{"position":{"x":26546.641698141942,"y":19096.089142171968},"targetPosition":{"x":26153.608007864234,"y":18876.944171190004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Limit Buy Orders","id":"17ec46bd-e5c0-48d5-a3b6-e108cc835f17"}}},{"type":"Product Definition","name":"Limit Sell Orders","config":"{ \n \"codeName\": \"Limit-Sell-Orders\", \n \"singularVariableName\": \"limitSellOrder\", \n \"pluralVariableName\": \"limitSellOrders\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"f645108f-4648-497f-b361-0be5b84c233a","savedPayload":{"position":{"x":26602.699596945753,"y":19365.336789837926},"targetPosition":{"x":26412.635687422786,"y":19244.917894739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"e98191d1-5b13-42eb-bd52-31e3c6830188","savedPayload":{"position":{"x":26542.149527202062,"y":19428.904756513497},"targetPosition":{"x":26412.635687422786,"y":19244.917894739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"5d3f01ca-9d2b-4446-906c-0f9dfcf8016f","savedPayload":{"position":{"x":26957.757265783745,"y":19629.02648178012},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"ef7f6f85-9aac-4eb1-935e-84c03beb5ae0","savedPayload":{"position":{"x":26960.995648920612,"y":19673.06849095794},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"68c5cf4d-ee84-4d53-be73-923d6ec0c070","savedPayload":{"position":{"x":26959.901566563552,"y":19717.21584287803},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"f551a912-c93a-49a5-8ec6-b23845504195","savedPayload":{"position":{"x":26954.48555532376,"y":19761.043374408},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"5ca3123d-351b-4b1b-9bdd-2be83cb30d4b","savedPayload":{"position":{"x":26944.79977435016,"y":19804.129002460657},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"a4d2dcb3-66b5-4689-9ff5-6e79ca264c3a","savedPayload":{"position":{"x":26930.937503008317,"y":19846.057788884846},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"74cfaaa3-4241-4585-bb78-afe6ab4fad13","savedPayload":{"position":{"x":26913.03224254914,"y":19886.4259365467},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e79e457e-0f39-4444-b196-e2ab8e9d51b3","savedPayload":{"position":{"x":26891.256430418864,"y":19924.844678116762},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"26467972-56e9-445c-84cc-043cf332e7cf","savedPayload":{"position":{"x":26865.819779592173,"y":19960.944020111892},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"259e069d-8c48-4b18-b3be-876eb376edfd","savedPayload":{"position":{"x":26836.967258921613,"y":19994.376306134764},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"ab79d27c-63b2-4b9c-986c-69551d4acda6","savedPayload":{"position":{"x":26804.976733953637,"y":20024.81956499504},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderCounters\"\n}","project":"Superalgos","id":"df8ad782-de40-443e-9c25-0c9fd06c0ddd","savedPayload":{"position":{"x":26770.156290931485,"y":20051.98061146791},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"2adf7743-fa8c-484c-b2b2-16c144f2aa8c","savedPayload":{"position":{"x":26732.841269756253,"y":20075.5978698281},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"fd5472c9-a36f-4281-891d-57380ca2ef6c","savedPayload":{"position":{"x":26693.39103448032,"y":20095.4438929671},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"87559a66-ff26-4cfb-b9db-baa312369ee1","savedPayload":{"position":{"x":26652.185512435088,"y":20111.327552833147},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lock","config":"{\n \"codeName\": \"lock\",\n \"isString\": true\n}","project":"Superalgos","id":"aee3133b-1078-4262-84da-01e16ab7d491","savedPayload":{"position":{"x":26609.62153532308,"y":20123.095881098827},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"84f5a086-9b8d-4296-bba1-bccfc56fb263","savedPayload":{"position":{"x":26566.109017511724,"y":20130.635542329725},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"8bf3e674-bbc9-4ff6-bcba-c9487d5215a3","savedPayload":{"position":{"x":26522.067008333906,"y":20133.873925466592},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"1d59f7dc-e3c9-4456-8980-3fded2a58f1a","savedPayload":{"position":{"x":26477.919656413815,"y":20132.779843109533},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"8a2fa2ac-a644-46bd-ad48-8acd59807416","savedPayload":{"position":{"x":26434.092124883842,"y":20127.36383186974},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"fd203e76-3248-4806-98bc-3dd66c8c4964","savedPayload":{"position":{"x":26391.00649683119,"y":20117.67805089614},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2967221c-0ec9-41e4-8185-689147f647eb","savedPayload":{"position":{"x":26349.077710407,"y":20103.815779554297},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"996a2f7a-28d7-4bbd-9695-3d29119b3008","savedPayload":{"position":{"x":26308.709562745145,"y":20085.91051909512},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4056be3b-3774-4537-8902-06ecf35d9958","savedPayload":{"position":{"x":26270.290821175084,"y":20064.134706964844},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"ed176195-45a7-4fa0-92d0-ac7a4feab4bc","savedPayload":{"position":{"x":26234.191479179954,"y":20038.698056138153},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Base Asset","config":"{\n \"codeName\": \"actualSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"d4610df3-78d9-49fc-8218-be21473b12b6","savedPayload":{"position":{"x":26200.75919315708,"y":20009.845535467593},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Quoted Asset","config":"{\n \"codeName\": \"actualSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"f0112290-2f1b-42cc-ab0e-51601b9b44e0","savedPayload":{"position":{"x":26170.315934296807,"y":19977.855010499617},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Base Asset","config":"{\n \"codeName\": \"amountReceivedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"aa23a704-83fd-4c85-a429-7c6228e6c373","savedPayload":{"position":{"x":26143.154887823937,"y":19943.034567477465},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Quoted Asset","config":"{\n \"codeName\": \"amountReceivedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"0f2548c2-6dfd-4858-94f2-4c711909dc60","savedPayload":{"position":{"x":26119.537629463746,"y":19905.719546302233},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Base Asset","config":"{ \n\"codeName\": \"feesToBePaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"3f1abc5c-e271-453b-ad96-755d827b8e79","savedPayload":{"position":{"x":26099.691606324744,"y":19866.2693110263},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesToBePaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"dc782a78-4e32-4e52-9e9e-c57770f06536","savedPayload":{"position":{"x":26083.8079464587,"y":19825.063788981068},"targetPosition":{"x":26511.128611372933,"y":19684.006887918913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"38241371-e97c-4eb5-989e-26605c078620","savedPayload":{"position":{"x":26511.128611372933,"y":19684.006887918913},"targetPosition":{"x":26412.635687422786,"y":19244.917894739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"2c753cd8-36d8-466c-bd80-1ebfa8e314dc","savedPayload":{"position":{"x":26412.635687422786,"y":19244.917894739},"targetPosition":{"x":26153.608007864234,"y":18876.944171190004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Limit Sell Orders","id":"1ec8da3f-8749-430d-8ad9-35fffc0d61ec"}}},{"type":"Product Definition","name":"Last Market Order","config":"{ \n \"codeName\": \"Last-Market-Order\", \n \"singularVariableName\": \"lastMarketOrder\", \n \"pluralVariableName\": \"lastMarketOrders\",\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"768b42e9-59fe-494f-9e05-3be57fb17ca8","savedPayload":{"position":{"x":26346.319932927134,"y":19511.82425378205},"targetPosition":{"x":26227.326068001046,"y":19320.864938455587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"26a39916-4f2d-42ab-ae86-7ab622f80624","savedPayload":{"position":{"x":26264.18509806945,"y":19542.825322088378},"targetPosition":{"x":26227.326068001046,"y":19320.864938455587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"8dbd8444-1037-4ab0-888b-dd49ffbfdc8b","savedPayload":{"position":{"x":26551.805169353538,"y":19903.45420596654},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"db3b180d-b86f-4749-a8a7-8d5d7689f032","savedPayload":{"position":{"x":26535.613740121873,"y":19944.539766899747},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"fbef9773-d1c5-4ac2-9ce3-287dd94fd114","savedPayload":{"position":{"x":26515.473187856016,"y":19983.840452036096},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"b9f73cfb-1c24-4ce7-a9ac-184841d1e16a","savedPayload":{"position":{"x":26491.577477084233,"y":20020.977774293788},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"9e7d08f0-4218-447b-8a13-54211abc880c","savedPayload":{"position":{"x":26464.156736563982,"y":20055.594080958155},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f8dafa7f-c43a-4dc9-909a-85eb44e49dbd","savedPayload":{"position":{"x":26433.475043016177,"y":20087.35599807282},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"1a84e99a-ccb0-4483-90c6-f99c396b0dc8","savedPayload":{"position":{"x":26399.827877922,"y":20115.957641013138},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b098ae78-9591-4d50-8c01-09d5775d27ff","savedPayload":{"position":{"x":26363.53928187472,"y":20141.123560322347},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"9bd09a1b-af71-4467-b571-6815ddc01c7d","savedPayload":{"position":{"x":26324.958733891635,"y":20162.611394440406},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"c9301d25-01f7-4ae9-bd3b-184eedac1998","savedPayload":{"position":{"x":26284.457785740102,"y":20180.214203778316},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"89ad4f68-83b2-4f5b-9aa5-1db1815b12fd","savedPayload":{"position":{"x":26242.42648369088,"y":20193.762463659477},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderCounters\"\n}","project":"Superalgos","id":"10fdf7b0-2fb7-4692-86fe-0d5481e90b93","savedPayload":{"position":{"x":26199.269612159358,"y":20203.125696935},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"e5946038-66fd-4f81-a503-ac98a61095bb","savedPayload":{"position":{"x":26155.402795410326,"y":20208.213730549982},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderStatistics\"\n}","project":"Superalgos","id":"9b802d6d-35f2-4535-8062-e3dc2b782574","savedPayload":{"position":{"x":26111.24849486912,"y":20208.977563959306},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"8dba345d-5995-4973-a80f-99cd5c07d106","savedPayload":{"position":{"x":26067.23194058715,"y":20205.409841029683},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lock","config":"{\n \"codeName\": \"lock\",\n \"isString\": true\n}","project":"Superalgos","id":"8255158c-b589-4b7b-9f8e-c66ec0ee1ed3","savedPayload":{"position":{"x":26023.777036044045,"y":20197.544920883247},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"9b78302a-2d32-45e1-84c9-7fa34ea3f378","savedPayload":{"position":{"x":25981.302275725422,"y":20185.45854700041},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"bb170388-df93-4218-a35b-dcf7a42d261b","savedPayload":{"position":{"x":25940.216714792215,"y":20169.26711776874},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"6067ba50-8879-4d74-8bc6-11b77677fbea","savedPayload":{"position":{"x":25900.916029655866,"y":20149.126565502887},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"5bdb31c2-8bfb-4ac9-8492-3d3d76c20e71","savedPayload":{"position":{"x":25863.778707398174,"y":20125.230854731104},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"eaf268d2-5576-4da0-9d30-708bd68f7a9c","savedPayload":{"position":{"x":25829.162400733807,"y":20097.810114210853},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"a050f0e0-b844-4c9f-ad32-85af779a59d5","savedPayload":{"position":{"x":25797.40048361914,"y":20067.128420663048},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"fb89644d-9ce1-4ee5-8b4a-ccbcff36ac8b","savedPayload":{"position":{"x":25768.798840678824,"y":20033.481255568873},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"fd00ddf7-d367-4ea6-a289-a29a15b41aab","savedPayload":{"position":{"x":25743.632921369615,"y":19997.192659521592},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"9e87631f-fcf4-4d3d-837d-82e7d12bf94f","savedPayload":{"position":{"x":25722.145087251556,"y":19958.612111538507},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Base Asset","config":"{\n \"codeName\": \"actualSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderBaseAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"d8d0f0b6-9164-4166-af6b-adac7a1891b2","savedPayload":{"position":{"x":25704.542277913646,"y":19918.111163386973},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Quoted Asset","config":"{\n \"codeName\": \"actualSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderQuotedAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"1bf66ce6-4819-4d7d-8853-f1f85d6c9c32","savedPayload":{"position":{"x":25690.994018032485,"y":19876.079861337752},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Base Asset","config":"{\n \"codeName\": \"amountReceivedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderBaseAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"20ae12e0-bde2-4e56-9df1-afec37006b55","savedPayload":{"position":{"x":25681.630784756962,"y":19832.92298980623},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Quoted Asset","config":"{\n \"codeName\": \"amountReceivedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderQuotedAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"fa076306-c699-4067-bcf2-0890b5b72748","savedPayload":{"position":{"x":25676.54275114198,"y":19789.056173057197},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Base Asset","config":"{ \n\"codeName\": \"feesToBePaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderBaseAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"17fef0b6-4279-4fda-8d40-015ec3f52529","savedPayload":{"position":{"x":25675.778917732656,"y":19744.90187251599},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesToBePaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderQuotedAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"0336d6d0-3d2d-4a87-b7b3-cd48c43c157d","savedPayload":{"position":{"x":25679.34664066228,"y":19700.88531823402},"targetPosition":{"x":26125.551552022545,"y":19759.204929669417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9292833c-b6ec-4734-b6ec-552aeecb540d","savedPayload":{"position":{"x":26125.551552022545,"y":19759.204929669417},"targetPosition":{"x":26227.326068001046,"y":19320.864938455587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"6df1ac87-92d5-4788-b0bc-f3543b283ef0","savedPayload":{"position":{"x":26227.326068001046,"y":19320.864938455587},"targetPosition":{"x":26153.608007864234,"y":18876.944171190004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Last Market Order","id":"05aa37c8-9f6d-4276-96a6-3123707e7686"}}},{"type":"Product Definition","name":"Last Limit Order","config":"{ \n \"codeName\": \"Last-Limit-Order\", \n \"singularVariableName\": \"lastLimitOrder\", \n \"pluralVariableName\": \"lastLimitOrders\",\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"f9263cd7-460d-461c-be7b-ed2a69d38d11","savedPayload":{"position":{"x":26051.771308693147,"y":19532.56593107559},"targetPosition":{"x":26027.415682676532,"y":19308.888029884303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"f3d5b047-d9c2-4e71-8fce-6e9be3499556","savedPayload":{"position":{"x":25964.31952008268,"y":19524.859959231453},"targetPosition":{"x":26027.415682676532,"y":19308.888029884303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"f5ab0d81-63ce-48d6-99f8-51c6bf2a6e97","savedPayload":{"position":{"x":26066.98524152267,"y":19974.569028446072},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"6e9e3c64-3e53-4049-b251-3a9e1e63b24c","savedPayload":{"position":{"x":26034.57091105665,"y":20004.560641910506},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"53856545-fe51-4ec7-bbb0-e398eb6fdbd0","savedPayload":{"position":{"x":25999.37297226591,"y":20031.230677580592},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"4b0399dd-39b4-4ef5-9c57-48f7a2465581","savedPayload":{"position":{"x":25961.730400542154,"y":20054.322288433497},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"552cb522-d091-446c-b0c7-8644d9a39e9c","savedPayload":{"position":{"x":25922.005714428604,"y":20073.613089633556},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"34b51b42-1c7f-4691-81ff-e3baba398a2c","savedPayload":{"position":{"x":25880.581484368256,"y":20088.917300219786},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"4b2251b9-462f-4b9b-850c-2848dac1d08b","savedPayload":{"position":{"x":25837.856648341378,"y":20100.087532278103},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"22e3ead2-3ec4-437f-99d4-eb1cf2465f34","savedPayload":{"position":{"x":25794.242669874682,"y":20107.016210367525},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f1ba05d1-f727-4495-9bf9-aeb656da4e7b","savedPayload":{"position":{"x":25750.15957542263,"y":20109.636607530443},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"53acfd34-51ce-49b9-b42a-03706b2e7a86","savedPayload":{"position":{"x":25706.031909283058,"y":20107.923487909728},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"1f8cb548-32a3-49c3-b1b1-20eb6130c58c","savedPayload":{"position":{"x":25662.284645003532,"y":20101.89334978381},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderCounters\"\n}","project":"Superalgos","id":"d4c99d02-1038-4ee5-8f67-6804d89ab65e","savedPayload":{"position":{"x":25619.33909265375,"y":20091.604266679253},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"fbd59c15-2863-4257-9211-7492ebb69c93","savedPayload":{"position":{"x":25577.60884137927,"y":20077.15532809094},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderStatistics\"\n}","project":"Superalgos","id":"ead97685-20c5-44a7-b86c-33e7a55e416a","savedPayload":{"position":{"x":25537.49577631194,"y":20058.685685196062},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"97b1f010-04b2-4016-b313-48ea865b49a4","savedPayload":{"position":{"x":25499.38620819638,"y":20036.37321075224},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lock","config":"{\n \"codeName\": \"lock\",\n \"isString\": true\n}","project":"Superalgos","id":"eba510cb-b866-45ba-984e-153216f4f3c6","savedPayload":{"position":{"x":25463.64715300637,"y":20010.432786085603},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"af94d067-ae2f-4610-b546-6d97904957e2","savedPayload":{"position":{"x":25430.622797380332,"y":19981.11423166617},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"839364f2-db1b-4bfd-b61c-015e70f5d171","savedPayload":{"position":{"x":25400.6311839159,"y":19948.69990120015},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"919ab388-ca0a-4d89-b0ea-929090ef1bf8","savedPayload":{"position":{"x":25373.961148245813,"y":19913.501962409413},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"1cd292aa-6c43-44ad-90e3-6f49f71be40f","savedPayload":{"position":{"x":25350.869537392908,"y":19875.859390685655},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"9abd9e70-fad1-4da5-86b8-fb5e1daf6a2a","savedPayload":{"position":{"x":25331.57873619285,"y":19836.134704572105},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3819475a-dec6-4cd3-8d9a-c10a9193d592","savedPayload":{"position":{"x":25316.27452560662,"y":19794.710474511758},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"034fc727-1072-4cbf-8540-693d0a34d4e6","savedPayload":{"position":{"x":25305.104293548302,"y":19751.98563848488},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"598761f1-33e1-4edb-bff9-33b2b8ba2933","savedPayload":{"position":{"x":25298.17561545888,"y":19708.371660018183},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"182d9d37-1cef-43ed-93c8-7b9bebdf150f","savedPayload":{"position":{"x":25295.555218295962,"y":19664.288565566127},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Base Asset","config":"{\n \"codeName\": \"actualSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderBaseAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4fbfcb6e-829f-47ae-817c-9c1c000319d7","savedPayload":{"position":{"x":25297.268337916677,"y":19620.16089942656},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Quoted Asset","config":"{\n \"codeName\": \"actualSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderQuotedAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"a8b9518b-c4b5-4778-81b1-9fe05ac07f03","savedPayload":{"position":{"x":25303.298476042593,"y":19576.413635147033},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Base Asset","config":"{\n \"codeName\": \"amountReceivedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderBaseAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"5cb701a7-772c-4f2f-8807-a0914f6e9bbc","savedPayload":{"position":{"x":25313.587559147152,"y":19533.46808279725},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Quoted Asset","config":"{\n \"codeName\": \"amountReceivedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderQuotedAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"c35a38b3-480a-4414-9b5e-c31f34a902f1","savedPayload":{"position":{"x":25328.036497735466,"y":19491.737831522772},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Base Asset","config":"{ \n\"codeName\": \"feesToBePaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderBaseAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"d252669b-695b-4862-a3ce-4d6cecb2aa73","savedPayload":{"position":{"x":25346.506140630343,"y":19451.62476645544},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesToBePaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderQuotedAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"5c4ac5b8-307a-4316-bea0-75b90976d070","savedPayload":{"position":{"x":25368.818615074164,"y":19413.515198339883},"targetPosition":{"x":25745.531417841452,"y":19659.660407984953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e82595f6-184f-4a0c-8385-1364f22ea8e0","savedPayload":{"position":{"x":25745.531417841452,"y":19659.660407984953},"targetPosition":{"x":26027.415682676532,"y":19308.888029884303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"c24ec6a1-e937-4d20-93eb-4faf2a0becc3","savedPayload":{"position":{"x":26027.415682676532,"y":19308.888029884303},"targetPosition":{"x":26153.608007864234,"y":18876.944171190004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Last Limit Order","id":"2284d48f-cf52-4277-b81e-c62afef88b71"}}}],"productDefinitionFolders":[],"id":"1e82c85a-37f7-4610-a982-e14ab71a5286","savedPayload":{"position":{"x":26153.608007864234,"y":18876.944171190004},"targetPosition":{"x":25819.192836399405,"y":18575.835398328516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"db019824-6897-461b-b39b-ebe905a84231","savedPayload":{"position":{"x":25819.192836399405,"y":18575.835398328516},"targetPosition":{"x":25391.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Trading System","project":"Superalgos","products":[{"type":"Product Definition","name":"Trading System Errors","config":"{\n \"codeName\": \"Trading-System-Errors\",\n \"singularVariableName\": \"tradingSystemError\",\n \"pluralVariableName\": \"tradingSystemErrors\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"errors\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"2ef33675-fc52-49fd-a8ef-bc5da1711dd1","savedPayload":{"position":{"x":26136.2214067986,"y":18271.109813707764},"targetPosition":{"x":26083.69619993102,"y":18489.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"2d0dd4c2-4f4c-4d8c-b9a5-9ca62f186369","savedPayload":{"position":{"x":26215.947881696826,"y":18307.86422206288},"targetPosition":{"x":26083.69619993102,"y":18489.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"214b7654-8ea4-4b39-8f2d-8fb64d9a4b23","savedPayload":{"position":{"x":26328.06544377827,"y":18153.547636646676},"targetPosition":{"x":26275.54023691069,"y":18372.330868736153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"6efbb2e5-0be8-42c2-99c6-0f9ebe42b174","savedPayload":{"position":{"x":26467.38427389036,"y":18254.768691675064},"targetPosition":{"x":26275.54023691069,"y":18372.330868736153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Errors","config":"{\n \"codeName\": \"errors\",\n \"isString\": false\n}","project":"Superalgos","id":"e994737a-9a14-40f0-8ad0-a151c799a094","savedPayload":{"position":{"x":26494.323469000166,"y":18424.856075603733},"targetPosition":{"x":26275.54023691069,"y":18372.330868736153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cbcd5cb4-66b1-4535-9592-0164a480b7f7","savedPayload":{"position":{"x":26275.54023691069,"y":18372.330868736153},"targetPosition":{"x":26083.69619993102,"y":18489.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"1d9c570d-77c7-40ac-a61e-c5a57a411de8","savedPayload":{"position":{"x":26083.69619993102,"y":18489.893045797242},"targetPosition":{"x":25819.192836399405,"y":18853.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Errors","id":"64684730-d049-4d3c-8013-b48c5438417e"}}},{"type":"Product Definition","name":"Trading System Highlights","config":"{\n \"codeName\": \"Trading-System-Highlights\",\n \"singularVariableName\": \"tradingSystemHighlight\",\n \"pluralVariableName\": \"tradingSystemHighlights\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"highlights\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"6e0f951c-25e7-4b92-85da-8be04d424bd0","savedPayload":{"position":{"x":26300.81266092922,"y":18397.603292754684},"targetPosition":{"x":26183.25048386813,"y":18589.447329734354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"fa53ecfb-a558-4810-b6f8-1f9c6c8bfc5b","savedPayload":{"position":{"x":26365.279307602494,"y":18457.195647968547},"targetPosition":{"x":26183.25048386813,"y":18589.447329734354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"9fefb3c2-2293-4ffa-8db8-9430dd662bcf","savedPayload":{"position":{"x":26519.595893018697,"y":18345.078085887104},"targetPosition":{"x":26402.03371595761,"y":18536.922122866774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"431d65d9-1f6d-4e73-8655-cbf36854d3cf","savedPayload":{"position":{"x":26620.816948047086,"y":18484.396915999194},"targetPosition":{"x":26402.03371595761,"y":18536.922122866774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Highlights","config":"{\n \"codeName\": \"highlights\",\n \"isString\": false\n}","project":"Superalgos","id":"6355df8f-6845-4652-8ebc-90468c526949","savedPayload":{"position":{"x":26593.87775293728,"y":18654.484299927863},"targetPosition":{"x":26402.03371595761,"y":18536.922122866774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"af6916b9-83d1-478b-ac92-35ea4f9b8a46","savedPayload":{"position":{"x":26402.03371595761,"y":18536.922122866774},"targetPosition":{"x":26183.25048386813,"y":18589.447329734354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"319f660a-78be-4cf4-8052-877837cad806","savedPayload":{"position":{"x":26183.25048386813,"y":18589.447329734354},"targetPosition":{"x":25819.192836399405,"y":18853.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Highlights","id":"d979c9f0-530a-41d3-a357-b57a3e4f2201"}}},{"type":"Product Definition","name":"Trading System Values","config":"{\n \"codeName\": \"Trading-System-Values\",\n \"singularVariableName\": \"tradingSystemValue\",\n \"pluralVariableName\": \"tradingSystemValues\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"values\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"9c4ec2f8-f4a8-45b9-aba3-b093a7b8f86a","savedPayload":{"position":{"x":26418.25961099223,"y":18568.76723492295},"targetPosition":{"x":26247.168268732225,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"b3d3fe62-e714-4cb9-a78d-55bc0add1d7c","savedPayload":{"position":{"x":26461.155984898633,"y":18645.36422206288},"targetPosition":{"x":26247.168268732225,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"956e9238-3cd9-4258-9295-77d3ad473508","savedPayload":{"position":{"x":26642.566011082185,"y":18586.420531461717},"targetPosition":{"x":26471.47466882218,"y":18732.54634233601},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"dbb03ed7-1d1f-4105-b559-eac7b4d8d4d9","savedPayload":{"position":{"x":26695.781068912132,"y":18750.199638874776},"targetPosition":{"x":26471.47466882218,"y":18732.54634233601},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Values","config":"{\n \"codeName\": \"values\",\n \"isString\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"2349e00c-f032-432b-8c9a-07c1606574e8","savedPayload":{"position":{"x":26617.60047969647,"y":18903.637684596015},"targetPosition":{"x":26471.47466882218,"y":18732.54634233601},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a65db5f6-3b75-435d-8155-2e2c7af39279","savedPayload":{"position":{"x":26471.47466882218,"y":18732.54634233601},"targetPosition":{"x":26247.168268732225,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"c90c009b-588d-45d4-aff1-05e375181dfa","savedPayload":{"position":{"x":26247.168268732225,"y":18714.893045797242},"targetPosition":{"x":25819.192836399405,"y":18853.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Values","id":"476925ed-e2ac-443d-82f3-501b64ca6c87"}}},{"type":"Product Definition","name":"Trading System Status","config":"{\n \"codeName\": \"Trading-System-Status\",\n \"singularVariableName\": \"tradingSystemState\",\n \"pluralVariableName\": \"tradingSystemStatus\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"2b83dc93-dc14-44d9-8f8c-889f39a952da","savedPayload":{"position":{"x":26477.065731214443,"y":18767.846920983822},"targetPosition":{"x":26269.192836399405,"y":18853.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0f8dcda3-1eab-439d-956c-c6eb9b1c481f","savedPayload":{"position":{"x":26494.192836399405,"y":18853.950693265968},"targetPosition":{"x":26269.192836399405,"y":18853.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"214b03c2-5fc3-4157-bcfd-4796b0565d98","savedPayload":{"position":{"x":26684.93862602948,"y":18853.950693265968},"targetPosition":{"x":26477.065731214443,"y":18940.054465548114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"78c4b87a-592d-49ca-9c8c-f5d0dae8d7ba","savedPayload":{"position":{"x":26684.93862602948,"y":19026.15823783026},"targetPosition":{"x":26477.065731214443,"y":18940.054465548114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{\n \"codeName\": \"status\",\n \"isString\": false\n}","project":"Superalgos","id":"fdb4b903-20ff-4a67-a03f-f02e67b5d81b","savedPayload":{"position":{"x":26563.16950349659,"y":19147.927360363152},"targetPosition":{"x":26477.065731214443,"y":18940.054465548114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04b0fd4c-df6f-40df-9567-60a735d126e6","savedPayload":{"position":{"x":26477.065731214443,"y":18940.054465548114},"targetPosition":{"x":26269.192836399405,"y":18853.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"eed48c80-35c5-49fa-b12d-18e7280ffb8f","savedPayload":{"position":{"x":26269.192836399405,"y":18853.950693265968},"targetPosition":{"x":25819.192836399405,"y":18853.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Status","id":"0437448d-8740-496b-8fce-d3804be81a2b"}}},{"type":"Product Definition","name":"Trading System Progress","config":"{\n \"codeName\": \"Trading-System-Progress\",\n \"singularVariableName\": \"tradingSystemProgress\",\n \"pluralVariableName\": \"tradingSystemProgresses\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"progress\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"77735fc0-9ce6-4dec-a3ad-8075a22eda40","savedPayload":{"position":{"x":26471.47466882218,"y":18975.355044195927},"targetPosition":{"x":26247.168268732225,"y":18993.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"2fde11bd-4515-4a4e-9dc0-f6869dd3a04e","savedPayload":{"position":{"x":26461.155984898633,"y":19062.537164469057},"targetPosition":{"x":26247.168268732225,"y":18993.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"076e6f4d-1b05-42e1-abc6-c50c935ef056","savedPayload":{"position":{"x":26642.566011082185,"y":19121.48085507022},"targetPosition":{"x":26418.25961099223,"y":19139.134151608985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"280a33ea-29cc-41ab-9ffc-31c38a8e8d60","savedPayload":{"position":{"x":26589.350953252237,"y":19285.259962483276},"targetPosition":{"x":26418.25961099223,"y":19139.134151608985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Progress","config":"{\n \"codeName\": \"progress\",\n \"isString\": false\n}","project":"Superalgos","id":"5964f3e5-82af-47de-9492-19c634d4f5ad","savedPayload":{"position":{"x":26435.912907530997,"y":19363.44055169894},"targetPosition":{"x":26418.25961099223,"y":19139.134151608985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"218da162-dd8c-4f77-9150-3d2eee6e6e0d","savedPayload":{"position":{"x":26418.25961099223,"y":19139.134151608985},"targetPosition":{"x":26247.168268732225,"y":18993.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"04c8606b-5e59-4e7d-b3ac-387bfffcd300","savedPayload":{"position":{"x":26247.168268732225,"y":18993.008340734694},"targetPosition":{"x":25819.192836399405,"y":18853.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Progress","id":"99aecc8d-2bc4-4748-b642-78888c2d35eb"}}},{"type":"Product Definition","name":"Trading System Running","config":"{\n \"codeName\": \"Trading-System-Running\",\n \"singularVariableName\": \"tradingSystemRun\",\n \"pluralVariableName\": \"tradingSystemRunning\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"running\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"c7b45884-6cdf-43f7-a1e5-c5325effd207","savedPayload":{"position":{"x":26402.03371595761,"y":19170.979263665162},"targetPosition":{"x":26183.25048386813,"y":19118.454056797582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a21cbc62-e6d8-4286-b0ff-430071d46700","savedPayload":{"position":{"x":26365.279307602494,"y":19250.70573856339},"targetPosition":{"x":26183.25048386813,"y":19118.454056797582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"42cccc8c-a020-4cb2-8a40-4d3dacc86597","savedPayload":{"position":{"x":26519.595893018697,"y":19362.82330064483},"targetPosition":{"x":26300.81266092922,"y":19310.29809377725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"7fc1205e-ad17-40d0-bb05-21e8d1842b7c","savedPayload":{"position":{"x":26418.374837990308,"y":19502.14213075692},"targetPosition":{"x":26300.81266092922,"y":19310.29809377725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Running","config":"{\n \"codeName\": \"running\",\n \"isString\": false\n}","project":"Superalgos","id":"7c7cb8f0-6d6d-4761-b51c-70ee77c05811","savedPayload":{"position":{"x":26248.28745406164,"y":19529.08132586673},"targetPosition":{"x":26300.81266092922,"y":19310.29809377725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f2bf57f0-e966-4b75-a95f-ba206c266dae","savedPayload":{"position":{"x":26300.81266092922,"y":19310.29809377725},"targetPosition":{"x":26183.25048386813,"y":19118.454056797582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"17236f59-6ef2-4cc3-913c-1ff6db052236","savedPayload":{"position":{"x":26183.25048386813,"y":19118.454056797582},"targetPosition":{"x":25819.192836399405,"y":18853.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Running","id":"ac1e8218-af24-491f-a552-736d83d68c01"}}},{"type":"Product Definition","name":"Trading System Announcements","config":"{\n \"codeName\": \"Trading-System-Announcements\",\n \"singularVariableName\": \"tradingSystemAnnouncement\",\n \"pluralVariableName\": \"tradingSystemAnnouncements\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"announcements\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"9e29a710-30c0-4faa-b71a-f4ee109673a2","savedPayload":{"position":{"x":26275.54023691069,"y":19335.570517795783},"targetPosition":{"x":26083.69619993102,"y":19218.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"b7e24195-a9d0-45e7-9dba-447db8000feb","savedPayload":{"position":{"x":26215.947881696826,"y":19400.037164469057},"targetPosition":{"x":26083.69619993102,"y":19218.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"0487c17a-d445-4d37-b186-dc0e79e0dae7","savedPayload":{"position":{"x":26328.06544377827,"y":19554.35374988526},"targetPosition":{"x":26136.2214067986,"y":19436.79157282417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"cb847e27-30fe-43af-9b5f-19de453cc5f7","savedPayload":{"position":{"x":26188.74661366618,"y":19655.57480491365},"targetPosition":{"x":26136.2214067986,"y":19436.79157282417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Announcements","config":"{\n \"codeName\": \"announcements\",\n \"isString\": false\n}","project":"Superalgos","id":"b3aaeae8-ed67-4830-a49c-13baada2bc11","savedPayload":{"position":{"x":26018.65922973751,"y":19628.63560980384},"targetPosition":{"x":26136.2214067986,"y":19436.79157282417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"73ef953c-001b-474e-9221-23375777f3f3","savedPayload":{"position":{"x":26136.2214067986,"y":19436.79157282417},"targetPosition":{"x":26083.69619993102,"y":19218.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"4a6f828a-9671-431e-8257-fc920943581e","savedPayload":{"position":{"x":26083.69619993102,"y":19218.008340734694},"targetPosition":{"x":25819.192836399405,"y":18853.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Announcements","id":"0a3b8bea-749a-48ce-8b53-e4a731555b98"}}},{"type":"Product Definition","name":"Trading System Warnings","config":"{\n \"codeName\": \"Trading-System-Warnings\",\n \"singularVariableName\": \"tradingSystemWarning\",\n \"pluralVariableName\": \"tradingSystemWarnings\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"warnings\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0381cc1b-24c3-4705-9c76-94129e8605ff","savedPayload":{"position":{"x":26104.376294742422,"y":19453.017467858794},"targetPosition":{"x":25958.25048386813,"y":19281.926125598788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"b93b5cc3-7d61-4071-8eba-de15a4fea64b","savedPayload":{"position":{"x":26027.779307602494,"y":19495.913841765196},"targetPosition":{"x":25958.25048386813,"y":19281.926125598788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"9de05c23-cce3-4229-bb5b-6d893a7caf2b","savedPayload":{"position":{"x":26086.722998203655,"y":19677.323867948748},"targetPosition":{"x":25940.597187329364,"y":19506.23252568874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"64348c8c-f29d-4dc0-9028-18f02e8b03a3","savedPayload":{"position":{"x":25922.943890790597,"y":19730.538925778696},"targetPosition":{"x":25940.597187329364,"y":19506.23252568874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Warnings","config":"{\n \"codeName\": \"warnings\",\n \"isString\": false\n}","project":"Superalgos","id":"0d7f3ba2-e9a0-42b0-aaca-02d1911fa209","savedPayload":{"position":{"x":25769.505845069358,"y":19652.358336563033},"targetPosition":{"x":25940.597187329364,"y":19506.23252568874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f6021fb9-4897-4984-8475-bf136233005e","savedPayload":{"position":{"x":25940.597187329364,"y":19506.23252568874},"targetPosition":{"x":25958.25048386813,"y":19281.926125598788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"34310596-466a-4e9a-a5a2-256b0fe3e339","savedPayload":{"position":{"x":25958.25048386813,"y":19281.926125598788},"targetPosition":{"x":25819.192836399405,"y":18853.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Warnings","id":"a9709093-95c1-4b1b-aeb5-329c7505ab75"}}},{"type":"Product Definition","name":"Trading System Infos","config":"{\n \"codeName\": \"Trading-System-Infos\",\n \"singularVariableName\": \"tradingSystemInfo\",\n \"pluralVariableName\": \"tradingSystemInfos\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"infos\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"cd834a3e-1b23-4e15-a068-59c235a90f89","savedPayload":{"position":{"x":25905.29660868155,"y":19511.823588081006},"targetPosition":{"x":25819.192836399405,"y":19303.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"e24a4dcf-5adb-4c63-b9db-3ba2a7ece789","savedPayload":{"position":{"x":25819.192836399405,"y":19528.950693265968},"targetPosition":{"x":25819.192836399405,"y":19303.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"a3502c18-91c5-467b-aab5-deb330bf44bc","savedPayload":{"position":{"x":25819.192836399405,"y":19719.696482896044},"targetPosition":{"x":25733.08906411726,"y":19511.823588081006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"7b3f0c7c-1bb1-4477-af46-5cccfe2309cb","savedPayload":{"position":{"x":25646.985291835113,"y":19719.696482896044},"targetPosition":{"x":25733.08906411726,"y":19511.823588081006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Infos","config":"{\n \"codeName\": \"infos\",\n \"isString\": false\n}","project":"Superalgos","id":"2f73152b-cbcf-462d-ba3a-d35417d2ca9c","savedPayload":{"position":{"x":25525.21616930222,"y":19597.927360363152},"targetPosition":{"x":25733.08906411726,"y":19511.823588081006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"60ed1049-434c-45e8-9a49-e7561cdb3d6b","savedPayload":{"position":{"x":25733.08906411726,"y":19511.823588081006},"targetPosition":{"x":25819.192836399405,"y":19303.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"020ad519-0fc6-4f2f-9f26-b2c7de118fb8","savedPayload":{"position":{"x":25819.192836399405,"y":19303.950693265968},"targetPosition":{"x":25819.192836399405,"y":18853.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Infos","id":"f175df3b-a277-44bc-88db-dcf6b0e3fa38"}}}],"productDefinitionFolders":[],"id":"57d56564-1a8f-4ee9-acfb-389ec2d3375a","savedPayload":{"position":{"x":25819.192836399405,"y":18853.950693265968},"targetPosition":{"x":25391.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Simulation Objects","project":"Superalgos","products":[{"type":"Product Definition","name":"Episodes","config":"{\n \"codeName\": \"Episode-Objects\",\n \"singularVariableName\": \"episodeObject\",\n \"pluralVariableName\": \"episodeObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"38264ecd-10e7-4a62-a2ca-9b607c30e72c","savedPayload":{"position":{"x":26300.989470862864,"y":18924.552163737113},"targetPosition":{"x":26103.255620513923,"y":19031.912884795525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"cdc39b61-9aa5-46d5-9e80-915e0c2d545d","savedPayload":{"position":{"x":26327.023046971783,"y":19008.393980560304},"targetPosition":{"x":26103.255620513923,"y":19031.912884795525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"e7c507b1-7d60-4f5d-9213-4001c116852a","savedPayload":{"position":{"x":27320.259782415276,"y":18460.09876220178},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"387fc08a-670c-4ca7-a2b9-449d1abc17fb","savedPayload":{"position":{"x":27413.924232029894,"y":18506.798134108074},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"2cea2a9b-293e-4b6c-8266-25ab09d94a1c","savedPayload":{"position":{"x":27501.533889971503,"y":18564.05552047356},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"811f4049-1507-4cd0-a57b-8d38f0cefa79","savedPayload":{"position":{"x":27581.903985909397,"y":18631.09661337177},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"a25505b8-3a79-44c0-9a65-84c2acbde853","savedPayload":{"position":{"x":27653.94765216962,"y":18707.014797029165},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f06dc26f-dcd7-46d8-af5a-177db0354b16","savedPayload":{"position":{"x":27716.690621755748,"y":18790.783408248204},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"2c462bdb-cad9-4589-add4-10fdafa4b432","savedPayload":{"position":{"x":27769.284403638685,"y":18881.269620265848},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e3ea261e-5586-4578-97f6-e5d7139c6641","savedPayload":{"position":{"x":27811.017757142254,"y":18977.249762292202},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hits In Base Asset","config":"{ \n\"codeName\": \"hitsInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"hits\",\n \"decimals\": 0\n}","project":"Superalgos","id":"d4a1ae83-0774-49f5-8780-f3db92e7ac59","savedPayload":{"position":{"x":27841.326310253207,"y":19077.42586755874},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fails In Base Asset","config":"{ \n\"codeName\": \"failsInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"fails\",\n \"decimals\": 0\n}","project":"Superalgos","id":"39600b8b-e28f-4c5b-a44c-3a816c43a439","savedPayload":{"position":{"x":27859.800191784554,"y":19180.443226092233},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Ratio In Base Asset","config":"{ \n\"codeName\": \"hitRatioInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"hitRatio\",\n \"decimals\": 2\n}","project":"Superalgos","id":"f59830d2-1d39-47ff-b008-41c202c5f131","savedPayload":{"position":{"x":27866.189574180233,"y":19284.908704843132},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Base Asset","config":"{ \n\"codeName\": \"profitLossInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"02dfb7e5-a203-4c49-8ffc-6addba0f06c7","savedPayload":{"position":{"x":27860.408052004226,"y":19389.409587420174},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Base Asset","config":"{ \n\"codeName\": \"ROIInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"6bc1b577-8926-4c00-9091-3ddf6e86d105","savedPayload":{"position":{"x":27842.53381042585,"y":19492.532678656084},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Annualized Rate Of ReturnIn Base Asset","config":"{ \n\"codeName\": \"annualizedRateOfReturnInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"annualizedRateOfReturn\",\n \"decimals\": 2\n}","project":"Superalgos","id":"39e77c8f-3f22-45ea-8ad8-d28f7c0f3c0f","savedPayload":{"position":{"x":27812.808567899483,"y":19592.883415647902},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Base Asset","config":"{ \n\"codeName\": \"hitFailInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"e8384c2c-39b2-4d47-9828-f4968a6bc4e7","savedPayload":{"position":{"x":27771.634307337117,"y":19689.104726827885},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hits In Quoted Asset","config":"{ \n\"codeName\": \"hitsInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"hits\",\n \"decimals\": 0\n}","project":"Superalgos","id":"b31c6ade-c339-4129-ac5c-2383a9443c85","savedPayload":{"position":{"x":27719.567839979085,"y":19779.89538402843},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fails In Quoted Asset","config":"{ \n\"codeName\": \"failsInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"fails\",\n \"decimals\": 0\n}","project":"Superalgos","id":"0fe968f9-77ec-4258-bb12-7ac592665cf5","savedPayload":{"position":{"x":27657.313275477205,"y":19864.027599360812},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Ratio In Quoted Asset","config":"{ \n\"codeName\": \"hitRatioInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"hitRatio\",\n \"decimals\": 2\n}","project":"Superalgos","id":"5bbf2817-e7ed-4795-aecc-5ccefb04b6c1","savedPayload":{"position":{"x":27585.712500019676,"y":19940.363628940115},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Quoted Asset","config":"{ \n\"codeName\": \"profitLossInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"ae87f4f0-2dd4-4484-a803-b06096fbff58","savedPayload":{"position":{"x":27505.733791264578,"y":20007.871158919515},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Quoted Asset","config":"{ \n\"codeName\": \"ROIInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3dd87ddc-a9a9-4f94-8c14-ca651cb6b644","savedPayload":{"position":{"x":27418.458724045635,"y":20065.637265764115},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Annualized Rate Of ReturnIn Quoted Asset","config":"{ \n\"codeName\": \"annualizedRateOfReturnInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"annualizedRateOfReturn\",\n \"decimals\": 2\n}","project":"Superalgos","id":"8826c757-479b-498e-91ec-ccee35f9eef0","savedPayload":{"position":{"x":27325.06754392802,"y":20112.88076197567},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Quoted Asset","config":"{ \n\"codeName\": \"hitFailInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"aa3d008e-90a1-4e76-a389-68206925a8ee","savedPayload":{"position":{"x":27226.82320641175,"y":20148.96276031337},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Balance In Base Asset","config":"{ \n\"codeName\": \"beginBalanceInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"beginBalance\"\n}","project":"Superalgos","id":"a6826d46-bf05-4988-9314-8e41a3ecfce9","savedPayload":{"position":{"x":27125.05429762516,"y":20173.395313647794},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Balance In Base Asset","config":"{ \n\"codeName\": \"endBalanceInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"endBalance\"\n}","project":"Superalgos","id":"93c0d5a2-06cd-4bd9-bd2c-49fbab7d2bdb","savedPayload":{"position":{"x":27021.13706747667,"y":20185.84801360874},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Balance In Quoted Asset","config":"{ \n\"codeName\": \"beginBalanceInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"beginBalance\"\n}","project":"Superalgos","id":"fcf98b55-f145-484d-91ce-6e3417e3760d","savedPayload":{"position":{"x":26916.476818235693,"y":20186.152458791636},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Balance In Quoted Asset","config":"{ \n\"codeName\": \"endBalanceInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"endBalance\"\n}","project":"Superalgos","id":"e34b3fbc-a578-407d-ba84-055c56d52454","savedPayload":{"position":{"x":26812.488900230248,"y":20174.304532097667},"targetPosition":{"x":26966.193381895297,"y":19287.526695029057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b5c2e7b4-cec1-4975-9abb-af447f80c59e","savedPayload":{"position":{"x":26966.193381895297,"y":19287.526695029057},"targetPosition":{"x":26103.255620513923,"y":19031.912884795525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"aeec080e-8caf-4976-8187-ba4e725b73b0","savedPayload":{"position":{"x":26103.255620513923,"y":19031.912884795525},"targetPosition":{"x":25655.7207675982,"y":19078.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Episode Objects","id":"b7320c91-b8aa-4642-bd11-a1efb2a88d39"}}},{"type":"Product Definition","name":"Strategies","config":"{\n \"codeName\": \"Strategy-Objects\",\n \"singularVariableName\": \"strategyObject\",\n \"pluralVariableName\": \"strategyObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategy\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"03d1a187-b188-4ad7-b99e-6e4f6c6f0278","savedPayload":{"position":{"x":26285.739121656872,"y":19267.87199601935},"targetPosition":{"x":26060.81622353737,"y":19261.982182650077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"58a5a046-53a1-43a7-bb76-0c29d94ef579","savedPayload":{"position":{"x":26266.363951506955,"y":19353.497927342134},"targetPosition":{"x":26060.81622353737,"y":19261.982182650077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"ffa3b94b-d147-42eb-943e-4e1661c0b8c4","savedPayload":{"position":{"x":26761.639436793175,"y":19365.759192619862},"targetPosition":{"x":26370.57578259956,"y":19588.400649605606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"95273be5-fbf1-42a5-87c3-29f5ecbaafa1","savedPayload":{"position":{"x":26803.55742590808,"y":19465.816406907546},"targetPosition":{"x":26370.57578259956,"y":19588.400649605606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"19988cef-f604-49a9-91f5-f8b1c93b0302","savedPayload":{"position":{"x":26820.312095738125,"y":19572.997771805254},"targetPosition":{"x":26370.57578259956,"y":19588.400649605606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"8e1f47f3-3a81-45ed-892e-ea3e21d544c6","savedPayload":{"position":{"x":26810.92972577354,"y":19681.074295973533},"targetPosition":{"x":26370.57578259956,"y":19588.400649605606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Strategy Name","config":"{ \n\"codeName\": \"strategyName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"2bb2239e-adc4-4ad1-9c82-64e03c7c60f3","savedPayload":{"position":{"x":26775.95558525314,"y":19783.764964669906},"targetPosition":{"x":26370.57578259956,"y":19588.400649605606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Index","config":"{ \n\"codeName\": \"index\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"85886ed3-2cbb-4386-b661-d7103a1c63bb","savedPayload":{"position":{"x":26717.422244098147,"y":19875.101769495133},"targetPosition":{"x":26370.57578259956,"y":19588.400649605606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"78491f8d-a68a-4918-ab38-cc9fa8eff27e","savedPayload":{"position":{"x":26638.731447336446,"y":19949.776547348552},"targetPosition":{"x":26370.57578259956,"y":19588.400649605606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"46f41431-bf06-4d5e-93b5-1b64dafb8d6a","savedPayload":{"position":{"x":26544.456418046415,"y":20003.44947157309},"targetPosition":{"x":26370.57578259956,"y":19588.400649605606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b9c2814b-3d92-406b-88ab-78c71e635bd2","savedPayload":{"position":{"x":26440.07607825461,"y":20033.001266905965},"targetPosition":{"x":26370.57578259956,"y":19588.400649605606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b78b86e0-a571-4f94-b837-b237c2043c3c","savedPayload":{"position":{"x":26331.65663390263,"y":20036.71449041883},"targetPosition":{"x":26370.57578259956,"y":19588.400649605606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f99d1259-33b6-4c61-9332-5b751c1b2439","savedPayload":{"position":{"x":26225.499029007562,"y":20014.37334305814},"targetPosition":{"x":26370.57578259956,"y":19588.400649605606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategy.strategyCounters\"\n}","project":"Superalgos","id":"9d920c3c-3693-465f-a5e9-e8ea5dcdfd55","savedPayload":{"position":{"x":26127.77275769872,"y":19967.27621110173},"targetPosition":{"x":26370.57578259956,"y":19588.400649605606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b0192e6c-445b-4b55-b344-b273b268897b","savedPayload":{"position":{"x":26370.57578259956,"y":19588.400649605606},"targetPosition":{"x":26060.81622353737,"y":19261.982182650077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"21db6fce-8450-4b07-9015-d81a339fd030","savedPayload":{"position":{"x":26066.81622353737,"y":19261.982182650077},"targetPosition":{"x":25655.7207675982,"y":19078.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Strategy Objects","id":"d54a124c-6029-41a6-9bbd-bb3fe8b1a318"}}}],"productDefinitionFolders":[{"type":"Product Definition Folder","name":"Orders","project":"Superalgos","products":[{"type":"Product Definition","name":"Market Buy Orders","config":"{ \n \"codeName\": \"Market-Buy-Orders-Objects\", \n \"singularVariableName\": \"marketBuyOrdersObject\", \n \"pluralVariableName\": \"marketBuyOrdersObjects\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"45609efb-0edc-4aa9-bc12-f5b4ca6dc5bf","savedPayload":{"position":{"x":26578.09702594485,"y":19356.904568452548},"targetPosition":{"x":26370.224131129813,"y":19443.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"5eed53d0-a3e7-4082-b7f1-cb321b3d306b","savedPayload":{"position":{"x":26595.224131129813,"y":19443.008340734694},"targetPosition":{"x":26370.224131129813,"y":19443.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"2b09fe55-b85c-4242-bae1-85a671b006ad","savedPayload":{"position":{"x":27008.926321554478,"y":19224.3317038018},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"9fdc2c26-3835-4917-b12b-5f1b0bef5a05","savedPayload":{"position":{"x":27056.159022156542,"y":19255.357788979793},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"f889b073-b78f-4345-bca7-c1943b6f5ee3","savedPayload":{"position":{"x":27099.130679226433,"y":19292.05905130555},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"2cf8c3ee-79ae-49bb-882b-992379f41fd9","savedPayload":{"position":{"x":27137.16360406214,"y":19333.85668994792},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"94e5c88c-2317-4bd1-86e6-f578db5e882f","savedPayload":{"position":{"x":27169.657994719233,"y":19380.091531176808},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7b9b53d5-d93a-4301-a0e6-ce8322da8fce","savedPayload":{"position":{"x":27196.101395245845,"y":19430.034423926685},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"5906d64e-d90e-4dae-a2bb-c806e3d5d21d","savedPayload":{"position":{"x":27216.07677741914,"y":19482.897738944448},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"294ae361-a9f7-404a-a6dd-3dc25d8c6c27","savedPayload":{"position":{"x":27229.26911752954,"y":19537.84779017325},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e837a938-5448-4987-bdf0-d28de65d33fb","savedPayload":{"position":{"x":27235.47036449278,"y":19594.017982479647},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"4424a014-cc5f-494e-be78-0b49f960045b","savedPayload":{"position":{"x":27234.5827209398,"y":19650.522478376515},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"137a18b5-33a3-433e-b85b-c8fbe03cbe69","savedPayload":{"position":{"x":27226.620185539687,"y":19706.470168209416},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderCounters\"\n}","project":"Superalgos","id":"35ca0a49-129b-49e2-864a-3c43ed3bf38b","savedPayload":{"position":{"x":27211.708332232287,"y":19760.97872348815},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"4b0020d5-4d5b-4747-aa28-baf6e28f67d9","savedPayload":{"position":{"x":27190.082329852172,"y":19813.188511734148},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"eedcf7ad-6668-4b14-8f07-7ee44998c47a","savedPayload":{"position":{"x":27162.083233375615,"y":19862.276153398143},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"46b407ab-5799-4ea6-946b-d857abb76183","savedPayload":{"position":{"x":27128.15260527991,"y":19907.467507047568},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"c2fcb23d-4a6d-457a-8d38-03a46786fedc","savedPayload":{"position":{"x":27088.82555183929,"y":19948.04987803936},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"ca02a2ed-731a-4df8-9f76-fe8d60b7ad8e","savedPayload":{"position":{"x":27044.72228417937,"y":19983.383258140246},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"ac187d63-a2cc-487c-8e81-03c786749d9c","savedPayload":{"position":{"x":26996.53833717715,"y":20012.910418838896},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"97b70829-4c2e-433c-8233-f6254788232a","savedPayload":{"position":{"x":26945.03360046056,"y":20036.165699172427},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"e8f83131-1dbc-48b7-9862-49130126b67d","savedPayload":{"position":{"x":26891.02033449505,"y":20052.78234947794},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"895ce4a6-2cf5-4f2e-b160-38f0237cbce4","savedPayload":{"position":{"x":26835.350360750865,"y":20062.498315253815},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"10253d7f-83fc-4bce-b757-f9fe36481f28","savedPayload":{"position":{"x":26778.901627969575,"y":20065.16036991573},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"d436d73b-be15-4d1a-baeb-c41b6706bbde","savedPayload":{"position":{"x":26722.564366387982,"y":20060.726531271437},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"320e3ae5-5884-4c25-b61b-2d0ef4730884","savedPayload":{"position":{"x":26667.227048275476,"y":20049.266723604993},"targetPosition":{"x":26785.969920759893,"y":19615.215885298985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d79b050c-2805-4b39-bcd3-1678628f8d1c","savedPayload":{"position":{"x":26785.969920759893,"y":19615.215885298985},"targetPosition":{"x":26370.224131129813,"y":19443.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"db256083-9aa2-48e1-8fd6-3425a5085302","savedPayload":{"position":{"x":26370.224131129813,"y":19443.008340734694},"targetPosition":{"x":25920.224131129813,"y":19443.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Market Buy Orders","id":"e00fe7d4-894d-4483-a73a-3cd77943ea80"}}},{"type":"Product Definition","name":"Market Sell Orders","config":"{ \n \"codeName\": \"Market-Sell-Orders-Objects\", \n \"singularVariableName\": \"marketSellOrdersObject\", \n \"pluralVariableName\": \"marketSellOrdersObjects\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"6112bd4d-07cb-41db-98c4-e286d172b5c0","savedPayload":{"position":{"x":30561.738732165315,"y":19494.9752599936},"targetPosition":{"x":29408.814780098182,"y":19536.331183214137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"07cd5668-5e0f-4385-9c02-72eebc99344a","savedPayload":{"position":{"x":30489.972435810672,"y":19938.880402813473},"targetPosition":{"x":29408.814780098182,"y":19536.331183214137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"0ba08ecb-3542-4acd-abbe-7059306ed669","savedPayload":{"position":{"x":31137.75016687439,"y":19583.491557084188},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"0ae49e68-38d8-4356-bde3-c648a29177a7","savedPayload":{"position":{"x":31223.59019320684,"y":19700.48808514457},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"b7057c53-6d99-44ca-9eff-4dd21ebe2116","savedPayload":{"position":{"x":31293.925598084115,"y":19827.10169376592},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"01b26cba-240f-451e-8533-2e090a3103fd","savedPayload":{"position":{"x":31347.809295129613,"y":19961.494120027153},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"052e9ef4-da9f-4198-b13f-7a2e0c60b906","savedPayload":{"position":{"x":31384.415963180018,"y":20101.568255043232},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"a6e9d3dc-20e3-4cf3-94f4-79f3723b4d34","savedPayload":{"position":{"x":31403.17513221224,"y":20245.12110225893},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b38cf81f-59f2-4508-9fbc-e82b1ad38d65","savedPayload":{"position":{"x":31403.79324483422,"y":20389.636504684615},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"0132786e-0a9a-4096-a6a5-57f03485d0b1","savedPayload":{"position":{"x":31386.26222781504,"y":20533.34014537474},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"d1cb7813-1e5a-43f2-af35-f82a9ee47a0b","savedPayload":{"position":{"x":31350.858055249915,"y":20673.714015474605},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"8ab09d9d-7c5a-45d4-ad6a-8a4292c1b137","savedPayload":{"position":{"x":31298.193419518546,"y":20808.570665695763},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b1d35b5f-2d9f-4ba0-b4bc-cc12c74104e8","savedPayload":{"position":{"x":31228.990190844597,"y":20935.73691104689},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderCounters\"\n}","project":"Superalgos","id":"b1dbf0d5-39bb-4c1a-ac6d-d1d647e82d54","savedPayload":{"position":{"x":31144.394291431676,"y":21053.227009645278},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"8b25c33c-8f96-4a6e-8180-43027d0fc396","savedPayload":{"position":{"x":31045.741167293418,"y":21159.18943521726},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"2ffc6fc2-9e28-4ef6-9047-a2bd2b618bd3","savedPayload":{"position":{"x":30934.58488915104,"y":21251.951816221826},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"e5c5802a-d778-40e5-9039-4067a6a56e4f","savedPayload":{"position":{"x":30812.678958481207,"y":21330.05196198316},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"7fccf0bc-d0a4-48d9-b4ac-c467bc74ef0f","savedPayload":{"position":{"x":30681.94435157234,"y":21392.255360223204},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"2149cdc5-19f8-4e11-9d5c-e6c062998223","savedPayload":{"position":{"x":30544.444149962183,"y":21437.582953517252},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"df8e190a-1138-4ffa-baef-6a560ba51739","savedPayload":{"position":{"x":30402.351837467053,"y":21465.323233903342},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"e78e7e63-95da-479e-9d5c-9531b2b2bf26","savedPayload":{"position":{"x":30257.89452491479,"y":21475.03389310028},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"8010dd65-bb12-492e-a5b8-4e8b12e1e211","savedPayload":{"position":{"x":30113.5996546336,"y":21466.557990485704},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"857f1eed-2dd2-4646-8b63-acb4cec04400","savedPayload":{"position":{"x":29971.2601313813,"y":21440.023120152193},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3578ea56-a788-42bc-a964-0ba02e432a2e","savedPayload":{"position":{"x":29833.350606475353,"y":21395.85959370992},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"0f88abbf-bbcb-4281-90e2-5bd844c7bdfc","savedPayload":{"position":{"x":29702.03898532638,"y":21334.71973025635},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"c5a06ac6-e0c8-4a38-a790-d3569bb73ef5","savedPayload":{"position":{"x":29579.22571035548,"y":21257.44662910848},"targetPosition":{"x":30253.090992910802,"y":20322.300037072073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8b01d5ae-7d6f-4c08-9f05-2f8edb699fd6","savedPayload":{"position":{"x":30253.090992910802,"y":20322.300037072073},"targetPosition":{"x":29408.814780098182,"y":19536.331183214137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"1958f79b-5c6c-4874-9154-98c314822ed7","savedPayload":{"position":{"x":26284.28177859854,"y":19707.511704266308},"targetPosition":{"x":25920.224131129813,"y":19443.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Market Sell Orders","id":"a9811005-1b7d-45bb-8003-0e60caab5f09"}}},{"type":"Product Definition","name":"Limit Buy Orders","config":"{ \n \"codeName\": \"Limit-Buy-Orders-Objects\", \n \"singularVariableName\": \"limitBuyOrdersObject\", \n \"pluralVariableName\": \"limitBuyOrdersObjects\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"b82fb0f9-74c1-42e6-961c-a696214ef079","savedPayload":{"position":{"x":28297.197763643733,"y":21254.638734022392},"targetPosition":{"x":27618.030908282355,"y":20544.350359783835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"2e03f52e-0cd2-46b4-9c10-0b8516ef9c71","savedPayload":{"position":{"x":27973.536925117998,"y":21460.391216004435},"targetPosition":{"x":27618.030908282355,"y":20544.350359783835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"890f7170-f42d-43d8-a084-b9b88ea212cc","savedPayload":{"position":{"x":28566.53165501038,"y":21671.070019801824},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"3e6e8e40-2e6c-4bd4-b709-effa25749403","savedPayload":{"position":{"x":28540.63485756526,"y":21792.12269491024},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"280a9209-b9cd-4cb7-b0b7-3dfe2f472140","savedPayload":{"position":{"x":28499.693156964597,"y":21908.857857102503},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"254561e5-52c3-4669-920e-4fe5370653c4","savedPayload":{"position":{"x":28444.689411601263,"y":22019.021801782652},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"8ef21836-adad-4918-9816-fbb3c9dd1fc5","savedPayload":{"position":{"x":28376.135292015268,"y":22121.64233460315},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"4d6fd5f1-a95b-4ec1-a49c-6c057190d354","savedPayload":{"position":{"x":28295.34173115862,"y":22214.827356148584},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"12402a8e-c9d4-4adb-94c3-22f526d72d14","savedPayload":{"position":{"x":28203.659913217394,"y":22297.206187916145},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"8cc955fb-62ec-40b9-963b-275956de04d9","savedPayload":{"position":{"x":28102.142034383698,"y":22367.542065015663},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"63af17a0-e994-4b5f-b853-207bf27c496c","savedPayload":{"position":{"x":27992.76073699908,"y":22424.442118304734},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"0af4f067-ac3d-4ee7-ba1d-d9c22ae2f46f","savedPayload":{"position":{"x":27876.92096092378,"y":22467.126723543264},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f8cb0422-95bb-4c53-a5f6-7e02819021c0","savedPayload":{"position":{"x":27756.744444576438,"y":22495.171417414513},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderCounters\"\n}","project":"Superalgos","id":"d16faba6-3464-4536-9c93-afbe6e0d4262","savedPayload":{"position":{"x":27634.110580413726,"y":22507.721865495383},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"75fd2c91-2bfe-428c-9ff6-7d28d566a96d","savedPayload":{"position":{"x":27510.91556099024,"y":22504.747941266374},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"5d621574-54fd-4279-8c47-7bb9710bcc90","savedPayload":{"position":{"x":27389.173590827744,"y":22486.635706378893},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"0bddc747-8300-4b15-8a7a-134ff133d2ec","savedPayload":{"position":{"x":27270.44003256182,"y":22453.23846783036},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"4564e44d-dbd5-4d97-8433-fc1dd877bd2f","savedPayload":{"position":{"x":27156.8443638509,"y":22405.040629805422},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"dc313012-cb3e-4087-9ae1-af1125a074e3","savedPayload":{"position":{"x":27050.026317545897,"y":22343.18494480721},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"ba489aaa-0872-4e7f-bad0-a7c43b0da4b5","savedPayload":{"position":{"x":26951.898528766327,"y":22268.42286949116},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"56b30e10-c354-4a0c-a570-07976dc45b76","savedPayload":{"position":{"x":26864.141771684357,"y":22181.819082158923},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4696e371-b17b-48fc-8ebb-dfa00e0b2aed","savedPayload":{"position":{"x":26787.70832147373,"y":22084.910878230232},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"8161a21f-02f8-4929-acd1-f684a7deb41b","savedPayload":{"position":{"x":26724.04682404267,"y":21979.423067100885},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2c17774e-a962-487f-939c-411973472057","savedPayload":{"position":{"x":26674.004763905472,"y":21866.301966483763},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"d96f2a66-4d03-4cda-90c7-3dd7eae7712a","savedPayload":{"position":{"x":26638.53767020416,"y":21747.95572609214},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"9a713d83-5701-47a7-b0a0-4969671df884","savedPayload":{"position":{"x":26618.133927503637,"y":21625.844692678227},"targetPosition":{"x":27595.290901255852,"y":21526.407214958588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aaad0279-43dd-46fc-b099-40cba6c3b6a8","savedPayload":{"position":{"x":27595.290901255852,"y":21526.407214958588},"targetPosition":{"x":27618.030908282355,"y":20544.350359783835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"5deceb32-c7ab-4560-818a-0f0b9d6632fb","savedPayload":{"position":{"x":26059.28177859854,"y":19870.983773067514},"targetPosition":{"x":25920.224131129813,"y":19443.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Limit Buy Orders","id":"7e3120c7-a0c9-483c-ada9-8c53deb10f33"}}},{"type":"Product Definition","name":"Limit Sell Orders","config":"{ \n \"codeName\": \"Limit-Sell-Orders-Objects\", \n \"singularVariableName\": \"limitSellOrdersObject\", \n \"pluralVariableName\": \"limitSellOrdersObjects\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"356495a9-b063-495d-b06d-5281c7c0007e","savedPayload":{"position":{"x":28056.842483361772,"y":21371.855356224252},"targetPosition":{"x":27446.21311072474,"y":20601.957715152446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"934ab813-127e-4bbf-aa71-09b3cdadc0d0","savedPayload":{"position":{"x":27715.73892569853,"y":21546.866004515214},"targetPosition":{"x":27446.21311072474,"y":20601.957715152446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"5c8236b1-b257-44f4-98bd-a158b67aad16","savedPayload":{"position":{"x":28286.642705425853,"y":21811.62837671577},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"16140fc9-d4ae-43c2-ba47-f676b79a9775","savedPayload":{"position":{"x":28249.628877741394,"y":21929.826458928645},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"2d871d0f-e668-4e9d-9fcf-439f37cd082f","savedPayload":{"position":{"x":28198.237875678045,"y":22042.222135762946},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"fc6f8fe4-b752-448a-9ece-8497abf2901c","savedPayload":{"position":{"x":28133.194574364174,"y":22146.995566699028},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"3502765f-2f50-44c6-b85c-64d7f72f5592","savedPayload":{"position":{"x":28055.5442435588,"y":22242.94335722536},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"608ebfd0-4294-4e24-8111-a8f695072ca0","savedPayload":{"position":{"x":27966.384495706923,"y":22328.192014211934},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"c49c3510-e24b-418f-9334-760c5da57ccf","savedPayload":{"position":{"x":27867.37167569742,"y":22401.71176915763},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"04b96ab3-eb13-4039-a385-8e5c4377daa4","savedPayload":{"position":{"x":27759.874814033887,"y":22462.230037799345},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"6ec27702-5283-4fbf-b6a7-92663a6e9e9b","savedPayload":{"position":{"x":27645.70028038436,"y":22508.917596845477},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"6a4285a4-c9d5-4d5b-a218-da8e19ca5970","savedPayload":{"position":{"x":27526.492771804093,"y":22540.642978294054},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e3e35a81-c5b2-4768-ab16-99b42ef83358","savedPayload":{"position":{"x":27404.277467496388,"y":22557.45893567008},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderCounters\"\n}","project":"Superalgos","id":"815780d8-f647-42cc-9a40-aa99caa350c7","savedPayload":{"position":{"x":27281.165965446533,"y":22558.67093566599},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"d824c424-4324-46b1-87b9-182cc9f0d054","savedPayload":{"position":{"x":27158.815874086402,"y":22544.367134465414},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"d722bfd4-eb08-4dfc-8cc9-f706f93df80e","savedPayload":{"position":{"x":27039.057545900876,"y":22514.986069123413},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"d05fe7d4-d772-4ad4-9890-a3aa342fc5f6","savedPayload":{"position":{"x":26923.871803818827,"y":22470.67621583085},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"d4b14139-33ad-4da1-942c-ce8df0d3efa9","savedPayload":{"position":{"x":26815.13676709853,"y":22412.417912489123},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"9ade3c97-f409-4c23-b66f-b6670100e039","savedPayload":{"position":{"x":26714.66890764104,"y":22340.94618200058},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"780e674d-64fc-401a-ad5d-1012645f512e","savedPayload":{"position":{"x":26623.842255693136,"y":22257.341933241474},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"8dade5f4-6361-49b2-ae94-2b66b21d5522","savedPayload":{"position":{"x":26544.287342494084,"y":22163.153899990564},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"896f401d-5a79-45bb-b15b-abc2881d7762","savedPayload":{"position":{"x":26477.24095152323,"y":22059.599923252197},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"b92661d6-16ec-48a6-bb66-18c4ad4dd148","savedPayload":{"position":{"x":26423.46979906318,"y":21948.60958956997},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"c24a527a-db24-472d-8c3f-f0da838f8062","savedPayload":{"position":{"x":26384.19042546744,"y":21831.394549288983},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"b50fa760-b069-411f-b27e-6dd1d165e927","savedPayload":{"position":{"x":26359.85221739352,"y":21710.328594972158},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"d5d472fb-bf5a-40e7-ac92-7b03279022c3","savedPayload":{"position":{"x":26350.85964166914,"y":21586.961644423463},"targetPosition":{"x":27332.892945833497,"y":21578.01924614344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7dc5d5fc-ff33-4652-bc9c-fad0566a3d9f","savedPayload":{"position":{"x":27332.892945833497,"y":21578.01924614344},"targetPosition":{"x":27446.21311072474,"y":20601.957715152446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"2a1d405b-2fbe-4ed4-a76a-d2c7be59d20e","savedPayload":{"position":{"x":25781.166483661087,"y":19870.983773067514},"targetPosition":{"x":25920.224131129813,"y":19443.008340734694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Limit Sell Orders","id":"fb243322-ec2a-4f03-bb77-e97e4699d1c6"}}}],"productDefinitionFolders":[],"id":"cb9c928a-1a5d-441c-b369-0a72f98f2407","savedPayload":{"position":{"x":25920.224131129813,"y":19443.008340734694},"targetPosition":{"x":25655.7207675982,"y":19078.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Stages","project":"Superalgos","products":[{"type":"Product Definition","name":"Trigger Stages","config":"{\n \"codeName\": \"Trigger-Stages-Objects\",\n \"singularVariableName\": \"triggerStagesObject\",\n \"pluralVariableName\": \"triggerStagesObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyTriggerStage\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"e951c491-c864-4668-9d70-c48df90d8342","savedPayload":{"position":{"x":26309.54510158075,"y":19780.853939431203},"targetPosition":{"x":26086.47000777164,"y":19751.48554618169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"ace4518d-bfe1-49e2-af7b-4ff9559fe6a9","savedPayload":{"position":{"x":26281.32572362314,"y":19863.98554618169},"targetPosition":{"x":26086.47000777164,"y":19751.48554618169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"75d29f56-b520-43e9-af25-105a88b84f0f","savedPayload":{"position":{"x":26443.697957125572,"y":19884.03335184454},"targetPosition":{"x":26223.441329298603,"y":19929.99004774722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"08e2f14d-f121-48ed-b266-d78fe59ef437","savedPayload":{"position":{"x":26441.825556975615,"y":19984.150264714237},"targetPosition":{"x":26223.441329298603,"y":19929.99004774722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"675b3923-9fdb-4e08-abab-2ba83424c851","savedPayload":{"position":{"x":26396.699482227436,"y":20073.540082382144},"targetPosition":{"x":26223.441329298603,"y":19929.99004774722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"6a6f3698-8dfc-4368-9db6-e5ac251aefec","savedPayload":{"position":{"x":26317.2575054199,"y":20134.498055164964},"targetPosition":{"x":26223.441329298603,"y":19929.99004774722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"6db4ef3b-ea01-4765-a749-f9bee13fa2a3","savedPayload":{"position":{"x":26219.23408435165,"y":20154.950708952587},"targetPosition":{"x":26223.441329298603,"y":19929.99004774722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"8435db2d-1a90-4994-ba46-7d11618a65ab","savedPayload":{"position":{"x":26122.043959743616,"y":20130.847144827032},"targetPosition":{"x":26223.441329298603,"y":19929.99004774722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"167c8a3e-7c2a-488f-87f7-be3f6034d276","savedPayload":{"position":{"x":26223.441329298603,"y":19929.99004774722},"targetPosition":{"x":26086.47000777164,"y":19751.48554618169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"18cc2e79-7e57-418c-b635-6c68fc11d681","savedPayload":{"position":{"x":26086.47000777164,"y":19751.48554618169},"targetPosition":{"x":25696.75857606864,"y":19526.48554618169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Trigger Stage Objects","id":"6c6cddbc-cd78-445f-9498-8627ac99563d"}}},{"type":"Product Definition","name":"Open Stages","config":"{\n \"codeName\": \"Open-Stages-Objects\",\n \"singularVariableName\": \"openStagesObject\",\n \"pluralVariableName\": \"openStagesObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"613bf56d-986e-4a94-9b39-4f0ac3300b0c","savedPayload":{"position":{"x":28398.6614474727,"y":21928.22275844946},"targetPosition":{"x":27740.84508349377,"y":20980.998416317794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"44a0d895-2a7e-4f9a-b9a7-81dc32bf30e4","savedPayload":{"position":{"x":27986.095580353165,"y":22107.939905953335},"targetPosition":{"x":27740.84508349377,"y":20980.998416317794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"e36b3b00-b339-4ce5-9526-a2077f5e1138","savedPayload":{"position":{"x":28468.57238629253,"y":22791.973017604116},"targetPosition":{"x":27536.02002765068,"y":22115.902618767796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"73751c42-16ed-4a24-8586-d86c3c9a81be","savedPayload":{"position":{"x":28082.754021654368,"y":23129.75593680144},"targetPosition":{"x":27536.02002765068,"y":22115.902618767796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"d76fd073-ae0d-4af8-b729-5d94a1cf21ed","savedPayload":{"position":{"x":27588.701816424502,"y":23266.5820034291},"targetPosition":{"x":27536.02002765068,"y":22115.902618767796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"3db414d7-fb6f-4cce-be3b-342101e90246","savedPayload":{"position":{"x":27084.434021559406,"y":23175.5858485332},"targetPosition":{"x":27536.02002765068,"y":22115.902618767796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"340b1f7b-b041-4ee0-9327-0959de0d8d9a","savedPayload":{"position":{"x":26669.36231396078,"y":22874.619854762474},"targetPosition":{"x":27536.02002765068,"y":22115.902618767796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"6fa53271-06c2-48b1-a763-2926ce948fbc","savedPayload":{"position":{"x":26425.89018402749,"y":22423.412213674277},"targetPosition":{"x":27536.02002765068,"y":22115.902618767796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"517166b0-13ae-4f3d-bcb4-d3292dd9daf7","savedPayload":{"position":{"x":27536.02002765068,"y":22115.902618767796},"targetPosition":{"x":27740.84508349377,"y":20980.998416317794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"d5938c00-0849-466d-ae14-4ea91b571678","savedPayload":{"position":{"x":25879.79006545275,"y":19937.581002120864},"targetPosition":{"x":25696.75857606864,"y":19526.48554618169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Open Stage Objects","id":"8f7cad9f-153d-44e6-bdc2-812bc97e3929"}}},{"type":"Product Definition","name":"Manage Stages","config":"{\n \"codeName\": \"Manage-Stages-Objects\",\n \"singularVariableName\": \"manageStagesObject\",\n \"pluralVariableName\": \"manageStagesObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyManageStage\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"f6e10004-71dd-4ae9-8c1f-0b71de02d274","savedPayload":{"position":{"x":27664.23350042233,"y":21505.375775512246},"targetPosition":{"x":27169.4545030535,"y":20659.82377732973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"8f3984d8-e735-4dab-a9cc-51e97d704154","savedPayload":{"position":{"x":27302.888149758302,"y":21630.39266316751},"targetPosition":{"x":27169.4545030535,"y":20659.82377732973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"0a0419db-885a-4623-9ce3-ef4cd12d7a52","savedPayload":{"position":{"x":27666.62411628632,"y":22241.66352220627},"targetPosition":{"x":26921.268299705767,"y":21607.540024649887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"4478d5f4-808f-45b5-9197-c144e6c1d81f","savedPayload":{"position":{"x":27317.585605250995,"y":22502.312126408855},"targetPosition":{"x":26921.268299705767,"y":21607.540024649887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"abf359ac-dc22-4274-a00c-25c986836002","savedPayload":{"position":{"x":26890.3587458279,"y":22585.71195647841},"targetPosition":{"x":26921.268299705767,"y":21607.540024649887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"78333d72-e1e6-4a85-9e23-850a66e3ca71","savedPayload":{"position":{"x":26468.97508991858,"y":22475.36790895691},"targetPosition":{"x":26921.268299705767,"y":21607.540024649887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"ba45b561-33a9-4e8e-bf3c-a6b8ece1d0a3","savedPayload":{"position":{"x":26137.198528003973,"y":22193.126859834138},"targetPosition":{"x":26921.268299705767,"y":21607.540024649887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"45ef8759-341e-4e74-a374-035374659cc5","savedPayload":{"position":{"x":25960.7448968667,"y":21794.862226010446},"targetPosition":{"x":26921.268299705767,"y":21607.540024649887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d418fdcd-d800-4f99-8a67-05eb6a09d390","savedPayload":{"position":{"x":26921.268299705767,"y":21607.540024649887},"targetPosition":{"x":27169.4545030535,"y":20659.82377732973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"8fab86b3-db8d-4113-8418-1d256bd98cf2","savedPayload":{"position":{"x":25603.19831520065,"y":19966.651966511905},"targetPosition":{"x":25696.75857606864,"y":19526.48554618169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Manage Stage Objects","id":"768a5cc5-72db-4218-9a8b-706c51186b3d"}}},{"type":"Product Definition","name":"Close Stages","config":"{\n \"codeName\": \"Close-Stages-Objects\",\n \"singularVariableName\": \"closeStagesObject\",\n \"pluralVariableName\": \"closeStagesObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"ee0f2bab-26b6-44c6-af1c-efbca2c765cd","savedPayload":{"position":{"x":27347.964704616847,"y":21569.271820620306},"targetPosition":{"x":26912.050299901148,"y":20691.916982233615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"cbd3905d-fafc-47f3-8a61-20c9aab10d86","savedPayload":{"position":{"x":26978.92628007235,"y":21669.32612854922},"targetPosition":{"x":26912.050299901148,"y":20691.916982233615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"fb4236d5-0356-4226-bf11-8d119d361bf3","savedPayload":{"position":{"x":27300.080083118486,"y":22304.001601423606},"targetPosition":{"x":26599.70532043249,"y":21620.43811822156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"68f1a928-d89f-4d57-80d8-1e68b113bea5","savedPayload":{"position":{"x":26934.051949713037,"y":22540.23414313807},"targetPosition":{"x":26599.70532043249,"y":21620.43811822156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"cd79288d-539d-499f-a998-5770f3c5efab","savedPayload":{"position":{"x":26502.102999881954,"y":22594.268741317428},"targetPosition":{"x":26599.70532043249,"y":21620.43811822156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7afb54b6-807f-4452-9fd6-bb4bd32dd462","savedPayload":{"position":{"x":26089.214231924274,"y":22455.418533798624},"targetPosition":{"x":26599.70532043249,"y":21620.43811822156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"56d33c0a-1f4c-4721-b43d-976bbff00208","savedPayload":{"position":{"x":25777.45870130793,"y":22151.179326432477},"targetPosition":{"x":26599.70532043249,"y":21620.43811822156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"eae9d270-5193-46f6-abc8-c1c1eccc9661","savedPayload":{"position":{"x":25628.586038385503,"y":21741.78221500365},"targetPosition":{"x":26599.70532043249,"y":21620.43811822156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c4aaf6da-f1d9-4a88-8e7a-531135090572","savedPayload":{"position":{"x":26599.70532043249,"y":21620.43811822156},"targetPosition":{"x":26912.050299901148,"y":20691.916982233615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"ba911e61-f951-48cd-b547-9a70aa211100","savedPayload":{"position":{"x":25362.343404603813,"y":19827.59431904318},"targetPosition":{"x":25696.75857606864,"y":19526.48554618169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Close Stage Objects","id":"de84947f-ec29-4125-a2b3-a3da595d1653"}}}],"productDefinitionFolders":[],"id":"4ce02b43-0869-4bed-b021-a3b9f7c10451","savedPayload":{"position":{"x":25702.75857606864,"y":19526.48554618169},"targetPosition":{"x":25655.7207675982,"y":19078.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Position","project":"Superalgos","products":[{"type":"Product Definition","name":"Positions","config":"{\n \"codeName\": \"Position-Objects\",\n \"singularVariableName\": \"positionObject\",\n \"pluralVariableName\": \"positionObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"55df9376-2806-429d-b43d-b96700787f74","savedPayload":{"position":{"x":25923.036678725373,"y":19971.665973734955},"targetPosition":{"x":25731.192641745703,"y":19854.103796673866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"fd62b468-93fa-44e0-941f-fff7ea4b04ea","savedPayload":{"position":{"x":25863.44432351151,"y":20036.13262040823},"targetPosition":{"x":25731.192641745703,"y":19854.103796673866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"a8700d50-9286-4b62-a141-abd506386983","savedPayload":{"position":{"x":26833.59384445245,"y":20611.76315203373},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"6ce2fa31-04d9-4541-a793-569b668e6201","savedPayload":{"position":{"x":26840.98506169402,"y":20705.67747155469},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"0f5cf2f4-3c5b-4607-8635-c7310906b95c","savedPayload":{"position":{"x":26838.519069575836,"y":20799.849911186837},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"ba8a1af9-323f-4acb-a438-a61f232b4033","savedPayload":{"position":{"x":26826.222886023577,"y":20893.24869797471},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"85df8c0c-7d11-44c2-a7a9-928d4ac0ad06","savedPayload":{"position":{"x":26804.231230597394,"y":20984.85053526531},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"9c8b786e-23f6-4bf9-bf83-6fd03b494a66","savedPayload":{"position":{"x":26772.785048476177,"y":21073.65181416036},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b0719341-cda1-4503-bed5-f4e98d7e07db","savedPayload":{"position":{"x":26732.228870611787,"y":21158.679609265426},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"a052f724-c517-4032-85f7-96d3a29ba9ce","savedPayload":{"position":{"x":26683.007038975833,"y":21239.002338264127},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"a4dfa19d-51b8-4151-91e5-6031059f09f1","savedPayload":{"position":{"x":26625.658838256048,"y":21313.739968528942},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionCounters\"\n}","project":"Superalgos","id":"5309d28b-041a-4622-ade5-9349c19787da","savedPayload":{"position":{"x":26560.8125873404,"y":21382.073658942834},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"0853d6cc-4429-431e-82f0-e4d958f095ea","savedPayload":{"position":{"x":26489.17875532387,"y":21443.254731293888},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"925756d5-4662-44ac-bfa6-a326c5e61b23","savedPayload":{"position":{"x":26411.542177460375,"y":21496.61287295046},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"3d22802e-0b11-47e4-8c98-7c9830f166fb","savedPayload":{"position":{"x":26328.753456343486,"y":21541.56348094665},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Base Asset","config":"{ \n\"codeName\": \"profitLossInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"5cbdddf2-f50e-49c6-b995-c557a44adde5","savedPayload":{"position":{"x":26241.719642526412,"y":21577.614067014736},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Quoted Asset","config":"{ \n\"codeName\": \"profitLossInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"0e1b30a0-5408-4b8b-aa61-efd21d9ef1b1","savedPayload":{"position":{"x":26151.394296686336,"y":21604.369653389687},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Base Asset","config":"{ \n\"codeName\": \"ROIInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"d41d6380-be40-4823-a6d2-adc43038d514","savedPayload":{"position":{"x":26058.767042214065,"y":21621.537100268208},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Quoted Asset","config":"{ \n\"codeName\": \"ROIInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"5306784e-c744-49cd-962a-670d8e452ac7","savedPayload":{"position":{"x":25964.852722693107,"y":21628.928317509777},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Base Asset","config":"{ \n\"codeName\": \"hitFailInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"bf8e5f03-9c93-4b76-ae3d-4f2b3eeccab5","savedPayload":{"position":{"x":25870.68028306096,"y":21626.462325391592},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Quoted Asset","config":"{ \n\"codeName\": \"hitFailInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"43463fcd-ac98-4ae3-a148-d43d709ba86c","savedPayload":{"position":{"x":25777.281496273088,"y":21614.166141839334},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Base Asset","config":"{ \n\"codeName\": \"entryTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"e6b2213f-f108-428f-b93c-e58db1da49e2","savedPayload":{"position":{"x":25685.679658982488,"y":21592.17448641315},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Quoted Asset","config":"{ \n\"codeName\": \"entryTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2e419e2b-cb42-4067-a861-7ebf1804a903","savedPayload":{"position":{"x":25596.87838008744,"y":21560.728304291933},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Base Asset","config":"{ \n\"codeName\": \"exitTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"739818f5-d2e4-4fea-b818-a598ed4a9c21","savedPayload":{"position":{"x":25511.85058498237,"y":21520.172126427544},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Quoted Asset","config":"{ \n\"codeName\": \"exitTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"76337d8e-1242-4e84-96c4-7e93b218a1ab","savedPayload":{"position":{"x":25431.52785598367,"y":21470.95029479159},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Rate","config":"{ \n\"codeName\": \"entryTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"06eb81a4-5736-40f5-8248-9aeb8e9cc409","savedPayload":{"position":{"x":25356.790225718854,"y":21413.602094071804},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Rate","config":"{ \n\"codeName\": \"exitTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7c3162ae-a955-4c61-bd01-69a198893335","savedPayload":{"position":{"x":25288.456535304962,"y":21348.755843156156},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Profit Loss","config":"{ \n\"codeName\": \"profitLoss\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 10\n}","project":"Superalgos","id":"399ae646-1616-4fdd-9ce3-228ea91b7bfc","savedPayload":{"position":{"x":25227.27546295391,"y":21277.122011139625},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics ROI","config":"{ \n\"codeName\": \"ROI\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 10\n}","project":"Superalgos","id":"eaa127cc-7067-45a6-8268-463c659209d0","savedPayload":{"position":{"x":25173.917321297336,"y":21199.48543327613},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Hit Fail","config":"{ \n\"codeName\": \"hitFail\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\"\n}","project":"Superalgos","id":"2db6cdcd-128e-4bdd-9e9f-1d009c497a16","savedPayload":{"position":{"x":25128.966713301146,"y":21116.696712159242},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"42bb6a56-afc0-4c71-9b08-fd59959e8c88","savedPayload":{"position":{"x":25092.91612723306,"y":21029.662898342172},"targetPosition":{"x":25941.29346921602,"y":20729.236725031777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"823244e2-6d28-4e3a-96ea-42f6a7981bca","savedPayload":{"position":{"x":25941.29346921602,"y":20729.236725031777},"targetPosition":{"x":25731.192641745703,"y":19854.103796673866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"1eabba24-cbd4-4cbf-95e0-c5135349d41d","savedPayload":{"position":{"x":25737.192641745703,"y":19854.103796673866},"targetPosition":{"x":25472.68927821409,"y":19490.04614920514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Position Objects","id":"8854b5f8-8407-4a0d-9099-5456a8e4cced"}}},{"type":"Product Definition","name":"Position Base Asset","config":"{\n \"codeName\": \"Position-Base-Asset-Objects\",\n \"singularVariableName\": \"positionBaseAssetObject\",\n \"pluralVariableName\": \"positionBaseAssetObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a0ff2796-59dd-4aa4-93ed-ba4601b9de5d","savedPayload":{"position":{"x":25627.087807742944,"y":20135.314852469804},"targetPosition":{"x":25519.727086684532,"y":19937.581002120864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"9985d32d-c070-4593-8a2a-ec8bc1c78cbb","savedPayload":{"position":{"x":25543.245990919753,"y":20161.348428578724},"targetPosition":{"x":25519.727086684532,"y":19937.581002120864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"ab0b9bad-a26f-4bd2-9c8a-b54d8e18ba1f","savedPayload":{"position":{"x":25775.608255527106,"y":20604.174236933726},"targetPosition":{"x":25391.920181567766,"y":20369.04988281155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"c7ef2775-8664-4ad2-b1f7-75bcf27f30df","savedPayload":{"position":{"x":25701.679740629956,"y":20695.468349767078},"targetPosition":{"x":25391.920181567766,"y":20369.04988281155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"fab4ea05-53c0-4899-a319-9da3db9c650d","savedPayload":{"position":{"x":25606.64162368459,"y":20764.517583509434},"targetPosition":{"x":25391.920181567766,"y":20369.04988281155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Base Asset","config":"{ \n\"codeName\": \"profitLossInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"807ac077-7ed6-484b-883f-40590c678635","savedPayload":{"position":{"x":25496.970595302922,"y":20806.616346990504},"targetPosition":{"x":25391.920181567766,"y":20369.04988281155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Base Asset","config":"{ \n\"codeName\": \"ROIInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"686128cb-42c2-41c8-8953-461220b65741","savedPayload":{"position":{"x":25380.140554829224,"y":20818.89567905055},"targetPosition":{"x":25391.920181567766,"y":20369.04988281155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Base Asset","config":"{ \n\"codeName\": \"hitFailInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"3989fb34-a5da-416b-8f76-92476fba2d8b","savedPayload":{"position":{"x":25264.113276451,"y":20800.518763502234},"targetPosition":{"x":25391.920181567766,"y":20369.04988281155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Base Asset","config":"{ \n\"codeName\": \"entryTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"fe6f9596-bc0c-44dc-b70e-f7ee436b9b59","savedPayload":{"position":{"x":25156.79582744559,"y":20752.73795677089},"targetPosition":{"x":25391.920181567766,"y":20369.04988281155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Base Asset","config":"{ \n\"codeName\": \"exitTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"b02b1740-a282-4407-93de-68a0f9aa91a4","savedPayload":{"position":{"x":25065.501714612237,"y":20678.80944187374},"targetPosition":{"x":25391.920181567766,"y":20369.04988281155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Rate","config":"{ \n\"codeName\": \"entryTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"1ed47645-109e-41f4-a570-80d8f45cef9f","savedPayload":{"position":{"x":24996.45248086988,"y":20583.771324928373},"targetPosition":{"x":25391.920181567766,"y":20369.04988281155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Rate","config":"{ \n\"codeName\": \"exitTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e408f858-f3b2-4eac-aff7-b8ff5fa5b12c","savedPayload":{"position":{"x":24954.35371738881,"y":20474.100296546705},"targetPosition":{"x":25391.920181567766,"y":20369.04988281155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Candle Close","config":"{ \n\"codeName\": \"candleClose\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\",\n \"childProperty\": \"close\",\n \"decimals\": 10\n}","project":"Superalgos","id":"6d2910e9-5d9a-4cd3-bbba-8e22fc554855","savedPayload":{"position":{"x":24942.074385328764,"y":20357.270256073007},"targetPosition":{"x":25391.920181567766,"y":20369.04988281155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2c81cbf8-d93e-4704-bab2-bc9c0efdb3a4","savedPayload":{"position":{"x":25391.920181567766,"y":20369.04988281155},"targetPosition":{"x":25519.727086684532,"y":19937.581002120864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"b371b039-f6c8-4f60-84cb-52f55c96c84d","savedPayload":{"position":{"x":25519.727086684532,"y":19937.581002120864},"targetPosition":{"x":25472.68927821409,"y":19490.04614920514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Position Base Asset","id":"42a79594-bac8-40bf-a9eb-f13716e15465"}}},{"type":"Product Definition","name":"Position Quoted Asset","config":"{\n \"codeName\": \"Position-Quoted-Asset-Objects\",\n \"singularVariableName\": \"positionQuotedAssetObject\",\n \"pluralVariableName\": \"positionQuotedAssetObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"abab2ab2-3a9b-49bd-8935-9bb01c113761","savedPayload":{"position":{"x":25283.76797546071,"y":20126.064503263813},"targetPosition":{"x":25289.65778882998,"y":19901.141605144312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"40ac7181-100d-4b65-b7fd-a8103cda2300","savedPayload":{"position":{"x":25198.142044137923,"y":20106.689333113896},"targetPosition":{"x":25289.65778882998,"y":19901.141605144312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"07c757d3-bc46-4222-90da-d86cba491ebb","savedPayload":{"position":{"x":25177.960763991276,"y":20606.368864904387},"targetPosition":{"x":24963.23932187445,"y":20210.9011642065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"91d9db38-e2ef-4947-88f0-e2babea49598","savedPayload":{"position":{"x":25068.289735609607,"y":20648.467628385457},"targetPosition":{"x":24963.23932187445,"y":20210.9011642065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"d879d6c0-51b6-47db-a4c9-0ec0f69eefcd","savedPayload":{"position":{"x":24951.45969513591,"y":20660.746960445504},"targetPosition":{"x":24963.23932187445,"y":20210.9011642065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Quoted Asset","config":"{ \n\"codeName\": \"profitLossInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4d007dcc-ea53-474d-833b-d43580ea5a1d","savedPayload":{"position":{"x":24835.432416757685,"y":20642.370044897187},"targetPosition":{"x":24963.23932187445,"y":20210.9011642065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Quoted Asset","config":"{ \n\"codeName\": \"ROIInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"7dea3349-8f02-4ecf-8ab8-6a4ec6d0890e","savedPayload":{"position":{"x":24728.114967752274,"y":20594.58923816584},"targetPosition":{"x":24963.23932187445,"y":20210.9011642065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Quoted Asset","config":"{ \n\"codeName\": \"hitFailInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"093a203a-838d-49af-ad26-2feb6b808bdd","savedPayload":{"position":{"x":24636.820854918922,"y":20520.66072326869},"targetPosition":{"x":24963.23932187445,"y":20210.9011642065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Quoted Asset","config":"{ \n\"codeName\": \"entryTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"7fb1fb82-57c1-4c64-9613-e1938e99a8ab","savedPayload":{"position":{"x":24567.771621176566,"y":20425.622606323326},"targetPosition":{"x":24963.23932187445,"y":20210.9011642065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Quoted Asset","config":"{ \n\"codeName\": \"exitTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"a44876b4-75a0-4fd1-a623-eeba4decd42f","savedPayload":{"position":{"x":24525.672857695496,"y":20315.951577941658},"targetPosition":{"x":24963.23932187445,"y":20210.9011642065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Rate","config":"{ \n\"codeName\": \"entryTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"37888758-269e-48b2-9ca0-5d69d607dacf","savedPayload":{"position":{"x":24513.39352563545,"y":20199.12153746796},"targetPosition":{"x":24963.23932187445,"y":20210.9011642065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Rate","config":"{ \n\"codeName\": \"exitTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"1bd0adb3-e67c-49f2-831c-1fa0c74a85f5","savedPayload":{"position":{"x":24531.770441183766,"y":20083.094259089736},"targetPosition":{"x":24963.23932187445,"y":20210.9011642065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Candle Close","config":"{ \n\"codeName\": \"candleClose\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\",\n \"childProperty\": \"close\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4451d357-0968-462e-82d2-6321f0681397","savedPayload":{"position":{"x":24579.55124791511,"y":19975.776810084324},"targetPosition":{"x":24963.23932187445,"y":20210.9011642065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b46f9e1f-74e0-4858-bb93-d4d85e72c3a9","savedPayload":{"position":{"x":24963.23932187445,"y":20210.9011642065},"targetPosition":{"x":25289.65778882998,"y":19901.141605144312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"a376f02b-a5d2-4079-b5cd-ab7dc894b909","savedPayload":{"position":{"x":25289.65778882998,"y":19901.141605144312},"targetPosition":{"x":25472.68927821409,"y":19490.04614920514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Position Quoted Asset","id":"baed45c2-228e-4679-876e-1867bbef5e9f"}}},{"type":"Product Definition","name":"Stop Loss","config":"{\n \"codeName\": \"Stop-Loss\",\n \"singularVariableName\": \"stopLoss\",\n \"pluralVariableName\": \"stopLosses\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAtCycle\": \"Second\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0ea22a69-e7cb-4fcf-b7ae-4b7233b196c4","savedPayload":{"position":{"x":24985.069453684275,"y":19946.393549716424},"targetPosition":{"x":25102.631630745364,"y":19754.549512736754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"75b13383-2771-4f58-b2c4-ffadad2e9519","savedPayload":{"position":{"x":24920.602807011,"y":19886.80119450256},"targetPosition":{"x":25102.631630745364,"y":19754.549512736754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\",\n \"childProperty\": \"begin\"\n}","project":"Superalgos","id":"048960a1-1de4-4492-b214-37bfc59d661b","savedPayload":{"position":{"x":24752.267743148557,"y":19904.30222507848},"targetPosition":{"x":24880.40175411146,"y":19719.3517581027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\",\n \"childProperty\": \"end\"\n}","project":"Superalgos","id":"f44a0a9b-3abb-4323-be28-c14a677d2d5f","savedPayload":{"position":{"x":24684.709999151426,"y":19830.39110716718},"targetPosition":{"x":24880.40175411146,"y":19719.3517581027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stop Loss","config":"{\n \"codeName\": \"stopLoss\",\n \"isString\": false\n}","project":"Superalgos","id":"1152e12b-354a-49cf-bfe1-dbb54a5471bf","savedPayload":{"position":{"x":24655.911407226005,"y":19734.48728436541},"targetPosition":{"x":24880.40175411146,"y":19719.3517581027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stop Loss Phase","config":"{\n \"codeName\": \"stopLossPhase\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\"\n}","project":"Superalgos","id":"2dc164a2-1df6-40d4-861d-15b0cbc6c627","savedPayload":{"position":{"x":24671.575881694676,"y":19635.58568496226},"targetPosition":{"x":24880.40175411146,"y":19719.3517581027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Initial Value","config":"{\n \"codeName\": \"initialValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\"\n}","project":"Superalgos","id":"8f18d1a9-9ad9-4dff-8091-c419757a3e78","savedPayload":{"position":{"x":24728.600881276743,"y":19553.27498366805},"targetPosition":{"x":24880.40175411146,"y":19719.3517581027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Final Value","config":"{\n \"codeName\": \"finalValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\"\n}","project":"Superalgos","id":"5a762d29-97b5-4b34-87e2-6089dfb259be","savedPayload":{"position":{"x":24815.691905439257,"y":19503.85782434859},"targetPosition":{"x":24880.40175411146,"y":19719.3517581027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04d49dc8-b542-4700-8d07-99323b0f1f62","savedPayload":{"position":{"x":24880.40175411146,"y":19719.3517581027},"targetPosition":{"x":25102.631630745364,"y":19754.549512736754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c18bdc82-216a-4b1d-8850-5c3c9dc2000b","savedPayload":{"position":{"x":25108.631630745364,"y":19754.549512736754},"targetPosition":{"x":25472.68927821409,"y":19490.04614920514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Stop Loss","id":"9b8e4fc2-b62a-4d47-ac5f-08818e463da2"}}},{"type":"Product Definition","name":"Take Profit","config":"{\n \"codeName\": \"Take-Profit\",\n \"singularVariableName\": \"takeProfit\",\n \"pluralVariableName\": \"takeProfits\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAtCycle\": \"Second\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"3cd59aa1-0590-43b6-9fb7-c85276ac132e","savedPayload":{"position":{"x":24827.420574949425,"y":19644.444678733995},"targetPosition":{"x":25025.154425298366,"y":19537.083957675582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"916d5610-87ae-47e7-9067-9a406141e3df","savedPayload":{"position":{"x":24801.386998840506,"y":19560.602861910804},"targetPosition":{"x":25025.154425298366,"y":19537.083957675582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\",\n \"childProperty\": \"begin\"\n}","project":"Superalgos","id":"3f8411d3-5a4f-4243-9f6f-d61cc4a28fb5","savedPayload":{"position":{"x":24646.85404189999,"y":19491.591667050736},"targetPosition":{"x":24850.296583970547,"y":19395.486869689368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\",\n \"childProperty\": \"end\"\n}","project":"Superalgos","id":"437e1ec6-c754-46bb-9942-e05eb056629c","savedPayload":{"position":{"x":24625.30287833176,"y":19393.80388931888},"targetPosition":{"x":24850.296583970547,"y":19395.486869689368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Take Profit","config":"{\n \"codeName\": \"takeProfit\",\n \"isString\": false\n}","project":"Superalgos","id":"81208625-05fb-4e89-bb88-ff16df25bdb7","savedPayload":{"position":{"x":24648.31447753201,"y":19296.349446489796},"targetPosition":{"x":24850.296583970547,"y":19395.486869689368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Take Profit Phase","config":"{\n \"codeName\": \"takeProfitPhase\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\"\n}","project":"Superalgos","id":"4ccb1152-df42-41ef-b8db-da8ee01c6f09","savedPayload":{"position":{"x":24711.331110060382,"y":19218.53038616609},"targetPosition":{"x":24850.296583970547,"y":19395.486869689368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Initial Value","config":"{\n \"codeName\": \"initialValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\"\n}","project":"Superalgos","id":"9fb3dde7-59a6-4149-b1a1-457d17e5bfbd","savedPayload":{"position":{"x":24801.871558996358,"y":19175.759727633023},"targetPosition":{"x":24850.296583970547,"y":19395.486869689368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Final Value","config":"{\n \"codeName\": \"finalValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\"\n}","project":"Superalgos","id":"d391644b-9fa2-4eb2-b5ad-0d5c8ec7efa2","savedPayload":{"position":{"x":24902.003178022427,"y":19176.508724360767},"targetPosition":{"x":24850.296583970547,"y":19395.486869689368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fe08bafa-9d05-4c76-9448-0d21bd36346c","savedPayload":{"position":{"x":24850.296583970547,"y":19395.486869689368},"targetPosition":{"x":25025.154425298366,"y":19537.083957675582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2542c7d0-fa26-4b52-a59a-a3630e52eb89","savedPayload":{"position":{"x":25025.154425298366,"y":19537.083957675582},"targetPosition":{"x":25472.68927821409,"y":19490.04614920514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Take Profit","id":"78a2df79-8912-44d7-a8c7-4b6a0a7235c2"}}}],"productDefinitionFolders":[],"id":"5572f4e4-17f2-4037-b524-97d3cf582a64","savedPayload":{"position":{"x":25472.68927821409,"y":19490.04614920514},"targetPosition":{"x":25655.7207675982,"y":19078.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7e586bb9-0198-431d-83af-cb552d5f6e4e","savedPayload":{"position":{"x":25655.7207675982,"y":19078.950693265968},"targetPosition":{"x":25391.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8c7f3687-b5ae-4a45-bda1-751cb2c55995","savedPayload":{"position":{"x":25391.217404066585,"y":18714.893045797242},"targetPosition":{"x":24941.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}}],"plotters":[{"type":"Plotter","name":"Trading Engine","config":"{ \n\"codeName\": \"Trading-Engine\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Trading Episode Counters","config":"{ \n\"codeName\": \"Trading-Episode-Counters\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Trading Episode Counters","config":"{ \n \"codeName\": \"Trading-Episode-Counters\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"a603cdac-43fd-4ed9-bc66-12c708158f4c","savedPayload":{"position":{"x":25394.435035785104,"y":18214.335562081542},"targetPosition":{"x":25546.044692554773,"y":18380.5869138781},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ed1e5a45-552b-4050-96b6-8f3b7e0e0e42","savedPayload":{"position":{"x":25546.044692554773,"y":18380.5869138781},"targetPosition":{"x":25697.654349324443,"y":18546.83826567466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Strategies","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.strategies","project":"Superalgos","id":"bd3377de-142c-4f1f-a9cd-1e3a92227fb9","savedPayload":{"position":{"x":25568.73070398044,"y":18115.701751712768},"targetPosition":{"x":25633.19252665244,"y":18331.270008693715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3445841f-c443-47ed-ab69-af44aafbd805","savedPayload":{"position":{"x":25633.19252665244,"y":18331.270008693715},"targetPosition":{"x":25697.654349324443,"y":18546.83826567466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Positions","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.positions","project":"Superalgos","id":"a4e07f20-da19-4745-932b-021844ede19f","savedPayload":{"position":{"x":25768.561281280894,"y":18102.459815476497},"targetPosition":{"x":25733.10781530267,"y":18324.64904057558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"960b035e-f799-4e83-81ab-4ce423d081d6","savedPayload":{"position":{"x":25733.10781530267,"y":18324.64904057558},"targetPosition":{"x":25697.654349324443,"y":18546.83826567466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Orders","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.orders","project":"Superalgos","id":"bb28084c-0e1e-4c27-a488-7d8417fb7794","savedPayload":{"position":{"x":25954.34787109093,"y":18177.232481246007},"targetPosition":{"x":25826.001110207686,"y":18362.035373460334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4ba9c931-98ec-4390-a68e-7392b7e2c0e4","savedPayload":{"position":{"x":25826.001110207686,"y":18362.035373460334},"targetPosition":{"x":25697.654349324443,"y":18546.83826567466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hits","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hits","project":"Superalgos","id":"4a2c6bca-66d4-4f1f-a2c9-a034f879032d","savedPayload":{"position":{"x":26089.293160775658,"y":18325.21010553909},"targetPosition":{"x":25893.47375505005,"y":18436.024185606875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"77748bc7-f305-46f7-a51d-4b07420f0174","savedPayload":{"position":{"x":25893.47375505005,"y":18436.024185606875},"targetPosition":{"x":25697.654349324443,"y":18546.83826567466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fails","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.fails","project":"Superalgos","id":"0b4b3713-a461-4a82-a014-496bf0a13a44","savedPayload":{"position":{"x":26146.669580717662,"y":18517.08390503803},"targetPosition":{"x":25922.161965021052,"y":18531.961085356346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8c96317c-9c59-4617-ac0d-80a4475b7044","savedPayload":{"position":{"x":25922.161965021052,"y":18531.961085356346},"targetPosition":{"x":25697.654349324443,"y":18546.83826567466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2a5783fe-af9a-443c-b4e7-32d8bdabff82","savedPayload":{"position":{"x":25697.654349324443,"y":18546.83826567466},"targetPosition":{"x":25613.648021874604,"y":18755.567604648342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"11308192-1761-4746-8567-50f5d50eee37","savedPayload":{"position":{"x":25725.032058770234,"y":18739.761076730018},"targetPosition":{"x":25613.648021874604,"y":18755.567604648342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"5e478e3f-e432-4364-8f2c-2f3b2849848b","savedPayload":{"position":{"x":25613.648021874604,"y":18755.567604648342},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Trading Episode Statistics","config":"{ \n\"codeName\": \"Trading-Episode-Statistics\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Trading Episode Statistics","config":"{ \n \"codeName\": \"Trading-Episode-Statistics\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"8ccceec4-4b55-4002-82fc-5eb003680884","savedPayload":{"position":{"x":25492.140665186413,"y":18236.580023736882},"targetPosition":{"x":25622.605530827106,"y":18419.893740717787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a656f547-17d4-48c8-8a30-110cb1cc8d54","savedPayload":{"position":{"x":25622.605530827106,"y":18419.893740717787},"targetPosition":{"x":25753.0703964678,"y":18603.207457698692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Profit Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.profitLoss","project":"Superalgos","id":"2c744dce-e9bc-4b52-ae5a-88153818efe8","savedPayload":{"position":{"x":25677.054513783554,"y":18159.67438612484},"targetPosition":{"x":25715.062455125677,"y":18381.440921911766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dac1e943-73af-419a-89d3-cf7413d0410d","savedPayload":{"position":{"x":25715.062455125677,"y":18381.440921911766},"targetPosition":{"x":25753.0703964678,"y":18603.207457698692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ROI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ROI","project":"Superalgos","id":"0262af09-67a3-4948-9f03-903b95f75754","savedPayload":{"position":{"x":25877.024240219933,"y":18170.615912914152},"targetPosition":{"x":25815.047318343866,"y":18386.911685306422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c5ddf4c7-c06c-48cb-b474-aa1049dda30f","savedPayload":{"position":{"x":25815.047318343866,"y":18386.911685306422},"targetPosition":{"x":25753.0703964678,"y":18603.207457698692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Ratio","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitRatio","project":"Superalgos","id":"2e63251f-fa85-44c1-a977-6ea9b1289de4","savedPayload":{"position":{"x":26052.443387707066,"y":18267.23750053518},"targetPosition":{"x":25902.756892087433,"y":18435.222479116936},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f4dba581-f375-45b7-b3e9-8397b74c14f9","savedPayload":{"position":{"x":25902.756892087433,"y":18435.222479116936},"targetPosition":{"x":25753.0703964678,"y":18603.207457698692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Annualized Rate Of Return","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.annualizedRateOfReturn","project":"Superalgos","id":"3b65f366-e8c3-4298-9617-9d7cd121a0fc","savedPayload":{"position":{"x":26168.56804271047,"y":18430.402058573556},"targetPosition":{"x":25960.819219589135,"y":18516.804758136124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0ddc2941-7f32-43c4-a2ac-33933f7176ea","savedPayload":{"position":{"x":25960.819219589135,"y":18516.804758136124},"targetPosition":{"x":25753.0703964678,"y":18603.207457698692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFail","project":"Superalgos","id":"1fda27ad-cc5a-441a-8d2e-d0e820d994eb","savedPayload":{"position":{"x":26202.398293131297,"y":18627.792845227807},"targetPosition":{"x":25977.734344799548,"y":18615.50015146325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aa06aaaa-c76e-4cb7-b2a4-752703cd91d8","savedPayload":{"position":{"x":25977.734344799548,"y":18615.50015146325},"targetPosition":{"x":25753.0703964678,"y":18603.207457698692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6ea43033-418d-4d87-b640-02010679aa8b","savedPayload":{"position":{"x":25753.0703964678,"y":18603.207457698692},"targetPosition":{"x":25644.517028136182,"y":18800.289080951243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"a22754c1-aa31-4bef-8d7f-4b0df8b2c6e5","savedPayload":{"position":{"x":25756.99421639698,"y":18798.02366245888},"targetPosition":{"x":25644.517028136182,"y":18800.289080951243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"6ce18a43-2e6a-452e-a72d-1c56a58d3f81","savedPayload":{"position":{"x":25644.517028136182,"y":18800.289080951243},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Candle","config":"{ \n\"codeName\": \"Current-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"db2a5867-c3c9-40ae-86f2-19845ca4bffe","savedPayload":{"position":{"x":25772.359118971082,"y":18802.233894264013},"targetPosition":{"x":25669.770386296972,"y":18848.405334877447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"31789d43-d608-4eeb-a3ff-338a99074045","savedPayload":{"position":{"x":25669.770386296972,"y":18848.405334877447},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Episode Balances","config":"{ \n\"codeName\": \"Current-Balance\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Current Balance","config":"{ \n \"codeName\": \"Current-Balance\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Balance Base Asset","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.balanceBaseAsset","project":"Superalgos","id":"fcc203c4-9d04-4ac2-8740-75deaee8e2a4","savedPayload":{"position":{"x":26111.197603362525,"y":18536.394795062704},"targetPosition":{"x":26144.28573143284,"y":18701.86907790086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ab01ee28-2095-4f64-8162-173c6aa8d32b","savedPayload":{"position":{"x":26144.28573143284,"y":18701.86907790086},"targetPosition":{"x":26177.373859503154,"y":18867.343360739018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Balance Quoted Asset","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.balanceQuotedAsset","project":"Superalgos","id":"37fd5f0b-0bbf-419b-9d30-e54e0569937a","savedPayload":{"position":{"x":26318.36282983316,"y":18560.702919431475},"targetPosition":{"x":26247.868344668157,"y":18714.023140085246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"01cbacca-656b-4437-be3c-dcf8f10d7ac8","savedPayload":{"position":{"x":26247.868344668157,"y":18714.023140085246},"targetPosition":{"x":26177.373859503154,"y":18867.343360739018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Both Assets in Base Asset","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.balanceBaseAsset + (record.balanceQuotedAsset / candle.close)","project":"Superalgos","id":"d3dc0826-e399-4967-85c7-bc0fe04dbc4a","savedPayload":{"position":{"x":26471.675061676586,"y":18702.13727005446},"targetPosition":{"x":26324.52446058987,"y":18784.74031539674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"809c4813-6f76-4591-ac3a-b9a38d3012b4","savedPayload":{"position":{"x":26324.52446058987,"y":18784.74031539674},"targetPosition":{"x":26177.373859503154,"y":18867.343360739018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Both Assets in Quoted Asset","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.balanceQuotedAsset + (record.balanceBaseAsset * candle.close)","project":"Superalgos","id":"063de6a6-f51c-4531-9de5-1f6095e052ef","savedPayload":{"position":{"x":26512.574237219713,"y":18906.674732170453},"targetPosition":{"x":26344.974048361433,"y":18887.009046454736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32d1a407-2032-4c99-a96a-82ded9d663a3","savedPayload":{"position":{"x":26344.974048361433,"y":18887.009046454736},"targetPosition":{"x":26177.373859503154,"y":18867.343360739018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cb03ef16-522f-4189-ab3a-b410bf1f4176","savedPayload":{"position":{"x":26177.373859503154,"y":18867.343360739018},"targetPosition":{"x":26062.95106626077,"y":18991.3755617459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"27e334d8-0ec2-4047-a961-af4c5fcf8d32","savedPayload":{"position":{"x":26227.57749984122,"y":19028.452506962334},"targetPosition":{"x":26062.95106626077,"y":18991.3755617459},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"e5d9e3e1-d1f4-4493-b452-33fe49c81228","savedPayload":{"position":{"x":25689.039845529376,"y":18899.214723096346},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Distance To Trading Event","config":"{ \n\"codeName\": \"Distance-To-Trading-Event\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"dc45b078-aeee-40bf-8f6d-f8b12a57494f","savedPayload":{"position":{"x":25812.701653258297,"y":18931.697638560865},"targetPosition":{"x":25702.044413726744,"y":18951.97633031493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"56eb7de2-0281-404a-bd4d-34ac113e2325","savedPayload":{"position":{"x":25702.044413726744,"y":18951.97633031493},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Strategy","config":"{ \n\"codeName\": \"Current-Strategy\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"97c36937-1cdc-42ce-b886-ca8220b14025","savedPayload":{"position":{"x":25820.889204851148,"y":18999.128192531152},"targetPosition":{"x":25708.594455001024,"y":19005.920773491158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"a3c31000-1b82-4fe9-ae56-6d5893582b16","savedPayload":{"position":{"x":25708.594455001024,"y":19005.920773491158},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Last Strategy","config":"{ \n\"codeName\": \"Last-Strategy\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"c242da84-b00b-4900-ad95-b25a57ef9603","savedPayload":{"position":{"x":25820.889204851148,"y":19067.054002131223},"targetPosition":{"x":25708.594455001024,"y":19060.261421171217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"028aaa23-630c-4aa6-a168-6b2a128b1a83","savedPayload":{"position":{"x":25708.594455001024,"y":19060.261421171217},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Position","config":"{ \n\"codeName\": \"Current-Position\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"daf7ee4e-434b-48df-af3b-b17489fe6a12","savedPayload":{"position":{"x":25812.701653258297,"y":19134.48455610151},"targetPosition":{"x":25702.044413726744,"y":19114.205864347445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"0d2212c7-07bb-4c41-94fb-00844415ba5e","savedPayload":{"position":{"x":25702.044413726744,"y":19114.205864347445},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Last Position","config":"{ \n\"codeName\": \"Last-Position\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"c4473b0f-99f8-4129-b8ee-1f6a988e9440","savedPayload":{"position":{"x":25796.445943011586,"y":19200.43656512474},"targetPosition":{"x":25689.039845529376,"y":19166.96747156603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"08c88b9c-70f1-49ff-aa16-21f2bc1c0ba1","savedPayload":{"position":{"x":25689.039845529376,"y":19166.96747156603},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Previous Candle","config":"{ \n\"codeName\": \"Previous-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"559cabae-7e0e-4ff8-b1dd-8f822421fe6e","savedPayload":{"position":{"x":25772.359118971082,"y":19263.948300398362},"targetPosition":{"x":25669.770386296972,"y":19217.776859784928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"076dcee2-2923-4455-8697-263649515a3b","savedPayload":{"position":{"x":25669.770386296972,"y":19217.776859784928},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Market Buy Orders","config":"{ \n\"codeName\": \"Market-Buy-Orders\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"actualRate\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"8ed02a94-4fce-4314-ab0a-6642e85bdca3","savedPayload":{"position":{"x":25740.792421270096,"y":19324.09361780612},"targetPosition":{"x":25644.517028136182,"y":19265.893113711132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"50d624c9-9a6e-4d57-a147-29d5c004b3f2","savedPayload":{"position":{"x":25644.517028136182,"y":19265.893113711132},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Market Sell Orders","config":"{ \n\"codeName\": \"Market-Sell-Orders\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"actualRate\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"15dc7163-1703-4cad-9253-d48d7bb01800","savedPayload":{"position":{"x":25702.206163443123,"y":19379.995463184743},"targetPosition":{"x":25613.648021874604,"y":19310.614590014033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"4f84a1a5-f9cd-4b9d-9d91-661ba912e2ca","savedPayload":{"position":{"x":25613.648021874604,"y":19310.614590014033},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Limit Buy Orders","config":"{ \n\"codeName\": \"Limit-Buy-Orders\",\n \"useRateAtMousePosition\": true\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"b89ff555-961b-4190-b874-4968e26db1b4","savedPayload":{"position":{"x":25657.163020017964,"y":19430.83866174862},"targetPosition":{"x":25577.613507134476,"y":19351.289148865133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"17ec46bd-e5c0-48d5-a3b6-e108cc835f17","savedPayload":{"position":{"x":25577.613507134476,"y":19351.289148865133},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Limit Sell Orders","config":"{ \n\"codeName\": \"Limit-Sell-Orders\",\n \"useRateAtMousePosition\": true\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"fe4a4590-f68f-454e-84ba-96ae9cef3b70","savedPayload":{"position":{"x":25606.319821454086,"y":19475.88180517378},"targetPosition":{"x":25536.938948283376,"y":19387.32366360526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"1ec8da3f-8749-430d-8ad9-35fffc0d61ec","savedPayload":{"position":{"x":25536.938948283376,"y":19387.32366360526},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Strategy Open Stage","config":"{ \n\"codeName\": \"Current-Strategy-Open-Stage\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"eca15627-7af5-4aef-9095-90c42831202c","savedPayload":{"position":{"x":25550.417976075463,"y":19514.468063000753},"targetPosition":{"x":25492.217471980475,"y":19418.19266986684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"f759a457-fc11-43a8-bf2c-6ebf1db0e78d","savedPayload":{"position":{"x":25492.217471980475,"y":19418.19266986684},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Strategy Close Stage","config":"{ \n\"codeName\": \"Current-Strategy-Close-Stage\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"59cb7431-a489-4ab2-ba79-78996e8630c8","savedPayload":{"position":{"x":25490.272658667705,"y":19546.03476070174},"targetPosition":{"x":25444.10121805427,"y":19443.44602802763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"6be13ce1-0fae-4355-99b2-dc8db000251f","savedPayload":{"position":{"x":25444.10121805427,"y":19443.44602802763},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Strategy Trigger Stage","config":"{ \n\"codeName\": \"Current-Strategy-Trigger-Stage\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"aec5592e-57b9-4256-88d8-861534624284","savedPayload":{"position":{"x":25426.760923394082,"y":19570.121584742243},"targetPosition":{"x":25393.291829835372,"y":19462.715487260033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"823fa15f-bf29-4784-a5f8-5b82d2ed7645","savedPayload":{"position":{"x":25393.291829835372,"y":19462.715487260033},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Strategy Manage Stage","config":"{ \n\"codeName\": \"Current-Strategy-Manage-Stage\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"c060b2bf-e594-4bb5-b0d6-d48f5c03d2e0","savedPayload":{"position":{"x":25360.808914370853,"y":19586.377294988954},"targetPosition":{"x":25340.530222616788,"y":19475.7200554574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"34a912c3-4b0f-4f21-9736-4ef47cd0544d","savedPayload":{"position":{"x":25340.530222616788,"y":19475.7200554574},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Episode","config":"{ \n\"codeName\": \"Current-Position\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"808e43e8-468e-4d37-b2c2-210b902f2d6b","savedPayload":{"position":{"x":25293.378360400566,"y":19594.564846581805},"targetPosition":{"x":25286.58577944056,"y":19482.27009673168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"bf241117-1c2c-470c-a172-b86b2befa9a2","savedPayload":{"position":{"x":25286.58577944056,"y":19482.27009673168},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Episode Base Asset","config":"{ \n\"codeName\": \"Previous-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"3e32e9c9-41c5-44c8-85ae-2ef6ee053135","savedPayload":{"position":{"x":25225.452550800495,"y":19594.564846581805},"targetPosition":{"x":25232.2451317605,"y":19482.27009673168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"a99b25e6-7aca-41a2-aacc-1911aac2ee3e","savedPayload":{"position":{"x":25232.2451317605,"y":19482.27009673168},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Episode Quoted Asset","config":"{ \n\"codeName\": \"Previous-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"82cc01b1-b354-4e30-a1a0-7bb378dc322c","savedPayload":{"position":{"x":25158.021996830208,"y":19586.377294988954},"targetPosition":{"x":25178.300688584273,"y":19475.7200554574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"ede92318-db13-4951-83b1-11fc0345d677","savedPayload":{"position":{"x":25178.300688584273,"y":19475.7200554574},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Last Market Order","config":"{ \n\"codeName\": \"Previous-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"0bbba556-73d6-43f9-bf55-17e83ea9ab40","savedPayload":{"position":{"x":25092.06998780698,"y":19570.121584742243},"targetPosition":{"x":25125.53908136569,"y":19462.715487260033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"05aa37c8-9f6d-4276-96a6-3123707e7686","savedPayload":{"position":{"x":25125.53908136569,"y":19462.715487260033},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Last Limit Order","config":"{ \n\"codeName\": \"Previous-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"c89abeeb-79ff-4f3f-a031-091b10f8037a","savedPayload":{"position":{"x":25028.558252533356,"y":19546.03476070174},"targetPosition":{"x":25074.72969314679,"y":19443.44602802763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"2284d48f-cf52-4277-b81e-c62afef88b71","savedPayload":{"position":{"x":25074.72969314679,"y":19443.44602802763},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Stop Loss","config":"{ \n\"codeName\": \"Stop-Loss\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"097b8ec2-54f5-4fca-8de3-1cd4ac9eb05e","savedPayload":{"position":{"x":24968.412935125598,"y":19514.468063000753},"targetPosition":{"x":25026.613439220586,"y":19418.19266986684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"cdafbd38-ade8-4548-b951-b404c1bd7885","savedPayload":{"position":{"x":25026.613439220586,"y":19418.19266986684},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Take Profit","config":"{ \n\"codeName\": \"Take-Profit\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"a480ca2f-187a-429a-915b-e8f6a1913bc0","savedPayload":{"position":{"x":24912.511089746975,"y":19475.88180517378},"targetPosition":{"x":24981.891962917685,"y":19387.32366360526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"d06674eb-36cf-4048-bd99-31712b0523a0","savedPayload":{"position":{"x":24981.891962917685,"y":19387.32366360526},"targetPosition":{"x":25259.41545560053,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ebb03c87-e87e-4f4b-8763-361854776287","savedPayload":{"position":{"x":25259.41545560053,"y":19033.091097331187},"targetPosition":{"x":24941.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Trading System","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Highlights","config":"{ \n\"codeName\": \"Highlights\",\n\"connectTo\": \"Trading System\"\n}","project":"Superalgos","panels":[],"nodesHighlights":{"type":"Nodes Highlights","name":"New Nodes Highlights","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"fa39a76d-1b97-41a2-ab18-f33c2f31fded","savedPayload":{"position":{"x":25797.168268732225,"y":19443.008340734694},"targetPosition":{"x":25369.192836399405,"y":19303.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d979c9f0-530a-41d3-a357-b57a3e4f2201","savedPayload":{"position":{"x":25369.192836399405,"y":19303.950693265968},"targetPosition":{"x":24941.217404066585,"y":19164.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Values","config":"{ \n\"codeName\": \"Values\",\n\"connectTo\": \"Trading System\"\n}","project":"Superalgos","panels":[],"nodesValues":{"type":"Nodes Values","name":"New Nodes Values","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"f42e5006-d8ec-437a-8906-53d7ce68b79c","savedPayload":{"position":{"x":25669.332699004037,"y":19693.89977286047},"targetPosition":{"x":25305.27505153531,"y":19429.396409328856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"476925ed-e2ac-443d-82f3-501b64ca6c87","savedPayload":{"position":{"x":25305.27505153531,"y":19429.396409328856},"targetPosition":{"x":24941.217404066585,"y":19164.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Errors","config":"{\n \"codeName\": \"Errors\",\n \"connectTo\": \"Trading System\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"errors\",\n \"rateInArrayAtIndex\": 3,\n \"rateOffset\": -100,\n \"rateOffsetBasedOnArrayIndex\": -50,\n \"rateRange\": 20\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"Errors","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Error #1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[0][3]","project":"Superalgos","id":"733b921d-8f51-4bca-b0b5-b0d9a1f9c734","savedPayload":{"position":{"x":25825.41848078168,"y":18652.57179987533},"targetPosition":{"x":25872.45628925212,"y":19100.106652791055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f189c006-3adb-4b21-8b9d-342f94e7640f","savedPayload":{"position":{"x":25872.45628925212,"y":19100.106652791055},"targetPosition":{"x":25919.494097722563,"y":19547.64150570678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Error #2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[1][3]","project":"Superalgos","id":"afb68973-461d-4a1a-a547-ccc2023bab56","savedPayload":{"position":{"x":26285.557076490782,"y":18725.450593828435},"targetPosition":{"x":26102.525587106673,"y":19136.546049767607},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2dfd59cd-d4ef-4f71-8507-ff1d891ab697","savedPayload":{"position":{"x":26102.525587106673,"y":19136.546049767607},"targetPosition":{"x":25919.494097722563,"y":19547.64150570678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Error #3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[2][3]","project":"Superalgos","id":"130b37a1-572a-4370-95ea-a7faf7b546a6","savedPayload":{"position":{"x":26647.609392660015,"y":19018.63477864355},"targetPosition":{"x":26283.55174519129,"y":19283.138142175165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c78f507a-32d5-49b0-93c4-e433aaf32579","savedPayload":{"position":{"x":26283.55174519129,"y":19283.138142175165},"targetPosition":{"x":25919.494097722563,"y":19547.64150570678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Error #4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[3][3]","project":"Superalgos","id":"979f28e7-49cd-4467-87a8-e81244a74145","savedPayload":{"position":{"x":26814.56380355401,"y":19453.565888765894},"targetPosition":{"x":26367.028950638287,"y":19500.603697236336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"722460d3-2849-4008-9437-c59301966ea7","savedPayload":{"position":{"x":26367.028950638287,"y":19500.603697236336},"targetPosition":{"x":25919.494097722563,"y":19547.64150570678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Error #5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[4][3]","project":"Superalgos","id":"4ecd591e-aa20-44db-a853-49bd2eed52ee","savedPayload":{"position":{"x":26741.685009600908,"y":19913.704484474998},"targetPosition":{"x":26330.589553661735,"y":19730.67299509089},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0d37d958-e01a-4082-8b7b-b97e807a4864","savedPayload":{"position":{"x":26330.589553661735,"y":19730.67299509089},"targetPosition":{"x":25919.494097722563,"y":19547.64150570678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e50625b6-8b4d-4ae2-960b-b45769639162","savedPayload":{"position":{"x":25919.494097722563,"y":19547.64150570678},"targetPosition":{"x":25555.436450253837,"y":19812.144869238393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[],"images":[{"type":"Image","name":"Error #1","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 30\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[0] !== undefined","project":"Superalgos","id":"956eb8d9-f297-4783-ac35-625b8d7b1c67","savedPayload":{"position":{"x":26117.144730163793,"y":19476.02145061519},"targetPosition":{"x":25975.54764217758,"y":19650.87929194301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": -100\n}","project":"Superalgos","id":"1da7aa3c-77fb-4d0d-8895-e1c231dcca90","savedPayload":{"position":{"x":26197.777518811483,"y":19686.077046577062},"targetPosition":{"x":25975.54764217758,"y":19650.87929194301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #1","id":"f189c006-3adb-4b21-8b9d-342f94e7640f"}}},"id":"bd5f7149-372f-4a70-94df-4727b3cd3b32","savedPayload":{"position":{"x":25975.54764217758,"y":19650.87929194301},"targetPosition":{"x":25555.436450253837,"y":19812.144869238393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Error #2","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 25\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[1] !== undefined","project":"Superalgos","id":"185083c8-855a-4ccb-ab50-7d4e2d3c3bb3","savedPayload":{"position":{"x":26185.000126903924,"y":19632.855379002143},"targetPosition":{"x":26002.97130316956,"y":19765.10706076795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": -150\n}","project":"Superalgos","id":"d774a55f-70f2-41f2-b6e7-18066a4118c6","savedPayload":{"position":{"x":26208.519031139145,"y":19856.622805460007},"targetPosition":{"x":26002.97130316956,"y":19765.10706076795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #2","id":"2dfd59cd-d4ef-4f71-8507-ff1d891ab697"}}},"id":"f34ea534-6d63-4839-aede-eaa2c3b19919","savedPayload":{"position":{"x":26002.97130316956,"y":19765.10706076795},"targetPosition":{"x":25555.436450253837,"y":19812.144869238393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Error #3","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[2] !== undefined","project":"Superalgos","id":"e1df910f-84e4-4a86-9d11-e17a135d1793","savedPayload":{"position":{"x":26209.95179948352,"y":19801.9075898588},"targetPosition":{"x":25999.89620352165,"y":19882.540378506495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": -200\n}","project":"Superalgos","id":"f7de0684-3ae0-4e31-b944-97b263adb8b7","savedPayload":{"position":{"x":26174.75404484947,"y":20024.13746649271},"targetPosition":{"x":25999.89620352165,"y":19882.540378506495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #3","id":"c78f507a-32d5-49b0-93c4-e433aaf32579"}}},"id":"c4c1bef4-cad9-4463-87b6-16c8f16be89b","savedPayload":{"position":{"x":25999.89620352165,"y":19882.540378506495},"targetPosition":{"x":25555.436450253837,"y":19812.144869238393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Error #4","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 15\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[3] !== undefined","project":"Superalgos","id":"a0c6bc59-9b12-479e-af28-4782b770d743","savedPayload":{"position":{"x":26190.29933265087,"y":19971.65745438728},"targetPosition":{"x":25966.53190619301,"y":19995.176358622502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": -250\n}","project":"Superalgos","id":"103d4ce2-29e7-4a0d-80b7-f9e0eeebebe3","savedPayload":{"position":{"x":26098.783587958816,"y":20177.205182356865},"targetPosition":{"x":25966.53190619301,"y":19995.176358622502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #4","id":"722460d3-2849-4008-9437-c59301966ea7"}}},"id":"3b62091e-13ad-4507-ade7-81f64d041f65","savedPayload":{"position":{"x":25966.53190619301,"y":19995.176358622502},"targetPosition":{"x":25555.436450253837,"y":19812.144869238393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Error #5","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[4] !== undefined","project":"Superalgos","id":"dc750665-001d-46c5-ac80-2441d3877226","savedPayload":{"position":{"x":26127.38200954338,"y":20130.536799844875},"targetPosition":{"x":25905.152132909476,"y":20095.33904521082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": -300\n}","project":"Superalgos","id":"6165f0a7-4b05-4077-84f4-9cbea0c09417","savedPayload":{"position":{"x":25985.78492155717,"y":20305.39464117269},"targetPosition":{"x":25905.152132909476,"y":20095.33904521082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #5","id":"0d37d958-e01a-4082-8b7b-b97e807a4864"}}},"id":"dbad1560-3694-46ee-9133-a3358489e5a0","savedPayload":{"position":{"x":25905.152132909476,"y":20095.33904521082},"targetPosition":{"x":25555.436450253837,"y":19812.144869238393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"Error #1","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[0] !== undefined","project":"Superalgos","id":"ac81077c-8c42-4c4c-b443-5faa1ad3b3b4","savedPayload":{"position":{"x":26044.93981378545,"y":20176.20251670712},"targetPosition":{"x":25819.93981378545,"y":20176.20251670712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": -135\n}","project":"Superalgos","id":"5d4e3be6-6a2b-4cca-8086-c2db9a75bd23","savedPayload":{"position":{"x":26001.968637519814,"y":20308.454198472926},"targetPosition":{"x":25819.93981378545,"y":20176.20251670712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #1","id":"f189c006-3adb-4b21-8b9d-342f94e7640f"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"1","project":"Superalgos","id":"adc6d425-cfa0-47e9-a67d-444a112ee3c2","savedPayload":{"position":{"x":25889.468637519814,"y":20390.190232873527},"targetPosition":{"x":25819.93981378545,"y":20176.20251670712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"0907179a-16cc-4682-83af-2e7e0ad4d7ba","savedPayload":{"position":{"x":25750.41099005109,"y":20390.190232873527},"targetPosition":{"x":25819.93981378545,"y":20176.20251670712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ead7ed8a-332d-4ab1-b53e-1e9e0f705a81","savedPayload":{"position":{"x":25819.93981378545,"y":20176.20251670712},"targetPosition":{"x":25555.436450253837,"y":19812.144869238393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Error #2","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[1] !== undefined","project":"Superalgos","id":"f92d815c-65a8-419a-b903-28db5e349bf1","savedPayload":{"position":{"x":25934.035338464262,"y":20290.490346310202},"targetPosition":{"x":25716.70202754922,"y":20232.256061162134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": -180\n}","project":"Superalgos","id":"c5f1d9c0-570a-4eb7-9316-72cabe1aa0ec","savedPayload":{"position":{"x":25858.299115535436,"y":20407.113902489953},"targetPosition":{"x":25716.70202754922,"y":20232.256061162134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #2","id":"2dfd59cd-d4ef-4f71-8507-ff1d891ab697"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"2","project":"Superalgos","id":"2d7c6286-5f78-4242-8a74-15b6d6ddb166","savedPayload":{"position":{"x":25728.477617703884,"y":20456.94770648191},"targetPosition":{"x":25716.70202754922,"y":20232.256061162134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"fa0f7605-abca-4c72-a67b-1677456c1997","savedPayload":{"position":{"x":25594.15824467084,"y":20420.956938949854},"targetPosition":{"x":25716.70202754922,"y":20232.256061162134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c37ea548-51b4-4645-8af2-cfe9b47b142c","savedPayload":{"position":{"x":25716.70202754922,"y":20232.256061162134},"targetPosition":{"x":25555.436450253837,"y":19812.144869238393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Error #3","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[2] !== undefined","project":"Superalgos","id":"6ddc9257-082c-464b-a636-f8ec81154254","savedPayload":{"position":{"x":25797.32997457578,"y":20372.179722154116},"targetPosition":{"x":25602.47425872428,"y":20259.679722154116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": -225\n}","project":"Superalgos","id":"d983d03f-834b-404d-95fe-fb7bf53345a3","savedPayload":{"position":{"x":25693.990003416337,"y":20465.2274501237},"targetPosition":{"x":25602.47425872428,"y":20259.679722154116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #3","id":"c78f507a-32d5-49b0-93c4-e433aaf32579"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"3","project":"Superalgos","id":"6ef28222-1bb6-4a4e-9062-20c11588dc72","savedPayload":{"position":{"x":25555.694128290284,"y":20479.762932319223},"targetPosition":{"x":25602.47425872428,"y":20259.679722154116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"16c8f58a-e6a8-4972-971f-8ff352207469","savedPayload":{"position":{"x":25435.266672991867,"y":20410.23410858486},"targetPosition":{"x":25602.47425872428,"y":20259.679722154116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0c3465cb-f509-4383-9730-f5d6b73a3014","savedPayload":{"position":{"x":25602.47425872428,"y":20259.679722154116},"targetPosition":{"x":25555.436450253837,"y":19812.144869238393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Error #4","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[3] !== undefined","project":"Superalgos","id":"1931c52d-52b2-4b5d-9f68-1116e9616d09","savedPayload":{"position":{"x":25644.139966752708,"y":20415.70364827318},"targetPosition":{"x":25485.040940985735,"y":20256.604622506205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": -270\n}","project":"Superalgos","id":"b097d5f5-4817-4d5b-b0e1-cd7859328d92","savedPayload":{"position":{"x":25520.238695619788,"y":20478.83449914011},"targetPosition":{"x":25485.040940985735,"y":20256.604622506205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #4","id":"722460d3-2849-4008-9437-c59301966ea7"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"4","project":"Superalgos","id":"2faaa1f5-ae11-49b3-9f9a-8c2388c99fd3","savedPayload":{"position":{"x":25382.893078544337,"y":20457.081090448588},"targetPosition":{"x":25485.040940985735,"y":20256.604622506205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"37c3a29e-eddb-40cb-a06c-704f998d5311","savedPayload":{"position":{"x":25284.564473043352,"y":20358.752484947603},"targetPosition":{"x":25485.040940985735,"y":20256.604622506205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"644168bf-4b65-4019-8308-1001c13b4f7a","savedPayload":{"position":{"x":25485.040940985735,"y":20256.604622506205},"targetPosition":{"x":25555.436450253837,"y":19812.144869238393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Error #5","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[4] !== undefined","project":"Superalgos","id":"6c6b8878-fc01-4280-b09d-a0dd2a9efee3","savedPayload":{"position":{"x":25484.904960869728,"y":20418.096041029065},"targetPosition":{"x":25372.404960869728,"y":20223.240325177565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": -315\n}","project":"Superalgos","id":"53be9549-3aed-4968-835b-ee0592d1fc3f","savedPayload":{"position":{"x":25348.886056634507,"y":20447.007751635425},"targetPosition":{"x":25372.404960869728,"y":20223.240325177565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #5","id":"0d37d958-e01a-4082-8b7b-b97e807a4864"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"5","project":"Superalgos","id":"1ff07e3a-4928-4e9f-b2d1-4ddc4487d462","savedPayload":{"position":{"x":25221.850574438984,"y":20390.447910909978},"targetPosition":{"x":25372.404960869728,"y":20223.240325177565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"9e594aea-79ee-4ca1-8bec-ba63b744ce89","savedPayload":{"position":{"x":25152.32175070462,"y":20270.02045561156},"targetPosition":{"x":25372.404960869728,"y":20223.240325177565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9d1ea8f6-dce7-44c6-ab1e-3b941ef3b095","savedPayload":{"position":{"x":25372.404960869728,"y":20223.240325177565},"targetPosition":{"x":25555.436450253837,"y":19812.144869238393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c2dcdcbc-31bf-4a44-b47f-a2e1bba10db9","savedPayload":{"position":{"x":25555.436450253837,"y":19812.144869238393},"targetPosition":{"x":25205.7207675982,"y":19528.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[],"nodesErrors":{"type":"Nodes Errors","name":"New Nodes Errors","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"c814ea79-0fa6-44bb-a636-d46d7b3720c4","savedPayload":{"position":{"x":25366.986344893583,"y":19949.06188518971},"targetPosition":{"x":25205.7207675982,"y":19528.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"64684730-d049-4d3c-8013-b48c5438417e","savedPayload":{"position":{"x":25205.7207675982,"y":19528.950693265968},"targetPosition":{"x":24941.217404066585,"y":19164.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Status","config":"{ \n\"codeName\": \"Status\",\n\"connectTo\": \"Trading System\"\n}","project":"Superalgos","panels":[],"nodesStatus":{"type":"Nodes Status","name":"New Nodes Status","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"2b1290d8-41ff-48a3-a11b-45f1228e2a84","savedPayload":{"position":{"x":25219.332699004037,"y":20020.84391046288},"targetPosition":{"x":25080.27505153531,"y":19592.86847813006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0437448d-8740-496b-8fce-d3804be81a2b","savedPayload":{"position":{"x":25080.27505153531,"y":19592.86847813006},"targetPosition":{"x":24941.217404066585,"y":19164.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Progress","config":"{ \n\"codeName\": \"Progress\",\n\"connectTo\": \"Trading System\"\n}","project":"Superalgos","panels":[],"nodesProgress":{"type":"Nodes Progress","name":"New Nodes Progress","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"00c9d7bc-295f-48b6-81a0-71b6bc0b6299","savedPayload":{"position":{"x":24941.217404066585,"y":20064.893045797242},"targetPosition":{"x":24941.217404066585,"y":19614.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"99aecc8d-2bc4-4748-b642-78888c2d35eb","savedPayload":{"position":{"x":24941.217404066585,"y":19614.893045797242},"targetPosition":{"x":24941.217404066585,"y":19164.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Running","config":"{ \n\"codeName\": \"Running\",\n\"connectTo\": \"Trading System\"\n}","project":"Superalgos","panels":[],"nodesRunning":{"type":"Nodes Running","name":"New Nodes Running","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"3ef03483-8d69-452c-9f56-984574b79e32","savedPayload":{"position":{"x":24663.102109129133,"y":20020.84391046288},"targetPosition":{"x":24802.15975659786,"y":19592.86847813006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ac1e8218-af24-491f-a552-736d83d68c01","savedPayload":{"position":{"x":24802.15975659786,"y":19592.86847813006},"targetPosition":{"x":24941.217404066585,"y":19164.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Announcements","config":"{ \n\"codeName\": \"Announcements\",\n\"connectTo\": \"Trading System\"\n}","project":"Superalgos","panels":[],"nodesAnnouncements":{"type":"Nodes Announcements","name":"New Nodes Announcements","project":"Superalgos","id":"197785fc-72c7-46ef-83bf-a095b01cbfec","savedPayload":{"position":{"x":24412.210677003357,"y":19893.008340734694},"targetPosition":{"x":24676.71404053497,"y":19528.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0a3b8bea-749a-48ce-8b53-e4a731555b98","savedPayload":{"position":{"x":24676.71404053497,"y":19528.950693265968},"targetPosition":{"x":24941.217404066585,"y":19164.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Warnings","config":"{\n \"codeName\": \"Warnings\",\n \"connectTo\": \"Trading System\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"warnings\",\n \"rateInArrayAtIndex\": 3,\n \"rateOffset\": 100,\n \"rateOffsetBasedOnArrayIndex\": 50,\n \"rateRange\": 20\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"Warnings","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Warning #1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[0][3]","project":"Superalgos","id":"955dbb62-9da0-474a-b938-10447c4a54ac","savedPayload":{"position":{"x":24863.115242270665,"y":20218.141898864807},"targetPosition":{"x":24603.307621135333,"y":20068.141898864807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c17d208d-1b72-4cd2-b134-ee8c259e314d","savedPayload":{"position":{"x":24603.307621135333,"y":20068.141898864807},"targetPosition":{"x":24343.5,"y":19918.141898864807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Warning #2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[1][3]","project":"Superalgos","id":"4e8e1cf7-9418-4529-a7a5-e27d89caeb09","savedPayload":{"position":{"x":24643.5,"y":20437.757141135473},"targetPosition":{"x":24493.5,"y":20177.94952000014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"03218a15-cf40-4310-923c-a31620f9a945","savedPayload":{"position":{"x":24493.5,"y":20177.94952000014},"targetPosition":{"x":24343.5,"y":19918.141898864807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Warning #3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[2][3]","project":"Superalgos","id":"66881529-631d-4246-a743-a307bc9d6aa2","savedPayload":{"position":{"x":24343.5,"y":20518.141898864807},"targetPosition":{"x":24343.5,"y":20218.141898864807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"249c359c-5ca3-4a9e-be87-b8794ae526f2","savedPayload":{"position":{"x":24343.5,"y":20218.141898864807},"targetPosition":{"x":24343.5,"y":19918.141898864807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Warning #4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[3][3]","project":"Superalgos","id":"ac67add0-20b7-4c03-b678-8178339c01d5","savedPayload":{"position":{"x":24043.5,"y":20437.757141135473},"targetPosition":{"x":24193.5,"y":20177.94952000014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9c241c90-c546-4603-9859-4dc209b26395","savedPayload":{"position":{"x":24193.5,"y":20177.94952000014},"targetPosition":{"x":24343.5,"y":19918.141898864807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Warning #5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[4][3]","project":"Superalgos","id":"4c040bc8-f527-430e-a6c0-01c2313c2317","savedPayload":{"position":{"x":23823.884757729335,"y":20218.141898864807},"targetPosition":{"x":24083.692378864667,"y":20068.141898864807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"38f9f62f-61b4-48c2-800b-8655bbd9b3e0","savedPayload":{"position":{"x":24083.692378864667,"y":20068.141898864807},"targetPosition":{"x":24343.5,"y":19918.141898864807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"772d90ad-328d-4c7f-92fc-a7d3bba27a3e","savedPayload":{"position":{"x":24558.468944157048,"y":20143.16973945322},"targetPosition":{"x":24293.965580625434,"y":19779.112091984494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[],"images":[{"type":"Image","name":"Warning #1","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 30\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[0] !== undefined","project":"Superalgos","id":"5f82b590-2e76-4916-8ffe-1c2cb9fa9bd0","savedPayload":{"position":{"x":24294.344073273987,"y":20051.761526197686},"targetPosition":{"x":24258.98023294757,"y":19905.989790949156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": 100\n}","project":"Superalgos","id":"79c89efc-0aab-42b4-85b1-e8c982810f05","savedPayload":{"position":{"x":24150.42012723181,"y":20009.501642671472},"targetPosition":{"x":24258.98023294757,"y":19905.989790949156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #1","id":"c17d208d-1b72-4cd2-b134-ee8c259e314d"}}},"id":"5b5ba2dc-28d0-4cd1-a0d3-726f7ddc452d","savedPayload":{"position":{"x":24455.231157920818,"y":20199.223283908235},"targetPosition":{"x":24293.965580625434,"y":19779.112091984494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Warning #2","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 25\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[1] !== undefined","project":"Superalgos","id":"0830de77-83ac-4d23-bbb5-e01000d0d67f","savedPayload":{"position":{"x":24174.170467389762,"y":20020.34805959161},"targetPosition":{"x":24181.307754763322,"y":19870.51795871416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": 150\n}","project":"Superalgos","id":"a284cc7a-eb77-46d7-8550-62c2e49c7504","savedPayload":{"position":{"x":24047.982437465085,"y":19939.251936973273},"targetPosition":{"x":24181.307754763322,"y":19870.51795871416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #2","id":"03218a15-cf40-4310-923c-a31620f9a945"}}},"id":"cea6948c-1672-43a0-9c26-24beed56de5e","savedPayload":{"position":{"x":24341.003389095877,"y":20226.646944900218},"targetPosition":{"x":24293.965580625434,"y":19779.112091984494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Warning #3","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[2] !== undefined","project":"Superalgos","id":"90f8693e-7eba-40b3-add2-199e5fa39d70","savedPayload":{"position":{"x":24067.71493319611,"y":19956.35024185559},"targetPosition":{"x":24116.775127693723,"y":19814.60011904839},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": 200\n}","project":"Superalgos","id":"fe54cdf2-7470-4b9c-af53-d884d1e3fa66","savedPayload":{"position":{"x":23969.485823104318,"y":19842.987805702454},"targetPosition":{"x":24116.775127693723,"y":19814.60011904839},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #3","id":"249c359c-5ca3-4a9e-be87-b8794ae526f2"}}},"id":"ff51bae6-767c-4f9f-a027-a4415d19b04a","savedPayload":{"position":{"x":24223.57007135733,"y":20223.571845252307},"targetPosition":{"x":24293.965580625434,"y":19779.112091984494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Warning #4","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 15\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[3] !== undefined","project":"Superalgos","id":"c012b2be-d48f-4fb5-b537-107cf4b81bf8","savedPayload":{"position":{"x":23983.601864957967,"y":19864.952795572925},"targetPosition":{"x":24070.610401393646,"y":19742.766402765374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": 250\n}","project":"Superalgos","id":"c092f2a0-9773-434a-a61b-3cd50b800127","savedPayload":{"position":{"x":23921.289613007684,"y":19728.507996269745},"targetPosition":{"x":24070.610401393646,"y":19742.766402765374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #4","id":"9c241c90-c546-4603-9859-4dc209b26395"}}},"id":"ba893ce4-7c1d-488c-a935-99c6bc2552e4","savedPayload":{"position":{"x":24110.934091241324,"y":20190.207547923666},"targetPosition":{"x":24293.965580625434,"y":19779.112091984494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Warning #5","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[4] !== undefined","project":"Superalgos","id":"09107391-78e3-4e1a-8aec-8d8b8ddd0180","savedPayload":{"position":{"x":23928.6456032243,"y":19753.560198279883},"targetPosition":{"x":24046.55356743572,"y":19660.83635034679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": 300\n}","project":"Superalgos","id":"d2b36499-fdf2-42c6-bbb2-53ce8516285f","savedPayload":{"position":{"x":23907.29837748331,"y":19605.08698199774},"targetPosition":{"x":24046.55356743572,"y":19660.83635034679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #5","id":"38f9f62f-61b4-48c2-800b-8655bbd9b3e0"}}},"id":"7d5dcf4d-e2bd-4245-890e-059e71f9d7ff","savedPayload":{"position":{"x":24010.77140465301,"y":20128.827774640133},"targetPosition":{"x":24293.965580625434,"y":19779.112091984494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"Warning #1","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[0] !== undefined","project":"Superalgos","id":"5128e16d-0369-4b46-99cd-ac16ea8567f4","savedPayload":{"position":{"x":23942.012932137426,"y":19683.01721809667},"targetPosition":{"x":24046.55356743572,"y":19575.447447382823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": 125\n}","project":"Superalgos","id":"bf0aef48-38f2-434b-8e0f-c34522053ca1","savedPayload":{"position":{"x":23898.750492058567,"y":19601.02577627772},"targetPosition":{"x":24046.55356743572,"y":19575.447447382823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #1","id":"c17d208d-1b72-4cd2-b134-ee8c259e314d"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"1","project":"Superalgos","id":"1b4304d4-4b7d-4e90-9db3-e51608ecf545","savedPayload":{"position":{"x":23911.943803132017,"y":19509.264282196338},"targetPosition":{"x":24046.55356743572,"y":19575.447447382823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"4b6fabc8-c8f4-49c4-b83e-516887736c87","savedPayload":{"position":{"x":23976.553468951868,"y":19442.78250773315},"targetPosition":{"x":24046.55356743572,"y":19575.447447382823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9ae006e7-8db3-4812-87e1-9afb4aa67ee2","savedPayload":{"position":{"x":23929.907933156708,"y":20043.61545551611},"targetPosition":{"x":24293.965580625434,"y":19779.112091984494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Warning #2","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[1] !== undefined","project":"Superalgos","id":"d677605f-0593-4375-a13e-3b3b0e50d432","savedPayload":{"position":{"x":23939.99848982568,"y":19567.27733366108},"targetPosition":{"x":24070.610401393646,"y":19493.51739496424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": 170\n}","project":"Superalgos","id":"b2e1a54f-b276-4fd7-8a92-c1921180ee65","savedPayload":{"position":{"x":23921.588141091364,"y":19476.41868348066},"targetPosition":{"x":24070.610401393646,"y":19493.51739496424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #2","id":"03218a15-cf40-4310-923c-a31620f9a945"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"2","project":"Superalgos","id":"0550bd63-2049-4bb2-91f8-72b9a4d4e871","savedPayload":{"position":{"x":23960.099230712185,"y":19392.091159923137},"targetPosition":{"x":24070.610401393646,"y":19493.51739496424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"a3f44ed2-fa6f-421f-af49-5c37d1bb9e3c","savedPayload":{"position":{"x":24040.821831396785,"y":19346.50501080038},"targetPosition":{"x":24070.610401393646,"y":19493.51739496424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1148e259-3f9c-4716-a289-5a6d3392508a","savedPayload":{"position":{"x":23873.854388701693,"y":19940.37766927988},"targetPosition":{"x":24293.965580625434,"y":19779.112091984494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Warning #3","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[2] !== undefined","project":"Superalgos","id":"db2b9481-384d-4779-9edf-f76546c9b15c","savedPayload":{"position":{"x":23970.673340152374,"y":19455.658193795087},"targetPosition":{"x":24116.775127693723,"y":19421.683678681224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": 215\n}","project":"Superalgos","id":"61597646-ba59-44b7-83fb-4f8a4b2762a2","savedPayload":{"position":{"x":23978.606579726496,"y":19363.293162733615},"targetPosition":{"x":24116.775127693723,"y":19421.683678681224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #3","id":"249c359c-5ca3-4a9e-be87-b8794ae526f2"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"3","project":"Superalgos","id":"b8c449e0-2e5c-408c-a1e2-27dc6b686087","savedPayload":{"position":{"x":24039.31550844788,"y":19293.231324143486},"targetPosition":{"x":24116.775127693723,"y":19421.683678681224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"aa9124d9-7698-4d2c-abd7-cdf053296d1f","savedPayload":{"position":{"x":24129.61137896555,"y":19272.23391905182},"targetPosition":{"x":24116.775127693723,"y":19421.683678681224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"aa0cc626-62bb-41bd-b91a-995068ae86b4","savedPayload":{"position":{"x":23846.43072770971,"y":19826.149900454937},"targetPosition":{"x":24293.965580625434,"y":19779.112091984494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Warning #4","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[3] !== undefined","project":"Superalgos","id":"94c7add9-543a-481f-a623-2168ea59738b","savedPayload":{"position":{"x":24031.5523891744,"y":19357.20251738604},"targetPosition":{"x":24181.307754763322,"y":19365.765839015454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": 260\n}","project":"Superalgos","id":"ef077928-67be-44d9-9e7d-65204293dd62","savedPayload":{"position":{"x":24065.18651316746,"y":19270.813970944124},"targetPosition":{"x":24181.307754763322,"y":19365.765839015454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #4","id":"9c241c90-c546-4603-9859-4dc209b26395"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"4","project":"Superalgos","id":"c8f68edf-2dd4-4e65-9a5a-0a7bce80ebb9","savedPayload":{"position":{"x":24143.1750046343,"y":19220.69381081016},"targetPosition":{"x":24181.307754763322,"y":19365.765839015454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"5301fa6b-e176-427e-96f7-80c9cf051f27","savedPayload":{"position":{"x":24235.72891056592,"y":19225.986234633736},"targetPosition":{"x":24181.307754763322,"y":19365.765839015454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8a7ad74d-0efe-44dc-b737-820539545fb0","savedPayload":{"position":{"x":23849.50582735762,"y":19708.71658271639},"targetPosition":{"x":24293.965580625434,"y":19779.112091984494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Warning #5","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[4] !== undefined","project":"Superalgos","id":"e975c1a0-cb6c-42cd-bd47-fc8732816db1","savedPayload":{"position":{"x":24117.703578401644,"y":19279.886597798144},"targetPosition":{"x":24258.98023294757,"y":19330.29400678046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": 305\n}","project":"Superalgos","id":"9358e516-e4bb-472b-b791-078a6b641d80","savedPayload":{"position":{"x":24174.313750117555,"y":19206.473222236044},"targetPosition":{"x":24258.98023294757,"y":19330.29400678046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #5","id":"38f9f62f-61b4-48c2-800b-8655bbd9b3e0"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"5","project":"Superalgos","id":"7a35af35-d89d-439a-86aa-79ee7a8886b1","savedPayload":{"position":{"x":24263.263640566627,"y":19180.355177856232},"targetPosition":{"x":24258.98023294757,"y":19330.29400678046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"47a6b751-be7c-426b-a2a0-7a652953601a","savedPayload":{"position":{"x":24350.577414892887,"y":19211.50866989212},"targetPosition":{"x":24258.98023294757,"y":19330.29400678046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d19d350e-4fb5-445b-8452-25dbb58ee162","savedPayload":{"position":{"x":23882.870124686262,"y":19596.080602600385},"targetPosition":{"x":24293.965580625434,"y":19779.112091984494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1cb82596-da2f-4b0b-8a7e-b9bf0dfe310f","savedPayload":{"position":{"x":24293.965580625434,"y":19779.112091984494},"targetPosition":{"x":24577.15975659786,"y":19429.396409328856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[],"nodesWarnings":{"type":"Nodes Warnings","name":"New Nodes Warnings","project":"Superalgos","id":"3d3a4958-90dd-458e-b1c8-a31bc1ff864c","savedPayload":{"position":{"x":24157.048564674118,"y":19590.66198662424},"targetPosition":{"x":24577.15975659786,"y":19429.396409328856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a9709093-95c1-4b1b-aeb5-329c7505ab75","savedPayload":{"position":{"x":24577.15975659786,"y":19429.396409328856},"targetPosition":{"x":24941.217404066585,"y":19164.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Infos","config":"{\n \"codeName\": \"Infos\",\n \"connectTo\": \"Trading System\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"infos\",\n \"rateInArrayAtIndex\": 3,\n \"rateOffset\": 100,\n \"rateOffsetBasedOnArrayIndex\": 50,\n \"rateRange\": 20\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"Infos","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Info #1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[0][3]","project":"Superalgos","id":"08639b58-1bf6-4310-87ca-7688bf02312c","savedPayload":{"position":{"x":24285.27466164523,"y":20025.567990574844},"targetPosition":{"x":24025.4670405099,"y":19875.567990574844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e2193d1d-3c3a-4ba3-a61a-a3fa3a205bdd","savedPayload":{"position":{"x":24025.4670405099,"y":19875.567990574844},"targetPosition":{"x":23765.659419374566,"y":19725.567990574844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Info #2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[1][3]","project":"Superalgos","id":"17f4a676-8076-4fe7-b713-62e85b8b18a7","savedPayload":{"position":{"x":24065.659419374566,"y":20245.18323284551},"targetPosition":{"x":23915.659419374566,"y":19985.375611710177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"524b9641-2eca-4919-9da2-a431cfd0a96e","savedPayload":{"position":{"x":23915.659419374566,"y":19985.375611710177},"targetPosition":{"x":23765.659419374566,"y":19725.567990574844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Info #3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[2][3]","project":"Superalgos","id":"bcc7365d-4b1d-4d79-bebb-28e12f838361","savedPayload":{"position":{"x":23765.659419374566,"y":20325.567990574844},"targetPosition":{"x":23765.659419374566,"y":20025.567990574844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5105f48d-9987-4475-932a-56f566d90159","savedPayload":{"position":{"x":23765.659419374566,"y":20025.567990574844},"targetPosition":{"x":23765.659419374566,"y":19725.567990574844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Info #4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[3][3]","project":"Superalgos","id":"4b84d3c5-eaa7-4555-b927-e02b7e081bfa","savedPayload":{"position":{"x":23465.659419374566,"y":20245.18323284551},"targetPosition":{"x":23615.659419374566,"y":19985.375611710177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b3fd79f9-cccf-44b0-bcb2-285a84993f9e","savedPayload":{"position":{"x":23615.659419374566,"y":19985.375611710177},"targetPosition":{"x":23765.659419374566,"y":19725.567990574844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Info #5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[4][3]","project":"Superalgos","id":"1f46c5e2-5bd9-4171-a01e-b8431ac88cce","savedPayload":{"position":{"x":23246.0441771039,"y":20025.567990574844},"targetPosition":{"x":23505.851798239233,"y":19875.567990574844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ea3f2d7c-cf4c-489d-bb84-c25f80267e41","savedPayload":{"position":{"x":23505.851798239233,"y":19875.567990574844},"targetPosition":{"x":23765.659419374566,"y":19725.567990574844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d0603f25-80ef-4d01-a970-3bb5325619a2","savedPayload":{"position":{"x":24274.89786362705,"y":19977.01369135555},"targetPosition":{"x":24135.840216158325,"y":19549.03825902273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[],"images":[{"type":"Image","name":"Info #1","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 30\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[0] !== undefined","project":"Superalgos","id":"52a6ed4f-284d-4a8a-b6c1-c2a37770be10","savedPayload":{"position":{"x":23716.503492648553,"y":19859.187617907723},"targetPosition":{"x":23681.139652322137,"y":19713.415882659192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": 100\n}","project":"Superalgos","id":"5eebc216-dd6a-4cfb-abc4-3a45415b43f4","savedPayload":{"position":{"x":23572.579546606376,"y":19816.92773438151},"targetPosition":{"x":23681.139652322137,"y":19713.415882659192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #1","id":"e2193d1d-3c3a-4ba3-a61a-a3fa3a205bdd"}}},"id":"4d8f74b6-9188-4a2d-b061-0e981bdb407e","savedPayload":{"position":{"x":24159.39139646765,"y":19998.42154966229},"targetPosition":{"x":24135.840216158325,"y":19549.03825902273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Info #2","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 25\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[1] !== undefined","project":"Superalgos","id":"736c7c5c-79f4-475e-ad62-3966450a0372","savedPayload":{"position":{"x":23596.329886764328,"y":19827.774151301648},"targetPosition":{"x":23603.467174137888,"y":19677.944050424197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": 150\n}","project":"Superalgos","id":"b1ee694d-674f-44c8-8e1d-b7e475dd8b9d","savedPayload":{"position":{"x":23470.14185683965,"y":19746.67802868331},"targetPosition":{"x":23603.467174137888,"y":19677.944050424197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #2","id":"524b9641-2eca-4919-9da2-a431cfd0a96e"}}},"id":"613d9590-7c63-42c9-908a-61e2cd3236a2","savedPayload":{"position":{"x":24042.279955290334,"y":19989.204679352944},"targetPosition":{"x":24135.840216158325,"y":19549.03825902273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Info #3","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[2] !== undefined","project":"Superalgos","id":"ee7c575a-cbec-42c1-9f3c-8357f4aaeb98","savedPayload":{"position":{"x":23489.874352570678,"y":19763.776333565627},"targetPosition":{"x":23538.93454706829,"y":19622.026210758428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": 200\n}","project":"Superalgos","id":"e38affc9-b5ae-4e74-987f-f342645df6b5","savedPayload":{"position":{"x":23391.645242478884,"y":19650.41389741249},"targetPosition":{"x":23538.93454706829,"y":19622.026210758428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #3","id":"5105f48d-9987-4475-932a-56f566d90159"}}},"id":"1a26570e-ed10-49d7-abae-a57d64ab4e82","savedPayload":{"position":{"x":23931.54449127553,"y":19949.991194907496},"targetPosition":{"x":24135.840216158325,"y":19549.03825902273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Info #4","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 15\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[3] !== undefined","project":"Superalgos","id":"1adc9384-761c-48a0-8cef-bb4fd232400c","savedPayload":{"position":{"x":23405.761284332533,"y":19672.37888728296},"targetPosition":{"x":23492.76982076821,"y":19550.19249447541},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": 250\n}","project":"Superalgos","id":"efcfc0b3-de68-4a0c-bb17-266afd8b27d2","savedPayload":{"position":{"x":23343.44903238225,"y":19535.934087979782},"targetPosition":{"x":23492.76982076821,"y":19550.19249447541},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #4","id":"b3fd79f9-cccf-44b0-bcb2-285a84993f9e"}}},"id":"776b6da6-3d96-476a-b3a0-7d1727300f87","savedPayload":{"position":{"x":23834.731443296838,"y":19883.45343048756},"targetPosition":{"x":24135.840216158325,"y":19549.03825902273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Info #5","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[4] !== undefined","project":"Superalgos","id":"0127c787-6b41-434f-a0c3-31e53243fdf6","savedPayload":{"position":{"x":23350.805022598866,"y":19560.98628998992},"targetPosition":{"x":23468.712986810286,"y":19468.262442056828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": 300\n}","project":"Superalgos","id":"8065fedd-6175-447e-9273-3bd2fdd402f0","savedPayload":{"position":{"x":23329.457796857874,"y":19412.513073707778},"targetPosition":{"x":23468.712986810286,"y":19468.262442056828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #5","id":"ea3f2d7c-cf4c-489d-bb84-c25f80267e41"}}},"id":"b8a1d9ec-72e8-47d0-b246-66cda5e3eba0","savedPayload":{"position":{"x":23758.438460582885,"y":19794.125824779494},"targetPosition":{"x":24135.840216158325,"y":19549.03825902273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"Info #1","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[0] !== undefined","project":"Superalgos","id":"e057eb81-cde9-404d-82dc-adba53400eb9","savedPayload":{"position":{"x":23364.172351511992,"y":19490.443309806706},"targetPosition":{"x":23468.712986810286,"y":19382.87353909286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": 125\n}","project":"Superalgos","id":"7a769245-01b3-4ca1-a79f-7a7dfe8bdf95","savedPayload":{"position":{"x":23320.909911433133,"y":19408.451867987755},"targetPosition":{"x":23468.712986810286,"y":19382.87353909286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #1","id":"e2193d1d-3c3a-4ba3-a61a-a3fa3a205bdd"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"1","project":"Superalgos","id":"5c8dcf05-4b67-4c99-92cb-d626785152fb","savedPayload":{"position":{"x":23334.103222506583,"y":19316.690373906375},"targetPosition":{"x":23468.712986810286,"y":19382.87353909286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"bea86183-5b1a-4c88-80c2-55fae38d18a4","savedPayload":{"position":{"x":23398.712888326434,"y":19250.208599443187},"targetPosition":{"x":23468.712986810286,"y":19382.87353909286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8ff5465c-3513-4d38-8600-51e17c271e6a","savedPayload":{"position":{"x":23707.864783825506,"y":19688.095906491457},"targetPosition":{"x":24135.840216158325,"y":19549.03825902273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Info #2","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[1] !== undefined","project":"Superalgos","id":"90df78b4-860c-4fa4-b478-985976a16676","savedPayload":{"position":{"x":23362.157909200247,"y":19374.703425371117},"targetPosition":{"x":23492.76982076821,"y":19300.943486674278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": 170\n}","project":"Superalgos","id":"4fdcb5fa-776b-4ab4-9f78-e744b048fa6f","savedPayload":{"position":{"x":23343.74756046593,"y":19283.844775190697},"targetPosition":{"x":23492.76982076821,"y":19300.943486674278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #2","id":"524b9641-2eca-4919-9da2-a431cfd0a96e"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"2","project":"Superalgos","id":"bea6405a-087b-4c15-9111-1f7076e1d663","savedPayload":{"position":{"x":23382.25865008675,"y":19199.517251633173},"targetPosition":{"x":23492.76982076821,"y":19300.943486674278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"234737f6-2027-486d-95d7-b18ac61eae29","savedPayload":{"position":{"x":23462.98125077135,"y":19153.931102510418},"targetPosition":{"x":23492.76982076821,"y":19300.943486674278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"dc117f92-a30d-453e-9712-d23022e4c399","savedPayload":{"position":{"x":23686.456925518767,"y":19572.589439332056},"targetPosition":{"x":24135.840216158325,"y":19549.03825902273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Info #3","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[2] !== undefined","project":"Superalgos","id":"34ad2326-b013-4ad9-856b-cda86dd930d5","savedPayload":{"position":{"x":23392.83275952694,"y":19263.084285505123},"targetPosition":{"x":23538.93454706829,"y":19229.10977039126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": 215\n}","project":"Superalgos","id":"22a4a7b3-23ff-42cf-afc1-dd4e5cc362e8","savedPayload":{"position":{"x":23400.765999101062,"y":19170.71925444365},"targetPosition":{"x":23538.93454706829,"y":19229.10977039126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #3","id":"5105f48d-9987-4475-932a-56f566d90159"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"3","project":"Superalgos","id":"719238f0-12c3-4fb0-8d93-15483f6e7069","savedPayload":{"position":{"x":23461.474927822444,"y":19100.657415853522},"targetPosition":{"x":23538.93454706829,"y":19229.10977039126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"a21a51eb-fcf6-4201-b4bd-e8bd11b78bd7","savedPayload":{"position":{"x":23551.770798340116,"y":19079.660010761858},"targetPosition":{"x":23538.93454706829,"y":19229.10977039126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"aa712bdc-ab7d-4c45-a6ae-575db9b1a81f","savedPayload":{"position":{"x":23695.673795828112,"y":19455.47799815474},"targetPosition":{"x":24135.840216158325,"y":19549.03825902273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Info #4","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[3] !== undefined","project":"Superalgos","id":"b5a9fb83-ab5e-495b-ad2f-a005736323ef","savedPayload":{"position":{"x":23453.711808548967,"y":19164.628609096075},"targetPosition":{"x":23603.467174137888,"y":19173.19193072549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": 260\n}","project":"Superalgos","id":"f8170e78-f163-440a-ab5b-f1108143eb0f","savedPayload":{"position":{"x":23487.345932542026,"y":19078.24006265416},"targetPosition":{"x":23603.467174137888,"y":19173.19193072549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #4","id":"b3fd79f9-cccf-44b0-bcb2-285a84993f9e"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"4","project":"Superalgos","id":"4c19a337-8230-418f-bd6d-efe65c97afb7","savedPayload":{"position":{"x":23565.334424008866,"y":19028.119902520197},"targetPosition":{"x":23603.467174137888,"y":19173.19193072549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"fbe44bab-92dc-46b6-9687-1724c5ca65a3","savedPayload":{"position":{"x":23657.888329940484,"y":19033.412326343772},"targetPosition":{"x":23603.467174137888,"y":19173.19193072549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"346a72da-fbae-4d20-9550-3d5fd226c690","savedPayload":{"position":{"x":23734.88728027356,"y":19344.742534139936},"targetPosition":{"x":24135.840216158325,"y":19549.03825902273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Info #5","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[4] !== undefined","project":"Superalgos","id":"4db5414e-8a5b-4ed2-a099-e563d78e9e17","savedPayload":{"position":{"x":23539.86299777621,"y":19087.31268950818},"targetPosition":{"x":23681.139652322137,"y":19137.720098490496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": 305\n}","project":"Superalgos","id":"7b01a503-8b74-4874-a606-b1c37162938e","savedPayload":{"position":{"x":23596.47316949212,"y":19013.89931394608},"targetPosition":{"x":23681.139652322137,"y":19137.720098490496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #5","id":"ea3f2d7c-cf4c-489d-bb84-c25f80267e41"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"5","project":"Superalgos","id":"90809b91-db58-4db5-8532-922e8eb94254","savedPayload":{"position":{"x":23685.423059941193,"y":18987.78126956627},"targetPosition":{"x":23681.139652322137,"y":19137.720098490496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"fb151664-60fb-45ec-99fe-1d1e46311fbe","savedPayload":{"position":{"x":23772.736834267453,"y":19018.934761602155},"targetPosition":{"x":23681.139652322137,"y":19137.720098490496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"427990de-8a0d-46f7-9514-5bab2a27bf0d","savedPayload":{"position":{"x":23801.425044693497,"y":19247.929486161243},"targetPosition":{"x":24135.840216158325,"y":19549.03825902273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"48f7bd71-fb8c-46e4-8310-f3ad897bdbe8","savedPayload":{"position":{"x":24135.840216158325,"y":19549.03825902273},"targetPosition":{"x":24513.241971733765,"y":19303.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[],"nodesInfos":{"type":"Nodes Infos","name":"New Nodes Infos","project":"Superalgos","id":"4183f03b-db5b-4ba7-8e4f-befc192cbe36","savedPayload":{"position":{"x":24063.858681094207,"y":19327.501873575293},"targetPosition":{"x":24513.241971733765,"y":19303.950693265968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f175df3b-a277-44bc-88db-dcf6b0e3fa38","savedPayload":{"position":{"x":24513.241971733765,"y":19303.950693265968},"targetPosition":{"x":24941.217404066585,"y":19164.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"34f9d374-f4ae-4abf-96e3-978c6b8a879a","savedPayload":{"position":{"x":24941.217404066585,"y":19164.893045797242},"targetPosition":{"x":24941.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Trading Episode","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Episode Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"76185b66-f987-453f-8c6a-922af52e1496","savedPayload":{"position":{"x":25469.132970714185,"y":19743.223695265366},"targetPosition":{"x":25250.349738624707,"y":19795.748902132946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d36cc3b7-cf35-4b2d-9e62-af77e624bd8a","savedPayload":{"position":{"x":25250.349738624707,"y":19795.748902132946},"targetPosition":{"x":24812.783274445752,"y":19900.799315868102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"015889b5-8517-4d56-8335-b546931b7582","savedPayload":{"position":{"x":25485.702474715614,"y":19953.7592054844},"targetPosition":{"x":25261.39607462566,"y":19936.105908945632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d51a844a-acff-4717-b416-ac02113bcb84","savedPayload":{"position":{"x":25261.39607462566,"y":19936.105908945632},"targetPosition":{"x":24812.783274445752,"y":19900.799315868102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"6da64a35-215f-4e20-a1a4-b715565c9ec5","savedPayload":{"position":{"x":25436.40195889087,"y":20159.11063271454},"targetPosition":{"x":25228.529064075832,"y":20073.006860432393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cdc081f1-7080-407e-a1d8-20e71c2903f5","savedPayload":{"position":{"x":25228.529064075832,"y":20073.006860432393},"targetPosition":{"x":24812.783274445752,"y":19900.799315868102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"ef75589f-d40b-48f3-9d22-c3819d4362d6","savedPayload":{"position":{"x":25326.057301225774,"y":20339.176748490976},"targetPosition":{"x":25154.965958965768,"y":20193.050937616685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a53dfccb-7edd-4b83-84dc-56f62fb77e2e","savedPayload":{"position":{"x":25154.965958965768,"y":20193.050937616685},"targetPosition":{"x":24812.783274445752,"y":19900.799315868102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"75792ba3-caac-448f-976a-2e0beaa5fb15","savedPayload":{"position":{"x":24812.783274445752,"y":19900.799315868102},"targetPosition":{"x":24375.216810266797,"y":19795.748902132946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"aab82eaa-0871-4f3c-a133-f211a2de6a5d","savedPayload":{"position":{"x":24245.979671521156,"y":20232.976397686947},"targetPosition":{"x":24078.779762334307,"y":20577.500690620127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 2,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 2,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"2eff63cf-253f-46a3-b434-2e793943f39a","savedPayload":{"position":{"x":24792.55059602381,"y":20747.205554246633},"targetPosition":{"x":24450.783855635804,"y":20666.160678812274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"4b53ad47-88ba-4e43-b0c6-da437e26469b","savedPayload":{"position":{"x":24450.783855635804,"y":20666.160678812274},"targetPosition":{"x":24078.779762334307,"y":20577.500690620127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"b06f7ce1-592a-46e1-99ae-6d5b728b7ce6","savedPayload":{"position":{"x":24109.91297694319,"y":20958.129613361627},"targetPosition":{"x":24078.779762334307,"y":20577.500690620127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"d36cc3b7-cf35-4b2d-9e62-af77e624bd8a"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"1d460f06-361e-4e8a-a119-02e7d1d40b14","savedPayload":{"position":{"x":23694.349050710403,"y":20714.58276632412},"targetPosition":{"x":24078.779762334307,"y":20577.500690620127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"cdc081f1-7080-407e-a1d8-20e71c2903f5"}}}],"id":"7237c558-a0e5-46c6-8cf5-ebc555e98efb","savedPayload":{"position":{"x":24739.274457735522,"y":20060.25226566456},"targetPosition":{"x":24375.216810266797,"y":19795.748902132946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"dac76f26-8574-413e-9a59-c3d22393f884","savedPayload":{"position":{"x":24125.34951961687,"y":20448.114324078524},"targetPosition":{"x":23839.69732282563,"y":20712.286183561904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 2,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 2,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"01979f43-b2d9-4efb-beae-be89986ad308","savedPayload":{"position":{"x":24434.580644591468,"y":21141.89978871252},"targetPosition":{"x":24149.491183441933,"y":20936.062861603354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"31d548c0-90ae-456a-80c1-f11da75d9203","savedPayload":{"position":{"x":24149.491183441933,"y":20936.062861603354},"targetPosition":{"x":23839.69732282563,"y":20712.286183561904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"7732c454-a983-4af6-aa1b-4ac89412c735","savedPayload":{"position":{"x":23723.10471225306,"y":21076.13322759533},"targetPosition":{"x":23839.69732282563,"y":20712.286183561904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"d36cc3b7-cf35-4b2d-9e62-af77e624bd8a"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"bdff1a41-c544-44ba-aafb-db30fa1ef9a1","savedPayload":{"position":{"x":23433.160941247017,"y":20691.996021616073},"targetPosition":{"x":23839.69732282563,"y":20712.286183561904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"cdc081f1-7080-407e-a1d8-20e71c2903f5"}}}],"id":"4958982a-b51a-40ef-8764-dd5451cf9837","savedPayload":{"position":{"x":24610.341164388974,"y":20179.436976092285},"targetPosition":{"x":24375.216810266797,"y":19795.748902132946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"7965d803-ccde-40ec-b09f-dc50b498257c","savedPayload":{"position":{"x":23537.03154447312,"y":16160.650063190064},"targetPosition":{"x":23765.91706815518,"y":16346.103988950654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"63e9bbd0-f235-4ec7-a6bc-9ab46db2d307","savedPayload":{"position":{"x":23765.91706815518,"y":16346.103988950654},"targetPosition":{"x":24033.39056085776,"y":16562.828459543056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"3bec1e67-abaf-428e-b443-dc27969767b5","savedPayload":{"position":{"x":23997.561263329026,"y":16220.41623451958},"targetPosition":{"x":24033.39056085776,"y":16562.828459543056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"d36cc3b7-cf35-4b2d-9e62-af77e624bd8a"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"471fc78f-4538-4834-bbed-a329d1e4601e","savedPayload":{"position":{"x":24250.164232306724,"y":16295.06035250861},"targetPosition":{"x":24033.39056085776,"y":16562.828459543056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"d51a844a-acff-4717-b416-ac02113bcb84"}}}],"id":"86fefa5e-8de8-4d00-a632-e1827ce60030","savedPayload":{"position":{"x":24445.6123195349,"y":20240.20865540076},"targetPosition":{"x":24375.216810266797,"y":19795.748902132946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"c4bb446c-e574-4e59-afed-3538eab694d5","savedPayload":{"position":{"x":23657.715624489734,"y":16122.358204813214},"targetPosition":{"x":23865.460538755982,"y":16330.280713946628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6f0d820a-fb29-48d7-89f1-d1ea5a74e653","savedPayload":{"position":{"x":23865.460538755982,"y":16330.280713946628},"targetPosition":{"x":24094.89791082273,"y":16559.93821830005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"ef071433-8fc9-4d59-a4c5-9bd2e7bc4fb0","savedPayload":{"position":{"x":24094.896121211164,"y":16234.255474737212},"targetPosition":{"x":24094.89791082273,"y":16559.93821830005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"cdc081f1-7080-407e-a1d8-20e71c2903f5"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"c4f97c3d-8990-4091-8ff0-638afe58c282","savedPayload":{"position":{"x":24325.4610126125,"y":16329.333935430455},"targetPosition":{"x":24094.89791082273,"y":16559.93821830005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"a53dfccb-7edd-4b83-84dc-56f62fb77e2e"}}}],"id":"79a3b846-3b23-4c01-9aa1-cedcebb5ca03","savedPayload":{"position":{"x":24270.16639653164,"y":20233.3153663119},"targetPosition":{"x":24375.216810266797,"y":19795.748902132946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{\n \"codeName\": \"trading-episode\",\n \"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"c03a6ea3-1555-4c1d-b268-d6e1032fd656","savedPayload":{"position":{"x":23978.461764969376,"y":20341.835373336035},"targetPosition":{"x":24110.713446735183,"y":20159.80654960167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"d36cc3b7-cf35-4b2d-9e62-af77e624bd8a"}}},"id":"ad9be6ea-d6dd-4c5d-932a-8b34d322fa76","savedPayload":{"position":{"x":24110.713446735183,"y":20159.80654960167},"targetPosition":{"x":24375.216810266797,"y":19795.748902132946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{\n \"codeName\": \"trading-episode\",\n \"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"45d5d8a0-92e4-4e20-af13-8ea425c068cb","savedPayload":{"position":{"x":23799.684699327787,"y":20148.435433316212},"targetPosition":{"x":23991.528736307457,"y":20030.873256255123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"cdc081f1-7080-407e-a1d8-20e71c2903f5"}}},"id":"5bc2bd0b-c164-432b-abb6-269dbca0f627","savedPayload":{"position":{"x":23991.528736307457,"y":20030.873256255123},"targetPosition":{"x":24375.216810266797,"y":19795.748902132946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"0d8e669e-47fd-41f7-8108-8df3e7acd5ef","savedPayload":{"position":{"x":24375.216810266797,"y":19795.748902132946},"targetPosition":{"x":24304.821300998694,"y":19351.289148865133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Episode Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"b5d632ba-523a-401c-84db-1ce47efa7059","savedPayload":{"position":{"x":24538.903008738773,"y":20265.51611152992},"targetPosition":{"x":24392.77719786448,"y":20094.424769269914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0ccc88ff-cae0-46e6-8e91-36dd4b185d12","savedPayload":{"position":{"x":24392.77719786448,"y":20094.424769269914},"targetPosition":{"x":24100.5255761159,"y":19752.242084749898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"3292dd95-270f-490b-bba8-0eb82afa4b29","savedPayload":{"position":{"x":24309.112047318988,"y":20394.205233249126},"targetPosition":{"x":24239.583223584625,"y":20180.217517082718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f7b5fd21-8167-4949-be53-8de453a38904","savedPayload":{"position":{"x":24239.583223584625,"y":20180.217517082718},"targetPosition":{"x":24100.5255761159,"y":19752.242084749898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"7a945058-1f89-420d-94ea-6c01142e814a","savedPayload":{"position":{"x":24047.5656864996,"y":20425.16128501976},"targetPosition":{"x":24065.21898303837,"y":20200.854884929806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"03168102-4498-4cc9-a685-1fea8ec5d208","savedPayload":{"position":{"x":24065.21898303837,"y":20200.854884929806},"targetPosition":{"x":24100.5255761159,"y":19752.242084749898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Rate","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"15ec12a6-815c-4432-a16b-d2600297aa83","savedPayload":{"position":{"x":23794.081988791706,"y":20353.671488577045},"targetPosition":{"x":23896.229851233104,"y":20153.195020634663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"534c09c7-1812-4266-ba81-b9fc8cf3d070","savedPayload":{"position":{"x":23896.229851233104,"y":20153.195020634663},"targetPosition":{"x":24100.5255761159,"y":19752.242084749898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Rate","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"bf1f2748-56f4-451a-87dc-8cd385d649de","savedPayload":{"position":{"x":23587.25154933588,"y":20190.619517372772},"targetPosition":{"x":23758.342891595887,"y":20044.49370649848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"54b9bfa4-3d94-4a39-b7ae-e5c882022fcf","savedPayload":{"position":{"x":23758.342891595887,"y":20044.49370649848},"targetPosition":{"x":24100.5255761159,"y":19752.242084749898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin","config":"{\n }","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"UI.projects.superalgos.utilities.dates.formatDate(record.begin)","project":"Superalgos","id":"6ad056b5-bcf6-4e6a-88d6-9435c67765e5","savedPayload":{"position":{"x":23458.56242761667,"y":19960.828555952987},"targetPosition":{"x":23672.55014378308,"y":19891.299732218624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"70bc2470-d0e3-48a0-97c2-67189f3aaa9c","savedPayload":{"position":{"x":23672.55014378308,"y":19891.299732218624},"targetPosition":{"x":24100.5255761159,"y":19752.242084749898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End","config":"{\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"UI.projects.superalgos.utilities.dates.formatDate(record.end)","project":"Superalgos","id":"81c41360-308d-4609-9a3b-b234a65fa49a","savedPayload":{"position":{"x":23427.606375846037,"y":19699.2821951336},"targetPosition":{"x":23651.91277593599,"y":19716.935491672368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4daad4f7-a1db-40d1-a88e-fe4669b422f5","savedPayload":{"position":{"x":23651.91277593599,"y":19716.935491672368},"targetPosition":{"x":24100.5255761159,"y":19752.242084749898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bcbb3368-ea4c-466b-8423-8f0517ad35da","savedPayload":{"position":{"x":24100.5255761159,"y":19752.242084749898},"targetPosition":{"x":24304.821300998694,"y":19351.289148865133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Episode Base Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Hits","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitsInBaseAsset","project":"Superalgos","id":"178cea7f-657c-47b5-bf08-783fccf30abd","savedPayload":{"position":{"x":24044.659383650134,"y":20444.504380283553},"targetPosition":{"x":23974.26387438203,"y":20000.04462701574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d06bfec8-344e-4d09-ad45-5d881051c86d","savedPayload":{"position":{"x":23974.26387438203,"y":20000.04462701574},"targetPosition":{"x":23903.86836511393,"y":19555.58487374793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fails","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.failsInBaseAsset","project":"Superalgos","id":"9b2e4688-d344-4aaf-a819-fb37e2d7f01f","savedPayload":{"position":{"x":23763.077346577724,"y":20444.504380283553},"targetPosition":{"x":23833.472855845826,"y":20000.04462701574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3456d30c-437f-475a-b6d4-86c56c5c5875","savedPayload":{"position":{"x":23833.472855845826,"y":20000.04462701574},"targetPosition":{"x":23903.86836511393,"y":19555.58487374793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Ratio","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitRatioInBaseAsset","project":"Superalgos","id":"43ffaa8c-1678-40bc-8b89-1d3613b0bf80","savedPayload":{"position":{"x":23495.27691534834,"y":20357.490745517458},"targetPosition":{"x":23699.572640231134,"y":19956.537809632693},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c9328b65-a3e0-4c81-9e7f-321d02566f6a","savedPayload":{"position":{"x":23699.572640231134,"y":19956.537809632693},"targetPosition":{"x":23903.86836511393,"y":19555.58487374793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Profit Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.profitLossInBaseAsset","project":"Superalgos","id":"b1750d80-b1a6-4e57-b575-176c5c63cc85","savedPayload":{"position":{"x":23267.472262046038,"y":20191.98097681582},"targetPosition":{"x":23585.670313579983,"y":19873.782925281874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"91a729d3-1a8d-44c6-89f6-548456b1e300","savedPayload":{"position":{"x":23585.670313579983,"y":19873.782925281874},"targetPosition":{"x":23903.86836511393,"y":19555.58487374793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ROI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ROIInBaseAsset","project":"Superalgos","id":"57eb486f-3069-4df2-a095-7ae86f3c849e","savedPayload":{"position":{"x":23101.9624933444,"y":19964.17632351352},"targetPosition":{"x":23502.915429229164,"y":19759.880598630723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8c0532fa-8338-4659-acdb-4429c00c69f5","savedPayload":{"position":{"x":23502.915429229164,"y":19759.880598630723},"targetPosition":{"x":23903.86836511393,"y":19555.58487374793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Annualized Rate Of Return","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.annualizedRateOfReturnInBaseAsset","project":"Superalgos","id":"9668524f-81b7-4805-a095-729344436bdc","savedPayload":{"position":{"x":23014.948858578304,"y":19696.375892284133},"targetPosition":{"x":23459.408611846116,"y":19625.98038301603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"01f3e8f9-42bd-477d-a073-ece04b3462c3","savedPayload":{"position":{"x":23459.408611846116,"y":19625.98038301603},"targetPosition":{"x":23903.86836511393,"y":19555.58487374793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFailInBaseAsset","project":"Superalgos","id":"5530bf09-a7d7-4721-b6c9-35959c6ef57f","savedPayload":{"position":{"x":23014.948858578304,"y":19414.793855211723},"targetPosition":{"x":23459.408611846116,"y":19485.189364479826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e6a87a47-eb70-41c8-9b56-37bb3c1cff42","savedPayload":{"position":{"x":23459.408611846116,"y":19485.189364479826},"targetPosition":{"x":23903.86836511393,"y":19555.58487374793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Balance","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginBalanceInBaseAsset","project":"Superalgos","id":"bdcfb0ac-dd92-47c6-b1ce-2052125a69d3","savedPayload":{"position":{"x":23101.9624933444,"y":19146.993423982338},"targetPosition":{"x":23502.915429229164,"y":19351.289148865133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"05d8cc70-c3e8-416e-9976-94aabb6fb850","savedPayload":{"position":{"x":23502.915429229164,"y":19351.289148865133},"targetPosition":{"x":23903.86836511393,"y":19555.58487374793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Balance","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endBalanceInBaseAsset","project":"Superalgos","id":"e93cb7de-6d1a-496d-8adc-23e546ccae20","savedPayload":{"position":{"x":23267.472262046038,"y":18919.188770680037},"targetPosition":{"x":23585.670313579983,"y":19237.386822213983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5f28fda1-332a-4052-abac-3586386868df","savedPayload":{"position":{"x":23585.670313579983,"y":19237.386822213983},"targetPosition":{"x":23903.86836511393,"y":19555.58487374793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b18a5300-448b-4165-9b36-dc5ee37e58cd","savedPayload":{"position":{"x":23903.86836511393,"y":19555.58487374793},"targetPosition":{"x":24304.821300998694,"y":19351.289148865133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Episode Quoted Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Hits","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitsInQuotedAsset","project":"Superalgos","id":"68babd3f-d90c-4df0-9050-746d17ab3ea1","savedPayload":{"position":{"x":23451.77009796529,"y":20082.79951136656},"targetPosition":{"x":23656.065822848086,"y":19681.846575481795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"962215d1-1e67-43c7-9a7c-01f5e6f9e6e8","savedPayload":{"position":{"x":23656.065822848086,"y":19681.846575481795},"targetPosition":{"x":23860.36154773088,"y":19280.89363959703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fails","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.failsInQuotedAsset","project":"Superalgos","id":"9040394b-4c9c-4873-914c-31073717f3d7","savedPayload":{"position":{"x":23223.96544466299,"y":19917.28974266492},"targetPosition":{"x":23542.163496196936,"y":19599.091691130976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fe5a306c-7f59-43aa-bf1e-62ad7639a87f","savedPayload":{"position":{"x":23542.163496196936,"y":19599.091691130976},"targetPosition":{"x":23860.36154773088,"y":19280.89363959703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Ratio","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitRatioInQuotedAsset","project":"Superalgos","id":"c30aadb6-44a2-400d-96b2-a51c2eaccacf","savedPayload":{"position":{"x":23058.45567596135,"y":19689.48508936262},"targetPosition":{"x":23459.408611846116,"y":19485.189364479826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"19fb6789-7b00-4e86-bfde-775bcd813300","savedPayload":{"position":{"x":23459.408611846116,"y":19485.189364479826},"targetPosition":{"x":23860.36154773088,"y":19280.89363959703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Profit Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.profitLossInQuotedAsset","project":"Superalgos","id":"b296257d-c3fd-406f-85de-b89121b332f6","savedPayload":{"position":{"x":22971.442041195256,"y":19421.684658133236},"targetPosition":{"x":23415.90179446307,"y":19351.289148865133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dad82788-bdb3-4df2-9cfd-2a8d22a2278f","savedPayload":{"position":{"x":23415.90179446307,"y":19351.289148865133},"targetPosition":{"x":23860.36154773088,"y":19280.89363959703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ROI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ROIInQuotedAsset","project":"Superalgos","id":"88e43d30-c26b-4d43-ba1a-e2a318154b95","savedPayload":{"position":{"x":22971.442041195256,"y":19140.102621060825},"targetPosition":{"x":23415.90179446307,"y":19210.498130328928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"54f32b24-0657-4be3-a24c-ea988797f93a","savedPayload":{"position":{"x":23415.90179446307,"y":19210.498130328928},"targetPosition":{"x":23860.36154773088,"y":19280.89363959703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Annualized Rate Of Return","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.annualizedRateOfReturnInQuotedAsset","project":"Superalgos","id":"e30aa4c9-50ef-40a6-bf65-ae8674eddd3f","savedPayload":{"position":{"x":23058.45567596135,"y":18872.30218983144},"targetPosition":{"x":23459.408611846116,"y":19076.597914714235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b94cbb0-ec78-4a85-b815-06533aaa7ea9","savedPayload":{"position":{"x":23459.408611846116,"y":19076.597914714235},"targetPosition":{"x":23860.36154773088,"y":19280.89363959703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFailInQuotedAsset","project":"Superalgos","id":"38b3d1b7-f954-4042-abfb-1fd9167e0e35","savedPayload":{"position":{"x":23223.96544466299,"y":18644.49753652914},"targetPosition":{"x":23542.163496196936,"y":18962.695588063085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"524a686a-eadf-4652-a2ca-f73f40dc10f1","savedPayload":{"position":{"x":23542.163496196936,"y":18962.695588063085},"targetPosition":{"x":23860.36154773088,"y":19280.89363959703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Balance","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginBalanceInQuotedAsset","project":"Superalgos","id":"78d24874-e442-4b7d-9602-b434fa246640","savedPayload":{"position":{"x":23451.77009796529,"y":18478.9877678275},"targetPosition":{"x":23656.065822848086,"y":18879.940703712266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"480cfd81-87e5-4022-ac2b-9adb7f04c105","savedPayload":{"position":{"x":23656.065822848086,"y":18879.940703712266},"targetPosition":{"x":23860.36154773088,"y":19280.89363959703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Balance","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endBalanceInQuotedAsset","project":"Superalgos","id":"abe4d95f-ae51-4237-8bda-0d2ec08ef13c","savedPayload":{"position":{"x":23719.570529194676,"y":18391.974133061405},"targetPosition":{"x":23789.96603846278,"y":18836.433886329218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0245f0f4-59c6-4f14-8ec9-5a80ab0cd05e","savedPayload":{"position":{"x":23789.96603846278,"y":18836.433886329218},"targetPosition":{"x":23860.36154773088,"y":19280.89363959703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dbdd55de-9279-48ef-a0b1-e50024f284e9","savedPayload":{"position":{"x":23860.36154773088,"y":19280.89363959703},"targetPosition":{"x":24304.821300998694,"y":19351.289148865133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b7320c91-b8aa-4642-bd11-a1efb2a88d39","savedPayload":{"position":{"x":24304.821300998694,"y":19351.289148865133},"targetPosition":{"x":24623.01935253264,"y":19033.091097331187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"12f444b2-b8e7-48ef-9ea1-9cbe5489f942","savedPayload":{"position":{"x":24623.01935253264,"y":19033.091097331187},"targetPosition":{"x":24941.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Trading Strategy","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Strategy Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"458c8a52-4191-4fa5-b4f7-a0eb2edfcdc8","savedPayload":{"position":{"x":23673.031603122057,"y":19570.982297667073},"targetPosition":{"x":23570.047532580196,"y":19442.973500913187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a464e820-57a7-4233-b23b-e802fc9b3a33","savedPayload":{"position":{"x":23570.047532580196,"y":19442.973500913187},"targetPosition":{"x":23352.431821974955,"y":19172.245715531662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"3abb7e03-f8f3-4956-9729-756e7974c5a0","savedPayload":{"position":{"x":23534.01580878851,"y":19650.751238925084},"targetPosition":{"x":23475.69111797499,"y":19497.117910011708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d2e900e2-444c-4268-b07a-fc41811c82d8","savedPayload":{"position":{"x":23475.69111797499,"y":19497.117910011708},"targetPosition":{"x":23352.431821974955,"y":19172.245715531662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"5ef24a29-2154-4304-ae0d-e046db069042","savedPayload":{"position":{"x":23376.80753939302,"y":19682.75925339549},"targetPosition":{"x":23369.0567542045,"y":19519.26706893857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e960d99e-f263-4ee8-9801-9b97f534bd5e","savedPayload":{"position":{"x":23369.0567542045,"y":19519.26706893857},"targetPosition":{"x":23352.431821974955,"y":19172.245715531662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"6d7f55b1-11df-4598-bab9-32a02ae6fa33","savedPayload":{"position":{"x":23217.43367888208,"y":19666.326567848617},"targetPosition":{"x":23261.188708707676,"y":19506.62044651284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3a8be5c7-aff5-4283-bd17-dadd6dddda4d","savedPayload":{"position":{"x":23261.188708707676,"y":19506.62044651284},"targetPosition":{"x":23352.431821974955,"y":19172.245715531662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"87bdc7ca-4228-48a3-ab2d-4eba01abfa2e","savedPayload":{"position":{"x":24090.16004712051,"y":19461.6134806313},"targetPosition":{"x":23816.217404066585,"y":19104.60447750024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"3d4e39c7-4178-4557-95b9-0bb94a15135c","savedPayload":{"position":{"x":23458.034916247892,"y":19095.896634054898},"targetPosition":{"x":23096.330833588872,"y":19175.230567710623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 4,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 4,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"83329324-581e-42e2-948e-7d06a3d9066c","savedPayload":{"position":{"x":23395.314169592093,"y":19811.027853873587},"targetPosition":{"x":23255.299233616654,"y":19513.51419379196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"4a04b54a-70b9-4e92-a474-d6ef03a97f26","savedPayload":{"position":{"x":23255.299233616654,"y":19513.51419379196},"targetPosition":{"x":23096.330833588872,"y":19175.230567710623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"b3a7f670-c86e-4382-93ee-bb6dbabfd159","savedPayload":{"position":{"x":22823.906812133944,"y":19431.684029138312},"targetPosition":{"x":23096.330833588872,"y":19175.230567710623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"a464e820-57a7-4233-b23b-e802fc9b3a33"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"0e17c75c-09f4-49ae-8e6a-55fdfd89f428","savedPayload":{"position":{"x":22759.97151481076,"y":18968.006912231718},"targetPosition":{"x":23096.330833588872,"y":19175.230567710623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"e960d99e-f263-4ee8-9801-9b97f534bd5e"}}}],"id":"9ae59a68-71fd-4ec8-9a70-da743f33baee","savedPayload":{"position":{"x":23932.68597436272,"y":19539.271099330323},"targetPosition":{"x":23816.217404066585,"y":19104.60447750024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"5eb17be1-910b-4da5-959b-e7cf21dfa896","savedPayload":{"position":{"x":23232.584473975658,"y":19125.115409062902},"targetPosition":{"x":22859.18144953736,"y":19079.566504230155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 4,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 4,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"f790de9e-e87a-4f2a-86d5-c8f69d4b9525","savedPayload":{"position":{"x":22892.2516308732,"y":19781.12411657158},"targetPosition":{"x":22876.75695077428,"y":19453.107373591916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"a4e077b1-7bc7-4d90-b796-b4e808985b89","savedPayload":{"position":{"x":22876.75695077428,"y":19453.107373591916},"targetPosition":{"x":22859.18144953736,"y":19079.566504230155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"b158074f-5013-4899-b61b-232eb519370c","savedPayload":{"position":{"x":22509.604963398855,"y":19212.216856709278},"targetPosition":{"x":22859.18144953736,"y":19079.566504230155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"a464e820-57a7-4233-b23b-e802fc9b3a33"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"365ee7e7-0529-4acc-a77f-d596c195399f","savedPayload":{"position":{"x":22627.923464950298,"y":18759.529686353388},"targetPosition":{"x":22859.18144953736,"y":19079.566504230155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"e960d99e-f263-4ee8-9801-9b97f534bd5e"}}}],"id":"504f327c-a08d-4c3d-8e77-850299cc30ed","savedPayload":{"position":{"x":23757.480617567562,"y":19550.754665118457},"targetPosition":{"x":23816.217404066585,"y":19104.60447750024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"e2422730-fb47-4014-a707-8c346d6bc327","savedPayload":{"position":{"x":23864.690743282812,"y":16265.600788433647},"targetPosition":{"x":24093.576266964872,"y":16451.054714194237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bbd7ee22-fb16-4b59-9e0c-04018e9dd3fa","savedPayload":{"position":{"x":24093.576266964872,"y":16451.054714194237},"targetPosition":{"x":24361.04975966745,"y":16667.77918478664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"a3a9eca0-36f3-4058-b8d7-872ce77209cd","savedPayload":{"position":{"x":24325.220462138717,"y":16325.366959763163},"targetPosition":{"x":24361.04975966745,"y":16667.77918478664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"a464e820-57a7-4233-b23b-e802fc9b3a33"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"d480fdc6-89e5-4547-a2ae-17ff5e4fc917","savedPayload":{"position":{"x":24577.823431116416,"y":16400.01107775219},"targetPosition":{"x":24361.04975966745,"y":16667.77918478664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"d2e900e2-444c-4268-b07a-fc41811c82d8"}}}],"id":"f9500afd-e0f4-45d3-9647-45ec778554e8","savedPayload":{"position":{"x":23591.217404066585,"y":19494.31590920324},"targetPosition":{"x":23816.217404066585,"y":19104.60447750024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"03ebe379-fb32-47fc-bfd6-b9ccc73bfd16","savedPayload":{"position":{"x":23985.374823299426,"y":16227.308930056797},"targetPosition":{"x":24193.119737565674,"y":16435.23143919021},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"054fcea5-2f72-4439-be45-c289a3bdab14","savedPayload":{"position":{"x":24193.119737565674,"y":16435.23143919021},"targetPosition":{"x":24422.55710963242,"y":16664.888943543632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"a0b737cf-ec7b-4026-870c-cebec148464f","savedPayload":{"position":{"x":24422.555320020856,"y":16339.206199980796},"targetPosition":{"x":24422.55710963242,"y":16664.888943543632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"e960d99e-f263-4ee8-9801-9b97f534bd5e"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"fceb54ef-473e-4062-9407-ec64e9040504","savedPayload":{"position":{"x":24653.120211422192,"y":16434.28466067404},"targetPosition":{"x":24422.55710963242,"y":16664.888943543632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"3a8be5c7-aff5-4283-bd17-dadd6dddda4d"}}}],"id":"354102dd-fd58-4f84-8e90-0d891defa0c8","savedPayload":{"position":{"x":23459.208400935528,"y":19378.547120554165},"targetPosition":{"x":23816.217404066585,"y":19104.60447750024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"strategy\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"64c0d038-c401-4317-84fd-b73e1b210d00","savedPayload":{"position":{"x":23164.217471321463,"y":19279.307332944445},"targetPosition":{"x":23381.550782236503,"y":19221.073047796377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"a464e820-57a7-4233-b23b-e802fc9b3a33"}}},"id":"01f6ebd3-e14f-4434-a0fb-1d8167122ce3","savedPayload":{"position":{"x":23381.550782236503,"y":19221.073047796377},"targetPosition":{"x":23816.217404066585,"y":19104.60447750024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"strategy\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"56f86edf-c2cc-491b-8cea-4bae0f03ebfd","savedPayload":{"position":{"x":23146.99212263926,"y":19016.499297751707},"targetPosition":{"x":23370.06721644837,"y":19045.86769100122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"e960d99e-f263-4ee8-9801-9b97f534bd5e"}}},"id":"df6a3044-b207-4564-8c28-8d64c679ee9a","savedPayload":{"position":{"x":23370.06721644837,"y":19045.86769100122},"targetPosition":{"x":23816.217404066585,"y":19104.60447750024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"b02b7fee-30b0-41f0-ae06-a073c57289d9","savedPayload":{"position":{"x":23816.217404066585,"y":19104.60447750024},"targetPosition":{"x":24041.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Strategy Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"b037ec89-e05b-432c-9b61-da05bda134cc","savedPayload":{"position":{"x":23479.661122517937,"y":18350.40302067966},"targetPosition":{"x":23591.84654970082,"y":18341.995885151187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0316c81d-7b05-42cb-876e-19d25eb1896a","savedPayload":{"position":{"x":23591.84654970082,"y":18341.995885151187},"targetPosition":{"x":23816.217404066585,"y":18325.181614094243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"ed7a2560-35b9-4142-bd68-77347bf66b89","savedPayload":{"position":{"x":23502.047513899164,"y":18201.879018370582},"targetPosition":{"x":23606.770810621638,"y":18242.979883611803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5d9060d4-50fb-4cda-8037-85f7ffae5c27","savedPayload":{"position":{"x":23606.770810621638,"y":18242.979883611803},"targetPosition":{"x":23816.217404066585,"y":18325.181614094243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.strategyName","project":"Superalgos","id":"925d79c1-efdd-4555-baba-72e686294057","savedPayload":{"position":{"x":23586.6591050689,"y":18077.776607351676},"targetPosition":{"x":23663.17853806813,"y":18160.24494293253},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1a4951ef-23ae-4228-8479-a0fe687c2d82","savedPayload":{"position":{"x":23663.17853806813,"y":18160.24494293253},"targetPosition":{"x":23816.217404066585,"y":18325.181614094243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Triggered By Situation","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.situationName","project":"Superalgos","id":"24317532-e6bf-4827-9196-e052fe28bcb3","savedPayload":{"position":{"x":23716.737532702904,"y":18002.67579214142},"targetPosition":{"x":23749.897489824132,"y":18110.177732792363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6c79326f-b90c-4155-8f61-8ee2322b9b09","savedPayload":{"position":{"x":23749.897489824132,"y":18110.177732792363},"targetPosition":{"x":23816.217404066585,"y":18325.181614094243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"2a35de7b-ad59-439b-aa6c-0668ffd92816","savedPayload":{"position":{"x":23866.519168901043,"y":17991.45121024326},"targetPosition":{"x":23849.751913956225,"y":18102.694678193588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6a34a5de-3b89-4f07-a947-5b94c8926dc1","savedPayload":{"position":{"x":23849.751913956225,"y":18102.694678193588},"targetPosition":{"x":23816.217404066585,"y":18325.181614094243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"33bd5e59-f2bf-4b5c-bd74-6975e07b3056","savedPayload":{"position":{"x":24006.337923663057,"y":18046.326027762596},"targetPosition":{"x":23942.9644171309,"y":18139.277889873145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a0c5053d-5b1e-4f7e-8edb-58baaaa8a45a","savedPayload":{"position":{"x":23942.9644171309,"y":18139.277889873145},"targetPosition":{"x":23816.217404066585,"y":18325.181614094243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b256b76c-3834-4d62-aa56-f42cce9f47e9","savedPayload":{"position":{"x":23816.217404066585,"y":18325.181614094243},"targetPosition":{"x":24041.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d54a124c-6029-41a6-9bbd-bb3fe8b1a318","savedPayload":{"position":{"x":24041.217404066585,"y":18714.893045797242},"targetPosition":{"x":24491.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"62890699-eabf-4ea8-8ca0-cac07cc06dea","savedPayload":{"position":{"x":24491.217404066585,"y":18714.893045797242},"targetPosition":{"x":24941.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Trading Position","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Position Objects","config":"{ \n \"codeName\": \"Position-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Left Exit Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.exitTargetRate","project":"Superalgos","id":"594bc655-cbf0-4e81-8fcc-b0f001e71fc4","savedPayload":{"position":{"x":23372.89131831053,"y":19594.166578643504},"targetPosition":{"x":23258.289226615554,"y":19452.589943059153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3b122c9b-56d5-4cb6-86ba-12d1919aeeba","savedPayload":{"position":{"x":23258.289226615554,"y":19452.589943059153},"targetPosition":{"x":23028.47649584858,"y":19168.88288477962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Right Exit Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.exitTargetRate","project":"Superalgos","id":"ef80ea85-cfba-4fa6-9646-3688f54f33ba","savedPayload":{"position":{"x":23056.792676404817,"y":19714.77684558158},"targetPosition":{"x":23047.457563011074,"y":19533.740963507993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"eb3dd27b-831c-47ae-8a19-1b01626add98","savedPayload":{"position":{"x":23047.457563011074,"y":19533.740963507993},"targetPosition":{"x":23028.47649584858,"y":19168.88288477962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Left Entry Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.entryTargetRate","project":"Superalgos","id":"cdc9f3f0-3bca-4c9c-901f-1371aad3dcfe","savedPayload":{"position":{"x":22730.669448976547,"y":19627.42686922161},"targetPosition":{"x":22829.732153144694,"y":19474.879679402802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b61fa42b-45d1-416b-b06b-734d33223a80","savedPayload":{"position":{"x":22829.732153144694,"y":19474.879679402802},"targetPosition":{"x":23028.47649584858,"y":19168.88288477962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Right Entry Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.entryTargetRate","project":"Superalgos","id":"c450be56-8c02-4039-9b4a-8e0bde52fcc6","savedPayload":{"position":{"x":22517.899313523405,"y":19364.533311359763},"targetPosition":{"x":22687.304882078766,"y":19299.63546617169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"467129cb-1aa4-4639-ab0f-74d14146f721","savedPayload":{"position":{"x":22687.304882078766,"y":19299.63546617169},"targetPosition":{"x":23028.47649584858,"y":19168.88288477962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"774f0a60-aa67-408f-9768-8a24f5b9c033","savedPayload":{"position":{"x":24079.821300998694,"y":19337.541618092513},"targetPosition":{"x":23963.352730702558,"y":18902.87499626243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Entry Target Rate Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 2,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 3,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"bc128809-8c93-4f5d-9de9-4e0b28c1132e","savedPayload":{"position":{"x":21462.0855205249,"y":19494.420337141244},"targetPosition":{"x":21975.50998714314,"y":18981.053483751624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"cbd2cb8e-ca62-4b68-9bca-11ad55e50fb1","savedPayload":{"position":{"x":21975.50998714314,"y":18981.053483751624},"targetPosition":{"x":22489.031257440536,"y":18467.716125216677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"e1fc573d-a98e-4801-af1f-08f56d98a78a","savedPayload":{"position":{"x":21762.882913942445,"y":18467.716005129925},"targetPosition":{"x":22489.031257440536,"y":18467.716125216677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"b61fa42b-45d1-416b-b06b-734d33223a80"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"72aece06-d0ac-4068-8310-7037f0ba4943","savedPayload":{"position":{"x":21975.60058357288,"y":17954.297287620375},"targetPosition":{"x":22489.031257440536,"y":18467.716125216677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"467129cb-1aa4-4639-ab0f-74d14146f721"}}}],"id":"543ebae2-5624-49ad-a00f-df63335e92a9","savedPayload":{"position":{"x":23738.352730702558,"y":19292.58642796543},"targetPosition":{"x":23963.352730702558,"y":18902.87499626243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Exit Target Rate Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 2,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 3,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"8737606b-fbf1-4e8e-a124-930ec555d3d6","savedPayload":{"position":{"x":21256.28928373682,"y":19005.553773101605},"targetPosition":{"x":21885.1239293732,"y":18642.568827656476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"477ff931-5b51-4d4f-acff-3a14c7028a52","savedPayload":{"position":{"x":21885.1239293732,"y":18642.568827656476},"targetPosition":{"x":22513.99599403495,"y":18279.565926553114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Exit Target Rate","project":"Superalgos","id":"b849d38a-644a-470a-a110-d250b5e9d5f3","savedPayload":{"position":{"x":21812.569736612473,"y":18091.692025952238},"targetPosition":{"x":22513.99599403495,"y":18279.565926553114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Exit Target Rate","id":"3b122c9b-56d5-4cb6-86ba-12d1919aeeba"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"dc283f46-e843-40b1-ab59-6d38ab0b7741","savedPayload":{"position":{"x":22150.94314223121,"y":17650.710827287014},"targetPosition":{"x":22513.99599403495,"y":18279.565926553114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"eb3dd27b-831c-47ae-8a19-1b01626add98"}}}],"id":"b066c240-8552-4622-9597-77e812491910","savedPayload":{"position":{"x":23528.686108872476,"y":19019.343566558568},"targetPosition":{"x":23963.352730702558,"y":18902.87499626243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"d99cb56a-d182-4672-9e89-54bb809eff30","savedPayload":{"position":{"x":23963.352730702558,"y":18902.87499626243},"targetPosition":{"x":24188.352730702558,"y":18513.163564559432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Position Object","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"482e894d-68a1-499f-b55e-97827c1df506","savedPayload":{"position":{"x":23302.956041198773,"y":19420.909541569563},"targetPosition":{"x":23308.310523146647,"y":19195.973262763608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5a612794-8d2e-4689-82ce-f6bdcba13755","savedPayload":{"position":{"x":23308.310523146647,"y":19195.973262763608},"targetPosition":{"x":23319.019487042395,"y":18746.1007051517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"d1f7c811-2a35-44a0-8908-2076f59ab2ad","savedPayload":{"position":{"x":23113.491104760207,"y":19389.049446558405},"targetPosition":{"x":23182.000565520935,"y":19174.733199422837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"32444aa5-bc40-4905-97e7-f795118fc229","savedPayload":{"position":{"x":23182.000565520935,"y":19174.733199422837},"targetPosition":{"x":23319.019487042395,"y":18746.1007051517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Situation Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.situationName","project":"Superalgos","id":"8ae3f86b-d0f8-4851-a477-02d0960fb4e5","savedPayload":{"position":{"x":22940.67685552979,"y":19305.101468281875},"targetPosition":{"x":23066.79106603399,"y":19118.767880571817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8fd749c8-cdc1-4a20-8901-d22fdd70612d","savedPayload":{"position":{"x":23066.79106603399,"y":19118.767880571817},"targetPosition":{"x":23319.019487042395,"y":18746.1007051517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Entry Target Rate","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.entryTargetRate","project":"Superalgos","id":"b97f9930-22b1-4e18-9d12-f2adc9de796d","savedPayload":{"position":{"x":22798.513676214257,"y":19175.866572682087},"targetPosition":{"x":22972.01561315697,"y":19032.61128350529},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"08193c38-6100-40cf-84e9-533cd29ca463","savedPayload":{"position":{"x":22972.01561315697,"y":19032.61128350529},"targetPosition":{"x":23319.019487042395,"y":18746.1007051517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Target Rate","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitTargetRate","project":"Superalgos","id":"305c84ca-413b-462a-b908-8be894e80197","savedPayload":{"position":{"x":22698.51878212477,"y":19011.814602411014},"targetPosition":{"x":22905.352350430647,"y":18923.243303324576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"87fcd4c7-8315-4b89-8c6a-ca8d6ede7a25","savedPayload":{"position":{"x":22905.352350430647,"y":18923.243303324576},"targetPosition":{"x":23319.019487042395,"y":18746.1007051517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Position Begin Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"c7d06e13-042f-4e12-8093-b9f27dc8e655","savedPayload":{"position":{"x":22648.793164887924,"y":18826.236072445383},"targetPosition":{"x":22872.201938939415,"y":18799.524283347488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"67fb7b91-c601-48dd-9d79-5188dc43a921","savedPayload":{"position":{"x":22872.201938939415,"y":18799.524283347488},"targetPosition":{"x":23319.019487042395,"y":18746.1007051517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Position End Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"4f114564-7657-4037-9f5e-43e2fcfb75a5","savedPayload":{"position":{"x":22653.365298282617,"y":18634.165451604997},"targetPosition":{"x":22875.25002786921,"y":18671.47720278723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a0921f86-e8f0-40d9-99ee-0a316dd6ad67","savedPayload":{"position":{"x":22875.25002786921,"y":18671.47720278723},"targetPosition":{"x":23319.019487042395,"y":18746.1007051517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"48b097fa-bc1f-4cd9-bcf4-284bd77c5055","savedPayload":{"position":{"x":22711.864775252736,"y":18451.163159302385},"targetPosition":{"x":22914.249679182623,"y":18549.47567458549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5e243e8e-1909-4a9d-a605-984e530846c3","savedPayload":{"position":{"x":22914.249679182623,"y":18549.47567458549},"targetPosition":{"x":23319.019487042395,"y":18746.1007051517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"0cea2f32-e0b8-4011-8389-eb24536ec638","savedPayload":{"position":{"x":22819.552316083948,"y":18292.054952903356},"targetPosition":{"x":22986.041373070097,"y":18443.403536986138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b98c147d-3f4d-41d6-b821-df00d7eeab29","savedPayload":{"position":{"x":22986.041373070097,"y":18443.403536986138},"targetPosition":{"x":23319.019487042395,"y":18746.1007051517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"95d9e4b7-2951-4dac-b0e6-c9cdb77cd0b9","savedPayload":{"position":{"x":22967.703716660573,"y":18169.730833037425},"targetPosition":{"x":23084.808973454514,"y":18361.854123742185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"298d34c8-3b72-4c1f-92bd-b3e2c2f3e73e","savedPayload":{"position":{"x":23084.808973454514,"y":18361.854123742185},"targetPosition":{"x":23319.019487042395,"y":18746.1007051517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3d274e02-8896-4311-a0c8-9041b6507090","savedPayload":{"position":{"x":23319.019487042395,"y":18746.1007051517},"targetPosition":{"x":24188.352730702558,"y":18513.163564559432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"a"}}},{"type":"Plotter Panel","name":"Position Combined Statistics","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Profit Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.profitLoss","project":"Superalgos","id":"96dd9046-7942-489e-8960-2de57321551b","savedPayload":{"position":{"x":23082.929900924002,"y":18150.514992281533},"targetPosition":{"x":23191.596556381523,"y":18121.3978497075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e226898a-74c0-4e4e-95e2-b2435c464dd5","savedPayload":{"position":{"x":23191.596556381523,"y":18121.3978497075},"targetPosition":{"x":23408.929867296563,"y":18063.163564559432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ROI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ROI","project":"Superalgos","id":"b7079949-8602-4b96-97f3-bc704e9e77e7","savedPayload":{"position":{"x":23116.646293519316,"y":17894.413564559432},"targetPosition":{"x":23214.074151445064,"y":17950.663564559432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"06a9c88b-3edb-4a5e-a239-c2cad3cbad17","savedPayload":{"position":{"x":23214.074151445064,"y":17950.663564559432},"targetPosition":{"x":23408.929867296563,"y":18063.163564559432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFail","project":"Superalgos","id":"7dc1c993-470e-4c7b-b879-9a91361859a4","savedPayload":{"position":{"x":23321.578439574463,"y":17737.16359818687},"targetPosition":{"x":23350.695582148495,"y":17845.83025364439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2102dc89-6799-4287-8c4d-d3591c9fd17e","savedPayload":{"position":{"x":23350.695582148495,"y":17845.83025364439},"targetPosition":{"x":23408.929867296563,"y":18063.163564559432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"05d6bb3e-f975-471f-be1f-3215025ce6fe","savedPayload":{"position":{"x":23408.929867296563,"y":18063.163564559432},"targetPosition":{"x":24188.352730702558,"y":18513.163564559432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"a"}}}],"id":"8854b5f8-8407-4a0d-9099-5456a8e4cced","savedPayload":{"position":{"x":24188.352730702558,"y":18513.163564559432},"targetPosition":{"x":24623.01935253264,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Position Base Asset","config":"{ \n \"codeName\": \"Position-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Left Entry Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.entryTargetRate","project":"Superalgos","id":"2d03dfa3-bce6-478b-8f65-a50344ae4601","savedPayload":{"position":{"x":23729.694148615177,"y":19125.127778141414},"targetPosition":{"x":23683.93627626915,"y":19022.35391415662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1c279ac2-347d-453f-9b5e-436216cebd7d","savedPayload":{"position":{"x":23683.93627626915,"y":19022.35391415662},"targetPosition":{"x":23592.420531577092,"y":18816.806186187037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Right Entry Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.entryTargetRate","project":"Superalgos","id":"174cdc36-dc92-4e69-aecb-3418b9863d4e","savedPayload":{"position":{"x":23471.47134860555,"y":19131.889580129842},"targetPosition":{"x":23511.7877429294,"y":19026.861782148906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"609e9ed3-5503-4a3e-949b-d2ab2cf10f10","savedPayload":{"position":{"x":23511.7877429294,"y":19026.861782148906},"targetPosition":{"x":23592.420531577092,"y":18816.806186187037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Right Exit Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\n\nif (record.exitTargetRate > 0) {\n y = record.exitTargetRate\n} else {\n y = record.candleClose\n}","project":"Superalgos","id":"ce2f05dc-daa2-472f-89e4-66d37b7eb0ae","savedPayload":{"position":{"x":23284.098939622716,"y":18954.079803225122},"targetPosition":{"x":23386.872803607508,"y":18908.321930879094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"93ba04d2-21ec-41a2-9a2e-eb47a8d39149","savedPayload":{"position":{"x":23386.872803607508,"y":18908.321930879094},"targetPosition":{"x":23592.420531577092,"y":18816.806186187037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0ac578ec-3648-4413-82ea-944a6fc7db1d","savedPayload":{"position":{"x":23592.420531577092,"y":18816.806186187037},"targetPosition":{"x":23753.686108872476,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Profit Triangle","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.ROIInBaseAsset > 0 && record.exitTargetRate > 0","project":"Superalgos","id":"35ca8e2f-58a1-49dc-ab7a-a40eb53483a5","savedPayload":{"position":{"x":23433.35213509526,"y":19088.149301927013},"targetPosition":{"x":23376.284353297036,"y":18641.78256002006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"3dba4bdb-c7ff-44ff-897b-a7b98a253585","savedPayload":{"position":{"x":23091.774400825314,"y":19495.62920136998},"targetPosition":{"x":23234.029377061175,"y":19068.70588069502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"b672a718-2e17-4659-aff7-63a98fab5c1f","savedPayload":{"position":{"x":23234.029377061175,"y":19068.70588069502},"targetPosition":{"x":23376.284353297036,"y":18641.78256002006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"33837834-ffbd-46c0-8d62-2d6122bcff17","savedPayload":{"position":{"x":22749.479570129748,"y":19287.62755984479},"targetPosition":{"x":23062.881961713392,"y":18964.705059932425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2bdd5fe6-32ba-4120-a4f7-bd4e4099a206","savedPayload":{"position":{"x":23062.881961713392,"y":18964.705059932425},"targetPosition":{"x":23376.284353297036,"y":18641.78256002006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"8b93b7e7-30ed-46a5-ba59-95cb38ba87fa","savedPayload":{"position":{"x":22953.80773364684,"y":18796.745477677625},"targetPosition":{"x":23376.284353297036,"y":18641.78256002006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"1c279ac2-347d-453f-9b5e-436216cebd7d"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"bcc031f8-556b-4d6f-b438-4f9b14804d0f","savedPayload":{"position":{"x":22928.410181437728,"y":18598.09358908528},"targetPosition":{"x":23376.284353297036,"y":18641.78256002006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"609e9ed3-5503-4a3e-949b-d2ab2cf10f10"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"fa6bc1ba-8d7c-4c08-8dfc-5cca7451113f","savedPayload":{"position":{"x":22991.719601781602,"y":18408.094836996635},"targetPosition":{"x":23376.284353297036,"y":18641.78256002006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"93ba04d2-21ec-41a2-9a2e-eb47a8d39149"}}}],"id":"2628b290-a09a-4807-8a45-7ff5a880d195","savedPayload":{"position":{"x":23376.284353297036,"y":18641.78256002006},"targetPosition":{"x":23753.686108872476,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Loss Triangle","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.ROIInBaseAsset < 0 && record.exitTargetRate > 0","project":"Superalgos","id":"9aba703c-bd76-446b-9017-0fc1e03d5ae2","savedPayload":{"position":{"x":23088.103835532216,"y":18767.805694402516},"targetPosition":{"x":23304.302818232918,"y":18373.14381395397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"a7260cb4-6c92-42da-9a63-bc05e0cc0451","savedPayload":{"position":{"x":22572.250968109543,"y":18896.689503202713},"targetPosition":{"x":22938.27689317123,"y":18634.916658578342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ec365a09-3739-47f0-8068-1c88d4d815c3","savedPayload":{"position":{"x":22938.27689317123,"y":18634.916658578342},"targetPosition":{"x":23304.302818232918,"y":18373.14381395397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"6c71aefb-c41b-4fe1-b0cc-25827fd91a9e","savedPayload":{"position":{"x":22417.58893033126,"y":18527.216786932153},"targetPosition":{"x":22860.94587428209,"y":18450.180300443062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"a2f74418-ca41-437e-b377-414a234acf1b","savedPayload":{"position":{"x":22860.94587428209,"y":18450.180300443062},"targetPosition":{"x":23304.302818232918,"y":18373.14381395397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"1b7b3265-d7ca-43fb-9dc7-4703eb918db5","savedPayload":{"position":{"x":22871.4271355585,"y":18250.185921368105},"targetPosition":{"x":23304.302818232918,"y":18373.14381395397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"1c279ac2-347d-453f-9b5e-436216cebd7d"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"36b61d3e-013b-483f-a3ec-d88d6c4693aa","savedPayload":{"position":{"x":22967.64473466043,"y":18074.544860899376},"targetPosition":{"x":23304.302818232918,"y":18373.14381395397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"609e9ed3-5503-4a3e-949b-d2ab2cf10f10"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"10f40dfc-bf39-41dc-b2ca-3e93c13aa1a5","savedPayload":{"position":{"x":23130.541596054332,"y":17958.044985158944},"targetPosition":{"x":23304.302818232918,"y":18373.14381395397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"93ba04d2-21ec-41a2-9a2e-eb47a8d39149"}}}],"id":"e37cfbb4-fe54-49ad-9525-29b0d77e082b","savedPayload":{"position":{"x":23304.302818232918,"y":18373.14381395397},"targetPosition":{"x":23753.686108872476,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Empty Triangle","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.ROIInBaseAsset === 0 && record.exitTargetRate > 0","project":"Superalgos","id":"19cb9968-c1eb-451c-913b-807689e76acc","savedPayload":{"position":{"x":22983.859234293097,"y":18274.76639558625},"targetPosition":{"x":23403.970426216838,"y":18113.500818290868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"c4823f51-eef8-488c-8b2f-a3eccff5a2ae","savedPayload":{"position":{"x":22515.050919681213,"y":17972.709799754663},"targetPosition":{"x":22959.510672949025,"y":18043.105309022765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c2a0e17f-1ee8-4132-84d3-59a06a3b122d","savedPayload":{"position":{"x":22959.510672949025,"y":18043.105309022765},"targetPosition":{"x":23403.970426216838,"y":18113.500818290868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"b7295cca-db57-485e-94e4-e8770da6bb6b","savedPayload":{"position":{"x":23054.2547435612,"y":17830.30664231844},"targetPosition":{"x":23403.970426216838,"y":18113.500818290868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"1c279ac2-347d-453f-9b5e-436216cebd7d"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"f60220b1-c42c-4160-807d-eb7563c58e50","savedPayload":{"position":{"x":23242.704848921454,"y":17693.389626367127},"targetPosition":{"x":23403.970426216838,"y":18113.500818290868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"609e9ed3-5503-4a3e-949b-d2ab2cf10f10"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"8ec2c8d2-ed4a-4927-9208-4acde0721ac9","savedPayload":{"position":{"x":23474.36593548494,"y":17669.041065023055},"targetPosition":{"x":23403.970426216838,"y":18113.500818290868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"93ba04d2-21ec-41a2-9a2e-eb47a8d39149"}}}],"id":"23c30ca5-95ec-47b2-a65f-01969b1a5a78","savedPayload":{"position":{"x":23403.970426216838,"y":18113.500818290868},"targetPosition":{"x":23753.686108872476,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"a1635ebb-9528-4f34-8729-4812e12a850f","savedPayload":{"position":{"x":23753.686108872476,"y":18396.694994263296},"targetPosition":{"x":24188.352730702558,"y":18280.22642396716},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Position Base Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Entry Target Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.entryTargetSizeInBaseAsset","project":"Superalgos","id":"31a77b72-a21e-4f05-acc9-2235fe404434","savedPayload":{"position":{"x":23222.055703842798,"y":17671.90220508309},"targetPosition":{"x":23385.05568702908,"y":17715.577918944142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c9bd8ca1-e2be-4ae1-b026-d80853994004","savedPayload":{"position":{"x":23385.05568702908,"y":17715.577918944142},"targetPosition":{"x":23711.05565340164,"y":17802.929346666242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Target Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitTargetSizeInBaseAsset","project":"Superalgos","id":"1ab726ad-0192-49ad-94c2-f931a565257f","savedPayload":{"position":{"x":23272.63029273577,"y":17549.804346666242},"targetPosition":{"x":23418.772079624392,"y":17634.179346666242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"917b6343-ae61-4086-b3d2-c03831ae6833","savedPayload":{"position":{"x":23418.772079624392,"y":17634.179346666242},"targetPosition":{"x":23711.05565340164,"y":17802.929346666242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Profit Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.profitLossInBaseAsset","project":"Superalgos","id":"d1dc5d27-95f5-480d-bd36-4c1291ae2b24","savedPayload":{"position":{"x":23353.08284542595,"y":17444.956538690552},"targetPosition":{"x":23472.40711475118,"y":17564.28080801578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"232bfbcc-1e50-40b0-84cf-d4bcebadfe2f","savedPayload":{"position":{"x":23472.40711475118,"y":17564.28080801578},"targetPosition":{"x":23711.05565340164,"y":17802.929346666242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ROI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ROIInBaseAsset + ' %'","project":"Superalgos","id":"6e6fe2c8-e8ca-4b85-b19c-25aad68a9485","savedPayload":{"position":{"x":23457.93065340164,"y":17364.50398600037},"targetPosition":{"x":23542.30565340164,"y":17510.645772888995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"dd5a890c-5c35-4b61-a80f-7e6d5fa1315f","savedPayload":{"position":{"x":23542.30565340164,"y":17510.645772888995},"targetPosition":{"x":23711.05565340164,"y":17802.929346666242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFailInBaseAsset","project":"Superalgos","id":"67b4e235-40db-4a56-8f55-64922adcbc02","savedPayload":{"position":{"x":23580.028511818487,"y":17313.9293971074},"targetPosition":{"x":23623.70422567954,"y":17476.92938029368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"24a6f905-7d60-4543-a3ff-98d142797358","savedPayload":{"position":{"x":23623.70422567954,"y":17476.92938029368},"targetPosition":{"x":23711.05565340164,"y":17802.929346666242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b4298480-8922-4c40-ac79-b4484f8558bd","savedPayload":{"position":{"x":23711.05565340164,"y":17802.929346666242},"targetPosition":{"x":24188.352730702558,"y":18280.22642396716},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"42a79594-bac8-40bf-a9eb-f13716e15465","savedPayload":{"position":{"x":24188.352730702558,"y":18280.22642396716},"targetPosition":{"x":24623.01935253264,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Position Quoted Asset","config":"{ \n \"codeName\": \"Position-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Left Entry Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.entryTargetRate","project":"Superalgos","id":"800c7bf9-3d8d-46ae-88ac-c168b80cbc78","savedPayload":{"position":{"x":23485.160640160142,"y":18580.87368809243},"targetPosition":{"x":23496.920092277753,"y":18468.9899748635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"17cf1421-4fc5-4cff-83d5-394cfcb4a88e","savedPayload":{"position":{"x":23496.920092277753,"y":18468.9899748635},"targetPosition":{"x":23520.438996512974,"y":18245.22254840564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Right Entry Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.entryTargetRate","project":"Superalgos","id":"4dbc8252-a487-41d9-9f3a-b054398acc8b","savedPayload":{"position":{"x":23258.152234521247,"y":18457.61818038496},"targetPosition":{"x":23345.581155185155,"y":18386.819636391854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a00d0039-31a4-4033-8ad5-b0e0d9d13e4e","savedPayload":{"position":{"x":23345.581155185155,"y":18386.819636391854},"targetPosition":{"x":23520.438996512974,"y":18245.22254840564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Right Exit Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\n\nif (record.exitTargetRate > 0) {\n y = record.exitTargetRate\n} else {\n y = record.candleClose\n}","project":"Superalgos","id":"8aab882e-d77b-4fcb-8eb0-1d4f6381c86d","savedPayload":{"position":{"x":23184.787856826184,"y":18209.944192052808},"targetPosition":{"x":23296.671570055114,"y":18221.70364417042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2af047d2-b4f1-4395-8d35-67c70c582c0e","savedPayload":{"position":{"x":23296.671570055114,"y":18221.70364417042},"targetPosition":{"x":23520.438996512974,"y":18245.22254840564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2d8c4071-9ea0-45cf-9b0d-e73fd57a9928","savedPayload":{"position":{"x":23520.438996512974,"y":18245.22254840564},"targetPosition":{"x":23870.154679168612,"y":17962.028372433215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Profit Triangle","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.ROIInQuotedAsset > 0 && record.exitTargetRate > 0","project":"Superalgos","id":"264f839b-e67b-4629-8465-cb404eb93754","savedPayload":{"position":{"x":23247.01016635047,"y":18400.678381537567},"targetPosition":{"x":23420.771388529054,"y":17985.57955274254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"07f5de9d-d271-4377-95d5-7ca4b1ffee19","savedPayload":{"position":{"x":22747.45522138408,"y":18582.77745885173},"targetPosition":{"x":23084.11330495657,"y":18284.178505797136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"90188cf7-8395-4899-addc-0499321cff14","savedPayload":{"position":{"x":23084.11330495657,"y":18284.178505797136},"targetPosition":{"x":23420.771388529054,"y":17985.57955274254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"916fb502-a39c-4203-83fc-32d41c4c5755","savedPayload":{"position":{"x":22555.02002318022,"y":18231.49533791427},"targetPosition":{"x":22987.895705854637,"y":18108.537445328406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"88d51449-8118-4d83-b768-112f9e212cc7","savedPayload":{"position":{"x":22987.895705854637,"y":18108.537445328406},"targetPosition":{"x":23420.771388529054,"y":17985.57955274254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"b4c2062a-382b-43bc-a281-9df152bc8a49","savedPayload":{"position":{"x":22977.414444578226,"y":17908.54306625345},"targetPosition":{"x":23420.771388529054,"y":17985.57955274254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"17cf1421-4fc5-4cff-83d5-394cfcb4a88e"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"4d43870a-1769-43e3-a927-641900ff72c0","savedPayload":{"position":{"x":23054.745463467367,"y":17723.80670811817},"targetPosition":{"x":23420.771388529054,"y":17985.57955274254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"a00d0039-31a4-4033-8ad5-b0e0d9d13e4e"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"6347f1dc-7ab3-4570-877b-df9e04058758","savedPayload":{"position":{"x":23204.572405828352,"y":17590.917672293996},"targetPosition":{"x":23420.771388529054,"y":17985.57955274254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"2af047d2-b4f1-4395-8d35-67c70c582c0e"}}}],"id":"9cf82ef4-557e-498e-b121-ff28235b3a25","savedPayload":{"position":{"x":23420.771388529054,"y":17985.57955274254},"targetPosition":{"x":23870.154679168612,"y":17962.028372433215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Loss Triangle","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.ROIInQuotedAsset < 0 && record.exitTargetRate > 0","project":"Superalgos","id":"ba9c6218-12de-4eeb-80ad-a5c949ea925d","savedPayload":{"position":{"x":23108.18817207774,"y":17950.62852969988},"targetPosition":{"x":23492.752923593172,"y":17716.94080667645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"dd6fee79-df88-4f2c-8526-f364a1343f83","savedPayload":{"position":{"x":22597.004579874556,"y":17804.318748546008},"targetPosition":{"x":23044.878751733864,"y":17760.62977761123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"196adfa2-00ad-48a4-8eb3-c82256e91031","savedPayload":{"position":{"x":23044.878751733864,"y":17760.62977761123},"targetPosition":{"x":23492.752923593172,"y":17716.94080667645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"a04ad71d-d9f8-4122-913e-19892b51689b","savedPayload":{"position":{"x":22647.799684292782,"y":17407.01497136132},"targetPosition":{"x":23070.276303942977,"y":17561.977889018886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1fe378dc-3deb-4825-9401-83f963060acd","savedPayload":{"position":{"x":23070.276303942977,"y":17561.977889018886},"targetPosition":{"x":23492.752923593172,"y":17716.94080667645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"78ee45ea-40df-4cb4-9e16-0b07d9e298fd","savedPayload":{"position":{"x":23179.35053200953,"y":17394.018306764086},"targetPosition":{"x":23492.752923593172,"y":17716.94080667645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"17cf1421-4fc5-4cff-83d5-394cfcb4a88e"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"b719aa97-15aa-4d6c-a08e-451314cb604a","savedPayload":{"position":{"x":23350.49794735731,"y":17290.017486001492},"targetPosition":{"x":23492.752923593172,"y":17716.94080667645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"a00d0039-31a4-4033-8ad5-b0e0d9d13e4e"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"508f7dd3-087d-4952-9140-29936aac5aa4","savedPayload":{"position":{"x":23549.820705391397,"y":17270.5740647695},"targetPosition":{"x":23492.752923593172,"y":17716.94080667645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"2af047d2-b4f1-4395-8d35-67c70c582c0e"}}}],"id":"61faa796-9697-48b0-a582-613e1b351931","savedPayload":{"position":{"x":23492.752923593172,"y":17716.94080667645},"targetPosition":{"x":23870.154679168612,"y":17962.028372433215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Empty Triangle","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.ROIInQuotedAsset === 0 && record.exitTargetRate > 0","project":"Superalgos","id":"9b162bfd-0d6a-4ca2-ae2a-36b9b25d8180","savedPayload":{"position":{"x":23264.429348605416,"y":17471.52167124137},"targetPosition":{"x":23708.88910187323,"y":17541.917180509474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"93ec6c1e-fe4c-4857-b9e7-6914e626423a","savedPayload":{"position":{"x":23009.45773656195,"y":16975.528828564617},"targetPosition":{"x":23359.17341921759,"y":17258.723004537045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"29555fd1-c64d-4237-88f3-32fee8ae4c2c","savedPayload":{"position":{"x":23359.17341921759,"y":17258.723004537045},"targetPosition":{"x":23708.88910187323,"y":17541.917180509474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"c4b528b7-667e-4aa1-b397-0f5bb15abd95","savedPayload":{"position":{"x":23547.623524577844,"y":17121.805988585733},"targetPosition":{"x":23708.88910187323,"y":17541.917180509474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"17cf1421-4fc5-4cff-83d5-394cfcb4a88e"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"48fe8782-73d1-46d8-aa7d-55a843996fb3","savedPayload":{"position":{"x":23779.28461114133,"y":17097.45742724166},"targetPosition":{"x":23708.88910187323,"y":17541.917180509474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"a00d0039-31a4-4033-8ad5-b0e0d9d13e4e"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"339258b7-534f-41b7-b0ea-9f958bb982ab","savedPayload":{"position":{"x":23992.083277845657,"y":17192.201497853835},"targetPosition":{"x":23708.88910187323,"y":17541.917180509474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"2af047d2-b4f1-4395-8d35-67c70c582c0e"}}}],"id":"58c807a3-8443-43d9-82e9-81c3d0545399","savedPayload":{"position":{"x":23708.88910187323,"y":17541.917180509474},"targetPosition":{"x":23870.154679168612,"y":17962.028372433215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"d2ad64d7-e463-4f5f-9f3d-05c98a5e8101","savedPayload":{"position":{"x":23870.154679168612,"y":17962.028372433215},"targetPosition":{"x":24304.821300998694,"y":18078.49694272935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Position Quoted Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Entry Target Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.entryTargetSizeInQuotedAsset","project":"Superalgos","id":"8a47d5d4-b86c-40cb-a4f1-a64244e80bfd","savedPayload":{"position":{"x":23772.145637578804,"y":17068.52420200854},"targetPosition":{"x":23891.469906904033,"y":17187.848471333768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"38cae0a2-4954-4cbc-a178-3e665885c393","savedPayload":{"position":{"x":23891.469906904033,"y":17187.848471333768},"targetPosition":{"x":24130.118445554494,"y":17426.49700998423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Target Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitTargetSizeInQuotedAsset","project":"Superalgos","id":"4ece6618-31a7-4e14-86b6-d1aecf9d0494","savedPayload":{"position":{"x":23876.993445554494,"y":16988.071649318357},"targetPosition":{"x":23961.368445554494,"y":17134.21343620698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"821330e4-19c2-4267-a189-a2d28087850a","savedPayload":{"position":{"x":23961.368445554494,"y":17134.21343620698},"targetPosition":{"x":24130.118445554494,"y":17426.49700998423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Profit Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.profitLossInQuotedAsset","project":"Superalgos","id":"ec9c4116-3155-41cf-8e01-fbe6c8428c28","savedPayload":{"position":{"x":23999.09130397134,"y":16937.497060425387},"targetPosition":{"x":24042.767017832393,"y":17100.497043611667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"83330178-d79b-4709-bdee-5c3875214e06","savedPayload":{"position":{"x":24042.767017832393,"y":17100.497043611667},"targetPosition":{"x":24130.118445554494,"y":17426.49700998423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ROI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ROIInQuotedAsset + ' %'","project":"Superalgos","id":"7ad9a57d-8322-4677-8a2a-d108ea01fdca","savedPayload":{"position":{"x":24130.118445554494,"y":16920.24700998423},"targetPosition":{"x":24130.118445554494,"y":17088.99700998423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b5e39cc4-9b95-4e92-9814-41c34c2ea4a8","savedPayload":{"position":{"x":24130.118445554494,"y":17088.99700998423},"targetPosition":{"x":24130.118445554494,"y":17426.49700998423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFailInQuotedAsset","project":"Superalgos","id":"56c8470e-20fb-40c1-8224-37240bcad860","savedPayload":{"position":{"x":24261.145587137646,"y":16937.497060425387},"targetPosition":{"x":24217.469873276594,"y":17100.497043611667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"09ec6e2f-ad57-4127-94af-0046a7b0d400","savedPayload":{"position":{"x":24217.469873276594,"y":17100.497043611667},"targetPosition":{"x":24130.118445554494,"y":17426.49700998423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f15d0a31-30bd-49a6-8c45-1bcd1a9cc5a8","savedPayload":{"position":{"x":24130.118445554494,"y":17426.49700998423},"targetPosition":{"x":24304.821300998694,"y":18078.49694272935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"baed45c2-228e-4679-876e-1867bbef5e9f","savedPayload":{"position":{"x":24304.821300998694,"y":18078.49694272935},"targetPosition":{"x":24623.01935253264,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Stop Loss","config":"{ \n \"codeName\": \"Module-Name\", \n \"icon\": \"histogram|band|moving-average|oscillator|trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.stopLoss","project":"Superalgos","id":"eeef1100-0dcc-4367-99f1-b23a5e98b2ff","savedPayload":{"position":{"x":23663.26018878705,"y":17924.281426129244},"targetPosition":{"x":23703.5765831109,"y":17819.253628148308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7d0349ba-640b-43f2-b500-d62c06fecd81","savedPayload":{"position":{"x":23703.5765831109,"y":17819.253628148308},"targetPosition":{"x":23743.892977434745,"y":17714.225830167372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.stopLoss","project":"Superalgos","id":"79f690f8-360a-49a8-9df0-bc42d1975099","savedPayload":{"position":{"x":23602.29588944853,"y":17539.367988839556},"targetPosition":{"x":23673.094433441638,"y":17626.796909503464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a4c015cf-419c-44f6-9816-6828e5fbc3c3","savedPayload":{"position":{"x":23673.094433441638,"y":17626.796909503464},"targetPosition":{"x":23743.892977434745,"y":17714.225830167372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fdf923e9-1d23-41c0-9210-38d35313c4ab","savedPayload":{"position":{"x":23743.892977434745,"y":17714.225830167372},"targetPosition":{"x":24188.352730702558,"y":17643.83032089927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"New Polygon","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.stopLoss > 0","project":"Superalgos","id":"b8677c90-5e19-402b-b494-d2cce015c167","savedPayload":{"position":{"x":23386.446858933028,"y":17643.83032089927},"targetPosition":{"x":23787.399794817793,"y":17439.534596016474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.5,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.8,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"1eee2eba-1af0-4cc0-ad50-22ac23a10dac","savedPayload":{"position":{"x":22898.480288282168,"y":17298.74357748027},"targetPosition":{"x":23342.94004154998,"y":17369.13908674837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"83ae727f-2dc3-4153-9b7f-2bee0748e134","savedPayload":{"position":{"x":23342.94004154998,"y":17369.13908674837},"targetPosition":{"x":23787.399794817793,"y":17439.534596016474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"ac7ed016-4516-4ebc-a902-95e97ace1f55","savedPayload":{"position":{"x":23469.201743283847,"y":17121.33654448253},"targetPosition":{"x":23787.399794817793,"y":17439.534596016474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"7d0349ba-640b-43f2-b500-d62c06fecd81"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"6f873316-c57a-48b4-80c7-362f823d37b4","savedPayload":{"position":{"x":23717.00428554969,"y":16995.07484274866},"targetPosition":{"x":23787.399794817793,"y":17439.534596016474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"a4c015cf-419c-44f6-9816-6828e5fbc3c3"}}}],"id":"9d351f29-6a3e-4c2b-b008-ebe1414d2aa8","savedPayload":{"position":{"x":23787.399794817793,"y":17439.534596016474},"targetPosition":{"x":24188.352730702558,"y":17643.83032089927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"phase\", \n\"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"(record.positions !== record.previous.positions && record.stopLossPhase >= 0 ) || \n(record.stopLossPhase !== record.previous.stopLossPhase && record.stopLossPhase >= 0 ) ","project":"Superalgos","id":"ef8dedb9-454b-423b-94e7-1a522047aa12","savedPayload":{"position":{"x":23795.356128032043,"y":17120.333602136125},"targetPosition":{"x":23984.057005819763,"y":17242.877385014504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Begin","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 10\n }","project":"Superalgos","id":"860a9f6e-cc9d-46fb-83d6-fb908e12a30f","savedPayload":{"position":{"x":23995.832595974425,"y":17018.185739694727},"targetPosition":{"x":23984.057005819763,"y":17242.877385014504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"7d0349ba-640b-43f2-b500-d62c06fecd81"}}},"id":"d4a99750-dd06-453f-a126-ac48c25372ab","savedPayload":{"position":{"x":23984.057005819763,"y":17242.877385014504},"targetPosition":{"x":24188.352730702558,"y":17643.83032089927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"New Text","config":"{ \n\"codeName\": \"\", \n\"fontSize\": 10\n}","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"(record.positions !== record.previous.positions && record.stopLossPhase >= 0 ) || \n(record.stopLossPhase !== record.previous.stopLossPhase && record.stopLossPhase >= 0 ) ","project":"Superalgos","id":"8e0eb7c3-171a-4fc3-a3e4-3c67bb772343","savedPayload":{"position":{"x":24099.649214203688,"y":17040.271541864484},"targetPosition":{"x":24258.74823997066,"y":17199.370567631457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Begin","config":"{ \n\"offsetX\": -3,\n \"offsetY\": -15\n }","project":"Superalgos","id":"817671c1-fd3f-43ff-9670-9c3bcb94b8fb","savedPayload":{"position":{"x":24223.550485336607,"y":16977.140690997552},"targetPosition":{"x":24258.74823997066,"y":17199.370567631457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"7d0349ba-640b-43f2-b500-d62c06fecd81"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"record.stopLossPhase","project":"Superalgos","id":"ccafd036-b292-48b1-847e-6735a3eb8253","savedPayload":{"position":{"x":24360.896102412058,"y":16998.894099689074},"targetPosition":{"x":24258.74823997066,"y":17199.370567631457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"42f9061a-9d2a-4d3f-9f7a-c47c9e6e0601","savedPayload":{"position":{"x":24459.224707913043,"y":17097.22270519006},"targetPosition":{"x":24258.74823997066,"y":17199.370567631457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7e69ccc1-a9f7-4a64-aeaa-344eb46f63f7","savedPayload":{"position":{"x":24258.74823997066,"y":17199.370567631457},"targetPosition":{"x":24188.352730702558,"y":17643.83032089927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"41dd1d86-998c-46d7-a37e-1a1508fd8b51","savedPayload":{"position":{"x":24188.352730702558,"y":17643.83032089927},"targetPosition":{"x":24506.550782236503,"y":17962.028372433215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Stop Loss Panel","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Stop Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.stopLoss","project":"Superalgos","id":"1a5679d8-426b-4789-ac5b-c8d9c3a18fd8","savedPayload":{"position":{"x":24339.825176560207,"y":17177.646067947495},"targetPosition":{"x":24481.42226454642,"y":17352.503909275314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f590d585-66dd-47b9-99e8-38d081a1d1a0","savedPayload":{"position":{"x":24481.42226454642,"y":17352.503909275314},"targetPosition":{"x":24623.019352532636,"y":17527.361750603133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Stop Loss Phase","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.stopLossPhase","project":"Superalgos","id":"9067e496-6c73-4ada-b403-6a097667f8a2","savedPayload":{"position":{"x":24605.355967300642,"y":17190.324282623467},"targetPosition":{"x":24611.243762377973,"y":17302.670105283356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e78ebe16-bfdc-4814-b334-5aad14fbf307","savedPayload":{"position":{"x":24611.243762377973,"y":17302.670105283356},"targetPosition":{"x":24623.019352532636,"y":17527.361750603133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Initial Value","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.initialValue","project":"Superalgos","id":"cf99addf-c741-4b6a-b145-e06091ac92ea","savedPayload":{"position":{"x":24806.835026850207,"y":17244.310433921553},"targetPosition":{"x":24745.563135411016,"y":17338.660872815413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"216ff270-5de0-42df-8bde-2530f1e7e120","savedPayload":{"position":{"x":24745.563135411016,"y":17338.660872815413},"targetPosition":{"x":24623.019352532636,"y":17527.361750603133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Final Value","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.finalValue","project":"Superalgos","id":"8e9018c1-228b-41c2-8e5d-ea35b5f547d9","savedPayload":{"position":{"x":24938.10274647544,"y":17406.412567631593},"targetPosition":{"x":24833.074948494504,"y":17446.72896195544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1d498821-6624-4450-b9cf-4ca95c4a00c7","savedPayload":{"position":{"x":24833.074948494504,"y":17446.72896195544},"targetPosition":{"x":24623.019352532636,"y":17527.361750603133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1b6d3bd0-e594-4b09-9f1c-021177676d84","savedPayload":{"position":{"x":24623.019352532636,"y":17527.361750603133},"targetPosition":{"x":24506.550782236503,"y":17962.028372433215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9b8e4fc2-b62a-4d47-ac5f-08818e463da2","savedPayload":{"position":{"x":24506.550782236503,"y":17962.028372433215},"targetPosition":{"x":24623.01935253264,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Take Profit","config":"{ \n \"codeName\": \"Module-Name\", \n \"icon\": \"histogram|band|moving-average|oscillator|trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.takeProfit","project":"Superalgos","id":"4e73522f-8830-4026-8aa9-aa20558e6bb0","savedPayload":{"position":{"x":24028.05031928108,"y":17507.693261293964},"targetPosition":{"x":24115.479239944987,"y":17436.894717300856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9baaa58e-af64-4348-9320-fad9823153a9","savedPayload":{"position":{"x":24115.479239944987,"y":17436.894717300856},"targetPosition":{"x":24202.908160608895,"y":17366.09617330775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.takeProfit","project":"Superalgos","id":"f7740d4c-0742-4f8b-8ad3-b7fec1e92066","savedPayload":{"position":{"x":24167.710405974845,"y":17143.86629667384},"targetPosition":{"x":24185.30928329187,"y":17254.981234990795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bcbd8777-10f8-46a6-ba09-4d635570057d","savedPayload":{"position":{"x":24185.30928329187,"y":17254.981234990795},"targetPosition":{"x":24202.908160608895,"y":17366.09617330775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fc2dda29-1eb7-4f6f-8527-2e54ba32bb8b","savedPayload":{"position":{"x":24202.908160608895,"y":17366.09617330775},"targetPosition":{"x":24623.019352532636,"y":17527.361750603133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"New Polygon","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.takeProfit > 0","project":"Superalgos","id":"b96a45dc-f0db-4c23-8f66-081302ea7bbf","savedPayload":{"position":{"x":26569.112002446196,"y":16676.11048973976},"targetPosition":{"x":26146.905331465543,"y":16780.975770196957},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.5,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.8,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"5033856c-d71d-4608-a6f2-347ef82d8591","savedPayload":{"position":{"x":26084.06092851102,"y":15571.019366885823},"targetPosition":{"x":26115.567478095134,"y":16175.902612099606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1e3604e1-777b-4344-a47a-d3fefa10014b","savedPayload":{"position":{"x":26115.567478095134,"y":16175.902612099606},"targetPosition":{"x":26146.905331465543,"y":16780.975770196957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"74cef8d6-de4c-464d-8c00-97a88227f626","savedPayload":{"position":{"x":26476.857455321606,"y":16272.850166000817},"targetPosition":{"x":26146.905331465543,"y":16780.975770196957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"9baaa58e-af64-4348-9320-fad9823153a9"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"e3c98070-e46c-4d6d-9079-2b9d556722cc","savedPayload":{"position":{"x":26712.62787798267,"y":16563.643719677715},"targetPosition":{"x":26146.905331465543,"y":16780.975770196957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"bcbd8777-10f8-46a6-ba09-4d635570057d"}}}],"id":"a0b598d2-cdb6-4ce7-96c5-ef3317ae1768","savedPayload":{"position":{"x":24377.931786775873,"y":17149.959995027693},"targetPosition":{"x":24623.019352532636,"y":17527.361750603133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"phase\", \n\"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"(record.positions !== record.previous.positions && record.takeProfitPhase >= 0 ) || \n(record.takeProfitPhase !== record.previous.takeProfitPhase && record.takeProfitPhase >= 0 ) ","project":"Superalgos","id":"a404c20d-5c4d-4505-81f0-263987496ba0","savedPayload":{"position":{"x":24544.422670400563,"y":16877.501992021193},"targetPosition":{"x":24646.57053284196,"y":17077.978459963575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Begin","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 10\n }","project":"Superalgos","id":"c1ed6b36-4dd8-4ff5-ae66-6c6878b4edc1","savedPayload":{"position":{"x":24769.11431572034,"y":16889.277582175855},"targetPosition":{"x":24646.57053284196,"y":17077.978459963575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"9baaa58e-af64-4348-9320-fad9823153a9"}}},"id":"0da5f29a-4847-460d-b982-68b8d5cc7fe5","savedPayload":{"position":{"x":24646.57053284196,"y":17077.978459963575},"targetPosition":{"x":24623.019352532636,"y":17527.361750603133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"New Text","config":"{ \n\"codeName\": \"\", \n\"fontSize\": 10\n}","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"(record.positions !== record.previous.positions && record.takeProfitPhase >= 0 ) || \n(record.takeProfitPhase !== record.previous.takeProfitPhase && record.takeProfitPhase >= 0 ) ","project":"Superalgos","id":"81c4f7bc-db04-4c61-a8e8-5a4a6308dda0","savedPayload":{"position":{"x":24847.979243356996,"y":16960.312757032454},"targetPosition":{"x":24906.213528505064,"y":17177.646067947495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Begin","config":"{ \n\"offsetX\": -3,\n \"offsetY\": -15\n }","project":"Superalgos","id":"5833e42f-c848-4271-9e20-f48d5a98929a","savedPayload":{"position":{"x":24986.84631715276,"y":16967.590471985626},"targetPosition":{"x":24906.213528505064,"y":17177.646067947495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"9baaa58e-af64-4348-9320-fad9823153a9"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"record.takeProfitPhase","project":"Superalgos","id":"00f3fb76-f50d-4879-b1d2-49c51824aef9","savedPayload":{"position":{"x":25094.914406292784,"y":17055.102285069115},"targetPosition":{"x":24906.213528505064,"y":17177.646067947495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"e4d1b248-ee99-42e0-9c77-18b9792b6631","savedPayload":{"position":{"x":25130.90517382484,"y":17189.421658102157},"targetPosition":{"x":24906.213528505064,"y":17177.646067947495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f26f4f43-95e1-406d-94e8-7c818e363777","savedPayload":{"position":{"x":24906.213528505064,"y":17177.646067947495},"targetPosition":{"x":24623.019352532636,"y":17527.361750603133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"95465ef6-b26a-4ca3-817c-26b50e9ef8e0","savedPayload":{"position":{"x":24623.019352532636,"y":17527.361750603133},"targetPosition":{"x":24739.487922828772,"y":17962.028372433215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Take Profit Panel","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Take Profit","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.takeProfit","project":"Superalgos","id":"64f4a076-de71-444a-a543-f62da7701e6f","savedPayload":{"position":{"x":24987.29046509461,"y":17199.37056763146},"targetPosition":{"x":25022.488219728664,"y":17421.600444265365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"321eb006-13d4-4f66-aeab-f6fd2aa4758b","savedPayload":{"position":{"x":25022.488219728664,"y":17421.600444265365},"targetPosition":{"x":25057.685974362717,"y":17643.83032089927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Take Profit Phase","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.takeProfitPhase","project":"Superalgos","id":"0e3f0594-6a97-4e2e-a261-84be8b4ef02c","savedPayload":{"position":{"x":25210.907768024816,"y":17343.115618985696},"targetPosition":{"x":25159.833836804115,"y":17443.353852956887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"eccb236b-4d20-4df2-9810-543bfbb3fc25","savedPayload":{"position":{"x":25159.833836804115,"y":17443.353852956887},"targetPosition":{"x":25057.685974362717,"y":17643.83032089927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Initial Value","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.initialValue","project":"Superalgos","id":"9c72c8d4-8b90-42ff-9ffc-a247ecf7f8cb","savedPayload":{"position":{"x":25358.40067627629,"y":17490.60852723717},"targetPosition":{"x":25258.1624423051,"y":17541.68245845787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"59c28a01-9fc1-45f7-b0c0-2fd02035298e","savedPayload":{"position":{"x":25258.1624423051,"y":17541.68245845787},"targetPosition":{"x":25057.685974362717,"y":17643.83032089927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Final Value","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.finalValue","project":"Superalgos","id":"79ac8b14-7f99-4d31-872a-bf6d3ab7248c","savedPayload":{"position":{"x":25391.030789313576,"y":17696.626952850347},"targetPosition":{"x":25279.915850996622,"y":17679.028075533322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"653490ef-1b6d-4fdc-b1f0-0f8bfc1ad7a7","savedPayload":{"position":{"x":25279.915850996622,"y":17679.028075533322},"targetPosition":{"x":25057.685974362717,"y":17643.83032089927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"33aa2293-7958-4cc3-bb41-fc97c17ccd67","savedPayload":{"position":{"x":25057.685974362717,"y":17643.83032089927},"targetPosition":{"x":24739.487922828772,"y":17962.028372433215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"78a2df79-8912-44d7-a8c7-4b6a0a7235c2","savedPayload":{"position":{"x":24739.487922828772,"y":17962.028372433215},"targetPosition":{"x":24623.01935253264,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cd6f9452-2cce-424d-8059-e3b312f627c4","savedPayload":{"position":{"x":24623.01935253264,"y":18396.694994263296},"targetPosition":{"x":24941.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Trading Stages","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Trigger Stage Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate * 0.90","project":"Superalgos","id":"11876454-5f52-49ff-b29f-a5ddbd44e55f","savedPayload":{"position":{"x":23953.634761775054,"y":18983.6418680964},"targetPosition":{"x":23958.405529617292,"y":18783.39297649099},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ee6913fa-364d-4b80-bad5-35de44ca43fd","savedPayload":{"position":{"x":23958.405529617292,"y":18783.39297649099},"targetPosition":{"x":23967.684520128718,"y":18383.664611408898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"f064b6c0-7eaf-4341-997a-8655f56c4ca8","savedPayload":{"position":{"x":23767.94253246708,"y":18949.947089032758},"targetPosition":{"x":23834.43055042814,"y":18761.087884904173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"38094e81-9ae7-449d-bc9c-125f756b9f04","savedPayload":{"position":{"x":23834.43055042814,"y":18761.087884904173},"targetPosition":{"x":23967.684520128718,"y":18383.664611408898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.beginRate * 0.90","project":"Superalgos","id":"2a99561e-32d8-430f-9f67-44ce7b3dbdb7","savedPayload":{"position":{"x":23602.20663344135,"y":18860.257501555803},"targetPosition":{"x":23723.823366611363,"y":18701.39680428531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"18c413f8-8acc-4172-91a6-d90a0762118c","savedPayload":{"position":{"x":23723.823366611363,"y":18701.39680428531},"targetPosition":{"x":23967.684520128718,"y":18383.664611408898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"7ab18100-017d-4aef-b48d-32f69b294062","savedPayload":{"position":{"x":23471.234673007188,"y":18721.05727518828},"targetPosition":{"x":23636.01044652075,"y":18607.867618782395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"185d7e04-fa68-401d-b666-9152e57c3378","savedPayload":{"position":{"x":23636.01044652075,"y":18607.867618782395},"targetPosition":{"x":23967.684520128718,"y":18383.664611408898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a14053c2-6a61-4f8c-be0d-585e226b6bca","savedPayload":{"position":{"x":23967.684520128718,"y":18383.664611408898},"targetPosition":{"x":24158.210377696632,"y":18032.396906137597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"6b0d0c65-790f-4123-85da-5eeaae17e347","savedPayload":{"position":{"x":24024.31893563412,"y":17630.485376124627},"targetPosition":{"x":23805.45539209999,"y":17340.196301060725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"37f505da-f3f9-4eb2-b57e-4364f4c7557c","savedPayload":{"position":{"x":23377.789652508112,"y":17867.812847777677},"targetPosition":{"x":23573.694825711726,"y":17626.112833393323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"debc9932-c238-4867-9bf3-51bbe419e2ff","savedPayload":{"position":{"x":23573.694825711726,"y":17626.112833393323},"targetPosition":{"x":23805.45539209999,"y":17340.196301060725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"172928bb-91a1-471b-8dc0-86069d7c02a0","savedPayload":{"position":{"x":23461.659798144865,"y":17208.384482990754},"targetPosition":{"x":23805.45539209999,"y":17340.196301060725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"ee6913fa-364d-4b80-bad5-35de44ca43fd"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"a1267ac2-8258-49cb-95fd-05af04277e88","savedPayload":{"position":{"x":23841.39246989028,"y":16965.754606139933},"targetPosition":{"x":23805.45539209999,"y":17340.196301060725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"18c413f8-8acc-4172-91a6-d90a0762118c"}}}],"id":"9e88f3a0-09ad-44fd-a84e-731228860e66","savedPayload":{"position":{"x":23847.21084764623,"y":18284.078003063783},"targetPosition":{"x":24158.210377696632,"y":18032.396906137597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"d567e677-4217-4379-b873-1afc6fd52f11","savedPayload":{"position":{"x":23910.21343606553,"y":17444.060066378373},"targetPosition":{"x":23789.57396245202,"y":17098.694237658383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"592cc0ee-978d-4030-8fde-4ec503294f15","savedPayload":{"position":{"x":23192.813045226125,"y":17422.152888421446},"targetPosition":{"x":23465.667922806253,"y":17274.236201487205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"07121085-90a5-4b16-a2b5-6dbb11c3d08c","savedPayload":{"position":{"x":23465.667922806253,"y":17274.236201487205},"targetPosition":{"x":23789.57396245202,"y":17098.694237658383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"8591ccfd-d6ec-495e-859d-29894c061971","savedPayload":{"position":{"x":23522.24863433687,"y":16845.215356289587},"targetPosition":{"x":23789.57396245202,"y":17098.694237658383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"ee6913fa-364d-4b80-bad5-35de44ca43fd"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"72ad8b4e-d393-453d-8b57-527f63c248f2","savedPayload":{"position":{"x":23965.88121273497,"y":16766.91825748183},"targetPosition":{"x":23789.57396245202,"y":17098.694237658383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"18c413f8-8acc-4172-91a6-d90a0762118c"}}}],"id":"e2e18af7-af5f-4634-b8a4-4fabd2ddd7a5","savedPayload":{"position":{"x":23774.320507376346,"y":18145.827472651818},"targetPosition":{"x":24158.210377696632,"y":18032.396906137597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"e75c26a6-3516-4eeb-98c7-dcde0cd36ac9","savedPayload":{"position":{"x":24011.056589387055,"y":13341.960424578621},"targetPosition":{"x":24239.942113069115,"y":13527.414350339212},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"460b5169-b17a-4c63-a789-44dd11736441","savedPayload":{"position":{"x":24239.942113069115,"y":13527.414350339212},"targetPosition":{"x":24507.415605771694,"y":13744.138820931614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"bb8d8af7-3a7e-4bbd-b4a3-2f254e8a7288","savedPayload":{"position":{"x":24471.58630824296,"y":13401.726595908138},"targetPosition":{"x":24507.415605771694,"y":13744.138820931614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"ee6913fa-364d-4b80-bad5-35de44ca43fd"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"a146b387-51f1-41c0-8528-99088c6f22f8","savedPayload":{"position":{"x":24724.18927722066,"y":13476.370713897168},"targetPosition":{"x":24507.415605771694,"y":13744.138820931614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"38094e81-9ae7-449d-bc9c-125f756b9f04"}}}],"id":"08d916aa-6d2d-497b-8738-9b0966e3901e","savedPayload":{"position":{"x":23759.9992238542,"y":17990.616409282826},"targetPosition":{"x":24158.210377696632,"y":18032.396906137597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"2ecdf0cb-d87f-41cf-8317-d14776d5dda1","savedPayload":{"position":{"x":24131.74066940367,"y":13303.668566201772},"targetPosition":{"x":24339.485583669917,"y":13511.591075335185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"a7ba9639-8238-467d-b0be-b9b2e51311f0","savedPayload":{"position":{"x":24339.485583669917,"y":13511.591075335185},"targetPosition":{"x":24568.922955736663,"y":13741.248579688607},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"354df2e6-8fd8-4beb-83ba-0bdcb67d613e","savedPayload":{"position":{"x":24568.9211661251,"y":13415.56583612577},"targetPosition":{"x":24568.922955736663,"y":13741.248579688607},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"18c413f8-8acc-4172-91a6-d90a0762118c"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"6babbbfe-f55b-424e-90a3-a7e0bf17b8a1","savedPayload":{"position":{"x":24799.486057526436,"y":13510.644296819013},"targetPosition":{"x":24568.922955736663,"y":13741.248579688607},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"185d7e04-fa68-401d-b666-9152e57c3378"}}}],"id":"70de0f73-5a2d-4a5a-a5f7-1863f192a14d","savedPayload":{"position":{"x":23806.295532315955,"y":17841.523107494806},"targetPosition":{"x":24158.210377696632,"y":18032.396906137597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"trigger-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"4a525c63-9096-4b33-980f-926bb7c16783","savedPayload":{"position":{"x":23779.517425616163,"y":17565.66729854801},"targetPosition":{"x":23906.169735536485,"y":17721.488854982836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"ee6913fa-364d-4b80-bad5-35de44ca43fd"}}},"id":"c5fd3ce1-b24e-455c-9557-b43a68d6e942","savedPayload":{"position":{"x":23906.169735536485,"y":17721.488854982836},"targetPosition":{"x":24158.210377696632,"y":18032.396906137597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"trigger-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"3433cd26-6fad-49b0-a789-6e12a9a8aad0","savedPayload":{"position":{"x":23985.707335767092,"y":17456.818597680136},"targetPosition":{"x":24042.922979998802,"y":17649.29875956626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"18c413f8-8acc-4172-91a6-d90a0762118c"}}},"id":"9657d954-28e9-496d-a8e6-6f4c9974796d","savedPayload":{"position":{"x":24042.922979998802,"y":17649.29875956626},"targetPosition":{"x":24158.210377696632,"y":18032.396906137597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"09119fa5-53de-4885-af93-32aacf6445bb","savedPayload":{"position":{"x":24158.210377696632,"y":18032.396906137597},"targetPosition":{"x":24612.97355199314,"y":18080.07393575662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Trigger Stage Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"d6725ef3-05e1-4146-89e6-4e0bd9581a57","savedPayload":{"position":{"x":24136.141488558333,"y":17603.948025093236},"targetPosition":{"x":24260.701196638118,"y":17630.585317927158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"983b2057-a7ec-42a8-914a-4dc778bf71a2","savedPayload":{"position":{"x":24260.701196638118,"y":17630.585317927158},"targetPosition":{"x":24427.44088328152,"y":17662.33720700488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"4f0e461a-fc1c-4340-b9a0-9a59b068e8e9","savedPayload":{"position":{"x":24221.22124511846,"y":17437.466547787037},"targetPosition":{"x":24307.599691353065,"y":17529.79164760578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cbb7504c-0db6-47e8-9d75-d197d5d23bfe","savedPayload":{"position":{"x":24307.599691353065,"y":17529.79164760578},"targetPosition":{"x":24427.44088328152,"y":17662.33720700488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"67721b90-f4f5-4ea0-ba40-cf5364f48ba6","savedPayload":{"position":{"x":24393.630197051298,"y":17357.3819697611},"targetPosition":{"x":24409.249062335773,"y":17482.727396056966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6408eb74-1535-45b9-be83-9c0841bdb019","savedPayload":{"position":{"x":24409.249062335773,"y":17482.727396056966},"targetPosition":{"x":24427.44088328152,"y":17662.33720700488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"8bfbb311-c3cf-4c53-a42d-dc30c5336d17","savedPayload":{"position":{"x":24587.40475662828,"y":17401.744207783537},"targetPosition":{"x":24523.24547406063,"y":17513.078689135087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4837a800-f016-4f60-836b-0fc7acc7d489","savedPayload":{"position":{"x":24523.24547406063,"y":17513.078689135087},"targetPosition":{"x":24427.44088328152,"y":17662.33720700488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c10b9b7b-04d8-460b-9dcc-2eaed24e17df","savedPayload":{"position":{"x":24427.44088328152,"y":17662.33720700488},"targetPosition":{"x":24612.97355199314,"y":18080.07393575662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6c6cddbc-cd78-445f-9498-8627ac99563d","savedPayload":{"position":{"x":24581.688913748076,"y":18057.575831546175},"targetPosition":{"x":24936.211964982052,"y":18315.02517647312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Open Stage Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate * 1.05","project":"Superalgos","id":"c6d764f4-ffbe-4b62-8807-ff40e314f047","savedPayload":{"position":{"x":23748.168759963883,"y":18277.93435146567},"targetPosition":{"x":23869.924226643827,"y":18119.01897140589},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3f1ad539-6b21-4cbb-9623-daf242df45bc","savedPayload":{"position":{"x":23869.924226643827,"y":18119.01897140589},"targetPosition":{"x":24112.330856768156,"y":17801.07553114317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"ee137d40-fd2c-4754-a18f-2d5c5c564c4c","savedPayload":{"position":{"x":23617.703285161606,"y":18141.538322202814},"targetPosition":{"x":23782.729973895257,"y":18028.122193249652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c4b7fef3-79e2-45a6-96d6-4c9b6abf1514","savedPayload":{"position":{"x":23782.729973895257,"y":18028.122193249652},"targetPosition":{"x":24112.330856768156,"y":17801.07553114317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.beginRate * 1.05","project":"Superalgos","id":"c7026d19-1d0a-499c-8bd2-2aa847d0d17b","savedPayload":{"position":{"x":23536.24676435274,"y":17971.585519594522},"targetPosition":{"x":23728.273675326196,"y":17914.83920841476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"04304653-9361-433e-8e34-ca08c38ddb21","savedPayload":{"position":{"x":23728.273675326196,"y":17914.83920841476},"targetPosition":{"x":24112.330856768156,"y":17801.07553114317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"5c87a7ab-9f96-495f-9073-95fcc251ed95","savedPayload":{"position":{"x":23512.083039382753,"y":17782.299475112093},"targetPosition":{"x":23712.192752087623,"y":17787.588822714322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"bfe5be37-4f1d-4b6b-be9b-1ed24bf51056","savedPayload":{"position":{"x":23712.192752087623,"y":17787.588822714322},"targetPosition":{"x":24112.330856768156,"y":17801.07553114317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6977ed19-0d15-49df-adec-e0b6beec8296","savedPayload":{"position":{"x":24112.330856768156,"y":17801.07553114317},"targetPosition":{"x":24472.86230987924,"y":17628.784392450263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"fbe73700-5914-4750-853f-f205da0e00d5","savedPayload":{"position":{"x":23823.512662519723,"y":17466.501172816945},"targetPosition":{"x":23669.55248658413,"y":17137.432160629713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"c845a7dc-a73e-4bc2-92f5-a9f9e76963e1","savedPayload":{"position":{"x":23142.055197191596,"y":17564.090182030504},"targetPosition":{"x":23382.87582752122,"y":17369.290545821023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"f2e9bf45-007e-434e-b977-07a4ba08bd7e","savedPayload":{"position":{"x":23382.87582752122,"y":17369.290545821023},"targetPosition":{"x":23669.55248658413,"y":17137.432160629713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"64879334-0c33-40de-b993-bbccaebc1ce5","savedPayload":{"position":{"x":23360.426325249937,"y":16936.87765768171},"targetPosition":{"x":23669.55248658413,"y":17137.432160629713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"3f1ad539-6b21-4cbb-9623-daf242df45bc"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"f3e5ca2b-9766-47fc-87b5-a8d400f073fb","savedPayload":{"position":{"x":23782.274626122147,"y":16778.836470480615},"targetPosition":{"x":23669.55248658413,"y":17137.432160629713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"04304653-9361-433e-8e34-ca08c38ddb21"}}}],"id":"21db891e-4c47-4a5a-88a5-036297086138","savedPayload":{"position":{"x":24073.406096601542,"y":17649.665993859668},"targetPosition":{"x":24472.86230987924,"y":17628.784392450263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"de754019-110e-46e7-8991-969f82d7027f","savedPayload":{"position":{"x":23750.621590364204,"y":17260.892652857692},"targetPosition":{"x":23704.25096066634,"y":16897.922228570224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"8f03ebb4-360c-430d-adef-13b574d53d80","savedPayload":{"position":{"x":23053.13589393478,"y":17090.412107672168},"targetPosition":{"x":23350.94171730639,"y":17002.229593653705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"e34a2ef9-0533-40a7-901f-a07b503ca847","savedPayload":{"position":{"x":23350.94171730639,"y":17002.229593653705},"targetPosition":{"x":23704.25096066634,"y":16897.922228570224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"eaf26e8a-cd01-450f-b939-af89c22a5746","savedPayload":{"position":{"x":23495.525427014352,"y":16594.213442636104},"targetPosition":{"x":23704.25096066634,"y":16897.922228570224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"3f1ad539-6b21-4cbb-9623-daf242df45bc"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"3f4a9c46-b76a-4e07-b012-e447bbbabd11","savedPayload":{"position":{"x":23945.592510903658,"y":16610.04995509977},"targetPosition":{"x":23704.25096066634,"y":16897.922228570224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"04304653-9361-433e-8e34-ca08c38ddb21"}}}],"id":"2a3d0d93-13d9-4a9e-8d32-c0aa5d7ab1e3","savedPayload":{"position":{"x":24095.69934259661,"y":17495.2343839386},"targetPosition":{"x":24472.86230987924,"y":17628.784392450263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"86f26dcc-e45b-4313-8182-e5f715a7ea2b","savedPayload":{"position":{"x":24450.17795246025,"y":13535.976728597892},"targetPosition":{"x":24679.06347614231,"y":13721.430654358483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"67e63d56-1a05-414e-a99b-a3003e3483c5","savedPayload":{"position":{"x":24679.06347614231,"y":13721.430654358483},"targetPosition":{"x":24946.536968844888,"y":13938.155124950885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"a4c6c33d-682a-418b-9dff-24a739838aeb","savedPayload":{"position":{"x":24910.707671316155,"y":13595.742899927409},"targetPosition":{"x":24946.536968844888,"y":13938.155124950885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"3f1ad539-6b21-4cbb-9623-daf242df45bc"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"499e2a85-9ef8-4ca7-9f87-5a01fe2a5ca3","savedPayload":{"position":{"x":25163.310640293854,"y":13670.387017916439},"targetPosition":{"x":24946.536968844888,"y":13938.155124950885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"c4b7fef3-79e2-45a6-96d6-4c9b6abf1514"}}}],"id":"616f49d0-daaa-4b82-be0d-56504b402616","savedPayload":{"position":{"x":24175.503670891194,"y":17361.02196231903},"targetPosition":{"x":24472.86230987924,"y":17628.784392450263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"feff4d08-a0de-4e2e-bafa-896613af0a14","savedPayload":{"position":{"x":24570.862032476864,"y":13497.684870221043},"targetPosition":{"x":24778.60694674311,"y":13705.607379354456},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"f9c6d40c-a3fa-4f02-83c5-c2c39d478c42","savedPayload":{"position":{"x":24778.60694674311,"y":13705.607379354456},"targetPosition":{"x":25008.044318809858,"y":13935.264883707878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"680845ab-7423-4022-820b-a2d05b1ae32d","savedPayload":{"position":{"x":25008.042529198294,"y":13609.582140145041},"targetPosition":{"x":25008.044318809858,"y":13935.264883707878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"04304653-9361-433e-8e34-ca08c38ddb21"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"b5abef98-275f-4c3c-9704-bc17e83f4f9b","savedPayload":{"position":{"x":25238.60742059963,"y":13704.660600838284},"targetPosition":{"x":25008.044318809858,"y":13935.264883707878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"bfe5be37-4f1d-4b6b-be9b-1ed24bf51056"}}}],"id":"0fab39ff-8caf-45f8-8650-33d7a65fa6e1","savedPayload":{"position":{"x":24300.58935161967,"y":17267.609238312958},"targetPosition":{"x":24472.86230987924,"y":17628.784392450263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"open-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"cbb69a21-082e-4364-a069-c33f92f0a07c","savedPayload":{"position":{"x":24441.192568344843,"y":17028.700034623955},"targetPosition":{"x":24451.941207889042,"y":17229.205957942057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"3f1ad539-6b21-4cbb-9623-daf242df45bc"}}},"id":"472dcf1a-f045-4d96-8a97-f11011bc667a","savedPayload":{"position":{"x":24451.941207889042,"y":17229.205957942057},"targetPosition":{"x":24472.86230987924,"y":17628.784392450263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"open-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"f0a4c47e-a1e4-436f-a470-1adb11c80b7a","savedPayload":{"position":{"x":24671.376007960083,"y":17061.831375195663},"targetPosition":{"x":24604.814310842226,"y":17251.22232007174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"04304653-9361-433e-8e34-ca08c38ddb21"}}},"id":"7c64940b-d01e-47e5-902c-ece8262864cc","savedPayload":{"position":{"x":24604.814310842226,"y":17251.22232007174},"targetPosition":{"x":24472.86230987924,"y":17628.784392450263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"d953dd4d-5603-4042-b15b-1e293988be14","savedPayload":{"position":{"x":24472.86230987924,"y":17628.784392450263},"targetPosition":{"x":24812.865548584658,"y":17934.85020292712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Open Stage Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"908c9dfe-fb97-457a-93e6-711df1e89436","savedPayload":{"position":{"x":24706.94461228994,"y":17268.857283834},"targetPosition":{"x":24791.616413206015,"y":17364.323215493157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"13d4c685-4b50-4ce8-aba9-1075b89e4d79","savedPayload":{"position":{"x":24791.616413206015,"y":17364.323215493157},"targetPosition":{"x":24908.14729586783,"y":17487.514142464897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"428c5592-0629-49e4-a929-91ed47cdd1d3","savedPayload":{"position":{"x":24873.84998310131,"y":17184.49599486259},"targetPosition":{"x":24888.81759722733,"y":17310.230012956483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"74b0dbe2-935f-40f0-bd3b-812b925aa887","savedPayload":{"position":{"x":24888.81759722733,"y":17310.230012956483},"targetPosition":{"x":24908.14729586783,"y":17487.514142464897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"a862e1ab-2bd4-4627-8bc0-ca68102525bb","savedPayload":{"position":{"x":25060.018325494995,"y":17221.34053577333},"targetPosition":{"x":24998.7757025298,"y":17331.921504956874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"83bfb9e8-3774-4740-ba7b-635fb0088b59","savedPayload":{"position":{"x":24998.7757025298,"y":17331.921504956874},"targetPosition":{"x":24908.14729586783,"y":17487.514142464897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"be46adeb-8308-4ff1-9cc4-5939c3e040dd","savedPayload":{"position":{"x":25190.54749505843,"y":17371.430741823027},"targetPosition":{"x":25073.172988381953,"y":17423.446609478142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ccae74f6-9331-4c03-a44f-9176cb815ce2","savedPayload":{"position":{"x":25073.172988381953,"y":17423.446609478142},"targetPosition":{"x":24908.14729586783,"y":17487.514142464897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"be56e169-d089-4aea-a18a-c01cf16a3485","savedPayload":{"position":{"x":24908.14729586783,"y":17487.514142464897},"targetPosition":{"x":24812.865548584658,"y":17934.85020292712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8f7cad9f-153d-44e6-bdc2-812bc97e3929","savedPayload":{"position":{"x":24800.791503600904,"y":17898.425268662773},"targetPosition":{"x":24936.211964982052,"y":18315.02517647312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Manage Stage Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate * 0.95","project":"Superalgos","id":"0c5c0deb-9d9f-4849-ac44-711f24c60962","savedPayload":{"position":{"x":23989.61297381892,"y":17597.579773541947},"targetPosition":{"x":24181.56988010251,"y":17540.6400028731},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"51020863-6f89-4c73-97fd-fbc7fc03348f","savedPayload":{"position":{"x":24181.56988010251,"y":17540.6400028731},"targetPosition":{"x":24564.757850042763,"y":17425.686459373293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"a2fd6f13-b771-40c1-9c7a-55d1bb965ae8","savedPayload":{"position":{"x":23964.172800887925,"y":17410.81649489765},"targetPosition":{"x":24164.41624574587,"y":17415.86336875541},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"38ed128c-3053-45dd-a069-24e21b798603","savedPayload":{"position":{"x":24164.41624574587,"y":17415.86336875541},"targetPosition":{"x":24564.757850042763,"y":17425.686459373293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.beginRate * 0.95","project":"Superalgos","id":"26bade31-216a-498d-961d-f5f5aeb03075","savedPayload":{"position":{"x":23998.196000742184,"y":17225.465024618632},"targetPosition":{"x":24187.002972329494,"y":17292.243737627356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d1bf6c44-0b02-4e8a-8877-20210246d2d0","savedPayload":{"position":{"x":24187.002972329494,"y":17292.243737627356},"targetPosition":{"x":24564.757850042763,"y":17425.686459373293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"d6044513-956e-4ba9-994b-cce2f42e9cb1","savedPayload":{"position":{"x":24089.83468421934,"y":17058.032316501794},"targetPosition":{"x":24248.62725198452,"y":17180.00421254225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f23b14cc-df91-40a6-b1b2-9876aa8690c9","savedPayload":{"position":{"x":24248.62725198452,"y":17180.00421254225},"targetPosition":{"x":24564.757850042763,"y":17425.686459373293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7bff6698-f9c9-4b44-a4ee-193ffd703e40","savedPayload":{"position":{"x":24564.757850042763,"y":17425.686459373293},"targetPosition":{"x":24961.73392317004,"y":17489.296902865837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"4b05add4-cf40-4168-9cc8-7aa79d81e819","savedPayload":{"position":{"x":24415.763123001547,"y":16932.144616107194},"targetPosition":{"x":24484.49711032994,"y":16575.463548937794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"a60fc3c0-051e-4063-99b9-b0be3fc7b3f0","savedPayload":{"position":{"x":23806.780619230267,"y":16610.348454258638},"targetPosition":{"x":24116.234079965558,"y":16594.413862145233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"81182574-694d-43b5-a55b-f380bef4e226","savedPayload":{"position":{"x":24116.234079965558,"y":16594.413862145233},"targetPosition":{"x":24484.49711032994,"y":16575.463548937794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"270cce8d-9e8c-4b61-9f31-df178eb3dae1","savedPayload":{"position":{"x":24352.38939899577,"y":16231.458035432808},"targetPosition":{"x":24484.49711032994,"y":16575.463548937794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"51020863-6f89-4c73-97fd-fbc7fc03348f"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"2b20e9f7-72c4-4a93-b278-c77295400bc9","savedPayload":{"position":{"x":24786.65666431669,"y":16351.563062282014},"targetPosition":{"x":24484.49711032994,"y":16575.463548937794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"d1bf6c44-0b02-4e8a-8877-20210246d2d0"}}}],"id":"43435aed-68cb-4a56-88c4-2574d91f5b32","savedPayload":{"position":{"x":24632.677723003882,"y":17241.808935262274},"targetPosition":{"x":24961.73392317004,"y":17489.296902865837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"28c153db-44db-466c-83c7-a47c56152c4b","savedPayload":{"position":{"x":24604.42413949528,"y":17368.684628122508},"targetPosition":{"x":24735.402082011235,"y":17159.59562994399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"1ea48dcf-f651-4b4d-a218-d13fceaa4d33","savedPayload":{"position":{"x":24358.098579835358,"y":17024.962668422362},"targetPosition":{"x":24546.652807358096,"y":17092.105065052485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"8ad430dd-933a-4cf2-9f2d-b3189a57fae4","savedPayload":{"position":{"x":24546.652807358096,"y":17092.105065052485},"targetPosition":{"x":24735.402082011235,"y":17159.59562994399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"e9ebc5af-2940-47d8-a067-26b70105b4e9","savedPayload":{"position":{"x":24740.189158804,"y":16958.592681203845},"targetPosition":{"x":24735.402082011235,"y":17159.59562994399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"51020863-6f89-4c73-97fd-fbc7fc03348f"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"b5d31d62-415f-4437-a011-9d89d3dd4d61","savedPayload":{"position":{"x":24931.84999493606,"y":17116.63576135556},"targetPosition":{"x":24735.402082011235,"y":17159.59562994399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"d1bf6c44-0b02-4e8a-8877-20210246d2d0"}}}],"id":"904be022-f1e2-475e-9115-88224353cfa2","savedPayload":{"position":{"x":24735.402082011235,"y":17159.59562994399},"targetPosition":{"x":24961.73392317004,"y":17489.296902865837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"4f68d1c6-26e0-4c28-837d-fa6b137c48b6","savedPayload":{"position":{"x":24561.930872739886,"y":13885.76170133438},"targetPosition":{"x":24790.816396421946,"y":14071.21562709497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2cf632ed-a72b-4a59-817f-32a1160217cd","savedPayload":{"position":{"x":24790.816396421946,"y":14071.21562709497},"targetPosition":{"x":25058.289889124524,"y":14287.940097687373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"420cb596-82bf-40f0-9097-b6ac41d35b13","savedPayload":{"position":{"x":25022.46059159579,"y":13945.527872663897},"targetPosition":{"x":25058.289889124524,"y":14287.940097687373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"51020863-6f89-4c73-97fd-fbc7fc03348f"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"1b42a439-3e00-444b-ab69-5f4e6af4f0f3","savedPayload":{"position":{"x":25275.06356057349,"y":14020.171990652927},"targetPosition":{"x":25058.289889124524,"y":14287.940097687373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"38ed128c-3053-45dd-a069-24e21b798603"}}}],"id":"4c74d4d8-d0a4-4581-bee7-36485d7a91a5","savedPayload":{"position":{"x":24851.84722114082,"y":17095.424636529846},"targetPosition":{"x":24961.73392317004,"y":17489.296902865837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"d11795b4-f398-4b0d-b028-f0b9aadb3fa7","savedPayload":{"position":{"x":24682.6149527565,"y":13847.469842957531},"targetPosition":{"x":24890.359867022747,"y":14055.392352090945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1a75e942-11f7-4b82-8dce-8383521d48e4","savedPayload":{"position":{"x":24890.359867022747,"y":14055.392352090945},"targetPosition":{"x":25119.797239089494,"y":14285.049856444366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"9a6a4625-a7b7-47f6-8460-47f5899d7431","savedPayload":{"position":{"x":25119.79544947793,"y":13959.36711288153},"targetPosition":{"x":25119.797239089494,"y":14285.049856444366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"d1bf6c44-0b02-4e8a-8877-20210246d2d0"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"2ed6c5e7-fc8c-45e6-acb1-fdcb81fdee7b","savedPayload":{"position":{"x":25350.360340879266,"y":14054.445573574772},"targetPosition":{"x":25119.797239089494,"y":14285.049856444366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"f23b14cc-df91-40a6-b1b2-9876aa8690c9"}}}],"id":"9fc6d2c4-a67b-42e8-841b-7523f7ab4962","savedPayload":{"position":{"x":25059.35434285554,"y":17090.773714853665},"targetPosition":{"x":24961.73392317004,"y":17489.296902865837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"manage-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"d806311b-133d-423b-9026-7a418da2b5e3","savedPayload":{"position":{"x":25288.869520532997,"y":16985.1670166947},"targetPosition":{"x":25179.76053830832,"y":17153.776879011035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"51020863-6f89-4c73-97fd-fbc7fc03348f"}}},"id":"61fd08ac-8bd8-4539-a116-22c4469a2b2e","savedPayload":{"position":{"x":25179.76053830832,"y":17153.776879011035},"targetPosition":{"x":24961.73392317004,"y":17489.296902865837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"manage-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"608a821f-bdff-4ec0-abd9-251c7c085a34","savedPayload":{"position":{"x":25455.85101914124,"y":17147.537169013773},"targetPosition":{"x":25290.554108859025,"y":17261.511759905385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"d1bf6c44-0b02-4e8a-8877-20210246d2d0"}}},"id":"4a257e17-128c-4c00-9e2b-a76049e30657","savedPayload":{"position":{"x":25290.554108859025,"y":17261.511759905385},"targetPosition":{"x":24961.73392317004,"y":17489.296902865837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"dd3a2274-3986-4c89-bab9-265f6fa6b1d1","savedPayload":{"position":{"x":24961.73392317004,"y":17489.296902865837},"targetPosition":{"x":25056.781273974313,"y":17936.99613464608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Manage Stage Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"d386f88a-6d4d-4606-992c-e19df72e7f29","savedPayload":{"position":{"x":25362.99844787749,"y":17336.127094477473},"targetPosition":{"x":25374.997958157037,"y":17463.060147419073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"434bbab3-b2a1-47b5-8c5a-55ac7a2a2674","savedPayload":{"position":{"x":25374.997958157037,"y":17463.060147419073},"targetPosition":{"x":25396.930917348676,"y":17631.17974777773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"5123b469-2376-4f03-a995-82df2842cde3","savedPayload":{"position":{"x":25547.349343509766,"y":17365.878163328063},"targetPosition":{"x":25485.459108529652,"y":17476.386215563372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7b7fa67c-cdfd-41c5-83a2-3362fe2cef3c","savedPayload":{"position":{"x":25485.459108529652,"y":17476.386215563372},"targetPosition":{"x":25396.930917348676,"y":17631.17974777773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"e172032f-6c23-4267-b1a5-80c4fa2f7571","savedPayload":{"position":{"x":25676.274546227418,"y":17505.2153018006},"targetPosition":{"x":25561.691138422226,"y":17558.604219809975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c3473f91-b229-43d5-a1d4-79d535b5ac64","savedPayload":{"position":{"x":25561.691138422226,"y":17558.604219809975},"targetPosition":{"x":25396.930917348676,"y":17631.17974777773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"2df876ce-61ff-4a24-a34a-03126c0e02a6","savedPayload":{"position":{"x":25693.775419998332,"y":17703.03138544741},"targetPosition":{"x":25568.123444674664,"y":17676.41891499346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"16af0d06-b721-48e5-8ed2-7072f25e8fc3","savedPayload":{"position":{"x":25568.123444674664,"y":17676.41891499346},"targetPosition":{"x":25396.930917348676,"y":17631.17974777773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3db5604f-cacf-4c87-b1ea-5aa364bf9f48","savedPayload":{"position":{"x":25396.930917348676,"y":17631.17974777773},"targetPosition":{"x":25056.781273974313,"y":17936.99613464608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"768a5cc5-72db-4218-9a8b-706c51186b3d","savedPayload":{"position":{"x":25071.14850997705,"y":17898.410158313432},"targetPosition":{"x":24936.211964982052,"y":18315.02517647312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Close Stage Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate * 1.05","project":"Superalgos","id":"bb2edfb7-4b27-4023-937f-87edcefa4b36","savedPayload":{"position":{"x":24603.981796664386,"y":17173.793306038704},"targetPosition":{"x":24792.878932990257,"y":17240.285894025405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"064c3de1-dd16-4010-9267-f588f070aa32","savedPayload":{"position":{"x":24792.878932990257,"y":17240.285894025405},"targetPosition":{"x":25170.227806190716,"y":17372.511667638948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"52da9824-848c-4ef6-ac1d-4c1a52baf9c2","savedPayload":{"position":{"x":24693.43924790597,"y":17007.576275133044},"targetPosition":{"x":24852.4234484772,"y":17129.308396751825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ce4b9d0e-3e46-4cf2-9ea6-a108f962ba9b","savedPayload":{"position":{"x":24852.4234484772,"y":17129.308396751825},"targetPosition":{"x":25170.227806190716,"y":17372.511667638948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.beginRate * 1.05","project":"Superalgos","id":"ec40fffd-d0b2-410e-b8a0-346fd3975c13","savedPayload":{"position":{"x":24829.932571856185,"y":16877.615490164808},"targetPosition":{"x":24943.351578285597,"y":17042.553220788395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9ad19ea8-8df3-4601-bfb9-0e858dad9140","savedPayload":{"position":{"x":24943.351578285597,"y":17042.553220788395},"targetPosition":{"x":25170.227806190716,"y":17372.511667638948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"d9ac4f25-f9aa-4de6-8f05-b43a159248be","savedPayload":{"position":{"x":25002.747837940853,"y":16796.026877474058},"targetPosition":{"x":25059.39419093945,"y":16987.91674892192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"92930f08-af27-4807-a1eb-98fb82c58fb2","savedPayload":{"position":{"x":25059.39419093945,"y":16987.91674892192},"targetPosition":{"x":25170.227806190716,"y":17372.511667638948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ebdc8337-0d63-48c8-940e-83f14c7de8f3","savedPayload":{"position":{"x":25170.227806190716,"y":17372.511667638948},"targetPosition":{"x":25445.489223080098,"y":17662.29899610047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"17f11af6-9a1b-4df5-93ad-52acea4e9ccb","savedPayload":{"position":{"x":25208.00714764315,"y":16848.37412295763},"targetPosition":{"x":25473.583762565733,"y":16600.096094773846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"272091f5-637f-4389-ae00-8806170ec5fe","savedPayload":{"position":{"x":24904.94351595144,"y":16230.678454146599},"targetPosition":{"x":25164.220706971144,"y":16399.093056012447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"92bb2d8c-cbd9-4a46-ba6e-10ec3c04afbe","savedPayload":{"position":{"x":25164.220706971144,"y":16399.093056012447},"targetPosition":{"x":25473.583762565733,"y":16600.096094773846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"67a714b2-66d1-4c20-afc6-4985557c8924","savedPayload":{"position":{"x":25568.620486288033,"y":16244.36669967966},"targetPosition":{"x":25473.583762565733,"y":16600.096094773846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"064c3de1-dd16-4010-9267-f588f070aa32"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"9e1c1d76-9d74-4812-b79a-176890c35d64","savedPayload":{"position":{"x":25848.896588752737,"y":16596.300635787647},"targetPosition":{"x":25473.583762565733,"y":16600.096094773846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"9ad19ea8-8df3-4601-bfb9-0e858dad9140"}}}],"id":"9463d512-21f5-48c1-8cd6-b14747b338cf","savedPayload":{"position":{"x":25302.20974161536,"y":17288.674570457908},"targetPosition":{"x":25445.489223080098,"y":17662.29899610047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"cb0d72ee-ae97-4482-94d0-6be4fa885ca3","savedPayload":{"position":{"x":25380.193526422514,"y":16714.45717864927},"targetPosition":{"x":25712.084202970855,"y":16558.939762472644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"4c30f5b9-b06f-4ed0-b8b8-6672347063e0","savedPayload":{"position":{"x":25327.843242628373,"y":15999.323623054206},"targetPosition":{"x":25503.43862266737,"y":16255.223247439988},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"90ab3a19-e778-46ce-8aad-05799a66cc36","savedPayload":{"position":{"x":25503.43862266737,"y":16255.223247439988},"targetPosition":{"x":25712.084202970855,"y":16558.939762472644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"f0ed2d50-c494-4fae-863a-752ecad0fd1d","savedPayload":{"position":{"x":25935.98001848433,"y":16266.705827831736},"targetPosition":{"x":25712.084202970855,"y":16558.939762472644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"064c3de1-dd16-4010-9267-f588f070aa32"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"68c67883-1f21-4a00-9537-a794638a4d07","savedPayload":{"position":{"x":26060.468067215366,"y":16699.211162198673},"targetPosition":{"x":25712.084202970855,"y":16558.939762472644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"9ad19ea8-8df3-4601-bfb9-0e858dad9140"}}}],"id":"c3249cad-9f26-4ff2-ab0d-968c66bb7f2d","savedPayload":{"position":{"x":25455.963621188937,"y":17262.057680973976},"targetPosition":{"x":25445.489223080098,"y":17662.29899610047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"15a2eeab-c29f-45e9-b407-30f99dfb2b3a","savedPayload":{"position":{"x":25706.113038509237,"y":15977.769488781074},"targetPosition":{"x":25817.154730275273,"y":16267.724869987025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ef752c53-dc77-4be4-80ec-f24b3ae0bf6d","savedPayload":{"position":{"x":25817.154730275273,"y":16267.724869987025},"targetPosition":{"x":25948.991874823794,"y":16611.832998990303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"b6002088-f077-44c3-bdac-1e310ef78e32","savedPayload":{"position":{"x":26098.736003293696,"y":16275.224868604024},"targetPosition":{"x":25948.991874823794,"y":16611.832998990303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"064c3de1-dd16-4010-9267-f588f070aa32"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"210bad6f-d160-4d55-80f4-5a441a79cea1","savedPayload":{"position":{"x":26292.996323669162,"y":16479.665189475432},"targetPosition":{"x":25948.991874823794,"y":16611.832998990303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"ce4b9d0e-3e46-4cf2-9ea6-a108f962ba9b"}}}],"id":"dbd9d421-d90c-4ab8-a26b-c2254d7abec1","savedPayload":{"position":{"x":25608.27850607035,"y":17296.47688435172},"targetPosition":{"x":25445.489223080098,"y":17662.29899610047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"50698494-7f90-4d92-a87e-452567bce9b3","savedPayload":{"position":{"x":26164.53202427431,"y":16072.702860737658},"targetPosition":{"x":26156.52896593925,"y":16383.027662005394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"58d29c18-d22b-4294-97a0-3a9fae711b6c","savedPayload":{"position":{"x":26156.52896593925,"y":16383.027662005394},"targetPosition":{"x":26146.993297019664,"y":16751.563980824445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"4617c7b4-acc4-4122-a714-bc2b38b4566f","savedPayload":{"position":{"x":26414.030997271555,"y":16497.96932180807},"targetPosition":{"x":26146.993297019664,"y":16751.563980824445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"9ad19ea8-8df3-4601-bfb9-0e858dad9140"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"d0589ad1-0f35-4e0f-ab38-8de7a56f04b6","savedPayload":{"position":{"x":26514.97091356275,"y":16760.848756377032},"targetPosition":{"x":26146.993297019664,"y":16751.563980824445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"92930f08-af27-4807-a1eb-98fb82c58fb2"}}}],"id":"a5e40c24-183d-4896-97b0-f9f0f104c240","savedPayload":{"position":{"x":25735.781677324325,"y":17386.56995393502},"targetPosition":{"x":25445.489223080098,"y":17662.29899610047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"close-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"8c6238d9-007c-48b6-9d95-df4a6aa5c14b","savedPayload":{"position":{"x":26006.399601957903,"y":17446.4431610194},"targetPosition":{"x":25819.08439083658,"y":17518.642216019605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"064c3de1-dd16-4010-9267-f588f070aa32"}}},"id":"21f90d1d-d464-4bf4-9435-87afdc4daf19","savedPayload":{"position":{"x":25819.08439083658,"y":17518.642216019605},"targetPosition":{"x":25445.489223080098,"y":17662.29899610047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"close-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"cae4a4f0-e26b-40ab-8a29-04d1dfde4633","savedPayload":{"position":{"x":26046.20198605366,"y":17675.729129769694},"targetPosition":{"x":25845.465235867778,"y":17670.891224989064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"9ad19ea8-8df3-4601-bfb9-0e858dad9140"}}},"id":"63d17b18-3750-42c2-b785-9bfb4c2f7bfc","savedPayload":{"position":{"x":25845.465235867778,"y":17670.891224989064},"targetPosition":{"x":25445.489223080098,"y":17662.29899610047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"2236ae6a-63a0-4031-a6aa-95fd8dbd1e6d","savedPayload":{"position":{"x":25445.489223080098,"y":17662.29899610047},"targetPosition":{"x":25259.650016852967,"y":18080.142869128475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Close Stage Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"7ff88a72-886f-4417-980f-29ec65270b3b","savedPayload":{"position":{"x":25860.351018277473,"y":17773.697769214185},"targetPosition":{"x":25795.881018401167,"y":17883.70407874333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"30d603e4-521d-464e-9f80-a22f99d43bc4","savedPayload":{"position":{"x":25795.881018401167,"y":17883.70407874333},"targetPosition":{"x":25714.430132212674,"y":18032.693400433986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"b1f57c8d-346f-4c8f-8bf1-4d0e9f9cec6f","savedPayload":{"position":{"x":25992.17850610818,"y":17906.20460691568},"targetPosition":{"x":25877.29291097318,"y":17959.507066043225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1ccd3f25-5841-4563-98ef-f97f82b6da66","savedPayload":{"position":{"x":25877.29291097318,"y":17959.507066043225},"targetPosition":{"x":25714.430132212674,"y":18032.693400433986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"6e1dc213-47ad-407a-b993-c9ed20d0db14","savedPayload":{"position":{"x":26014.882942709355,"y":18094.651578501012},"targetPosition":{"x":25890.695033874275,"y":18070.769375650347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d6912158-6634-4cce-82e1-be1f3f8c0211","savedPayload":{"position":{"x":25890.695033874275,"y":18070.769375650347},"targetPosition":{"x":25714.430132212674,"y":18032.693400433986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"0ecdc927-ff01-4f77-87ff-47be6ad314d6","savedPayload":{"position":{"x":25912.687413960644,"y":18265.106323810534},"targetPosition":{"x":25826.678259869346,"y":18169.725107442817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f63619e4-c005-4a60-883e-ea24a36c04e6","savedPayload":{"position":{"x":25826.678259869346,"y":18169.725107442817},"targetPosition":{"x":25714.430132212674,"y":18032.693400433986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"069885e7-351f-45dc-8423-113db65b9592","savedPayload":{"position":{"x":25714.430132212674,"y":18032.693400433986},"targetPosition":{"x":25259.650016852967,"y":18080.142869128475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"de84947f-ec29-4125-a2b3-a3da595d1653","savedPayload":{"position":{"x":25290.45345596248,"y":18057.63918933579},"targetPosition":{"x":24936.211964982052,"y":18315.02517647312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"23f6d360-b2ec-462d-ba57-9226d0fc0c5b","savedPayload":{"position":{"x":24941.217404066585,"y":18264.893045797242},"targetPosition":{"x":24941.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Exchange Orders","config":"{ \n \"codeName\": \"Exchange-Orders\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Market Buy Orders","config":"{ \n \"codeName\": \"Market-Buy-Orders\", \n \"icon\": \"trend\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"actualRate\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}\n","project":"Superalgos","id":"bc2c1fb7-af45-4444-b883-7523eb94bcc0","savedPayload":{"position":{"x":24298.85766290749,"y":18246.543055860882},"targetPosition":{"x":24431.109344673296,"y":18064.51423212652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5d2c59a6-72ce-4f42-8d14-62e4a7d11d73","savedPayload":{"position":{"x":24431.109344673296,"y":18064.51423212652},"targetPosition":{"x":24563.361026439103,"y":17882.485408392156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"76027de9-5f42-494b-be42-7b24e7663fb4","savedPayload":{"position":{"x":24115.826173523383,"y":17835.447599921714},"targetPosition":{"x":24339.593599981243,"y":17858.966504156935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0e224c82-a863-4953-8e38-42ff372df6cd","savedPayload":{"position":{"x":24339.593599981243,"y":17858.966504156935},"targetPosition":{"x":24563.361026439103,"y":17882.485408392156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c8f9bc68-22a9-47a7-8b54-f8e1ee93760a","savedPayload":{"position":{"x":24563.361026439103,"y":17882.485408392156},"targetPosition":{"x":24768.908754408687,"y":17790.9696637001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"New Polygon","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"a307230c-ee14-4b3a-8430-5993da0e1b7e","savedPayload":{"position":{"x":24147.75770250765,"y":17893.36836443652},"targetPosition":{"x":24353.305430477234,"y":17801.852619744463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2c437c94-96f4-4b5b-9241-45636f73356e","savedPayload":{"position":{"x":24353.305430477234,"y":17801.852619744463},"targetPosition":{"x":24558.85315844682,"y":17710.336875052406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"7d4ca25c-5454-4d6a-8ead-a4ecee6709b8","savedPayload":{"position":{"x":24348.79756248495,"y":17629.704086404712},"targetPosition":{"x":24558.85315844682,"y":17710.336875052406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"5d2c59a6-72ce-4f42-8d14-62e4a7d11d73"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"cefe7159-5b2f-4036-9aad-1d72358cbf81","savedPayload":{"position":{"x":24467.33741375476,"y":17504.78914708282},"targetPosition":{"x":24558.85315844682,"y":17710.336875052406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"0e224c82-a863-4953-8e38-42ff372df6cd"}}}],"id":"6217d021-ea5b-4b20-b093-758a2d2fb5d4","savedPayload":{"position":{"x":24558.85315844682,"y":17710.336875052406},"targetPosition":{"x":24768.908754408687,"y":17790.9696637001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"bullet-market-buy-order\", \n\"size\": 20\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin","config":"{ \n\"offsetX\": 10,\n \"offsetY\": 0\n }","project":"Superalgos","id":"48799848-30ad-4ef3-914e-45c3299168da","savedPayload":{"position":{"x":24631.635137370602,"y":17482.648071745723},"targetPosition":{"x":24677.39300971663,"y":17585.421935730516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"5d2c59a6-72ce-4f42-8d14-62e4a7d11d73"}}},"id":"c988d815-94cf-48e3-9447-2e81b97271b2","savedPayload":{"position":{"x":24677.39300971663,"y":17585.421935730516},"targetPosition":{"x":24768.908754408687,"y":17790.9696637001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"486a0f30-691f-4c40-a18e-a1b0ac336ac1","savedPayload":{"position":{"x":24768.908754408687,"y":17790.9696637001},"targetPosition":{"x":25189.019946332428,"y":17952.235240995484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Market Buy Order","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"6c10223a-aec1-485d-a731-2122a2485359","savedPayload":{"position":{"x":23862.399092957447,"y":17170.9616351311},"targetPosition":{"x":24202.183627462626,"y":17033.749621410225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6edbd7e7-a5ef-4ec0-ae1d-41c6a7cec5e1","savedPayload":{"position":{"x":24202.183627462626,"y":17033.749621410225},"targetPosition":{"x":24541.967815566248,"y":16896.297154647396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.rate","project":"Superalgos","id":"706b3e18-b354-4b2d-ad94-8a1e06aa3d6a","savedPayload":{"position":{"x":23809.295253307635,"y":16921.740187466366},"targetPosition":{"x":24175.591181145603,"y":16909.06589895518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"312fc9a8-af5d-428b-b1b9-9207bf4def4d","savedPayload":{"position":{"x":24175.591181145603,"y":16909.06589895518},"targetPosition":{"x":24541.967815566248,"y":16896.297154647396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"6823da7b-b937-44ec-a748-6544810c5e4d","savedPayload":{"position":{"x":23844.686042368026,"y":16669.917379737602},"targetPosition":{"x":24193.281240664917,"y":16783.12074227086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bdc187a2-01a2-4d5e-a3b6-e03a3aa83337","savedPayload":{"position":{"x":24193.281240664917,"y":16783.12074227086},"targetPosition":{"x":24541.967815566248,"y":16896.297154647396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"df586a2e-5e92-4719-b43a-b66e92d54cfb","savedPayload":{"position":{"x":23964.21643519404,"y":16445.037650075534},"targetPosition":{"x":24253.052371519163,"y":16670.65746647881},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8c832572-6989-49fe-af66-337113d833bd","savedPayload":{"position":{"x":24253.052371519163,"y":16670.65746647881},"targetPosition":{"x":24541.967815566248,"y":16896.297154647396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Order Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.orderName","project":"Superalgos","id":"ccaa9e2b-3d64-40fc-85e3-db8852ffe835","savedPayload":{"position":{"x":24153.45061837541,"y":16274.622167143008},"targetPosition":{"x":24347.685211466985,"y":16585.437309734738},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"008d9794-b703-4e95-90a5-4be6541257b5","savedPayload":{"position":{"x":24347.685211466985,"y":16585.437309734738},"targetPosition":{"x":24541.967815566248,"y":16896.297154647396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Algorithm Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.algorithmName","project":"Superalgos","id":"cb7fe638-c8c1-4017-91c5-332f2a42d411","savedPayload":{"position":{"x":24389.548221643516,"y":16179.227629767918},"targetPosition":{"x":24465.76049520407,"y":16537.741599180794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"233fcc31-94fb-4a83-8010-a47b06aa0175","savedPayload":{"position":{"x":24465.76049520407,"y":16537.741599180794},"targetPosition":{"x":24541.967815566248,"y":16896.297154647396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Situation Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.situationName","project":"Superalgos","id":"b205501c-00a5-42a5-bfb1-e1d766474e9b","savedPayload":{"position":{"x":24643.593633954613,"y":16170.362364262595},"targetPosition":{"x":24592.833400129206,"y":16533.334709673683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ef885584-c0ad-42ab-af01-1507c16da1c1","savedPayload":{"position":{"x":24592.833400129206,"y":16533.334709673683},"targetPosition":{"x":24541.967815566248,"y":16896.297154647396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"43a37c5e-0519-4920-9c61-1c8e7ee35308","savedPayload":{"position":{"x":24855.758065811726,"y":16252.321756420351},"targetPosition":{"x":24714.016025858626,"y":16572.824580531535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"64741d06-09d2-497f-ab50-f1a0d1eba4bd","savedPayload":{"position":{"x":24714.016025858626,"y":16572.824580531535},"targetPosition":{"x":24541.967815566248,"y":16896.297154647396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"12929733-5964-4948-877b-b1edda37162a","savedPayload":{"position":{"x":24905.82577036,"y":17602.519558339845},"targetPosition":{"x":25189.019946332428,"y":17952.235240995484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Market Buy Order Stats","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Percentage Filled","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.percentageFilled","project":"Superalgos","id":"14e3004b-320d-4791-aa6e-3f0d872ec7ec","savedPayload":{"position":{"x":24618.09570162402,"y":16439.966226993307},"targetPosition":{"x":24760.75621966212,"y":16555.3445127771},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0d50ad49-9842-4e0e-86fd-12c026ada170","savedPayload":{"position":{"x":24760.75621966212,"y":16555.3445127771},"targetPosition":{"x":24954.703993567215,"y":16712.091785698405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Actual Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.actualRate","project":"Superalgos","id":"8a56fba9-5ffc-4adf-8d6e-021fd4e5a43c","savedPayload":{"position":{"x":24899.031477799002,"y":16292.004712325104},"targetPosition":{"x":24928.43089547231,"y":16464.4358144584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d6c7e18a-79da-4aed-8fae-298e604e05d0","savedPayload":{"position":{"x":24928.43089547231,"y":16464.4358144584},"targetPosition":{"x":24954.703993567215,"y":16712.091785698405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"d7dd0006-3d9f-49c8-984a-07b9d5f0dc48","savedPayload":{"position":{"x":25205.165582800037,"y":16377.122256855275},"targetPosition":{"x":25090.252681451027,"y":16520.09968608916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d411dc1c-83d7-4d2d-948e-c90f9e29121b","savedPayload":{"position":{"x":25090.252681451027,"y":16520.09968608916},"targetPosition":{"x":24954.703993567215,"y":16712.091785698405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"81a88e44-189c-44ec-9607-cb1e4de8baa1","savedPayload":{"position":{"x":25118.624437064325,"y":17507.77548772767},"targetPosition":{"x":25189.019946332428,"y":17952.235240995484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Market Buy Order Base Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInBaseAsset","project":"Superalgos","id":"d304ece3-18dc-4e5a-bc0e-1249258b184e","savedPayload":{"position":{"x":25167.2540342437,"y":17121.028593132574},"targetPosition":{"x":25258.769778935755,"y":17326.57632110216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8313aeb6-6167-45ca-a3ca-4dc22b7fa33a","savedPayload":{"position":{"x":25258.769778935755,"y":17326.57632110216},"targetPosition":{"x":25350.285523627812,"y":17532.124049071743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInBaseAsset","project":"Superalgos","id":"461ae1a5-1d20-451a-8852-13d56b5268fb","savedPayload":{"position":{"x":25511.5511009232,"y":17112.012857148005},"targetPosition":{"x":25430.918312275506,"y":17322.068453109874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"83d46c3b-27cb-4aa9-a358-2e156aeece00","savedPayload":{"position":{"x":25430.918312275506,"y":17322.068453109874},"targetPosition":{"x":25350.285523627812,"y":17532.124049071743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInBaseAsset","project":"Superalgos","id":"88cf9464-968d-4222-ac52-b8e4dc151e69","savedPayload":{"position":{"x":25761.38097956698,"y":17349.09255968763},"targetPosition":{"x":25555.833251597396,"y":17440.608304379686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"38227d86-ab39-4e74-8eb0-0cd44edf49eb","savedPayload":{"position":{"x":25555.833251597396,"y":17440.608304379686},"targetPosition":{"x":25350.285523627812,"y":17532.124049071743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"608a9068-7324-4f4c-8fdd-d9d8e42e26c6","savedPayload":{"position":{"x":25350.285523627812,"y":17532.124049071743},"targetPosition":{"x":25189.019946332428,"y":17952.235240995484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Market Buy Order Quoted Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInQuotedAsset","project":"Superalgos","id":"1b8818af-996e-4d6b-8a97-f4606714ee91","savedPayload":{"position":{"x":25585.77343745851,"y":17221.506212107335},"targetPosition":{"x":25562.254533223288,"y":17445.273638565195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"56ca8980-8ba9-4e01-a040-cdf19c9ae7f5","savedPayload":{"position":{"x":25562.254533223288,"y":17445.273638565195},"targetPosition":{"x":25538.735628988066,"y":17669.041065023055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInQuotedAsset","project":"Superalgos","id":"82c2ea84-a616-47e6-920b-1e0804dd20ed","savedPayload":{"position":{"x":25888.451311643705,"y":17385.846889050626},"targetPosition":{"x":25713.593470315885,"y":17527.44397703684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"913a187b-5504-4b85-a382-8f74726a54f4","savedPayload":{"position":{"x":25713.593470315885,"y":17527.44397703684},"targetPosition":{"x":25538.735628988066,"y":17669.041065023055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInQuotedAsset","project":"Superalgos","id":"a337b247-237b-41f8-93a3-3f5a964ae63a","savedPayload":{"position":{"x":25986.270481903786,"y":17716.078873493498},"targetPosition":{"x":25762.503055445926,"y":17692.559969258276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"040ea111-a7a0-453c-9c65-d731c846324f","savedPayload":{"position":{"x":25762.503055445926,"y":17692.559969258276},"targetPosition":{"x":25538.735628988066,"y":17669.041065023055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1a55af5e-821d-4421-80d2-2c543d25ea1a","savedPayload":{"position":{"x":25538.735628988066,"y":17669.041065023055},"targetPosition":{"x":25189.019946332428,"y":17952.235240995484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e00fe7d4-894d-4483-a73a-3cd77943ea80","savedPayload":{"position":{"x":25189.019946332428,"y":17952.235240995484},"targetPosition":{"x":25259.41545560053,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Market Sell Orders","config":"{ \n \"codeName\": \"Market-Sell-Orders\", \n \"icon\": \"trend\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"actualRate\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"df7ab0aa-4814-411b-a2f6-9594f67c7b41","savedPayload":{"position":{"x":24570.56497222864,"y":17710.617819837822},"targetPosition":{"x":24784.552688395048,"y":17641.08899610346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"788a8d38-a7f8-4e9f-aa91-0d73d83967ba","savedPayload":{"position":{"x":24784.552688395048,"y":17641.08899610346},"targetPosition":{"x":24998.540404561456,"y":17571.560172369096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"464d3c72-0056-48b0-b044-9131f136797f","savedPayload":{"position":{"x":24664.12523309663,"y":17270.45139950761},"targetPosition":{"x":24831.332818829043,"y":17421.005785938352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5c7415c1-6a1d-4838-8587-6883c11724b4","savedPayload":{"position":{"x":24831.332818829043,"y":17421.005785938352},"targetPosition":{"x":24998.540404561456,"y":17571.560172369096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2e23d19b-466f-485b-b61d-ded90fa7b221","savedPayload":{"position":{"x":24998.540404561456,"y":17571.560172369096},"targetPosition":{"x":25218.623614726563,"y":17618.34030280309},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"New Polygon","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"fc7ced4a-bcf0-4c18-9e3b-959e7cac59f6","savedPayload":{"position":{"x":24655.91341151797,"y":17336.07916414738},"targetPosition":{"x":24875.996621683076,"y":17382.859294581376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"10637dce-3cba-4c02-9561-da3ec43bdf0c","savedPayload":{"position":{"x":24875.996621683076,"y":17382.859294581376},"targetPosition":{"x":25096.079831848183,"y":17429.63942501537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"210399d5-7817-4136-b2bf-59bc5b5c4eb6","savedPayload":{"position":{"x":24973.536048969803,"y":17240.93854722765},"targetPosition":{"x":25096.079831848183,"y":17429.63942501537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"788a8d38-a7f8-4e9f-aa91-0d73d83967ba"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"912ac4dc-6acb-4097-84e9-cf3d72060597","savedPayload":{"position":{"x":25142.85996228218,"y":17209.556214850265},"targetPosition":{"x":25096.079831848183,"y":17429.63942501537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"5c7415c1-6a1d-4838-8587-6883c11724b4"}}}],"id":"5b8dcb5c-6b20-4edf-aae5-1c526cdca536","savedPayload":{"position":{"x":25096.079831848183,"y":17429.63942501537},"targetPosition":{"x":25218.623614726563,"y":17618.34030280309},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"bullet-market-sell-order\", \n\"size\": 20\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin","config":"{ \n\"offsetX\": 10,\n \"offsetY\": 0\n }","project":"Superalgos","id":"5321e00c-41b9-42a6-8e9a-e84067288a6a","savedPayload":{"position":{"x":25288.793810377556,"y":17288.215487555433},"targetPosition":{"x":25265.403745160558,"y":17398.257092637985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"788a8d38-a7f8-4e9f-aa91-0d73d83967ba"}}},"id":"8ad2d152-57e7-4db6-b810-44bb870c46e2","savedPayload":{"position":{"x":25265.403745160558,"y":17398.257092637985},"targetPosition":{"x":25218.623614726563,"y":17618.34030280309},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"c24bfe41-ef93-4f0a-8c96-843536c85a2f","savedPayload":{"position":{"x":25218.623614726563,"y":17618.34030280309},"targetPosition":{"x":25463.711180483326,"y":17995.74205837853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Market Sell Order","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"3beb54d7-d0a4-499e-becc-22691e15a292","savedPayload":{"position":{"x":25264.31333581048,"y":17379.902973956123},"targetPosition":{"x":25604.097870315658,"y":17242.690960235246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b1093c73-8eac-4291-a67f-7e4d546a914b","savedPayload":{"position":{"x":25604.097870315658,"y":17242.690960235246},"targetPosition":{"x":25943.88205841928,"y":17105.238493472418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.rate","project":"Superalgos","id":"08be12d1-b8cd-4ab1-affe-008e4a6c2c17","savedPayload":{"position":{"x":25211.209496160667,"y":17130.681526291388},"targetPosition":{"x":25577.505423998635,"y":17118.007237780203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"18550807-aa68-4b52-83c6-e16a44beb9f6","savedPayload":{"position":{"x":25577.505423998635,"y":17118.007237780203},"targetPosition":{"x":25943.88205841928,"y":17105.238493472418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"917325b0-e9a2-428c-b291-34f6a4a462ed","savedPayload":{"position":{"x":25246.60028522106,"y":16878.858718562624},"targetPosition":{"x":25595.19548351795,"y":16992.062081095883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f6b71a6b-982d-4b61-9693-bbda2cb5abac","savedPayload":{"position":{"x":25595.19548351795,"y":16992.062081095883},"targetPosition":{"x":25943.88205841928,"y":17105.238493472418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"71213f89-f5d2-4946-a100-dd141090ea0c","savedPayload":{"position":{"x":25366.130678047073,"y":16653.978988900555},"targetPosition":{"x":25654.966614372195,"y":16879.59880530383},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9dca5f8f-c6c8-475f-ad85-96975552fb12","savedPayload":{"position":{"x":25654.966614372195,"y":16879.59880530383},"targetPosition":{"x":25943.88205841928,"y":17105.238493472418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Order Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.orderName","project":"Superalgos","id":"24ab5826-f6bb-4ca7-b720-2fbd7a7a142c","savedPayload":{"position":{"x":25555.36486122844,"y":16483.56350596803},"targetPosition":{"x":25749.599454320018,"y":16794.37864855976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2af2f91f-8198-4be6-9ff6-f2fa525573b8","savedPayload":{"position":{"x":25749.599454320018,"y":16794.37864855976},"targetPosition":{"x":25943.88205841928,"y":17105.238493472418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Algorithm Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.algorithmName","project":"Superalgos","id":"a48449db-1def-49af-8210-c06704e34cc9","savedPayload":{"position":{"x":25791.462464496548,"y":16388.168968592938},"targetPosition":{"x":25867.674738057103,"y":16746.682938005815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9b58e3d6-c336-4193-adf4-305640812adf","savedPayload":{"position":{"x":25867.674738057103,"y":16746.682938005815},"targetPosition":{"x":25943.88205841928,"y":17105.238493472418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Situation Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.situationName","project":"Superalgos","id":"e0490e8b-a1f0-463e-808e-d5d4e34b6880","savedPayload":{"position":{"x":26045.507876807646,"y":16379.303703087617},"targetPosition":{"x":25994.747642982238,"y":16742.276048498705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e865f45c-813d-43c6-861d-bacdf4b90b7d","savedPayload":{"position":{"x":25994.747642982238,"y":16742.276048498705},"targetPosition":{"x":25943.88205841928,"y":17105.238493472418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"f43b14f3-f74f-44fc-9901-a3928fc38cdf","savedPayload":{"position":{"x":26257.672308664758,"y":16461.263095245373},"targetPosition":{"x":26115.930268711658,"y":16781.765919356556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7b13f0e5-8cd7-48e7-b743-2fbf89ae2029","savedPayload":{"position":{"x":26115.930268711658,"y":16781.765919356556},"targetPosition":{"x":25943.88205841928,"y":17105.238493472418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a5856620-e9ce-4ee1-830c-5b5dc45e9139","savedPayload":{"position":{"x":25440.160000174,"y":17546.358767738973},"targetPosition":{"x":25463.711180483326,"y":17995.74205837853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Market Sell Order Stats","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Percentage Filled","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.percentageFilled","project":"Superalgos","id":"f5522236-9f5c-4fdb-b08d-2e4946abc2e3","savedPayload":{"position":{"x":25686.699363342137,"y":16973.220124804247},"targetPosition":{"x":25829.359881380235,"y":17088.59841058804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2c7e8609-e799-4098-adfe-0a7b75ccb263","savedPayload":{"position":{"x":25829.359881380235,"y":17088.59841058804},"targetPosition":{"x":26023.30765528533,"y":17245.345683509346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Actual Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.actualRate","project":"Superalgos","id":"c6fe3736-eb2b-4750-b7f0-72ae5ff7d713","savedPayload":{"position":{"x":25967.63513951712,"y":16825.258610136047},"targetPosition":{"x":25997.034557190425,"y":16997.68971226934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ffc9a08a-8c74-4c50-a441-3f59296079b3","savedPayload":{"position":{"x":25997.034557190425,"y":16997.68971226934},"targetPosition":{"x":26023.30765528533,"y":17245.345683509346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"8636289b-9bd2-4026-a816-e1f75abf64bb","savedPayload":{"position":{"x":26273.769244518153,"y":16910.376154666217},"targetPosition":{"x":26158.856343169144,"y":17053.3535839001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c54f0f59-b80f-4f72-bd85-ac1fd7a15b19","savedPayload":{"position":{"x":26158.856343169144,"y":17053.3535839001},"targetPosition":{"x":26023.30765528533,"y":17245.345683509346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fb23f6bb-8383-4276-8a77-5180e622653a","savedPayload":{"position":{"x":25668.00690536612,"y":17594.789122493767},"targetPosition":{"x":25463.711180483326,"y":17995.74205837853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Market Sell Order Base Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInBaseAsset","project":"Superalgos","id":"44fa5bfe-9b0b-48a9-a894-ddec881a6ad4","savedPayload":{"position":{"x":25934.673196926757,"y":17310.488072291555},"targetPosition":{"x":25887.89306649276,"y":17530.57128245666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4498020e-77ee-4e27-9e10-9e463b1af7e6","savedPayload":{"position":{"x":25887.89306649276,"y":17530.57128245666},"targetPosition":{"x":25841.112936058766,"y":17750.65449262177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInBaseAsset","project":"Superalgos","id":"6e97ae4f-f7e2-4391-bae7-87ae36c4abd0","savedPayload":{"position":{"x":26218.514691634206,"y":17505.56692686501},"targetPosition":{"x":26029.813813846486,"y":17628.11070974339},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dc0870d0-d0f2-42d2-aaef-5d7dda44618d","savedPayload":{"position":{"x":26029.813813846486,"y":17628.11070974339},"targetPosition":{"x":25841.112936058766,"y":17750.65449262177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInBaseAsset","project":"Superalgos","id":"05ae1a21-206b-4e53-b52d-b00917748c2a","savedPayload":{"position":{"x":26281.27935638898,"y":17844.21475348976},"targetPosition":{"x":26061.196146223872,"y":17797.434623055764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"93694e2d-8e12-4bd3-9497-2489aa33caca","savedPayload":{"position":{"x":26061.196146223872,"y":17797.434623055764},"targetPosition":{"x":25841.112936058766,"y":17750.65449262177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3e9e4e57-bd41-41f5-8d52-c92d3a707e80","savedPayload":{"position":{"x":25841.112936058766,"y":17750.65449262177},"targetPosition":{"x":25463.711180483326,"y":17995.74205837853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Market Sell Order Quoted Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInQuotedAsset","project":"Superalgos","id":"394b6e9b-ee43-4cb9-8b7d-fef145bd8846","savedPayload":{"position":{"x":26214.20324398437,"y":17637.77570660438},"targetPosition":{"x":26063.648857553628,"y":17804.983292336794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"50b03be9-48dc-42db-8f6c-b9bac7d96276","savedPayload":{"position":{"x":26063.648857553628,"y":17804.983292336794},"targetPosition":{"x":25913.094471122884,"y":17972.190878069207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInQuotedAsset","project":"Superalgos","id":"34bd06ab-2d1e-4c03-9279-2fef1663d0a3","savedPayload":{"position":{"x":26362.47776176244,"y":17948.63969775988},"targetPosition":{"x":26137.78611644266,"y":17960.415287914544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5685f2bc-a91c-4e84-92ee-8dfe2bacd4a2","savedPayload":{"position":{"x":26137.78611644266,"y":17960.415287914544},"targetPosition":{"x":25913.094471122884,"y":17972.190878069207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInQuotedAsset","project":"Superalgos","id":"b63f1a7f-cbf8-4060-a74f-a2c624f3673f","savedPayload":{"position":{"x":26247.50964258771,"y":18273.299650930694},"targetPosition":{"x":26080.302056855297,"y":18122.74526449995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"28b9cc5b-898f-4cd6-87e9-5a8233362e88","savedPayload":{"position":{"x":26080.302056855297,"y":18122.74526449995},"targetPosition":{"x":25913.094471122884,"y":17972.190878069207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51d59c30-3a02-4d74-aa62-f1524ea544ee","savedPayload":{"position":{"x":25913.094471122884,"y":17972.190878069207},"targetPosition":{"x":25463.711180483326,"y":17995.74205837853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a9811005-1b7d-45bb-8003-0e60caab5f09","savedPayload":{"position":{"x":25463.711180483326,"y":17995.74205837853},"targetPosition":{"x":25259.41545560053,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Limit Buy Orders","config":"{\n \"codeName\": \"Market-Buy-Orders\",\n \"icon\": \"trend\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"actualRate\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"94f80738-6b21-4e8d-8bdf-aa8ef6f8ad4f","savedPayload":{"position":{"x":24727.375565875533,"y":17250.017858541167},"targetPosition":{"x":25059.22409717837,"y":17311.522348394767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"491e71de-b648-48aa-b493-67ed00359e73","savedPayload":{"position":{"x":25059.22409717837,"y":17311.522348394767},"targetPosition":{"x":25391.072628481204,"y":17373.026838248366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"57bd54ae-96c8-4d10-bd6d-adf3d705e47e","savedPayload":{"position":{"x":24877.798601701186,"y":16934.649405625492},"targetPosition":{"x":25134.435615091195,"y":17153.83812193693},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"38fccc9b-d822-4598-a156-95c734ec3d6b","savedPayload":{"position":{"x":25134.435615091195,"y":17153.83812193693},"targetPosition":{"x":25391.072628481204,"y":17373.026838248366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8901df44-b813-47f3-8ded-4e1f6c68ae8b","savedPayload":{"position":{"x":25391.072628481204,"y":17373.026838248366},"targetPosition":{"x":25695.695161949283,"y":17518.324333421166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Status Open","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"bbbba1d8-fbf6-4e15-a4e7-edb6683dd74f","savedPayload":{"position":{"x":25154.780188360364,"y":17146.563771851004},"targetPosition":{"x":25469.86358230317,"y":17267.512954822545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [2,2]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"fa856a62-67b2-45b5-a186-a6538b220858","savedPayload":{"position":{"x":24945.290058319715,"y":16842.721690863902},"targetPosition":{"x":25207.576820311442,"y":17055.117322843224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bb28a0e6-1cb3-4138-95f0-069745242288","savedPayload":{"position":{"x":25207.576820311442,"y":17055.117322843224},"targetPosition":{"x":25469.86358230317,"y":17267.512954822545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"c4de49da-cd9d-4687-b08b-93f8bba1d454","savedPayload":{"position":{"x":25286.047907985598,"y":16984.461638140965},"targetPosition":{"x":25469.86358230317,"y":17267.512954822545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"491e71de-b648-48aa-b493-67ed00359e73"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"7b269f5c-62d2-4f58-a010-71f1179a3312","savedPayload":{"position":{"x":25382.51215458107,"y":16941.512988449984},"targetPosition":{"x":25469.86358230317,"y":17267.512954822545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"38fccc9b-d822-4598-a156-95c734ec3d6b"}}}],"id":"7be8ba85-07e7-4800-8988-ce76d2105b73","savedPayload":{"position":{"x":25469.86358230317,"y":17267.512954822545},"targetPosition":{"x":25695.695161949283,"y":17518.324333421166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Status Closed Cancel Event","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed' && record.exitType === 'Cancel Event'","project":"Superalgos","id":"754cb109-361e-4b50-964a-0b5ef0ba4b70","savedPayload":{"position":{"x":25338.221496741236,"y":16967.863160880916},"targetPosition":{"x":25583.035346957884,"y":17200.182830177557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [4,4]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"6cae8828-961f-4184-b324-453570bf247e","savedPayload":{"position":{"x":25260.95318378265,"y":16606.98127913073},"targetPosition":{"x":25421.994265370267,"y":16903.582054654144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bd024ea0-0641-43fe-8d01-63f23a7326cb","savedPayload":{"position":{"x":25421.994265370267,"y":16903.582054654144},"targetPosition":{"x":25583.035346957884,"y":17200.182830177557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"f05d7b53-3fba-4da7-91c2-154f4f2f92a2","savedPayload":{"position":{"x":25521.530857104284,"y":16868.33429887472},"targetPosition":{"x":25583.035346957884,"y":17200.182830177557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"491e71de-b648-48aa-b493-67ed00359e73"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"bc515a2b-68af-43a1-b0cb-036129122c87","savedPayload":{"position":{"x":25627.08793683215,"y":16865.570189463895},"targetPosition":{"x":25583.035346957884,"y":17200.182830177557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"38fccc9b-d822-4598-a156-95c734ec3d6b"}}}],"id":"ab881143-5631-4b27-a97a-94138dbd370d","savedPayload":{"position":{"x":25583.035346957884,"y":17200.182830177557},"targetPosition":{"x":25695.695161949283,"y":17518.324333421166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Status Closed Filled","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed' && record.exitType === 'Filled'","project":"Superalgos","id":"c206ef6f-d846-4744-b49d-c1261977a591","savedPayload":{"position":{"x":25576.084930143195,"y":16872.96527348712},"targetPosition":{"x":25713.358547181277,"y":17181.286865441496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"be3d2e3c-c973-421a-87d7-720472b42080","savedPayload":{"position":{"x":25642.801834475613,"y":16509.98458606791},"targetPosition":{"x":25678.080190828445,"y":16845.635725754702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"daebbf6b-f45b-40f5-8182-bd95d1a657e9","savedPayload":{"position":{"x":25678.080190828445,"y":16845.635725754702},"targetPosition":{"x":25713.358547181277,"y":17181.286865441496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"72d869ee-aa3b-4995-9832-7ab1b06579bf","savedPayload":{"position":{"x":25783.52874283227,"y":16851.162050193838},"targetPosition":{"x":25713.358547181277,"y":17181.286865441496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"491e71de-b648-48aa-b493-67ed00359e73"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"da73c5dc-926a-4368-9229-98574af7fec4","savedPayload":{"position":{"x":25882.108547181277,"y":16889.00329166425},"targetPosition":{"x":25713.358547181277,"y":17181.286865441496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"38fccc9b-d822-4598-a156-95c734ec3d6b"}}}],"id":"a54693cf-8ec1-469d-afb9-2a724e4f6af7","savedPayload":{"position":{"x":25713.358547181277,"y":17181.286865441496},"targetPosition":{"x":25695.695161949283,"y":17518.324333421166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"Status Closed Cancel Event","config":"{ \n\"codeName\": \"bullet-cancelled-order\", \n\"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.status === 'Closed' && record.exitType === 'Cancel Event'","project":"Superalgos","id":"9c3cb413-e20e-499b-ad72-de3ba1fc6543","savedPayload":{"position":{"x":25871.744902048882,"y":17047.77753430167},"targetPosition":{"x":25840.992657122082,"y":17213.701799953087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"End","config":"{ \n\"offsetX\": -5,\n \"offsetY\": 0\n }","project":"Superalgos","id":"b8016af3-22de-4a1b-b4cb-45a23b2928d5","savedPayload":{"position":{"x":25950.5870152778,"y":17085.38329325808},"targetPosition":{"x":25840.992657122082,"y":17213.701799953087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End","id":"38fccc9b-d822-4598-a156-95c734ec3d6b"}}},"id":"d562a270-c953-4ebe-9985-9f724e0e7eb6","savedPayload":{"position":{"x":25840.992657122082,"y":17213.701799953087},"targetPosition":{"x":25695.695161949283,"y":17518.324333421166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Starting Point","config":"{ \n\"codeName\": \"bullet-limit-buy-order\", \n\"size\": 20\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin","config":"{ \n\"offsetX\": 10,\n \"offsetY\": 0\n }","project":"Superalgos","id":"324aa438-7134-4918-b13e-082f3b3078dc","savedPayload":{"position":{"x":26071.912229847214,"y":17179.576963951993},"targetPosition":{"x":25946.506540547904,"y":17292.492753775052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"491e71de-b648-48aa-b493-67ed00359e73"}}},"id":"89fe166c-e48e-4a0c-b357-149ffa17f2c2","savedPayload":{"position":{"x":25946.506540547904,"y":17292.492753775052},"targetPosition":{"x":25695.695161949283,"y":17518.324333421166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Status Closed Filled","config":"{ \n\"codeName\": \"bullet-limit-buy-order-filled\", \n\"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.status === 'Closed' && record.exitType === 'Filled'","project":"Superalgos","id":"09ebd654-f653-467c-91f3-e8b9ec95feeb","savedPayload":{"position":{"x":26152.907959522858,"y":17310.0834659487},"targetPosition":{"x":26013.83666519289,"y":17405.664518429767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"End","config":"{ \n\"offsetX\": -10,\n \"offsetY\": 0\n }","project":"Superalgos","id":"a22c8598-870b-4d86-bb42-938cb21a5d28","savedPayload":{"position":{"x":26182.066465260355,"y":17392.424546025693},"targetPosition":{"x":26013.83666519289,"y":17405.664518429767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End","id":"38fccc9b-d822-4598-a156-95c734ec3d6b"}}},"id":"7c9a0ee3-b3f4-44c7-b51b-0efc830fd8d5","savedPayload":{"position":{"x":26013.83666519289,"y":17405.664518429767},"targetPosition":{"x":25695.695161949283,"y":17518.324333421166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"3ea3861e-f37d-4d78-a45e-9b5fa738aefd","savedPayload":{"position":{"x":25695.695161949283,"y":17518.324333421166},"targetPosition":{"x":25660.368391485295,"y":18192.3992693805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Limit Buy Order","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"5cec4759-6b80-42b0-9443-1b831b5b7d09","savedPayload":{"position":{"x":25833.520774648186,"y":16844.729747350353},"targetPosition":{"x":26024.779213225724,"y":17098.389452365012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b09e6f5e-9273-4e1c-a54a-43ce45bc6dd8","savedPayload":{"position":{"x":26024.779213225724,"y":17098.389452365012},"targetPosition":{"x":26304.926817547024,"y":17460.705984473396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.rate","project":"Superalgos","id":"f26cae34-697d-4ad2-a143-1693300d3311","savedPayload":{"position":{"x":26075.1492288885,"y":16718.485801362534},"targetPosition":{"x":26168.024723435738,"y":17022.524368134324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"387d66c8-900b-4e9d-8bc9-ea37b257256a","savedPayload":{"position":{"x":26168.024723435738,"y":17022.524368134324},"targetPosition":{"x":26304.926817547024,"y":17460.705984473396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"b6443228-7052-4e44-8338-44a3d2498ae0","savedPayload":{"position":{"x":26344.131394734948,"y":16684.161952212493},"targetPosition":{"x":26327.57552282128,"y":17001.768915162287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d6f79efe-1f80-4033-92a1-6869a7e9fb06","savedPayload":{"position":{"x":26327.57552282128,"y":17001.768915162287},"targetPosition":{"x":26304.926817547024,"y":17460.705984473396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"c448c5dc-5941-4bca-9328-79703fa9cabf","savedPayload":{"position":{"x":26608.390851391137,"y":16744.256958459442},"targetPosition":{"x":26483.943393495392,"y":17037.275687191617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5bdddc9e-d08c-4944-8add-a1c1753489b1","savedPayload":{"position":{"x":26483.943393495392,"y":17037.275687191617},"targetPosition":{"x":26304.926817547024,"y":17460.705984473396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Order Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.orderName","project":"Superalgos","id":"482dca74-9ba2-4a76-8101-fc24179e9299","savedPayload":{"position":{"x":26835.50307556864,"y":16891.596992091232},"targetPosition":{"x":26618.563015671192,"y":17124.042992508068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bc07d18f-6016-4959-ae36-efd2b9bd44f8","savedPayload":{"position":{"x":26618.563015671192,"y":17124.042992508068},"targetPosition":{"x":26304.926817547024,"y":17460.705984473396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Algorithm Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.algorithmName","project":"Superalgos","id":"7a0ad104-5485-4807-891e-2aa1b970020c","savedPayload":{"position":{"x":26998.647709815898,"y":17107.574544065763},"targetPosition":{"x":26714.925452476375,"y":17251.78937096081},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b04fe3cd-9003-4a69-a49d-ad6eface3203","savedPayload":{"position":{"x":26714.925452476375,"y":17251.78937096081},"targetPosition":{"x":26304.926817547024,"y":17460.705984473396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Situation Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.situationName","project":"Superalgos","id":"cadd0d45-e81e-40fe-ac32-76bb35061bf2","savedPayload":{"position":{"x":27077.421494033337,"y":17366.417494960642},"targetPosition":{"x":26762.068994502195,"y":17404.718128900655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7239341a-6c4b-468a-bee8-21b27c2fa9d9","savedPayload":{"position":{"x":26762.068994502195,"y":17404.718128900655},"targetPosition":{"x":26304.926817547024,"y":17460.705984473396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"d62047f4-7a35-4249-8b91-ffcc53228417","savedPayload":{"position":{"x":27059.098117231082,"y":17646.70383417113},"targetPosition":{"x":26748.843682533174,"y":17574.298399856838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a34576ad-99d8-469e-8b78-1bacb5aa7ee2","savedPayload":{"position":{"x":26748.843682533174,"y":17574.298399856838},"targetPosition":{"x":26304.926817547024,"y":17460.705984473396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"48ec80a7-6f68-4284-9bb5-f04ce3c1052b","savedPayload":{"position":{"x":25905.45595724206,"y":17814.99751380506},"targetPosition":{"x":25660.368391485295,"y":18192.3992693805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Limit Buy Order Stats","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Percentage Filled","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.percentageFilled","project":"Superalgos","id":"bf5f428c-4b90-47d1-b001-8a3478e74522","savedPayload":{"position":{"x":26209.744370251676,"y":17393.41353984155},"targetPosition":{"x":26352.404888289773,"y":17508.791825625343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"94b4e199-d798-4ba3-8fc7-3d739ae55cb1","savedPayload":{"position":{"x":26352.404888289773,"y":17508.791825625343},"targetPosition":{"x":26546.35266219487,"y":17665.539098546647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Actual Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.actualRate","project":"Superalgos","id":"cf967a95-e485-4fbe-9647-4b86624511f3","savedPayload":{"position":{"x":26490.680146426657,"y":17245.452025173345},"targetPosition":{"x":26520.079564099964,"y":17417.883127306643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bd576bff-fa79-4ea3-87b7-565a2877a7b7","savedPayload":{"position":{"x":26520.079564099964,"y":17417.883127306643},"targetPosition":{"x":26546.35266219487,"y":17665.539098546647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"c523a647-b720-4932-ae18-771cb70e3145","savedPayload":{"position":{"x":26796.81425142769,"y":17330.569569703515},"targetPosition":{"x":26681.901350078682,"y":17473.546998937403},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32b22d53-13c5-44db-941c-e29a4c1f05f7","savedPayload":{"position":{"x":26681.901350078682,"y":17473.546998937403},"targetPosition":{"x":26546.35266219487,"y":17665.539098546647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"90bd6690-de93-4158-a17f-728c28defc38","savedPayload":{"position":{"x":26061.32132737006,"y":17988.103544497706},"targetPosition":{"x":25660.368391485295,"y":18192.3992693805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Limit Buy Order Base Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInBaseAsset","project":"Superalgos","id":"50c5c78c-49ba-43c1-9000-dfb7a2890db5","savedPayload":{"position":{"x":27168.42740560968,"y":17508.087845937593},"targetPosition":{"x":26932.92827047577,"y":17720.099271153897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e60271d1-8ce8-47e1-9776-42b583c9f2d6","savedPayload":{"position":{"x":26932.92827047577,"y":17720.099271153897},"targetPosition":{"x":26593.600999444443,"y":18025.86211070353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInBaseAsset","project":"Superalgos","id":"65c1b916-6c36-4818-901a-7b6411c523b2","savedPayload":{"position":{"x":27366.506969563958,"y":18066.024283002414},"targetPosition":{"x":27048.759936787967,"y":18049.597120613977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"63d19192-c46d-4e53-bf40-c229089d93b6","savedPayload":{"position":{"x":27048.759936787967,"y":18049.597120613977},"targetPosition":{"x":26593.600999444443,"y":18025.86211070353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInBaseAsset","project":"Superalgos","id":"7a32b13c-7e88-48d1-9ef7-dee529f39c95","savedPayload":{"position":{"x":27111.5787956666,"y":18600.943146731624},"targetPosition":{"x":26899.05404149945,"y":18365.04915827637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b1a42210-66b9-4e3a-aef5-4b0f385bcfc8","savedPayload":{"position":{"x":26899.05404149945,"y":18365.04915827637},"targetPosition":{"x":26593.600999444443,"y":18025.86211070353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8504b6e3-83c8-45ea-959a-41303f9d4274","savedPayload":{"position":{"x":26109.751682124854,"y":18215.950449689826},"targetPosition":{"x":25660.368391485295,"y":18192.3992693805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Limit Buy Order Quoted Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInQuotedAsset","project":"Superalgos","id":"0b1e5b50-51c0-4753-b11f-37fe4179f81f","savedPayload":{"position":{"x":27249.905648596738,"y":18177.43630018128},"targetPosition":{"x":26938.08379991229,"y":18243.70523216879},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d30de7e2-c899-49da-b015-95ca5ca26133","savedPayload":{"position":{"x":26938.08379991229,"y":18243.70523216879},"targetPosition":{"x":26492.174089175543,"y":18338.662656737823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInQuotedAsset","project":"Superalgos","id":"d6a5ced0-9c91-4d52-ad4a-ac544a917496","savedPayload":{"position":{"x":27141.527686477177,"y":18760.17435970883},"targetPosition":{"x":26874.928420935088,"y":18587.15239263583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3c7ad592-3802-479f-9f03-c7f5d90aa827","savedPayload":{"position":{"x":26874.928420935088,"y":18587.15239263583},"targetPosition":{"x":26492.174089175543,"y":18338.662656737823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInQuotedAsset","project":"Superalgos","id":"7b5c11c3-8e14-4de1-9f05-46d958bac220","savedPayload":{"position":{"x":26653.123886502704,"y":19096.015661650654},"targetPosition":{"x":26586.957890978683,"y":18784.71514709761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d0862104-b7d8-42da-bc28-b4218d1cad2e","savedPayload":{"position":{"x":26586.957890978683,"y":18784.71514709761},"targetPosition":{"x":26492.174089175543,"y":18338.662656737823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b60e7e48-8ae7-4701-848b-8faa9ba58c11","savedPayload":{"position":{"x":26037.770147060735,"y":18437.486835137264},"targetPosition":{"x":25660.368391485295,"y":18192.3992693805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7e3120c7-a0c9-483c-ada9-8c53deb10f33","savedPayload":{"position":{"x":25660.368391485295,"y":18192.3992693805},"targetPosition":{"x":25259.41545560053,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Limit Sell Orders","config":"{ \n \"codeName\": \"Market-Sell-Orders\", \n \"icon\": \"trend\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"actualRate\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"7f75a437-7e83-43b8-8353-459cec82a3da","savedPayload":{"position":{"x":25502.986052646083,"y":17156.288503591237},"targetPosition":{"x":25735.305721942725,"y":17401.102353807884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d8a8ba4d-ceac-43f7-9cac-b15d3c577e0a","savedPayload":{"position":{"x":25735.305721942725,"y":17401.102353807884},"targetPosition":{"x":25967.625391239366,"y":17645.916204024532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"d69fedc3-dcb6-4b3a-a8a5-7db14d37f8da","savedPayload":{"position":{"x":25810.04977063663,"y":16989.566507756103},"targetPosition":{"x":25888.837580937998,"y":17317.741355890317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a7c33161-bd93-4a7d-9d79-d6e6c3f3b292","savedPayload":{"position":{"x":25888.837580937998,"y":17317.741355890317},"targetPosition":{"x":25967.625391239366,"y":17645.916204024532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"045c78e6-ddff-4981-b497-31d6d19f9ef1","savedPayload":{"position":{"x":25967.625391239366,"y":17645.916204024532},"targetPosition":{"x":26128.666472826982,"y":17942.516979547945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Status Open","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"5aeb9711-2374-4a99-b757-f037eb05db27","savedPayload":{"position":{"x":25909.57244215658,"y":17323.81452317957},"targetPosition":{"x":26093.38811647415,"y":17606.86583986115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [2,2]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"f829eef3-dc45-4244-934b-8955baa9a363","savedPayload":{"position":{"x":25918.68526102995,"y":16954.86590711603},"targetPosition":{"x":26006.03668875205,"y":17280.86587348859},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"f24f885d-8cb5-4519-a209-9dccea0d7b32","savedPayload":{"position":{"x":26006.03668875205,"y":17280.86587348859},"targetPosition":{"x":26093.38811647415,"y":17606.86583986115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"4f668994-11ef-4a59-a41c-b238fb22c449","savedPayload":{"position":{"x":26111.051501706144,"y":17269.828371881482},"targetPosition":{"x":26093.38811647415,"y":17606.86583986115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"d8a8ba4d-ceac-43f7-9cac-b15d3c577e0a"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"95434555-e691-495e-ba26-d489c6356590","savedPayload":{"position":{"x":26214.337299445688,"y":17291.782445918347},"targetPosition":{"x":26093.38811647415,"y":17606.86583986115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"a7c33161-bd93-4a7d-9d79-d6e6c3f3b292"}}}],"id":"186d1b59-7d04-4b40-83c9-acc361b8a12a","savedPayload":{"position":{"x":26093.38811647415,"y":17606.86583986115},"targetPosition":{"x":26128.666472826982,"y":17942.516979547945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Status Closed Cancel Event","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed' && record.exitType === 'Cancel Event'","project":"Superalgos","id":"831bf4d8-74d0-4451-9ac1-74129aed4035","savedPayload":{"position":{"x":26163.017161810956,"y":17287.066787727093},"targetPosition":{"x":26224.521651664556,"y":17618.91531902993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [4,4]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"1981c910-838a-472d-bef0-df163a5ba786","savedPayload":{"position":{"x":26312.62683141309,"y":16949.690037602606},"targetPosition":{"x":26268.574241538823,"y":17284.302678316268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"34016ca1-5c63-4cad-8f9e-5f042f3ff604","savedPayload":{"position":{"x":26268.574241538823,"y":17284.302678316268},"targetPosition":{"x":26224.521651664556,"y":17618.91531902993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"bf1708a8-16c7-45fc-88c4-1ad7aace15ea","savedPayload":{"position":{"x":26369.819146837355,"y":17314.29278556185},"targetPosition":{"x":26224.521651664556,"y":17618.91531902993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"d8a8ba4d-ceac-43f7-9cac-b15d3c577e0a"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"db93470c-9f50-465c-b5f1-e222beb27f6c","savedPayload":{"position":{"x":26456.841320961197,"y":17374.101468813282},"targetPosition":{"x":26224.521651664556,"y":17618.91531902993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"a7c33161-bd93-4a7d-9d79-d6e6c3f3b292"}}}],"id":"8e993263-dbfc-4d41-864a-9470e70d7e4f","savedPayload":{"position":{"x":26224.521651664556,"y":17618.91531902993},"targetPosition":{"x":26128.666472826982,"y":17942.516979547945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Status Closed Filled","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed' && record.exitType === 'Filled'","project":"Superalgos","id":"efdea12d-4ac6-4fa1-819f-1de25267d9bc","savedPayload":{"position":{"x":26411.232300457297,"y":17350.10540230856},"targetPosition":{"x":26341.062104806304,"y":17680.230217556218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"753d66c8-8384-4ae0-bdae-8cfa0a3564b6","savedPayload":{"position":{"x":26678.562104806304,"y":17095.663070001723},"targetPosition":{"x":26509.812104806304,"y":17387.94664377897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"decddc18-331d-4a58-bf36-02808c215d87","savedPayload":{"position":{"x":26509.812104806304,"y":17387.94664377897},"targetPosition":{"x":26341.062104806304,"y":17680.230217556218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"373ba1e5-fa16-405f-b4f2-4d2d3cea3acb","savedPayload":{"position":{"x":26591.873483404925,"y":17454.398637910104},"targetPosition":{"x":26341.062104806304,"y":17680.230217556218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"d8a8ba4d-ceac-43f7-9cac-b15d3c577e0a"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"b67222e6-6186-4e69-ad67-a3a6c5a89201","savedPayload":{"position":{"x":26649.38369676068,"y":17542.956600518137},"targetPosition":{"x":26341.062104806304,"y":17680.230217556218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"a7c33161-bd93-4a7d-9d79-d6e6c3f3b292"}}}],"id":"bf0751d6-fdb2-4e66-a39c-2bd99252bd60","savedPayload":{"position":{"x":26341.062104806304,"y":17680.230217556218},"targetPosition":{"x":26128.666472826982,"y":17942.516979547945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"Status Closed Cancel Event","config":"{ \n\"codeName\": \"bullet-cancelled-order\", \n\"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.status === 'Closed' && record.exitType === 'Cancel Event'","project":"Superalgos","id":"191dc665-7aaf-4aa6-8c8e-966ded042b38","savedPayload":{"position":{"x":26547.67417345872,"y":17665.316063312006},"targetPosition":{"x":26425.267248350396,"y":17781.47589796033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"End","config":"{ \n\"offsetX\": -5,\n \"offsetY\": 0\n }","project":"Superalgos","id":"ed6c3f2f-fa06-45f6-af44-7038503f9c5c","savedPayload":{"position":{"x":26589.354672417503,"y":17742.081992809646},"targetPosition":{"x":26425.267248350396,"y":17781.47589796033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End","id":"a7c33161-bd93-4a7d-9d79-d6e6c3f3b292"}}},"id":"5533709c-4ba8-4b2e-af48-827be2e1fe75","savedPayload":{"position":{"x":26425.267248350396,"y":17781.47589796033},"targetPosition":{"x":26128.666472826982,"y":17942.516979547945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Starting Point","config":"{ \n\"codeName\": \"bullet-limit-sell-order\", \n\"size\": 20\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin","config":"{ \n\"offsetX\": 10,\n \"offsetY\": 0\n }","project":"Superalgos","id":"8a78cf69-decb-4ab7-b182-f96676867972","savedPayload":{"position":{"x":26632.143182357173,"y":17889.599445018695},"targetPosition":{"x":26464.317612513776,"y":17907.238623195113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"d8a8ba4d-ceac-43f7-9cac-b15d3c577e0a"}}},"id":"5c00fd53-4ca0-4903-9b02-ccb5afd7df12","savedPayload":{"position":{"x":26464.317612513776,"y":17907.238623195113},"targetPosition":{"x":26128.666472826982,"y":17942.516979547945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Status Closed Filled","config":"{ \n\"codeName\": \"bullet-limit-sell-order-filled\", \n\"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.status === 'Closed' && record.exitType === 'Filled'","project":"Superalgos","id":"510f3cbf-b1ba-4a5f-9db3-b90c91c6c38b","savedPayload":{"position":{"x":26620.960306934623,"y":18042.78951841247},"targetPosition":{"x":26452.268133345,"y":18038.37215838552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"End","config":"{ \n\"offsetX\": -10,\n \"offsetY\": 0\n }","project":"Superalgos","id":"5feb84a7-3898-4c30-87c9-40b3d141eb5e","savedPayload":{"position":{"x":26596.15116107975,"y":18126.543791181335},"targetPosition":{"x":26452.268133345,"y":18038.37215838552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End","id":"a7c33161-bd93-4a7d-9d79-d6e6c3f3b292"}}},"id":"8564bc89-fb34-453f-8c5c-75459681cd7d","savedPayload":{"position":{"x":26452.268133345,"y":18038.37215838552},"targetPosition":{"x":26128.666472826982,"y":17942.516979547945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"42719bff-262a-4401-9611-761f0db1e790","savedPayload":{"position":{"x":26128.666472826982,"y":17942.516979547945},"targetPosition":{"x":25703.875208868343,"y":18467.0905035314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Limit Sell Order","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"c5062c3f-117f-4c7f-8baf-1181e07c1f44","savedPayload":{"position":{"x":25603.880192707555,"y":19270.643344420576},"targetPosition":{"x":25943.664727212734,"y":19133.4313306997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2775824-cc6b-415a-a9a1-083a6f143c28","savedPayload":{"position":{"x":25943.664727212734,"y":19133.4313306997},"targetPosition":{"x":26283.448915316356,"y":18995.97886393687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.rate","project":"Superalgos","id":"f1a1e227-ac94-4216-a73a-8e1499532932","savedPayload":{"position":{"x":25550.776353057743,"y":19021.42189675584},"targetPosition":{"x":25917.07228089571,"y":19008.747608244656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9714ab0d-e1c1-4556-9467-d08f7cde214c","savedPayload":{"position":{"x":25917.07228089571,"y":19008.747608244656},"targetPosition":{"x":26283.448915316356,"y":18995.97886393687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"5a83a8c5-a25c-4489-8659-a2de66406218","savedPayload":{"position":{"x":25586.167142118135,"y":18769.599089027077},"targetPosition":{"x":25934.762340415025,"y":18882.802451560336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"86407d60-10e5-43bf-ab20-ef5aadee9b29","savedPayload":{"position":{"x":25934.762340415025,"y":18882.802451560336},"targetPosition":{"x":26283.448915316356,"y":18995.97886393687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"4471f450-8aa3-428e-a2d7-11ea1f32fbce","savedPayload":{"position":{"x":25705.69753494415,"y":18544.719359365008},"targetPosition":{"x":25994.53347126927,"y":18770.339175768284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5d944f70-0ef5-423a-88da-ee0d5cdf73ee","savedPayload":{"position":{"x":25994.53347126927,"y":18770.339175768284},"targetPosition":{"x":26283.448915316356,"y":18995.97886393687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Order Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.orderName","project":"Superalgos","id":"dbf9a292-37f8-424e-800e-b479ae70f3de","savedPayload":{"position":{"x":25894.931718125517,"y":18374.30387643248},"targetPosition":{"x":26089.166311217094,"y":18685.119019024212},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a268a651-1823-4ae5-b1d3-8bb325ca0ad7","savedPayload":{"position":{"x":26089.166311217094,"y":18685.119019024212},"targetPosition":{"x":26283.448915316356,"y":18995.97886393687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Algorithm Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.algorithmName","project":"Superalgos","id":"fc31dc8f-c014-43a2-b0e9-5885f0456011","savedPayload":{"position":{"x":26131.029321393624,"y":18278.90933905739},"targetPosition":{"x":26207.24159495418,"y":18637.42330847027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"09a1d252-4dd5-42f2-841a-0f9db2b2c1d4","savedPayload":{"position":{"x":26207.24159495418,"y":18637.42330847027},"targetPosition":{"x":26283.448915316356,"y":18995.97886393687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Situation Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.situationName","project":"Superalgos","id":"ec99ec3d-02cc-445e-9281-f17347a84fc9","savedPayload":{"position":{"x":26385.07473370472,"y":18270.044073552068},"targetPosition":{"x":26334.314499879314,"y":18633.016418963158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d9cee878-f71a-4829-8ce4-0debdc3833fa","savedPayload":{"position":{"x":26334.314499879314,"y":18633.016418963158},"targetPosition":{"x":26283.448915316356,"y":18995.97886393687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"55e5a5ee-fcbc-4ac0-ae44-4fc4ef2ca64f","savedPayload":{"position":{"x":26597.239165561834,"y":18352.003465709826},"targetPosition":{"x":26455.497125608734,"y":18672.50628982101},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a08ab071-656a-4f19-8d63-694d32f88b83","savedPayload":{"position":{"x":26455.497125608734,"y":18672.50628982101},"targetPosition":{"x":26283.448915316356,"y":18995.97886393687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5d485d15-9919-42cc-9399-54c679d7085d","savedPayload":{"position":{"x":26123.986400792084,"y":18305.824926236015},"targetPosition":{"x":25703.875208868343,"y":18467.0905035314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Limit Sell Order Stats","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Percentage Filled","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.percentageFilled","project":"Superalgos","id":"e34fb8e5-a23a-461f-86b1-ee87aed3c3cf","savedPayload":{"position":{"x":26986.0723962566,"y":18232.14371165281},"targetPosition":{"x":26858.42963948916,"y":18325.545570627848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cc61478e-bfdb-439b-a55c-4238c8ba920a","savedPayload":{"position":{"x":26858.42963948916,"y":18325.545570627848},"targetPosition":{"x":26646.795627538373,"y":18480.671535225363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Actual Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.actualRate","project":"Superalgos","id":"ae5c666b-5001-479a-8d1f-2f00079e5585","savedPayload":{"position":{"x":27062.080870283033,"y":18545.620670988774},"targetPosition":{"x":26905.591419073797,"y":18521.417591734717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"172b26d5-66ca-4bcc-b453-e97fe8b0d06f","savedPayload":{"position":{"x":26905.591419073797,"y":18521.417591734717},"targetPosition":{"x":26646.795627538373,"y":18480.671535225363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"c119f6cb-3354-4c7f-9d75-a4027adbdc2d","savedPayload":{"position":{"x":26891.88105174628,"y":18822.21496175113},"targetPosition":{"x":26799.92639171644,"y":18693.27010543133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"906f7f52-dedc-4c67-a18c-e1be9e753c5b","savedPayload":{"position":{"x":26799.92639171644,"y":18693.27010543133},"targetPosition":{"x":26646.795627538373,"y":18480.671535225363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"db2f6e9c-ce79-4465-a0dc-8ea02fac26b7","savedPayload":{"position":{"x":26148.334962136156,"y":18537.4860127995},"targetPosition":{"x":25703.875208868343,"y":18467.0905035314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Limit Sell Order Base Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInBaseAsset","project":"Superalgos","id":"ace027c0-94cc-4f43-b7bc-5c845840b58f","savedPayload":{"position":{"x":27284.118642669102,"y":18700.96465435519},"targetPosition":{"x":26967.693916083277,"y":18733.821636006396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7bf8afbb-b802-4355-812c-2b9c2bf10a71","savedPayload":{"position":{"x":26967.693916083277,"y":18733.821636006396},"targetPosition":{"x":26514.36200037679,"y":18781.263842312026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInBaseAsset","project":"Superalgos","id":"2e2c5d6c-3539-498f-b2ca-a720877aa5a3","savedPayload":{"position":{"x":27115.757142379465,"y":19268.57138872106},"targetPosition":{"x":26868.809412502742,"y":19068.470960417053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a75fbc3b-400f-4246-8946-22b17df79b7e","savedPayload":{"position":{"x":26868.809412502742,"y":19068.470960417053},"targetPosition":{"x":26514.36200037679,"y":18781.263842312026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInBaseAsset","project":"Superalgos","id":"5d54cc4b-46d5-4931-a687-d62dc4764ca1","savedPayload":{"position":{"x":26595.17520314173,"y":19551.37925824329},"targetPosition":{"x":26562.04104559584,"y":19235.264803650254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a22de527-1426-4575-a7bc-cce1aaf9c28c","savedPayload":{"position":{"x":26562.04104559584,"y":19235.264803650254},"targetPosition":{"x":26514.36200037679,"y":18781.263842312026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3e34000e-ad8c-4049-9eee-89e8ea362a0f","savedPayload":{"position":{"x":26053.59089152398,"y":18750.284679503828},"targetPosition":{"x":25703.875208868343,"y":18467.0905035314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Limit Sell Order Quoted Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInQuotedAsset","project":"Superalgos","id":"8b27eaa0-3c2b-42ea-830a-dbec2b2ddf21","savedPayload":{"position":{"x":26955.59633919207,"y":19289.145386940756},"targetPosition":{"x":26665.39116256476,"y":19159.96491881869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ea964346-031e-4c3e-9e72-c644659cc7e0","savedPayload":{"position":{"x":26665.39116256476,"y":19159.96491881869},"targetPosition":{"x":26248.531247833645,"y":18974.50594254728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInQuotedAsset","project":"Superalgos","id":"b9d28a73-c3a6-4da6-b86b-19f524a02b8a","savedPayload":{"position":{"x":26525.878839175366,"y":19697.01120346041},"targetPosition":{"x":26411.785498098317,"y":19399.980505865737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b65033c3-ee30-48c1-9ce5-a517f4ec24f5","savedPayload":{"position":{"x":26411.785498098317,"y":19399.980505865737},"targetPosition":{"x":26248.531247833645,"y":18974.50594254728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInQuotedAsset","project":"Superalgos","id":"3b945002-5861-43c5-8cdd-835c6639acd6","savedPayload":{"position":{"x":25933.914514576503,"y":19682.149708045836},"targetPosition":{"x":26063.1824601456,"y":19391.27495675221},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b57e89db-a5bc-4d67-86ab-acee68676d5f","savedPayload":{"position":{"x":26063.1824601456,"y":19391.27495675221},"targetPosition":{"x":26248.531247833645,"y":18974.50594254728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ae18b041-f16e-4d96-8a83-56845dddf64a","savedPayload":{"position":{"x":25865.140786163727,"y":18887.20169545514},"targetPosition":{"x":25703.875208868343,"y":18467.0905035314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fb243322-ec2a-4f03-bb77-e97e4699d1c6","savedPayload":{"position":{"x":25703.875208868343,"y":18467.0905035314},"targetPosition":{"x":25259.41545560053,"y":18396.694994263296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"93c15cbf-185a-4b59-b55f-847f437bb841","savedPayload":{"position":{"x":25259.41545560053,"y":18396.694994263296},"targetPosition":{"x":24941.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6a54eece-4582-4cda-a854-1cd805e00fed","savedPayload":{"position":{"x":24941.217404066585,"y":18714.893045797242},"targetPosition":{"x":24941.217404066585,"y":18714.893045797242},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}} \ No newline at end of file diff --git a/Projects/Superalgos/Plugins/Trading-Systems/Masters-Lightning-Strike.json b/Projects/Superalgos/Plugins/Trading-Systems/Masters-Lightning-Strike.json index dc249fb62..a41758a68 100644 --- a/Projects/Superalgos/Plugins/Trading-Systems/Masters-Lightning-Strike.json +++ b/Projects/Superalgos/Plugins/Trading-Systems/Masters-Lightning-Strike.json @@ -1 +1 @@ -{"type":"Trading System","name":"Lightning Strike","config":"{ \n\"codeName\": \"Lightning Strike\"\n}","project":"Superalgos","tradingStrategies":[{"type":"Trading Strategy","name":"My Trading Strategy","project":"Superalgos","triggerStage":{"type":"Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"Inmediate Trigger On","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"e2ea7ded-2be1-43a3-a7fa-de3d9b8eeec4","savedPayload":{"position":{"x":29614.345537114667,"y":29686.264363248512},"targetPosition":{"x":30059.096259318965,"y":29912.85964671243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e693623c-e11f-49e3-99da-1897c7a47563","savedPayload":{"position":{"x":30059.096259318965,"y":29912.85964671243},"targetPosition":{"x":30503.948096117412,"y":30139.527093006473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9135663f-deeb-4b3f-8855-91750810a406","savedPayload":{"position":{"x":30503.948096117412,"y":30139.527093006473},"targetPosition":{"x":30949.606420886405,"y":30366.48888962723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"05f2f6b7-15ab-4386-a299-91a949de634e","savedPayload":{"position":{"x":30949.606420886405,"y":30366.48888962723},"targetPosition":{"x":31395.222935590078,"y":30593.406010951592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"Never Trigger Off","project":"Superalgos","conditions":[{"type":"Condition","name":"Close Above MA","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"false","project":"Superalgos","id":"0eb59e3b-ccc8-4eab-a1f2-a7c8dea28949","savedPayload":{"position":{"x":30777.836612408217,"y":28692.647426362768},"targetPosition":{"x":30932.059454816794,"y":29167.31041310742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31ab47dd-fe2d-47ac-9a77-08ec8beee068","savedPayload":{"position":{"x":30932.059454816794,"y":29167.31041310742},"targetPosition":{"x":31086.31006690743,"y":29642.1636542021},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fa93a965-e836-42b3-9784-79acda1468dd","savedPayload":{"position":{"x":31086.31006690743,"y":29642.1636542021},"targetPosition":{"x":31240.740280232243,"y":30117.847206458973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"8a46ebed-4ed4-4b70-882b-416ffa1b37f6","savedPayload":{"position":{"x":31240.740280232243,"y":30117.847206458973},"targetPosition":{"x":31395.222935590078,"y":30593.406010951592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"Inmediate Take Position","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"90dda64b-17fd-469c-8066-3855596795ab","savedPayload":{"position":{"x":32310.303575265214,"y":28785.226973794255},"targetPosition":{"x":32083.882547130008,"y":29230.01160391372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4054a522-7863-4ac2-9eab-26db2a6f037f","savedPayload":{"position":{"x":32083.882547130008,"y":29230.01160391372},"targetPosition":{"x":31848.83631252263,"y":29702.20922965271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0b8d71ab-6430-4e3f-840a-162745ab8d22","savedPayload":{"position":{"x":31848.83631252263,"y":29702.20922965271},"targetPosition":{"x":31622.00489673196,"y":30147.8015863614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"f8ca03db-0afa-4c98-abad-d9a5d17bdd36","savedPayload":{"position":{"x":31622.00489673196,"y":30147.8015863614},"targetPosition":{"x":31395.222935590078,"y":30593.406010951592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"a31576e1-6f47-4e02-8953-c863c79cf783","savedPayload":{"position":{"x":31257.660610360945,"y":30783.509513979912},"targetPosition":{"x":31350.365708673427,"y":31068.826468868458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"openStage":{"type":"Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"Entry Target Rate","code":"tradingEngine.tradingCurrent.tradingEpisode.candle.close.value","project":"Superalgos","id":"c9aada83-91b0-4b34-955a-858bd201b4e2","savedPayload":{"position":{"x":32053.25964936278,"y":29325.41438209381},"targetPosition":{"x":32105.254754356094,"y":29821.797185559502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9158b840-9adc-4476-9137-72cc97037498","savedPayload":{"position":{"x":32105.254754356094,"y":29821.797185559502},"targetPosition":{"x":32157.172363266734,"y":30317.794022937276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"Target Size in Quoted Asset","code":"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset.balance.value\n","project":"Superalgos","id":"a1796525-0b97-4b83-bf89-6f084f69cae2","savedPayload":{"position":{"x":32964.4235848001,"y":29730.818183696843},"targetPosition":{"x":32560.836858717368,"y":30024.266048044417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8ca6e0cd-15ac-4743-aed2-965ec3dff80c","savedPayload":{"position":{"x":32560.836858717368,"y":30024.266048044417},"targetPosition":{"x":32157.172363266734,"y":30317.794022937276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a3827280-3a20-433b-a297-51994eb7198e","savedPayload":{"position":{"x":31715.09179990865,"y":30618.427255887935},"targetPosition":{"x":31593.07080698591,"y":30892.490893180715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"Buy Orders","config":"{\n\"percentageOfStageTargetSize\": 100\n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[],"limitBuyOrders":[{"type":"Limit Buy Order","name":"Limit Buy","config":"{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": true\n}","project":"Superalgos","orderRate":{"type":"Order Rate","name":"New Order Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"chart.at01min.support.support4Rate","project":"Superalgos","id":"d6637c4c-8cec-497e-83c5-2cce8375c193","savedPayload":{"position":{"x":32788.14051281736,"y":30278.800033969157},"targetPosition":{"x":32638.140512817354,"y":30538.60765510449},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3ff96eb6-5965-4f82-98d4-cd23bf8d0369","savedPayload":{"position":{"x":32638.140512817354,"y":30538.60765510449},"targetPosition":{"x":32488.140512817354,"y":30798.415276239823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Create Order Event","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"My Javascript Code","code":"true","project":"Superalgos","id":"3c441caf-e674-475e-aa34-8cc028743089","savedPayload":{"position":{"x":33584.395061988485,"y":30310.33130454887},"targetPosition":{"x":33310.3314246957,"y":30432.352297471607},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4162428b-4e63-4529-87be-beac9ffc13f0","savedPayload":{"position":{"x":33310.3314246957,"y":30432.352297471607},"targetPosition":{"x":33036.26778740292,"y":30554.373290394346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2395b55f-c4f9-478a-a20c-3a6ac69b9439","savedPayload":{"position":{"x":33036.26778740292,"y":30554.373290394346},"targetPosition":{"x":32762.204150110134,"y":30676.394283317084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"91a2d093-075b-443e-8d54-de0e50fdac61","savedPayload":{"position":{"x":32762.204150110134,"y":30676.394283317084},"targetPosition":{"x":32488.140512817354,"y":30798.415276239823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"cancelOrderEvent":{"type":"Cancel Order Event","name":"New Cancel Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Cancel Order Event","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"My Javascript Code","code":"true","project":"Superalgos","id":"98e8e55b-b65e-436d-9d98-2b7f1eef0119","savedPayload":{"position":{"x":33661.91763369793,"y":31047.909305221132},"targetPosition":{"x":33368.473353477784,"y":30985.535797975805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"70d79bb0-a78b-4d2e-b7ee-90335c1c7afb","savedPayload":{"position":{"x":33368.473353477784,"y":30985.535797975805},"targetPosition":{"x":33075.02907325764,"y":30923.162290730477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cc2b8c5e-90d8-4017-8726-b27d696ab4ef","savedPayload":{"position":{"x":33075.02907325764,"y":30923.162290730477},"targetPosition":{"x":32781.584793037495,"y":30860.78878348515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"14564d4f-22a0-4c7c-be38-ad1323f3dcf8","savedPayload":{"position":{"x":32781.584793037495,"y":30860.78878348515},"targetPosition":{"x":32488.140512817354,"y":30798.415276239823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"simulatedExchangeEvents":{"type":"Simulated Exchange Events","name":"New Simulated Exchange Events","project":"Superalgos","simulatedPartialFill":{"type":"Simulated Partial Fill","name":"New Simulated Partial Fill","config":"{ \n\"fillProbability\": 1\n}","project":"Superalgos","id":"294c2555-7134-454e-bfcd-66ba4be59dfc","savedPayload":{"position":{"x":40125.55788253979,"y":30216.333778377477},"targetPosition":{"x":39831.01897175846,"y":30103.1230241269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"simulatedActualRate":{"type":"Simulated Actual Rate","name":"New Simulated Actual Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"62bea2ba-686f-410e-9fb3-02246c583ead","savedPayload":{"position":{"x":39999.62591467189,"y":30482.876322973476},"targetPosition":{"x":39956.84867186038,"y":30386.53463369237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"bc1381f8-3d46-45e9-830a-369628b699c4","savedPayload":{"position":{"x":39956.84867186038,"y":30386.53463369237},"targetPosition":{"x":39831.01897175846,"y":30103.1230241269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"simulatedFeesPaid":{"type":"Simulated Fees Paid","name":"New Simulated Fees Paid","config":"{ \n\"percentage\": 0.1\n}","project":"Superalgos","id":"b1020734-07c6-42e9-937b-c173acf381a6","savedPayload":{"position":{"x":39717.93891067161,"y":30397.122589085964},"targetPosition":{"x":39831.01897175846,"y":30103.1230241269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1ecbcd0b-9822-4caa-aced-c6e38c33afb5","savedPayload":{"position":{"x":32688.879694725012,"y":31021.35872388304},"targetPosition":{"x":32488.140512817354,"y":30798.415276239823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b278718b-6ff9-44b4-8c6d-acdad79aabb5","savedPayload":{"position":{"x":32488.140512817354,"y":30798.415276239823},"targetPosition":{"x":32189.783944206873,"y":30829.77381522012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Limit Order","name":"Limit Buy Order #1","id":"008e16b8-9487-4db3-81e1-d11c19a7f59e"}}}],"limitSellOrders":[],"id":"e635ed9f-3c8c-45bf-8be0-e3836fa0844e","savedPayload":{"position":{"x":32189.783944206873,"y":30829.77381522012},"targetPosition":{"x":31891.42737559639,"y":30861.132354200417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"6bdce67c-b2c2-40b6-940e-6c929d074e05","savedPayload":{"position":{"x":31891.42737559639,"y":30861.132354200417},"targetPosition":{"x":31593.07080698591,"y":30892.490893180715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"d2fc92c9-b2cc-4332-aad3-d82234f01bf4","savedPayload":{"position":{"x":31593.07080698591,"y":30892.490893180715},"targetPosition":{"x":31350.365708673427,"y":31068.826468868458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"Stop Loss Phase #1","code":"if (tradingEngine.tradingLast.limitOrders.orderName.value === 'Limit Buy') \n{ tradingEngine.tradingLast.limitOrders.rate.value } \nelse \n{ 0 }","project":"Superalgos","id":"5b32bb95-b7be-427a-b448-bbc3f6c63275","savedPayload":{"position":{"x":33444.873603041866,"y":31518.857444803754},"targetPosition":{"x":32948.37557861643,"y":31466.63871479898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"b65f8638-f70a-45a4-9649-47d71ea1aa9d","savedPayload":{"position":{"x":32948.37557861643,"y":31466.63871479898},"targetPosition":{"x":32451.11407091601,"y":31414.428076285833},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8df55ed2-98c6-473e-8a09-0fd0f55af210","savedPayload":{"position":{"x":32451.11407091601,"y":31414.428076285833},"targetPosition":{"x":31953.896472627435,"y":31362.35443300038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"chart.at01min.candle.close * 1.2","project":"Superalgos","id":"bb6b732f-e20d-4945-a545-ff2826ec145e","savedPayload":{"position":{"x":32563.556597032002,"y":32732.137344678427},"targetPosition":{"x":32360.50700259472,"y":32275.97597459398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"d0d56645-d5b6-4b61-8970-b32163e23daa","savedPayload":{"position":{"x":32360.50700259472,"y":32275.97597459398},"targetPosition":{"x":32157.15421564119,"y":31819.11996495485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6f5ed0dc-4133-473b-9095-cf809e6ca000","savedPayload":{"position":{"x":32157.15421564119,"y":31819.11996495485},"targetPosition":{"x":31953.896472627435,"y":31362.35443300038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"c44831c2-dacf-4853-b70a-69e5b4276dff","savedPayload":{"position":{"x":31593.07080698591,"y":31245.1620445562},"targetPosition":{"x":31350.365708673427,"y":31068.826468868458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"Target Rate Formula","code":"tradingEngine.tradingLast.limitOrders.orderStatistics.actualRate.value","project":"Superalgos","id":"326c2266-7d3a-43ca-9847-e6a7ca93ddb5","savedPayload":{"position":{"x":32167.009150921418,"y":32774.76069066402},"targetPosition":{"x":31833.11772863275,"y":32403.841913134645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9937bbc6-860d-4460-aca0-0bd2517b76e5","savedPayload":{"position":{"x":31833.11772863275,"y":32403.841913134645},"targetPosition":{"x":31499.446363259507,"y":32033.184047213203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset.balance.value","project":"Superalgos","id":"7400ed81-c264-4e91-b467-89acf86dfcf6","savedPayload":{"position":{"x":31191.49857989301,"y":32982.804274555354},"targetPosition":{"x":31345.493266037513,"y":32508.024171062556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0e21ecb7-0090-478c-b439-48c1e6e79da1","savedPayload":{"position":{"x":31345.493266037513,"y":32508.024171062556},"targetPosition":{"x":31499.446363259507,"y":32033.184047213203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5fe56eb2-92f0-407c-b400-4a19e748b5ec","savedPayload":{"position":{"x":31320.034117606272,"y":31647.587703977144},"targetPosition":{"x":31257.660610360945,"y":31354.143423757003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"Race to Break Even","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[{"type":"Limit Sell Order","name":"Profit 0.6","config":"{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}","project":"Superalgos","orderRate":{"type":"Order Rate","name":"New Order Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.tradingCurrent.position.exitTargetRate.value * 1.008","project":"Superalgos","id":"53978d5a-9efe-43c9-8f90-33095de4527f","savedPayload":{"position":{"x":32226.24344862895,"y":32521.60033154521},"targetPosition":{"x":31918.580903761293,"y":32374.483700063996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31dfa984-8378-49cc-8429-82245a6401b3","savedPayload":{"position":{"x":31918.580903761293,"y":32374.483700063996},"targetPosition":{"x":31564.141897771595,"y":32205.051295419304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"b090d786-eab4-4a8c-bd9d-9d453f3359fa","savedPayload":{"position":{"x":32032.409742191638,"y":33529.534458375194},"targetPosition":{"x":31918.69998819087,"y":33207.89019774662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96e2f7c4-9eb8-4dfc-b186-793785812ffc","savedPayload":{"position":{"x":31918.69998819087,"y":33207.89019774662},"targetPosition":{"x":31804.931900418153,"y":32886.072558189335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"60b82e59-a9f8-414f-9483-c516518d8e8e","savedPayload":{"position":{"x":31804.931900418153,"y":32886.072558189335},"targetPosition":{"x":31690.99884170641,"y":32563.844512411095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"5837fa08-1862-4a07-a10d-c1a35cbca9df","savedPayload":{"position":{"x":31690.99884170641,"y":32563.844512411095},"targetPosition":{"x":31564.141897771595,"y":32205.051295419304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"cancelOrderEvent":{"type":"Cancel Order Event","name":"New Cancel Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[6].orderCounters.periods.value >= 2","project":"Superalgos","id":"1362c6f6-45e3-4bcf-9d07-2138493dd413","savedPayload":{"position":{"x":30958.927095784515,"y":33473.47243930165},"targetPosition":{"x":31106.01383128465,"y":33165.04035704301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"shortcutKey":"a"}}},"id":"89d67597-c113-4e7e-94ee-03f4e8c69c19","savedPayload":{"position":{"x":31106.01383128465,"y":33165.04035704301},"targetPosition":{"x":31252.963121046443,"y":32856.9904994038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"acb050f9-35d5-400a-a5f5-8810c1fa9df5","savedPayload":{"position":{"x":31252.963121046443,"y":32856.9904994038},"targetPosition":{"x":31400.100329616864,"y":32548.745011836843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"2dbc0df0-6c1c-4e5d-bbd0-3b1893706a93","savedPayload":{"position":{"x":31400.100329616864,"y":32548.745011836843},"targetPosition":{"x":31564.141897771595,"y":32205.051295419304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b80fe127-d306-4fc1-a3a8-95bf88de046f","savedPayload":{"position":{"x":30911.91577284464,"y":32038.414234899974},"targetPosition":{"x":30811.77371507451,"y":31755.62178757232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Limit Order","name":"Limit Sell Order #7","id":"5bfce673-ceb2-4104-bd7e-75d62453164e"}}},{"type":"Limit Sell Order","name":"Profit 0.5","config":"{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}","project":"Superalgos","orderRate":{"type":"Order Rate","name":"New Order Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.tradingCurrent.position.exitTargetRate.value * 1.007","project":"Superalgos","id":"4df6dc0e-887a-4627-9fd1-75926327eb09","savedPayload":{"position":{"x":31947.37163445384,"y":32796.64795817013},"targetPosition":{"x":31719.240148699042,"y":32542.971660415038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8306171d-b7d4-4b7f-a5c5-2bc320581a55","savedPayload":{"position":{"x":31719.240148699042,"y":32542.971660415038},"targetPosition":{"x":31432.347172201655,"y":32223.99431482714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.tradingLast.limitOrders.orderName.value === 'Profit 0.6'","project":"Superalgos","id":"b5c796b8-6da7-4e15-9063-7b778a6f92e7","savedPayload":{"position":{"x":31358.28385683019,"y":33648.32433907591},"targetPosition":{"x":31376.031980643544,"y":33307.64979540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4e968238-bb89-4633-8840-17a3eee97127","savedPayload":{"position":{"x":31376.031980643544,"y":33307.64979540346},"targetPosition":{"x":31393.818371948895,"y":32965.93872675964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b6f8f8a7-6201-40b8-85ef-f566d24f6f41","savedPayload":{"position":{"x":31393.818371948895,"y":32965.93872675964},"targetPosition":{"x":31411.499076037275,"y":32625.314162567658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"f2509852-f910-40aa-9786-4858a185755b","savedPayload":{"position":{"x":31411.499076037275,"y":32625.314162567658},"targetPosition":{"x":31432.347172201655,"y":32223.99431482714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"cancelOrderEvent":{"type":"Cancel Order Event","name":"New Cancel Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","code":"chart.at24hs.candlesProbability.begin > chart.at24hs.candlesProbability.begin","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[5].orderCounters.periods.value >= 2","project":"Superalgos","id":"30d37563-9245-4814-a2d2-e81566fdfafb","savedPayload":{"position":{"x":30372.482740223073,"y":33177.94087452211},"targetPosition":{"x":30625.795367545423,"y":32949.8870538829},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7572eda9-8711-454e-abd3-ee9f4bae2a60","savedPayload":{"position":{"x":30625.795367545423,"y":32949.8870538829},"targetPosition":{"x":30879.6529831055,"y":32721.382337493917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fc3d3165-f40a-4224-aea1-8b7c55c29468","savedPayload":{"position":{"x":30879.6529831055,"y":32721.382337493917},"targetPosition":{"x":31133.8800353613,"y":32492.629327210394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"036b27b4-55f7-4f1b-80cc-914950ce3016","savedPayload":{"position":{"x":31133.8800353613,"y":32492.629327210394},"targetPosition":{"x":31432.347172201655,"y":32223.99431482714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8a730b1e-e8d8-4ca0-9342-e58b27b3c0a2","savedPayload":{"position":{"x":30796.072928201625,"y":32055.21064799869},"targetPosition":{"x":30811.77371507451,"y":31755.62178757232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Limit Order","name":"Limit Sell Order #6","id":"90d28d1e-6fd2-4a83-a423-3f34bf455004"}}},{"type":"Limit Sell Order","name":"Profit 0.4","config":"{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}","project":"Superalgos","orderRate":{"type":"Order Rate","name":"New Order Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.tradingCurrent.position.exitTargetRate.value * 1.006","project":"Superalgos","id":"8cffe4c6-a60c-442c-9c67-27860832bdff","savedPayload":{"position":{"x":31548.211316179266,"y":32884.31882310109},"targetPosition":{"x":31434.14584043107,"y":32561.8039580411},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"882824fb-0d18-4c48-8cb1-c60fb9b2e4b3","savedPayload":{"position":{"x":31434.14584043107,"y":32561.8039580411},"targetPosition":{"x":31303.2875129115,"y":32191.75354170856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.tradingLast.limitOrders.orderName.value === 'Profit 0.5'","project":"Superalgos","id":"546d2700-547f-4fbc-b8cc-5b73a97ab69d","savedPayload":{"position":{"x":30698.91354794959,"y":33460.25520480642},"targetPosition":{"x":30845.804325899364,"y":33152.102822068424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"631f4eaa-9716-46e5-9022-a0f00231e34c","savedPayload":{"position":{"x":30845.804325899364,"y":33152.102822068424},"targetPosition":{"x":30992.681324142817,"y":32843.90636057538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aec594bc-6efe-4273-971e-0112bc46ec2b","savedPayload":{"position":{"x":30992.681324142817,"y":32843.90636057538},"targetPosition":{"x":31139.538817171982,"y":32535.584162567917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"029f599b-b17f-4851-88d7-9c80b1662af5","savedPayload":{"position":{"x":31139.538817171982,"y":32535.584162567917},"targetPosition":{"x":31303.2875129115,"y":32191.75354170856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"cancelOrderEvent":{"type":"Cancel Order Event","name":"New Cancel Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[4].orderCounters.periods.value >= 2","project":"Superalgos","id":"5e1a76ec-7ab1-47d5-8f65-9e2aed7e5526","savedPayload":{"position":{"x":29978.74115806557,"y":32660.46628851325},"targetPosition":{"x":30300.284766726683,"y":32546.66880793689},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a8091739-137a-4ba3-9427-02c44396d1c5","savedPayload":{"position":{"x":30300.284766726683,"y":32546.66880793689},"targetPosition":{"x":30622.20537803662,"y":32432.751604891397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6e36cc24-a86d-4889-a57f-de80068d33f0","savedPayload":{"position":{"x":30622.20537803662,"y":32432.751604891397},"targetPosition":{"x":30944.328943839944,"y":32318.81007283237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"07757b18-bb3e-45f5-8ae6-a635b479e703","savedPayload":{"position":{"x":30944.328943839944,"y":32318.81007283237},"targetPosition":{"x":31303.2875129115,"y":32191.75354170856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e065f375-4663-45f0-8d7a-e5eee5d90cb4","savedPayload":{"position":{"x":30682.62038603202,"y":32026.397372877276},"targetPosition":{"x":30811.77371507451,"y":31755.62178757232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Limit Order","name":"Limit Sell Order #5","id":"3c44b04d-6b6b-4278-ba85-898b1f12cdfa"}}},{"type":"Limit Sell Order","name":"Profit 0.3","config":"{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}","project":"Superalgos","orderRate":{"type":"Order Rate","name":"New Order Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.tradingCurrent.position.exitTargetRate.value * 1.005","project":"Superalgos","id":"ed5df221-812e-47e0-8ee5-34cee0346cea","savedPayload":{"position":{"x":31158.51909517061,"y":32845.50308625388},"targetPosition":{"x":31176.200927774764,"y":32504.417103149208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5673a468-77ac-4312-a1b1-ea5e9d070988","savedPayload":{"position":{"x":31176.200927774764,"y":32504.417103149208},"targetPosition":{"x":31196.59695497345,"y":32112.128743916008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.tradingLast.limitOrders.orderName.value === 'Profit 0.4'","project":"Superalgos","id":"fcd99b77-0333-4105-950d-eb03ffc2129e","savedPayload":{"position":{"x":30152.725744553733,"y":33052.75239234119},"targetPosition":{"x":30406.488540719874,"y":32824.21747384216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b5c038b2-15ae-450f-8f86-242e2402257d","savedPayload":{"position":{"x":30406.488540719874,"y":32824.21747384216},"targetPosition":{"x":30660.172033357696,"y":32595.691911189846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"12e843fe-9a85-4300-b4e5-097af10db775","savedPayload":{"position":{"x":30660.172033357696,"y":32595.691911189846},"targetPosition":{"x":30913.885231247605,"y":32367.015684571852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"c9610e5d-0cb9-426a-af86-f7bfdb230d7b","savedPayload":{"position":{"x":30913.885231247605,"y":32367.015684571852},"targetPosition":{"x":31196.59695497345,"y":32112.128743916008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"cancelOrderEvent":{"type":"Cancel Order Event","name":"New Cancel Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","code":"chart.at24hs.candlesProbability.begin > chart.at24hs.candlesProbability.begin","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[3].orderCounters.periods.value >= 2","project":"Superalgos","id":"ed52c351-2965-4e4d-916e-0d882efc332e","savedPayload":{"position":{"x":29792.987109898088,"y":32039.510992700474},"targetPosition":{"x":30134.076625253387,"y":32057.1605228485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"675c8f52-d97a-4afc-a2e4-bedcd501662f","savedPayload":{"position":{"x":30134.076625253387,"y":32057.1605228485},"targetPosition":{"x":30475.158219884866,"y":32074.806729858356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c9155dd9-9e2c-4254-8d2c-63d9c32e40eb","savedPayload":{"position":{"x":30475.158219884866,"y":32074.806729858356},"targetPosition":{"x":30816.453195252943,"y":32092.489815598798},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"cbf59193-c567-4b58-a83c-d9871204a520","savedPayload":{"position":{"x":30816.453195252943,"y":32092.489815598798},"targetPosition":{"x":31196.59695497345,"y":32112.128743916008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e8cb9d8f-6e16-4b5c-a5e4-141f2047ce19","savedPayload":{"position":{"x":30588.83026743129,"y":31956.360969479978},"targetPosition":{"x":30811.77371507451,"y":31755.62178757232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Limit Order","name":"Limit Sell Order #4","id":"7fb716f8-8bba-4c0d-8df3-69a7bc9ae317"}}},{"type":"Limit Sell Order","name":"Profit 0.2","config":"{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}","project":"Superalgos","orderRate":{"type":"Order Rate","name":"New Order Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.tradingCurrent.position.exitTargetRate.value * 1.004","project":"Superalgos","id":"25c6516a-f1d9-461f-b012-6d5524320da9","savedPayload":{"position":{"x":30812.844113213963,"y":32660.515782967275},"targetPosition":{"x":30959.53074678532,"y":32352.53074093093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"29b9bd1b-a6e8-4a75-9df9-527db78c0e7b","savedPayload":{"position":{"x":30959.53074678532,"y":32352.53074093093},"targetPosition":{"x":31128.56779071538,"y":31997.713635987035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.tradingLast.limitOrders.orderName.value === 'Profit 0.3'","project":"Superalgos","id":"a0b1e36b-640d-4ec8-96ea-d26597b61e8e","savedPayload":{"position":{"x":29804.352197392087,"y":32467.148920498068},"targetPosition":{"x":30125.907001830434,"y":32353.29092736564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dab80166-691d-47b6-964a-76df68e98c42","savedPayload":{"position":{"x":30125.907001830434,"y":32353.29092736564},"targetPosition":{"x":30447.758596062507,"y":32239.26264579912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"97061747-71e5-4abe-b339-30e3fd35519f","savedPayload":{"position":{"x":30447.758596062507,"y":32239.26264579912},"targetPosition":{"x":30769.840994373364,"y":32125.03172804365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"998dc335-6c8b-4559-9bbd-8c73bc5844da","savedPayload":{"position":{"x":30769.840994373364,"y":32125.03172804365},"targetPosition":{"x":31128.56779071538,"y":31997.713635987035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"cancelOrderEvent":{"type":"Cancel Order Event","name":"New Cancel Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[2].orderCounters.periods.value >= 2","project":"Superalgos","id":"54de11dd-16f2-4c11-b530-c9b1bcb8a3de","savedPayload":{"position":{"x":29860.13313779977,"y":31393.81865287888},"targetPosition":{"x":30168.101886767312,"y":31540.460555517115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"77ebec63-371b-40c5-9aa7-4779d885b269","savedPayload":{"position":{"x":30168.101886767312,"y":31540.460555517115},"targetPosition":{"x":30476.55684009257,"y":31687.305773593755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"34f00d60-b8aa-4eda-8276-5bbaa3d6d4ea","savedPayload":{"position":{"x":30476.55684009257,"y":31687.305773593755},"targetPosition":{"x":30784.72831837753,"y":31834.035325805817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"431cdafe-93a5-4647-8ea4-89fd44d9abf0","savedPayload":{"position":{"x":30784.72831837753,"y":31834.035325805817},"targetPosition":{"x":31128.56779071538,"y":31997.713635987035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5d13da4a-9bdf-44f9-8e7b-ca05423ce0a4","savedPayload":{"position":{"x":30528.981267746854,"y":31855.76384534245},"targetPosition":{"x":30811.77371507451,"y":31755.62178757232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Limit Order","name":"Limit Sell Order #3","id":"a5d970bf-0f85-4546-9c4a-a0a113e7ea04"}}},{"type":"Limit Sell Order","name":"Profit 0.1","config":"{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}","project":"Superalgos","orderRate":{"type":"Order Rate","name":"New Order Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.tradingCurrent.position.exitTargetRate.value * 1.003","project":"Superalgos","id":"f6a2eda5-75a8-4305-961d-9a1c52b1d837","savedPayload":{"position":{"x":30563.86379158337,"y":32357.928426319493},"targetPosition":{"x":30817.764150040988,"y":32129.07671568887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"66b3fe34-fe06-408f-8181-fc696710c2a9","savedPayload":{"position":{"x":30817.764150040988,"y":32129.07671568887},"targetPosition":{"x":31109.46893109646,"y":31866.147179757805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.tradingLast.limitOrders.orderName.value === 'Profit 0.2'","project":"Superalgos","id":"f0c458d6-d23f-48c4-9156-593429089f97","savedPayload":{"position":{"x":29706.07733211601,"y":31794.350114796194},"targetPosition":{"x":30046.822904391942,"y":31811.930465798825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"488d1160-ae61-45c0-b295-b533b38bbeb5","savedPayload":{"position":{"x":30046.822904391942,"y":31811.930465798825},"targetPosition":{"x":30388.054151700322,"y":31829.45673824515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c296ade6-4a0b-40d3-8ace-f02649f96da5","savedPayload":{"position":{"x":30388.054151700322,"y":31829.45673824515},"targetPosition":{"x":30729.190154471245,"y":31846.83685937668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"8182ab58-4809-48ee-a481-06a6954dc89f","savedPayload":{"position":{"x":30729.190154471245,"y":31846.83685937668},"targetPosition":{"x":31109.46893109646,"y":31866.147179757805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"cancelOrderEvent":{"type":"Cancel Order Event","name":"New Cancel Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[1].orderCounters.periods.value >= 2","project":"Superalgos","id":"d255fc7b-cb37-471b-8fed-9031a1170765","savedPayload":{"position":{"x":30168.560326628227,"y":30822.8882995854},"targetPosition":{"x":30397.233735642047,"y":31076.474377012506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"317e867c-c4a0-48db-9bdf-75d5225f22bc","savedPayload":{"position":{"x":30397.233735642047,"y":31076.474377012506},"targetPosition":{"x":30625.747747545884,"y":31329.828001166636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c287f36d-074b-498c-ad12-be1bf473be63","savedPayload":{"position":{"x":30625.747747545884,"y":31329.828001166636},"targetPosition":{"x":30854.509315754025,"y":31583.427362495073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"7c575bbe-7429-4167-aba5-e7a3b59bd958","savedPayload":{"position":{"x":30854.509315754025,"y":31583.427362495073},"targetPosition":{"x":31109.46893109646,"y":31866.147179757805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"de750ccf-154f-4495-a9fd-cee163cccf66","savedPayload":{"position":{"x":30512.184854648138,"y":31739.921000699436},"targetPosition":{"x":30811.77371507451,"y":31755.62178757232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Limit Order","name":"Limit Sell Order #2","id":"e133f5d4-034b-4333-9ea4-a6b52183476e"}}},{"type":"Limit Sell Order","name":"Profit 0.0","config":"{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}","project":"Superalgos","orderRate":{"type":"Order Rate","name":"New Order Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.tradingCurrent.position.exitTargetRate.value * 1.002","project":"Superalgos","id":"9344ebf6-3efa-4904-a952-d2dbb1b0ead1","savedPayload":{"position":{"x":30410.26963417929,"y":31794.68065670642},"targetPosition":{"x":30750.566814320024,"y":31767.794674652483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ef824607-7571-4f06-84d6-ce4e97e4cc62","savedPayload":{"position":{"x":30750.566814320024,"y":31767.794674652483},"targetPosition":{"x":31142.128049335588,"y":31736.808105691816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.tradingLast.limitOrders.orderName.value === 'Profit 0.1'","project":"Superalgos","id":"91c9b7c1-1250-450e-b7b3-b5b5bf4abd77","savedPayload":{"position":{"x":30344.95885407582,"y":30580.386880577542},"targetPosition":{"x":30538.406108295792,"y":30861.274297492913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cb5f3c82-b13e-4edb-a738-89f653250d56","savedPayload":{"position":{"x":30538.406108295792,"y":30861.274297492913},"targetPosition":{"x":30732.145253834915,"y":31142.449256664135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ff70b3ad-19b0-4be5-bf58-f3b9253ac170","savedPayload":{"position":{"x":30732.145253834915,"y":31142.449256664135},"targetPosition":{"x":30926.169212353423,"y":31423.65588284892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"5658a835-b46f-40c4-a7c1-5d5d6f10b95b","savedPayload":{"position":{"x":30926.169212353423,"y":31423.65588284892},"targetPosition":{"x":31142.128049335588,"y":31736.808105691816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c077f171-dabc-49e6-8956-3e1144a0b0ef","savedPayload":{"position":{"x":30540.998129769552,"y":31626.46845852983},"targetPosition":{"x":30811.77371507451,"y":31755.62178757232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Limit Order","name":"Limit Sell Order #1","id":"929c1c8c-1964-4495-991c-0a516f1e9ba0"}}}],"id":"0fe764ce-3312-4964-9841-b55500e3f80a","savedPayload":{"position":{"x":30811.77371507451,"y":31755.62178757232},"targetPosition":{"x":31034.717162717727,"y":31554.88260566466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"33993524-848d-4d57-a503-075c5df4a31b","savedPayload":{"position":{"x":31034.717162717727,"y":31554.88260566466},"targetPosition":{"x":31257.660610360945,"y":31354.143423757003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"f4d8925b-697e-4f52-ad2e-d368780739d0","savedPayload":{"position":{"x":31257.660610360945,"y":31354.143423757003},"targetPosition":{"x":31350.365708673427,"y":31068.826468868458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"711041eb-3055-4611-b64f-570363bae854","savedPayload":{"position":{"x":31350.365708673427,"y":31068.826468868458},"targetPosition":{"x":31050.365708673427,"y":31068.826468868458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"628b758d-ffff-445f-9d4f-8aa480a13db3","savedPayload":{"position":{"x":31050.365708673427,"y":31068.826468868458},"targetPosition":{"x":31050.365708673427,"y":31068.826468868458},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}} \ No newline at end of file +{"type":"Trading System","name":"Lightning Strike","config":"{ \n\"codeName\": \"Lightning Strike\"\n}","project":"Superalgos","tradingStrategies":[{"type":"Trading Strategy","name":"My Trading Strategy","project":"Superalgos","triggerStage":{"type":"Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"Inmediate Trigger On","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"e2ea7ded-2be1-43a3-a7fa-de3d9b8eeec4","savedPayload":{"position":{"x":29614.345537114667,"y":29686.264363248512},"targetPosition":{"x":30059.096259318965,"y":29912.85964671243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e693623c-e11f-49e3-99da-1897c7a47563","savedPayload":{"position":{"x":30059.096259318965,"y":29912.85964671243},"targetPosition":{"x":30503.948096117412,"y":30139.527093006473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9135663f-deeb-4b3f-8855-91750810a406","savedPayload":{"position":{"x":30503.948096117412,"y":30139.527093006473},"targetPosition":{"x":30949.606420886405,"y":30366.48888962723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"05f2f6b7-15ab-4386-a299-91a949de634e","savedPayload":{"position":{"x":30949.606420886405,"y":30366.48888962723},"targetPosition":{"x":31395.222935590078,"y":30593.406010951592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"Never Trigger Off","project":"Superalgos","conditions":[{"type":"Condition","name":"Close Above MA","project":"Superalgos","javascriptCode":{"type":"Javascript Code","code":"false","project":"Superalgos","id":"0eb59e3b-ccc8-4eab-a1f2-a7c8dea28949","savedPayload":{"position":{"x":30777.836612408217,"y":28692.647426362768},"targetPosition":{"x":30932.059454816794,"y":29167.31041310742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31ab47dd-fe2d-47ac-9a77-08ec8beee068","savedPayload":{"position":{"x":30932.059454816794,"y":29167.31041310742},"targetPosition":{"x":31086.31006690743,"y":29642.1636542021},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fa93a965-e836-42b3-9784-79acda1468dd","savedPayload":{"position":{"x":31086.31006690743,"y":29642.1636542021},"targetPosition":{"x":31240.740280232243,"y":30117.847206458973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"8a46ebed-4ed4-4b70-882b-416ffa1b37f6","savedPayload":{"position":{"x":31240.740280232243,"y":30117.847206458973},"targetPosition":{"x":31395.222935590078,"y":30593.406010951592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"Inmediate Take Position","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"90dda64b-17fd-469c-8066-3855596795ab","savedPayload":{"position":{"x":32310.303575265214,"y":28785.226973794255},"targetPosition":{"x":32083.882547130008,"y":29230.01160391372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4054a522-7863-4ac2-9eab-26db2a6f037f","savedPayload":{"position":{"x":32083.882547130008,"y":29230.01160391372},"targetPosition":{"x":31848.83631252263,"y":29702.20922965271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0b8d71ab-6430-4e3f-840a-162745ab8d22","savedPayload":{"position":{"x":31848.83631252263,"y":29702.20922965271},"targetPosition":{"x":31622.00489673196,"y":30147.8015863614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"f8ca03db-0afa-4c98-abad-d9a5d17bdd36","savedPayload":{"position":{"x":31622.00489673196,"y":30147.8015863614},"targetPosition":{"x":31395.222935590078,"y":30593.406010951592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"a31576e1-6f47-4e02-8953-c863c79cf783","savedPayload":{"position":{"x":31257.660610360945,"y":30783.509513979912},"targetPosition":{"x":31350.365708673427,"y":31068.826468868458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"openStage":{"type":"Open Stage","config":"{\n \"roundingErrorCorrectionFactor\": 1.01,\n \"absoluteDustInBaseAsset\": 0,\n \"absoluteDustInQuotedAsset\": 0\n}","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"Entry Target Rate","code":"tradingEngine.tradingCurrent.tradingEpisode.candle.close.value","project":"Superalgos","id":"c9aada83-91b0-4b34-955a-858bd201b4e2","savedPayload":{"position":{"x":32053.25964936278,"y":29325.41438209381},"targetPosition":{"x":32105.254754356094,"y":29821.797185559502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9158b840-9adc-4476-9137-72cc97037498","savedPayload":{"position":{"x":32105.254754356094,"y":29821.797185559502},"targetPosition":{"x":32157.172363266734,"y":30317.794022937276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"Target Size in Quoted Asset","code":"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset.balance.value\n","project":"Superalgos","id":"a1796525-0b97-4b83-bf89-6f084f69cae2","savedPayload":{"position":{"x":32964.4235848001,"y":29730.818183696843},"targetPosition":{"x":32560.836858717368,"y":30024.266048044417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8ca6e0cd-15ac-4743-aed2-965ec3dff80c","savedPayload":{"position":{"x":32560.836858717368,"y":30024.266048044417},"targetPosition":{"x":32157.172363266734,"y":30317.794022937276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a3827280-3a20-433b-a297-51994eb7198e","savedPayload":{"position":{"x":31715.09179990865,"y":30618.427255887935},"targetPosition":{"x":31593.07080698591,"y":30892.490893180715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"Buy Orders","config":"{\n\"percentageOfStageTargetSize\": 100\n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[],"limitBuyOrders":[{"type":"Limit Buy Order","name":"Limit Buy","config":"{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": true\n}","project":"Superalgos","orderRate":{"type":"Order Rate","name":"New Order Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"chart.at01min.support.support4Rate","project":"Superalgos","id":"d6637c4c-8cec-497e-83c5-2cce8375c193","savedPayload":{"position":{"x":32788.14051281736,"y":30278.800033969157},"targetPosition":{"x":32638.140512817354,"y":30538.60765510449},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3ff96eb6-5965-4f82-98d4-cd23bf8d0369","savedPayload":{"position":{"x":32638.140512817354,"y":30538.60765510449},"targetPosition":{"x":32488.140512817354,"y":30798.415276239823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Create Order Event","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"My Javascript Code","code":"true","project":"Superalgos","id":"3c441caf-e674-475e-aa34-8cc028743089","savedPayload":{"position":{"x":33584.395061988485,"y":30310.33130454887},"targetPosition":{"x":33310.3314246957,"y":30432.352297471607},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4162428b-4e63-4529-87be-beac9ffc13f0","savedPayload":{"position":{"x":33310.3314246957,"y":30432.352297471607},"targetPosition":{"x":33036.26778740292,"y":30554.373290394346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2395b55f-c4f9-478a-a20c-3a6ac69b9439","savedPayload":{"position":{"x":33036.26778740292,"y":30554.373290394346},"targetPosition":{"x":32762.204150110134,"y":30676.394283317084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"91a2d093-075b-443e-8d54-de0e50fdac61","savedPayload":{"position":{"x":32762.204150110134,"y":30676.394283317084},"targetPosition":{"x":32488.140512817354,"y":30798.415276239823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"cancelOrderEvent":{"type":"Cancel Order Event","name":"New Cancel Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"Cancel Order Event","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"My Javascript Code","code":"true","project":"Superalgos","id":"98e8e55b-b65e-436d-9d98-2b7f1eef0119","savedPayload":{"position":{"x":33661.91763369793,"y":31047.909305221132},"targetPosition":{"x":33368.473353477784,"y":30985.535797975805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"70d79bb0-a78b-4d2e-b7ee-90335c1c7afb","savedPayload":{"position":{"x":33368.473353477784,"y":30985.535797975805},"targetPosition":{"x":33075.02907325764,"y":30923.162290730477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cc2b8c5e-90d8-4017-8726-b27d696ab4ef","savedPayload":{"position":{"x":33075.02907325764,"y":30923.162290730477},"targetPosition":{"x":32781.584793037495,"y":30860.78878348515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"14564d4f-22a0-4c7c-be38-ad1323f3dcf8","savedPayload":{"position":{"x":32781.584793037495,"y":30860.78878348515},"targetPosition":{"x":32488.140512817354,"y":30798.415276239823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"simulatedExchangeEvents":{"type":"Simulated Exchange Events","name":"New Simulated Exchange Events","project":"Superalgos","simulatedPartialFill":{"type":"Simulated Partial Fill","name":"New Simulated Partial Fill","config":"{ \n\"fillProbability\": 1\n}","project":"Superalgos","id":"294c2555-7134-454e-bfcd-66ba4be59dfc","savedPayload":{"position":{"x":40125.55788253979,"y":30216.333778377477},"targetPosition":{"x":39831.01897175846,"y":30103.1230241269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"simulatedActualRate":{"type":"Simulated Actual Rate","name":"New Simulated Actual Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"62bea2ba-686f-410e-9fb3-02246c583ead","savedPayload":{"position":{"x":39999.62591467189,"y":30482.876322973476},"targetPosition":{"x":39956.84867186038,"y":30386.53463369237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"bc1381f8-3d46-45e9-830a-369628b699c4","savedPayload":{"position":{"x":39956.84867186038,"y":30386.53463369237},"targetPosition":{"x":39831.01897175846,"y":30103.1230241269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"simulatedFeesPaid":{"type":"Simulated Fees Paid","name":"New Simulated Fees Paid","config":"{ \n\"percentage\": 0.1\n}","project":"Superalgos","id":"b1020734-07c6-42e9-937b-c173acf381a6","savedPayload":{"position":{"x":39717.93891067161,"y":30397.122589085964},"targetPosition":{"x":39831.01897175846,"y":30103.1230241269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1ecbcd0b-9822-4caa-aced-c6e38c33afb5","savedPayload":{"position":{"x":32688.879694725012,"y":31021.35872388304},"targetPosition":{"x":32488.140512817354,"y":30798.415276239823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b278718b-6ff9-44b4-8c6d-acdad79aabb5","savedPayload":{"position":{"x":32488.140512817354,"y":30798.415276239823},"targetPosition":{"x":32189.783944206873,"y":30829.77381522012},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Limit Order","name":"Limit Buy Order #1","id":"008e16b8-9487-4db3-81e1-d11c19a7f59e"}}}],"limitSellOrders":[],"id":"e635ed9f-3c8c-45bf-8be0-e3836fa0844e","savedPayload":{"position":{"x":32189.783944206873,"y":30829.77381522012},"targetPosition":{"x":31891.42737559639,"y":30861.132354200417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"6bdce67c-b2c2-40b6-940e-6c929d074e05","savedPayload":{"position":{"x":31891.42737559639,"y":30861.132354200417},"targetPosition":{"x":31593.07080698591,"y":30892.490893180715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"d2fc92c9-b2cc-4332-aad3-d82234f01bf4","savedPayload":{"position":{"x":31593.07080698591,"y":30892.490893180715},"targetPosition":{"x":31350.365708673427,"y":31068.826468868458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"Stop Loss Phase #1","code":"if (tradingEngine.tradingLast.limitOrders.orderName.value === 'Limit Buy') \n{ tradingEngine.tradingLast.limitOrders.rate.value } \nelse \n{ 0 }","project":"Superalgos","id":"5b32bb95-b7be-427a-b448-bbc3f6c63275","savedPayload":{"position":{"x":33444.873603041866,"y":31518.857444803754},"targetPosition":{"x":32948.37557861643,"y":31466.63871479898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"b65f8638-f70a-45a4-9649-47d71ea1aa9d","savedPayload":{"position":{"x":32948.37557861643,"y":31466.63871479898},"targetPosition":{"x":32451.11407091601,"y":31414.428076285833},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8df55ed2-98c6-473e-8a09-0fd0f55af210","savedPayload":{"position":{"x":32451.11407091601,"y":31414.428076285833},"targetPosition":{"x":31953.896472627435,"y":31362.35443300038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"chart.at01min.candle.close * 1.2","project":"Superalgos","id":"bb6b732f-e20d-4945-a545-ff2826ec145e","savedPayload":{"position":{"x":32563.556597032002,"y":32732.137344678427},"targetPosition":{"x":32360.50700259472,"y":32275.97597459398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"d0d56645-d5b6-4b61-8970-b32163e23daa","savedPayload":{"position":{"x":32360.50700259472,"y":32275.97597459398},"targetPosition":{"x":32157.15421564119,"y":31819.11996495485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6f5ed0dc-4133-473b-9095-cf809e6ca000","savedPayload":{"position":{"x":32157.15421564119,"y":31819.11996495485},"targetPosition":{"x":31953.896472627435,"y":31362.35443300038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"c44831c2-dacf-4853-b70a-69e5b4276dff","savedPayload":{"position":{"x":31593.07080698591,"y":31245.1620445562},"targetPosition":{"x":31350.365708673427,"y":31068.826468868458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","config":"{\n \"roundingErrorCorrectionFactor\": 1.01,\n \"absoluteDustInBaseAsset\": 0,\n \"absoluteDustInQuotedAsset\": 0\n}","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"Target Rate Formula","code":"tradingEngine.tradingLast.limitOrders.orderStatistics.actualRate.value","project":"Superalgos","id":"326c2266-7d3a-43ca-9847-e6a7ca93ddb5","savedPayload":{"position":{"x":32167.009150921418,"y":32774.76069066402},"targetPosition":{"x":31833.11772863275,"y":32403.841913134645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9937bbc6-860d-4460-aca0-0bd2517b76e5","savedPayload":{"position":{"x":31833.11772863275,"y":32403.841913134645},"targetPosition":{"x":31499.446363259507,"y":32033.184047213203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset.balance.value","project":"Superalgos","id":"7400ed81-c264-4e91-b467-89acf86dfcf6","savedPayload":{"position":{"x":31191.49857989301,"y":32982.804274555354},"targetPosition":{"x":31345.493266037513,"y":32508.024171062556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0e21ecb7-0090-478c-b439-48c1e6e79da1","savedPayload":{"position":{"x":31345.493266037513,"y":32508.024171062556},"targetPosition":{"x":31499.446363259507,"y":32033.184047213203},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5fe56eb2-92f0-407c-b400-4a19e748b5ec","savedPayload":{"position":{"x":31320.034117606272,"y":31647.587703977144},"targetPosition":{"x":31257.660610360945,"y":31354.143423757003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"Race to Break Even","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[{"type":"Limit Sell Order","name":"Profit 0.6","config":"{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}","project":"Superalgos","orderRate":{"type":"Order Rate","name":"New Order Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.tradingCurrent.position.exitTargetRate.value * 1.008","project":"Superalgos","id":"53978d5a-9efe-43c9-8f90-33095de4527f","savedPayload":{"position":{"x":32226.24344862895,"y":32521.60033154521},"targetPosition":{"x":31918.580903761293,"y":32374.483700063996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31dfa984-8378-49cc-8429-82245a6401b3","savedPayload":{"position":{"x":31918.580903761293,"y":32374.483700063996},"targetPosition":{"x":31564.141897771595,"y":32205.051295419304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"true","project":"Superalgos","id":"b090d786-eab4-4a8c-bd9d-9d453f3359fa","savedPayload":{"position":{"x":32032.409742191638,"y":33529.534458375194},"targetPosition":{"x":31918.69998819087,"y":33207.89019774662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96e2f7c4-9eb8-4dfc-b186-793785812ffc","savedPayload":{"position":{"x":31918.69998819087,"y":33207.89019774662},"targetPosition":{"x":31804.931900418153,"y":32886.072558189335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"60b82e59-a9f8-414f-9483-c516518d8e8e","savedPayload":{"position":{"x":31804.931900418153,"y":32886.072558189335},"targetPosition":{"x":31690.99884170641,"y":32563.844512411095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"5837fa08-1862-4a07-a10d-c1a35cbca9df","savedPayload":{"position":{"x":31690.99884170641,"y":32563.844512411095},"targetPosition":{"x":31564.141897771595,"y":32205.051295419304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"cancelOrderEvent":{"type":"Cancel Order Event","name":"New Cancel Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[6].orderCounters.periods.value >= 2","project":"Superalgos","id":"1362c6f6-45e3-4bcf-9d07-2138493dd413","savedPayload":{"position":{"x":30958.927095784515,"y":33473.47243930165},"targetPosition":{"x":31106.01383128465,"y":33165.04035704301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"shortcutKey":"a"}}},"id":"89d67597-c113-4e7e-94ee-03f4e8c69c19","savedPayload":{"position":{"x":31106.01383128465,"y":33165.04035704301},"targetPosition":{"x":31252.963121046443,"y":32856.9904994038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"acb050f9-35d5-400a-a5f5-8810c1fa9df5","savedPayload":{"position":{"x":31252.963121046443,"y":32856.9904994038},"targetPosition":{"x":31400.100329616864,"y":32548.745011836843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"2dbc0df0-6c1c-4e5d-bbd0-3b1893706a93","savedPayload":{"position":{"x":31400.100329616864,"y":32548.745011836843},"targetPosition":{"x":31564.141897771595,"y":32205.051295419304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b80fe127-d306-4fc1-a3a8-95bf88de046f","savedPayload":{"position":{"x":30911.91577284464,"y":32038.414234899974},"targetPosition":{"x":30811.77371507451,"y":31755.62178757232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Limit Order","name":"Limit Sell Order #7","id":"5bfce673-ceb2-4104-bd7e-75d62453164e"}}},{"type":"Limit Sell Order","name":"Profit 0.5","config":"{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}","project":"Superalgos","orderRate":{"type":"Order Rate","name":"New Order Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.tradingCurrent.position.exitTargetRate.value * 1.007","project":"Superalgos","id":"4df6dc0e-887a-4627-9fd1-75926327eb09","savedPayload":{"position":{"x":31947.37163445384,"y":32796.64795817013},"targetPosition":{"x":31719.240148699042,"y":32542.971660415038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8306171d-b7d4-4b7f-a5c5-2bc320581a55","savedPayload":{"position":{"x":31719.240148699042,"y":32542.971660415038},"targetPosition":{"x":31432.347172201655,"y":32223.99431482714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.tradingLast.limitOrders.orderName.value === 'Profit 0.6'","project":"Superalgos","id":"b5c796b8-6da7-4e15-9063-7b778a6f92e7","savedPayload":{"position":{"x":31358.28385683019,"y":33648.32433907591},"targetPosition":{"x":31376.031980643544,"y":33307.64979540346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4e968238-bb89-4633-8840-17a3eee97127","savedPayload":{"position":{"x":31376.031980643544,"y":33307.64979540346},"targetPosition":{"x":31393.818371948895,"y":32965.93872675964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b6f8f8a7-6201-40b8-85ef-f566d24f6f41","savedPayload":{"position":{"x":31393.818371948895,"y":32965.93872675964},"targetPosition":{"x":31411.499076037275,"y":32625.314162567658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"f2509852-f910-40aa-9786-4858a185755b","savedPayload":{"position":{"x":31411.499076037275,"y":32625.314162567658},"targetPosition":{"x":31432.347172201655,"y":32223.99431482714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"cancelOrderEvent":{"type":"Cancel Order Event","name":"New Cancel Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","code":"chart.at24hs.candlesProbability.begin > chart.at24hs.candlesProbability.begin","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[5].orderCounters.periods.value >= 2","project":"Superalgos","id":"30d37563-9245-4814-a2d2-e81566fdfafb","savedPayload":{"position":{"x":30372.482740223073,"y":33177.94087452211},"targetPosition":{"x":30625.795367545423,"y":32949.8870538829},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7572eda9-8711-454e-abd3-ee9f4bae2a60","savedPayload":{"position":{"x":30625.795367545423,"y":32949.8870538829},"targetPosition":{"x":30879.6529831055,"y":32721.382337493917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fc3d3165-f40a-4224-aea1-8b7c55c29468","savedPayload":{"position":{"x":30879.6529831055,"y":32721.382337493917},"targetPosition":{"x":31133.8800353613,"y":32492.629327210394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"036b27b4-55f7-4f1b-80cc-914950ce3016","savedPayload":{"position":{"x":31133.8800353613,"y":32492.629327210394},"targetPosition":{"x":31432.347172201655,"y":32223.99431482714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8a730b1e-e8d8-4ca0-9342-e58b27b3c0a2","savedPayload":{"position":{"x":30796.072928201625,"y":32055.21064799869},"targetPosition":{"x":30811.77371507451,"y":31755.62178757232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Limit Order","name":"Limit Sell Order #6","id":"90d28d1e-6fd2-4a83-a423-3f34bf455004"}}},{"type":"Limit Sell Order","name":"Profit 0.4","config":"{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}","project":"Superalgos","orderRate":{"type":"Order Rate","name":"New Order Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.tradingCurrent.position.exitTargetRate.value * 1.006","project":"Superalgos","id":"8cffe4c6-a60c-442c-9c67-27860832bdff","savedPayload":{"position":{"x":31548.211316179266,"y":32884.31882310109},"targetPosition":{"x":31434.14584043107,"y":32561.8039580411},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"882824fb-0d18-4c48-8cb1-c60fb9b2e4b3","savedPayload":{"position":{"x":31434.14584043107,"y":32561.8039580411},"targetPosition":{"x":31303.2875129115,"y":32191.75354170856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.tradingLast.limitOrders.orderName.value === 'Profit 0.5'","project":"Superalgos","id":"546d2700-547f-4fbc-b8cc-5b73a97ab69d","savedPayload":{"position":{"x":30698.91354794959,"y":33460.25520480642},"targetPosition":{"x":30845.804325899364,"y":33152.102822068424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"631f4eaa-9716-46e5-9022-a0f00231e34c","savedPayload":{"position":{"x":30845.804325899364,"y":33152.102822068424},"targetPosition":{"x":30992.681324142817,"y":32843.90636057538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aec594bc-6efe-4273-971e-0112bc46ec2b","savedPayload":{"position":{"x":30992.681324142817,"y":32843.90636057538},"targetPosition":{"x":31139.538817171982,"y":32535.584162567917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"029f599b-b17f-4851-88d7-9c80b1662af5","savedPayload":{"position":{"x":31139.538817171982,"y":32535.584162567917},"targetPosition":{"x":31303.2875129115,"y":32191.75354170856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"cancelOrderEvent":{"type":"Cancel Order Event","name":"New Cancel Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[4].orderCounters.periods.value >= 2","project":"Superalgos","id":"5e1a76ec-7ab1-47d5-8f65-9e2aed7e5526","savedPayload":{"position":{"x":29978.74115806557,"y":32660.46628851325},"targetPosition":{"x":30300.284766726683,"y":32546.66880793689},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a8091739-137a-4ba3-9427-02c44396d1c5","savedPayload":{"position":{"x":30300.284766726683,"y":32546.66880793689},"targetPosition":{"x":30622.20537803662,"y":32432.751604891397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6e36cc24-a86d-4889-a57f-de80068d33f0","savedPayload":{"position":{"x":30622.20537803662,"y":32432.751604891397},"targetPosition":{"x":30944.328943839944,"y":32318.81007283237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"07757b18-bb3e-45f5-8ae6-a635b479e703","savedPayload":{"position":{"x":30944.328943839944,"y":32318.81007283237},"targetPosition":{"x":31303.2875129115,"y":32191.75354170856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e065f375-4663-45f0-8d7a-e5eee5d90cb4","savedPayload":{"position":{"x":30682.62038603202,"y":32026.397372877276},"targetPosition":{"x":30811.77371507451,"y":31755.62178757232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Limit Order","name":"Limit Sell Order #5","id":"3c44b04d-6b6b-4278-ba85-898b1f12cdfa"}}},{"type":"Limit Sell Order","name":"Profit 0.3","config":"{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}","project":"Superalgos","orderRate":{"type":"Order Rate","name":"New Order Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.tradingCurrent.position.exitTargetRate.value * 1.005","project":"Superalgos","id":"ed5df221-812e-47e0-8ee5-34cee0346cea","savedPayload":{"position":{"x":31158.51909517061,"y":32845.50308625388},"targetPosition":{"x":31176.200927774764,"y":32504.417103149208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5673a468-77ac-4312-a1b1-ea5e9d070988","savedPayload":{"position":{"x":31176.200927774764,"y":32504.417103149208},"targetPosition":{"x":31196.59695497345,"y":32112.128743916008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.tradingLast.limitOrders.orderName.value === 'Profit 0.4'","project":"Superalgos","id":"fcd99b77-0333-4105-950d-eb03ffc2129e","savedPayload":{"position":{"x":30152.725744553733,"y":33052.75239234119},"targetPosition":{"x":30406.488540719874,"y":32824.21747384216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b5c038b2-15ae-450f-8f86-242e2402257d","savedPayload":{"position":{"x":30406.488540719874,"y":32824.21747384216},"targetPosition":{"x":30660.172033357696,"y":32595.691911189846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"12e843fe-9a85-4300-b4e5-097af10db775","savedPayload":{"position":{"x":30660.172033357696,"y":32595.691911189846},"targetPosition":{"x":30913.885231247605,"y":32367.015684571852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"c9610e5d-0cb9-426a-af86-f7bfdb230d7b","savedPayload":{"position":{"x":30913.885231247605,"y":32367.015684571852},"targetPosition":{"x":31196.59695497345,"y":32112.128743916008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"cancelOrderEvent":{"type":"Cancel Order Event","name":"New Cancel Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","code":"chart.at24hs.candlesProbability.begin > chart.at24hs.candlesProbability.begin","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[3].orderCounters.periods.value >= 2","project":"Superalgos","id":"ed52c351-2965-4e4d-916e-0d882efc332e","savedPayload":{"position":{"x":29792.987109898088,"y":32039.510992700474},"targetPosition":{"x":30134.076625253387,"y":32057.1605228485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"675c8f52-d97a-4afc-a2e4-bedcd501662f","savedPayload":{"position":{"x":30134.076625253387,"y":32057.1605228485},"targetPosition":{"x":30475.158219884866,"y":32074.806729858356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c9155dd9-9e2c-4254-8d2c-63d9c32e40eb","savedPayload":{"position":{"x":30475.158219884866,"y":32074.806729858356},"targetPosition":{"x":30816.453195252943,"y":32092.489815598798},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"cbf59193-c567-4b58-a83c-d9871204a520","savedPayload":{"position":{"x":30816.453195252943,"y":32092.489815598798},"targetPosition":{"x":31196.59695497345,"y":32112.128743916008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e8cb9d8f-6e16-4b5c-a5e4-141f2047ce19","savedPayload":{"position":{"x":30588.83026743129,"y":31956.360969479978},"targetPosition":{"x":30811.77371507451,"y":31755.62178757232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Limit Order","name":"Limit Sell Order #4","id":"7fb716f8-8bba-4c0d-8df3-69a7bc9ae317"}}},{"type":"Limit Sell Order","name":"Profit 0.2","config":"{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}","project":"Superalgos","orderRate":{"type":"Order Rate","name":"New Order Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.tradingCurrent.position.exitTargetRate.value * 1.004","project":"Superalgos","id":"25c6516a-f1d9-461f-b012-6d5524320da9","savedPayload":{"position":{"x":30812.844113213963,"y":32660.515782967275},"targetPosition":{"x":30959.53074678532,"y":32352.53074093093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"29b9bd1b-a6e8-4a75-9df9-527db78c0e7b","savedPayload":{"position":{"x":30959.53074678532,"y":32352.53074093093},"targetPosition":{"x":31128.56779071538,"y":31997.713635987035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.tradingLast.limitOrders.orderName.value === 'Profit 0.3'","project":"Superalgos","id":"a0b1e36b-640d-4ec8-96ea-d26597b61e8e","savedPayload":{"position":{"x":29804.352197392087,"y":32467.148920498068},"targetPosition":{"x":30125.907001830434,"y":32353.29092736564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dab80166-691d-47b6-964a-76df68e98c42","savedPayload":{"position":{"x":30125.907001830434,"y":32353.29092736564},"targetPosition":{"x":30447.758596062507,"y":32239.26264579912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"97061747-71e5-4abe-b339-30e3fd35519f","savedPayload":{"position":{"x":30447.758596062507,"y":32239.26264579912},"targetPosition":{"x":30769.840994373364,"y":32125.03172804365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"998dc335-6c8b-4559-9bbd-8c73bc5844da","savedPayload":{"position":{"x":30769.840994373364,"y":32125.03172804365},"targetPosition":{"x":31128.56779071538,"y":31997.713635987035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"cancelOrderEvent":{"type":"Cancel Order Event","name":"New Cancel Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[2].orderCounters.periods.value >= 2","project":"Superalgos","id":"54de11dd-16f2-4c11-b530-c9b1bcb8a3de","savedPayload":{"position":{"x":29860.13313779977,"y":31393.81865287888},"targetPosition":{"x":30168.101886767312,"y":31540.460555517115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"77ebec63-371b-40c5-9aa7-4779d885b269","savedPayload":{"position":{"x":30168.101886767312,"y":31540.460555517115},"targetPosition":{"x":30476.55684009257,"y":31687.305773593755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"34f00d60-b8aa-4eda-8276-5bbaa3d6d4ea","savedPayload":{"position":{"x":30476.55684009257,"y":31687.305773593755},"targetPosition":{"x":30784.72831837753,"y":31834.035325805817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"431cdafe-93a5-4647-8ea4-89fd44d9abf0","savedPayload":{"position":{"x":30784.72831837753,"y":31834.035325805817},"targetPosition":{"x":31128.56779071538,"y":31997.713635987035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5d13da4a-9bdf-44f9-8e7b-ca05423ce0a4","savedPayload":{"position":{"x":30528.981267746854,"y":31855.76384534245},"targetPosition":{"x":30811.77371507451,"y":31755.62178757232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Limit Order","name":"Limit Sell Order #3","id":"a5d970bf-0f85-4546-9c4a-a0a113e7ea04"}}},{"type":"Limit Sell Order","name":"Profit 0.1","config":"{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}","project":"Superalgos","orderRate":{"type":"Order Rate","name":"New Order Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.tradingCurrent.position.exitTargetRate.value * 1.003","project":"Superalgos","id":"f6a2eda5-75a8-4305-961d-9a1c52b1d837","savedPayload":{"position":{"x":30563.86379158337,"y":32357.928426319493},"targetPosition":{"x":30817.764150040988,"y":32129.07671568887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"66b3fe34-fe06-408f-8181-fc696710c2a9","savedPayload":{"position":{"x":30817.764150040988,"y":32129.07671568887},"targetPosition":{"x":31109.46893109646,"y":31866.147179757805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.tradingLast.limitOrders.orderName.value === 'Profit 0.2'","project":"Superalgos","id":"f0c458d6-d23f-48c4-9156-593429089f97","savedPayload":{"position":{"x":29706.07733211601,"y":31794.350114796194},"targetPosition":{"x":30046.822904391942,"y":31811.930465798825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"488d1160-ae61-45c0-b295-b533b38bbeb5","savedPayload":{"position":{"x":30046.822904391942,"y":31811.930465798825},"targetPosition":{"x":30388.054151700322,"y":31829.45673824515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c296ade6-4a0b-40d3-8ace-f02649f96da5","savedPayload":{"position":{"x":30388.054151700322,"y":31829.45673824515},"targetPosition":{"x":30729.190154471245,"y":31846.83685937668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"8182ab58-4809-48ee-a481-06a6954dc89f","savedPayload":{"position":{"x":30729.190154471245,"y":31846.83685937668},"targetPosition":{"x":31109.46893109646,"y":31866.147179757805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"cancelOrderEvent":{"type":"Cancel Order Event","name":"New Cancel Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[1].orderCounters.periods.value >= 2","project":"Superalgos","id":"d255fc7b-cb37-471b-8fed-9031a1170765","savedPayload":{"position":{"x":30168.560326628227,"y":30822.8882995854},"targetPosition":{"x":30397.233735642047,"y":31076.474377012506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"317e867c-c4a0-48db-9bdf-75d5225f22bc","savedPayload":{"position":{"x":30397.233735642047,"y":31076.474377012506},"targetPosition":{"x":30625.747747545884,"y":31329.828001166636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c287f36d-074b-498c-ad12-be1bf473be63","savedPayload":{"position":{"x":30625.747747545884,"y":31329.828001166636},"targetPosition":{"x":30854.509315754025,"y":31583.427362495073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"7c575bbe-7429-4167-aba5-e7a3b59bd958","savedPayload":{"position":{"x":30854.509315754025,"y":31583.427362495073},"targetPosition":{"x":31109.46893109646,"y":31866.147179757805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"de750ccf-154f-4495-a9fd-cee163cccf66","savedPayload":{"position":{"x":30512.184854648138,"y":31739.921000699436},"targetPosition":{"x":30811.77371507451,"y":31755.62178757232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Limit Order","name":"Limit Sell Order #2","id":"e133f5d4-034b-4333-9ea4-a6b52183476e"}}},{"type":"Limit Sell Order","name":"Profit 0.0","config":"{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}","project":"Superalgos","orderRate":{"type":"Order Rate","name":"New Order Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.tradingCurrent.position.exitTargetRate.value * 1.002","project":"Superalgos","id":"9344ebf6-3efa-4904-a952-d2dbb1b0ead1","savedPayload":{"position":{"x":30410.26963417929,"y":31794.68065670642},"targetPosition":{"x":30750.566814320024,"y":31767.794674652483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ef824607-7571-4f06-84d6-ce4e97e4cc62","savedPayload":{"position":{"x":30750.566814320024,"y":31767.794674652483},"targetPosition":{"x":31142.128049335588,"y":31736.808105691816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"tradingEngine.tradingLast.limitOrders.orderName.value === 'Profit 0.1'","project":"Superalgos","id":"91c9b7c1-1250-450e-b7b3-b5b5bf4abd77","savedPayload":{"position":{"x":30344.95885407582,"y":30580.386880577542},"targetPosition":{"x":30538.406108295792,"y":30861.274297492913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cb5f3c82-b13e-4edb-a738-89f653250d56","savedPayload":{"position":{"x":30538.406108295792,"y":30861.274297492913},"targetPosition":{"x":30732.145253834915,"y":31142.449256664135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ff70b3ad-19b0-4be5-bf58-f3b9253ac170","savedPayload":{"position":{"x":30732.145253834915,"y":31142.449256664135},"targetPosition":{"x":30926.169212353423,"y":31423.65588284892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"5658a835-b46f-40c4-a7c1-5d5d6f10b95b","savedPayload":{"position":{"x":30926.169212353423,"y":31423.65588284892},"targetPosition":{"x":31142.128049335588,"y":31736.808105691816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c077f171-dabc-49e6-8956-3e1144a0b0ef","savedPayload":{"position":{"x":30540.998129769552,"y":31626.46845852983},"targetPosition":{"x":30811.77371507451,"y":31755.62178757232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Limit Order","name":"Limit Sell Order #1","id":"929c1c8c-1964-4495-991c-0a516f1e9ba0"}}}],"id":"0fe764ce-3312-4964-9841-b55500e3f80a","savedPayload":{"position":{"x":30811.77371507451,"y":31755.62178757232},"targetPosition":{"x":31034.717162717727,"y":31554.88260566466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"33993524-848d-4d57-a503-075c5df4a31b","savedPayload":{"position":{"x":31034.717162717727,"y":31554.88260566466},"targetPosition":{"x":31257.660610360945,"y":31354.143423757003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"f4d8925b-697e-4f52-ad2e-d368780739d0","savedPayload":{"position":{"x":31257.660610360945,"y":31354.143423757003},"targetPosition":{"x":31350.365708673427,"y":31068.826468868458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"711041eb-3055-4611-b64f-570363bae854","savedPayload":{"position":{"x":31350.365708673427,"y":31068.826468868458},"targetPosition":{"x":31050.365708673427,"y":31068.826468868458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"628b758d-ffff-445f-9d4f-8aa480a13db3","savedPayload":{"position":{"x":31050.365708673427,"y":31068.826468868458},"targetPosition":{"x":31050.365708673427,"y":31068.826468868458},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}} \ No newline at end of file diff --git a/Projects/Superalgos/Plugins/Workspaces/Tested Exchanges.json b/Projects/Superalgos/Plugins/Workspaces/Tested Exchanges.json new file mode 100644 index 000000000..40c4450f0 --- /dev/null +++ b/Projects/Superalgos/Plugins/Workspaces/Tested Exchanges.json @@ -0,0 +1 @@ +{"type":"Workspace","name":"Tested Exchanges","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":[],"id":"40af91d9-431c-4b7d-addc-aed37bc2f3fe","savedPayload":{"position":{"x":25089.356993272086,"y":30767.11115747996},"targetPosition":{"x":25239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningTasks":{"type":"Learning Tasks","name":"New Learning Tasks","project":"Superalgos","projectLearningTasks":[],"id":"0818dfbe-61ea-40b8-8544-bee25d7f45be","savedPayload":{"position":{"x":25389.356993272086,"y":30767.11115747996},"targetPosition":{"x":25239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"testingTradingTasks":{"type":"Testing Trading Tasks","name":"New Testing Trading Tasks","project":"Superalgos","projectTradingTasks":[],"id":"8117db0a-e418-4f56-8fe4-fda2ddac1cbb","savedPayload":{"position":{"x":25539.356993272086,"y":31026.918778615294},"targetPosition":{"x":25239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"productionTradingTasks":{"type":"Production Trading Tasks","name":"New Production Trading Tasks","project":"Superalgos","projectTradingTasks":[],"id":"673caa5f-511d-4688-9305-e5f0f0f780cd","savedPayload":{"position":{"x":25389.356993272086,"y":31286.726399750627},"targetPosition":{"x":25239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataStorage":{"type":"Data Storage","name":"New Data Storage","project":"Superalgos","dataMinesData":{"type":"Data Mines Data","name":"New Data Mines Data","project":"Superalgos","projectDataProducts":[],"id":"32e7c122-fa5a-4d00-9d71-d54e890e32de","savedPayload":{"position":{"x":25070.19913560607,"y":31588.15985816277},"targetPosition":{"x":25109.356993272086,"y":31290.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingMinesData":{"type":"Trading Mines Data","name":"New Trading Mines Data","project":"Superalgos","projectTradingProducts":[],"id":"e4e268f3-a677-4f90-90a1-d87244e647e5","savedPayload":{"position":{"x":24959.356993272086,"y":31550.53402088596},"targetPosition":{"x":25109.356993272086,"y":31290.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningMinesData":{"type":"Learning Mines Data","name":"New Learning Mines Data","project":"Superalgos","projectLearningProducts":[],"id":"2845a687-becc-4c3b-bc79-b2293ba876ba","savedPayload":{"position":{"x":24871.350991184714,"y":31473.354828453244},"targetPosition":{"x":25109.356993272086,"y":31290.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e2697759-6038-4943-b90c-5a68651ff9a8","savedPayload":{"position":{"x":25089.356993272086,"y":31286.726399750627},"targetPosition":{"x":25239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"d"}}},"id":"e452cf65-2b2b-44f2-9e67-bdd9d3c008e4","savedPayload":{"position":{"x":25239.356993272086,"y":31026.918778615294},"targetPosition":{"x":24939.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"3c165071-7558-4708-9999-8ffe71d346b1","savedPayload":{"position":{"x":24939.356993272086,"y":31026.918778615294},"targetPosition":{"x":24939.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},{"type":"Crypto Ecosystem","name":"My Crypto Ecosystem","project":"Superalgos","cryptoExchanges":[{"type":"Crypto Exchanges","name":"Tested","project":"Superalgos","exchanges":[{"type":"Crypto Exchange","name":"Binance","config":"{\n \"codeName\": \"binance\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"fetchType\": \"by Id\",\n \"fetchTradesMethod\": \"publicGetHistoricalTrades\",\n \"firstId\": \"f\"\n }\n ]\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"EUR\"} \n}","project":"Superalgos","assets":[{"type":"Asset","name":"Bitcoin","config":"{ \n\"codeName\": \"BTC\"\n}","project":"Superalgos","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa","savedPayload":{"position":{"x":18606.497829264816,"y":29451.09637134722},"targetPosition":{"x":18947.58510468027,"y":29744.625706422376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Tether","config":"{\n \"codeName\": \"USDT\"\n}","project":"Superalgos","id":"f110bfa0-bd5b-469b-a940-4524c8688136","savedPayload":{"position":{"x":19031.245327903584,"y":29302.470793467397},"targetPosition":{"x":18947.58510468027,"y":29744.625706422376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"95d2c30f-215b-486e-8119-f4eac0279575","savedPayload":{"position":{"x":18947.58510468027,"y":29744.625706422376},"targetPosition":{"x":19096.210682560097,"y":30169.37320506114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"E"}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","project":"Superalgos","markets":[{"type":"Market","name":"BTC/USDT","config":"{ \n\"codeName\": \"BTC/USDT\"\n}","project":"Superalgos","baseAsset":{"type":"Market Base Asset","name":"Bitcoin","project":"Superalgos","id":"1017b30d-de1b-4212-991e-9fd0a5b6c814","savedPayload":{"position":{"x":19570.366270989212,"y":28916.346310993984},"targetPosition":{"x":19486.7060477659,"y":29358.501223948962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","project":"Superalgos","id":"705c4a67-787a-48cd-a3dc-3a557438bf0b","savedPayload":{"position":{"x":19780.235382841056,"y":29017.413948533507},"targetPosition":{"x":19486.7060477659,"y":29358.501223948962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"f110bfa0-bd5b-469b-a940-4524c8688136"}}},"id":"9a867bf0-a71d-445c-b99a-75b60bbdce09","savedPayload":{"position":{"x":19486.7060477659,"y":29358.501223948962},"targetPosition":{"x":19291.458365163,"y":29763.93721450505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2fd80894-900e-44ac-a1a7-56c14124f7a1","savedPayload":{"position":{"x":19291.458365163,"y":29763.93721450505},"targetPosition":{"x":19096.210682560097,"y":30169.37320506114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[{"type":"Exchange Account Asset","name":"Bitcoin","project":"Superalgos","id":"ba6f3d5c-b36b-49d9-947f-392068109169","savedPayload":{"position":{"x":19810.91198701285,"y":29633.15211842039},"targetPosition":{"x":19784.76526418855,"y":29932.010527847913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa"}}},{"type":"Exchange Account Asset","name":"Tether","project":"Superalgos","id":"c90be267-90f9-45ae-b225-0578adb4aad9","savedPayload":{"position":{"x":20056.657600299546,"y":29805.225049325705},"targetPosition":{"x":19784.76526418855,"y":29932.010527847913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"f110bfa0-bd5b-469b-a940-4524c8688136"}}}],"id":"8ac5c2a9-a238-48ae-ab43-0a0a95a37464","savedPayload":{"position":{"x":19784.76526418855,"y":29932.010527847913},"targetPosition":{"x":19612.692333283238,"y":30177.75614113461},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"Key for Lighting Strike","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e85bbbd6-aca8-450f-9237-788062de5761","savedPayload":{"position":{"x":20210.409152138287,"y":30230.049586783207},"targetPosition":{"x":19911.550742710762,"y":30203.90286395891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"48925cc9-f3cd-4499-8466-1338fed28a0d","savedPayload":{"position":{"x":19911.550742710762,"y":30203.90286395891},"targetPosition":{"x":19612.692333283238,"y":30177.75614113461},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"63794496-c94b-42f9-81cc-c588708617a6","savedPayload":{"position":{"x":19612.692333283238,"y":30177.75614113461},"targetPosition":{"x":19340.799997172242,"y":30304.54161965682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4b0c1ac5-515f-44a9-b9b9-e698a9c51eac","savedPayload":{"position":{"x":19520.95818119886,"y":30020.747627181314},"targetPosition":{"x":19096.210682560097,"y":30169.37320506114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b","savedPayload":{"position":{"x":19212.359265532272,"y":30552.25945208198},"targetPosition":{"x":19073.301618063546,"y":30980.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"tutorial":{"status":"Done"}}},{"type":"Crypto Exchange","name":"Binance US","config":"{\n \"codeName\": \"binanceus\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"fetchType\": \"by Id\",\n \"fetchTradesMethod\": \"publicGetHistoricalTrades\",\n \"firstId\": \"f\"\n }\n ]\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"EUR\"} \n}","project":"Superalgos","assets":[{"type":"Asset","name":"Bitcoin","config":"{ \n\"codeName\": \"BTC\"\n}","project":"Superalgos","id":"5f600d91-40e6-43cc-82b0-586c5c422077","savedPayload":{"position":{"x":19512.947331594303,"y":30307.95713652808},"targetPosition":{"x":19435.301618063546,"y":30597.7348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Tether","config":"{ \n\"codeName\": \"USDT\"\n}","project":"Superalgos","id":"d9a04ff0-c729-490c-84d1-d5d5a0397989","savedPayload":{"position":{"x":19725.079365950267,"y":30520.089170884043},"targetPosition":{"x":19435.301618063546,"y":30597.7348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"8b0d5d47-de2c-4770-976d-14a006ac25e7","savedPayload":{"position":{"x":19435.301618063546,"y":30597.7348844148},"targetPosition":{"x":19223.169583707582,"y":30809.866918770764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"E"}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","project":"Superalgos","markets":[{"type":"Market","name":"BTC/USDT","config":"{ \n\"codeName\": \"BTC/USDT\"\n}","project":"Superalgos","baseAsset":{"type":"Market Base Asset","name":"Bitcoin","project":"Superalgos","id":"0f7ece91-d8ef-4c4b-be95-59fb64b5eaf9","savedPayload":{"position":{"x":20112.947331594303,"y":30732.221205240006},"targetPosition":{"x":19823.169583707582,"y":30809.866918770764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"5f600d91-40e6-43cc-82b0-586c5c422077"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","project":"Superalgos","id":"a8005fb7-1737-43af-882c-3183f2e94f41","savedPayload":{"position":{"x":20112.947331594303,"y":30887.51263230152},"targetPosition":{"x":19823.169583707582,"y":30809.866918770764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"d9a04ff0-c729-490c-84d1-d5d5a0397989"}}},"id":"6af7c681-a924-4e65-a8aa-a45589e12bde","savedPayload":{"position":{"x":19823.169583707582,"y":30809.866918770764},"targetPosition":{"x":19523.169583707582,"y":30809.866918770764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"95f252bb-4047-4bfa-8c93-66618b64d419","savedPayload":{"position":{"x":19523.169583707582,"y":30809.866918770764},"targetPosition":{"x":19223.169583707582,"y":30809.866918770764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[{"type":"Exchange Account Asset","name":"Bitcoin","project":"Superalgos","id":"ef552b0e-ad3c-48a5-8a51-b57f37259043","savedPayload":{"position":{"x":20226.98914819295,"y":31234.13098748269},"targetPosition":{"x":19937.21140030623,"y":31311.77670101345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"5f600d91-40e6-43cc-82b0-586c5c422077"}}},{"type":"Exchange Account Asset","name":"Tether","project":"Superalgos","id":"f5017c63-704e-4c72-a652-974ae842a2af","savedPayload":{"position":{"x":20149.343434662194,"y":31523.908735369412},"targetPosition":{"x":19937.21140030623,"y":31311.77670101345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"d9a04ff0-c729-490c-84d1-d5d5a0397989"}}}],"id":"75edbc56-de4a-4f00-9471-d8978fa1d85e","savedPayload":{"position":{"x":19937.21140030623,"y":31311.77670101345},"targetPosition":{"x":19647.43365241951,"y":31234.13098748269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"Key for Lighting Strike","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"dfa910d1-ca6f-4d7d-9935-62f051005199","savedPayload":{"position":{"x":19802.725079481024,"y":31813.686483256133},"targetPosition":{"x":19725.079365950267,"y":31523.908735369412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"d4f8319e-bc33-4a59-9444-ec4d44e0f1ae","savedPayload":{"position":{"x":19725.079365950267,"y":31523.908735369412},"targetPosition":{"x":19647.43365241951,"y":31234.13098748269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3c4b38ad-2fe0-4224-80dc-d01bbd5c9ff5","savedPayload":{"position":{"x":19647.43365241951,"y":31234.13098748269},"targetPosition":{"x":19435.301618063546,"y":31021.998953126727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"97859cdc-92f3-43a7-9170-05f02953e39a","savedPayload":{"position":{"x":19435.301618063546,"y":31021.998953126727},"targetPosition":{"x":19223.169583707582,"y":30809.866918770764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d763fdb6-bfe0-4fd2-9b1f-0a12ead4098b","savedPayload":{"position":{"x":19337.80498159516,"y":30616.177236946074},"targetPosition":{"x":19073.301618063546,"y":30980.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Crypto Exchange","name":"Bitfinex","config":"{\n \"codeName\": \"bitfinex\",\n \"API\": [\n {\n \"rateLimit\": 999\n }\n ]\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[{"type":"Asset","name":"Bitcoin","config":"{\n \"codeName\": \"BTC\"\n}","project":"Superalgos","id":"fa6fb871-10ad-4b25-ba74-b37d6a9a3025","savedPayload":{"position":{"x":19651.24733491461,"y":30138.234951669678},"targetPosition":{"x":19709.481620062677,"y":30355.56826258472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Tether","config":"{\n \"codeName\": \"USDT\"\n}","project":"Superalgos","id":"2de2fe8f-a38b-4778-8e24-d318888c629f","savedPayload":{"position":{"x":19868.58064582965,"y":30196.469236817746},"targetPosition":{"x":19709.481620062677,"y":30355.56826258472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"id":"33508b53-2769-4f3d-8c98-9fa37e5cbf5b","savedPayload":{"position":{"x":19709.481620062677,"y":30355.56826258472},"targetPosition":{"x":19593.013049766545,"y":30790.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[{"type":"Market","name":"BTC/USDT","config":"{\n \"codeName\": \"BTC/USDT\"\n}","project":"Superalgos","baseAsset":{"type":"Market Base Asset","name":"Bitcoin","project":"Superalgos","id":"de06f331-5653-4539-acf4-603fa7f6b30d","savedPayload":{"position":{"x":20597.435913172543,"y":29950.5234527118},"targetPosition":{"x":20372.435913172543,"y":30340.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"fa6fb871-10ad-4b25-ba74-b37d6a9a3025"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","project":"Superalgos","id":"5108ee82-6b9f-4067-9a57-5b29647a26bc","savedPayload":{"position":{"x":20822.435913172543,"y":30340.2348844148},"targetPosition":{"x":20372.435913172543,"y":30340.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"2de2fe8f-a38b-4778-8e24-d318888c629f"}}},"id":"b0230cdf-6725-4d65-b633-390272cfb6c5","savedPayload":{"position":{"x":20372.435913172543,"y":30340.2348844148},"targetPosition":{"x":19982.724481469544,"y":30565.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4d4ad5a1-81a7-4f92-83db-99f57ce261bb","savedPayload":{"position":{"x":19982.724481469544,"y":30565.2348844148},"targetPosition":{"x":19593.013049766545,"y":30790.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[{"type":"Exchange Account Asset","name":"Bitcoin","project":"Superalgos","id":"19d9de75-5c17-4226-9dd3-947b553bd1a1","savedPayload":{"position":{"x":21056.111941023762,"y":30747.604428943956},"targetPosition":{"x":20897.01291525679,"y":30906.70345471093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"fa6fb871-10ad-4b25-ba74-b37d6a9a3025"}}},{"type":"Exchange Account Asset","name":"Tether","project":"Superalgos","id":"f03bae52-5924-42a5-94ff-43e278d1cef2","savedPayload":{"position":{"x":21114.34622617183,"y":30964.937739858997},"targetPosition":{"x":20897.01291525679,"y":30906.70345471093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"2de2fe8f-a38b-4778-8e24-d318888c629f"}}}],"id":"29d52baf-645c-4d8f-9631-ebd391b4c815","savedPayload":{"position":{"x":20897.01291525679,"y":30906.70345471093},"targetPosition":{"x":20462.346293426708,"y":31023.172025007065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d615c33d-c6cf-4572-ac32-8e9ddeb5bb52","savedPayload":{"position":{"x":21098.7423964946,"y":31659.568128074956},"targetPosition":{"x":20780.544344960654,"y":31341.37007654101},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"0c189040-6318-483c-b6d7-982370a3298d","savedPayload":{"position":{"x":20780.544344960654,"y":31341.37007654101},"targetPosition":{"x":20462.346293426708,"y":31023.172025007065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cd60de4a-d17c-4ba7-936a-cbf2305fe3bb","savedPayload":{"position":{"x":20462.346293426708,"y":31023.172025007065},"targetPosition":{"x":20027.679671596627,"y":30906.703454710932},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d247f4f5-6f16-4a59-a4a5-6d1554b43562","savedPayload":{"position":{"x":20027.679671596627,"y":30906.703454710932},"targetPosition":{"x":19593.013049766545,"y":30790.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c076027-683d-4778-8a6a-e60984980fdf","savedPayload":{"position":{"x":19437.359265532272,"y":30715.731520883186},"targetPosition":{"x":19073.301618063546,"y":30980.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bittrex","config":"{\n \"codeName\": \"bittrex\",\n \"API\": [\n {\n \"method\": \"fetch_ohlcv\",\n \"limit\": 2\n }\n ]\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[{"type":"Asset","name":"BTC","config":"{\n \"codeName\": \"BTC\"\n}","project":"Superalgos","id":"41164633-9a2a-4123-88f0-7f9acb42d68a","savedPayload":{"position":{"x":19682.021594969836,"y":29990.84101042175},"targetPosition":{"x":19705.57277527916,"y":30440.22430106131},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"USDT","config":"{\n \"codeName\": \"USDT\"\n}","project":"Superalgos","id":"fab49590-9900-4352-a8dc-e464471f8def","savedPayload":{"position":{"x":20082.9745308546,"y":30195.136735304546},"targetPosition":{"x":19705.57277527916,"y":30440.22430106131},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"88d4ef94-f030-42df-9115-69d9611317b1","savedPayload":{"position":{"x":19705.57277527916,"y":30440.22430106131},"targetPosition":{"x":19501.277050396366,"y":30841.177236946074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[{"type":"Market","name":"BTC/USDT","config":"{\n \"codeName\": \"BTC/USDT\"\n}","project":"Superalgos","baseAsset":{"type":"Market Base Asset","name":"BTC","project":"Superalgos","id":"fc48c4e5-ca22-4343-862b-297182111709","savedPayload":{"position":{"x":20658.336687923493,"y":30228.646770543794},"targetPosition":{"x":20357.227915062005,"y":30563.061942008622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"BTC","id":"41164633-9a2a-4123-88f0-7f9acb42d68a"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"USDT","project":"Superalgos","id":"9b0a49d7-b6df-4489-bbdf-b2cb19f585cd","savedPayload":{"position":{"x":20797.39433539222,"y":30656.622202876613},"targetPosition":{"x":20357.227915062005,"y":30563.061942008622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"USDT","id":"fab49590-9900-4352-a8dc-e464471f8def"}}},"id":"f1770733-f08a-4d8d-a64b-b569ee2a4d7b","savedPayload":{"position":{"x":20357.227915062005,"y":30563.061942008622},"targetPosition":{"x":19929.252482729185,"y":30702.11958947735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7fe8234d-9a39-4b28-bf98-43b4fdb57ee5","savedPayload":{"position":{"x":19929.252482729185,"y":30702.11958947735},"targetPosition":{"x":19501.277050396366,"y":30841.177236946074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[{"type":"Exchange Account Asset","name":"BTC","project":"Superalgos","id":"644896f8-63ea-45ca-bb42-8b9c6f661bb5","savedPayload":{"position":{"x":20422.08053697119,"y":30792.919971058607},"targetPosition":{"x":20139.02922028961,"y":30976.73564537618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"BTC","id":"41164633-9a2a-4123-88f0-7f9acb42d68a"}}},{"type":"Exchange Account Asset","name":"USDT","project":"Superalgos","id":"f845c71a-aaef-43df-9fb7-fbb551443475","savedPayload":{"position":{"x":20439.743922203183,"y":31129.957439038277},"targetPosition":{"x":20139.02922028961,"y":30976.73564537618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"USDT","id":"fab49590-9900-4352-a8dc-e464471f8def"}}}],"id":"5ba7fe13-1e0f-403a-8f4b-8e3968d2e5e2","savedPayload":{"position":{"x":20139.02922028961,"y":30976.73564537618},"targetPosition":{"x":19801.99175230994,"y":30994.399030608172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e926fbb8-d2ac-4e3d-aa59-a0a828d202fd","savedPayload":{"position":{"x":20047.0793180667,"y":31371.800786183612},"targetPosition":{"x":19924.53553518832,"y":31183.099908395892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"4fbe41e1-cb15-4bc2-a3de-681c5b22cc97","savedPayload":{"position":{"x":19924.53553518832,"y":31183.099908395892},"targetPosition":{"x":19801.99175230994,"y":30994.399030608172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ab9fe180-1c07-44de-a0a1-863761ac52d6","savedPayload":{"position":{"x":19801.99175230994,"y":30994.399030608172},"targetPosition":{"x":19601.515284367557,"y":30892.251168166775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"584f29ca-9b3c-4b7f-a2b0-aab4180ecefd","savedPayload":{"position":{"x":19601.515284367557,"y":30892.251168166775},"targetPosition":{"x":19501.277050396366,"y":30841.177236946074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f598f002-8fc5-491f-888e-07d017ea83c6","savedPayload":{"position":{"x":19501.277050396366,"y":30841.177236946074},"targetPosition":{"x":19073.301618063546,"y":30980.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Coinbase Pro","config":"{\n \"codeName\": \"coinbasepro\",\n \"API\": [\n {\n \"method\": \"fetch_ohlcv\",\n \"limit\": 300\n }\n ]\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[{"type":"Asset","name":"BTC","config":"{\n \"codeName\": \"BTC\"\n}","project":"Superalgos","id":"ee182378-a852-48d9-970a-d1741fa24003","savedPayload":{"position":{"x":19711.51778640455,"y":30712.469203190307},"targetPosition":{"x":19682.40064383052,"y":30821.135858647827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"USDC","config":"{\n \"codeName\": \"USDC\"\n}","project":"Superalgos","id":"a4229bf5-90b6-4590-90f4-fdec3cd60df9","savedPayload":{"position":{"x":19791.06729928804,"y":30792.018716073795},"targetPosition":{"x":19682.40064383052,"y":30821.135858647827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"id":"5e970185-b876-4d70-af88-e4944e992801","savedPayload":{"position":{"x":19682.40064383052,"y":30821.135858647827},"targetPosition":{"x":19523.301618063546,"y":30980.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[{"type":"Market","name":"BTC/USDC","config":"{ \n\"codeName\": \"Type the name of the market\"\n}","project":"Superalgos","baseAsset":{"type":"Market Base Asset","name":"BTC","project":"Superalgos","id":"b6375bea-7164-4e45-89cb-80a1ec275c52","savedPayload":{"position":{"x":20813.013049766545,"y":30755.2348844148},"targetPosition":{"x":20423.301618063546,"y":30980.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"BTC","id":"ee182378-a852-48d9-970a-d1741fa24003"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"USDC","project":"Superalgos","id":"bb8913af-3d8c-4d31-af21-457d5d6ab9cc","savedPayload":{"position":{"x":20813.013049766545,"y":31205.2348844148},"targetPosition":{"x":20423.301618063546,"y":30980.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"USDC","id":"a4229bf5-90b6-4590-90f4-fdec3cd60df9"}}},"id":"cbabed50-b6b1-4f1b-b750-0f802bd36f6e","savedPayload":{"position":{"x":20423.301618063546,"y":30980.2348844148},"targetPosition":{"x":19973.301618063546,"y":30980.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f84cdb3e-86c4-4b6c-bba4-678d71440ee0","savedPayload":{"position":{"x":19973.301618063546,"y":30980.2348844148},"targetPosition":{"x":19523.301618063546,"y":30980.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[{"type":"Exchange Account Asset","name":"BTC","project":"Superalgos","id":"777bd1d0-5675-42a6-b662-a3939bf6be3f","savedPayload":{"position":{"x":20196.61677854409,"y":31218.88342306526},"targetPosition":{"x":19979.283467629048,"y":31277.11770821333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"BTC","id":"ee182378-a852-48d9-970a-d1741fa24003"}}},{"type":"Exchange Account Asset","name":"USDC","project":"Superalgos","id":"1ba83f2c-fe9f-4a79-b0ee-52eb70b342bc","savedPayload":{"position":{"x":20138.38249339602,"y":31436.2167339803},"targetPosition":{"x":19979.283467629048,"y":31277.11770821333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"USDC","id":"a4229bf5-90b6-4590-90f4-fdec3cd60df9"}}}],"id":"3975e43a-780e-4e9e-88b3-8dc946efab78","savedPayload":{"position":{"x":19979.283467629048,"y":31277.11770821333},"targetPosition":{"x":19761.950156714007,"y":31218.88342306526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"17e78895-a58f-4bf3-b484-07871243adcc","savedPayload":{"position":{"x":19878.418727010143,"y":31653.550044895343},"targetPosition":{"x":19820.184441862075,"y":31436.2167339803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"71cd3cd3-7d6f-4a77-b383-cf4d14c90ac7","savedPayload":{"position":{"x":19820.184441862075,"y":31436.2167339803},"targetPosition":{"x":19761.950156714007,"y":31218.88342306526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7d6893e0-8262-4bfe-97c6-54cf7f1d1559","savedPayload":{"position":{"x":19761.950156714007,"y":31218.88342306526},"targetPosition":{"x":19602.851130947034,"y":31059.78439729829},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"68dc9fd9-7d27-4102-821c-91d69fe98858","savedPayload":{"position":{"x":19602.851130947034,"y":31059.78439729829},"targetPosition":{"x":19523.301618063546,"y":30980.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"23ec7356-eed9-4a26-ace4-f21ae0d1e43e","savedPayload":{"position":{"x":19523.301618063546,"y":30980.2348844148},"targetPosition":{"x":19073.301618063546,"y":30980.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FTX","config":"{\n \"codeName\": \"ftx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"EUR\"} \n}","project":"Superalgos","assets":[{"type":"Asset","name":"Bitcoin","config":"{ \n\"codeName\": \"BTC\"\n}","project":"Superalgos","id":"51d196fb-b457-49f7-bae2-b0ef554154a3","savedPayload":{"position":{"x":19285.301618063546,"y":30915.927263279467},"targetPosition":{"x":19435.301618063546,"y":31175.7348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"USD","config":"{\n \"codeName\": \"USD\"\n}","project":"Superalgos","id":"85b644de-4b78-486d-a689-5db24484bf33","savedPayload":{"position":{"x":19585.301618063546,"y":30915.927263279467},"targetPosition":{"x":19435.301618063546,"y":31175.7348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"7c0b83f3-d4f6-457a-881f-9cd73f293d1c","savedPayload":{"position":{"x":19435.301618063546,"y":31175.7348844148},"targetPosition":{"x":19435.301618063546,"y":31475.7348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"E"}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","project":"Superalgos","markets":[{"type":"Market","name":"BTC/USD","config":"{\n \"codeName\": \"BTC/USD\"\n}","project":"Superalgos","baseAsset":{"type":"Market Base Asset","name":"Bitcoin","project":"Superalgos","id":"6b882b1c-d15c-4499-aa93-9f80e3ccb59a","savedPayload":{"position":{"x":20009.565686775473,"y":30791.66319456754},"targetPosition":{"x":19859.565686775473,"y":31051.470815702873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"51d196fb-b457-49f7-bae2-b0ef554154a3"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"USD","project":"Superalgos","id":"6eada284-7adc-4eda-9448-7165704e350e","savedPayload":{"position":{"x":20119.373307910806,"y":30901.470815702873},"targetPosition":{"x":19859.565686775473,"y":31051.470815702873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"USD","id":"85b644de-4b78-486d-a689-5db24484bf33"}}},"id":"f4814fb1-d09a-45ad-8352-c0743b3a8558","savedPayload":{"position":{"x":19859.565686775473,"y":31051.470815702873},"targetPosition":{"x":19647.43365241951,"y":31263.602850058836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f8c75d46-aa08-4579-a4a3-ea797f70944d","savedPayload":{"position":{"x":19647.43365241951,"y":31263.602850058836},"targetPosition":{"x":19435.301618063546,"y":31475.7348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[{"type":"Exchange Account Asset","name":"Bitcoin","project":"Superalgos","id":"6e4dc8ba-da96-43c5-bf8c-71ee115ae628","savedPayload":{"position":{"x":20445.10923919888,"y":31065.927263279467},"targetPosition":{"x":20295.10923919888,"y":31325.7348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"51d196fb-b457-49f7-bae2-b0ef554154a3"}}},{"type":"Exchange Account Asset","name":"USD","project":"Superalgos","id":"e4ba801d-fa96-4fed-a520-e6e80f3f67d1","savedPayload":{"position":{"x":20595.10923919888,"y":31325.7348844148},"targetPosition":{"x":20295.10923919888,"y":31325.7348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"USD","id":"85b644de-4b78-486d-a689-5db24484bf33"}}}],"id":"421bb949-bde1-41d3-95b0-7b6b3c3ebf0c","savedPayload":{"position":{"x":20295.10923919888,"y":31325.7348844148},"targetPosition":{"x":20035.301618063546,"y":31475.7348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"Key for Lighting Strike","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"ffd11b5a-751b-4264-bb69-f2c094ffe341","savedPayload":{"position":{"x":20554.91686033421,"y":31775.7348844148},"targetPosition":{"x":20295.10923919888,"y":31625.7348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"cad1a06c-8ce7-4eb0-8046-924764a45662","savedPayload":{"position":{"x":20295.10923919888,"y":31625.7348844148},"targetPosition":{"x":20035.301618063546,"y":31475.7348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"52652029-df80-42d5-8300-843b764a1b47","savedPayload":{"position":{"x":20035.301618063546,"y":31475.7348844148},"targetPosition":{"x":19735.301618063546,"y":31475.7348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"928314c7-c4a7-4aec-8096-074e557a71d0","savedPayload":{"position":{"x":19735.301618063546,"y":31475.7348844148},"targetPosition":{"x":19435.301618063546,"y":31475.7348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b3e7f4de-1ca4-442f-8898-cb7397dc45d3","savedPayload":{"position":{"x":19501.277050396366,"y":31119.292531883526},"targetPosition":{"x":19073.301618063546,"y":30980.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Crypto Exchange","name":"Kraken","config":"{ \n\"codeName\": \"kraken\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{\n \"addMissingAssetsFilter\": {\n \"quotedAsset\": \"USDT\"\n }\n}","project":"Superalgos","assets":[{"type":"Asset","name":"BTC","config":"{\n \"codeName\": \"BTC\"\n}","project":"Superalgos","id":"a18c644d-3d51-413e-8abe-dd7698c2d03a","savedPayload":{"position":{"x":19564.91960434743,"y":31467.40024970227},"targetPosition":{"x":19453.382057442876,"y":31482.084446327026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"USDT","config":"{\n \"codeName\": \"USDT\"\n}","project":"Superalgos","id":"e45ae556-e162-4d1f-ac5e-f8245d3d7f70","savedPayload":{"position":{"x":19521.86771820636,"y":31571.33669710979},"targetPosition":{"x":19453.382057442876,"y":31482.084446327026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"id":"2a7dfb85-9179-4c30-9b63-072adaa7b317","savedPayload":{"position":{"x":19453.382057442876,"y":31482.084446327026},"targetPosition":{"x":19245.509162627837,"y":31395.98067404488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[{"type":"Market","name":"BTC/USDT","config":"{\n \"codeName\": \"USDT/BTC\"\n}","project":"Superalgos","baseAsset":{"type":"Market Base Asset","name":"BTC","project":"Superalgos","id":"94349e75-3c40-4a66-bc82-61460105e591","savedPayload":{"position":{"x":19946.933254887477,"y":32501.414896358965},"targetPosition":{"x":19589.92425175642,"y":32227.47225330504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"BTC","id":"a18c644d-3d51-413e-8abe-dd7698c2d03a"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"USDT","project":"Superalgos","id":"4759c142-6e8c-4ce2-8b5c-c783f630bb3b","savedPayload":{"position":{"x":19531.187465257397,"y":32673.622440923256},"targetPosition":{"x":19589.92425175642,"y":32227.47225330504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"USDT","id":"e45ae556-e162-4d1f-ac5e-f8245d3d7f70"}}},"id":"71f99544-bf86-49e7-8896-5f96f875f262","savedPayload":{"position":{"x":19589.92425175642,"y":32227.47225330504},"targetPosition":{"x":19417.71670719213,"y":31811.72646367496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"07267ef1-f15a-43cb-94f6-c13075c3ba61","savedPayload":{"position":{"x":19417.71670719213,"y":31811.72646367496},"targetPosition":{"x":19245.509162627837,"y":31395.98067404488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[{"type":"Exchange Account Asset","name":"BTC","project":"Superalgos","id":"e73d040b-c8bb-40fb-8748-f73ae5780310","savedPayload":{"position":{"x":19282.693218981094,"y":32109.369611642072},"targetPosition":{"x":19145.721897454132,"y":31930.865110076546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"BTC","id":"a18c644d-3d51-413e-8abe-dd7698c2d03a"}}},{"type":"Exchange Account Asset","name":"USDT","project":"Superalgos","id":"37ebe76e-55a2-413e-b6f5-ce54a6afb604","savedPayload":{"position":{"x":19059.618125171986,"y":32138.738004891584},"targetPosition":{"x":19145.721897454132,"y":31930.865110076546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"USDT","id":"e45ae556-e162-4d1f-ac5e-f8245d3d7f70"}}}],"id":"695d852f-eab0-4114-a8a4-323efa22ceb7","savedPayload":{"position":{"x":19145.721897454132,"y":31930.865110076546},"targetPosition":{"x":19116.35350420462,"y":31707.790016267438},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"81b848a0-66d2-4825-a951-eca8f3713896","savedPayload":{"position":{"x":18580.839999508036,"y":32118.703980848324},"targetPosition":{"x":18937.849002639094,"y":31844.7613377944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"28bab5eb-0cb5-434a-983c-8f5fb58c0e41","savedPayload":{"position":{"x":18937.849002639094,"y":31844.7613377944},"targetPosition":{"x":19116.35350420462,"y":31707.790016267438},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6a427672-e76c-4793-b2a8-8f9034bb323e","savedPayload":{"position":{"x":19116.35350420462,"y":31707.790016267438},"targetPosition":{"x":19202.457276486766,"y":31499.9171214524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9ff22337-d0b7-4d9e-8896-bd046802b961","savedPayload":{"position":{"x":19202.457276486766,"y":31499.9171214524},"targetPosition":{"x":19245.509162627837,"y":31395.98067404488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"793d2f4a-3315-4c18-abad-f4d74c83ac4f","savedPayload":{"position":{"x":19437.359265532272,"y":31244.738247946414},"targetPosition":{"x":19073.301618063546,"y":30980.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Kucoin","config":"{\n \"codeName\": \"kucoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[{"type":"Asset","name":"BTC","config":"{\n \"codeName\": \"BTC\"\n}","project":"Superalgos","id":"5ce98b3f-3ec1-412b-acde-186f9a92a5e0","savedPayload":{"position":{"x":19829.745532847643,"y":31102.003746373946},"targetPosition":{"x":19648.71103240014,"y":31235.613288127985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Tether","config":"{\n \"codeName\": \"USDT\"\n}","project":"Superalgos","id":"b866944c-c23e-4718-9300-1b803b54be5f","savedPayload":{"position":{"x":19854.937539970884,"y":31325.588993599926},"targetPosition":{"x":19648.71103240014,"y":31235.613288127985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"747af60f-c8b9-4377-aa6c-172d4137ea23","savedPayload":{"position":{"x":19648.71103240014,"y":31235.613288127985},"targetPosition":{"x":19425.12578517416,"y":31260.80529525123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[{"type":"Market","name":"BTC/USDT","config":"{\n \"codeName\": \"BTC/USDT\"\n}","project":"Superalgos","baseAsset":{"type":"Market Base Asset","name":"BTC","project":"Superalgos","id":"69a1674d-6260-4c65-95d5-fbba592737f9","savedPayload":{"position":{"x":20573.7479911967,"y":31889.01513670337},"targetPosition":{"x":20128.77411939539,"y":31821.94611692409},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"BTC","id":"5ce98b3f-3ec1-412b-acde-186f9a92a5e0"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","project":"Superalgos","id":"135835f5-a9be-4415-aeef-03500f24b4d1","savedPayload":{"position":{"x":20293.17758036027,"y":32240.83930381398},"targetPosition":{"x":20128.77411939539,"y":31821.94611692409},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"b866944c-c23e-4718-9300-1b803b54be5f"}}},"id":"4b37ca8d-e4b2-49f4-b326-7bdf785ad482","savedPayload":{"position":{"x":20128.77411939539,"y":31821.94611692409},"targetPosition":{"x":19776.949952284776,"y":31541.37570608766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c75f7d97-9dc2-4d3e-89eb-f8a3d5f16368","savedPayload":{"position":{"x":19776.949952284776,"y":31541.37570608766},"targetPosition":{"x":19425.12578517416,"y":31260.80529525123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[{"type":"Exchange Account Asset","name":"BTC","project":"Superalgos","id":"0fa01ebd-8837-482f-bffc-7bee682c9600","savedPayload":{"position":{"x":19802.74984518381,"y":31867.193372009642},"targetPosition":{"x":19596.523337613067,"y":31777.2176665377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"BTC","id":"5ce98b3f-3ec1-412b-acde-186f9a92a5e0"}}},{"type":"Exchange Account Asset","name":"Tether","project":"Superalgos","id":"27131d22-9a2f-48e0-b22e-a12e23a9cb3a","savedPayload":{"position":{"x":19621.715344736313,"y":32000.80291376368},"targetPosition":{"x":19596.523337613067,"y":31777.2176665377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"b866944c-c23e-4718-9300-1b803b54be5f"}}}],"id":"0093e946-03f4-4aec-942d-c76aed12ab1a","savedPayload":{"position":{"x":19596.523337613067,"y":31777.2176665377},"targetPosition":{"x":19462.91379585903,"y":31596.1831660902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2a4235ac-e5ea-4484-bccd-f06c8a7275ec","savedPayload":{"position":{"x":19282.962384915147,"y":32008.636181231686},"targetPosition":{"x":19372.938090387088,"y":31802.409673660943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"737dec0a-23ab-4044-94ba-95c8bc50c0eb","savedPayload":{"position":{"x":19372.938090387088,"y":31802.409673660943},"targetPosition":{"x":19462.91379585903,"y":31596.1831660902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"457b045e-dae5-4f53-a8b7-cab4757e5286","savedPayload":{"position":{"x":19462.91379585903,"y":31596.1831660902},"targetPosition":{"x":19437.721788735784,"y":31372.59791886422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6eff12db-8e7c-402a-9e06-ae2618f506a0","savedPayload":{"position":{"x":19437.721788735784,"y":31372.59791886422},"targetPosition":{"x":19425.12578517416,"y":31260.80529525123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"644efe9c-597a-4ddf-9e28-b33fb3b62d3e","savedPayload":{"position":{"x":19337.80498159516,"y":31344.292531883526},"targetPosition":{"x":19073.301618063546,"y":30980.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Luno","config":"{\n \"codeName\": \"luno\",\n \"API\": [\n {\n \"method\": \"fetch_ohlcv\",\n \"useFetchTradesForFetchOHLCVs\": true,\n \"maxTradesPerFetch\": 100,\n \"limit\": 200,\n \"rateLimit\": 1100\n }\n ]\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"EUR\"} \n}","project":"Superalgos","assets":[{"type":"Asset","name":"Bitcoin","config":"{\n \"codeName\": \"BTC\"\n}","project":"Superalgos","id":"ac9cd2e1-566d-4bf9-83b2-a60403442302","savedPayload":{"position":{"x":19965.019021441563,"y":30875.45713652808},"targetPosition":{"x":19752.8869870856,"y":31087.589170884043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"ZAR","config":"{\n \"codeName\": \"ZAR\"\n}","project":"Superalgos","id":"0aefdb7b-972c-4c98-90cd-23317f2bd51f","savedPayload":{"position":{"x":20042.66473497232,"y":31165.2348844148},"targetPosition":{"x":19752.8869870856,"y":31087.589170884043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"ac60a01f-74b1-41f2-93f4-5b7d5cc2b2ad","savedPayload":{"position":{"x":19752.8869870856,"y":31087.589170884043},"targetPosition":{"x":19463.10923919888,"y":31165.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"E"}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","project":"Superalgos","markets":[{"type":"Market","name":"BTC/ZAR","config":"{\n \"codeName\": \"BTC/ZAR\"\n}","project":"Superalgos","baseAsset":{"type":"Market Base Asset","name":"Bitcoin","project":"Superalgos","id":"29b5f490-2015-4039-8123-f29aa76d2546","savedPayload":{"position":{"x":20272.502229356265,"y":31542.880597945557},"targetPosition":{"x":19982.724481469544,"y":31465.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"ac9cd2e1-566d-4bf9-83b2-a60403442302"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"ZAR","project":"Superalgos","id":"6dffe17d-bbd1-424e-afba-9717386ae271","savedPayload":{"position":{"x":20194.856515825508,"y":31677.366918770764},"targetPosition":{"x":19982.724481469544,"y":31465.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"ZAR","id":"0aefdb7b-972c-4c98-90cd-23317f2bd51f"}}},"id":"06796c17-169b-4815-969c-d33baca2b0ef","savedPayload":{"position":{"x":19982.724481469544,"y":31465.2348844148},"targetPosition":{"x":19722.91686033421,"y":31315.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e13d8073-26f6-4ae4-b612-aea2ec269fed","savedPayload":{"position":{"x":19722.91686033421,"y":31315.2348844148},"targetPosition":{"x":19463.10923919888,"y":31165.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[{"type":"Exchange Account Asset","name":"Bitcoin","project":"Superalgos","id":"8d70bbca-596c-4a0e-af81-dd089f823a11","savedPayload":{"position":{"x":20120.310448503078,"y":32034.568128074963},"targetPosition":{"x":19830.532700616357,"y":31956.922414544206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"ac9cd2e1-566d-4bf9-83b2-a60403442302"}}},{"type":"Exchange Account Asset","name":"ZAR","project":"Superalgos","id":"fc0a7029-992c-4954-9695-fd98922b298a","savedPayload":{"position":{"x":19908.178414147114,"y":32246.700162430927},"targetPosition":{"x":19830.532700616357,"y":31956.922414544206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"ZAR","id":"0aefdb7b-972c-4c98-90cd-23317f2bd51f"}}}],"id":"9aa9be52-1db3-4e4e-ba0b-428d3fbd69a6","savedPayload":{"position":{"x":19830.532700616357,"y":31956.922414544206},"targetPosition":{"x":19618.400666260393,"y":31744.790380188242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"Key for Lighting Strike","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"13c27632-3079-49c6-a864-85208ce741eb","savedPayload":{"position":{"x":19463.10923919888,"y":32324.345875961684},"targetPosition":{"x":19540.754952729636,"y":32034.568128074963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"d58f597c-56f6-4900-b153-830c39546a14","savedPayload":{"position":{"x":19540.754952729636,"y":32034.568128074963},"targetPosition":{"x":19618.400666260393,"y":31744.790380188242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c70e6430-bccd-46c9-aa15-b91e07c4bec0","savedPayload":{"position":{"x":19618.400666260393,"y":31744.790380188242},"targetPosition":{"x":19540.754952729636,"y":31455.01263230152},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a5039403-0e35-4949-b690-3f8cb7e56add","savedPayload":{"position":{"x":19540.754952729636,"y":31455.01263230152},"targetPosition":{"x":19463.10923919888,"y":31165.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d4a66325-9be9-4855-8cf4-89a5795e30b6","savedPayload":{"position":{"x":19212.359265532272,"y":31408.21031674762},"targetPosition":{"x":19073.301618063546,"y":30980.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"e3879d63-6f8f-41a3-8ac3-0349c4361722","savedPayload":{"position":{"x":19073.301618063546,"y":30980.2348844148},"targetPosition":{"x":18773.301618063546,"y":30980.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchanges","name":"Untested","project":"Superalgos","exchanges":[{"type":"Crypto Exchange","name":"ACX","config":"{ \n\"codeName\": \"acx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"ebcb522b-ae58-46d2-9d82-a9b0beec3976","savedPayload":{"position":{"x":17935.64382962515,"y":31014.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b2649588-27c6-442c-b179-f6d8817188b3","savedPayload":{"position":{"x":17954.64382962515,"y":31004.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9b2051d5-7ee7-4e94-8c8d-306674889339","savedPayload":{"position":{"x":17838.64382962515,"y":30896.23747069523},"targetPosition":{"x":17766.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"1d5461aa-d26c-4df5-b383-8c83e311b8ca","savedPayload":{"position":{"x":17643.64382962515,"y":30952.23747069523},"targetPosition":{"x":17698.64382962515,"y":30973.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c6372400-de52-4b63-97f3-f748aac9c63f","savedPayload":{"position":{"x":17698.64382962515,"y":30973.23747069523},"targetPosition":{"x":17766.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c948314e-2247-4234-b83d-cc2c1b152665","savedPayload":{"position":{"x":17766.64382962515,"y":30905.23747069523},"targetPosition":{"x":17837.64382962515,"y":30978.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04ccb742-ef1b-4138-b38d-a6b0d92f2f8e","savedPayload":{"position":{"x":17837.64382962515,"y":30978.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e9c21b2d-de21-43b5-8b48-51367a8c981c","savedPayload":{"position":{"x":19198.820555898394,"y":30544.014225056424},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"AOFEX","config":"{ \n\"codeName\": \"aofex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"623ef91b-04c0-4bd5-ac0d-b32c809be3ea","savedPayload":{"position":{"x":17973.64382962515,"y":30923.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"9d0b5855-59a6-4dda-9a4b-33d7a44d582e","savedPayload":{"position":{"x":17901.64382962515,"y":30994.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"e898e569-0dd3-4a22-baa5-caaace66d4ed","savedPayload":{"position":{"x":18062.64382962515,"y":30838.23747069523},"targetPosition":{"x":17982.64382962515,"y":30899.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"64a69d3d-15ff-41c3-a926-5ec93c932ab1","savedPayload":{"position":{"x":17822.64382962515,"y":31052.23747069523},"targetPosition":{"x":17893.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae2785c5-75a1-44fc-a71b-363d88cb5dac","savedPayload":{"position":{"x":17893.64382962515,"y":30981.23747069523},"targetPosition":{"x":17982.64382962515,"y":30899.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07ea69aa-7357-43b1-b548-a4c4fab70c55","savedPayload":{"position":{"x":17982.64382962515,"y":30899.23747069523},"targetPosition":{"x":17971.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2146b410-fc4e-452d-ae57-5d58c9a29706","savedPayload":{"position":{"x":17971.64382962515,"y":30962.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c2e9bb45-97c7-47e8-b13c-56946e673c53","savedPayload":{"position":{"x":19312.897626679583,"y":30642.4829111261},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bequant","config":"{ \n\"codeName\": \"bequant\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"b23c8adf-c880-48fd-b4af-4b4be86cf0e5","savedPayload":{"position":{"x":18059.64382962515,"y":31101.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"523bd94f-68f9-457e-91fd-806c1b95e98d","savedPayload":{"position":{"x":18006.64382962515,"y":31117.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9d914bb1-a68b-41ae-8666-0fcc755358c1","savedPayload":{"position":{"x":17859.64382962515,"y":30964.23747069523},"targetPosition":{"x":17936.64382962515,"y":31059.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"15d903b5-113c-465e-8120-7c46a9a85565","savedPayload":{"position":{"x":17976.64382962515,"y":31146.23747069523},"targetPosition":{"x":17943.64382962515,"y":31134.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2d1c0bc3-abe2-4340-91bf-2eef5b98a2f0","savedPayload":{"position":{"x":17943.64382962515,"y":31134.23747069523},"targetPosition":{"x":17936.64382962515,"y":31059.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5a50d459-914c-4bfc-91e8-f15c383280eb","savedPayload":{"position":{"x":17936.64382962515,"y":31059.23747069523},"targetPosition":{"x":17931.64382962515,"y":31071.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b2f2b69f-3bef-4edc-9950-5261d9f36382","savedPayload":{"position":{"x":17931.64382962515,"y":31071.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8e928d3e-a2c2-4341-aa2f-b753551c9479","savedPayload":{"position":{"x":19413.733766854555,"y":30754.47279035149},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bibox","config":"{ \n\"codeName\": \"bibox\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"13c1f22c-9a35-4d3f-b000-c96984fd6a2b","savedPayload":{"position":{"x":17995.64382962515,"y":31047.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3c6df49d-70c3-468a-bdd8-6768ce6d3a9d","savedPayload":{"position":{"x":17916.64382962515,"y":31018.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5a54ef39-8fba-4a5f-ac24-5f27e763e28f","savedPayload":{"position":{"x":18050.64382962515,"y":31174.23747069523},"targetPosition":{"x":17956.64382962515,"y":31128.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"08df1f45-dab0-463a-8758-359973f2620d","savedPayload":{"position":{"x":17899.64382962515,"y":31242.23747069523},"targetPosition":{"x":17959.64382962515,"y":31180.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"105b52c2-90ad-4fa1-b690-d8fab14209b4","savedPayload":{"position":{"x":17959.64382962515,"y":31180.23747069523},"targetPosition":{"x":17956.64382962515,"y":31128.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"68c1ef42-1b7b-4cc6-981f-80b20dabcd89","savedPayload":{"position":{"x":17956.64382962515,"y":31128.23747069523},"targetPosition":{"x":17907.64382962515,"y":31057.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fc35e5d0-ea61-42b6-979a-859f19c5ac6c","savedPayload":{"position":{"x":17907.64382962515,"y":31057.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e5f9ee4d-77a3-48ae-b354-b2f6a97d5e47","savedPayload":{"position":{"x":19499.738730256155,"y":30878.217715437706},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BigONE","config":"{ \n\"codeName\": \"bigone\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"3f289513-c1c8-457c-b65a-8cf62b5f5eb5","savedPayload":{"position":{"x":17778.64382962515,"y":31071.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8b365e73-1cee-496a-921f-121cb628a130","savedPayload":{"position":{"x":17798.64382962515,"y":31121.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"447a4f6f-cfa0-443e-9339-d7c1153ada31","savedPayload":{"position":{"x":17921.64382962515,"y":31046.23747069523},"targetPosition":{"x":17891.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0d234c53-c121-471e-bce1-a258c13cd148","savedPayload":{"position":{"x":17848.64382962515,"y":31175.23747069523},"targetPosition":{"x":17944.64382962515,"y":31086.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"816e1b6a-d790-4abd-9ae1-e203fa737af2","savedPayload":{"position":{"x":17944.64382962515,"y":31086.23747069523},"targetPosition":{"x":17891.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"561a57f7-8c22-4e50-840d-d983ed6bb864","savedPayload":{"position":{"x":17891.64382962515,"y":31102.23747069523},"targetPosition":{"x":17813.64382962515,"y":31064.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e243bd5d-ade7-46c8-876b-6ad8c6eb5e0a","savedPayload":{"position":{"x":17813.64382962515,"y":31064.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fb9ee540-bf12-4dda-bf87-cb6b58fce649","savedPayload":{"position":{"x":19569.556167234667,"y":31011.7661549945},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Binance Jersey","config":"{ \n\"codeName\": \"binanceje\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"0b979ea9-7a2d-4744-9517-2dfa632dfafc","savedPayload":{"position":{"x":17852.64382962515,"y":30989.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b9a4497d-20f1-4c61-9a79-444e0fe0ddf4","savedPayload":{"position":{"x":17924.64382962515,"y":30952.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1b24d8a4-ec70-4501-838c-7633f6f7288e","savedPayload":{"position":{"x":17882.64382962515,"y":31051.23747069523},"targetPosition":{"x":17942.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"627472e3-638f-4d68-a917-d0844d6a227b","savedPayload":{"position":{"x":17991.64382962515,"y":31190.23747069523},"targetPosition":{"x":17986.64382962515,"y":31110.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"b8ce75fb-93c9-4ca2-9b2b-9f8ed8af34f3","savedPayload":{"position":{"x":17986.64382962515,"y":31110.23747069523},"targetPosition":{"x":17942.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"08b226e4-14ee-4ad3-8d96-efe77cc38489","savedPayload":{"position":{"x":17942.64382962515,"y":31066.23747069523},"targetPosition":{"x":17949.64382962515,"y":31009.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2771eb11-bc72-4273-9e1b-9ac5410c6354","savedPayload":{"position":{"x":17949.64382962515,"y":31009.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2782350a-84a2-40ec-87c6-3c8043376a18","savedPayload":{"position":{"x":19622.085015102028,"y":31153.011970352094},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"bitbank","config":"{ \n\"codeName\": \"bitbank\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"eb6b6842-9bf7-450e-baa3-7a87541a1cf6","savedPayload":{"position":{"x":17955.64382962515,"y":31107.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"6353ff56-759f-457d-81f3-fdb8ae5b3e83","savedPayload":{"position":{"x":17942.64382962515,"y":31183.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a2b297c7-f33b-48b9-98fa-d339c7b0ff67","savedPayload":{"position":{"x":17999.64382962515,"y":31016.23747069523},"targetPosition":{"x":17945.64382962515,"y":31116.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"9ce6c354-b294-4062-b763-421e5edb69de","savedPayload":{"position":{"x":17883.64382962515,"y":31186.23747069523},"targetPosition":{"x":17845.64382962515,"y":31202.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"547dbf6c-a292-46c0-a628-62856858121e","savedPayload":{"position":{"x":17845.64382962515,"y":31202.23747069523},"targetPosition":{"x":17945.64382962515,"y":31116.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"097055b3-37e5-4100-a24b-91e404fe49a6","savedPayload":{"position":{"x":17945.64382962515,"y":31116.23747069523},"targetPosition":{"x":17897.64382962515,"y":31142.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51aed4ce-0303-431e-a15f-e6f133f7a2cf","savedPayload":{"position":{"x":17897.64382962515,"y":31142.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c9a96a7-ed12-4b3e-bb51-306a8da131f5","savedPayload":{"position":{"x":19656.496862548152,"y":31299.727630626137},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitBay","config":"{ \n\"codeName\": \"bitbay\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"83b4e523-72a7-41ce-9363-fe0c799dcac1","savedPayload":{"position":{"x":17861.64382962515,"y":30965.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"966698f7-8a28-42d7-bb80-f7cd0601e44f","savedPayload":{"position":{"x":17823.64382962515,"y":31026.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"554829eb-3d40-4b95-a1cd-9de943763e2c","savedPayload":{"position":{"x":17914.64382962515,"y":30924.23747069523},"targetPosition":{"x":17876.64382962515,"y":30921.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2f534989-7ca7-4c3d-b14a-3b1071543c8c","savedPayload":{"position":{"x":17845.64382962515,"y":30853.23747069523},"targetPosition":{"x":17832.64382962515,"y":30821.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2f6b76b4-51d4-434f-8aa1-ed86b0e26bd2","savedPayload":{"position":{"x":17832.64382962515,"y":30821.23747069523},"targetPosition":{"x":17876.64382962515,"y":30921.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cbcc3ab6-9758-4273-99d2-9d05fdd392b5","savedPayload":{"position":{"x":17876.64382962515,"y":30921.23747069523},"targetPosition":{"x":17805.64382962515,"y":31015.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dada6c12-7c41-4ab8-9922-908233829f58","savedPayload":{"position":{"x":17805.64382962515,"y":31015.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8778eee5-97a2-4f9d-bd25-cd5a64ec6663","savedPayload":{"position":{"x":19672.249014182176,"y":31449.599342210422},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitforex","config":"{ \n\"codeName\": \"bitforex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"698e5e38-ad73-4cb6-b7f6-2b69913faff9","savedPayload":{"position":{"x":17897.64382962515,"y":30956.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"f0142bd4-1b63-4d12-a4b7-e150d0da197f","savedPayload":{"position":{"x":18020.64382962515,"y":31021.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"7164fb28-405b-461a-a7d4-59d438ecf1ce","savedPayload":{"position":{"x":17821.64382962515,"y":30984.23747069523},"targetPosition":{"x":17901.64382962515,"y":30907.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"ce8a00c9-f090-4ec2-84ed-c6661f8bf7b0","savedPayload":{"position":{"x":17825.64382962515,"y":30965.23747069523},"targetPosition":{"x":17818.64382962515,"y":30913.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"579cd74b-98f6-4000-990b-25ae1456c94b","savedPayload":{"position":{"x":17818.64382962515,"y":30913.23747069523},"targetPosition":{"x":17901.64382962515,"y":30907.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"dbac6eef-25d2-4cda-86a6-59ce8a9a26bc","savedPayload":{"position":{"x":17901.64382962515,"y":30907.23747069523},"targetPosition":{"x":17909.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1da9dd3-22ec-4536-bb5a-4d0bb8a56b81","savedPayload":{"position":{"x":17909.64382962515,"y":30970.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"499a5a3b-7871-4c95-9b2e-d58d4d9e2392","savedPayload":{"position":{"x":19669.09304916295,"y":31600.26353868424},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"bitkk","config":"{ \n\"codeName\": \"bitkk\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"efbb916c-780b-447f-a4c2-df68570d4ee1","savedPayload":{"position":{"x":17931.64382962515,"y":30937.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0d829516-81d9-46a5-9861-7d94cc89455d","savedPayload":{"position":{"x":17951.64382962515,"y":30912.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"fc174aa3-c485-4b9b-ba19-444b0189ccb1","savedPayload":{"position":{"x":17788.64382962515,"y":30980.23747069523},"targetPosition":{"x":17834.64382962515,"y":30983.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"15921d8a-4b45-481c-9165-79969ed3fd27","savedPayload":{"position":{"x":17796.64382962515,"y":30936.23747069523},"targetPosition":{"x":17891.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"927d5c8a-85df-48bb-b097-c36abb76ca0e","savedPayload":{"position":{"x":17891.64382962515,"y":30922.23747069523},"targetPosition":{"x":17834.64382962515,"y":30983.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"43d218c2-e633-47d5-8dd8-60bc7f7c0b9e","savedPayload":{"position":{"x":17834.64382962515,"y":30983.23747069523},"targetPosition":{"x":17853.64382962515,"y":30925.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2d310d61-cbc7-4306-af02-be3888939545","savedPayload":{"position":{"x":17853.64382962515,"y":30925.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ded39740-3c93-4fda-bb9c-6ac75d2109f4","savedPayload":{"position":{"x":19647.078738944114,"y":31749.344155666775},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMart","config":"{ \n\"codeName\": \"bitmart\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"10374855-6b4a-460b-9c95-70072ac00315","savedPayload":{"position":{"x":17907.64382962515,"y":30901.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3aded60c-4061-48ff-ad33-212c965b5c43","savedPayload":{"position":{"x":17829.64382962515,"y":30925.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1789a3ca-d948-497d-8d1b-1eefd25d16a3","savedPayload":{"position":{"x":17886.64382962515,"y":30937.23747069523},"targetPosition":{"x":17895.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"038170bc-0ca7-4a92-8219-61b7bc8431b0","savedPayload":{"position":{"x":17893.64382962515,"y":31034.23747069523},"targetPosition":{"x":17835.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"55f79ede-ef02-405f-92bd-11902ab3cc7a","savedPayload":{"position":{"x":17835.64382962515,"y":30962.23747069523},"targetPosition":{"x":17895.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8185c660-4af3-4a62-bfa9-8922861101b5","savedPayload":{"position":{"x":17895.64382962515,"y":30988.23747069523},"targetPosition":{"x":17819.64382962515,"y":30909.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"546d48c3-df31-495c-b3b4-cb35109c5542","savedPayload":{"position":{"x":17819.64382962515,"y":30909.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c7ed52a7-895b-46f1-a745-35954d8bcfc6","savedPayload":{"position":{"x":19606.553262348523,"y":31894.49010277176},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMax","config":"{ \n\"codeName\": \"bitmax\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"8a042d0d-7a7a-4a76-889e-42d8642404f4","savedPayload":{"position":{"x":17944.64382962515,"y":31046.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0c4fcc48-51e6-4ff2-925f-405cda6d1122","savedPayload":{"position":{"x":17898.64382962515,"y":31024.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"ef9d5381-d9e3-47f5-9069-6fc14eda0fa3","savedPayload":{"position":{"x":17879.64382962515,"y":31096.23747069523},"targetPosition":{"x":17977.64382962515,"y":31041.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c66fe606-9705-45b0-a196-7ea3efb0221e","savedPayload":{"position":{"x":17982.64382962515,"y":31053.23747069523},"targetPosition":{"x":17943.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"80a5f68e-776a-44de-8797-d2eb806c306e","savedPayload":{"position":{"x":17943.64382962515,"y":31083.23747069523},"targetPosition":{"x":17977.64382962515,"y":31041.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"011fcf1c-1c94-4c36-a246-d6c400aa39dc","savedPayload":{"position":{"x":17977.64382962515,"y":31041.23747069523},"targetPosition":{"x":17942.64382962515,"y":31103.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4a87b8c5-e009-427f-afb7-21afe5594b59","savedPayload":{"position":{"x":17942.64382962515,"y":31103.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fc6a9048-ab8c-48f9-91ae-6c95c28714b0","savedPayload":{"position":{"x":19548.15573035084,"y":32033.412341707375},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMEX","config":"{ \n\"codeName\": \"bitmex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f7636e2b-354a-4217-894b-5e26eddc0c2a","savedPayload":{"position":{"x":17894.64382962515,"y":30934.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"6eb2ddd1-6d06-456c-b4e0-7df56ba182e6","savedPayload":{"position":{"x":17823.64382962515,"y":30834.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"b4a4b8fe-d923-4eb0-a066-171b83d1540d","savedPayload":{"position":{"x":17902.64382962515,"y":31064.23747069523},"targetPosition":{"x":17815.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"918ed585-ce46-4d51-a07a-9beee51f70eb","savedPayload":{"position":{"x":17711.64382962515,"y":31036.23747069523},"targetPosition":{"x":17805.64382962515,"y":31078.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"9efef4d8-5be3-4d17-a645-6edffd9535cf","savedPayload":{"position":{"x":17805.64382962515,"y":31078.23747069523},"targetPosition":{"x":17815.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6ad31a6e-f27b-45c3-9996-a41fb39aa154","savedPayload":{"position":{"x":17815.64382962515,"y":30988.23747069523},"targetPosition":{"x":17844.64382962515,"y":30896.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"82887393-cb1c-4b01-8581-4b3dabc86584","savedPayload":{"position":{"x":17844.64382962515,"y":30896.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1e2f1dd0-ebf1-4485-83d8-7723a9e3e714","savedPayload":{"position":{"x":19472.807106915665,"y":32163.919985777477},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bit-Z","config":"{ \n\"codeName\": \"bitz\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"0a22e02b-7d2e-4955-9cfc-ed7d95f0c9a0","savedPayload":{"position":{"x":17751.64382962515,"y":31083.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"298b45af-b73d-4cd5-848a-97de7b857569","savedPayload":{"position":{"x":17944.64382962515,"y":31083.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6ede807b-b1ab-42b5-bfd7-3b12a942447e","savedPayload":{"position":{"x":17871.64382962515,"y":31049.23747069523},"targetPosition":{"x":17772.64382962515,"y":31098.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"dc172858-3241-4487-950a-e5cae03ac376","savedPayload":{"position":{"x":17751.64382962515,"y":31081.23747069523},"targetPosition":{"x":17753.64382962515,"y":31028.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"19c07cee-1fdf-4e02-ac9f-d110b64ee033","savedPayload":{"position":{"x":17753.64382962515,"y":31028.23747069523},"targetPosition":{"x":17772.64382962515,"y":31098.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b4ef5048-ac4c-410e-bd6d-3338e33ab108","savedPayload":{"position":{"x":17772.64382962515,"y":31098.23747069523},"targetPosition":{"x":17788.64382962515,"y":31134.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e7e96c41-c839-4eec-9bcf-1c60d60fa3f5","savedPayload":{"position":{"x":17788.64382962515,"y":31134.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6cc10926-fe41-43be-887b-fa8aba1c7377","savedPayload":{"position":{"x":19381.695684845654,"y":32283.954851473587},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BTC-Alpha","config":"{ \n\"codeName\": \"btcalpha\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"263e3b9c-8fdd-4376-b53b-87f32d0f5898","savedPayload":{"position":{"x":17904.64382962515,"y":30922.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"804603e1-3e0f-4219-a9b7-ee27810d4f07","savedPayload":{"position":{"x":17829.64382962515,"y":30977.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"83b25fff-e448-483f-9bee-cb85fa592c6e","savedPayload":{"position":{"x":17734.64382962515,"y":30862.23747069523},"targetPosition":{"x":17829.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"efcfa3ca-0f82-4eb7-9b04-ed5eb4e1c3cf","savedPayload":{"position":{"x":17799.64382962515,"y":30864.23747069523},"targetPosition":{"x":17837.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"9ca8d728-ee11-4905-9a3a-5ca4ed50f3df","savedPayload":{"position":{"x":17837.64382962515,"y":30919.23747069523},"targetPosition":{"x":17829.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2cfde277-afa6-4ad3-bb5b-8a32b89e2037","savedPayload":{"position":{"x":17829.64382962515,"y":30960.23747069523},"targetPosition":{"x":17903.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"297a0ea2-f6d7-47fd-9fb7-0d99d00a87d8","savedPayload":{"position":{"x":17903.64382962515,"y":30969.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"30e5485f-213b-435b-a670-07b76cfe5cae","savedPayload":{"position":{"x":19276.258345694176,"y":32391.623917258334},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BTC Markets","config":"{ \n\"codeName\": \"btcmarkets\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"fcb3b880-0852-4d93-8714-67373f9dca16","savedPayload":{"position":{"x":17911.64382962515,"y":31036.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"953d8eff-0b2e-4b07-8635-393fddae0c9d","savedPayload":{"position":{"x":18025.64382962515,"y":31127.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c08873f6-9120-4764-8b06-c8110468b423","savedPayload":{"position":{"x":17935.64382962515,"y":30927.23747069523},"targetPosition":{"x":18027.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"beaa2557-4976-4e53-8a24-7ea00fc3afd5","savedPayload":{"position":{"x":18054.64382962515,"y":30851.23747069523},"targetPosition":{"x":18125.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"445158a2-91b4-4ad8-8380-036cbba6ad7e","savedPayload":{"position":{"x":18125.64382962515,"y":30951.23747069523},"targetPosition":{"x":18027.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cd00e08c-a26d-4b11-93a3-b0e8f35bec4b","savedPayload":{"position":{"x":18027.64382962515,"y":31003.23747069523},"targetPosition":{"x":18016.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"35cb55c1-ceb3-4093-98af-8a1c2411fe0f","savedPayload":{"position":{"x":18016.64382962515,"y":31075.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ac2fda42-95ca-404a-8dd2-72bff0ff5a0f","savedPayload":{"position":{"x":19158.157899284863,"y":32485.229177645906},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Buda","config":"{ \n\"codeName\": \"buda\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"27f3573d-e1f0-473f-9bfd-f9198e7240a0","savedPayload":{"position":{"x":17945.64382962515,"y":30937.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4ddc0981-4e45-42f3-ae11-f5b136b2bc3d","savedPayload":{"position":{"x":17783.64382962515,"y":31008.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5a325d59-e6a6-4f76-a311-5e67c5f5a8a2","savedPayload":{"position":{"x":17980.64382962515,"y":30843.23747069523},"targetPosition":{"x":17956.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"fb985ab9-7759-4780-a052-8ee9be0b712a","savedPayload":{"position":{"x":17907.64382962515,"y":30968.23747069523},"targetPosition":{"x":17958.64382962515,"y":30884.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fdf7665a-2974-467b-9280-4077a888733f","savedPayload":{"position":{"x":17958.64382962515,"y":30884.23747069523},"targetPosition":{"x":17956.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a3105cfc-f80e-4bcb-b399-6ea9c0f7edf0","savedPayload":{"position":{"x":17956.64382962515,"y":30936.23747069523},"targetPosition":{"x":17872.64382962515,"y":30941.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5d69a76f-e7bc-4538-950e-2e2353eccea3","savedPayload":{"position":{"x":17872.64382962515,"y":30941.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"90fe3d74-662e-4fac-aff3-f41990b61ccf","savedPayload":{"position":{"x":19029.25686020738,"y":32563.29442176292},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BW","config":"{ \n\"codeName\": \"bw\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"457616cd-25f9-4ad3-8c18-6331859dd42e","savedPayload":{"position":{"x":17890.64382962515,"y":31014.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8c1f9aa2-4253-4129-a533-e515644ddb38","savedPayload":{"position":{"x":17909.64382962515,"y":30970.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"24314a5b-85ca-4036-adc6-618120496f1d","savedPayload":{"position":{"x":17773.64382962515,"y":30945.23747069523},"targetPosition":{"x":17860.64382962515,"y":30865.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"f7c593f6-bd7a-41f7-a5e7-b2e1ea9a528f","savedPayload":{"position":{"x":17820.64382962515,"y":30885.23747069523},"targetPosition":{"x":17828.64382962515,"y":30802.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"60dfc799-f863-4895-8d17-568aa2303ef5","savedPayload":{"position":{"x":17828.64382962515,"y":30802.23747069523},"targetPosition":{"x":17860.64382962515,"y":30865.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"223e466d-d750-4e38-91ce-8a59c15242ba","savedPayload":{"position":{"x":17860.64382962515,"y":30865.23747069523},"targetPosition":{"x":17818.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cfff1310-5220-4978-9553-8514be141d14","savedPayload":{"position":{"x":17818.64382962515,"y":30919.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d72db90c-d572-4cbb-8348-e3cc485d8e86","savedPayload":{"position":{"x":18891.588074849722,"y":32624.58851407573},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bybit","config":"{ \n\"codeName\": \"bybit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"18fdf7c8-03c4-4f81-a88e-de97589765e1","savedPayload":{"position":{"x":17803.64382962515,"y":31059.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"a62b2603-ac6f-4b6e-9541-86daf32027b1","savedPayload":{"position":{"x":17847.64382962515,"y":31104.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"66ecff99-7102-4f4a-9ce8-4d55fb22dfbc","savedPayload":{"position":{"x":17851.64382962515,"y":31165.23747069523},"targetPosition":{"x":17916.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"625e127c-0ebb-4f57-af9f-9dfb57b262a1","savedPayload":{"position":{"x":18004.64382962515,"y":31091.23747069523},"targetPosition":{"x":18008.64382962515,"y":31027.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"8174bb53-66b8-4575-b206-74f9b6352a80","savedPayload":{"position":{"x":18008.64382962515,"y":31027.23747069523},"targetPosition":{"x":17916.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ee16357e-abde-4800-b089-f43f4b696a35","savedPayload":{"position":{"x":17916.64382962515,"y":31077.23747069523},"targetPosition":{"x":17944.64382962515,"y":31101.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c9e9473b-aff9-43c8-a6be-5cd30330bee2","savedPayload":{"position":{"x":17944.64382962515,"y":31101.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"516c3831-456b-4d17-b0a0-6a363ba2ddb2","savedPayload":{"position":{"x":18747.322662196333,"y":32668.144810133253},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"ByteTrade","config":"{ \n\"codeName\": \"bytetrade\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e7a1e531-5a9e-466e-b98d-672de39eed3a","savedPayload":{"position":{"x":18088.64382962515,"y":31024.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"edafaba7-fd82-4d9f-b3f7-5d1c01c56599","savedPayload":{"position":{"x":17941.64382962515,"y":30943.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"50fa78b8-3aea-4e43-adcf-1e31820bf97f","savedPayload":{"position":{"x":17886.64382962515,"y":31008.23747069523},"targetPosition":{"x":17858.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"b9c39b04-e86e-4ebb-9aba-39c375f2960c","savedPayload":{"position":{"x":17865.64382962515,"y":30941.23747069523},"targetPosition":{"x":17953.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5965d9cc-1d68-47a7-b838-e6dd81da6ea9","savedPayload":{"position":{"x":17953.64382962515,"y":31023.23747069523},"targetPosition":{"x":17858.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f51a08be-ee3f-4d3b-a75e-d783d63092a7","savedPayload":{"position":{"x":17858.64382962515,"y":30967.23747069523},"targetPosition":{"x":17898.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d395efd0-691b-4a68-a7f1-9bce95b2f687","savedPayload":{"position":{"x":17898.64382962515,"y":30965.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45e2306f-03e8-4d17-a73a-72c11dd14e78","savedPayload":{"position":{"x":18598.73577398473,"y":32693.27640112739},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CEX.IO","config":"{ \n\"codeName\": \"cex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9de19f0a-5824-4e42-af00-484b64421dc3","savedPayload":{"position":{"x":17890.64382962515,"y":31049.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"39db01bc-0cea-422f-b9e9-7d84e3f5446d","savedPayload":{"position":{"x":17918.64382962515,"y":31105.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"93833d3c-42c9-4e4d-bf0f-5b80a90d10c2","savedPayload":{"position":{"x":17978.64382962515,"y":31126.23747069523},"targetPosition":{"x":17953.64382962515,"y":31167.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"42863a52-30f4-4322-9c20-99a45d6dc3d6","savedPayload":{"position":{"x":17884.64382962515,"y":31149.23747069523},"targetPosition":{"x":17895.64382962515,"y":31148.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fcff471d-29be-4176-8ff8-12088361f9fc","savedPayload":{"position":{"x":17895.64382962515,"y":31148.23747069523},"targetPosition":{"x":17953.64382962515,"y":31167.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f7975a18-b3ab-49bc-ae45-eb02c99aff8c","savedPayload":{"position":{"x":17953.64382962515,"y":31167.23747069523},"targetPosition":{"x":17881.64382962515,"y":31096.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ec432123-43fe-4171-8c41-b797d3161edb","savedPayload":{"position":{"x":17881.64382962515,"y":31096.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"346bfc30-e32a-453a-bdc6-0ead48221581","savedPayload":{"position":{"x":18448.170714203516,"y":32699.586946855277},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Coinbase Prime","config":"{ \n\"codeName\": \"coinbaseprime\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"73cabd8d-9308-49ed-b544-44f785ee7d38","savedPayload":{"position":{"x":17867.64382962515,"y":30962.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"31bd1360-f0c5-4d70-876a-b152f7cedfd7","savedPayload":{"position":{"x":17960.64382962515,"y":30864.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9b75fcfa-fe75-48a8-9d28-2ff19c58c041","savedPayload":{"position":{"x":17792.64382962515,"y":30841.23747069523},"targetPosition":{"x":17809.64382962515,"y":30934.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c900b14a-c728-45af-90f8-29b3e5f29f46","savedPayload":{"position":{"x":17801.64382962515,"y":30986.23747069523},"targetPosition":{"x":17793.64382962515,"y":31006.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"eaf72df3-b66f-4b83-83f9-91e22ec0c300","savedPayload":{"position":{"x":17793.64382962515,"y":31006.23747069523},"targetPosition":{"x":17809.64382962515,"y":30934.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9da95675-2071-41bf-b5ac-4f2af602994f","savedPayload":{"position":{"x":17809.64382962515,"y":30934.23747069523},"targetPosition":{"x":17862.64382962515,"y":31021.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4fc49ad4-57cc-43b0-b14b-15f26af994aa","savedPayload":{"position":{"x":17862.64382962515,"y":31021.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5a8281db-6ace-4186-8cfb-cd249c4af48b","savedPayload":{"position":{"x":18298.001983788654,"y":32686.97692624105},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CoinEx","config":"{ \n\"codeName\": \"coinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"af78f796-60e5-4794-87b8-772c7bc74be1","savedPayload":{"position":{"x":18043.64382962515,"y":31069.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d351e6d9-36eb-4d0e-aca5-94429bbb23a3","savedPayload":{"position":{"x":18094.64382962515,"y":31090.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"438f74c6-15e0-4553-af2a-febd5290c269","savedPayload":{"position":{"x":17908.64382962515,"y":31088.23747069523},"targetPosition":{"x":17986.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"bfb22430-77c7-41a7-8083-771f7d7f3634","savedPayload":{"position":{"x":17927.64382962515,"y":30953.23747069523},"targetPosition":{"x":17947.64382962515,"y":30990.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"51daaa12-1c60-4cef-96d8-a445b4b32296","savedPayload":{"position":{"x":17947.64382962515,"y":30990.23747069523},"targetPosition":{"x":17986.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"726b8c33-9873-4be1-b9ef-d6b4483f23b1","savedPayload":{"position":{"x":17986.64382962515,"y":31075.23747069523},"targetPosition":{"x":17919.64382962515,"y":31016.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"30469514-b983-4f6f-9d74-6d6ceef25eb6","savedPayload":{"position":{"x":17919.64382962515,"y":31016.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"62ad0961-6bdf-4a4a-a340-610816742d0a","savedPayload":{"position":{"x":18150.597833325228,"y":32655.64520684265},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"COSS","config":"{ \n\"codeName\": \"coss\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e6315232-c6b1-4e25-aade-7bc7ba9ba6ac","savedPayload":{"position":{"x":17787.64382962515,"y":30984.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b1e8451f-09a2-47b0-add3-cf9c35c487bb","savedPayload":{"position":{"x":17829.64382962515,"y":31095.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d1c9b795-0434-4ce1-9cb7-cc61fac7396d","savedPayload":{"position":{"x":17950.64382962515,"y":31149.23747069523},"targetPosition":{"x":17882.64382962515,"y":31131.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"22be64f9-4b08-4ac3-ae89-6726743a7d5a","savedPayload":{"position":{"x":17890.64382962515,"y":31165.23747069523},"targetPosition":{"x":17956.64382962515,"y":31156.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c7462500-ba74-4bf3-ad81-35fa232bede3","savedPayload":{"position":{"x":17956.64382962515,"y":31156.23747069523},"targetPosition":{"x":17882.64382962515,"y":31131.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5cd41ced-981a-4075-af43-3a0497eb0fcb","savedPayload":{"position":{"x":17882.64382962515,"y":31131.23747069523},"targetPosition":{"x":17856.64382962515,"y":31148.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b5937899-c6ee-4d7a-b259-1ee23d721f60","savedPayload":{"position":{"x":17856.64382962515,"y":31148.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"695029de-7f61-45bb-aa4c-c6d51e6369ed","savedPayload":{"position":{"x":18008.282914321022,"y":32606.085908591664},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CREX24","config":"{ \n\"codeName\": \"crex24\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c5e12f4a-fb26-40d3-9e70-751b55018e74","savedPayload":{"position":{"x":17910.64382962515,"y":31024.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"00cb629e-bad4-4c6e-8abb-499cad3992f4","savedPayload":{"position":{"x":17938.64382962515,"y":31054.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"4909d182-e0d5-49a9-8ad2-a553c8aaaf88","savedPayload":{"position":{"x":17912.64382962515,"y":31301.23747069523},"targetPosition":{"x":17920.64382962515,"y":31249.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"075eb2a2-299b-4a0f-9f6d-76c385521dc4","savedPayload":{"position":{"x":17800.64382962515,"y":31332.23747069523},"targetPosition":{"x":17883.64382962515,"y":31289.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"e062ef2e-b252-4a66-8f58-d9aa8031f526","savedPayload":{"position":{"x":17883.64382962515,"y":31289.23747069523},"targetPosition":{"x":17920.64382962515,"y":31249.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8e75be98-f874-486d-b749-536e364934dc","savedPayload":{"position":{"x":17920.64382962515,"y":31249.23747069523},"targetPosition":{"x":17845.64382962515,"y":31164.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"052f73cd-7ed7-4537-8b01-840b5b892fea","savedPayload":{"position":{"x":17845.64382962515,"y":31164.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07a7ec7c-273e-4675-8d8d-21ab8514a1f0","savedPayload":{"position":{"x":17873.301618063546,"y":32539.08061122679},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Deribit","config":"{ \n\"codeName\": \"deribit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f0b2354b-89e3-4eca-b051-664a3b8283f6","savedPayload":{"position":{"x":17862.64382962515,"y":30844.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4ae1f824-82a8-4796-a2d5-3d2358d8089f","savedPayload":{"position":{"x":17912.64382962515,"y":31024.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2013fe7a-d52c-4c9d-ba53-d281d014a8fc","savedPayload":{"position":{"x":17873.64382962515,"y":30926.23747069523},"targetPosition":{"x":17855.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"706d5778-ed21-49bd-9277-1840ec52708d","savedPayload":{"position":{"x":17729.64382962515,"y":31033.23747069523},"targetPosition":{"x":17813.64382962515,"y":31053.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2e76bc02-6e10-4f14-9bf1-a11dc4268466","savedPayload":{"position":{"x":17813.64382962515,"y":31053.23747069523},"targetPosition":{"x":17855.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"89a3ccc7-20ab-4e2d-929b-52d9286179b7","savedPayload":{"position":{"x":17855.64382962515,"y":30967.23747069523},"targetPosition":{"x":17818.64382962515,"y":30920.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5c8219e3-4509-4b8b-941b-b88ac2c12237","savedPayload":{"position":{"x":17818.64382962515,"y":30920.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"21971815-4248-45df-8e04-20b9a5a83f06","savedPayload":{"position":{"x":17747.782680228695,"y":32455.686028314496},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"DigiFinex","config":"{ \n\"codeName\": \"digifinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e583c93e-9a44-4e0d-acb7-56d7e00a555a","savedPayload":{"position":{"x":17954.64382962515,"y":30992.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8917c7c0-b420-4d4f-a35a-c0fc6870f0de","savedPayload":{"position":{"x":18052.64382962515,"y":30972.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a00b5bb0-5ab9-42e2-91fe-b450c7eb66d2","savedPayload":{"position":{"x":18220.64382962515,"y":31090.23747069523},"targetPosition":{"x":18123.64382962515,"y":30998.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2aafc473-339b-4d23-9b74-06fa7574c293","savedPayload":{"position":{"x":18144.64382962515,"y":31123.23747069523},"targetPosition":{"x":18203.64382962515,"y":31084.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"99e9e136-1ac7-4400-a100-0a2d37f0882d","savedPayload":{"position":{"x":18203.64382962515,"y":31084.23747069523},"targetPosition":{"x":18123.64382962515,"y":30998.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b7cee21b-ddcb-4fd7-b610-43aabb2d1766","savedPayload":{"position":{"x":18123.64382962515,"y":30998.23747069523},"targetPosition":{"x":18032.64382962515,"y":30976.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"08e84a25-4368-4ad6-939f-5a16cece62cc","savedPayload":{"position":{"x":18032.64382962515,"y":30976.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b7d56781-0c51-4ec1-95fd-bf4dc8c00352","savedPayload":{"position":{"x":17633.70560944751,"y":32357.217342244825},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"DSX","config":"{ \n\"codeName\": \"dsx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"d672ab56-cd32-4ff5-8fc5-3733262aeccb","savedPayload":{"position":{"x":17916.64382962515,"y":31106.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3731a7b5-ba9d-483e-bb41-abf3ae0232c6","savedPayload":{"position":{"x":17878.64382962515,"y":30946.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9ef7e0ac-dc27-4b47-a06e-0cb7e80ee3d7","savedPayload":{"position":{"x":18124.64382962515,"y":31136.23747069523},"targetPosition":{"x":18093.64382962515,"y":31072.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"77491a3c-3db7-446f-aa67-9b5a1a3be7b3","savedPayload":{"position":{"x":18109.64382962515,"y":31081.23747069523},"targetPosition":{"x":18188.64382962515,"y":31137.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"bd1bd0b7-4943-4aeb-bf90-d3192dcabbb1","savedPayload":{"position":{"x":18188.64382962515,"y":31137.23747069523},"targetPosition":{"x":18093.64382962515,"y":31072.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45747fef-f30e-4fae-b02d-5768ae7dbe68","savedPayload":{"position":{"x":18093.64382962515,"y":31072.23747069523},"targetPosition":{"x":18018.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa2e1c9b-428c-4bb0-9e75-ceb8c9043d4b","savedPayload":{"position":{"x":18018.64382962515,"y":31005.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4c543abc-7372-4701-bc58-107578d45c25","savedPayload":{"position":{"x":17532.869469272537,"y":32245.227463019433},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FCoin","config":"{ \n\"codeName\": \"fcoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"a97d578c-6d7f-403c-8294-18aacf14abd8","savedPayload":{"position":{"x":17893.64382962515,"y":30953.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"442c3834-482e-4928-9255-8ac859ae012e","savedPayload":{"position":{"x":17905.64382962515,"y":30896.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"79754959-1219-4c4d-be63-22766158beb5","savedPayload":{"position":{"x":18106.64382962515,"y":30976.23747069523},"targetPosition":{"x":18069.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"1c3ae096-5024-43c3-abca-24498254e363","savedPayload":{"position":{"x":18112.64382962515,"y":30919.23747069523},"targetPosition":{"x":18126.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"59db5bfd-e413-48a7-af63-237ad56adc82","savedPayload":{"position":{"x":18126.64382962515,"y":30965.23747069523},"targetPosition":{"x":18069.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"833c4e54-08f4-48ec-b90a-2767eb55f244","savedPayload":{"position":{"x":18069.64382962515,"y":31056.23747069523},"targetPosition":{"x":17996.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a8cf17b3-0ea7-4a14-8c76-f655344b58a3","savedPayload":{"position":{"x":17996.64382962515,"y":30970.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6ddedcbd-07cb-4928-91b3-348f47118391","savedPayload":{"position":{"x":17446.864505870937,"y":32121.482537933218},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FCoinJP","config":"{ \n\"codeName\": \"fcoinjp\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"4a8a9810-6df6-451a-ab26-22bd7e7be85a","savedPayload":{"position":{"x":17930.64382962515,"y":31129.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"138ab40c-18ca-4a11-9709-0baa040873e6","savedPayload":{"position":{"x":18007.64382962515,"y":31122.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"258cdf92-8ed0-4133-ae2a-b9f086f56a13","savedPayload":{"position":{"x":17897.64382962515,"y":30887.23747069523},"targetPosition":{"x":17903.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"537e8f0c-05ca-4403-bc96-da6c2f4678ae","savedPayload":{"position":{"x":17825.64382962515,"y":30842.23747069523},"targetPosition":{"x":17836.64382962515,"y":30926.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"62519e63-8f4e-4b72-a341-0a6eea01ac3f","savedPayload":{"position":{"x":17836.64382962515,"y":30926.23747069523},"targetPosition":{"x":17903.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b4974cc1-f594-436b-8aa4-aff2733b8e3c","savedPayload":{"position":{"x":17903.64382962515,"y":30977.23747069523},"targetPosition":{"x":17873.64382962515,"y":31061.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d84b404f-75e2-4eb5-b34a-b45af8a57ca7","savedPayload":{"position":{"x":17873.64382962515,"y":31061.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"982627ea-df84-4ba9-9219-612fbe1e4276","savedPayload":{"position":{"x":17377.047068892425,"y":31987.934098376423},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Gate.io","config":"{ \n\"codeName\": \"gateio\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"71a15089-9d40-4726-9a41-37d406064164","savedPayload":{"position":{"x":17930.64382962515,"y":30993.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c025e976-c2c6-49de-81ec-48e2f737b412","savedPayload":{"position":{"x":17925.64382962515,"y":31053.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"876f964a-e12d-4438-87fb-a84be22f86d1","savedPayload":{"position":{"x":17914.64382962515,"y":30833.23747069523},"targetPosition":{"x":17827.64382962515,"y":30882.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0c5d34c4-467f-4e98-bd39-1b2d9afb834e","savedPayload":{"position":{"x":17852.64382962515,"y":30831.23747069523},"targetPosition":{"x":17870.64382962515,"y":30847.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"89316d8c-893a-46ae-b147-948b4b8a5292","savedPayload":{"position":{"x":17870.64382962515,"y":30847.23747069523},"targetPosition":{"x":17827.64382962515,"y":30882.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a2a5de53-bd45-4904-8bae-0cf5ed66d2af","savedPayload":{"position":{"x":17827.64382962515,"y":30882.23747069523},"targetPosition":{"x":17800.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f6f4072d-8cf6-4e47-8b4e-a21cd553348a","savedPayload":{"position":{"x":17800.64382962515,"y":30936.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c4028289-4cdb-4da0-90e6-5f93328b8e03","savedPayload":{"position":{"x":17324.518221025064,"y":31846.688283018826},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Gemini","config":"{ \n\"codeName\": \"gemini\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9eb15872-8d15-4086-9920-46909eb5f9e7","savedPayload":{"position":{"x":17951.64382962515,"y":30901.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"a84dcf06-57c6-47d7-97a0-9f03f3af8b34","savedPayload":{"position":{"x":18045.64382962515,"y":30891.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5da1ba65-3839-4664-8105-2ccb11652767","savedPayload":{"position":{"x":18028.64382962515,"y":31112.23747069523},"targetPosition":{"x":17941.64382962515,"y":31044.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"337fe5e2-b9fd-40eb-9f42-44fc5057d981","savedPayload":{"position":{"x":17957.64382962515,"y":31129.23747069523},"targetPosition":{"x":17875.64382962515,"y":31086.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"17a3f4a3-8914-4995-afb0-7e8115791b17","savedPayload":{"position":{"x":17875.64382962515,"y":31086.23747069523},"targetPosition":{"x":17941.64382962515,"y":31044.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"32e4a3f1-40d8-421f-9634-7ab339858286","savedPayload":{"position":{"x":17941.64382962515,"y":31044.23747069523},"targetPosition":{"x":17877.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"365f6865-e707-415d-a168-b67c66ca9553","savedPayload":{"position":{"x":17877.64382962515,"y":30977.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"58bf8247-baef-4ea6-a483-7ed8f0ba5043","savedPayload":{"position":{"x":17290.10637357894,"y":31699.972622744786},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"HitBTC","config":"{ \n\"codeName\": \"hitbtc\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"1632c520-fa79-442f-b33b-430cb1356de6","savedPayload":{"position":{"x":17809.64382962515,"y":31086.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"576d1666-dbd3-4914-9fe2-fa05bdf72eea","savedPayload":{"position":{"x":17840.64382962515,"y":31148.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"41317aae-08ce-48cf-a47b-c2d2cc3920ec","savedPayload":{"position":{"x":18096.64382962515,"y":30975.23747069523},"targetPosition":{"x":18026.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"23d7e4ba-8432-4214-bd94-0db5046e39cd","savedPayload":{"position":{"x":18039.64382962515,"y":31075.23747069523},"targetPosition":{"x":17981.64382962515,"y":31126.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ab200349-5ba5-44d2-ad5c-fa826303cfcd","savedPayload":{"position":{"x":17981.64382962515,"y":31126.23747069523},"targetPosition":{"x":18026.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a5f24785-5b2c-429b-a2e4-07063e2de904","savedPayload":{"position":{"x":18026.64382962515,"y":31066.23747069523},"targetPosition":{"x":17972.64382962515,"y":31093.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"13f275ca-06a6-4a72-8b4d-a9c079b9cef4","savedPayload":{"position":{"x":17972.64382962515,"y":31093.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8384fa0b-854c-4c23-846e-a5da0179a738","savedPayload":{"position":{"x":17274.354221944915,"y":31550.1009111605},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"HitBTC","config":"{ \n\"codeName\": \"hitbtc2\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9a29cb9e-ee8d-4315-8532-eef82224b84a","savedPayload":{"position":{"x":17838.64382962515,"y":30922.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"badd79e7-1e21-4dc3-bfa7-8dfb4a6c6267","savedPayload":{"position":{"x":17920.64382962515,"y":30944.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"ffdda0b7-af50-4010-84da-2bc0d562af2b","savedPayload":{"position":{"x":17887.64382962515,"y":30982.23747069523},"targetPosition":{"x":17836.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"24816eed-adf7-453e-9b38-42ea4758dbaa","savedPayload":{"position":{"x":18021.64382962515,"y":30979.23747069523},"targetPosition":{"x":17931.64382962515,"y":30923.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"1dd16858-5641-4454-88a3-e5d7446e12a3","savedPayload":{"position":{"x":17931.64382962515,"y":30923.23747069523},"targetPosition":{"x":17836.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"457d75ed-ad21-4ee5-b36b-88cdc444008e","savedPayload":{"position":{"x":17836.64382962515,"y":31023.23747069523},"targetPosition":{"x":17808.64382962515,"y":31039.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b29ded7e-e2d5-4c7f-89af-b0816c32c743","savedPayload":{"position":{"x":17808.64382962515,"y":31039.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"09c634c2-5aba-49c5-80bc-4fd4175e7f0c","savedPayload":{"position":{"x":17277.51018696414,"y":31399.436714686686},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Huobi Pro","config":"{ \n\"codeName\": \"huobipro\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"86caa38c-5bdf-40e4-b27b-8d8b64319575","savedPayload":{"position":{"x":18071.64382962515,"y":31171.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"001225af-c715-4566-9502-f8f0ac1c4531","savedPayload":{"position":{"x":18040.64382962515,"y":31019.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"b4bf5ccb-b529-4500-a192-d9c3a0613389","savedPayload":{"position":{"x":18129.64382962515,"y":31073.23747069523},"targetPosition":{"x":18033.64382962515,"y":31090.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2e58c6d1-cfa7-4dc7-a322-e9356596ea1e","savedPayload":{"position":{"x":17976.64382962515,"y":31132.23747069523},"targetPosition":{"x":17953.64382962515,"y":31093.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae04ddf4-ae3e-4bdc-9393-41acc38ef818","savedPayload":{"position":{"x":17953.64382962515,"y":31093.23747069523},"targetPosition":{"x":18033.64382962515,"y":31090.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2428e8ef-6a09-48fa-8ae4-ebfb28420be8","savedPayload":{"position":{"x":18033.64382962515,"y":31090.23747069523},"targetPosition":{"x":18085.64382962515,"y":31157.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"55c71c8b-f21f-4d16-ae93-e29362c39bf5","savedPayload":{"position":{"x":18085.64382962515,"y":31157.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"967c3914-a76d-4389-9c7e-9c258ae683bd","savedPayload":{"position":{"x":17299.524497182978,"y":31250.35609770415},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Huobi Russia","config":"{ \n\"codeName\": \"huobiru\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9b7b32d6-a42e-44bb-8065-5aa32b1e844b","savedPayload":{"position":{"x":17980.64382962515,"y":31034.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8d74201c-33cd-4e12-8920-b08d0ef97572","savedPayload":{"position":{"x":17992.64382962515,"y":31105.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c6e289d7-074b-4837-96e3-687988886fcc","savedPayload":{"position":{"x":18078.64382962515,"y":30954.23747069523},"targetPosition":{"x":18008.64382962515,"y":31029.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d72f81ba-6b41-414d-9cf0-d5f9c0c25403","savedPayload":{"position":{"x":18026.64382962515,"y":31021.23747069523},"targetPosition":{"x":18083.64382962515,"y":31117.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5354f66c-6e73-4fe5-80ca-2c25b761ef51","savedPayload":{"position":{"x":18083.64382962515,"y":31117.23747069523},"targetPosition":{"x":18008.64382962515,"y":31029.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"81f5adbb-054c-47f2-b019-52585f5d7417","savedPayload":{"position":{"x":18008.64382962515,"y":31029.23747069523},"targetPosition":{"x":18018.64382962515,"y":31009.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ecd8645b-4bb6-4641-a20f-cee51bf33f1a","savedPayload":{"position":{"x":18018.64382962515,"y":31009.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6f97bb5c-8d85-43ee-86a1-33e22cdfbb5e","savedPayload":{"position":{"x":17340.04997377857,"y":31105.21015059916},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"KKEX","config":"{ \n\"codeName\": \"kkex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"daa4e07a-1cd8-4d92-8004-2eabfaa62f77","savedPayload":{"position":{"x":17924.64382962515,"y":31038.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"cb64951f-d984-4f51-a751-166a316084f3","savedPayload":{"position":{"x":17945.64382962515,"y":31156.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6915bf12-9271-47e2-8b49-924ae9f5c65f","savedPayload":{"position":{"x":17958.64382962515,"y":31297.23747069523},"targetPosition":{"x":17875.64382962515,"y":31252.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"ff53381f-c6dd-4d17-a477-11396f60663f","savedPayload":{"position":{"x":17805.64382962515,"y":31141.23747069523},"targetPosition":{"x":17861.64382962515,"y":31223.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae05bfc4-6ac8-408c-a90b-263830b2a71e","savedPayload":{"position":{"x":17861.64382962515,"y":31223.23747069523},"targetPosition":{"x":17875.64382962515,"y":31252.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61c85f1a-a2a6-45c9-bb1e-3c76110f5d1e","savedPayload":{"position":{"x":17875.64382962515,"y":31252.23747069523},"targetPosition":{"x":17911.64382962515,"y":31154.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9fafb114-37d2-4d04-9c42-83d04ff62fc7","savedPayload":{"position":{"x":17911.64382962515,"y":31154.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"16ae95ce-796f-4f2b-942c-f98dcbf9cf4b","savedPayload":{"position":{"x":17398.44750577625,"y":30966.28791166355},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"LBank","config":"{ \n\"codeName\": \"lbank\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"def3f9d0-f09e-4e09-8b6d-a4c322a4384b","savedPayload":{"position":{"x":17877.64382962515,"y":31024.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"53eac3c1-96d6-4cb1-b54d-f3f174eaf733","savedPayload":{"position":{"x":17764.64382962515,"y":31036.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c6c00704-1357-4426-910e-8134d6f87017","savedPayload":{"position":{"x":18030.64382962515,"y":31212.23747069523},"targetPosition":{"x":17951.64382962515,"y":31172.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"13990604-2192-4be1-b21b-53cf2bafc002","savedPayload":{"position":{"x":17893.64382962515,"y":31189.23747069523},"targetPosition":{"x":17964.64382962515,"y":31122.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ed2c483e-d412-406d-b6f3-cfb1112a3a05","savedPayload":{"position":{"x":17964.64382962515,"y":31122.23747069523},"targetPosition":{"x":17951.64382962515,"y":31172.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6033b63c-c7fe-4a5d-8cf6-82128e2cfb41","savedPayload":{"position":{"x":17951.64382962515,"y":31172.23747069523},"targetPosition":{"x":17891.64382962515,"y":31096.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"20ece5c4-dbfa-4f4a-a9ee-8c8d9c38943b","savedPayload":{"position":{"x":17891.64382962515,"y":31096.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cb2558d6-dab0-4f35-b83f-7cfc161b3d4f","savedPayload":{"position":{"x":17473.796129211427,"y":30835.780267593447},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Mercado Bitcoin","config":"{ \n\"codeName\": \"mercado\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"83ab2c39-e844-496f-bebb-7b8607428902","savedPayload":{"position":{"x":17849.64382962515,"y":31081.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d69e722e-c71a-462a-8bbd-d3482d0eab21","savedPayload":{"position":{"x":17771.64382962515,"y":30887.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"18438709-83cf-49a3-96b8-888ab5adbcc5","savedPayload":{"position":{"x":17937.64382962515,"y":31080.23747069523},"targetPosition":{"x":17866.64382962515,"y":31013.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"6b9d4ed4-af81-462a-aace-fac0afd4687a","savedPayload":{"position":{"x":17787.64382962515,"y":30841.23747069523},"targetPosition":{"x":17873.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"802a4c53-8617-4257-95a5-45bfaa60ad0e","savedPayload":{"position":{"x":17873.64382962515,"y":30935.23747069523},"targetPosition":{"x":17866.64382962515,"y":31013.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"87936a4a-aac5-4aca-8f3e-2051611932c4","savedPayload":{"position":{"x":17866.64382962515,"y":31013.23747069523},"targetPosition":{"x":17829.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"48f3a793-bb97-447b-8f1a-1d6965219747","savedPayload":{"position":{"x":17829.64382962515,"y":30919.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5002072e-145c-4aeb-a611-3e0e4c60ee5d","savedPayload":{"position":{"x":17564.907551281438,"y":30715.745401897337},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"OKCoin","config":"{ \n\"codeName\": \"okcoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"1e4dd5c8-0545-4698-8695-c985880243a3","savedPayload":{"position":{"x":17921.64382962515,"y":31043.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0e188cae-9764-4963-a78b-e5d7ef272522","savedPayload":{"position":{"x":18005.64382962515,"y":30891.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6d82bfd7-b4e1-4f93-a0f8-18f62cee944e","savedPayload":{"position":{"x":18047.64382962515,"y":30877.23747069523},"targetPosition":{"x":17963.64382962515,"y":30898.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d815409c-1dd4-4e89-b844-5b96104509b4","savedPayload":{"position":{"x":17958.64382962515,"y":30988.23747069523},"targetPosition":{"x":17945.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"238b9d2c-e2c0-4a77-945e-8e28604c0a2d","savedPayload":{"position":{"x":17945.64382962515,"y":30961.23747069523},"targetPosition":{"x":17963.64382962515,"y":30898.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8416c29a-5d73-4b2a-9463-511f400deafb","savedPayload":{"position":{"x":17963.64382962515,"y":30898.23747069523},"targetPosition":{"x":18047.64382962515,"y":30885.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04abf32b-084e-4784-aa84-8c5612d3b7b9","savedPayload":{"position":{"x":18047.64382962515,"y":30885.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1f860b4b-2893-4a51-8649-19c47d494a37","savedPayload":{"position":{"x":17670.344890432916,"y":30608.07633611259},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"OKEX","config":"{ \n\"codeName\": \"okex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"7f618566-3d10-4c3c-90b2-7541a5146eeb","savedPayload":{"position":{"x":17770.64382962515,"y":31094.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"21205576-5d12-452c-814f-eb56182162ae","savedPayload":{"position":{"x":17794.64382962515,"y":31173.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"46456247-ae9c-41ea-8395-a5e4a78007d4","savedPayload":{"position":{"x":17724.64382962515,"y":31147.23747069523},"targetPosition":{"x":17795.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"706bf601-eaad-48bd-b0a7-8dad59066171","savedPayload":{"position":{"x":17715.64382962515,"y":31182.23747069523},"targetPosition":{"x":17706.64382962515,"y":31162.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"f9c7071c-2e5b-4c90-b482-dfc7ee001244","savedPayload":{"position":{"x":17706.64382962515,"y":31162.23747069523},"targetPosition":{"x":17795.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e87e1e10-3404-48b9-8629-5df92ffa1979","savedPayload":{"position":{"x":17795.64382962515,"y":31083.23747069523},"targetPosition":{"x":17789.64382962515,"y":31181.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"08e8fd6a-6b23-4d65-8b8e-d966f845c07f","savedPayload":{"position":{"x":17789.64382962515,"y":31181.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"aa0edec0-8b27-4f94-abce-1e437ce5aba6","savedPayload":{"position":{"x":17788.44533684223,"y":30514.471075725018},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"RightBTC","config":"{ \n\"codeName\": \"rightbtc\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"ade372e9-5070-4fa9-843e-57732c4106c3","savedPayload":{"position":{"x":17999.64382962515,"y":30964.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b63d440e-4501-475c-b8a6-2b9a144e32a1","savedPayload":{"position":{"x":17984.64382962515,"y":30901.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"81d77477-4f2e-43c0-b284-dde54f91c37f","savedPayload":{"position":{"x":17864.64382962515,"y":31036.23747069523},"targetPosition":{"x":17861.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"9ce3cc34-1ba4-4155-96a5-c946b1bcc5ab","savedPayload":{"position":{"x":17819.64382962515,"y":31127.23747069523},"targetPosition":{"x":17810.64382962515,"y":31080.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c7df4af7-37c1-403d-ada1-b6a527821bdd","savedPayload":{"position":{"x":17810.64382962515,"y":31080.23747069523},"targetPosition":{"x":17861.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6de19501-5ce7-4944-b9dd-25b149acbb38","savedPayload":{"position":{"x":17861.64382962515,"y":31043.23747069523},"targetPosition":{"x":17946.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa87ace4-a976-401c-93f9-24a498261742","savedPayload":{"position":{"x":17946.64382962515,"y":30988.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c20cd9e1-52a0-4d17-b90c-e9d5b63315ce","savedPayload":{"position":{"x":17917.346375919715,"y":30436.405831608005},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"STEX","config":"{ \n\"codeName\": \"stex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f1d65161-4922-4a1e-ac98-df1a842347a7","savedPayload":{"position":{"x":17872.64382962515,"y":31001.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c313b2c6-6154-4a9a-b826-fd99cc500cd9","savedPayload":{"position":{"x":17888.64382962515,"y":31186.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d0a1259b-1c37-4d39-836e-3c434c3b3687","savedPayload":{"position":{"x":17778.64382962515,"y":31076.23747069523},"targetPosition":{"x":17858.64382962515,"y":31091.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"4a1e5627-459c-4dec-be13-c20d4a9ea58f","savedPayload":{"position":{"x":17841.64382962515,"y":31179.23747069523},"targetPosition":{"x":17795.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"6981eb0d-0f0e-4f8e-9781-4a03e22e93fd","savedPayload":{"position":{"x":17795.64382962515,"y":31105.23747069523},"targetPosition":{"x":17858.64382962515,"y":31091.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7704478a-9717-43a8-bd2e-88daa6f84bd0","savedPayload":{"position":{"x":17858.64382962515,"y":31091.23747069523},"targetPosition":{"x":17941.64382962515,"y":31173.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"262aad86-f430-49ea-a636-e8bd816a9636","savedPayload":{"position":{"x":17941.64382962515,"y":31173.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0ea23137-3c65-4de1-9772-6ac1b65196e8","savedPayload":{"position":{"x":18055.01516127737,"y":30375.111739295193},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TideBit","config":"{ \n\"codeName\": \"tidebit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c92318bd-8b2d-489b-b8e8-cf30fb63286e","savedPayload":{"position":{"x":17981.64382962515,"y":31021.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"83bca3ec-fc1c-435c-b5fe-b1cf92463fd1","savedPayload":{"position":{"x":18051.64382962515,"y":31072.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2f3ee9b2-cd41-458c-84da-edac3155028a","savedPayload":{"position":{"x":18075.64382962515,"y":31059.23747069523},"targetPosition":{"x":17987.64382962515,"y":31047.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"009ae4b6-adbc-4900-9fc0-f18936eeed9b","savedPayload":{"position":{"x":18030.64382962515,"y":31058.23747069523},"targetPosition":{"x":18009.64382962515,"y":31028.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"3ee88180-fe10-41df-8251-b1ed0a526e7a","savedPayload":{"position":{"x":18009.64382962515,"y":31028.23747069523},"targetPosition":{"x":17987.64382962515,"y":31047.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bb88e6e8-a99a-4c4e-9ca5-ffed49aa8b54","savedPayload":{"position":{"x":17987.64382962515,"y":31047.23747069523},"targetPosition":{"x":17925.64382962515,"y":31135.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"13a4a95e-4333-4455-9f7c-90bc839d174a","savedPayload":{"position":{"x":17925.64382962515,"y":31135.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5563c310-701a-4c1e-8155-87c08c927ce3","savedPayload":{"position":{"x":18199.28057393076,"y":30331.55544323767},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TimeX","config":"{ \n\"codeName\": \"timex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"5c004b5f-eec4-414f-8d01-d9b3fddeee9e","savedPayload":{"position":{"x":17892.64382962515,"y":30973.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"59a33add-d0e9-4ae1-8a01-f1e0ed09cb61","savedPayload":{"position":{"x":17911.64382962515,"y":30878.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a4189ba1-d1d4-4ff8-91dd-a8696ca493e3","savedPayload":{"position":{"x":17953.64382962515,"y":30880.23747069523},"targetPosition":{"x":17924.64382962515,"y":30871.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"3d34eb9d-e7cb-42fe-8785-c327b2bbc529","savedPayload":{"position":{"x":17839.64382962515,"y":30875.23747069523},"targetPosition":{"x":17930.64382962515,"y":30877.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"773de01f-0999-4a59-91f0-642148cd58d0","savedPayload":{"position":{"x":17930.64382962515,"y":30877.23747069523},"targetPosition":{"x":17924.64382962515,"y":30871.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fe33a596-4f98-4843-a5b1-26e7e0fcf1c8","savedPayload":{"position":{"x":17924.64382962515,"y":30871.23747069523},"targetPosition":{"x":18018.64382962515,"y":30832.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d078b9a3-cdc6-458e-a511-dc4f5bef38ba","savedPayload":{"position":{"x":18018.64382962515,"y":30832.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"27d69fa7-b561-4986-8c0d-1b374e7e1bf1","savedPayload":{"position":{"x":18347.867462142363,"y":30306.423852243533},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TOP.Q","config":"{ \n\"codeName\": \"topq\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"eafef6a3-eed2-470e-a15c-aa4c10001cd2","savedPayload":{"position":{"x":17818.64382962515,"y":31115.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"2d5eb813-ceb6-40cd-8682-7205596bb8b5","savedPayload":{"position":{"x":17759.64382962515,"y":31188.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"61f7832c-c1f0-40bc-b1f2-ba947c58309d","savedPayload":{"position":{"x":17741.64382962515,"y":31288.23747069523},"targetPosition":{"x":17788.64382962515,"y":31228.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"63b973da-30a7-467a-b954-c57537aab18d","savedPayload":{"position":{"x":17677.64382962515,"y":31206.23747069523},"targetPosition":{"x":17756.64382962515,"y":31146.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"722dcf44-de3f-4d1a-8655-80561e1e4d55","savedPayload":{"position":{"x":17756.64382962515,"y":31146.23747069523},"targetPosition":{"x":17788.64382962515,"y":31228.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45d5e04a-4a53-4f32-b4c0-d882456cb263","savedPayload":{"position":{"x":17788.64382962515,"y":31228.23747069523},"targetPosition":{"x":17806.64382962515,"y":31163.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c66e8dfc-4847-4180-b82c-36458f9b405d","savedPayload":{"position":{"x":17806.64382962515,"y":31163.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8fdf13d8-e8d2-4ef4-8b34-f492a25d753a","savedPayload":{"position":{"x":18498.432521923576,"y":30300.113306515646},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Upbit","config":"{ \n\"codeName\": \"upbit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f456fec2-cee6-4f0c-b865-1188088879c9","savedPayload":{"position":{"x":17919.64382962515,"y":30973.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"947c1ca0-bff9-4372-b153-40054e29b705","savedPayload":{"position":{"x":17921.64382962515,"y":31014.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"34ffbe12-5a26-446a-8bf6-7395c0370ba2","savedPayload":{"position":{"x":17874.64382962515,"y":30900.23747069523},"targetPosition":{"x":17945.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"8f00f19d-74a8-48d8-b951-79f35e87b110","savedPayload":{"position":{"x":17906.64382962515,"y":30902.23747069523},"targetPosition":{"x":17896.64382962515,"y":30896.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"64e1bede-aabf-4831-83a6-fe1cea435613","savedPayload":{"position":{"x":17896.64382962515,"y":30896.23747069523},"targetPosition":{"x":17945.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7c80b956-f2ca-4a6f-a661-f17546288d3e","savedPayload":{"position":{"x":17945.64382962515,"y":30971.23747069523},"targetPosition":{"x":18027.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e3686b02-4ecc-4dcb-a311-b7ef542a3c37","savedPayload":{"position":{"x":18027.64382962515,"y":31048.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"74e57ecd-3394-42b4-b2c4-6f216f7e41db","savedPayload":{"position":{"x":18648.60125233844,"y":30312.723327129876},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"WhiteBit","config":"{ \n\"codeName\": \"whitebit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c16eae45-a568-4b2e-b064-4431bdf34c24","savedPayload":{"position":{"x":17767.64382962515,"y":30899.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"dfdf793f-4ba6-4215-a325-323c0f223553","savedPayload":{"position":{"x":17920.64382962515,"y":31004.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"fd749d13-dbac-493f-9af6-c521eddf909f","savedPayload":{"position":{"x":17815.64382962515,"y":30973.23747069523},"targetPosition":{"x":17720.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"79f7d2d0-77a5-4f38-ac68-fd11f18e5e6b","savedPayload":{"position":{"x":17761.64382962515,"y":31182.23747069523},"targetPosition":{"x":17680.64382962515,"y":31153.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fd0506f4-58b7-431e-bc9d-69bce63c3379","savedPayload":{"position":{"x":17680.64382962515,"y":31153.23747069523},"targetPosition":{"x":17720.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"47e8a4b1-9a6c-4555-a881-f7524183d72e","savedPayload":{"position":{"x":17720.64382962515,"y":31056.23747069523},"targetPosition":{"x":17817.64382962515,"y":31010.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7fa08b91-55ab-477d-a097-88ea7f25fb76","savedPayload":{"position":{"x":17817.64382962515,"y":31010.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"467ece1e-d1d0-4a11-ae7a-d0e22cd4eba5","savedPayload":{"position":{"x":18796.005402801864,"y":30344.055046528272},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"ZB","config":"{ \n\"codeName\": \"zb\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"db206cbd-a587-4e8e-acbe-6581ad3b5cc4","savedPayload":{"position":{"x":17855.64382962515,"y":31027.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"1dd658c5-7755-44b7-85f0-9bcd787762a0","savedPayload":{"position":{"x":17789.64382962515,"y":31044.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"0de82bbe-7909-4b65-b304-f59b41f618ae","savedPayload":{"position":{"x":17830.64382962515,"y":30696.23747069523},"targetPosition":{"x":17846.64382962515,"y":30793.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c89819d0-8880-4b36-a9b3-0b284d266e3b","savedPayload":{"position":{"x":17891.64382962515,"y":30748.23747069523},"targetPosition":{"x":17865.64382962515,"y":30772.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"7a55f503-17fa-45c4-880b-1a9a11a0a555","savedPayload":{"position":{"x":17865.64382962515,"y":30772.23747069523},"targetPosition":{"x":17846.64382962515,"y":30793.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e640fca2-8bab-45ff-9a47-8e7b9650c277","savedPayload":{"position":{"x":17846.64382962515,"y":30793.23747069523},"targetPosition":{"x":17909.64382962515,"y":30886.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"421a99cd-3d9a-46a5-8654-08d6336e75be","savedPayload":{"position":{"x":17909.64382962515,"y":30886.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07df07e8-39a8-4fbc-a0c8-150f20b6ac59","savedPayload":{"position":{"x":18938.32032180607,"y":30393.61434477926},"targetPosition":{"x":18473.301618063546,"y":31499.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51f64e29-e3ab-4683-a5de-f397fbf94260","savedPayload":{"position":{"x":18473.301618063546,"y":31499.850126685462},"targetPosition":{"x":18773.301618063546,"y":30980.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchanges","name":"Testing Queue","project":"Superalgos","exchanges":[],"id":"895ce4b1-4890-4216-89ba-a012181d2546","savedPayload":{"position":{"x":18623.301618063546,"y":30720.427263279467},"targetPosition":{"x":18773.301618063546,"y":30980.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"signalsProviders":[],"id":"7217b56c-e854-4c06-8b8a-d5d3c05a153d","savedPayload":{"position":{"x":18773.301618063546,"y":30980.2348844148},"targetPosition":{"x":18773.301618063546,"y":30980.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Charting Space","name":"New Charting Space","project":"Superalgos","viewport":{"type":"Viewport","name":"New Viewport","config":"{\"zoom\":\"5.00\"}","project":"Superalgos","id":"01713f1d-91b8-44f9-9c5d-a0c12fd09037","savedPayload":{"position":{"x":19200.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"frame":{"position":{"x":-2189.197939162836,"y":-6992.422473301482}}}},"projectDashboards":[],"id":"21d2ec55-9e56-4652-8e96-c7e451262c36","savedPayload":{"position":{"x":18900.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"c"}}},{"type":"Plugins","name":"New Plugins","project":"Superalgos","pluginProjects":[{"type":"Plugin Project","name":"Superalgos","config":"{ \n \"codeName\": \"Superalgos\"\n}","project":"Superalgos","pluginDataMines":{"type":"Plugin Data Mines","name":"New Plugin Data Mines","project":"Superalgos","pluginFiles":[{"type":"Plugin File","name":"Masters","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Masters","project":"Superalgos","id":"d5234bd2-ef4e-4856-a6a0-ce7659653a48","savedPayload":{"position":{"x":18879.35218735615,"y":18688.55301821844},"targetPosition":{"x":31820.67692045767,"y":18678.794324352373},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ecc1a524-de9b-4e73-8874-b99a7ea0402b","savedPayload":{"position":{"x":31820.67692045767,"y":18678.794324352373},"targetPosition":{"x":31320.502678827743,"y":18678.79704693609},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cbc3d9be-5e59-45d8-bb0f-4ec82763691d","savedPayload":{"position":{"x":31253.673182942548,"y":18372.4854210064},"targetPosition":{"x":31346.37828125503,"y":18657.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"pluginTradingMines":{"type":"Plugin Trading Mines","name":"New Plugin Trading Mines","project":"Superalgos","pluginFiles":[{"type":"Plugin File","name":"Masters","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Masters","project":"Superalgos","id":"ad1ce785-858f-4cfc-ba68-108b5e0c54d9","savedPayload":{"position":{"x":24941.217404066585,"y":18714.893045797242},"targetPosition":{"x":31320.45102232534,"y":19544.930491916948},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8a64c00e-4f8c-49bf-b57d-4e2e388bae41","savedPayload":{"position":{"x":31320.45102232534,"y":19544.930491916948},"targetPosition":{"x":31070.415084976332,"y":19111.835158656926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8d881813-3ab9-4e8b-ab5a-48dedab2dd19","savedPayload":{"position":{"x":31589.083379567513,"y":18481.466800207203},"targetPosition":{"x":31346.37828125503,"y":18657.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"pluginTradingSystems":{"type":"Plugin Trading Systems","name":"New Plugin Trading Systems","project":"Superalgos","pluginFiles":[],"id":"3569d452-c593-4e54-a356-7ff8c6b519f3","savedPayload":{"position":{"x":31589.083379567513,"y":18834.13795158269},"targetPosition":{"x":31346.37828125503,"y":18657.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"pluginTradingEngines":{"type":"Plugin Trading Engines","name":"New Plugin Trading Engines","project":"Superalgos","pluginFiles":[{"type":"Plugin File","name":"Low-Frequency","project":"Superalgos","pluginFilePosition":{"type":"Plugin File Position","name":"Low-Frequency","project":"Superalgos","id":"e117a2a4-09b3-4181-8455-e680de3bdeb3","savedPayload":{"position":{"x":30923.55093774257,"y":24967.049392142086},"targetPosition":{"x":29820.22642897682,"y":18678.80776835817},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e9270d67-4630-4ac9-91ca-1dec4fb5aa38","savedPayload":{"position":{"x":29820.22642897682,"y":18678.80776835817},"targetPosition":{"x":30320.32799443869,"y":18678.805890109317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"87a28762-63d0-45f7-bd39-9dea436d8244","savedPayload":{"position":{"x":31253.673182942548,"y":18943.11933078349},"targetPosition":{"x":31346.37828125503,"y":18657.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c4e402d7-5228-408c-9d67-379d6ef40bae","savedPayload":{"position":{"x":31346.37828125503,"y":18657.802375894946},"targetPosition":{"x":31046.37828125503,"y":18657.802375894946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bfb0b514-3b9f-4e9a-85ca-d0ca714b09f6","savedPayload":{"position":{"x":31046.37828125503,"y":18657.802375894946},"targetPosition":{"x":31046.37828125503,"y":18657.802375894946},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Design Space","name":"My Design Space","project":"Superalgos","spaceStyle":{"type":"Space Style","name":"My Space Style","config":" {\n \"backgroundColor\": \"UI_COLOR.BLACK\",\n \"node\": {\n \"fontSize\": 16,\n \"imageSize\": 60,\n \"type\": {\n \"fontColor\": \"UI_COLOR.WHITE\"\n },\n \"name\": {\n \"fontColor\": \"UI_COLOR.WHITE\"\n },\n \"menuItem\": {\n \"backgroundColor\": \"UI_COLOR.BLACK\",\n \"fontColor\": \"UI_COLOR.WHITE\",\n \"fontSize\": 14,\n \"imageSize\": 14\n }\n }\n }","project":"Superalgos","id":"fad0e429-f7a7-4b62-a2a5-2ead29b8f695","savedPayload":{"position":{"x":25236.875,"y":8701.347826086958},"targetPosition":{"x":24936.875,"y":8701.347826086958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"spaceSettings":{"type":"Space Settings","name":"New Space Settings","config":"{\n \"node\": {\n \"distancePercentage\": 60,\n \"radiusPercentage\": 85,\n \"massPercentage\": 100,\n \"animationSteps\": 2, \n \"menuItem\": {\n \"widthPercentage\": 100,\n \"heightPercentage\": 60,\n \"radiusPercentage\": 90\n }\n },\n \"physics\": false\n}","project":"Superalgos","id":"05c9d6d5-24c4-4eec-9aca-9668d6486fdd","savedPayload":{"position":{"x":24636.875,"y":8701.347826086958},"targetPosition":{"x":24936.875,"y":8701.347826086958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8485ce5-67f3-4476-b9e2-80994e49c318","savedPayload":{"position":{"x":24940.875,"y":10717.347826086958},"targetPosition":{"x":24940.875,"y":10717.347826086958},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":255,"y":588.3125}}}},{"type":"Superalgos Project","name":"New Superalgos Project","project":"Superalgos","projectDefinition":{"type":"Project Definition","name":"Superalgos","config":"{ \n \"codeName\": \"Superalgos\"\n}","project":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb","savedPayload":{"position":{"x":19203,"y":10733.5},"targetPosition":{"x":18903,"y":10733.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"spaces":{"type":"Spaces","name":"New Spaces","project":"Superalgos","id":"4d0ee814-4e48-4688-9cc5-7ee03de5192b","savedPayload":{"position":{"x":19053,"y":10993.307621135331},"targetPosition":{"x":18903,"y":10733.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"mines":{"type":"Mines","name":"New Mines","project":"Superalgos","id":"b979e3a3-9316-4e5a-831b-c503b4b0e507","savedPayload":{"position":{"x":18753,"y":10993.307621135331},"targetPosition":{"x":18903,"y":10733.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"trading":{"type":"Trading","name":"New Trading","project":"Superalgos","id":"7c24591e-b252-4be3-8952-e4da0a52f467","savedPayload":{"position":{"x":18603,"y":10733.5},"targetPosition":{"x":18903,"y":10733.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"learning":{"type":"Learning","name":"New Learning","project":"Superalgos","id":"7a0b6167-5554-497a-b150-8886120539c2","savedPayload":{"position":{"x":18753,"y":10473.692378864669},"targetPosition":{"x":18903,"y":10733.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"otherHierarchies":{"type":"Other Hierarchies","name":"New Other Hierarchies","project":"Superalgos","id":"0a1ff755-8e0b-4f62-976e-df76c8139c6f","savedPayload":{"position":{"x":19053,"y":10473.692378864669},"targetPosition":{"x":18903,"y":10733.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cf9f8b3b-77c6-43c6-b01f-95cf366a91f6","savedPayload":{"position":{"x":18903,"y":10733.5},"targetPosition":{"x":18903,"y":10733.5},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Tutorial","name":"Install a New Market","config":"{\"position\":\"\",\"slider\":\"toTop\",\"documentationURL\":\"\",\"docs\":{\"project\":\"Superalgos\",\"category\":\"Tutorial\",\"type\":\"Tutorial - Install a New Market\"},\"icon\":{\"name\":\"market\",\"project\":\"Superalgos\"}}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[{"type":"Tutorial Topic","name":"Add the Assets","config":"{\"position\":\"Left\",\"slider\":\"toTop\",\"positionAtReferenceParent\":true,\"documentationURL\":\"\",\"docs\":{\"project\":\"Superalgos\",\"category\":\"Tutorial\",\"type\":\"Tutorial Topic - Add the Assets\"},\"icon\":{\"name\":\"asset\",\"project\":\"Superalgos\"}}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"exchange-assets\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Add the Assets 1\"\n }\n}","project":"Superalgos","id":"1b3b8d0e-3aa9-4aba-8b74-351647a3b5b5","savedPayload":{"position":{"x":31555.632034355964,"y":40268.44846100007},"targetPosition":{"x":31343.5,"y":40480.58049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"asset\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Add the Assets 2\"\n }\n}","project":"Superalgos","id":"05f7092a-2326-40e7-b618-f3be5523e670","savedPayload":{"position":{"x":31643.5,"y":40480.58049535604},"targetPosition":{"x":31343.5,"y":40480.58049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"asset\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Add the Assets 3\"\n }\n}","project":"Superalgos","id":"281274f1-a4ec-47a2-b97c-0c29aa71eed9","savedPayload":{"position":{"x":31555.632034355964,"y":40692.712529712},"targetPosition":{"x":31343.5,"y":40480.58049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"cd6f2f74-407e-46c9-b7de-95d9ab2cc82d","savedPayload":{"position":{"x":25258.5,"y":37561.33049535604},"targetPosition":{"x":24958.5,"y":37561.33049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Exchange Assets","name":"New Exchange Assets","id":"95d2c30f-215b-486e-8119-f4eac0279575"}}},{"type":"Tutorial Topic","name":"Set up the Market","config":"{\n \"image\": \"market\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Topic - Set Up the Market\"\n }\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"market\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Set Up the Market 1\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"cae5ddd4-0c48-488d-86f7-38192c7fdbca","savedPayload":{"position":{"x":31483.85656861048,"y":40749.74665547167},"targetPosition":{"x":31185.5,"y":40718.38811649137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"asset\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Set Up the Market 2\"\n },\n \"controlDocs\": {\n \"panel\": \"Open\",\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"Topic\",\n \"type\": \"References\",\n \"anchor\": \"How to Estabish and Remove References\"\n }\n }\n}","project":"Superalgos","id":"a7a049cb-72e0-4d76-9247-ee0d873e79c8","savedPayload":{"position":{"x":31408.443447643218,"y":40919.12729839903},"targetPosition":{"x":31185.5,"y":40718.38811649137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"asset\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Set Up the Market 3\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\"\n }\n}","project":"Superalgos","id":"9710d88d-c4ae-406b-9079-31bcf7395817","savedPayload":{"position":{"x":31247.873507245327,"y":41011.832396711514},"targetPosition":{"x":31185.5,"y":40718.38811649137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"market\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Set Up the Market 4\"\n }\n}","project":"Superalgos","id":"2d2ce361-6261-44b4-b7ff-466035934334","savedPayload":{"position":{"x":31063.47900707726,"y":40992.45175378415},"targetPosition":{"x":31185.5,"y":40718.38811649137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"4de3cd7d-f552-4f39-b4cd-e29269b64668","savedPayload":{"position":{"x":25108.5,"y":37821.13811649137},"targetPosition":{"x":24958.5,"y":37561.33049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Exchange Markets","name":"New Exchange Markets","id":"2fd80894-900e-44ac-a1a7-56c14124f7a1"}}},{"type":"Tutorial Topic","name":"Install the Market","config":"{\n \"image\": \"market\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Topic - Install the Market\"\n }\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[],"id":"e003540b-91f4-41ce-8082-45122ddb55e7","savedPayload":{"position":{"x":24808.5,"y":37821.13811649137},"targetPosition":{"x":24958.5,"y":37561.33049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Topic","name":"Network Verification","config":"{\n \"image\": \"network-node\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Topic - Network Verification\"\n }\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"data-tasks\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Network Verification 1\"\n }\n}","project":"Superalgos","id":"4bca0860-329c-4fde-a11e-d404d0f23431","savedPayload":{"position":{"x":30567.164424312257,"y":40723.28559366852},"targetPosition":{"x":30743.5,"y":40480.58049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Tasks","name":"New Data Tasks","id":"40af91d9-431c-4b7d-addc-aed37bc2f3fe"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"testing-trading-tasks\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Network Verification 2\"\n }\n}","project":"Superalgos","id":"495e3d4c-87a8-4147-ad2a-06920da9d7a6","savedPayload":{"position":{"x":30458.183045111455,"y":40573.28559366852},"targetPosition":{"x":30743.5,"y":40480.58049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Testing Trading Tasks","name":"New Testing Trading Tasks","id":"8117db0a-e418-4f56-8fe4-fda2ddac1cbb"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"production-trading-tasks\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Network Verification 3\"\n }\n}","project":"Superalgos","id":"43b85e55-3417-4b13-a7b6-7c5bc0fb691d","savedPayload":{"position":{"x":30458.183045111455,"y":40387.87539704355},"targetPosition":{"x":30743.5,"y":40480.58049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Production Trading Tasks","name":"New Production Trading Tasks","id":"673caa5f-511d-4688-9305-e5f0f0f780cd"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"data-storage\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Network Verification 4\"\n }\n}","project":"Superalgos","id":"f37edf40-24ba-42d0-9458-bf008c123659","savedPayload":{"position":{"x":30567.164424312257,"y":40237.87539704355},"targetPosition":{"x":30743.5,"y":40480.58049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Data Storage","name":"New Data Storage","id":"e2697759-6038-4943-b90c-5a68651ff9a8"}}}],"tutorialTopics":[],"id":"89c6f1e3-d4c8-48c0-aec1-9dda6e0b9797","savedPayload":{"position":{"x":24658.5,"y":37561.33049535604},"targetPosition":{"x":24958.5,"y":37561.33049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Network Node","name":"My Computer","id":"e452cf65-2b2b-44f2-9e67-bdd9d3c008e4"}}},{"type":"Tutorial Topic","name":"Charts Verification","config":"{\n \"image\": \"charting-space\",\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"positionAtReferenceParent\": true,\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Topic - Charts Verification\"\n }\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"charting-space\",\n \"externalLink\": [\n \"\",\n \"\"\n ],\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Charts Verification 1\"\n }\n}","project":"Superalgos","id":"17eb1e8e-e9f4-4fe4-a8ea-2c0ea0804d87","savedPayload":{"position":{"x":30633.692378864667,"y":40070.772874220704},"targetPosition":{"x":30893.5,"y":40220.772874220704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}},{"type":"Tutorial Step","name":"New Tutorial Step","config":"{\n \"image\": \"time-machine\",\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Charts Verification 2\"\n }\n}","project":"Superalgos","id":"a94fa42a-87c8-4874-ba45-ffa0ffd02f36","savedPayload":{"position":{"x":30893.5,"y":39920.772874220704},"targetPosition":{"x":30893.5,"y":40220.772874220704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"tutorialTopics":[],"id":"064a5be1-bb06-468b-8fad-d78d2c844ee1","savedPayload":{"position":{"x":24808.5,"y":37301.522874220704},"targetPosition":{"x":24958.5,"y":37561.33049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"},"referenceParent":{"type":"Charting Space","name":"New Charting Space","id":"21d2ec55-9e56-4652-8e96-c7e451262c36"}}},{"type":"Tutorial Topic","name":"The End","config":"{\n \"image\": \"tutorial\",\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"documentationURL\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Topic - You Made It!\"\n }\n}","project":"Superalgos","tutorialSteps":[],"tutorialTopics":[],"id":"9b5e9927-860c-4b89-ac5d-d7f6fd86b18d","savedPayload":{"position":{"x":25108.5,"y":37301.522874220704},"targetPosition":{"x":24958.5,"y":37561.33049535604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Reset"}}}],"id":"d86ff84f-15d3-4a2d-9674-114c5b526de5","savedPayload":{"position":{"x":24969.5,"y":37571.33049535604},"targetPosition":{"x":24969.5,"y":37571.33049535604},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isPlaying":true,"isRunning":false},"tutorial":{"status":"Done"}}},{"type":"APIs","name":"New APIs","project":"Superalgos","githubAPI":{"type":"Github API","name":"New Github API","config":"{\n \"username\": \"\",\n \"token\": \"\"\n}","project":"Superalgos","id":"9ea7bee2-c4db-4cee-a05f-63fcf3a86a4a","savedPayload":{"position":{"x":31349.208333333332,"y":10755.819458631257},"targetPosition":{"x":31049.208333333332,"y":10755.819458631257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"23021bb7-9997-4fe6-8199-71ebf70aef76","savedPayload":{"position":{"x":31049.208333333332,"y":10755.819458631257},"targetPosition":{"x":31049.208333333332,"y":10755.819458631257},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Trading System","name":"New Trading System","project":"Superalgos","tradingStrategies":[{"type":"Trading Strategy","name":"New Trading Strategy","project":"Superalgos","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"// Type you code","project":"Superalgos","id":"64a86fa1-8ce7-4bca-a684-20f8d1126d70","savedPayload":{"position":{"x":30720.690987174497,"y":30424.038745267728},"targetPosition":{"x":30854.341965802752,"y":30492.13732022866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e21a0776-acd7-4cb2-9f5f-2bcbfa6e89e0","savedPayload":{"position":{"x":30854.341965802752,"y":30492.13732022866},"targetPosition":{"x":30987.992944431007,"y":30560.23589518959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bb7fdf98-25b3-4282-81cc-0658dcf6d484","savedPayload":{"position":{"x":30987.992944431007,"y":30560.23589518959},"targetPosition":{"x":31121.643923059262,"y":30628.334470150523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"1f62cb3d-19fa-4717-a113-c0915e8ceaa0","savedPayload":{"position":{"x":31121.643923059262,"y":30628.334470150523},"targetPosition":{"x":31255.294901687517,"y":30696.433045111455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"// Type you code","project":"Superalgos","id":"f11bf186-ccfd-4e60-8260-f52cdf898bb4","savedPayload":{"position":{"x":31069.884705062545,"y":30125.799135334357},"targetPosition":{"x":31116.237254218788,"y":30268.45761277863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7051b998-d100-48b2-90a4-d5e3f361e334","savedPayload":{"position":{"x":31116.237254218788,"y":30268.45761277863},"targetPosition":{"x":31162.58980337503,"y":30411.116090222906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d76e94fb-d895-4634-90f9-667d0367e210","savedPayload":{"position":{"x":31162.58980337503,"y":30411.116090222906},"targetPosition":{"x":31208.942352531274,"y":30553.77456766718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"0d1dc41a-7185-43a8-814e-e6a5300e6a1d","savedPayload":{"position":{"x":31208.942352531274,"y":30553.77456766718},"targetPosition":{"x":31255.294901687517,"y":30696.433045111455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"// Type you code","project":"Superalgos","id":"c8cb9f04-5192-4b0c-b87b-d614ef07ec58","savedPayload":{"position":{"x":31527.689201531244,"y":30161.829130598435},"targetPosition":{"x":31459.590626570312,"y":30295.48010922669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3094206b-682a-481a-9b36-5d86eb621ef5","savedPayload":{"position":{"x":31459.590626570312,"y":30295.48010922669},"targetPosition":{"x":31391.49205160938,"y":30429.131087854945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7a3d4c6a-147e-4b75-8914-4ca3972ab3d5","savedPayload":{"position":{"x":31391.49205160938,"y":30429.131087854945},"targetPosition":{"x":31323.39347664845,"y":30562.7820664832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"0e1d431a-e1be-439e-9f86-2771f5f3fde4","savedPayload":{"position":{"x":31323.39347664845,"y":30562.7820664832},"targetPosition":{"x":31255.294901687517,"y":30696.433045111455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"f8551c2e-bbb4-4cba-ab56-d7873f725f07","savedPayload":{"position":{"x":31255.294901687517,"y":30696.433045111455},"targetPosition":{"x":31348,"y":30981.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","config":"{\n\"roundingErrorCorrectionFactor\": 1.01, \n\"absoluteDustInBaseAsset\": 0,\n\"absoluteDustInQuotedAsset\": 0 \n}","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"c2cc6b16-4d23-4fb5-ba60-a05c6758f6ea","savedPayload":{"position":{"x":31284.964286449067,"y":30023.69772550875},"targetPosition":{"x":31461.29986213681,"y":30266.402823821234},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5febb99a-093e-4ae2-afa8-e28743b302c3","savedPayload":{"position":{"x":31461.29986213681,"y":30266.402823821234},"targetPosition":{"x":31637.635437824552,"y":30509.107922133717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"4f17a02a-185b-4c85-b26f-85667100b1a7","savedPayload":{"position":{"x":31731.49611684869,"y":29916.494917776636},"targetPosition":{"x":31684.565777336622,"y":30212.801419955176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bba4131a-dd63-490c-97a7-819c484a9a6a","savedPayload":{"position":{"x":31684.565777336622,"y":30212.801419955176},"targetPosition":{"x":31637.635437824552,"y":30509.107922133717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"f9ae8796-8a5b-421e-b2b1-8741ea1a8cc2","savedPayload":{"position":{"x":32123.045634449518,"y":30156.43677075823},"targetPosition":{"x":31880.340536137035,"y":30332.772346445974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"19f04a50-0d33-4c0b-a723-1dd922de9b57","savedPayload":{"position":{"x":31880.340536137035,"y":30332.772346445974},"targetPosition":{"x":31637.635437824552,"y":30509.107922133717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d41b3907-2ae7-4d87-8b10-f80fc30107d1","savedPayload":{"position":{"x":31637.635437824552,"y":30509.107922133717},"targetPosition":{"x":31590.705098312483,"y":30805.414424312257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[],"id":"90f51fa8-874d-460c-9f40-b4c533c0e75f","savedPayload":{"position":{"x":31833.410196624965,"y":30629.078848624515},"targetPosition":{"x":31590.705098312483,"y":30805.414424312257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStageEvent":{"type":"Close Stage Event","name":"New Close Stage Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"// Type you code","project":"Superalgos","id":"76f03cf3-14ab-444d-847d-a3d86244236c","savedPayload":{"position":{"x":32183.31810266957,"y":30899.27510333639},"targetPosition":{"x":32035.1648515803,"y":30875.809933580356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"da3fb954-8ee5-4537-98ef-7ae9a9d18ade","savedPayload":{"position":{"x":32035.1648515803,"y":30875.809933580356},"targetPosition":{"x":31887.011600491027,"y":30852.344763824323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"230c7c45-dfe4-44cf-96fd-103ccc94c7ec","savedPayload":{"position":{"x":31887.011600491027,"y":30852.344763824323},"targetPosition":{"x":31738.858349401755,"y":30828.87959406829},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"9516578c-09f5-4e5a-9512-bd6a972e653b","savedPayload":{"position":{"x":31738.858349401755,"y":30828.87959406829},"targetPosition":{"x":31590.705098312483,"y":30805.414424312257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"a4bc39be-42fd-4439-9397-d4f9b72c86ae","savedPayload":{"position":{"x":31590.705098312483,"y":30805.414424312257},"targetPosition":{"x":31348,"y":30981.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"New Manage Stage","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"2355e7d2-8df6-40ea-89b5-c14871b45a46","savedPayload":{"position":{"x":32038.23995122821,"y":31205.12338415819},"targetPosition":{"x":31889.061666922968,"y":31189.44411466804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"6c14c525-08b9-47ab-a147-10a974ae6ceb","savedPayload":{"position":{"x":31889.061666922968,"y":31189.44411466804},"targetPosition":{"x":31739.883382617725,"y":31173.76484517789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b6587a2b-f666-49b8-a613-f0e2364d77ca","savedPayload":{"position":{"x":31739.883382617725,"y":31173.76484517789},"targetPosition":{"x":31590.705098312483,"y":31158.085575687743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"ec410d91-2186-4c11-9298-a7e728004bea","savedPayload":{"position":{"x":31773.736587696596,"y":31569.18103162692},"targetPosition":{"x":31712.726091235225,"y":31432.149212980526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"e0f595de-f085-4890-bc73-881928da8d60","savedPayload":{"position":{"x":31712.726091235225,"y":31432.149212980526},"targetPosition":{"x":31651.715594773854,"y":31295.117394334135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5ef91d3f-b318-4ff2-9690-d79830001df6","savedPayload":{"position":{"x":31651.715594773854,"y":31295.117394334135},"targetPosition":{"x":31590.705098312483,"y":31158.085575687743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"4e67c91b-a870-48e7-86b6-97d1ffa7df85","savedPayload":{"position":{"x":31590.705098312483,"y":31158.085575687743},"targetPosition":{"x":31348,"y":30981.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","config":"{\n\"roundingErrorCorrectionFactor\": 1.01, \n\"absoluteDustInBaseAsset\": 0,\n\"absoluteDustInQuotedAsset\": 0 \n}","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"ff36b87d-b2af-432d-aad7-9f425d05da30","savedPayload":{"position":{"x":31962.12596138647,"y":31719.77910877002},"targetPosition":{"x":31676.809006497926,"y":31627.074010457538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0c4588ed-6aad-4e43-aea2-fd857cdde709","savedPayload":{"position":{"x":31676.809006497926,"y":31627.074010457538},"targetPosition":{"x":31391.49205160938,"y":31534.368912145055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"b63cde4a-ffa7-4d55-827e-fdbe25d55f92","savedPayload":{"position":{"x":31663.886351453108,"y":32068.972826658075},"targetPosition":{"x":31527.689201531244,"y":31801.670869401565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"888c1960-5e4e-40bf-86a5-0733ad54d2d4","savedPayload":{"position":{"x":31527.689201531244,"y":31801.670869401565},"targetPosition":{"x":31391.49205160938,"y":31534.368912145055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"555c938b-6d6a-43dc-89f2-864738616991","savedPayload":{"position":{"x":31206.081854984415,"y":32105.002821922146},"targetPosition":{"x":31298.786953296898,"y":31819.6858670336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a8c951b1-9c11-4f6d-8461-fb935cf062d8","savedPayload":{"position":{"x":31298.786953296898,"y":31819.6858670336},"targetPosition":{"x":31391.49205160938,"y":31534.368912145055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f33dc477-014b-4b16-a6bb-0c347f5a4992","savedPayload":{"position":{"x":31391.49205160938,"y":31534.368912145055},"targetPosition":{"x":31255.294901687517,"y":31267.066954888545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","name":"New Close Execution","project":"Superalgos","executionAlgorithms":[],"id":"b79f9f3f-01e6-417f-b644-825e17427e7c","savedPayload":{"position":{"x":31162.589803375035,"y":31552.38390977709},"targetPosition":{"x":31255.294901687517,"y":31267.066954888545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStageEvent":{"type":"Close Stage Event","name":"New Close Stage Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"// Type you code","project":"Superalgos","id":"c6103247-6024-4e7d-81a5-833dc6d8d3ff","savedPayload":{"position":{"x":30720.690987174497,"y":31539.461254732272},"targetPosition":{"x":30854.341965802752,"y":31471.36267977134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8655ace0-0cba-4682-aa94-795a3d34ce9a","savedPayload":{"position":{"x":30854.341965802752,"y":31471.36267977134},"targetPosition":{"x":30987.992944431007,"y":31403.26410481041},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"42267582-434d-4698-81d6-7ae8093d9a3a","savedPayload":{"position":{"x":30987.992944431007,"y":31403.26410481041},"targetPosition":{"x":31121.643923059262,"y":31335.165529849477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"8ebc6ab4-56ff-4afc-9741-a5ea2d8495f3","savedPayload":{"position":{"x":31121.643923059262,"y":31335.165529849477},"targetPosition":{"x":31255.294901687517,"y":31267.066954888545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"3baca3ee-6498-4db5-8ba9-d7c9640907cf","savedPayload":{"position":{"x":31255.294901687517,"y":31267.066954888545},"targetPosition":{"x":31348,"y":30981.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6b8ed032-1481-4e79-bcfa-b4d572e21df3","savedPayload":{"position":{"x":31348,"y":30981.75},"targetPosition":{"x":31048,"y":30981.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"dynamicIndicators":{"type":"Dynamic Indicators","name":"New Dynamic Indicators","project":"Superalgos","indicatorFunctions":[{"type":"Indicator Function","name":"New Indicator Function","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"3e3301b4-6742-49c8-82d6-20cd3453365f","savedPayload":{"position":{"x":30148,"y":30981.75},"targetPosition":{"x":30448,"y":30981.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"21cc000a-cdbd-4c02-b1e4-4c4560861792","savedPayload":{"position":{"x":30448,"y":30981.75},"targetPosition":{"x":30748,"y":30981.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ec700c19-7aee-4180-bb1f-5493f518e7ee","savedPayload":{"position":{"x":30748,"y":30981.75},"targetPosition":{"x":31048,"y":30981.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"91a1d0d1-2a1a-45d5-a52b-b2dc5502339f","savedPayload":{"position":{"x":31048,"y":30981.75},"targetPosition":{"x":31048,"y":30981.75},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}]} \ No newline at end of file diff --git a/Projects/Superalgos/Plugins/Workspaces/Tutorial Hello World.json b/Projects/Superalgos/Plugins/Workspaces/Tutorial Hello World.json index 297fdb51e..44c11ebd3 100644 --- a/Projects/Superalgos/Plugins/Workspaces/Tutorial Hello World.json +++ b/Projects/Superalgos/Plugins/Workspaces/Tutorial Hello World.json @@ -1 +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":"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-Period-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-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"Simple Moving Average (SMA) Multi-Period-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-Period-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":"fa7991b3-e23e-4c27-9baa-d51662826715","savedPayload":{"position":{"x":24564.356993272086,"y":29557.784483506297},"targetPosition":{"x":24639.356993272086,"y":29687.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Volumes","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"1e73261c-222e-4d46-8b5d-fb4443f8a9b9","savedPayload":{"position":{"x":24828.179850037464,"y":29282.99179899527},"targetPosition":{"x":24789.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":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"54027558-ce8c-41d1-a70f-42b13f7b8e0c","savedPayload":{"position":{"x":24895.423010450068,"y":29321.81465576065},"targetPosition":{"x":24789.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":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"c3f094c3-15ee-4546-983f-04503e987e86","savedPayload":{"position":{"x":24789.356993272086,"y":29427.88067293863},"targetPosition":{"x":24714.356993272086,"y":29557.784483506297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d5c7b9ba-a877-45bc-b642-cc881f87923a","savedPayload":{"position":{"x":24714.356993272086,"y":29557.784483506297},"targetPosition":{"x":24639.356993272086,"y":29687.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cc7a33e2-3e1e-4a4c-904e-3de0b123c0e4","savedPayload":{"position":{"x":24639.356993272086,"y":29687.688294073963},"targetPosition":{"x":24639.356993272086,"y":29837.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"822b2f4b-03a5-4d6b-9912-e24c250fe0fb","savedPayload":{"position":{"x":24639.356993272086,"y":29837.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":"Masters","id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959"}}}],"id":"bb408449-c0d0-4ee3-96e4-2efd2018def7","savedPayload":{"position":{"x":24639.356993272086,"y":29987.688294073963},"targetPosition":{"x":24789.356993272086,"y":30247.495915209296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"0668fe30-3275-4214-b03a-2cf839663a58","savedPayload":{"position":{"x":24789.356993272086,"y":30247.495915209296},"targetPosition":{"x":24939.356993272086,"y":30507.30353634463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"d7dbe5ba-e336-40e3-8020-16259555c674","savedPayload":{"position":{"x":24939.356993272086,"y":30507.30353634463},"targetPosition":{"x":25089.356993272086,"y":30767.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"40af91d9-431c-4b7d-addc-aed37bc2f3fe","savedPayload":{"position":{"x":25089.356993272086,"y":30767.11115747996},"targetPosition":{"x":25239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningTasks":{"type":"Learning Tasks","name":"New Learning Tasks","project":"Superalgos","projectLearningTasks":[{"type":"Project Learning Tasks","name":"Superalgos","project":"Superalgos","exchangeLearningTasks":[{"type":"Exchange Learning Tasks","name":"Binance","project":"Superalgos","marketLearningTasks":[{"type":"Market Learning Tasks","name":"Binance BTC/USDT","project":"Superalgos","learningMineTasks":[],"id":"99674aeb-c2be-4f0a-9730-a92d5e374042","savedPayload":{"position":{"x":25209.356993272086,"y":30823.11115747996},"targetPosition":{"x":25267.356993272086,"y":30739.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"f49b24c7-22b3-4ed8-b2cb-7e59c371a25b","savedPayload":{"position":{"x":25267.356993272086,"y":30739.11115747996},"targetPosition":{"x":25361.356993272086,"y":30800.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"ce5aa7fc-f28d-4b06-9183-59fcc8919004","savedPayload":{"position":{"x":25361.356993272086,"y":30800.11115747996},"targetPosition":{"x":25389.356993272086,"y":30767.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"0818dfbe-61ea-40b8-8544-bee25d7f45be","savedPayload":{"position":{"x":25389.356993272086,"y":30767.11115747996},"targetPosition":{"x":25239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"testingTradingTasks":{"type":"Testing Trading Tasks","name":"New Testing Trading Tasks","project":"Superalgos","projectTradingTasks":[{"type":"Project Trading Tasks","name":"Superalgos","project":"Superalgos","exchangeTradingTasks":[{"type":"Exchange Trading Tasks","name":"Binance","project":"Superalgos","marketTradingTasks":[{"type":"Market Trading Tasks","name":"Binance BTC/USDT","project":"Superalgos","tradingMineTasks":[{"type":"Trading Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Hello World Trading System","project":"Superalgos","bot":{"type":"Trading Bot Instance","name":"Low Frequency","project":"Superalgos","processes":[{"type":"Trading Process Instance","name":"Low Frequency Trading","project":"Superalgos","session":{"type":"Backtesting Session","name":"Hello World Trading System","config":"{\"folderName\":\"Hello-World-Trading-System\"}","project":"Superalgos","tradingParameters":{"type":"Trading Parameters","name":"New Trading Parameters","project":"Superalgos","sessionBaseAsset":{"type":"Session Base Asset","name":"","config":"{\n \"initialBalance\": 0\n}","project":"Superalgos","id":"7e2973d6-2d6c-4826-9835-82853d8d10bf","savedPayload":{"position":{"x":28315.291877706186,"y":30547.48478700282},"targetPosition":{"x":28451.48902762805,"y":30814.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sessionQuotedAsset":{"type":"Session Quoted Asset","name":"","config":"{\n \"initialBalance\": 1000\n}","project":"Superalgos","id":"69058658-5514-43e2-994a-268374d529a9","savedPayload":{"position":{"x":28404.55868811598,"y":30518.48024208079},"targetPosition":{"x":28451.48902762805,"y":30814.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"New Time Range","config":"{\n \"initialDatetime\": \"2020-02-01\",\n \"finalDatetime\": \"2099-12-31\"\n}","project":"Superalgos","id":"cfe24af2-2708-455c-b89c-d87179b3498a","savedPayload":{"position":{"x":28498.41936714012,"y":30518.48024208079},"targetPosition":{"x":28451.48902762805,"y":30814.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","config":"{\n \"label\": \"04-hs\"\n}","project":"Superalgos","id":"ab2d96a9-316a-4c12-9e7f-fc5d6d19b5d2","savedPayload":{"position":{"x":28587.686177549913,"y":30547.48478700282},"targetPosition":{"x":28451.48902762805,"y":30814.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","config":"{\n \"marketOrderRate\": 0,\n \"stopLoss\": 0,\n \"takeProfit\": 0\n}","project":"Superalgos","id":"f8929f3f-f478-4e07-acd9-aa10c082b78a","savedPayload":{"position":{"x":28663.621061984013,"y":30602.654709903367},"targetPosition":{"x":28451.48902762805,"y":30814.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","config":"{\n \"maker\": 0.1,\n \"taker\": 0.1\n}","project":"Superalgos","id":"853efa3c-1c68-4252-9a41-629ef26c4d77","savedPayload":{"position":{"x":28718.79098488456,"y":30678.589594337467},"targetPosition":{"x":28451.48902762805,"y":30814.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"snapshots":{"type":"Snapshots","name":"New Snapshots","config":"{ \n\"strategy\": true,\n\"position\": true\n}","project":"Superalgos","id":"e63e43c2-d90a-415a-828b-0004e29a8e12","savedPayload":{"position":{"x":28747.79552980659,"y":30767.85640474726},"targetPosition":{"x":28451.48902762805,"y":30814.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"heartbeats":{"type":"Heartbeats","name":"New Heartbeats","config":"{ \n\"date\": true,\n\"candleIndex\": false\n}","project":"Superalgos","id":"dcfe6570-0e02-4dc6-a009-db319bcaa363","savedPayload":{"position":{"x":28747.79552980659,"y":30861.7170837714},"targetPosition":{"x":28451.48902762805,"y":30814.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedParameters":{"type":"User Defined Parameters","name":"New User Defined Parameters","config":"{ \n\"param1Name\": \"A text string value example\",\n\"param2Name\": 0\n}","project":"Superalgos","id":"9c799ece-6fbd-4123-8fed-ce8652c17872","savedPayload":{"position":{"x":28718.79098488456,"y":30950.983894181194},"targetPosition":{"x":28451.48902762805,"y":30814.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"85d5b9da-c460-4524-9559-e672af19d0e7","savedPayload":{"position":{"x":28451.48902762805,"y":30814.78674425933},"targetPosition":{"x":28239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingSystemReference":{"type":"Trading System Reference","name":"Hello World Trading System","project":"Superalgos","id":"ba65703e-5f8e-4b73-a1cb-9868642c7381","savedPayload":{"position":{"x":28539.356993272086,"y":31026.918778615294},"targetPosition":{"x":28239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Hello World Trading System","id":"828f4dd3-7564-4022-96e2-bb3ec5b52ede"}}},"tradingEngineReference":{"type":"Trading Engine Reference","name":"Low-Frequency","project":"Superalgos","id":"779046ca-123c-435b-bc70-5c09cf238f3a","savedPayload":{"position":{"x":28451.48902762805,"y":31239.050812971258},"targetPosition":{"x":28239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading Engine","name":"Low-Frequency","id":"eb20f622-71bf-4479-a574-d2320e1d4bd1"}}},"id":"a81c54d1-e345-46f4-9dd4-07ec436bd1e5","savedPayload":{"position":{"x":28239.356993272086,"y":31026.918778615294},"targetPosition":{"x":27939.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6d2f25b6-da2c-4d68-856c-fab8f3df801f","savedPayload":{"position":{"x":27939.356993272086,"y":31026.918778615294},"targetPosition":{"x":27639.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Trading","id":"a8c8d761-96e5-4a86-9285-6c3881d61442"}}}],"id":"dbfa05e0-5d2a-479d-9b31-a497d6a95097","savedPayload":{"position":{"x":27639.356993272086,"y":31026.918778615294},"targetPosition":{"x":27339.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"34922933-f3e6-41e6-8267-89e400f4a3c8","savedPayload":{"position":{"x":27339.356993272086,"y":31026.918778615294},"targetPosition":{"x":27039.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aabdf9ff-7fcb-46de-9519-daa0b81a378e","savedPayload":{"position":{"x":27039.356993272086,"y":31026.918778615294},"targetPosition":{"x":26739.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"70445c02-6c39-4a07-a172-c3ee57e803a6","savedPayload":{"position":{"x":26739.356993272086,"y":31026.918778615294},"targetPosition":{"x":26439.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"0fea5f8f-ad4d-479c-b9a2-1ce6b18ae73b","savedPayload":{"position":{"x":26439.356993272086,"y":31026.918778615294},"targetPosition":{"x":26139.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"1b38e134-d6ae-458e-b196-8c0807d21718","savedPayload":{"position":{"x":26139.356993272086,"y":31026.918778615294},"targetPosition":{"x":25839.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"16431e3b-fa41-4143-a5f8-933dd206aafe","savedPayload":{"position":{"x":25839.356993272086,"y":31026.918778615294},"targetPosition":{"x":25539.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"8117db0a-e418-4f56-8fe4-fda2ddac1cbb","savedPayload":{"position":{"x":25539.356993272086,"y":31026.918778615294},"targetPosition":{"x":25239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"productionTradingTasks":{"type":"Production Trading Tasks","name":"New Production Trading Tasks","project":"Superalgos","projectTradingTasks":[{"type":"Project Trading Tasks","name":"Superalgos","project":"Superalgos","exchangeTradingTasks":[],"id":"ef199104-f999-4bf3-987f-fc59b5b8ac98","savedPayload":{"position":{"x":25539.356993272086,"y":31546.53402088596},"targetPosition":{"x":25389.356993272086,"y":31286.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"673caa5f-511d-4688-9305-e5f0f0f780cd","savedPayload":{"position":{"x":25389.356993272086,"y":31286.726399750627},"targetPosition":{"x":25239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataStorage":{"type":"Data Storage","name":"New Data Storage","project":"Superalgos","dataMinesData":{"type":"Data Mines Data","name":"New Data Mines Data","project":"Superalgos","projectDataProducts":[{"type":"Project Data Products","name":"Superalgos","project":"Superalgos","exchangeDataProducts":[{"type":"Exchange Data Products","name":"Binance","project":"Superalgos","marketDataProducts":[{"type":"Market Data Products","name":"Binance BTC/USDT","project":"Superalgos","dataProducts":[],"dataMineProducts":[{"type":"Data Mine Products","name":"Sparta","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"Simple Moving Average (SMA)","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Popular SMAs","project":"Superalgos","id":"6ddb2ba7-5caf-43c0-989f-9ce1bebd2cfd","savedPayload":{"position":{"x":25181.19913560607,"y":31757.15985816277},"targetPosition":{"x":25138.19913560607,"y":31663.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular SMAs","id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34"}}},{"type":"Data Product","name":"Base7 SMAs","project":"Superalgos","id":"baf7de68-a10f-4a20-b6cf-d087b8ac1f4c","savedPayload":{"position":{"x":25069.19913560607,"y":31636.15985816277},"targetPosition":{"x":25138.19913560607,"y":31663.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 SMAs","id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6"}}},{"type":"Data Product","name":"Base11 SMAs","project":"Superalgos","id":"f65cacd5-38dd-4027-9afe-474e702562b0","savedPayload":{"position":{"x":25104.19913560607,"y":31673.15985816277},"targetPosition":{"x":25138.19913560607,"y":31663.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 SMAs","id":"05fabbf9-7798-4a53-995e-53ae74bef3de"}}},{"type":"Data Product","name":"Base5 SMAs","project":"Superalgos","id":"24f5e2e3-80e6-4235-827a-df806c29de60","savedPayload":{"position":{"x":25157.19913560607,"y":31643.15985816277},"targetPosition":{"x":25138.19913560607,"y":31663.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base5 SMAs","id":"2dcb55de-1673-409e-aa52-f51e7c7f8fa3"}}},{"type":"Data Product","name":"Base6 SMAs","project":"Superalgos","id":"7a8425c8-21b3-419d-b4c9-da45bf7310f1","savedPayload":{"position":{"x":25170.19913560607,"y":31596.15985816277},"targetPosition":{"x":25138.19913560607,"y":31663.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base6 SMAs","id":"4ae22e54-cd02-4e2e-b638-1c5ea9a171ac"}}},{"type":"Data Product","name":"Base12 SMAs","project":"Superalgos","id":"9569a7a7-6d46-4750-9399-1f5fe236de6a","savedPayload":{"position":{"x":25215.19913560607,"y":31740.15985816277},"targetPosition":{"x":25138.19913560607,"y":31663.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base12 SMAs","id":"723d28e9-a010-48c5-bda0-43a4c2343ddf"}}},{"type":"Data Product","name":"Base30 SMAs","project":"Superalgos","id":"04fbe4ba-f1eb-47ee-a6af-6134aee51719","savedPayload":{"position":{"x":25038.19913560607,"y":31642.15985816277},"targetPosition":{"x":25138.19913560607,"y":31663.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base30 SMAs","id":"607ebabd-9602-4e5c-803d-d4207dbd6794"}}}],"dataProductFolders":[],"id":"c95a8960-ac28-4cde-a167-fc63ae2d95bd","savedPayload":{"position":{"x":25138.19913560607,"y":31663.15985816277},"targetPosition":{"x":25159.19913560607,"y":31695.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c7be79d8-0871-44d4-8445-c02b602b399a","savedPayload":{"position":{"x":25159.19913560607,"y":31695.15985816277},"targetPosition":{"x":25250.19913560607,"y":31632.15985816277},"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 Products","name":"Masters","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"Exchange Raw Data","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Candles","project":"Superalgos","id":"916ca8d7-52f6-43da-aae6-6dcf94744dfb","savedPayload":{"position":{"x":25307.19913560607,"y":31513.15985816277},"targetPosition":{"x":25300.19913560607,"y":31562.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles","id":"2443883b-6959-42a3-ae3b-ef3102ffcdcc"}}},{"type":"Data Product","name":"Volumes","project":"Superalgos","id":"388fb5e4-41bf-4903-a67d-6a82c7f7a879","savedPayload":{"position":{"x":25368.19913560607,"y":31523.15985816277},"targetPosition":{"x":25300.19913560607,"y":31562.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"3a43c6f3-bac0-404e-865f-822eb48c8660"}}}],"dataProductFolders":[],"id":"34f9c4fd-97e2-4ed6-8b24-da3b265f960b","savedPayload":{"position":{"x":25300.19913560607,"y":31562.15985816277},"targetPosition":{"x":25328.19913560607,"y":31608.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Products","name":"Webhooks","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"External Signals","project":"Superalgos","id":"2ebe28e3-c2a4-4b93-a4d0-727dbc729b75","savedPayload":{"position":{"x":25295.19913560607,"y":31621.15985816277},"targetPosition":{"x":25380.19913560607,"y":31544.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"External Signals","id":"29196db8-4c41-47ea-be7e-952cd9be9a0b"}}}],"dataProductFolders":[],"id":"2906fb77-54fb-4d4e-8ca7-7219b74aef5b","savedPayload":{"position":{"x":25380.19913560607,"y":31544.15985816277},"targetPosition":{"x":25328.19913560607,"y":31608.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Products","name":"Candles Volumes","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Candles","project":"Superalgos","id":"d90925c5-c2be-4437-b337-e9353d57669b","savedPayload":{"position":{"x":25279.19913560607,"y":31697.15985816277},"targetPosition":{"x":25280.19913560607,"y":31614.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","project":"Superalgos","id":"bde169a8-e0a3-44dd-adba-853c89295bde","savedPayload":{"position":{"x":25264.19913560607,"y":31641.15985816277},"targetPosition":{"x":25280.19913560607,"y":31614.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}}],"dataProductFolders":[],"id":"82182ba1-362a-4229-8b8c-7cf208c97f51","savedPayload":{"position":{"x":25280.19913560607,"y":31614.15985816277},"targetPosition":{"x":25328.19913560607,"y":31608.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"45f36208-7796-446e-8e2e-4f4ba67ff697","savedPayload":{"position":{"x":25328.19913560607,"y":31608.15985816277},"targetPosition":{"x":25250.19913560607,"y":31632.15985816277},"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"}}}],"id":"d6acdb4a-dcdd-46b9-aa8e-b7a831f5d896","savedPayload":{"position":{"x":24932.72556260803,"y":32476.460233399197},"targetPosition":{"x":24971.883420274044,"y":32179.026774987055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"4a08ed54-2985-456d-aeb2-ec608b15a065","savedPayload":{"position":{"x":24971.883420274044,"y":32179.026774987055},"targetPosition":{"x":25011.041277940058,"y":31881.593316574912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"e3de3b84-5782-4936-9440-a6063ba7bbc2","savedPayload":{"position":{"x":25011.041277940058,"y":31881.593316574912},"targetPosition":{"x":25050.19913560607,"y":31584.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"32e7c122-fa5a-4d00-9d71-d54e890e32de","savedPayload":{"position":{"x":25050.19913560607,"y":31584.15985816277},"targetPosition":{"x":25089.356993272086,"y":31286.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingMinesData":{"type":"Trading Mines Data","name":"New Trading Mines Data","project":"Superalgos","projectTradingProducts":[{"type":"Project Trading Products","name":"Superalgos","project":"Superalgos","exchangeTradingProducts":[{"type":"Exchange Trading Products","name":"Binance","project":"Superalgos","marketTradingProducts":[{"type":"Market Trading Products","name":"Binance BTC/USDT","project":"Superalgos","tradingSessionReferences":[{"type":"Trading Session Reference","name":"Hello World Trading System Backtesting Session","project":"Superalgos","dataProducts":[],"tradingMineProducts":[{"type":"Trading Mine Products","name":"Masters","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"Low Frequency","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Trading Engine","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Trading Episode","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trading Episode Counters","project":"Superalgos","id":"9a2a56d3-0e17-44fb-8ae5-aba6c8dc5522","savedPayload":{"position":{"x":24987.356993272086,"y":31570.53402088596},"targetPosition":{"x":24896.356993272086,"y":31538.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading Episode Counters","id":"d81c6019-864e-42f5-94ba-2f249b865f85"}}},{"type":"Data Product","name":"Trading Episode Statistics","project":"Superalgos","id":"dac15491-5d83-4f1f-9bed-1ea7b649dba2","savedPayload":{"position":{"x":24934.356993272086,"y":31513.53402088596},"targetPosition":{"x":24896.356993272086,"y":31538.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading Episode Statistics","id":"400c7f49-37da-41fb-b83d-879960aa74ff"}}},{"type":"Data Product","name":"Episode Candle","project":"Superalgos","id":"ad4a94e4-cdd4-43d6-9a5f-e655050203a2","savedPayload":{"position":{"x":24866.356993272086,"y":31597.53402088596},"targetPosition":{"x":24896.356993272086,"y":31538.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Candle","id":"b9a58113-cf27-4d57-9810-87a2cc158804"}}},{"type":"Data Product","name":"Episode Balances","project":"Superalgos","id":"ed269260-9cdd-4ed6-98aa-a9e63bd189be","savedPayload":{"position":{"x":24871.356993272086,"y":31497.53402088596},"targetPosition":{"x":24896.356993272086,"y":31538.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Balances","id":"a9a53d82-133b-4417-b639-f9a56d338233"}}},{"type":"Data Product","name":"Distance To Trading Event","project":"Superalgos","id":"9412328a-0a81-4d00-ad12-5eeae841aea4","savedPayload":{"position":{"x":24907.356993272086,"y":31440.53402088596},"targetPosition":{"x":24896.356993272086,"y":31538.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Distance To Trading Event","id":"8ea88d6c-7d7f-4152-b781-ea108df52c63"}}},{"type":"Data Product","name":"Episode Base Asset","project":"Superalgos","id":"238d6406-1337-4402-a1a8-b396bc7183a8","savedPayload":{"position":{"x":24987.356993272086,"y":31541.53402088596},"targetPosition":{"x":24896.356993272086,"y":31538.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Base Asset","id":"234969ff-eab1-4d59-b6fa-79433c9a20e9"}}},{"type":"Data Product","name":"Episode Quoted Asset","project":"Superalgos","id":"7a260e63-61a3-4567-ba4e-cc2d67be6ee0","savedPayload":{"position":{"x":24849.356993272086,"y":31569.53402088596},"targetPosition":{"x":24896.356993272086,"y":31538.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Quoted Asset","id":"ae525e31-d6a8-47d2-9021-3f2ddb9615b0"}}},{"type":"Data Product","name":"Current Episode","project":"Superalgos","id":"9005ef6f-f6ea-4e49-baeb-9e93acf181cd","savedPayload":{"position":{"x":24861.356993272086,"y":31460.53402088596},"targetPosition":{"x":24896.356993272086,"y":31538.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Episode","id":"b8da0132-ba28-46ec-aa54-eb9eaac56ce7"}}}],"dataProductFolders":[],"id":"31604c9a-3ba0-4925-bd10-01a3cf039776","savedPayload":{"position":{"x":24896.356993272086,"y":31538.53402088596},"targetPosition":{"x":24955.356993272086,"y":31519.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Strategy","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Strategy","project":"Superalgos","id":"e12d72f5-0a2a-4e63-9f2a-f026e933abda","savedPayload":{"position":{"x":25078.356993272086,"y":31506.53402088596},"targetPosition":{"x":25039.356993272086,"y":31471.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Strategy","id":"895d8a04-ef45-41a7-909a-ba31013ffb90"}}},{"type":"Data Product","name":"Last Strategy","project":"Superalgos","id":"3a46e1b6-063b-4955-93f2-c01f8015aa37","savedPayload":{"position":{"x":24959.356993272086,"y":31444.53402088596},"targetPosition":{"x":25039.356993272086,"y":31471.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Strategy","id":"0625f524-2b97-4b4d-8a90-590ffc62ecd3"}}}],"dataProductFolders":[],"id":"2d056c15-aa01-4a86-8d44-92e443d19ce3","savedPayload":{"position":{"x":25039.356993272086,"y":31471.53402088596},"targetPosition":{"x":24955.356993272086,"y":31519.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Position","project":"Superalgos","id":"8dc7fc2d-e7a2-4ea3-a015-49f0c54b4771","savedPayload":{"position":{"x":25010.356993272086,"y":31536.53402088596},"targetPosition":{"x":25023.356993272086,"y":31475.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Position","id":"832ecada-8da3-4ba6-b6e9-be34dd5f7ce9"}}},{"type":"Data Product","name":"Last Position","project":"Superalgos","id":"2eef9228-f520-4955-9585-fcb948680973","savedPayload":{"position":{"x":24963.356993272086,"y":31573.53402088596},"targetPosition":{"x":25023.356993272086,"y":31475.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Position","id":"477cd6d5-862a-44d0-9313-786a4e63a602"}}},{"type":"Data Product","name":"Stop Loss","project":"Superalgos","id":"4f04f670-2101-47e4-a331-c586d04f4149","savedPayload":{"position":{"x":25095.356993272086,"y":31417.53402088596},"targetPosition":{"x":25023.356993272086,"y":31475.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Stop Loss","id":"a1c047bd-e95e-469a-aac9-3d45c4157440"}}},{"type":"Data Product","name":"Take Profit","project":"Superalgos","id":"f65f4843-b0d7-41c2-a072-3e8f1d9dfb20","savedPayload":{"position":{"x":24973.356993272086,"y":31390.53402088596},"targetPosition":{"x":25023.356993272086,"y":31475.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Take Profit","id":"11513bf1-0f23-4d79-b760-83ccebc4e1c5"}}}],"dataProductFolders":[],"id":"ec63a7ca-41bb-40c3-bfee-27034a2f80ad","savedPayload":{"position":{"x":25023.356993272086,"y":31475.53402088596},"targetPosition":{"x":24955.356993272086,"y":31519.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Open Stage","project":"Superalgos","id":"41a3db28-b2f8-4721-8b02-195067276ee7","savedPayload":{"position":{"x":25048.356993272086,"y":31419.53402088596},"targetPosition":{"x":24962.356993272086,"y":31494.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stage","id":"73c3c041-ba2a-4798-a362-a453409b518a"}}},{"type":"Data Product","name":"Close Stage","project":"Superalgos","id":"9367b628-1fa8-49b3-abb2-fee833568ff9","savedPayload":{"position":{"x":24892.356993272086,"y":31505.53402088596},"targetPosition":{"x":24962.356993272086,"y":31494.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stage","id":"2bb9bb41-1ff5-4f83-aa5b-bfc4c9f06a9a"}}},{"type":"Data Product","name":"Trigger Stage","project":"Superalgos","id":"fb71c26a-5145-491e-a638-927b06eebcc1","savedPayload":{"position":{"x":24956.356993272086,"y":31414.53402088596},"targetPosition":{"x":24962.356993272086,"y":31494.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stage","id":"b6cff826-9056-4fbd-8eca-cbd6cceec962"}}},{"type":"Data Product","name":"Manage Stage","project":"Superalgos","id":"4c58969f-8f1b-43fa-97a7-42a4fdead527","savedPayload":{"position":{"x":24869.356993272086,"y":31496.53402088596},"targetPosition":{"x":24962.356993272086,"y":31494.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stage","id":"bd691611-e7a6-49a8-b07d-c15360b55e40"}}}],"dataProductFolders":[],"id":"4eafb662-7d11-4093-a6b7-0ce0e434c1f7","savedPayload":{"position":{"x":24962.356993272086,"y":31494.53402088596},"targetPosition":{"x":24955.356993272086,"y":31519.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"f0cbbb32-53fa-473a-8c4a-535c1d267060","savedPayload":{"position":{"x":24910.356993272086,"y":31417.53402088596},"targetPosition":{"x":24975.356993272086,"y":31443.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"7c769317-2639-4460-8b88-9dc92f7b0585"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"7893f1aa-0976-4150-954c-aa6dc4b0206b","savedPayload":{"position":{"x":24928.356993272086,"y":31505.53402088596},"targetPosition":{"x":24975.356993272086,"y":31443.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"9cc7645a-54fe-40d6-9896-9278167011fb"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"b7cfe3e7-e5b4-437c-b3d1-65d6100290b6","savedPayload":{"position":{"x":24897.356993272086,"y":31454.53402088596},"targetPosition":{"x":24975.356993272086,"y":31443.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"4c827ee0-a29b-4b65-8438-03e2ea98b410"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"d791e38c-a2bc-4aa8-9aec-508145c47df2","savedPayload":{"position":{"x":24995.356993272086,"y":31356.53402088596},"targetPosition":{"x":24975.356993272086,"y":31443.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2c753cd8-36d8-466c-bd80-1ebfa8e314dc"}}},{"type":"Data Product","name":"Last Market Order","project":"Superalgos","id":"85b9356c-8c5f-4774-8536-0cd18c05d752","savedPayload":{"position":{"x":24951.356993272086,"y":31532.53402088596},"targetPosition":{"x":24975.356993272086,"y":31443.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Market Order","id":"6df1ac87-92d5-4788-b0bc-f3543b283ef0"}}},{"type":"Data Product","name":"Last Limit Order","project":"Superalgos","id":"efff2729-03f0-445b-941a-863dfd37a208","savedPayload":{"position":{"x":24944.356993272086,"y":31448.53402088596},"targetPosition":{"x":24975.356993272086,"y":31443.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Limit Order","id":"c24ec6a1-e937-4d20-93eb-4faf2a0becc3"}}}],"dataProductFolders":[],"id":"e1aee47c-c3dc-4465-9af5-384c9661f5d4","savedPayload":{"position":{"x":24975.356993272086,"y":31443.53402088596},"targetPosition":{"x":24955.356993272086,"y":31519.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f1323629-4ee7-41a8-86a8-4e88d60c634a","savedPayload":{"position":{"x":24955.356993272086,"y":31519.53402088596},"targetPosition":{"x":25016.356993272086,"y":31487.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Trading System","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trading System Errors","project":"Superalgos","id":"0f891e49-d7fd-4415-b099-ea80dcf5c321","savedPayload":{"position":{"x":24915.356993272086,"y":31482.53402088596},"targetPosition":{"x":24974.356993272086,"y":31573.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Errors","id":"1d9c570d-77c7-40ac-a61e-c5a57a411de8"}}},{"type":"Data Product","name":"Trading System Highlights","project":"Superalgos","id":"16448d2a-d2d1-4f77-8bd8-2230ac32ec28","savedPayload":{"position":{"x":24902.356993272086,"y":31512.53402088596},"targetPosition":{"x":24974.356993272086,"y":31573.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Highlights","id":"319f660a-78be-4cf4-8052-877837cad806"}}},{"type":"Data Product","name":"Trading System Values","project":"Superalgos","id":"3dcbdc27-4611-41a4-a0c5-aa62b34afee0","savedPayload":{"position":{"x":24924.356993272086,"y":31549.53402088596},"targetPosition":{"x":24974.356993272086,"y":31573.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Values","id":"c90c009b-588d-45d4-aff1-05e375181dfa"}}},{"type":"Data Product","name":"Trading System Status","project":"Superalgos","id":"425b1e48-7a1f-421e-bdea-8801fcbf96c7","savedPayload":{"position":{"x":24953.356993272086,"y":31627.53402088596},"targetPosition":{"x":24974.356993272086,"y":31573.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Status","id":"eed48c80-35c5-49fa-b12d-18e7280ffb8f"}}},{"type":"Data Product","name":"Trading System Progress","project":"Superalgos","id":"2e8c8e09-9c00-44b0-94b9-30314ef11cd4","savedPayload":{"position":{"x":25063.356993272086,"y":31590.53402088596},"targetPosition":{"x":24974.356993272086,"y":31573.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Progress","id":"04c8606b-5e59-4e7d-b3ac-387bfffcd300"}}},{"type":"Data Product","name":"Trading System Running","project":"Superalgos","id":"2fd7020d-cf50-4090-8589-c36c5adae270","savedPayload":{"position":{"x":25046.356993272086,"y":31641.53402088596},"targetPosition":{"x":24974.356993272086,"y":31573.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Running","id":"17236f59-6ef2-4cc3-913c-1ff6db052236"}}},{"type":"Data Product","name":"Trading System Announcements","project":"Superalgos","id":"d8897a38-b8e6-4cb7-8dbc-292f97e2a49b","savedPayload":{"position":{"x":25049.356993272086,"y":31657.53402088596},"targetPosition":{"x":24974.356993272086,"y":31573.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Announcements","id":"4a6f828a-9671-431e-8257-fc920943581e"}}},{"type":"Data Product","name":"Trading System Warnings","project":"Superalgos","id":"70c1fb7b-bfff-4ff3-8713-a7ce552c8107","savedPayload":{"position":{"x":25067.356993272086,"y":31621.53402088596},"targetPosition":{"x":24974.356993272086,"y":31573.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Warnings","id":"34310596-466a-4e9a-a5a2-256b0fe3e339"}}},{"type":"Data Product","name":"Trading System Infos","project":"Superalgos","id":"a0c0c574-780e-4023-83cd-201c526e9a76","savedPayload":{"position":{"x":25034.356993272086,"y":31661.53402088596},"targetPosition":{"x":24974.356993272086,"y":31573.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Infos","id":"020ad519-0fc6-4f2f-9f26-b2c7de118fb8"}}}],"dataProductFolders":[],"id":"68cff154-8b4d-4021-bee5-163383b1b0fb","savedPayload":{"position":{"x":24974.356993272086,"y":31573.53402088596},"targetPosition":{"x":25016.356993272086,"y":31487.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Simulation Objects","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episodes","project":"Superalgos","id":"383bb471-7325-48f7-86a2-b034f96e6aec","savedPayload":{"position":{"x":25141.356993272086,"y":31594.53402088596},"targetPosition":{"x":25100.356993272086,"y":31529.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episodes","id":"aeec080e-8caf-4976-8187-ba4e725b73b0"}}},{"type":"Data Product","name":"Strategies","project":"Superalgos","id":"1f92d8ed-a3fe-4e70-9e0b-ae9bdd66d8b5","savedPayload":{"position":{"x":25179.356993272086,"y":31627.53402088596},"targetPosition":{"x":25100.356993272086,"y":31529.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"21db6fce-8450-4b07-9015-d81a339fd030"}}}],"dataProductFolders":[{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"483a11f5-ce67-493e-969b-57a5585b1c64","savedPayload":{"position":{"x":25187.356993272086,"y":31562.53402088596},"targetPosition":{"x":25173.356993272086,"y":31481.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"db256083-9aa2-48e1-8fd6-3425a5085302"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"2b2ce4ec-96b1-425e-8510-450c02a2c6f2","savedPayload":{"position":{"x":25090.356993272086,"y":31441.53402088596},"targetPosition":{"x":25173.356993272086,"y":31481.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"1958f79b-5c6c-4874-9154-98c314822ed7"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"d425f47e-b69f-467d-b3de-12b563c1fd94","savedPayload":{"position":{"x":25215.356993272086,"y":31423.53402088596},"targetPosition":{"x":25173.356993272086,"y":31481.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"5deceb32-c7ab-4560-818a-0f0b9d6632fb"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"b750b34d-3a85-4571-a145-7e8580d5b252","savedPayload":{"position":{"x":25119.356993272086,"y":31473.53402088596},"targetPosition":{"x":25173.356993272086,"y":31481.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2a1d405b-2fbe-4ed4-a76a-d2c7be59d20e"}}}],"dataProductFolders":[],"id":"3febbb44-efec-4c94-a130-2b5fbbb1d242","savedPayload":{"position":{"x":25173.356993272086,"y":31481.53402088596},"targetPosition":{"x":25100.356993272086,"y":31529.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trigger Stages","project":"Superalgos","id":"4a23f371-b655-40eb-8e7a-c7e87c1ad276","savedPayload":{"position":{"x":24935.356993272086,"y":31638.53402088596},"targetPosition":{"x":25013.356993272086,"y":31606.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stages","id":"18cc2e79-7e57-418c-b635-6c68fc11d681"}}},{"type":"Data Product","name":"Open Stages","project":"Superalgos","id":"b30d6665-4e7e-4e43-959a-c33b09e1cddb","savedPayload":{"position":{"x":25086.356993272086,"y":31569.53402088596},"targetPosition":{"x":25013.356993272086,"y":31606.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stages","id":"d5938c00-0849-466d-ae14-4ea91b571678"}}},{"type":"Data Product","name":"Manage Stages","project":"Superalgos","id":"aaeccd9c-0981-4431-b89c-f67eaa1e305c","savedPayload":{"position":{"x":24923.356993272086,"y":31643.53402088596},"targetPosition":{"x":25013.356993272086,"y":31606.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stages","id":"8fab86b3-db8d-4113-8418-1d256bd98cf2"}}},{"type":"Data Product","name":"Close Stages","project":"Superalgos","id":"730f6f4d-d48b-4107-9b31-8c6a01f1e660","savedPayload":{"position":{"x":25040.356993272086,"y":31581.53402088596},"targetPosition":{"x":25013.356993272086,"y":31606.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stages","id":"ba911e61-f951-48cd-b547-9a70aa211100"}}}],"dataProductFolders":[],"id":"f59be03a-1758-4890-8448-11c510a5fade","savedPayload":{"position":{"x":25013.356993272086,"y":31606.53402088596},"targetPosition":{"x":25100.356993272086,"y":31529.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Positions","project":"Superalgos","id":"840b95d5-ecb4-4a92-891a-cbc271781279","savedPayload":{"position":{"x":25175.356993272086,"y":31499.53402088596},"targetPosition":{"x":25124.356993272086,"y":31521.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Positions","id":"1eabba24-cbd4-4cbf-95e0-c5135349d41d"}}},{"type":"Data Product","name":"Position Base Asset","project":"Superalgos","id":"e3d24ef0-be0f-496a-bb5f-093e588aaae0","savedPayload":{"position":{"x":25130.356993272086,"y":31519.53402088596},"targetPosition":{"x":25124.356993272086,"y":31521.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Base Asset","id":"b371b039-f6c8-4f60-84cb-52f55c96c84d"}}},{"type":"Data Product","name":"Position Quoted Asset","project":"Superalgos","id":"b5bcd589-1515-47c4-9c8b-2286cb5626f8","savedPayload":{"position":{"x":25025.356993272086,"y":31422.53402088596},"targetPosition":{"x":25124.356993272086,"y":31521.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Quoted Asset","id":"a376f02b-a5d2-4079-b5cd-ab7dc894b909"}}},{"type":"Data Product","name":"Stop Loss","project":"Superalgos","id":"e063d9a1-b8d1-4461-954f-dbf5104e9305","savedPayload":{"position":{"x":25025.356993272086,"y":31457.53402088596},"targetPosition":{"x":25124.356993272086,"y":31521.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Stop Loss","id":"c18bdc82-216a-4b1d-8850-5c3c9dc2000b"}}},{"type":"Data Product","name":"Take Profit","project":"Superalgos","id":"6a117f86-984f-48f6-8156-1c95bf0b3cb8","savedPayload":{"position":{"x":25177.356993272086,"y":31461.53402088596},"targetPosition":{"x":25124.356993272086,"y":31521.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Take Profit","id":"2542c7d0-fa26-4b52-a59a-a3630e52eb89"}}}],"dataProductFolders":[],"id":"3b85a07a-8793-4355-a044-e80c9451f3e0","savedPayload":{"position":{"x":25124.356993272086,"y":31521.53402088596},"targetPosition":{"x":25100.356993272086,"y":31529.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f81054f2-4dd8-4973-9cc3-d03704f2c3b4","savedPayload":{"position":{"x":25100.356993272086,"y":31529.53402088596},"targetPosition":{"x":25016.356993272086,"y":31487.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7aff23c3-f3fe-4c04-b614-7a0cb755f488","savedPayload":{"position":{"x":25016.356993272086,"y":31487.53402088596},"targetPosition":{"x":24986.356993272086,"y":31508.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4135dfad-bc00-4d2b-b3d9-ff8b0c97180f","savedPayload":{"position":{"x":24986.356993272086,"y":31508.53402088596},"targetPosition":{"x":24953.356993272086,"y":31425.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"a61c1367-3045-49aa-b85e-ef03d127da71","savedPayload":{"position":{"x":24339.356993272086,"y":32585.76450542729},"targetPosition":{"x":24489.356993272086,"y":32325.956884291958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Backtesting Session","name":"Hello World Trading System","id":"a81c54d1-e345-46f4-9dd4-07ec436bd1e5"}}}],"id":"36af123f-9ca8-484e-bbf2-0d3db0f701b7","savedPayload":{"position":{"x":24489.356993272086,"y":32325.956884291958},"targetPosition":{"x":24639.356993272086,"y":32066.149263156625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"49fa803f-7bbc-4705-b3fa-8bc3ab081f77","savedPayload":{"position":{"x":24639.356993272086,"y":32066.149263156625},"targetPosition":{"x":24789.356993272086,"y":31806.341642021293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"1dc9472c-80a2-4515-bb8a-91f801c925a9","savedPayload":{"position":{"x":24789.356993272086,"y":31806.341642021293},"targetPosition":{"x":24939.356993272086,"y":31546.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"e4e268f3-a677-4f90-90a1-d87244e647e5","savedPayload":{"position":{"x":24939.356993272086,"y":31546.53402088596},"targetPosition":{"x":25089.356993272086,"y":31286.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningMinesData":{"type":"Learning Mines Data","name":"New Learning Mines Data","project":"Superalgos","projectLearningProducts":[{"type":"Project Learning Products","name":"Superalgos","project":"Superalgos","exchangeLearningProducts":[{"type":"Exchange Learning Products","name":"Binance","project":"Superalgos","marketLearningProducts":[{"type":"Market Learning Products","name":"Binance BTC/USDT","project":"Superalgos","learningSessionReferences":[],"id":"bb4ef77d-a231-4396-997d-04230f472eeb","savedPayload":{"position":{"x":24137.3329849226,"y":32017.240114561097},"targetPosition":{"x":24375.33898700997,"y":31834.61168585848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"fe03bedb-5a5c-4ea9-ab7a-746d7e9ce198","savedPayload":{"position":{"x":24375.33898700997,"y":31834.61168585848},"targetPosition":{"x":24613.344989097342,"y":31651.98325715586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"0a0e6de1-dade-4d87-aa29-a70e6b0f8e0b","savedPayload":{"position":{"x":24613.344989097342,"y":31651.98325715586},"targetPosition":{"x":24851.350991184714,"y":31469.354828453244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"2845a687-becc-4c3b-bc79-b2293ba876ba","savedPayload":{"position":{"x":24851.350991184714,"y":31469.354828453244},"targetPosition":{"x":25089.356993272086,"y":31286.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e2697759-6038-4943-b90c-5a68651ff9a8","savedPayload":{"position":{"x":25089.356993272086,"y":31286.726399750627},"targetPosition":{"x":25239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"d"}}},"id":"e452cf65-2b2b-44f2-9e67-bdd9d3c008e4","savedPayload":{"position":{"x":25239.356993272086,"y":31026.918778615294},"targetPosition":{"x":24939.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"3c165071-7558-4708-9999-8ffe71d346b1","savedPayload":{"position":{"x":24939.356993272086,"y":31026.918778615294},"targetPosition":{"x":24939.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},{"type":"Crypto Ecosystem","name":"My Crypto Ecosystem","project":"Superalgos","cryptoExchanges":[{"type":"Crypto Exchanges","name":"Tested","project":"Superalgos","exchanges":[{"type":"Crypto Exchange","name":"Binance","config":"{\n \"codeName\": \"binance\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"fetchType\": \"by Id\",\n \"fetchTradesMethod\": \"publicGetHistoricalTrades\",\n \"firstId\": \"f\"\n }\n ]\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"EUR\"} \n}","project":"Superalgos","assets":[{"type":"Asset","name":"Bitcoin","config":"{ \n\"codeName\": \"BTC\"\n}","project":"Superalgos","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa","savedPayload":{"position":{"x":19793.079365950267,"y":30513.325102172115},"targetPosition":{"x":19715.43365241951,"y":30803.102850058836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Tether","config":"{ \n\"codeName\": \"USDT\"\n}","project":"Superalgos","id":"f110bfa0-bd5b-469b-a940-4524c8688136","savedPayload":{"position":{"x":20005.21140030623,"y":30725.45713652808},"targetPosition":{"x":19715.43365241951,"y":30803.102850058836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"95d2c30f-215b-486e-8119-f4eac0279575","savedPayload":{"position":{"x":19715.43365241951,"y":30803.102850058836},"targetPosition":{"x":19503.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"E"}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","project":"Superalgos","markets":[{"type":"Market","name":"BTC/USDT","config":"{ \n\"codeName\": \"BTC/USDT\"\n}","project":"Superalgos","baseAsset":{"type":"Market Base Asset","name":"Bitcoin","project":"Superalgos","id":"1017b30d-de1b-4212-991e-9fd0a5b6c814","savedPayload":{"position":{"x":20393.079365950267,"y":30937.589170884043},"targetPosition":{"x":20103.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","project":"Superalgos","id":"705c4a67-787a-48cd-a3dc-3a557438bf0b","savedPayload":{"position":{"x":20393.079365950267,"y":31092.880597945557},"targetPosition":{"x":20103.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"f110bfa0-bd5b-469b-a940-4524c8688136"}}},"id":"9a867bf0-a71d-445c-b99a-75b60bbdce09","savedPayload":{"position":{"x":20103.301618063546,"y":31015.2348844148},"targetPosition":{"x":19803.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2fd80894-900e-44ac-a1a7-56c14124f7a1","savedPayload":{"position":{"x":19803.301618063546,"y":31015.2348844148},"targetPosition":{"x":19503.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[{"type":"Exchange Account Asset","name":"Bitcoin","project":"Superalgos","id":"ba6f3d5c-b36b-49d9-947f-392068109169","savedPayload":{"position":{"x":20507.121182548915,"y":31439.498953126727},"targetPosition":{"x":20217.343434662194,"y":31517.144666657485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa"}}},{"type":"Exchange Account Asset","name":"Tether","project":"Superalgos","id":"c90be267-90f9-45ae-b225-0578adb4aad9","savedPayload":{"position":{"x":20429.475469018158,"y":31729.27670101345},"targetPosition":{"x":20217.343434662194,"y":31517.144666657485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"f110bfa0-bd5b-469b-a940-4524c8688136"}}}],"id":"8ac5c2a9-a238-48ae-ab43-0a0a95a37464","savedPayload":{"position":{"x":20217.343434662194,"y":31517.144666657485},"targetPosition":{"x":19927.565686775473,"y":31439.498953126727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"Key for Lighting Strike","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e85bbbd6-aca8-450f-9237-788062de5761","savedPayload":{"position":{"x":20082.857113836988,"y":32019.05444890017},"targetPosition":{"x":20005.21140030623,"y":31729.27670101345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"48925cc9-f3cd-4499-8466-1338fed28a0d","savedPayload":{"position":{"x":20005.21140030623,"y":31729.27670101345},"targetPosition":{"x":19927.565686775473,"y":31439.498953126727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"63794496-c94b-42f9-81cc-c588708617a6","savedPayload":{"position":{"x":19927.565686775473,"y":31439.498953126727},"targetPosition":{"x":19715.43365241951,"y":31227.366918770764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4b0c1ac5-515f-44a9-b9b9-e698a9c51eac","savedPayload":{"position":{"x":19715.43365241951,"y":31227.366918770764},"targetPosition":{"x":19503.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b","savedPayload":{"position":{"x":19503.301618063546,"y":31015.2348844148},"targetPosition":{"x":19203.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"tutorial":{"status":"Done"}}}],"id":"e3879d63-6f8f-41a3-8ac3-0349c4361722","savedPayload":{"position":{"x":19203.301618063546,"y":31015.2348844148},"targetPosition":{"x":18903.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchanges","name":"Untested","project":"Superalgos","exchanges":[{"type":"Crypto Exchange","name":"ACX","config":"{ \n\"codeName\": \"acx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"ebcb522b-ae58-46d2-9d82-a9b0beec3976","savedPayload":{"position":{"x":17935.64382962515,"y":31014.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b2649588-27c6-442c-b179-f6d8817188b3","savedPayload":{"position":{"x":17954.64382962515,"y":31004.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9b2051d5-7ee7-4e94-8c8d-306674889339","savedPayload":{"position":{"x":17838.64382962515,"y":30896.23747069523},"targetPosition":{"x":17766.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"1d5461aa-d26c-4df5-b383-8c83e311b8ca","savedPayload":{"position":{"x":17643.64382962515,"y":30952.23747069523},"targetPosition":{"x":17698.64382962515,"y":30973.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c6372400-de52-4b63-97f3-f748aac9c63f","savedPayload":{"position":{"x":17698.64382962515,"y":30973.23747069523},"targetPosition":{"x":17766.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c948314e-2247-4234-b83d-cc2c1b152665","savedPayload":{"position":{"x":17766.64382962515,"y":30905.23747069523},"targetPosition":{"x":17837.64382962515,"y":30978.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04ccb742-ef1b-4138-b38d-a6b0d92f2f8e","savedPayload":{"position":{"x":17837.64382962515,"y":30978.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e9c21b2d-de21-43b5-8b48-51367a8c981c","savedPayload":{"position":{"x":19313.14497226101,"y":30565.583066825377},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"AOFEX","config":"{ \n\"codeName\": \"aofex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"623ef91b-04c0-4bd5-ac0d-b32c809be3ea","savedPayload":{"position":{"x":17973.64382962515,"y":30923.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"9d0b5855-59a6-4dda-9a4b-33d7a44d582e","savedPayload":{"position":{"x":17901.64382962515,"y":30994.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"e898e569-0dd3-4a22-baa5-caaace66d4ed","savedPayload":{"position":{"x":18062.64382962515,"y":30838.23747069523},"targetPosition":{"x":17982.64382962515,"y":30899.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"64a69d3d-15ff-41c3-a926-5ec93c932ab1","savedPayload":{"position":{"x":17822.64382962515,"y":31052.23747069523},"targetPosition":{"x":17893.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae2785c5-75a1-44fc-a71b-363d88cb5dac","savedPayload":{"position":{"x":17893.64382962515,"y":30981.23747069523},"targetPosition":{"x":17982.64382962515,"y":30899.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07ea69aa-7357-43b1-b548-a4c4fab70c55","savedPayload":{"position":{"x":17982.64382962515,"y":30899.23747069523},"targetPosition":{"x":17971.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2146b410-fc4e-452d-ae57-5d58c9a29706","savedPayload":{"position":{"x":17971.64382962515,"y":30962.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c2e9bb45-97c7-47e8-b13c-56946e673c53","savedPayload":{"position":{"x":19413.67778623216,"y":30647.89853748846},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bequant","config":"{ \n\"codeName\": \"bequant\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"b23c8adf-c880-48fd-b4af-4b4be86cf0e5","savedPayload":{"position":{"x":18059.64382962515,"y":31101.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"523bd94f-68f9-457e-91fd-806c1b95e98d","savedPayload":{"position":{"x":18006.64382962515,"y":31117.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9d914bb1-a68b-41ae-8666-0fcc755358c1","savedPayload":{"position":{"x":17859.64382962515,"y":30964.23747069523},"targetPosition":{"x":17936.64382962515,"y":31059.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"15d903b5-113c-465e-8120-7c46a9a85565","savedPayload":{"position":{"x":17976.64382962515,"y":31146.23747069523},"targetPosition":{"x":17943.64382962515,"y":31134.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2d1c0bc3-abe2-4340-91bf-2eef5b98a2f0","savedPayload":{"position":{"x":17943.64382962515,"y":31134.23747069523},"targetPosition":{"x":17936.64382962515,"y":31059.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5a50d459-914c-4bfc-91e8-f15c383280eb","savedPayload":{"position":{"x":17936.64382962515,"y":31059.23747069523},"targetPosition":{"x":17931.64382962515,"y":31071.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b2f2b69f-3bef-4edc-9950-5261d9f36382","savedPayload":{"position":{"x":17931.64382962515,"y":31071.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8e928d3e-a2c2-4341-aa2f-b753551c9479","savedPayload":{"position":{"x":19504.72140465123,"y":30740.600980501622},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bibox","config":"{ \n\"codeName\": \"bibox\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"13c1f22c-9a35-4d3f-b000-c96984fd6a2b","savedPayload":{"position":{"x":17995.64382962515,"y":31047.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3c6df49d-70c3-468a-bdd8-6768ce6d3a9d","savedPayload":{"position":{"x":17916.64382962515,"y":31018.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5a54ef39-8fba-4a5f-ac24-5f27e763e28f","savedPayload":{"position":{"x":18050.64382962515,"y":31174.23747069523},"targetPosition":{"x":17956.64382962515,"y":31128.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"08df1f45-dab0-463a-8758-359973f2620d","savedPayload":{"position":{"x":17899.64382962515,"y":31242.23747069523},"targetPosition":{"x":17959.64382962515,"y":31180.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"105b52c2-90ad-4fa1-b690-d8fab14209b4","savedPayload":{"position":{"x":17959.64382962515,"y":31180.23747069523},"targetPosition":{"x":17956.64382962515,"y":31128.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"68c1ef42-1b7b-4cc6-981f-80b20dabcd89","savedPayload":{"position":{"x":17956.64382962515,"y":31128.23747069523},"targetPosition":{"x":17907.64382962515,"y":31057.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fc35e5d0-ea61-42b6-979a-859f19c5ac6c","savedPayload":{"position":{"x":17907.64382962515,"y":31057.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e5f9ee4d-77a3-48ae-b354-b2f6a97d5e47","savedPayload":{"position":{"x":19585.208424334218,"y":30842.603544479174},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BigONE","config":"{ \n\"codeName\": \"bigone\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"3f289513-c1c8-457c-b65a-8cf62b5f5eb5","savedPayload":{"position":{"x":17778.64382962515,"y":31071.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8b365e73-1cee-496a-921f-121cb628a130","savedPayload":{"position":{"x":17798.64382962515,"y":31121.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"447a4f6f-cfa0-443e-9339-d7c1153ada31","savedPayload":{"position":{"x":17921.64382962515,"y":31046.23747069523},"targetPosition":{"x":17891.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0d234c53-c121-471e-bce1-a258c13cd148","savedPayload":{"position":{"x":17848.64382962515,"y":31175.23747069523},"targetPosition":{"x":17944.64382962515,"y":31086.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"816e1b6a-d790-4abd-9ae1-e203fa737af2","savedPayload":{"position":{"x":17944.64382962515,"y":31086.23747069523},"targetPosition":{"x":17891.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"561a57f7-8c22-4e50-840d-d983ed6bb864","savedPayload":{"position":{"x":17891.64382962515,"y":31102.23747069523},"targetPosition":{"x":17813.64382962515,"y":31064.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e243bd5d-ade7-46c8-876b-6ad8c6eb5e0a","savedPayload":{"position":{"x":17813.64382962515,"y":31064.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fb9ee540-bf12-4dda-bf87-cb6b58fce649","savedPayload":{"position":{"x":19654.195208565325,"y":30952.710342620318},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Binance Jersey","config":"{ \n\"codeName\": \"binanceje\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"0b979ea9-7a2d-4744-9517-2dfa632dfafc","savedPayload":{"position":{"x":17852.64382962515,"y":30989.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b9a4497d-20f1-4c61-9a79-444e0fe0ddf4","savedPayload":{"position":{"x":17924.64382962515,"y":30952.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1b24d8a4-ec70-4501-838c-7633f6f7288e","savedPayload":{"position":{"x":17882.64382962515,"y":31051.23747069523},"targetPosition":{"x":17942.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"627472e3-638f-4d68-a917-d0844d6a227b","savedPayload":{"position":{"x":17991.64382962515,"y":31190.23747069523},"targetPosition":{"x":17986.64382962515,"y":31110.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"b8ce75fb-93c9-4ca2-9b2b-9f8ed8af34f3","savedPayload":{"position":{"x":17986.64382962515,"y":31110.23747069523},"targetPosition":{"x":17942.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"08b226e4-14ee-4ad3-8d96-efe77cc38489","savedPayload":{"position":{"x":17942.64382962515,"y":31066.23747069523},"targetPosition":{"x":17949.64382962515,"y":31009.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2771eb11-bc72-4273-9e1b-9ac5410c6354","savedPayload":{"position":{"x":17949.64382962515,"y":31009.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2782350a-84a2-40ec-87c6-3c8043376a18","savedPayload":{"position":{"x":19710.872950374665,"y":31069.630473388454},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Binance US","config":"{ \n\"codeName\": \"binanceus\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"817ee1cf-b44c-4458-a9c4-a05a17ea0510","savedPayload":{"position":{"x":17943.64382962515,"y":30999.23747069523},"targetPosition":{"x":17898.64382962515,"y":31020.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c6694e9e-74dc-4c2e-9151-90f1d6631b45","savedPayload":{"position":{"x":17937.64382962515,"y":30989.23747069523},"targetPosition":{"x":17898.64382962515,"y":31020.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"00144904-5363-49eb-b445-8c8283d92b0d","savedPayload":{"position":{"x":17838.64382962515,"y":31193.23747069523},"targetPosition":{"x":17781.64382962515,"y":31156.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2e71aa3c-03d4-4dbd-bc50-43b30f59e655","savedPayload":{"position":{"x":17783.64382962515,"y":31148.23747069523},"targetPosition":{"x":17703.64382962515,"y":31182.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"a4d0df32-c600-4421-b893-2a05f0442ed6","savedPayload":{"position":{"x":17703.64382962515,"y":31182.23747069523},"targetPosition":{"x":17781.64382962515,"y":31156.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7a39543a-00e1-452b-8aba-36c2b240f9fc","savedPayload":{"position":{"x":17781.64382962515,"y":31156.23747069523},"targetPosition":{"x":17799.64382962515,"y":31119.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2543c4e5-8233-4348-b6dc-e47aed1ff381","savedPayload":{"position":{"x":17799.64382962515,"y":31119.23747069523},"targetPosition":{"x":17898.64382962515,"y":31020.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0b2b67d2-853b-470e-8b13-925956ad5621","savedPayload":{"position":{"x":19754.577155060477,"y":31191.993155151424},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"bitbank","config":"{ \n\"codeName\": \"bitbank\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"eb6b6842-9bf7-450e-baa3-7a87541a1cf6","savedPayload":{"position":{"x":17955.64382962515,"y":31107.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"6353ff56-759f-457d-81f3-fdb8ae5b3e83","savedPayload":{"position":{"x":17942.64382962515,"y":31183.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a2b297c7-f33b-48b9-98fa-d339c7b0ff67","savedPayload":{"position":{"x":17999.64382962515,"y":31016.23747069523},"targetPosition":{"x":17945.64382962515,"y":31116.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"9ce6c354-b294-4062-b763-421e5edb69de","savedPayload":{"position":{"x":17883.64382962515,"y":31186.23747069523},"targetPosition":{"x":17845.64382962515,"y":31202.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"547dbf6c-a292-46c0-a628-62856858121e","savedPayload":{"position":{"x":17845.64382962515,"y":31202.23747069523},"targetPosition":{"x":17945.64382962515,"y":31116.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"097055b3-37e5-4100-a24b-91e404fe49a6","savedPayload":{"position":{"x":17945.64382962515,"y":31116.23747069523},"targetPosition":{"x":17897.64382962515,"y":31142.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51aed4ce-0303-431e-a15f-e6f133f7a2cf","savedPayload":{"position":{"x":17897.64382962515,"y":31142.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c9a96a7-ed12-4b3e-bb51-306a8da131f5","savedPayload":{"position":{"x":19784.79543078195,"y":31318.363797342816},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitBay","config":"{ \n\"codeName\": \"bitbay\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"83b4e523-72a7-41ce-9363-fe0c799dcac1","savedPayload":{"position":{"x":17861.64382962515,"y":30965.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"966698f7-8a28-42d7-bb80-f7cd0601e44f","savedPayload":{"position":{"x":17823.64382962515,"y":31026.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"554829eb-3d40-4b95-a1cd-9de943763e2c","savedPayload":{"position":{"x":17914.64382962515,"y":30924.23747069523},"targetPosition":{"x":17876.64382962515,"y":30921.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2f534989-7ca7-4c3d-b14a-3b1071543c8c","savedPayload":{"position":{"x":17845.64382962515,"y":30853.23747069523},"targetPosition":{"x":17832.64382962515,"y":30821.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2f6b76b4-51d4-434f-8aa1-ed86b0e26bd2","savedPayload":{"position":{"x":17832.64382962515,"y":30821.23747069523},"targetPosition":{"x":17876.64382962515,"y":30921.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cbcc3ab6-9758-4273-99d2-9d05fdd392b5","savedPayload":{"position":{"x":17876.64382962515,"y":30921.23747069523},"targetPosition":{"x":17805.64382962515,"y":31015.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dada6c12-7c41-4ab8-9922-908233829f58","savedPayload":{"position":{"x":17805.64382962515,"y":31015.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8778eee5-97a2-4f9d-bd25-cd5a64ec6663","savedPayload":{"position":{"x":19801.173495885087,"y":31447.26081972472},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitfinex","config":"{ \n\"codeName\": \"bitfinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"33508b53-2769-4f3d-8c98-9fa37e5cbf5b","savedPayload":{"position":{"x":17888.64382962515,"y":31043.23747069523},"targetPosition":{"x":17965.64382962515,"y":30956.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4d4ad5a1-81a7-4f92-83db-99f57ce261bb","savedPayload":{"position":{"x":17975.64382962515,"y":30868.23747069523},"targetPosition":{"x":17965.64382962515,"y":30956.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"29d52baf-645c-4d8f-9631-ebd391b4c815","savedPayload":{"position":{"x":18034.64382962515,"y":31066.23747069523},"targetPosition":{"x":18037.64382962515,"y":31012.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d615c33d-c6cf-4572-ac32-8e9ddeb5bb52","savedPayload":{"position":{"x":18023.64382962515,"y":30916.23747069523},"targetPosition":{"x":18106.64382962515,"y":30982.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"0c189040-6318-483c-b6d7-982370a3298d","savedPayload":{"position":{"x":18106.64382962515,"y":30982.23747069523},"targetPosition":{"x":18037.64382962515,"y":31012.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cd60de4a-d17c-4ba7-936a-cbf2305fe3bb","savedPayload":{"position":{"x":18037.64382962515,"y":31012.23747069523},"targetPosition":{"x":18039.64382962515,"y":30964.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d247f4f5-6f16-4a59-a4a5-6d1554b43562","savedPayload":{"position":{"x":18039.64382962515,"y":30964.23747069523},"targetPosition":{"x":17965.64382962515,"y":30956.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c076027-683d-4778-8a6a-e60984980fdf","savedPayload":{"position":{"x":19803.51933253116,"y":31577.173022561386},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitfinex","config":"{ \n\"codeName\": \"bitfinex2\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"8fc7f955-5c81-446c-bbeb-205988bf1fc0","savedPayload":{"position":{"x":17830.64382962515,"y":31051.23747069523},"targetPosition":{"x":17863.64382962515,"y":31062.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d5ba38e9-3282-4634-b922-16532c71f426","savedPayload":{"position":{"x":17819.64382962515,"y":31118.23747069523},"targetPosition":{"x":17863.64382962515,"y":31062.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1cebbed5-28f7-4ccd-afce-9e7634d90fb6","savedPayload":{"position":{"x":17892.64382962515,"y":30997.23747069523},"targetPosition":{"x":17855.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0d109aa9-c80c-4a64-96f0-1d8fda0a70a4","savedPayload":{"position":{"x":17888.64382962515,"y":30805.23747069523},"targetPosition":{"x":17942.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5459ab1e-a1ce-4dae-ae72-61c1f7f37ce0","savedPayload":{"position":{"x":17942.64382962515,"y":30905.23747069523},"targetPosition":{"x":17855.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a4615f7a-000d-4ff9-b5ac-109bc9a3a849","savedPayload":{"position":{"x":17855.64382962515,"y":30970.23747069523},"targetPosition":{"x":17919.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e10d303e-ea21-4625-bae1-c32ad7a44e8a","savedPayload":{"position":{"x":17919.64382962515,"y":31043.23747069523},"targetPosition":{"x":17863.64382962515,"y":31062.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f3114102-a73c-4086-9594-5888ef1ab4ec","savedPayload":{"position":{"x":19791.80543793031,"y":31706.577304054405},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitforex","config":"{ \n\"codeName\": \"bitforex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"698e5e38-ad73-4cb6-b7f6-2b69913faff9","savedPayload":{"position":{"x":17897.64382962515,"y":30956.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"f0142bd4-1b63-4d12-a4b7-e150d0da197f","savedPayload":{"position":{"x":18020.64382962515,"y":31021.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"7164fb28-405b-461a-a7d4-59d438ecf1ce","savedPayload":{"position":{"x":17821.64382962515,"y":30984.23747069523},"targetPosition":{"x":17901.64382962515,"y":30907.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"ce8a00c9-f090-4ec2-84ed-c6661f8bf7b0","savedPayload":{"position":{"x":17825.64382962515,"y":30965.23747069523},"targetPosition":{"x":17818.64382962515,"y":30913.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"579cd74b-98f6-4000-990b-25ae1456c94b","savedPayload":{"position":{"x":17818.64382962515,"y":30913.23747069523},"targetPosition":{"x":17901.64382962515,"y":30907.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"dbac6eef-25d2-4cda-86a6-59ce8a9a26bc","savedPayload":{"position":{"x":17901.64382962515,"y":30907.23747069523},"targetPosition":{"x":17909.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1da9dd3-22ec-4536-bb5a-4d0bb8a56b81","savedPayload":{"position":{"x":17909.64382962515,"y":30970.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"499a5a3b-7871-4c95-9b2e-d58d4d9e2392","savedPayload":{"position":{"x":19766.169146786622,"y":31833.956517318737},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"bitkk","config":"{ \n\"codeName\": \"bitkk\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"efbb916c-780b-447f-a4c2-df68570d4ee1","savedPayload":{"position":{"x":17931.64382962515,"y":30937.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0d829516-81d9-46a5-9861-7d94cc89455d","savedPayload":{"position":{"x":17951.64382962515,"y":30912.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"fc174aa3-c485-4b9b-ba19-444b0189ccb1","savedPayload":{"position":{"x":17788.64382962515,"y":30980.23747069523},"targetPosition":{"x":17834.64382962515,"y":30983.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"15921d8a-4b45-481c-9165-79969ed3fd27","savedPayload":{"position":{"x":17796.64382962515,"y":30936.23747069523},"targetPosition":{"x":17891.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"927d5c8a-85df-48bb-b097-c36abb76ca0e","savedPayload":{"position":{"x":17891.64382962515,"y":30922.23747069523},"targetPosition":{"x":17834.64382962515,"y":30983.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"43d218c2-e633-47d5-8dd8-60bc7f7c0b9e","savedPayload":{"position":{"x":17834.64382962515,"y":30983.23747069523},"targetPosition":{"x":17853.64382962515,"y":30925.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2d310d61-cbc7-4306-af02-be3888939545","savedPayload":{"position":{"x":17853.64382962515,"y":30925.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ded39740-3c93-4fda-bb9c-6ac75d2109f4","savedPayload":{"position":{"x":19726.911021174266,"y":31957.817257542785},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMart","config":"{ \n\"codeName\": \"bitmart\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"10374855-6b4a-460b-9c95-70072ac00315","savedPayload":{"position":{"x":17907.64382962515,"y":30901.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3aded60c-4061-48ff-ad33-212c965b5c43","savedPayload":{"position":{"x":17829.64382962515,"y":30925.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1789a3ca-d948-497d-8d1b-1eefd25d16a3","savedPayload":{"position":{"x":17886.64382962515,"y":30937.23747069523},"targetPosition":{"x":17895.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"038170bc-0ca7-4a92-8219-61b7bc8431b0","savedPayload":{"position":{"x":17893.64382962515,"y":31034.23747069523},"targetPosition":{"x":17835.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"55f79ede-ef02-405f-92bd-11902ab3cc7a","savedPayload":{"position":{"x":17835.64382962515,"y":30962.23747069523},"targetPosition":{"x":17895.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8185c660-4af3-4a62-bfa9-8922861101b5","savedPayload":{"position":{"x":17895.64382962515,"y":30988.23747069523},"targetPosition":{"x":17819.64382962515,"y":30909.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"546d48c3-df31-495c-b3b4-cb35109c5542","savedPayload":{"position":{"x":17819.64382962515,"y":30909.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c7ed52a7-895b-46f1-a745-35954d8bcfc6","savedPayload":{"position":{"x":19674.491326722004,"y":32076.707370794375},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMax","config":"{ \n\"codeName\": \"bitmax\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"8a042d0d-7a7a-4a76-889e-42d8642404f4","savedPayload":{"position":{"x":17944.64382962515,"y":31046.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0c4fcc48-51e6-4ff2-925f-405cda6d1122","savedPayload":{"position":{"x":17898.64382962515,"y":31024.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"ef9d5381-d9e3-47f5-9069-6fc14eda0fa3","savedPayload":{"position":{"x":17879.64382962515,"y":31096.23747069523},"targetPosition":{"x":17977.64382962515,"y":31041.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c66fe606-9705-45b0-a196-7ea3efb0221e","savedPayload":{"position":{"x":17982.64382962515,"y":31053.23747069523},"targetPosition":{"x":17943.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"80a5f68e-776a-44de-8797-d2eb806c306e","savedPayload":{"position":{"x":17943.64382962515,"y":31083.23747069523},"targetPosition":{"x":17977.64382962515,"y":31041.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"011fcf1c-1c94-4c36-a246-d6c400aa39dc","savedPayload":{"position":{"x":17977.64382962515,"y":31041.23747069523},"targetPosition":{"x":17942.64382962515,"y":31103.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4a87b8c5-e009-427f-afb7-21afe5594b59","savedPayload":{"position":{"x":17942.64382962515,"y":31103.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fc6a9048-ab8c-48f9-91ae-6c95c28714b0","savedPayload":{"position":{"x":19609.524636419505,"y":32189.2329791979},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMEX","config":"{ \n\"codeName\": \"bitmex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f7636e2b-354a-4217-894b-5e26eddc0c2a","savedPayload":{"position":{"x":17894.64382962515,"y":30934.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"6eb2ddd1-6d06-456c-b4e0-7df56ba182e6","savedPayload":{"position":{"x":17823.64382962515,"y":30834.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"b4a4b8fe-d923-4eb0-a066-171b83d1540d","savedPayload":{"position":{"x":17902.64382962515,"y":31064.23747069523},"targetPosition":{"x":17815.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"918ed585-ce46-4d51-a07a-9beee51f70eb","savedPayload":{"position":{"x":17711.64382962515,"y":31036.23747069523},"targetPosition":{"x":17805.64382962515,"y":31078.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"9efef4d8-5be3-4d17-a645-6edffd9535cf","savedPayload":{"position":{"x":17805.64382962515,"y":31078.23747069523},"targetPosition":{"x":17815.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6ad31a6e-f27b-45c3-9996-a41fb39aa154","savedPayload":{"position":{"x":17815.64382962515,"y":30988.23747069523},"targetPosition":{"x":17844.64382962515,"y":30896.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"82887393-cb1c-4b01-8581-4b3dabc86584","savedPayload":{"position":{"x":17844.64382962515,"y":30896.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1e2f1dd0-ebf1-4485-83d8-7723a9e3e714","savedPayload":{"position":{"x":19532.77262531095,"y":32294.07482287797},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bittrex","config":"{ \n\"codeName\": \"bittrex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"88d4ef94-f030-42df-9115-69d9611317b1","savedPayload":{"position":{"x":17839.64382962515,"y":31009.23747069523},"targetPosition":{"x":17893.64382962515,"y":30968.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"7fe8234d-9a39-4b28-bf98-43b4fdb57ee5","savedPayload":{"position":{"x":17878.64382962515,"y":31045.23747069523},"targetPosition":{"x":17893.64382962515,"y":30968.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5ba7fe13-1e0f-403a-8f4b-8e3968d2e5e2","savedPayload":{"position":{"x":17841.64382962515,"y":30890.23747069523},"targetPosition":{"x":17742.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e926fbb8-d2ac-4e3d-aa59-a0a828d202fd","savedPayload":{"position":{"x":17707.64382962515,"y":30983.23747069523},"targetPosition":{"x":17782.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"4fbe41e1-cb15-4bc2-a3de-681c5b22cc97","savedPayload":{"position":{"x":17782.64382962515,"y":31052.23747069523},"targetPosition":{"x":17742.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ab9fe180-1c07-44de-a0a1-863761ac52d6","savedPayload":{"position":{"x":17742.64382962515,"y":30961.23747069523},"targetPosition":{"x":17796.64382962515,"y":30903.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"584f29ca-9b3c-4b7f-a2b0-aab4180ecefd","savedPayload":{"position":{"x":17796.64382962515,"y":30903.23747069523},"targetPosition":{"x":17893.64382962515,"y":30968.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f598f002-8fc5-491f-888e-07d017ea83c6","savedPayload":{"position":{"x":19445.135140551556,"y":32390.003727075255},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bit-Z","config":"{ \n\"codeName\": \"bitz\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"0a22e02b-7d2e-4955-9cfc-ed7d95f0c9a0","savedPayload":{"position":{"x":17751.64382962515,"y":31083.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"298b45af-b73d-4cd5-848a-97de7b857569","savedPayload":{"position":{"x":17944.64382962515,"y":31083.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6ede807b-b1ab-42b5-bfd7-3b12a942447e","savedPayload":{"position":{"x":17871.64382962515,"y":31049.23747069523},"targetPosition":{"x":17772.64382962515,"y":31098.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"dc172858-3241-4487-950a-e5cae03ac376","savedPayload":{"position":{"x":17751.64382962515,"y":31081.23747069523},"targetPosition":{"x":17753.64382962515,"y":31028.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"19c07cee-1fdf-4e02-ac9f-d110b64ee033","savedPayload":{"position":{"x":17753.64382962515,"y":31028.23747069523},"targetPosition":{"x":17772.64382962515,"y":31098.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b4ef5048-ac4c-410e-bd6d-3338e33ab108","savedPayload":{"position":{"x":17772.64382962515,"y":31098.23747069523},"targetPosition":{"x":17788.64382962515,"y":31134.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e7e96c41-c839-4eec-9bcf-1c60d60fa3f5","savedPayload":{"position":{"x":17788.64382962515,"y":31134.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6cc10926-fe41-43be-887b-fa8aba1c7377","savedPayload":{"position":{"x":19347.639651522415,"y":32475.89501309667},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BTC-Alpha","config":"{ \n\"codeName\": \"btcalpha\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"263e3b9c-8fdd-4376-b53b-87f32d0f5898","savedPayload":{"position":{"x":17904.64382962515,"y":30922.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"804603e1-3e0f-4219-a9b7-ee27810d4f07","savedPayload":{"position":{"x":17829.64382962515,"y":30977.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"83b25fff-e448-483f-9bee-cb85fa592c6e","savedPayload":{"position":{"x":17734.64382962515,"y":30862.23747069523},"targetPosition":{"x":17829.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"efcfa3ca-0f82-4eb7-9b04-ed5eb4e1c3cf","savedPayload":{"position":{"x":17799.64382962515,"y":30864.23747069523},"targetPosition":{"x":17837.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"9ca8d728-ee11-4905-9a3a-5ca4ed50f3df","savedPayload":{"position":{"x":17837.64382962515,"y":30919.23747069523},"targetPosition":{"x":17829.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2cfde277-afa6-4ad3-bb5b-8a32b89e2037","savedPayload":{"position":{"x":17829.64382962515,"y":30960.23747069523},"targetPosition":{"x":17903.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"297a0ea2-f6d7-47fd-9fb7-0d99d00a87d8","savedPayload":{"position":{"x":17903.64382962515,"y":30969.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"30e5485f-213b-435b-a670-07b76cfe5cae","savedPayload":{"position":{"x":19241.429203691412,"y":32550.741684144767},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BTC Markets","config":"{ \n\"codeName\": \"btcmarkets\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"fcb3b880-0852-4d93-8714-67373f9dca16","savedPayload":{"position":{"x":17911.64382962515,"y":31036.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"953d8eff-0b2e-4b07-8635-393fddae0c9d","savedPayload":{"position":{"x":18025.64382962515,"y":31127.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c08873f6-9120-4764-8b06-c8110468b423","savedPayload":{"position":{"x":17935.64382962515,"y":30927.23747069523},"targetPosition":{"x":18027.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"beaa2557-4976-4e53-8a24-7ea00fc3afd5","savedPayload":{"position":{"x":18054.64382962515,"y":30851.23747069523},"targetPosition":{"x":18125.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"445158a2-91b4-4ad8-8380-036cbba6ad7e","savedPayload":{"position":{"x":18125.64382962515,"y":30951.23747069523},"targetPosition":{"x":18027.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cd00e08c-a26d-4b11-93a3-b0e8f35bec4b","savedPayload":{"position":{"x":18027.64382962515,"y":31003.23747069523},"targetPosition":{"x":18016.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"35cb55c1-ceb3-4093-98af-8a1c2411fe0f","savedPayload":{"position":{"x":18016.64382962515,"y":31075.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ac2fda42-95ca-404a-8dd2-72bff0ff5a0f","savedPayload":{"position":{"x":19127.749017450227,"y":32613.66623143447},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Buda","config":"{ \n\"codeName\": \"buda\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"27f3573d-e1f0-473f-9bfd-f9198e7240a0","savedPayload":{"position":{"x":17945.64382962515,"y":30937.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4ddc0981-4e45-42f3-ae11-f5b136b2bc3d","savedPayload":{"position":{"x":17783.64382962515,"y":31008.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5a325d59-e6a6-4f76-a311-5e67c5f5a8a2","savedPayload":{"position":{"x":17980.64382962515,"y":30843.23747069523},"targetPosition":{"x":17956.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"fb985ab9-7759-4780-a052-8ee9be0b712a","savedPayload":{"position":{"x":17907.64382962515,"y":30968.23747069523},"targetPosition":{"x":17958.64382962515,"y":30884.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fdf7665a-2974-467b-9280-4077a888733f","savedPayload":{"position":{"x":17958.64382962515,"y":30884.23747069523},"targetPosition":{"x":17956.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a3105cfc-f80e-4bcb-b399-6ea9c0f7edf0","savedPayload":{"position":{"x":17956.64382962515,"y":30936.23747069523},"targetPosition":{"x":17872.64382962515,"y":30941.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5d69a76f-e7bc-4538-950e-2e2353eccea3","savedPayload":{"position":{"x":17872.64382962515,"y":30941.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"90fe3d74-662e-4fac-aff3-f41990b61ccf","savedPayload":{"position":{"x":19007.931889043757,"y":32663.930922181273},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BW","config":"{ \n\"codeName\": \"bw\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"457616cd-25f9-4ad3-8c18-6331859dd42e","savedPayload":{"position":{"x":17890.64382962515,"y":31014.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8c1f9aa2-4253-4129-a533-e515644ddb38","savedPayload":{"position":{"x":17909.64382962515,"y":30970.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"24314a5b-85ca-4036-adc6-618120496f1d","savedPayload":{"position":{"x":17773.64382962515,"y":30945.23747069523},"targetPosition":{"x":17860.64382962515,"y":30865.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"f7c593f6-bd7a-41f7-a5e7-b2e1ea9a528f","savedPayload":{"position":{"x":17820.64382962515,"y":30885.23747069523},"targetPosition":{"x":17828.64382962515,"y":30802.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"60dfc799-f863-4895-8d17-568aa2303ef5","savedPayload":{"position":{"x":17828.64382962515,"y":30802.23747069523},"targetPosition":{"x":17860.64382962515,"y":30865.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"223e466d-d750-4e38-91ce-8a59c15242ba","savedPayload":{"position":{"x":17860.64382962515,"y":30865.23747069523},"targetPosition":{"x":17818.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cfff1310-5220-4978-9553-8514be141d14","savedPayload":{"position":{"x":17818.64382962515,"y":30919.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d72db90c-d572-4cbb-8348-e3cc485d8e86","savedPayload":{"position":{"x":18883.38256475272,"y":32700.94644884361},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bybit","config":"{ \n\"codeName\": \"bybit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"18fdf7c8-03c4-4f81-a88e-de97589765e1","savedPayload":{"position":{"x":17803.64382962515,"y":31059.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"a62b2603-ac6f-4b6e-9541-86daf32027b1","savedPayload":{"position":{"x":17847.64382962515,"y":31104.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"66ecff99-7102-4f4a-9ce8-4d55fb22dfbc","savedPayload":{"position":{"x":17851.64382962515,"y":31165.23747069523},"targetPosition":{"x":17916.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"625e127c-0ebb-4f57-af9f-9dfb57b262a1","savedPayload":{"position":{"x":18004.64382962515,"y":31091.23747069523},"targetPosition":{"x":18008.64382962515,"y":31027.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"8174bb53-66b8-4575-b206-74f9b6352a80","savedPayload":{"position":{"x":18008.64382962515,"y":31027.23747069523},"targetPosition":{"x":17916.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ee16357e-abde-4800-b089-f43f4b696a35","savedPayload":{"position":{"x":17916.64382962515,"y":31077.23747069523},"targetPosition":{"x":17944.64382962515,"y":31101.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c9e9473b-aff9-43c8-a6be-5cd30330bee2","savedPayload":{"position":{"x":17944.64382962515,"y":31101.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"516c3831-456b-4d17-b0a0-6a363ba2ddb2","savedPayload":{"position":{"x":18755.561271527895,"y":32724.27883821499},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"ByteTrade","config":"{ \n\"codeName\": \"bytetrade\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e7a1e531-5a9e-466e-b98d-672de39eed3a","savedPayload":{"position":{"x":18088.64382962515,"y":31024.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"edafaba7-fd82-4d9f-b3f7-5d1c01c56599","savedPayload":{"position":{"x":17941.64382962515,"y":30943.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"50fa78b8-3aea-4e43-adcf-1e31820bf97f","savedPayload":{"position":{"x":17886.64382962515,"y":31008.23747069523},"targetPosition":{"x":17858.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"b9c39b04-e86e-4ebb-9aba-39c375f2960c","savedPayload":{"position":{"x":17865.64382962515,"y":30941.23747069523},"targetPosition":{"x":17953.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5965d9cc-1d68-47a7-b838-e6dd81da6ea9","savedPayload":{"position":{"x":17953.64382962515,"y":31023.23747069523},"targetPosition":{"x":17858.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f51a08be-ee3f-4d3b-a75e-d783d63092a7","savedPayload":{"position":{"x":17858.64382962515,"y":30967.23747069523},"targetPosition":{"x":17898.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d395efd0-691b-4a68-a7f1-9bce95b2f687","savedPayload":{"position":{"x":17898.64382962515,"y":30965.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45e2306f-03e8-4d17-a73a-72c11dd14e78","savedPayload":{"position":{"x":18625.966597164217,"y":32733.65453936303},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CEX.IO","config":"{ \n\"codeName\": \"cex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9de19f0a-5824-4e42-af00-484b64421dc3","savedPayload":{"position":{"x":17890.64382962515,"y":31049.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"39db01bc-0cea-422f-b9e9-7d84e3f5446d","savedPayload":{"position":{"x":17918.64382962515,"y":31105.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"93833d3c-42c9-4e4d-bf0f-5b80a90d10c2","savedPayload":{"position":{"x":17978.64382962515,"y":31126.23747069523},"targetPosition":{"x":17953.64382962515,"y":31167.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"42863a52-30f4-4322-9c20-99a45d6dc3d6","savedPayload":{"position":{"x":17884.64382962515,"y":31149.23747069523},"targetPosition":{"x":17895.64382962515,"y":31148.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fcff471d-29be-4176-8ff8-12088361f9fc","savedPayload":{"position":{"x":17895.64382962515,"y":31148.23747069523},"targetPosition":{"x":17953.64382962515,"y":31167.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f7975a18-b3ab-49bc-ae45-eb02c99aff8c","savedPayload":{"position":{"x":17953.64382962515,"y":31167.23747069523},"targetPosition":{"x":17881.64382962515,"y":31096.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ec432123-43fe-4171-8c41-b797d3161edb","savedPayload":{"position":{"x":17881.64382962515,"y":31096.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"346bfc30-e32a-453a-bdc6-0ead48221581","savedPayload":{"position":{"x":18496.117920729066,"y":32728.96363076407},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Coinbase Prime","config":"{ \n\"codeName\": \"coinbaseprime\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"73cabd8d-9308-49ed-b544-44f785ee7d38","savedPayload":{"position":{"x":17867.64382962515,"y":30962.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"31bd1360-f0c5-4d70-876a-b152f7cedfd7","savedPayload":{"position":{"x":17960.64382962515,"y":30864.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9b75fcfa-fe75-48a8-9d28-2ff19c58c041","savedPayload":{"position":{"x":17792.64382962515,"y":30841.23747069523},"targetPosition":{"x":17809.64382962515,"y":30934.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c900b14a-c728-45af-90f8-29b3e5f29f46","savedPayload":{"position":{"x":17801.64382962515,"y":30986.23747069523},"targetPosition":{"x":17793.64382962515,"y":31006.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"eaf72df3-b66f-4b83-83f9-91e22ec0c300","savedPayload":{"position":{"x":17793.64382962515,"y":31006.23747069523},"targetPosition":{"x":17809.64382962515,"y":30934.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9da95675-2071-41bf-b5ac-4f2af602994f","savedPayload":{"position":{"x":17809.64382962515,"y":30934.23747069523},"targetPosition":{"x":17862.64382962515,"y":31021.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4fc49ad4-57cc-43b0-b14b-15f26af994aa","savedPayload":{"position":{"x":17862.64382962515,"y":31021.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5a8281db-6ace-4186-8cfb-cd249c4af48b","savedPayload":{"position":{"x":18367.537599231866,"y":32710.26110903248},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Coinbase Pro","config":"{ \n\"codeName\": \"coinbasepro\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"a29d6e1a-a94e-4b6b-8741-e9af6e4762f4","savedPayload":{"position":{"x":17788.64382962515,"y":30897.23747069523},"targetPosition":{"x":17841.64382962515,"y":30932.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"10cd9004-0088-4bc0-8fe6-b937f1bb311b","savedPayload":{"position":{"x":17865.64382962515,"y":30918.23747069523},"targetPosition":{"x":17841.64382962515,"y":30932.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"004397e6-ae73-46a6-9ed7-b4ba1930f77b","savedPayload":{"position":{"x":17945.64382962515,"y":30899.23747069523},"targetPosition":{"x":17850.64382962515,"y":30889.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"a81a7021-2228-4386-a773-9ac80c9e723a","savedPayload":{"position":{"x":17738.64382962515,"y":30761.23747069523},"targetPosition":{"x":17792.64382962515,"y":30789.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"482d82f2-364e-483c-b51a-a3fbe8a91577","savedPayload":{"position":{"x":17792.64382962515,"y":30789.23747069523},"targetPosition":{"x":17850.64382962515,"y":30889.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d823ad8e-0452-40f0-bad9-c2cb3ad29a21","savedPayload":{"position":{"x":17850.64382962515,"y":30889.23747069523},"targetPosition":{"x":17772.64382962515,"y":30894.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0c965322-fdd2-4e67-aaf3-dfc4b9dffc59","savedPayload":{"position":{"x":17772.64382962515,"y":30894.23747069523},"targetPosition":{"x":17841.64382962515,"y":30932.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4242da4b-a67e-44d8-8a19-b1c2f078c94c","savedPayload":{"position":{"x":18241.733119380056,"y":32677.766244135688},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CoinEx","config":"{ \n\"codeName\": \"coinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"af78f796-60e5-4794-87b8-772c7bc74be1","savedPayload":{"position":{"x":18043.64382962515,"y":31069.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d351e6d9-36eb-4d0e-aca5-94429bbb23a3","savedPayload":{"position":{"x":18094.64382962515,"y":31090.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"438f74c6-15e0-4553-af2a-febd5290c269","savedPayload":{"position":{"x":17908.64382962515,"y":31088.23747069523},"targetPosition":{"x":17986.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"bfb22430-77c7-41a7-8083-771f7d7f3634","savedPayload":{"position":{"x":17927.64382962515,"y":30953.23747069523},"targetPosition":{"x":17947.64382962515,"y":30990.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"51daaa12-1c60-4cef-96d8-a445b4b32296","savedPayload":{"position":{"x":17947.64382962515,"y":30990.23747069523},"targetPosition":{"x":17986.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"726b8c33-9873-4be1-b9ef-d6b4483f23b1","savedPayload":{"position":{"x":17986.64382962515,"y":31075.23747069523},"targetPosition":{"x":17919.64382962515,"y":31016.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"30469514-b983-4f6f-9d74-6d6ceef25eb6","savedPayload":{"position":{"x":17919.64382962515,"y":31016.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"62ad0961-6bdf-4a4a-a340-610816742d0a","savedPayload":{"position":{"x":18120.179423675774,"y":32631.860008654276},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"COSS","config":"{ \n\"codeName\": \"coss\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e6315232-c6b1-4e25-aade-7bc7ba9ba6ac","savedPayload":{"position":{"x":17787.64382962515,"y":30984.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b1e8451f-09a2-47b0-add3-cf9c35c487bb","savedPayload":{"position":{"x":17829.64382962515,"y":31095.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d1c9b795-0434-4ce1-9cb7-cc61fac7396d","savedPayload":{"position":{"x":17950.64382962515,"y":31149.23747069523},"targetPosition":{"x":17882.64382962515,"y":31131.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"22be64f9-4b08-4ac3-ae89-6726743a7d5a","savedPayload":{"position":{"x":17890.64382962515,"y":31165.23747069523},"targetPosition":{"x":17956.64382962515,"y":31156.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c7462500-ba74-4bf3-ad81-35fa232bede3","savedPayload":{"position":{"x":17956.64382962515,"y":31156.23747069523},"targetPosition":{"x":17882.64382962515,"y":31131.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5cd41ced-981a-4075-af43-3a0497eb0fcb","savedPayload":{"position":{"x":17882.64382962515,"y":31131.23747069523},"targetPosition":{"x":17856.64382962515,"y":31148.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b5937899-c6ee-4d7a-b259-1ee23d721f60","savedPayload":{"position":{"x":17856.64382962515,"y":31148.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"695029de-7f61-45bb-aa4c-c6d51e6369ed","savedPayload":{"position":{"x":18004.301618063546,"y":32573.08061122679},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CREX24","config":"{ \n\"codeName\": \"crex24\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c5e12f4a-fb26-40d3-9e70-751b55018e74","savedPayload":{"position":{"x":17910.64382962515,"y":31024.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"00cb629e-bad4-4c6e-8abb-499cad3992f4","savedPayload":{"position":{"x":17938.64382962515,"y":31054.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"4909d182-e0d5-49a9-8ad2-a553c8aaaf88","savedPayload":{"position":{"x":17912.64382962515,"y":31301.23747069523},"targetPosition":{"x":17920.64382962515,"y":31249.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"075eb2a2-299b-4a0f-9f6d-76c385521dc4","savedPayload":{"position":{"x":17800.64382962515,"y":31332.23747069523},"targetPosition":{"x":17883.64382962515,"y":31289.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"e062ef2e-b252-4a66-8f58-d9aa8031f526","savedPayload":{"position":{"x":17883.64382962515,"y":31289.23747069523},"targetPosition":{"x":17920.64382962515,"y":31249.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8e75be98-f874-486d-b749-536e364934dc","savedPayload":{"position":{"x":17920.64382962515,"y":31249.23747069523},"targetPosition":{"x":17845.64382962515,"y":31164.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"052f73cd-7ed7-4537-8b01-840b5b892fea","savedPayload":{"position":{"x":17845.64382962515,"y":31164.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07a7ec7c-273e-4675-8d8d-21ab8514a1f0","savedPayload":{"position":{"x":17895.458263866083,"y":32502.117186545547},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Deribit","config":"{ \n\"codeName\": \"deribit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f0b2354b-89e3-4eca-b051-664a3b8283f6","savedPayload":{"position":{"x":17862.64382962515,"y":30844.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4ae1f824-82a8-4796-a2d5-3d2358d8089f","savedPayload":{"position":{"x":17912.64382962515,"y":31024.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2013fe7a-d52c-4c9d-ba53-d281d014a8fc","savedPayload":{"position":{"x":17873.64382962515,"y":30926.23747069523},"targetPosition":{"x":17855.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"706d5778-ed21-49bd-9277-1840ec52708d","savedPayload":{"position":{"x":17729.64382962515,"y":31033.23747069523},"targetPosition":{"x":17813.64382962515,"y":31053.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2e76bc02-6e10-4f14-9bf1-a11dc4268466","savedPayload":{"position":{"x":17813.64382962515,"y":31053.23747069523},"targetPosition":{"x":17855.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"89a3ccc7-20ab-4e2d-929b-52d9286179b7","savedPayload":{"position":{"x":17855.64382962515,"y":30967.23747069523},"targetPosition":{"x":17818.64382962515,"y":30920.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5c8219e3-4509-4b8b-941b-b88ac2c12237","savedPayload":{"position":{"x":17818.64382962515,"y":30920.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"21971815-4248-45df-8e04-20b9a5a83f06","savedPayload":{"position":{"x":17794.92544989493,"y":32419.801715882462},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"DigiFinex","config":"{ \n\"codeName\": \"digifinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e583c93e-9a44-4e0d-acb7-56d7e00a555a","savedPayload":{"position":{"x":17954.64382962515,"y":30992.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8917c7c0-b420-4d4f-a35a-c0fc6870f0de","savedPayload":{"position":{"x":18052.64382962515,"y":30972.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a00b5bb0-5ab9-42e2-91fe-b450c7eb66d2","savedPayload":{"position":{"x":18220.64382962515,"y":31090.23747069523},"targetPosition":{"x":18123.64382962515,"y":30998.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2aafc473-339b-4d23-9b74-06fa7574c293","savedPayload":{"position":{"x":18144.64382962515,"y":31123.23747069523},"targetPosition":{"x":18203.64382962515,"y":31084.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"99e9e136-1ac7-4400-a100-0a2d37f0882d","savedPayload":{"position":{"x":18203.64382962515,"y":31084.23747069523},"targetPosition":{"x":18123.64382962515,"y":30998.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b7cee21b-ddcb-4fd7-b610-43aabb2d1766","savedPayload":{"position":{"x":18123.64382962515,"y":30998.23747069523},"targetPosition":{"x":18032.64382962515,"y":30976.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"08e84a25-4368-4ad6-939f-5a16cece62cc","savedPayload":{"position":{"x":18032.64382962515,"y":30976.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b7d56781-0c51-4ec1-95fd-bf4dc8c00352","savedPayload":{"position":{"x":17703.88183147586,"y":32327.0992728693},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"DSX","config":"{ \n\"codeName\": \"dsx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"d672ab56-cd32-4ff5-8fc5-3733262aeccb","savedPayload":{"position":{"x":17916.64382962515,"y":31106.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3731a7b5-ba9d-483e-bb41-abf3ae0232c6","savedPayload":{"position":{"x":17878.64382962515,"y":30946.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9ef7e0ac-dc27-4b47-a06e-0cb7e80ee3d7","savedPayload":{"position":{"x":18124.64382962515,"y":31136.23747069523},"targetPosition":{"x":18093.64382962515,"y":31072.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"77491a3c-3db7-446f-aa67-9b5a1a3be7b3","savedPayload":{"position":{"x":18109.64382962515,"y":31081.23747069523},"targetPosition":{"x":18188.64382962515,"y":31137.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"bd1bd0b7-4943-4aeb-bf90-d3192dcabbb1","savedPayload":{"position":{"x":18188.64382962515,"y":31137.23747069523},"targetPosition":{"x":18093.64382962515,"y":31072.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45747fef-f30e-4fae-b02d-5768ae7dbe68","savedPayload":{"position":{"x":18093.64382962515,"y":31072.23747069523},"targetPosition":{"x":18018.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa2e1c9b-428c-4bb0-9e75-ceb8c9043d4b","savedPayload":{"position":{"x":18018.64382962515,"y":31005.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4c543abc-7372-4701-bc58-107578d45c25","savedPayload":{"position":{"x":17623.394811792878,"y":32225.09670889175},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FCoin","config":"{ \n\"codeName\": \"fcoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"a97d578c-6d7f-403c-8294-18aacf14abd8","savedPayload":{"position":{"x":17893.64382962515,"y":30953.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"442c3834-482e-4928-9255-8ac859ae012e","savedPayload":{"position":{"x":17905.64382962515,"y":30896.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"79754959-1219-4c4d-be63-22766158beb5","savedPayload":{"position":{"x":18106.64382962515,"y":30976.23747069523},"targetPosition":{"x":18069.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"1c3ae096-5024-43c3-abca-24498254e363","savedPayload":{"position":{"x":18112.64382962515,"y":30919.23747069523},"targetPosition":{"x":18126.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"59db5bfd-e413-48a7-af63-237ad56adc82","savedPayload":{"position":{"x":18126.64382962515,"y":30965.23747069523},"targetPosition":{"x":18069.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"833c4e54-08f4-48ec-b90a-2767eb55f244","savedPayload":{"position":{"x":18069.64382962515,"y":31056.23747069523},"targetPosition":{"x":17996.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a8cf17b3-0ea7-4a14-8c76-f655344b58a3","savedPayload":{"position":{"x":17996.64382962515,"y":30970.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6ddedcbd-07cb-4928-91b3-348f47118391","savedPayload":{"position":{"x":17554.408027561767,"y":32114.989910750606},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FCoinJP","config":"{ \n\"codeName\": \"fcoinjp\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"4a8a9810-6df6-451a-ab26-22bd7e7be85a","savedPayload":{"position":{"x":17930.64382962515,"y":31129.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"138ab40c-18ca-4a11-9709-0baa040873e6","savedPayload":{"position":{"x":18007.64382962515,"y":31122.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"258cdf92-8ed0-4133-ae2a-b9f086f56a13","savedPayload":{"position":{"x":17897.64382962515,"y":30887.23747069523},"targetPosition":{"x":17903.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"537e8f0c-05ca-4403-bc96-da6c2f4678ae","savedPayload":{"position":{"x":17825.64382962515,"y":30842.23747069523},"targetPosition":{"x":17836.64382962515,"y":30926.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"62519e63-8f4e-4b72-a341-0a6eea01ac3f","savedPayload":{"position":{"x":17836.64382962515,"y":30926.23747069523},"targetPosition":{"x":17903.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b4974cc1-f594-436b-8aa4-aff2733b8e3c","savedPayload":{"position":{"x":17903.64382962515,"y":30977.23747069523},"targetPosition":{"x":17873.64382962515,"y":31061.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d84b404f-75e2-4eb5-b34a-b45af8a57ca7","savedPayload":{"position":{"x":17873.64382962515,"y":31061.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"982627ea-df84-4ba9-9219-612fbe1e4276","savedPayload":{"position":{"x":17497.730285752426,"y":31998.069779982467},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FTX","config":"{ \n\"codeName\": \"ftx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"20c0a4f5-bdb9-46cc-af7e-2111964551e3","savedPayload":{"position":{"x":17886.64382962515,"y":30940.23747069523},"targetPosition":{"x":17960.64382962515,"y":31019.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"75c99a0b-d3c9-4073-9283-d33e539c36bb","savedPayload":{"position":{"x":17992.64382962515,"y":31061.23747069523},"targetPosition":{"x":17960.64382962515,"y":31019.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2e037470-549e-4aa8-bbe7-95cdeaef88ea","savedPayload":{"position":{"x":17964.64382962515,"y":31027.23747069523},"targetPosition":{"x":17970.64382962515,"y":31008.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"3b6f5b7b-9c61-4b71-b29a-ca1bc027e55f","savedPayload":{"position":{"x":17817.64382962515,"y":30943.23747069523},"targetPosition":{"x":17890.64382962515,"y":30978.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"a84010f0-04b5-4eab-a3a6-a5944b80a373","savedPayload":{"position":{"x":17890.64382962515,"y":30978.23747069523},"targetPosition":{"x":17970.64382962515,"y":31008.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5cdc51a3-6136-4e03-9e2c-26a752140d17","savedPayload":{"position":{"x":17970.64382962515,"y":31008.23747069523},"targetPosition":{"x":18010.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"55258a2b-3199-4070-beed-d34a8496870c","savedPayload":{"position":{"x":18010.64382962515,"y":30986.23747069523},"targetPosition":{"x":17960.64382962515,"y":31019.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0c0bcf5c-2774-423e-9fcf-c512b38dd06d","savedPayload":{"position":{"x":17454.026081066615,"y":31875.707098219504},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Gate.io","config":"{ \n\"codeName\": \"gateio\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"71a15089-9d40-4726-9a41-37d406064164","savedPayload":{"position":{"x":17930.64382962515,"y":30993.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c025e976-c2c6-49de-81ec-48e2f737b412","savedPayload":{"position":{"x":17925.64382962515,"y":31053.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"876f964a-e12d-4438-87fb-a84be22f86d1","savedPayload":{"position":{"x":17914.64382962515,"y":30833.23747069523},"targetPosition":{"x":17827.64382962515,"y":30882.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0c5d34c4-467f-4e98-bd39-1b2d9afb834e","savedPayload":{"position":{"x":17852.64382962515,"y":30831.23747069523},"targetPosition":{"x":17870.64382962515,"y":30847.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"89316d8c-893a-46ae-b147-948b4b8a5292","savedPayload":{"position":{"x":17870.64382962515,"y":30847.23747069523},"targetPosition":{"x":17827.64382962515,"y":30882.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a2a5de53-bd45-4904-8bae-0cf5ed66d2af","savedPayload":{"position":{"x":17827.64382962515,"y":30882.23747069523},"targetPosition":{"x":17800.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f6f4072d-8cf6-4e47-8b4e-a21cd553348a","savedPayload":{"position":{"x":17800.64382962515,"y":30936.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c4028289-4cdb-4da0-90e6-5f93328b8e03","savedPayload":{"position":{"x":17423.807805345143,"y":31749.336456028108},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Gemini","config":"{ \n\"codeName\": \"gemini\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9eb15872-8d15-4086-9920-46909eb5f9e7","savedPayload":{"position":{"x":17951.64382962515,"y":30901.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"a84dcf06-57c6-47d7-97a0-9f03f3af8b34","savedPayload":{"position":{"x":18045.64382962515,"y":30891.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5da1ba65-3839-4664-8105-2ccb11652767","savedPayload":{"position":{"x":18028.64382962515,"y":31112.23747069523},"targetPosition":{"x":17941.64382962515,"y":31044.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"337fe5e2-b9fd-40eb-9f42-44fc5057d981","savedPayload":{"position":{"x":17957.64382962515,"y":31129.23747069523},"targetPosition":{"x":17875.64382962515,"y":31086.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"17a3f4a3-8914-4995-afb0-7e8115791b17","savedPayload":{"position":{"x":17875.64382962515,"y":31086.23747069523},"targetPosition":{"x":17941.64382962515,"y":31044.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"32e4a3f1-40d8-421f-9634-7ab339858286","savedPayload":{"position":{"x":17941.64382962515,"y":31044.23747069523},"targetPosition":{"x":17877.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"365f6865-e707-415d-a168-b67c66ca9553","savedPayload":{"position":{"x":17877.64382962515,"y":30977.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"58bf8247-baef-4ea6-a483-7ed8f0ba5043","savedPayload":{"position":{"x":17407.429740242005,"y":31620.439433646203},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"HitBTC","config":"{ \n\"codeName\": \"hitbtc\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"1632c520-fa79-442f-b33b-430cb1356de6","savedPayload":{"position":{"x":17809.64382962515,"y":31086.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"576d1666-dbd3-4914-9fe2-fa05bdf72eea","savedPayload":{"position":{"x":17840.64382962515,"y":31148.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"41317aae-08ce-48cf-a47b-c2d2cc3920ec","savedPayload":{"position":{"x":18096.64382962515,"y":30975.23747069523},"targetPosition":{"x":18026.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"23d7e4ba-8432-4214-bd94-0db5046e39cd","savedPayload":{"position":{"x":18039.64382962515,"y":31075.23747069523},"targetPosition":{"x":17981.64382962515,"y":31126.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ab200349-5ba5-44d2-ad5c-fa826303cfcd","savedPayload":{"position":{"x":17981.64382962515,"y":31126.23747069523},"targetPosition":{"x":18026.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a5f24785-5b2c-429b-a2e4-07063e2de904","savedPayload":{"position":{"x":18026.64382962515,"y":31066.23747069523},"targetPosition":{"x":17972.64382962515,"y":31093.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"13f275ca-06a6-4a72-8b4d-a9c079b9cef4","savedPayload":{"position":{"x":17972.64382962515,"y":31093.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8384fa0b-854c-4c23-846e-a5da0179a738","savedPayload":{"position":{"x":17405.083903595932,"y":31490.527230809537},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"HitBTC","config":"{ \n\"codeName\": \"hitbtc2\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9a29cb9e-ee8d-4315-8532-eef82224b84a","savedPayload":{"position":{"x":17838.64382962515,"y":30922.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"badd79e7-1e21-4dc3-bfa7-8dfb4a6c6267","savedPayload":{"position":{"x":17920.64382962515,"y":30944.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"ffdda0b7-af50-4010-84da-2bc0d562af2b","savedPayload":{"position":{"x":17887.64382962515,"y":30982.23747069523},"targetPosition":{"x":17836.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"24816eed-adf7-453e-9b38-42ea4758dbaa","savedPayload":{"position":{"x":18021.64382962515,"y":30979.23747069523},"targetPosition":{"x":17931.64382962515,"y":30923.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"1dd16858-5641-4454-88a3-e5d7446e12a3","savedPayload":{"position":{"x":17931.64382962515,"y":30923.23747069523},"targetPosition":{"x":17836.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"457d75ed-ad21-4ee5-b36b-88cdc444008e","savedPayload":{"position":{"x":17836.64382962515,"y":31023.23747069523},"targetPosition":{"x":17808.64382962515,"y":31039.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b29ded7e-e2d5-4c7f-89af-b0816c32c743","savedPayload":{"position":{"x":17808.64382962515,"y":31039.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"09c634c2-5aba-49c5-80bc-4fd4175e7f0c","savedPayload":{"position":{"x":17416.79779819678,"y":31361.12294931652},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Huobi Pro","config":"{ \n\"codeName\": \"huobipro\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"86caa38c-5bdf-40e4-b27b-8d8b64319575","savedPayload":{"position":{"x":18071.64382962515,"y":31171.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"001225af-c715-4566-9502-f8f0ac1c4531","savedPayload":{"position":{"x":18040.64382962515,"y":31019.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"b4bf5ccb-b529-4500-a192-d9c3a0613389","savedPayload":{"position":{"x":18129.64382962515,"y":31073.23747069523},"targetPosition":{"x":18033.64382962515,"y":31090.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2e58c6d1-cfa7-4dc7-a322-e9356596ea1e","savedPayload":{"position":{"x":17976.64382962515,"y":31132.23747069523},"targetPosition":{"x":17953.64382962515,"y":31093.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae04ddf4-ae3e-4bdc-9393-41acc38ef818","savedPayload":{"position":{"x":17953.64382962515,"y":31093.23747069523},"targetPosition":{"x":18033.64382962515,"y":31090.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2428e8ef-6a09-48fa-8ae4-ebfb28420be8","savedPayload":{"position":{"x":18033.64382962515,"y":31090.23747069523},"targetPosition":{"x":18085.64382962515,"y":31157.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"55c71c8b-f21f-4d16-ae93-e29362c39bf5","savedPayload":{"position":{"x":18085.64382962515,"y":31157.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"967c3914-a76d-4389-9c7e-9c258ae683bd","savedPayload":{"position":{"x":17442.43408934047,"y":31233.743736052187},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Huobi Russia","config":"{ \n\"codeName\": \"huobiru\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9b7b32d6-a42e-44bb-8065-5aa32b1e844b","savedPayload":{"position":{"x":17980.64382962515,"y":31034.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8d74201c-33cd-4e12-8920-b08d0ef97572","savedPayload":{"position":{"x":17992.64382962515,"y":31105.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c6e289d7-074b-4837-96e3-687988886fcc","savedPayload":{"position":{"x":18078.64382962515,"y":30954.23747069523},"targetPosition":{"x":18008.64382962515,"y":31029.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d72f81ba-6b41-414d-9cf0-d5f9c0c25403","savedPayload":{"position":{"x":18026.64382962515,"y":31021.23747069523},"targetPosition":{"x":18083.64382962515,"y":31117.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5354f66c-6e73-4fe5-80ca-2c25b761ef51","savedPayload":{"position":{"x":18083.64382962515,"y":31117.23747069523},"targetPosition":{"x":18008.64382962515,"y":31029.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"81f5adbb-054c-47f2-b019-52585f5d7417","savedPayload":{"position":{"x":18008.64382962515,"y":31029.23747069523},"targetPosition":{"x":18018.64382962515,"y":31009.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ecd8645b-4bb6-4641-a20f-cee51bf33f1a","savedPayload":{"position":{"x":18018.64382962515,"y":31009.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6f97bb5c-8d85-43ee-86a1-33e22cdfbb5e","savedPayload":{"position":{"x":17481.692214952825,"y":31109.882995828142},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"KKEX","config":"{ \n\"codeName\": \"kkex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"daa4e07a-1cd8-4d92-8004-2eabfaa62f77","savedPayload":{"position":{"x":17924.64382962515,"y":31038.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"cb64951f-d984-4f51-a751-166a316084f3","savedPayload":{"position":{"x":17945.64382962515,"y":31156.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6915bf12-9271-47e2-8b49-924ae9f5c65f","savedPayload":{"position":{"x":17958.64382962515,"y":31297.23747069523},"targetPosition":{"x":17875.64382962515,"y":31252.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"ff53381f-c6dd-4d17-a477-11396f60663f","savedPayload":{"position":{"x":17805.64382962515,"y":31141.23747069523},"targetPosition":{"x":17861.64382962515,"y":31223.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae05bfc4-6ac8-408c-a90b-263830b2a71e","savedPayload":{"position":{"x":17861.64382962515,"y":31223.23747069523},"targetPosition":{"x":17875.64382962515,"y":31252.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61c85f1a-a2a6-45c9-bb1e-3c76110f5d1e","savedPayload":{"position":{"x":17875.64382962515,"y":31252.23747069523},"targetPosition":{"x":17911.64382962515,"y":31154.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9fafb114-37d2-4d04-9c42-83d04ff62fc7","savedPayload":{"position":{"x":17911.64382962515,"y":31154.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"16ae95ce-796f-4f2b-942c-f98dcbf9cf4b","savedPayload":{"position":{"x":17534.11190940509,"y":30990.99288257655},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Kraken","config":"{ \n\"codeName\": \"kraken\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"747af60f-c8b9-4377-aa6c-172d4137ea23","savedPayload":{"position":{"x":17854.64382962515,"y":31008.23747069523},"targetPosition":{"x":17946.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c75f7d97-9dc2-4d3e-89eb-f8a3d5f16368","savedPayload":{"position":{"x":17916.64382962515,"y":30872.23747069523},"targetPosition":{"x":17946.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"0093e946-03f4-4aec-942d-c76aed12ab1a","savedPayload":{"position":{"x":17780.64382962515,"y":31091.23747069523},"targetPosition":{"x":17836.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2a4235ac-e5ea-4484-bccd-f06c8a7275ec","savedPayload":{"position":{"x":17930.64382962515,"y":30869.23747069523},"targetPosition":{"x":17883.64382962515,"y":30953.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"737dec0a-23ab-4044-94ba-95c8bc50c0eb","savedPayload":{"position":{"x":17883.64382962515,"y":30953.23747069523},"targetPosition":{"x":17836.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"457b045e-dae5-4f53-a8b7-cab4757e5286","savedPayload":{"position":{"x":17836.64382962515,"y":31011.23747069523},"targetPosition":{"x":17926.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6eff12db-8e7c-402a-9e06-ae2618f506a0","savedPayload":{"position":{"x":17926.64382962515,"y":31005.23747069523},"targetPosition":{"x":17946.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"644efe9c-597a-4ddf-9e28-b33fb3b62d3e","savedPayload":{"position":{"x":17599.078599707587,"y":30878.467274173025},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"KuCoin","config":"{ \n\"codeName\": \"kucoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"01ca3037-4ed3-499e-ad6b-e14ca1d4a51f","savedPayload":{"position":{"x":17919.64382962515,"y":30949.23747069523},"targetPosition":{"x":17920.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8b3c4ce0-98b1-4d46-bd02-6cf44c3dd686","savedPayload":{"position":{"x":17998.64382962515,"y":30978.23747069523},"targetPosition":{"x":17920.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d6c7c0ef-670d-4ed6-9246-6eb7d6bfc359","savedPayload":{"position":{"x":17927.64382962515,"y":30962.23747069523},"targetPosition":{"x":17953.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e8c2c454-b246-4f63-b51b-74d9cbb01ac2","savedPayload":{"position":{"x":17927.64382962515,"y":30924.23747069523},"targetPosition":{"x":17912.64382962515,"y":30869.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"d2bb2603-3b52-443c-8923-86fefafc0b14","savedPayload":{"position":{"x":17912.64382962515,"y":30869.23747069523},"targetPosition":{"x":17953.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fa83b0b9-1039-4406-907c-f809a5af40f5","savedPayload":{"position":{"x":17953.64382962515,"y":30954.23747069523},"targetPosition":{"x":17966.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"471161d3-201e-40c6-b433-49643cf7e43b","savedPayload":{"position":{"x":17966.64382962515,"y":30962.23747069523},"targetPosition":{"x":17920.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d79bc720-68e1-4771-a66a-bcffa30639d3","savedPayload":{"position":{"x":17675.830610816145,"y":30773.625430492953},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"LBank","config":"{ \n\"codeName\": \"lbank\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"def3f9d0-f09e-4e09-8b6d-a4c322a4384b","savedPayload":{"position":{"x":17877.64382962515,"y":31024.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"53eac3c1-96d6-4cb1-b54d-f3f174eaf733","savedPayload":{"position":{"x":17764.64382962515,"y":31036.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c6c00704-1357-4426-910e-8134d6f87017","savedPayload":{"position":{"x":18030.64382962515,"y":31212.23747069523},"targetPosition":{"x":17951.64382962515,"y":31172.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"13990604-2192-4be1-b21b-53cf2bafc002","savedPayload":{"position":{"x":17893.64382962515,"y":31189.23747069523},"targetPosition":{"x":17964.64382962515,"y":31122.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ed2c483e-d412-406d-b6f3-cfb1112a3a05","savedPayload":{"position":{"x":17964.64382962515,"y":31122.23747069523},"targetPosition":{"x":17951.64382962515,"y":31172.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6033b63c-c7fe-4a5d-8cf6-82128e2cfb41","savedPayload":{"position":{"x":17951.64382962515,"y":31172.23747069523},"targetPosition":{"x":17891.64382962515,"y":31096.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"20ece5c4-dbfa-4f4a-a9ee-8c8d9c38943b","savedPayload":{"position":{"x":17891.64382962515,"y":31096.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cb2558d6-dab0-4f35-b83f-7cfc161b3d4f","savedPayload":{"position":{"x":17763.468095575536,"y":30677.69652629567},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Mercado Bitcoin","config":"{ \n\"codeName\": \"mercado\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"83ab2c39-e844-496f-bebb-7b8607428902","savedPayload":{"position":{"x":17849.64382962515,"y":31081.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d69e722e-c71a-462a-8bbd-d3482d0eab21","savedPayload":{"position":{"x":17771.64382962515,"y":30887.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"18438709-83cf-49a3-96b8-888ab5adbcc5","savedPayload":{"position":{"x":17937.64382962515,"y":31080.23747069523},"targetPosition":{"x":17866.64382962515,"y":31013.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"6b9d4ed4-af81-462a-aace-fac0afd4687a","savedPayload":{"position":{"x":17787.64382962515,"y":30841.23747069523},"targetPosition":{"x":17873.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"802a4c53-8617-4257-95a5-45bfaa60ad0e","savedPayload":{"position":{"x":17873.64382962515,"y":30935.23747069523},"targetPosition":{"x":17866.64382962515,"y":31013.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"87936a4a-aac5-4aca-8f3e-2051611932c4","savedPayload":{"position":{"x":17866.64382962515,"y":31013.23747069523},"targetPosition":{"x":17829.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"48f3a793-bb97-447b-8f1a-1d6965219747","savedPayload":{"position":{"x":17829.64382962515,"y":30919.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5002072e-145c-4aeb-a611-3e0e4c60ee5d","savedPayload":{"position":{"x":17860.963584604677,"y":30591.805240274254},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"OKCoin","config":"{ \n\"codeName\": \"okcoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"1e4dd5c8-0545-4698-8695-c985880243a3","savedPayload":{"position":{"x":17921.64382962515,"y":31043.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0e188cae-9764-4963-a78b-e5d7ef272522","savedPayload":{"position":{"x":18005.64382962515,"y":30891.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6d82bfd7-b4e1-4f93-a0f8-18f62cee944e","savedPayload":{"position":{"x":18047.64382962515,"y":30877.23747069523},"targetPosition":{"x":17963.64382962515,"y":30898.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d815409c-1dd4-4e89-b844-5b96104509b4","savedPayload":{"position":{"x":17958.64382962515,"y":30988.23747069523},"targetPosition":{"x":17945.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"238b9d2c-e2c0-4a77-945e-8e28604c0a2d","savedPayload":{"position":{"x":17945.64382962515,"y":30961.23747069523},"targetPosition":{"x":17963.64382962515,"y":30898.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8416c29a-5d73-4b2a-9463-511f400deafb","savedPayload":{"position":{"x":17963.64382962515,"y":30898.23747069523},"targetPosition":{"x":18047.64382962515,"y":30885.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04abf32b-084e-4784-aa84-8c5612d3b7b9","savedPayload":{"position":{"x":18047.64382962515,"y":30885.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1f860b4b-2893-4a51-8649-19c47d494a37","savedPayload":{"position":{"x":17967.17403243568,"y":30516.958569226157},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"OKEX","config":"{ \n\"codeName\": \"okex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"7f618566-3d10-4c3c-90b2-7541a5146eeb","savedPayload":{"position":{"x":17770.64382962515,"y":31094.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"21205576-5d12-452c-814f-eb56182162ae","savedPayload":{"position":{"x":17794.64382962515,"y":31173.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"46456247-ae9c-41ea-8395-a5e4a78007d4","savedPayload":{"position":{"x":17724.64382962515,"y":31147.23747069523},"targetPosition":{"x":17795.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"706bf601-eaad-48bd-b0a7-8dad59066171","savedPayload":{"position":{"x":17715.64382962515,"y":31182.23747069523},"targetPosition":{"x":17706.64382962515,"y":31162.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"f9c7071c-2e5b-4c90-b482-dfc7ee001244","savedPayload":{"position":{"x":17706.64382962515,"y":31162.23747069523},"targetPosition":{"x":17795.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e87e1e10-3404-48b9-8629-5df92ffa1979","savedPayload":{"position":{"x":17795.64382962515,"y":31083.23747069523},"targetPosition":{"x":17789.64382962515,"y":31181.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"08e8fd6a-6b23-4d65-8b8e-d966f845c07f","savedPayload":{"position":{"x":17789.64382962515,"y":31181.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"aa0edec0-8b27-4f94-abce-1e437ce5aba6","savedPayload":{"position":{"x":18080.854218676865,"y":30454.034021936455},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"RightBTC","config":"{ \n\"codeName\": \"rightbtc\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"ade372e9-5070-4fa9-843e-57732c4106c3","savedPayload":{"position":{"x":17999.64382962515,"y":30964.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b63d440e-4501-475c-b8a6-2b9a144e32a1","savedPayload":{"position":{"x":17984.64382962515,"y":30901.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"81d77477-4f2e-43c0-b284-dde54f91c37f","savedPayload":{"position":{"x":17864.64382962515,"y":31036.23747069523},"targetPosition":{"x":17861.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"9ce3cc34-1ba4-4155-96a5-c946b1bcc5ab","savedPayload":{"position":{"x":17819.64382962515,"y":31127.23747069523},"targetPosition":{"x":17810.64382962515,"y":31080.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c7df4af7-37c1-403d-ada1-b6a527821bdd","savedPayload":{"position":{"x":17810.64382962515,"y":31080.23747069523},"targetPosition":{"x":17861.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6de19501-5ce7-4944-b9dd-25b149acbb38","savedPayload":{"position":{"x":17861.64382962515,"y":31043.23747069523},"targetPosition":{"x":17946.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa87ace4-a976-401c-93f9-24a498261742","savedPayload":{"position":{"x":17946.64382962515,"y":30988.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c20cd9e1-52a0-4d17-b90c-e9d5b63315ce","savedPayload":{"position":{"x":18200.67134708334,"y":30403.76933118965},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"STEX","config":"{ \n\"codeName\": \"stex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f1d65161-4922-4a1e-ac98-df1a842347a7","savedPayload":{"position":{"x":17872.64382962515,"y":31001.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c313b2c6-6154-4a9a-b826-fd99cc500cd9","savedPayload":{"position":{"x":17888.64382962515,"y":31186.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d0a1259b-1c37-4d39-836e-3c434c3b3687","savedPayload":{"position":{"x":17778.64382962515,"y":31076.23747069523},"targetPosition":{"x":17858.64382962515,"y":31091.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"4a1e5627-459c-4dec-be13-c20d4a9ea58f","savedPayload":{"position":{"x":17841.64382962515,"y":31179.23747069523},"targetPosition":{"x":17795.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"6981eb0d-0f0e-4f8e-9781-4a03e22e93fd","savedPayload":{"position":{"x":17795.64382962515,"y":31105.23747069523},"targetPosition":{"x":17858.64382962515,"y":31091.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7704478a-9717-43a8-bd2e-88daa6f84bd0","savedPayload":{"position":{"x":17858.64382962515,"y":31091.23747069523},"targetPosition":{"x":17941.64382962515,"y":31173.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"262aad86-f430-49ea-a636-e8bd816a9636","savedPayload":{"position":{"x":17941.64382962515,"y":31173.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0ea23137-3c65-4de1-9772-6ac1b65196e8","savedPayload":{"position":{"x":18325.220671374373,"y":30366.753804527314},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TideBit","config":"{ \n\"codeName\": \"tidebit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c92318bd-8b2d-489b-b8e8-cf30fb63286e","savedPayload":{"position":{"x":17981.64382962515,"y":31021.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"83bca3ec-fc1c-435c-b5fe-b1cf92463fd1","savedPayload":{"position":{"x":18051.64382962515,"y":31072.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2f3ee9b2-cd41-458c-84da-edac3155028a","savedPayload":{"position":{"x":18075.64382962515,"y":31059.23747069523},"targetPosition":{"x":17987.64382962515,"y":31047.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"009ae4b6-adbc-4900-9fc0-f18936eeed9b","savedPayload":{"position":{"x":18030.64382962515,"y":31058.23747069523},"targetPosition":{"x":18009.64382962515,"y":31028.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"3ee88180-fe10-41df-8251-b1ed0a526e7a","savedPayload":{"position":{"x":18009.64382962515,"y":31028.23747069523},"targetPosition":{"x":17987.64382962515,"y":31047.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bb88e6e8-a99a-4c4e-9ca5-ffed49aa8b54","savedPayload":{"position":{"x":17987.64382962515,"y":31047.23747069523},"targetPosition":{"x":17925.64382962515,"y":31135.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"13a4a95e-4333-4455-9f7c-90bc839d174a","savedPayload":{"position":{"x":17925.64382962515,"y":31135.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5563c310-701a-4c1e-8155-87c08c927ce3","savedPayload":{"position":{"x":18453.041964599197,"y":30343.421415155935},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TimeX","config":"{ \n\"codeName\": \"timex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"5c004b5f-eec4-414f-8d01-d9b3fddeee9e","savedPayload":{"position":{"x":17892.64382962515,"y":30973.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"59a33add-d0e9-4ae1-8a01-f1e0ed09cb61","savedPayload":{"position":{"x":17911.64382962515,"y":30878.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a4189ba1-d1d4-4ff8-91dd-a8696ca493e3","savedPayload":{"position":{"x":17953.64382962515,"y":30880.23747069523},"targetPosition":{"x":17924.64382962515,"y":30871.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"3d34eb9d-e7cb-42fe-8785-c327b2bbc529","savedPayload":{"position":{"x":17839.64382962515,"y":30875.23747069523},"targetPosition":{"x":17930.64382962515,"y":30877.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"773de01f-0999-4a59-91f0-642148cd58d0","savedPayload":{"position":{"x":17930.64382962515,"y":30877.23747069523},"targetPosition":{"x":17924.64382962515,"y":30871.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fe33a596-4f98-4843-a5b1-26e7e0fcf1c8","savedPayload":{"position":{"x":17924.64382962515,"y":30871.23747069523},"targetPosition":{"x":18018.64382962515,"y":30832.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d078b9a3-cdc6-458e-a511-dc4f5bef38ba","savedPayload":{"position":{"x":18018.64382962515,"y":30832.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"27d69fa7-b561-4986-8c0d-1b374e7e1bf1","savedPayload":{"position":{"x":18582.63663896287,"y":30334.045714007894},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TOP.Q","config":"{ \n\"codeName\": \"topq\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"eafef6a3-eed2-470e-a15c-aa4c10001cd2","savedPayload":{"position":{"x":17818.64382962515,"y":31115.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"2d5eb813-ceb6-40cd-8682-7205596bb8b5","savedPayload":{"position":{"x":17759.64382962515,"y":31188.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"61f7832c-c1f0-40bc-b1f2-ba947c58309d","savedPayload":{"position":{"x":17741.64382962515,"y":31288.23747069523},"targetPosition":{"x":17788.64382962515,"y":31228.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"63b973da-30a7-467a-b954-c57537aab18d","savedPayload":{"position":{"x":17677.64382962515,"y":31206.23747069523},"targetPosition":{"x":17756.64382962515,"y":31146.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"722dcf44-de3f-4d1a-8655-80561e1e4d55","savedPayload":{"position":{"x":17756.64382962515,"y":31146.23747069523},"targetPosition":{"x":17788.64382962515,"y":31228.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45d5e04a-4a53-4f32-b4c0-d882456cb263","savedPayload":{"position":{"x":17788.64382962515,"y":31228.23747069523},"targetPosition":{"x":17806.64382962515,"y":31163.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c66e8dfc-4847-4180-b82c-36458f9b405d","savedPayload":{"position":{"x":17806.64382962515,"y":31163.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8fdf13d8-e8d2-4ef4-8b34-f492a25d753a","savedPayload":{"position":{"x":18712.485315398026,"y":30338.736622606855},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Upbit","config":"{ \n\"codeName\": \"upbit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f456fec2-cee6-4f0c-b865-1188088879c9","savedPayload":{"position":{"x":17919.64382962515,"y":30973.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"947c1ca0-bff9-4372-b153-40054e29b705","savedPayload":{"position":{"x":17921.64382962515,"y":31014.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"34ffbe12-5a26-446a-8bf6-7395c0370ba2","savedPayload":{"position":{"x":17874.64382962515,"y":30900.23747069523},"targetPosition":{"x":17945.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"8f00f19d-74a8-48d8-b951-79f35e87b110","savedPayload":{"position":{"x":17906.64382962515,"y":30902.23747069523},"targetPosition":{"x":17896.64382962515,"y":30896.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"64e1bede-aabf-4831-83a6-fe1cea435613","savedPayload":{"position":{"x":17896.64382962515,"y":30896.23747069523},"targetPosition":{"x":17945.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7c80b956-f2ca-4a6f-a661-f17546288d3e","savedPayload":{"position":{"x":17945.64382962515,"y":30971.23747069523},"targetPosition":{"x":18027.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e3686b02-4ecc-4dcb-a311-b7ef542a3c37","savedPayload":{"position":{"x":18027.64382962515,"y":31048.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"74e57ecd-3394-42b4-b2c4-6f216f7e41db","savedPayload":{"position":{"x":18841.065636895226,"y":30357.439144338445},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"WhiteBit","config":"{ \n\"codeName\": \"whitebit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c16eae45-a568-4b2e-b064-4431bdf34c24","savedPayload":{"position":{"x":17767.64382962515,"y":30899.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"dfdf793f-4ba6-4215-a325-323c0f223553","savedPayload":{"position":{"x":17920.64382962515,"y":31004.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"fd749d13-dbac-493f-9af6-c521eddf909f","savedPayload":{"position":{"x":17815.64382962515,"y":30973.23747069523},"targetPosition":{"x":17720.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"79f7d2d0-77a5-4f38-ac68-fd11f18e5e6b","savedPayload":{"position":{"x":17761.64382962515,"y":31182.23747069523},"targetPosition":{"x":17680.64382962515,"y":31153.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fd0506f4-58b7-431e-bc9d-69bce63c3379","savedPayload":{"position":{"x":17680.64382962515,"y":31153.23747069523},"targetPosition":{"x":17720.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"47e8a4b1-9a6c-4555-a881-f7524183d72e","savedPayload":{"position":{"x":17720.64382962515,"y":31056.23747069523},"targetPosition":{"x":17817.64382962515,"y":31010.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7fa08b91-55ab-477d-a097-88ea7f25fb76","savedPayload":{"position":{"x":17817.64382962515,"y":31010.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"467ece1e-d1d0-4a11-ae7a-d0e22cd4eba5","savedPayload":{"position":{"x":18966.87011674703,"y":30389.934009235236},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"ZB","config":"{ \n\"codeName\": \"zb\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"db206cbd-a587-4e8e-acbe-6581ad3b5cc4","savedPayload":{"position":{"x":17855.64382962515,"y":31027.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"1dd658c5-7755-44b7-85f0-9bcd787762a0","savedPayload":{"position":{"x":17789.64382962515,"y":31044.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"0de82bbe-7909-4b65-b304-f59b41f618ae","savedPayload":{"position":{"x":17830.64382962515,"y":30696.23747069523},"targetPosition":{"x":17846.64382962515,"y":30793.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c89819d0-8880-4b36-a9b3-0b284d266e3b","savedPayload":{"position":{"x":17891.64382962515,"y":30748.23747069523},"targetPosition":{"x":17865.64382962515,"y":30772.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"7a55f503-17fa-45c4-880b-1a9a11a0a555","savedPayload":{"position":{"x":17865.64382962515,"y":30772.23747069523},"targetPosition":{"x":17846.64382962515,"y":30793.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e640fca2-8bab-45ff-9a47-8e7b9650c277","savedPayload":{"position":{"x":17846.64382962515,"y":30793.23747069523},"targetPosition":{"x":17909.64382962515,"y":30886.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"421a99cd-3d9a-46a5-8654-08d6336e75be","savedPayload":{"position":{"x":17909.64382962515,"y":30886.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07df07e8-39a8-4fbc-a0c8-150f20b6ac59","savedPayload":{"position":{"x":19088.423812451314,"y":30435.840244716648},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51f64e29-e3ab-4683-a5de-f397fbf94260","savedPayload":{"position":{"x":18603.301618063546,"y":31534.850126685462},"targetPosition":{"x":18903.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchanges","name":"Testing Queue","project":"Superalgos","exchanges":[],"id":"895ce4b1-4890-4216-89ba-a012181d2546","savedPayload":{"position":{"x":18753.301618063546,"y":30755.427263279467},"targetPosition":{"x":18903.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"signalsProviders":[],"id":"7217b56c-e854-4c06-8b8a-d5d3c05a153d","savedPayload":{"position":{"x":18903.301618063546,"y":31015.2348844148},"targetPosition":{"x":18903.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Charting Space","name":"New Charting Space","project":"Superalgos","viewport":{"type":"Viewport","name":"New Viewport","config":"{\"zoom\":\"1.60\"}","project":"Superalgos","id":"01713f1d-91b8-44f9-9c5d-a0c12fd09037","savedPayload":{"position":{"x":19200.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"frame":{"position":{"x":-100,"y":-2390.4375}}}},"projectDashboards":[{"type":"Project Dashboards","name":"Superalgos","project":"Superalgos","dashboards":[{"type":"Dashboard","name":"Learning Tasks My Computer","project":"Superalgos","timeMachines":[],"id":"4941166c-ceba-4e29-ae4b-06c68f375f5f","savedPayload":{"position":{"x":18340.99861599605,"y":25133.35640053908},"targetPosition":{"x":18600.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Learning Tasks","name":"New Learning Tasks","id":"0818dfbe-61ea-40b8-8544-bee25d7f45be"}}},{"type":"Dashboard","name":"Testing Trading Tasks My Computer","project":"Superalgos","timeMachines":[{"type":"Time Machine","name":"Hello World Trading System Backtesting Session My Computer Binance BTC/USDT","project":"Superalgos","timeScale":{"type":"Time Scale","name":"New Time Scale","config":"{\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2019-10-16T11:32:25.439Z\",\n \"toDate\": \"2021-06-15T03:51:37.436Z\"\n}","project":"Superalgos","id":"1ca0182e-7a92-4e58-8f30-88ced63cdbf8","savedPayload":{"position":{"x":17851.377661925024,"y":24876.192683445042},"targetPosition":{"x":18081.190994860717,"y":24683.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","config":"{\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": -23193.21972411363,\n \"maxValue\": 91252.95149636637\n}","project":"Superalgos","id":"5e85a00e-877a-4c36-b94d-96de432599ed","savedPayload":{"position":{"x":17799.283208624944,"y":24785.96244353678},"targetPosition":{"x":18081.190994860717,"y":24683.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","config":"{\"value\":\"04-hs\"}","project":"Superalgos","id":"2a0a415a-0920-4e9c-8e89-f8fbfc27d7fa","savedPayload":{"position":{"x":17781.190994860717,"y":24683.35640053908},"targetPosition":{"x":18081.190994860717,"y":24683.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Trading Engine","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading Engine","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading Episode","project":"Superalgos","layers":[{"type":"Layer","name":"Trading Episode Counters","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Trading Episode Counters","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ff7aee6f-1ca2-42f5-a8aa-68603843e897","savedPayload":{"position":{"x":18407.806237131383,"y":24769.35640053908},"targetPosition":{"x":18498.806237131383,"y":24795.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Trading Episode Counters","id":"2a5783fe-af9a-443c-b4e7-32d8bdabff82"}}}],"id":"2654e1af-908b-4723-9cab-ff9ab033a3d4","savedPayload":{"position":{"x":18498.806237131383,"y":24795.35640053908},"targetPosition":{"x":18597.806237131383,"y":24782.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"f38ec36e-c67d-4683-a44e-929b314b582e","savedPayload":{"position":{"x":18534.806237131383,"y":24830.35640053908},"targetPosition":{"x":18597.806237131383,"y":24782.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"34f6e5b3-f0db-48be-b5d3-a11f80ed41a3","savedPayload":{"position":{"x":18597.806237131383,"y":24782.35640053908},"targetPosition":{"x":18662.806237131383,"y":24846.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading Episode Counters","id":"9a2a56d3-0e17-44fb-8ae5-aba6c8dc5522"}}},{"type":"Layer","name":"Trading Episode Statistics","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Trading Episode Statistics","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"12b8fa70-38be-47a9-9e7d-700b61dedaad","savedPayload":{"position":{"x":18529.806237131383,"y":24640.35640053908},"targetPosition":{"x":18542.806237131383,"y":24693.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Trading Episode Statistics","id":"6ea43033-418d-4d87-b640-02010679aa8b"}}}],"id":"47ebcd9b-2f38-4f4c-a0b4-14045c6ca082","savedPayload":{"position":{"x":18542.806237131383,"y":24693.35640053908},"targetPosition":{"x":18635.806237131383,"y":24767.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"fe5e5846-656e-4cd0-ab9f-637aab6509dc","savedPayload":{"position":{"x":18548.806237131383,"y":24794.35640053908},"targetPosition":{"x":18635.806237131383,"y":24767.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a241fae6-720f-4506-bfe7-ff99b483585b","savedPayload":{"position":{"x":18635.806237131383,"y":24767.35640053908},"targetPosition":{"x":18662.806237131383,"y":24846.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading Episode Statistics","id":"dac15491-5d83-4f1f-9bed-1ea7b649dba2"}}},{"type":"Layer","name":"Episode Candle","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"f4779f8f-d666-4456-833b-3a7206f9c4ef","savedPayload":{"position":{"x":18719.806237131383,"y":24954.35640053908},"targetPosition":{"x":18732.806237131383,"y":24942.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"25945a15-8ea8-4d08-b99a-449fce19f143","savedPayload":{"position":{"x":18824.806237131383,"y":24961.35640053908},"targetPosition":{"x":18732.806237131383,"y":24942.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4a2c8e77-6b03-4866-af7a-1616c25c6b54","savedPayload":{"position":{"x":18732.806237131383,"y":24942.35640053908},"targetPosition":{"x":18662.806237131383,"y":24846.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Candle","id":"ad4a94e4-cdd4-43d6-9a5f-e655050203a2"}}},{"type":"Layer","name":"Episode Balances","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Current Balance","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"65b792a2-d980-4780-a4bc-02b584ef6a8d","savedPayload":{"position":{"x":18813.806237131383,"y":24905.35640053908},"targetPosition":{"x":18779.806237131383,"y":24856.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Current Balance","id":"cb03ef16-522f-4189-ab3a-b410bf1f4176"}}}],"id":"516362d5-b798-4f65-9265-ecc16fd78e74","savedPayload":{"position":{"x":18779.806237131383,"y":24856.35640053908},"targetPosition":{"x":18722.806237131383,"y":24779.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"b6a85912-1a80-4cc8-b443-523a01c6585c","savedPayload":{"position":{"x":18718.806237131383,"y":24872.35640053908},"targetPosition":{"x":18722.806237131383,"y":24779.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"468245ae-5711-424d-9f0e-6bf65fe48bb1","savedPayload":{"position":{"x":18722.806237131383,"y":24779.35640053908},"targetPosition":{"x":18662.806237131383,"y":24846.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Balances","id":"ed269260-9cdd-4ed6-98aa-a9e63bd189be"}}},{"type":"Layer","name":"Distance To Trading Event","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"57b72753-b5ff-48e1-b441-a9906ea79971","savedPayload":{"position":{"x":18653.806237131383,"y":24850.35640053908},"targetPosition":{"x":18595.806237131383,"y":24945.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"abe6c423-e6f4-483b-a3c6-7156a89475d4","savedPayload":{"position":{"x":18584.806237131383,"y":24856.35640053908},"targetPosition":{"x":18595.806237131383,"y":24945.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2e887ec5-cfee-4fd8-9cf1-f034b8eebd8d","savedPayload":{"position":{"x":18595.806237131383,"y":24945.35640053908},"targetPosition":{"x":18662.806237131383,"y":24846.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Distance To Trading Event","id":"9412328a-0a81-4d00-ad12-5eeae841aea4"}}},{"type":"Layer","name":"Episode Base Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"8c352597-1ecd-4162-98d3-daf05346d8eb","savedPayload":{"position":{"x":18782.806237131383,"y":24910.35640053908},"targetPosition":{"x":18693.806237131383,"y":24839.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"391f3adc-9ae3-437b-aae0-9298d604f6de","savedPayload":{"position":{"x":18620.806237131383,"y":24742.35640053908},"targetPosition":{"x":18693.806237131383,"y":24839.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e3e46058-c643-4f8b-972e-e3a6f199751f","savedPayload":{"position":{"x":18693.806237131383,"y":24839.35640053908},"targetPosition":{"x":18662.806237131383,"y":24846.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Base Asset","id":"238d6406-1337-4402-a1a8-b396bc7183a8"}}},{"type":"Layer","name":"Episode Quoted Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"601cca16-c7c0-4787-b28e-9e02d0f76b69","savedPayload":{"position":{"x":18483.806237131383,"y":24863.35640053908},"targetPosition":{"x":18573.806237131383,"y":24859.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"63482d85-a633-4cdd-977b-0d74cbc52a90","savedPayload":{"position":{"x":18480.806237131383,"y":24946.35640053908},"targetPosition":{"x":18573.806237131383,"y":24859.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8640499c-9e42-410c-93e7-5fb6be147755","savedPayload":{"position":{"x":18573.806237131383,"y":24859.35640053908},"targetPosition":{"x":18662.806237131383,"y":24846.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Quoted Asset","id":"7a260e63-61a3-4567-ba4e-cc2d67be6ee0"}}},{"type":"Layer","name":"Current Episode","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"f2a08e9e-a461-48b9-b451-6c3c3ce09105","savedPayload":{"position":{"x":18563.806237131383,"y":24908.35640053908},"targetPosition":{"x":18662.806237131383,"y":24871.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"e33450eb-cfb5-4cf2-be49-ecd76ba9b5b5","savedPayload":{"position":{"x":18737.806237131383,"y":24885.35640053908},"targetPosition":{"x":18662.806237131383,"y":24871.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c99c6ae3-a6c3-4fec-98fc-495da06b7a40","savedPayload":{"position":{"x":18662.806237131383,"y":24871.35640053908},"targetPosition":{"x":18662.806237131383,"y":24846.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Episode","id":"9005ef6f-f6ea-4e49-baeb-9e93acf181cd"}}}],"layerFolders":[],"id":"4cb6da1a-1cd5-42da-a07f-37f46ab8c90a","savedPayload":{"position":{"x":18662.806237131383,"y":24846.35640053908},"targetPosition":{"x":18665.806237131383,"y":24767.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Strategy","project":"Superalgos","layers":[{"type":"Layer","name":"Current Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"11f189e1-c516-4420-a801-36df5ff060b4","savedPayload":{"position":{"x":18628.806237131383,"y":24841.35640053908},"targetPosition":{"x":18637.806237131383,"y":24817.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"e90ccaf2-8edc-450c-b9a2-fc0bf7a0874e","savedPayload":{"position":{"x":18540.806237131383,"y":24776.35640053908},"targetPosition":{"x":18637.806237131383,"y":24817.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f59f5ba6-56aa-46fa-a4ae-34774dd7430b","savedPayload":{"position":{"x":18637.806237131383,"y":24817.35640053908},"targetPosition":{"x":18651.806237131383,"y":24812.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Strategy","id":"e12d72f5-0a2a-4e63-9f2a-f026e933abda"}}},{"type":"Layer","name":"Last Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"8e56a258-a11f-4cd2-83ea-e401f7c69040","savedPayload":{"position":{"x":18682.806237131383,"y":24876.35640053908},"targetPosition":{"x":18691.806237131383,"y":24811.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"5f57d97d-8d3f-4809-ad91-d2bf90e7af5c","savedPayload":{"position":{"x":18709.806237131383,"y":24841.35640053908},"targetPosition":{"x":18691.806237131383,"y":24811.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b2cd51b2-5203-49d6-88f8-59cacbf905de","savedPayload":{"position":{"x":18691.806237131383,"y":24811.35640053908},"targetPosition":{"x":18651.806237131383,"y":24812.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Strategy","id":"3a46e1b6-063b-4955-93f2-c01f8015aa37"}}}],"layerFolders":[],"id":"e597dee5-167e-495d-9347-24e921d25346","savedPayload":{"position":{"x":18651.806237131383,"y":24812.35640053908},"targetPosition":{"x":18665.806237131383,"y":24767.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Current Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"e420b35b-8a62-49d4-a2f6-11b42c3ef466","savedPayload":{"position":{"x":18650.806237131383,"y":24626.35640053908},"targetPosition":{"x":18598.806237131383,"y":24657.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"410c59e9-887e-43e4-9f27-b25349b2c729","savedPayload":{"position":{"x":18577.806237131383,"y":24725.35640053908},"targetPosition":{"x":18598.806237131383,"y":24657.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f9eb1b36-3b87-4e8c-b99c-9fe653153418","savedPayload":{"position":{"x":18598.806237131383,"y":24657.35640053908},"targetPosition":{"x":18692.806237131383,"y":24690.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Position","id":"8dc7fc2d-e7a2-4ea3-a015-49f0c54b4771"}}},{"type":"Layer","name":"Last Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"e1857aad-aae9-4b3a-b9a1-364148cfcbae","savedPayload":{"position":{"x":18638.806237131383,"y":24564.35640053908},"targetPosition":{"x":18695.806237131383,"y":24655.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"d418f529-4243-494c-9b0a-2f14624f0cc0","savedPayload":{"position":{"x":18761.806237131383,"y":24702.35640053908},"targetPosition":{"x":18695.806237131383,"y":24655.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"be29c674-a085-4d27-b7e8-9a3cd8d20f26","savedPayload":{"position":{"x":18695.806237131383,"y":24655.35640053908},"targetPosition":{"x":18692.806237131383,"y":24690.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Position","id":"2eef9228-f520-4955-9585-fcb948680973"}}},{"type":"Layer","name":"Stop Loss","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"9297dd6c-e1d3-40b8-9456-72e75ae61fd9","savedPayload":{"position":{"x":18620.806237131383,"y":24702.35640053908},"targetPosition":{"x":18645.806237131383,"y":24642.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"5c7cef5d-5ab9-4c81-a105-a1ba6e4c954c","savedPayload":{"position":{"x":18596.806237131383,"y":24726.35640053908},"targetPosition":{"x":18645.806237131383,"y":24642.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b38be3f1-2636-4118-9c29-6c4e3983d344","savedPayload":{"position":{"x":18645.806237131383,"y":24642.35640053908},"targetPosition":{"x":18692.806237131383,"y":24690.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Stop Loss","id":"4f04f670-2101-47e4-a331-c586d04f4149"}}},{"type":"Layer","name":"Take Profit","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"e0cc4138-1a5d-443b-b80f-16f94c002dbb","savedPayload":{"position":{"x":18646.806237131383,"y":24832.35640053908},"targetPosition":{"x":18721.806237131383,"y":24775.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"718a2ed1-f05a-48d9-b1c4-d12644ccb68f","savedPayload":{"position":{"x":18709.806237131383,"y":24860.35640053908},"targetPosition":{"x":18721.806237131383,"y":24775.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c7a72cc2-d95d-4368-844c-d910af7d36f9","savedPayload":{"position":{"x":18721.806237131383,"y":24775.35640053908},"targetPosition":{"x":18692.806237131383,"y":24690.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Take Profit","id":"f65f4843-b0d7-41c2-a072-3e8f1d9dfb20"}}}],"layerFolders":[],"id":"98664721-cdb2-48e1-ae5c-8625d2c1de14","savedPayload":{"position":{"x":18692.806237131383,"y":24690.35640053908},"targetPosition":{"x":18665.806237131383,"y":24767.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Open Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"8fdf8b60-0107-4e35-8341-6202520ffe41","savedPayload":{"position":{"x":18729.806237131383,"y":24779.35640053908},"targetPosition":{"x":18661.806237131383,"y":24747.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"9185d086-54f8-48e2-8761-ed7e51f65603","savedPayload":{"position":{"x":18707.806237131383,"y":24744.35640053908},"targetPosition":{"x":18661.806237131383,"y":24747.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"83b0600e-b0d0-42cb-a8c8-87fd51ac269c","savedPayload":{"position":{"x":18661.806237131383,"y":24747.35640053908},"targetPosition":{"x":18577.806237131383,"y":24830.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stage","id":"41a3db28-b2f8-4721-8b02-195067276ee7"}}},{"type":"Layer","name":"Close Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"b6ca30e9-44d1-403e-9b19-2d479dd0942b","savedPayload":{"position":{"x":18515.806237131383,"y":24881.35640053908},"targetPosition":{"x":18516.806237131383,"y":24900.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"6e8f9ee2-3255-47b5-a048-d8418cbda554","savedPayload":{"position":{"x":18513.806237131383,"y":24842.35640053908},"targetPosition":{"x":18516.806237131383,"y":24900.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"41ec96cd-65e0-4ab6-a3d5-3c1f852e3b3e","savedPayload":{"position":{"x":18516.806237131383,"y":24900.35640053908},"targetPosition":{"x":18577.806237131383,"y":24830.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stage","id":"9367b628-1fa8-49b3-abb2-fee833568ff9"}}},{"type":"Layer","name":"Trigger Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"e7361a5c-f5b3-4bb0-a1c7-037504481cd3","savedPayload":{"position":{"x":18517.806237131383,"y":24835.35640053908},"targetPosition":{"x":18525.806237131383,"y":24769.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"34f7e6cc-de2b-43ca-915b-56a0d4048e85","savedPayload":{"position":{"x":18549.806237131383,"y":24792.35640053908},"targetPosition":{"x":18525.806237131383,"y":24769.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0f9a8b84-f36b-436e-bbc8-f99b24ba3b30","savedPayload":{"position":{"x":18525.806237131383,"y":24769.35640053908},"targetPosition":{"x":18577.806237131383,"y":24830.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stage","id":"fb71c26a-5145-491e-a638-927b06eebcc1"}}},{"type":"Layer","name":"Manage Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"5aef5106-dc08-41cd-bc5d-77a29ed175df","savedPayload":{"position":{"x":18549.806237131383,"y":24672.35640053908},"targetPosition":{"x":18533.806237131383,"y":24759.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"f0a478d3-d4bd-47d9-94b4-e5d8afe5490c","savedPayload":{"position":{"x":18472.806237131383,"y":24669.35640053908},"targetPosition":{"x":18533.806237131383,"y":24759.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1b2051ab-8567-4fe4-99ed-4b01c5d95469","savedPayload":{"position":{"x":18533.806237131383,"y":24759.35640053908},"targetPosition":{"x":18577.806237131383,"y":24830.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stage","id":"4c58969f-8f1b-43fa-97a7-42a4fdead527"}}}],"layerFolders":[],"id":"3fc775e2-6fd5-4a78-9451-455b6dbd2e9d","savedPayload":{"position":{"x":18577.806237131383,"y":24830.35640053908},"targetPosition":{"x":18665.806237131383,"y":24767.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"360bb611-9f26-4209-aedf-6df1e279654d","savedPayload":{"position":{"x":18632.806237131383,"y":24797.35640053908},"targetPosition":{"x":18576.806237131383,"y":24698.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"ed832a3f-7384-4e32-9f6e-aa2cb23b5d0e","savedPayload":{"position":{"x":18658.806237131383,"y":24687.35640053908},"targetPosition":{"x":18576.806237131383,"y":24698.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"49dc2a1b-65a7-45ca-b01a-c791a686636d","savedPayload":{"position":{"x":18576.806237131383,"y":24698.35640053908},"targetPosition":{"x":18584.806237131383,"y":24776.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"f0cbbb32-53fa-473a-8c4a-535c1d267060"}}},{"type":"Layer","name":"Market Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"4dba7c2c-dce4-4d0a-999d-db8cc3b076b8","savedPayload":{"position":{"x":18599.806237131383,"y":24926.35640053908},"targetPosition":{"x":18519.806237131383,"y":24827.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"0803cd06-9f60-43c1-b35d-1f531ec54a2e","savedPayload":{"position":{"x":18597.806237131383,"y":24880.35640053908},"targetPosition":{"x":18519.806237131383,"y":24827.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fcd156f6-c612-4cea-920c-a13863ee18ae","savedPayload":{"position":{"x":18519.806237131383,"y":24827.35640053908},"targetPosition":{"x":18584.806237131383,"y":24776.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"7893f1aa-0976-4150-954c-aa6dc4b0206b"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"1516e02b-a9e7-4467-bf74-07d13174f0ad","savedPayload":{"position":{"x":18723.806237131383,"y":24648.35640053908},"targetPosition":{"x":18639.806237131383,"y":24677.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"342e21e5-3617-428a-be5e-62034bb531e2","savedPayload":{"position":{"x":18559.806237131383,"y":24620.35640053908},"targetPosition":{"x":18639.806237131383,"y":24677.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f34faa77-4326-49e6-a555-4a285a983857","savedPayload":{"position":{"x":18639.806237131383,"y":24677.35640053908},"targetPosition":{"x":18584.806237131383,"y":24776.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"b7cfe3e7-e5b4-437c-b3d1-65d6100290b6"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"cdb5c643-5c3e-4ac7-a866-1b5beec581ba","savedPayload":{"position":{"x":18527.806237131383,"y":24885.35640053908},"targetPosition":{"x":18626.806237131383,"y":24791.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"c05890d1-8abd-43c3-aa3d-34a043d213b1","savedPayload":{"position":{"x":18643.806237131383,"y":24709.35640053908},"targetPosition":{"x":18626.806237131383,"y":24791.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"168d789d-ff10-4e08-bafa-9f5f8544f210","savedPayload":{"position":{"x":18626.806237131383,"y":24791.35640053908},"targetPosition":{"x":18584.806237131383,"y":24776.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"d791e38c-a2bc-4aa8-9aec-508145c47df2"}}},{"type":"Layer","name":"Last Market Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"e94a1276-43e0-4587-82a0-87706ca78987","savedPayload":{"position":{"x":18519.806237131383,"y":24776.35640053908},"targetPosition":{"x":18596.806237131383,"y":24736.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"ddfea099-09f5-4b78-9afa-1d7b1b3b5fe2","savedPayload":{"position":{"x":18617.806237131383,"y":24753.35640053908},"targetPosition":{"x":18596.806237131383,"y":24736.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3ddbaa49-41bd-463b-a5d4-737d87cd2dc6","savedPayload":{"position":{"x":18596.806237131383,"y":24736.35640053908},"targetPosition":{"x":18584.806237131383,"y":24776.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Market Order","id":"85b9356c-8c5f-4774-8536-0cd18c05d752"}}},{"type":"Layer","name":"Last Limit Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"339ec6ae-b9c0-4074-bf30-37be23529175","savedPayload":{"position":{"x":18544.806237131383,"y":24773.35640053908},"targetPosition":{"x":18608.806237131383,"y":24785.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"ec9d405e-222d-473b-86c9-9ba2cebeacac","savedPayload":{"position":{"x":18703.806237131383,"y":24770.35640053908},"targetPosition":{"x":18608.806237131383,"y":24785.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"393d8dd5-9fb0-42a7-94cf-f33e26acf02e","savedPayload":{"position":{"x":18608.806237131383,"y":24785.35640053908},"targetPosition":{"x":18584.806237131383,"y":24776.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Limit Order","id":"efff2729-03f0-445b-941a-863dfd37a208"}}}],"layerFolders":[],"id":"61999979-3554-44da-8714-2ac90f7e0801","savedPayload":{"position":{"x":18584.806237131383,"y":24776.35640053908},"targetPosition":{"x":18665.806237131383,"y":24767.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d009ce95-8509-4995-ae27-6845106b205b","savedPayload":{"position":{"x":18665.806237131383,"y":24767.35640053908},"targetPosition":{"x":18693.806237131383,"y":24796.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"70628710-8b5f-48aa-9a40-d29ccdca6314","savedPayload":{"position":{"x":18693.806237131383,"y":24796.35640053908},"targetPosition":{"x":18793.806237131383,"y":24870.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fdac1efe-2b59-4eac-802a-7397bf26309c","savedPayload":{"position":{"x":18793.806237131383,"y":24870.35640053908},"targetPosition":{"x":18843.806237131383,"y":24885.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1450,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"4135dfad-bc00-4d2b-b3d9-ff8b0c97180f"}}},"id":"1f6e5169-2f7a-42e0-b28d-9f838314d40b","savedPayload":{"position":{"x":17799.283208624944,"y":24580.75035754138},"targetPosition":{"x":18081.190994860717,"y":24683.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Trading System","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading System","project":"Superalgos","layers":[{"type":"Layer","name":"Trading System Errors","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"64489655-c390-42ce-9fd0-047f44bb0889","savedPayload":{"position":{"x":18770.806237131383,"y":24947.35640053908},"targetPosition":{"x":18689.806237131383,"y":25008.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"f71db0c4-9223-40b3-981d-1851fd289849","savedPayload":{"position":{"x":18675.806237131383,"y":24943.35640053908},"targetPosition":{"x":18689.806237131383,"y":25008.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1cac1c8e-ed51-4d38-881f-190e8e1c3909","savedPayload":{"position":{"x":18689.806237131383,"y":25008.35640053908},"targetPosition":{"x":18778.806237131383,"y":24939.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Errors","id":"0f891e49-d7fd-4415-b099-ea80dcf5c321"}}},{"type":"Layer","name":"Trading System Highlights","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"a3279bd5-313a-49d8-b8e0-90cd31c3abdf","savedPayload":{"position":{"x":18729.806237131383,"y":24927.35640053908},"targetPosition":{"x":18708.806237131383,"y":24947.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"6fafc2ab-d556-4b88-a29d-c31ad61d32af","savedPayload":{"position":{"x":18746.806237131383,"y":24950.35640053908},"targetPosition":{"x":18708.806237131383,"y":24947.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2a2ad727-4ff7-4760-b4c4-3a6e4aaee73a","savedPayload":{"position":{"x":18708.806237131383,"y":24947.35640053908},"targetPosition":{"x":18778.806237131383,"y":24939.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Highlights","id":"16448d2a-d2d1-4f77-8bd8-2230ac32ec28"}}},{"type":"Layer","name":"Trading System Values","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"d755e785-43ac-4f93-8759-2e629e1dca12","savedPayload":{"position":{"x":18714.806237131383,"y":25014.35640053908},"targetPosition":{"x":18755.806237131383,"y":24944.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"04261468-25d9-4609-ae04-535f9ae859c6","savedPayload":{"position":{"x":18720.806237131383,"y":24928.35640053908},"targetPosition":{"x":18755.806237131383,"y":24944.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"27b5455e-990e-426d-aaf6-f6ea8038d0fc","savedPayload":{"position":{"x":18755.806237131383,"y":24944.35640053908},"targetPosition":{"x":18778.806237131383,"y":24939.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Values","id":"3dcbdc27-4611-41a4-a0c5-aa62b34afee0"}}},{"type":"Layer","name":"Trading System Status","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"9dfb99de-0ff5-4eb1-8265-ac06c943ac2f","savedPayload":{"position":{"x":18776.806237131383,"y":24852.35640053908},"targetPosition":{"x":18703.806237131383,"y":24869.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"b56d9ec1-e56e-4c2d-97c8-2f3a18f0be20","savedPayload":{"position":{"x":18641.806237131383,"y":24848.35640053908},"targetPosition":{"x":18703.806237131383,"y":24869.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"35a0263f-208a-45f4-91e4-44446a06a0b3","savedPayload":{"position":{"x":18703.806237131383,"y":24869.35640053908},"targetPosition":{"x":18778.806237131383,"y":24939.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Status","id":"425b1e48-7a1f-421e-bdea-8801fcbf96c7"}}},{"type":"Layer","name":"Trading System Progress","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"e5c178b0-b09b-49c6-840d-b886e137c99d","savedPayload":{"position":{"x":18659.806237131383,"y":24949.35640053908},"targetPosition":{"x":18706.806237131383,"y":24970.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"be84d087-9024-481b-a5e3-2140978556a9","savedPayload":{"position":{"x":18679.806237131383,"y":24939.35640053908},"targetPosition":{"x":18706.806237131383,"y":24970.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"79c97037-0a1a-4fab-bcd8-a8654db6914c","savedPayload":{"position":{"x":18706.806237131383,"y":24970.35640053908},"targetPosition":{"x":18778.806237131383,"y":24939.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Progress","id":"2e8c8e09-9c00-44b0-94b9-30314ef11cd4"}}},{"type":"Layer","name":"Trading System Running","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"c76e8940-fb0b-4425-a1b1-f9fa09946816","savedPayload":{"position":{"x":18729.806237131383,"y":25044.35640053908},"targetPosition":{"x":18790.806237131383,"y":25036.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"af53bc88-19cc-4533-91a8-65e7db71db8b","savedPayload":{"position":{"x":18771.806237131383,"y":25050.35640053908},"targetPosition":{"x":18790.806237131383,"y":25036.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"08f1f9c1-2070-4981-80b0-11f8d7a0cfd1","savedPayload":{"position":{"x":18790.806237131383,"y":25036.35640053908},"targetPosition":{"x":18778.806237131383,"y":24939.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Running","id":"2fd7020d-cf50-4090-8589-c36c5adae270"}}},{"type":"Layer","name":"Trading System Announcements","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"c498a787-0ed1-4280-8e05-793124cf155c","savedPayload":{"position":{"x":18687.806237131383,"y":24855.35640053908},"targetPosition":{"x":18715.806237131383,"y":24861.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"a08e4f54-2af1-4106-9a11-c2e1ae10de30","savedPayload":{"position":{"x":18633.806237131383,"y":24890.35640053908},"targetPosition":{"x":18715.806237131383,"y":24861.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4a4a1c0e-ff7e-4652-87d3-b4b560cca2fe","savedPayload":{"position":{"x":18715.806237131383,"y":24861.35640053908},"targetPosition":{"x":18778.806237131383,"y":24939.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Announcements","id":"d8897a38-b8e6-4cb7-8dbc-292f97e2a49b"}}},{"type":"Layer","name":"Trading System Warnings","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"5a278835-f21c-4317-ac77-3078845104a7","savedPayload":{"position":{"x":18793.806237131383,"y":24941.35640053908},"targetPosition":{"x":18875.806237131383,"y":25012.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"4b8429fa-56ad-4493-817b-36491a806c54","savedPayload":{"position":{"x":18929.806237131383,"y":25103.35640053908},"targetPosition":{"x":18875.806237131383,"y":25012.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b96663f5-ddd9-4459-98d5-ddb05021df81","savedPayload":{"position":{"x":18875.806237131383,"y":25012.35640053908},"targetPosition":{"x":18778.806237131383,"y":24939.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Warnings","id":"70c1fb7b-bfff-4ff3-8713-a7ce552c8107"}}},{"type":"Layer","name":"Trading System Infos","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"59a2f5f0-b91a-4e67-a828-0cedd6d1220d","savedPayload":{"position":{"x":18688.806237131383,"y":25051.35640053908},"targetPosition":{"x":18778.806237131383,"y":24978.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"2c22197a-0ac3-4fe5-993f-1403d6b6c9a9","savedPayload":{"position":{"x":18855.806237131383,"y":25002.35640053908},"targetPosition":{"x":18778.806237131383,"y":24978.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d014d6e8-5c03-4be7-a0c3-cd995bb444fc","savedPayload":{"position":{"x":18778.806237131383,"y":24978.35640053908},"targetPosition":{"x":18778.806237131383,"y":24939.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Infos","id":"a0c0c574-780e-4023-83cd-201c526e9a76"}}}],"layerFolders":[],"id":"dd05b75d-7e41-43c5-a359-2efac0658360","savedPayload":{"position":{"x":18778.806237131383,"y":24939.35640053908},"targetPosition":{"x":18683.806237131383,"y":24970.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d748a835-a823-4bee-8eba-e0fbde14a0fc","savedPayload":{"position":{"x":18683.806237131383,"y":24970.35640053908},"targetPosition":{"x":18765.806237131383,"y":24895.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"64af5d2f-b289-42a4-8449-a989cabafec1","savedPayload":{"position":{"x":18765.806237131383,"y":24895.35640053908},"targetPosition":{"x":18809.806237131383,"y":24940.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1300,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"4135dfad-bc00-4d2b-b3d9-ff8b0c97180f"}}},"id":"0b73bfce-19a3-4a79-9e90-1c158f06c658","savedPayload":{"position":{"x":17851.377661925024,"y":24490.520117633117},"targetPosition":{"x":18081.190994860717,"y":24683.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Simulation Objects","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 1,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Simulation Objects","project":"Superalgos","layers":[{"type":"Layer","name":"Episodes","config":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Episode Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"f794c0a4-e246-4894-8889-1d95797e1dde","savedPayload":{"position":{"x":18962.806237131383,"y":24579.35640053908},"targetPosition":{"x":18864.806237131383,"y":24648.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Object","id":"bcbb3368-ea4c-466b-8423-8f0517ad35da"}}},{"type":"Layer Panel","name":"Episode Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"151963bb-404c-49f9-8000-9d04019a9c41","savedPayload":{"position":{"x":18846.806237131383,"y":24647.35640053908},"targetPosition":{"x":18864.806237131383,"y":24648.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Base Asset","id":"b18a5300-448b-4165-9b36-dc5ee37e58cd"}}},{"type":"Layer Panel","name":"Episode Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ba47301d-35be-4df7-b8fb-815517e2a407","savedPayload":{"position":{"x":18955.806237131383,"y":24574.35640053908},"targetPosition":{"x":18864.806237131383,"y":24648.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Quoted Asset","id":"dbdd55de-9279-48ef-a0b1-e50024f284e9"}}}],"id":"5efda7a9-bc8f-4782-9e98-0100a2fe906e","savedPayload":{"position":{"x":18864.806237131383,"y":24648.35640053908},"targetPosition":{"x":18866.806237131383,"y":24745.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5513e365-5c0c-4c33-a658-84f37acd5fc3","savedPayload":{"position":{"x":18877.806237131383,"y":24726.35640053908},"targetPosition":{"x":18927.806237131383,"y":24732.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"7237c558-a0e5-46c6-8cf5-ebc555e98efb"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"d8289909-cdaa-4cb4-94f5-8ed1e1438e9d","savedPayload":{"position":{"x":18980.806237131383,"y":24806.35640053908},"targetPosition":{"x":18927.806237131383,"y":24732.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"4958982a-b51a-40ef-8764-dd5451cf9837"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"71e90c76-ec25-4516-a9e3-1031c630042c","savedPayload":{"position":{"x":19005.806237131383,"y":24762.35640053908},"targetPosition":{"x":18927.806237131383,"y":24732.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"86fefa5e-8de8-4d00-a632-e1827ce60030"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ce608ac6-a7f9-4180-bc69-eb1f2136bbed","savedPayload":{"position":{"x":19002.806237131383,"y":24821.35640053908},"targetPosition":{"x":18927.806237131383,"y":24732.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"79a3b846-3b23-4c01-9aa1-cedcebb5ca03"}}}],"id":"393aeeea-b6d3-4f1c-b417-11dd631379b0","savedPayload":{"position":{"x":18927.806237131383,"y":24732.35640053908},"targetPosition":{"x":18866.806237131383,"y":24745.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"41da7ed1-461e-44c6-a77f-bbab553380ab","savedPayload":{"position":{"x":18866.806237131383,"y":24745.35640053908},"targetPosition":{"x":18883.806237131383,"y":24664.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episodes","id":"383bb471-7325-48f7-86a2-b034f96e6aec"}}},{"type":"Layer","name":"Strategies","config":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Strategy Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"3a5a7924-cc1c-4a27-b0ce-7a6c8ec4f322","savedPayload":{"position":{"x":18892.806237131383,"y":24590.35640053908},"targetPosition":{"x":18841.806237131383,"y":24631.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Strategy Object","id":"b256b76c-3834-4d62-aa56-f42cce9f47e9"}}}],"id":"49602cb7-2695-495c-ab0d-f5325cbea42c","savedPayload":{"position":{"x":18841.806237131383,"y":24631.35640053908},"targetPosition":{"x":18870.806237131383,"y":24664.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2e09fc50-ace3-4b93-a5e4-bf6338e83626","savedPayload":{"position":{"x":18909.806237131383,"y":24775.35640053908},"targetPosition":{"x":18955.806237131383,"y":24734.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"9ae59a68-71fd-4ec8-9a70-da743f33baee"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"0ed362ec-9e5c-4e44-ad39-e71775791ac6","savedPayload":{"position":{"x":18933.806237131383,"y":24813.35640053908},"targetPosition":{"x":18955.806237131383,"y":24734.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"504f327c-a08d-4c3d-8e77-850299cc30ed"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"922acfb8-3e04-495b-bdef-7d047389348c","savedPayload":{"position":{"x":19001.806237131383,"y":24697.35640053908},"targetPosition":{"x":18955.806237131383,"y":24734.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"f9500afd-e0f4-45d3-9647-45ec778554e8"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"f7402786-3019-4a99-8f78-3d77cae20e3b","savedPayload":{"position":{"x":18942.806237131383,"y":24724.35640053908},"targetPosition":{"x":18955.806237131383,"y":24734.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"354102dd-fd58-4f84-8e90-0d891defa0c8"}}}],"id":"30ccff30-1676-4f4a-89c1-739377c080f7","savedPayload":{"position":{"x":18955.806237131383,"y":24734.35640053908},"targetPosition":{"x":18870.806237131383,"y":24664.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9055e501-b8aa-4ca7-9d46-339b608660ab","savedPayload":{"position":{"x":18870.806237131383,"y":24664.35640053908},"targetPosition":{"x":18883.806237131383,"y":24664.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"1f92d8ed-a3fe-4e70-9e0b-ae9bdd66d8b5"}}}],"layerFolders":[{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Market Buy Order","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2ed216a9-5847-4743-924b-6f9404bacb24","savedPayload":{"position":{"x":18687.806237131383,"y":24765.35640053908},"targetPosition":{"x":18711.806237131383,"y":24831.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Buy Order","id":"12929733-5964-4948-877b-b1edda37162a"}}},{"type":"Layer Panel","name":"Market Buy Order Stats","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"c31b1cc6-14e1-4734-abd2-760e37955a6d","savedPayload":{"position":{"x":18802.806237131383,"y":24750.35640053908},"targetPosition":{"x":18711.806237131383,"y":24831.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Buy Order Stats","id":"81a88e44-189c-44ec-9607-cb1e4de8baa1"}}},{"type":"Layer Panel","name":"Market Buy Order Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"80f76e1e-c7d5-4fab-baea-4f4bd9ca859b","savedPayload":{"position":{"x":18722.806237131383,"y":24735.35640053908},"targetPosition":{"x":18711.806237131383,"y":24831.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Buy Order Base Asset","id":"608a9068-7324-4f4c-8fdd-d9d8e42e26c6"}}},{"type":"Layer Panel","name":"Market Buy Order Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"6a577c87-6b19-4641-a7c1-fb000426ac24","savedPayload":{"position":{"x":18665.806237131383,"y":24808.35640053908},"targetPosition":{"x":18711.806237131383,"y":24831.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Buy Order Quoted Asset","id":"1a55af5e-821d-4421-80d2-2c543d25ea1a"}}}],"id":"e1b9fc51-6724-4a6a-b635-ba0fb34cac88","savedPayload":{"position":{"x":18711.806237131383,"y":24831.35640053908},"targetPosition":{"x":18811.806237131383,"y":24777.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"83639e7b-ccbe-41d2-a4b5-7bd34d1106fe","savedPayload":{"position":{"x":18931.806237131383,"y":24788.35640053908},"targetPosition":{"x":18903.806237131383,"y":24837.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"6217d021-ea5b-4b20-b093-758a2d2fb5d4"}}}],"id":"350a73ff-1ac1-46bb-b7e3-220b450339d0","savedPayload":{"position":{"x":18903.806237131383,"y":24837.35640053908},"targetPosition":{"x":18811.806237131383,"y":24777.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d3889a48-e6c7-41eb-a703-4043ba1c1de1","savedPayload":{"position":{"x":18811.806237131383,"y":24777.35640053908},"targetPosition":{"x":18806.806237131383,"y":24737.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"483a11f5-ce67-493e-969b-57a5585b1c64"}}},{"type":"Layer","name":"Market Sell Orders","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Market Sell Order","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"96c6a9ff-2fc8-4bc5-ad0b-40d0708bfcc1","savedPayload":{"position":{"x":18641.806237131383,"y":24758.35640053908},"targetPosition":{"x":18695.806237131383,"y":24714.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Sell Order","id":"a5856620-e9ce-4ee1-830c-5b5dc45e9139"}}},{"type":"Layer Panel","name":"Market Sell Order Stats","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"c766a676-907b-412d-8e14-6c6c25972fc3","savedPayload":{"position":{"x":18667.806237131383,"y":24641.35640053908},"targetPosition":{"x":18695.806237131383,"y":24714.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Sell Order Stats","id":"fb23f6bb-8383-4276-8a77-5180e622653a"}}},{"type":"Layer Panel","name":"Market Sell Order Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a71d6e4d-1e3f-4ef2-a0cf-f4203d563941","savedPayload":{"position":{"x":18631.806237131383,"y":24809.35640053908},"targetPosition":{"x":18695.806237131383,"y":24714.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Sell Order Base Asset","id":"3e9e4e57-bd41-41f5-8d52-c92d3a707e80"}}},{"type":"Layer Panel","name":"Market Sell Order Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"e8e526c1-6d1b-4ab2-bcf6-e123c64833ff","savedPayload":{"position":{"x":18764.806237131383,"y":24649.35640053908},"targetPosition":{"x":18695.806237131383,"y":24714.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Sell Order Quoted Asset","id":"51d59c30-3a02-4d74-aa62-f1524ea544ee"}}}],"id":"aab2fc72-b246-4d08-9411-3cfbcb43bed1","savedPayload":{"position":{"x":18695.806237131383,"y":24714.35640053908},"targetPosition":{"x":18720.806237131383,"y":24805.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"4768e5d4-a813-4c8d-9d75-c31f4ec71eb5","savedPayload":{"position":{"x":18638.806237131383,"y":24831.35640053908},"targetPosition":{"x":18665.806237131383,"y":24743.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"5b8dcb5c-6b20-4edf-aae5-1c526cdca536"}}}],"id":"8149bbab-4555-4618-a0b3-1b57aef54556","savedPayload":{"position":{"x":18665.806237131383,"y":24743.35640053908},"targetPosition":{"x":18720.806237131383,"y":24805.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bdaef0cf-278f-4a1a-bd46-5fcbd61ea697","savedPayload":{"position":{"x":18720.806237131383,"y":24805.35640053908},"targetPosition":{"x":18806.806237131383,"y":24737.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"2b2ce4ec-96b1-425e-8510-450c02a2c6f2"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Limit Buy Order","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"75d06d6c-b2b0-42f2-b7b8-e286ed1535a7","savedPayload":{"position":{"x":18644.806237131383,"y":24684.35640053908},"targetPosition":{"x":18712.806237131383,"y":24598.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Buy Order","id":"48ec80a7-6f68-4284-9bb5-f04ce3c1052b"}}},{"type":"Layer Panel","name":"Limit Buy Order Stats","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5590c0c1-931e-4869-9f03-68413255ebc8","savedPayload":{"position":{"x":18795.806237131383,"y":24634.35640053908},"targetPosition":{"x":18712.806237131383,"y":24598.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Buy Order Stats","id":"90bd6690-de93-4158-a17f-728c28defc38"}}},{"type":"Layer Panel","name":"Limit Buy Order Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ce398a0c-ed06-4704-80b2-226c156b3b1b","savedPayload":{"position":{"x":18683.806237131383,"y":24655.35640053908},"targetPosition":{"x":18712.806237131383,"y":24598.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Buy Order Base Asset","id":"8504b6e3-83c8-45ea-959a-41303f9d4274"}}},{"type":"Layer Panel","name":"Limit Buy Order Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"f7bb6e8c-b47b-4610-9914-0488313ff393","savedPayload":{"position":{"x":18715.806237131383,"y":24588.35640053908},"targetPosition":{"x":18712.806237131383,"y":24598.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Buy Order Quoted Asset","id":"b60e7e48-8ae7-4701-848b-8faa9ba58c11"}}}],"id":"16ff1f65-5038-49f6-96c3-1a96209cbb81","savedPayload":{"position":{"x":18712.806237131383,"y":24598.35640053908},"targetPosition":{"x":18716.806237131383,"y":24655.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Status Open","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2988fc9c-9095-4598-83fd-143d6cef6895","savedPayload":{"position":{"x":18759.806237131383,"y":24640.35640053908},"targetPosition":{"x":18765.806237131383,"y":24668.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Open","id":"7be8ba85-07e7-4800-8988-ce76d2105b73"}}},{"type":"Layer Polygon","name":"Status Closed Cancel Event","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"b664c2b4-3159-4c93-833f-26ce1d322704","savedPayload":{"position":{"x":18697.806237131383,"y":24666.35640053908},"targetPosition":{"x":18765.806237131383,"y":24668.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Closed Cancel Event","id":"ab881143-5631-4b27-a97a-94138dbd370d"}}},{"type":"Layer Polygon","name":"Status Closed Filled","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"748735ef-a11e-4d75-92f4-4760530b78b4","savedPayload":{"position":{"x":18764.806237131383,"y":24737.35640053908},"targetPosition":{"x":18765.806237131383,"y":24668.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Closed Filled","id":"a54693cf-8ec1-469d-afb9-2a724e4f6af7"}}}],"id":"e2d257a1-815f-4ae6-aee2-a6c4303add78","savedPayload":{"position":{"x":18765.806237131383,"y":24668.35640053908},"targetPosition":{"x":18716.806237131383,"y":24655.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9ce52e75-3009-46fd-9e8a-b5ad739becd9","savedPayload":{"position":{"x":18716.806237131383,"y":24655.35640053908},"targetPosition":{"x":18806.806237131383,"y":24737.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"d425f47e-b69f-467d-b3de-12b563c1fd94"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Limit Sell Order","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"9c8020fe-54fc-4e7a-a540-350fe1632aab","savedPayload":{"position":{"x":18846.806237131383,"y":24896.35640053908},"targetPosition":{"x":18809.806237131383,"y":24837.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Sell Order","id":"5d485d15-9919-42cc-9399-54c679d7085d"}}},{"type":"Layer Panel","name":"Limit Sell Order Stats","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"9fa665b8-43ed-4410-84da-3f3a2637d5a2","savedPayload":{"position":{"x":18724.806237131383,"y":24832.35640053908},"targetPosition":{"x":18809.806237131383,"y":24837.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Sell Order Stats","id":"db2f6e9c-ce79-4465-a0dc-8ea02fac26b7"}}},{"type":"Layer Panel","name":"Limit Sell Order Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"7dbf755b-c250-42c6-a861-f0acea8a4268","savedPayload":{"position":{"x":18854.806237131383,"y":24775.35640053908},"targetPosition":{"x":18809.806237131383,"y":24837.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Sell Order Base Asset","id":"3e34000e-ad8c-4049-9eee-89e8ea362a0f"}}},{"type":"Layer Panel","name":"Limit Sell Order Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"afd34b5c-dd59-4604-8521-539dd492099f","savedPayload":{"position":{"x":18814.806237131383,"y":24854.35640053908},"targetPosition":{"x":18809.806237131383,"y":24837.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Sell Order Quoted Asset","id":"ae18b041-f16e-4d96-8a83-56845dddf64a"}}}],"id":"2030074b-dee7-4e76-8ad8-6a842b5047ce","savedPayload":{"position":{"x":18809.806237131383,"y":24837.35640053908},"targetPosition":{"x":18744.806237131383,"y":24772.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Status Open","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"35b45c51-401f-4c47-ac4d-46a78d7fb16b","savedPayload":{"position":{"x":18930.806237131383,"y":24718.35640053908},"targetPosition":{"x":18839.806237131383,"y":24712.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Open","id":"186d1b59-7d04-4b40-83c9-acc361b8a12a"}}},{"type":"Layer Polygon","name":"Status Closed Cancel Event","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"81a1970a-47c2-4975-9fc5-10f66580d92d","savedPayload":{"position":{"x":18866.806237131383,"y":24629.35640053908},"targetPosition":{"x":18839.806237131383,"y":24712.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Closed Cancel Event","id":"8e993263-dbfc-4d41-864a-9470e70d7e4f"}}},{"type":"Layer Polygon","name":"Status Closed Filled","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"c6e884d7-bcac-4b98-99b3-5beb01e3dff1","savedPayload":{"position":{"x":18912.806237131383,"y":24631.35640053908},"targetPosition":{"x":18839.806237131383,"y":24712.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Closed Filled","id":"bf0751d6-fdb2-4e66-a39c-2bd99252bd60"}}}],"id":"b5177eed-7143-4b29-9410-1c9d09e2c723","savedPayload":{"position":{"x":18839.806237131383,"y":24712.35640053908},"targetPosition":{"x":18744.806237131383,"y":24772.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4c5598b3-91bb-403b-9033-03e45d862dae","savedPayload":{"position":{"x":18744.806237131383,"y":24772.35640053908},"targetPosition":{"x":18806.806237131383,"y":24737.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"b750b34d-3a85-4571-a145-7e8580d5b252"}}}],"layerFolders":[],"id":"1a4bb5f3-7f85-4679-9e44-4e0b24d28cba","savedPayload":{"position":{"x":18806.806237131383,"y":24737.35640053908},"targetPosition":{"x":18883.806237131383,"y":24664.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Trigger Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Trigger Stage Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"c2e2fd4b-f865-41b0-acc6-e00fe8d955bc","savedPayload":{"position":{"x":18818.806237131383,"y":24637.35640053908},"targetPosition":{"x":18814.806237131383,"y":24547.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Trigger Stage Object","id":"c10b9b7b-04d8-460b-9dcc-2eaed24e17df"}}}],"id":"3ff840e4-893c-4ae3-8737-8f8e12d77401","savedPayload":{"position":{"x":18814.806237131383,"y":24547.35640053908},"targetPosition":{"x":18850.806237131383,"y":24588.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"4629992c-5b73-4062-aa2f-4bd7567baf40","savedPayload":{"position":{"x":18835.806237131383,"y":24723.35640053908},"targetPosition":{"x":18806.806237131383,"y":24656.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"9e88f3a0-09ad-44fd-a84e-731228860e66"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"1ad93c9b-686a-49bb-ab07-a252b302ad31","savedPayload":{"position":{"x":18861.806237131383,"y":24726.35640053908},"targetPosition":{"x":18806.806237131383,"y":24656.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"e2e18af7-af5f-4634-b8a4-4fabd2ddd7a5"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"7f11eaf1-c8c2-4c9c-9b89-d28fdcdd5c0c","savedPayload":{"position":{"x":18817.806237131383,"y":24737.35640053908},"targetPosition":{"x":18806.806237131383,"y":24656.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"08d916aa-6d2d-497b-8738-9b0966e3901e"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"71173d89-5e02-4464-a542-e843f695c190","savedPayload":{"position":{"x":18709.806237131383,"y":24686.35640053908},"targetPosition":{"x":18806.806237131383,"y":24656.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"70de0f73-5a2d-4a5a-a5f7-1863f192a14d"}}}],"id":"e08622cd-270d-4c0d-bf83-13826e9aee38","savedPayload":{"position":{"x":18806.806237131383,"y":24656.35640053908},"targetPosition":{"x":18850.806237131383,"y":24588.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ba2dedb1-6655-4200-8048-c4d700f2928f","savedPayload":{"position":{"x":18850.806237131383,"y":24588.35640053908},"targetPosition":{"x":18822.806237131383,"y":24671.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stages","id":"4a23f371-b655-40eb-8e7a-c7e87c1ad276"}}},{"type":"Layer","name":"Open Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Open Stage Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"866fed12-2a56-47d3-bd0d-bda517b99717","savedPayload":{"position":{"x":18959.806237131383,"y":24809.35640053908},"targetPosition":{"x":18960.806237131383,"y":24791.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Open Stage Object","id":"be56e169-d089-4aea-a18a-c01cf16a3485"}}}],"id":"5fef251c-513d-4185-b097-def68bde8068","savedPayload":{"position":{"x":18960.806237131383,"y":24791.35640053908},"targetPosition":{"x":18893.806237131383,"y":24712.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"b6ab7999-1530-4383-ba76-97cf406bac5d","savedPayload":{"position":{"x":18743.806237131383,"y":24620.35640053908},"targetPosition":{"x":18831.806237131383,"y":24688.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"21db891e-4c47-4a5a-88a5-036297086138"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"80a4df99-e2b8-4a29-9f63-dc7d4a6bdcf8","savedPayload":{"position":{"x":18849.806237131383,"y":24660.35640053908},"targetPosition":{"x":18831.806237131383,"y":24688.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"2a3d0d93-13d9-4a9e-8d32-c0aa5d7ab1e3"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"f73cc1a4-0e95-46da-abb0-fb232934db3d","savedPayload":{"position":{"x":18741.806237131383,"y":24685.35640053908},"targetPosition":{"x":18831.806237131383,"y":24688.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"616f49d0-daaa-4b82-be0d-56504b402616"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"18c9f6d0-ffe7-48fa-b665-6a8a050d79e5","savedPayload":{"position":{"x":18881.806237131383,"y":24762.35640053908},"targetPosition":{"x":18831.806237131383,"y":24688.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"0fab39ff-8caf-45f8-8650-33d7a65fa6e1"}}}],"id":"0953779f-e278-4f5f-b012-c6dabfd4208c","savedPayload":{"position":{"x":18831.806237131383,"y":24688.35640053908},"targetPosition":{"x":18893.806237131383,"y":24712.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5c97e662-4ff2-44ab-b615-c31a133ed735","savedPayload":{"position":{"x":18893.806237131383,"y":24712.35640053908},"targetPosition":{"x":18822.806237131383,"y":24671.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stages","id":"b30d6665-4e7e-4e43-959a-c33b09e1cddb"}}},{"type":"Layer","name":"Manage Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Manage Stage Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"487f979d-c9bd-4650-8bb9-16d26df59433","savedPayload":{"position":{"x":18796.806237131383,"y":24666.35640053908},"targetPosition":{"x":18745.806237131383,"y":24666.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Manage Stage Object","id":"3db5604f-cacf-4c87-b1ea-5aa364bf9f48"}}}],"id":"a5723b94-72ff-4cb1-a586-1d5541b68ff0","savedPayload":{"position":{"x":18745.806237131383,"y":24666.35640053908},"targetPosition":{"x":18727.806237131383,"y":24665.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"80936735-9788-48ad-a55a-272b599abd9a","savedPayload":{"position":{"x":18655.806237131383,"y":24696.35640053908},"targetPosition":{"x":18734.806237131383,"y":24601.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"43435aed-68cb-4a56-88c4-2574d91f5b32"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"96609107-9883-46fe-b95c-f91ece213274","savedPayload":{"position":{"x":18743.806237131383,"y":24648.35640053908},"targetPosition":{"x":18734.806237131383,"y":24601.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"904be022-f1e2-475e-9115-88224353cfa2"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5ef2c797-dfd0-4541-91dc-031d7d27113f","savedPayload":{"position":{"x":18734.806237131383,"y":24695.35640053908},"targetPosition":{"x":18734.806237131383,"y":24601.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"4c74d4d8-d0a4-4581-bee7-36485d7a91a5"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5a13db96-76c2-4550-9c96-f9e8fe584618","savedPayload":{"position":{"x":18778.806237131383,"y":24639.35640053908},"targetPosition":{"x":18734.806237131383,"y":24601.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"9fc6d2c4-a67b-42e8-841b-7523f7ab4962"}}}],"id":"f084177f-b0f6-427a-966a-3090aa9c9770","savedPayload":{"position":{"x":18734.806237131383,"y":24601.35640053908},"targetPosition":{"x":18727.806237131383,"y":24665.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"099a307b-e89f-4e18-a2ac-725b6331b417","savedPayload":{"position":{"x":18727.806237131383,"y":24665.35640053908},"targetPosition":{"x":18822.806237131383,"y":24671.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stages","id":"aaeccd9c-0981-4431-b89c-f67eaa1e305c"}}},{"type":"Layer","name":"Close Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Close Stage Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"49b740df-9731-418d-88f4-eada104d2bed","savedPayload":{"position":{"x":18665.806237131383,"y":24800.35640053908},"targetPosition":{"x":18728.806237131383,"y":24730.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Close Stage Object","id":"069885e7-351f-45dc-8423-113db65b9592"}}}],"id":"37e06387-5f0c-4acd-9262-ea40874e13ee","savedPayload":{"position":{"x":18728.806237131383,"y":24730.35640053908},"targetPosition":{"x":18757.806237131383,"y":24736.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"e02c5fc1-844c-42fe-a203-6025ab762433","savedPayload":{"position":{"x":18799.806237131383,"y":24811.35640053908},"targetPosition":{"x":18788.806237131383,"y":24806.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"9463d512-21f5-48c1-8cd6-b14747b338cf"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a9600276-2750-4dd8-b0ef-92a637bd14d8","savedPayload":{"position":{"x":18856.806237131383,"y":24770.35640053908},"targetPosition":{"x":18788.806237131383,"y":24806.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"c3249cad-9f26-4ff2-ab0d-968c66bb7f2d"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"e8826a13-4c6a-4d3a-8a6e-58584e3dcaa6","savedPayload":{"position":{"x":18716.806237131383,"y":24712.35640053908},"targetPosition":{"x":18788.806237131383,"y":24806.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"dbd9d421-d90c-4ab8-a26b-c2254d7abec1"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"c76bcf44-9244-4f2e-8ecd-49212cbea7f0","savedPayload":{"position":{"x":18856.806237131383,"y":24746.35640053908},"targetPosition":{"x":18788.806237131383,"y":24806.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"a5e40c24-183d-4896-97b0-f9f0f104c240"}}}],"id":"2ac8c06b-ffaa-4890-9556-511e17d9edd1","savedPayload":{"position":{"x":18788.806237131383,"y":24806.35640053908},"targetPosition":{"x":18757.806237131383,"y":24736.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"86b6f771-c9b9-49b8-ad1e-9d8620a0e067","savedPayload":{"position":{"x":18757.806237131383,"y":24736.35640053908},"targetPosition":{"x":18822.806237131383,"y":24671.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stages","id":"730f6f4d-d48b-4107-9b31-8c6a01f1e660"}}}],"layerFolders":[],"id":"b42f3752-b6c3-4f75-b447-19cdea568c6b","savedPayload":{"position":{"x":18822.806237131383,"y":24671.35640053908},"targetPosition":{"x":18883.806237131383,"y":24664.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Positions","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Position Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"51a2a58c-7801-4390-b6b6-bdbdfdd28e9f","savedPayload":{"position":{"x":18888.806237131383,"y":24673.35640053908},"targetPosition":{"x":18939.806237131383,"y":24645.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Position Object","id":"3d274e02-8896-4311-a0c8-9041b6507090"}}},{"type":"Layer Panel","name":"Position Combined Statistics","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"77b9f968-1105-4d30-963f-f213f3e054a9","savedPayload":{"position":{"x":18991.806237131383,"y":24603.35640053908},"targetPosition":{"x":18939.806237131383,"y":24645.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Position Combined Statistics","id":"05d6bb3e-f975-471f-be1f-3215025ce6fe"}}}],"id":"49358e69-8888-4bc9-b151-44520fb5584b","savedPayload":{"position":{"x":18939.806237131383,"y":24645.35640053908},"targetPosition":{"x":18930.806237131383,"y":24724.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Entry Target Rate Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a81da9ee-f6c6-4470-a35f-754ca5734a8e","savedPayload":{"position":{"x":18957.806237131383,"y":24573.35640053908},"targetPosition":{"x":18911.806237131383,"y":24671.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Entry Target Rate Line","id":"543ebae2-5624-49ad-a00f-df63335e92a9"}}},{"type":"Layer Polygon","name":"Exit Target Rate Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"e515cb4f-8293-4e7f-85ec-5c992f143465","savedPayload":{"position":{"x":18849.806237131383,"y":24753.35640053908},"targetPosition":{"x":18911.806237131383,"y":24671.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Exit Target Rate Line","id":"b066c240-8552-4622-9597-77e812491910"}}}],"id":"f5130917-f42c-47af-8e47-48ea8b1dd95c","savedPayload":{"position":{"x":18911.806237131383,"y":24671.35640053908},"targetPosition":{"x":18930.806237131383,"y":24724.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"019c44a8-609c-4e66-88cf-024a8b7a834e","savedPayload":{"position":{"x":18930.806237131383,"y":24724.35640053908},"targetPosition":{"x":18909.806237131383,"y":24657.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Positions","id":"840b95d5-ecb4-4a92-891a-cbc271781279"}}},{"type":"Layer","name":"Position Base Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Position Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"982e1bad-4937-4403-82ff-ffb9af932fad","savedPayload":{"position":{"x":18805.806237131383,"y":24805.35640053908},"targetPosition":{"x":18851.806237131383,"y":24797.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Position Base Asset","id":"b4298480-8922-4c40-ac79-b4484f8558bd"}}}],"id":"759771f4-c340-4304-af9d-2bc2740d9826","savedPayload":{"position":{"x":18851.806237131383,"y":24797.35640053908},"targetPosition":{"x":18945.806237131383,"y":24713.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Profit Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"4806d19a-ab3c-475a-8d4b-20a9629fbc97","savedPayload":{"position":{"x":18993.806237131383,"y":24756.35640053908},"targetPosition":{"x":18950.806237131383,"y":24658.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Profit Triangle","id":"2628b290-a09a-4807-8a45-7ff5a880d195"}}},{"type":"Layer Polygon","name":"Loss Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"6d3dba40-f262-4100-8995-b6f4cbbc04e2","savedPayload":{"position":{"x":18854.806237131383,"y":24726.35640053908},"targetPosition":{"x":18950.806237131383,"y":24658.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Loss Triangle","id":"e37cfbb4-fe54-49ad-9525-29b0d77e082b"}}},{"type":"Layer Polygon","name":"Empty Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"dffc4add-a0db-4fba-8577-f9adc16a4985","savedPayload":{"position":{"x":18890.806237131383,"y":24646.35640053908},"targetPosition":{"x":18950.806237131383,"y":24658.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Empty Triangle","id":"23c30ca5-95ec-47b2-a65f-01969b1a5a78"}}}],"id":"e7f4e3ab-26e3-4fe9-9f6a-33a9616094d9","savedPayload":{"position":{"x":18950.806237131383,"y":24658.35640053908},"targetPosition":{"x":18945.806237131383,"y":24713.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e3f84108-196e-4ce9-8adf-ec3acb1d9903","savedPayload":{"position":{"x":18945.806237131383,"y":24713.35640053908},"targetPosition":{"x":18909.806237131383,"y":24657.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Base Asset","id":"e3d24ef0-be0f-496a-bb5f-093e588aaae0"}}},{"type":"Layer","name":"Position Quoted Asset","config":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Position Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"c66693d0-31a8-4611-ba13-015a2c5fabd6","savedPayload":{"position":{"x":19025.806237131383,"y":24745.35640053908},"targetPosition":{"x":18955.806237131383,"y":24661.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Position Quoted Asset","id":"f15d0a31-30bd-49a6-8c45-1bcd1a9cc5a8"}}}],"id":"c012a837-969b-4084-ac0e-dc2b23ac095e","savedPayload":{"position":{"x":18955.806237131383,"y":24661.35640053908},"targetPosition":{"x":18992.806237131383,"y":24595.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Profit Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2ff0143e-3cac-46a4-b05b-98abf7ba2c4a","savedPayload":{"position":{"x":18963.806237131383,"y":24592.35640053908},"targetPosition":{"x":19017.806237131383,"y":24624.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Profit Triangle","id":"9cf82ef4-557e-498e-b121-ff28235b3a25"}}},{"type":"Layer Polygon","name":"Loss Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"8cf8c087-db65-4b73-acef-fdb86899c428","savedPayload":{"position":{"x":19020.806237131383,"y":24687.35640053908},"targetPosition":{"x":19017.806237131383,"y":24624.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Loss Triangle","id":"61faa796-9697-48b0-a582-613e1b351931"}}},{"type":"Layer Polygon","name":"Empty Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"21692958-b0f7-45d5-af94-ecc87713e8f8","savedPayload":{"position":{"x":19082.806237131383,"y":24595.35640053908},"targetPosition":{"x":19017.806237131383,"y":24624.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Empty Triangle","id":"58c807a3-8443-43d9-82e9-81c3d0545399"}}}],"id":"f6bf1af5-4047-4516-968f-95ca18a05f17","savedPayload":{"position":{"x":19017.806237131383,"y":24624.35640053908},"targetPosition":{"x":18992.806237131383,"y":24595.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1c40ca28-b2a3-48b7-b2ea-157fa0c91c6d","savedPayload":{"position":{"x":18992.806237131383,"y":24595.35640053908},"targetPosition":{"x":18909.806237131383,"y":24657.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Quoted Asset","id":"b5bcd589-1515-47c4-9c8b-2286cb5626f8"}}},{"type":"Layer","name":"Stop Loss","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Stop Loss Panel","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"4b032447-9932-4411-9118-8e8e70dc6dc4","savedPayload":{"position":{"x":18876.806237131383,"y":24526.35640053908},"targetPosition":{"x":18927.806237131383,"y":24590.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Stop Loss Panel","id":"1b6d3bd0-e594-4b09-9f1c-021177676d84"}}}],"id":"d1b3ac6a-67e9-4209-baff-7dcb81bb19b1","savedPayload":{"position":{"x":18927.806237131383,"y":24590.35640053908},"targetPosition":{"x":18835.806237131383,"y":24570.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"775fdebc-875d-476f-9a85-8c2497b6ed7d","savedPayload":{"position":{"x":18977.806237131383,"y":24472.35640053908},"targetPosition":{"x":18880.806237131383,"y":24477.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"9d351f29-6a3e-4c2b-b008-ebe1414d2aa8"}}}],"id":"c40a18af-9e7d-4040-9d25-079dba7144ac","savedPayload":{"position":{"x":18880.806237131383,"y":24477.35640053908},"targetPosition":{"x":18835.806237131383,"y":24570.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b963f6b5-2197-41c3-a62d-389fdce992ec","savedPayload":{"position":{"x":18835.806237131383,"y":24570.35640053908},"targetPosition":{"x":18909.806237131383,"y":24657.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Stop Loss","id":"e063d9a1-b8d1-4461-954f-dbf5104e9305"}}},{"type":"Layer","name":"Take Profit","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Take Profit Panel","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"23a740a2-3837-4161-afb0-823546384f6a","savedPayload":{"position":{"x":19049.806237131383,"y":24572.35640053908},"targetPosition":{"x":19017.806237131383,"y":24658.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Take Profit Panel","id":"33aa2293-7958-4cc3-bb41-fc97c17ccd67"}}}],"id":"67025480-fc65-4a1c-96ca-ed2364750dd7","savedPayload":{"position":{"x":19017.806237131383,"y":24658.35640053908},"targetPosition":{"x":18976.806237131383,"y":24705.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"abf36b3d-e877-4cd7-b4b7-637289e7b40d","savedPayload":{"position":{"x":19098.806237131383,"y":24794.35640053908},"targetPosition":{"x":19073.806237131383,"y":24734.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"a0b598d2-cdb6-4ce7-96c5-ef3317ae1768"}}}],"id":"f1690285-5457-4a6e-ad98-7c422c744fa5","savedPayload":{"position":{"x":19073.806237131383,"y":24734.35640053908},"targetPosition":{"x":18976.806237131383,"y":24705.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"163bfd9f-ac81-4807-b979-b47fd1e810d8","savedPayload":{"position":{"x":18976.806237131383,"y":24705.35640053908},"targetPosition":{"x":18909.806237131383,"y":24657.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Take Profit","id":"6a117f86-984f-48f6-8156-1c95bf0b3cb8"}}}],"layerFolders":[],"id":"422871c8-3c2c-4423-b4b8-3fa0d664bc57","savedPayload":{"position":{"x":18909.806237131383,"y":24657.35640053908},"targetPosition":{"x":18883.806237131383,"y":24664.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3e9af2f0-5d6c-435b-9349-96096b52345e","savedPayload":{"position":{"x":18883.806237131383,"y":24664.35640053908},"targetPosition":{"x":18894.806237131383,"y":24762.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3ad5cf45-8ed2-4ffd-b2c4-0351374e33c9","savedPayload":{"position":{"x":18894.806237131383,"y":24762.35640053908},"targetPosition":{"x":18895.806237131383,"y":24681.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8a421f71-713e-478a-913c-a84a8ab22b9f","savedPayload":{"position":{"x":18895.806237131383,"y":24681.35640053908},"targetPosition":{"x":18934.806237131383,"y":24763.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1150,"y":80},"width":150,"height":120,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"4135dfad-bc00-4d2b-b3d9-ff8b0c97180f"}}},"id":"23b66d99-cb5d-4c02-80d4-14737c1b4203","savedPayload":{"position":{"x":17931.190994860717,"y":24423.548779403747},"targetPosition":{"x":18081.190994860717,"y":24683.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Sparta Data","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Sparta","config":"{\n \"visibleLayers\": 1,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Simple Moving Average (SMA)","project":"Superalgos","layers":[{"type":"Layer","name":"Popular SMAs","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Popular SMA","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"42a78f84-af5e-4969-9ef5-936f78a3954c","savedPayload":{"position":{"x":18968.806237131383,"y":24877.35640053908},"targetPosition":{"x":18950.806237131383,"y":24782.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Popular SMA","id":"7fc74763-c245-4b23-8121-7fe0d1e8e1db"}}}],"id":"9ee0d55c-5af9-422f-a03a-e0c60d112447","savedPayload":{"position":{"x":18950.806237131383,"y":24782.35640053908},"targetPosition":{"x":18930.806237131383,"y":24848.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"SMA 20","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"8f51823d-0dc8-4361-8811-b74063f0796b","savedPayload":{"position":{"x":19006.806237131383,"y":24964.35640053908},"targetPosition":{"x":18928.806237131383,"y":24946.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 20","id":"ffe11ebb-d04f-4bf6-b6ff-43382be7c347"}}},{"type":"Layer Polygon","name":"SMA 50","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"488c897f-dc66-453a-b659-fdf70bcb6cc8","savedPayload":{"position":{"x":18909.806237131383,"y":24959.35640053908},"targetPosition":{"x":18928.806237131383,"y":24946.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 50","id":"c867bef2-aa91-4753-9b27-68f88d42370e"}}},{"type":"Layer Polygon","name":"SMA 100","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"4a0f8be6-a5b7-4fb0-a78d-427ce250617b","savedPayload":{"position":{"x":19008.806237131383,"y":24961.35640053908},"targetPosition":{"x":18928.806237131383,"y":24946.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 100","id":"7473f9b9-7737-4ee1-8418-39b96d8365c3"}}},{"type":"Layer Polygon","name":"SMA 200","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"0035bd78-3ea7-427f-81f7-ab4db3b31155","savedPayload":{"position":{"x":19027.806237131383,"y":25007.35640053908},"targetPosition":{"x":18928.806237131383,"y":24946.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 200","id":"5dbe47bb-9414-4edd-be08-5ab50755a852"}}}],"id":"e20b0c07-fd72-42b5-80d8-7125972b5714","savedPayload":{"position":{"x":18928.806237131383,"y":24946.35640053908},"targetPosition":{"x":18930.806237131383,"y":24848.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5033221e-0a98-4a6e-8caf-9f81f907d802","savedPayload":{"position":{"x":18930.806237131383,"y":24848.35640053908},"targetPosition":{"x":19026.806237131383,"y":24936.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"6ddb2ba7-5caf-43c0-989f-9ce1bebd2cfd"}}},{"type":"Layer","name":"Base7 SMAs","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"SMA Base 7","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"803f2ad0-225a-4064-a904-d8f4b6d3f6d0","savedPayload":{"position":{"x":19003.806237131383,"y":24897.35640053908},"targetPosition":{"x":18987.806237131383,"y":24931.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"SMA Base 7","id":"b73ac725-eea1-4aa2-974c-937de300b456"}}}],"id":"5af02e15-2c45-495c-8fc0-27d99f865fad","savedPayload":{"position":{"x":18987.806237131383,"y":24931.35640053908},"targetPosition":{"x":18959.806237131383,"y":25010.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"SMA 7","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2cb61b60-950f-418b-a405-4a28a385cc3d","savedPayload":{"position":{"x":19142.806237131383,"y":25079.35640053908},"targetPosition":{"x":19058.806237131383,"y":25054.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 7","id":"62ad882d-f16d-4476-8c17-0f6e2d6e2b76"}}},{"type":"Layer Polygon","name":"SMA 14","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"0b6cffd1-9d0a-473b-a868-8eab36c71dac","savedPayload":{"position":{"x":19031.806237131383,"y":25123.35640053908},"targetPosition":{"x":19058.806237131383,"y":25054.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 14","id":"ab179cef-53c3-46f7-a83b-af29ccd8bc90"}}},{"type":"Layer Polygon","name":"SMA 21","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a1d8b984-87b6-4578-980a-5f9ec2d00f4d","savedPayload":{"position":{"x":19134.806237131383,"y":25089.35640053908},"targetPosition":{"x":19058.806237131383,"y":25054.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 21","id":"9a17429f-8213-4a7e-8167-dc36d761973e"}}},{"type":"Layer Polygon","name":"SMA 28","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"008f8dff-3acd-4334-8daa-3917400a15a6","savedPayload":{"position":{"x":19148.806237131383,"y":25066.35640053908},"targetPosition":{"x":19058.806237131383,"y":25054.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 28","id":"4f6e0c60-00a8-4a76-b1b1-4eaa25c5824c"}}},{"type":"Layer Polygon","name":"SMA 35","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"4f30894c-12c2-467b-8847-d530b4eff925","savedPayload":{"position":{"x":19012.806237131383,"y":25096.35640053908},"targetPosition":{"x":19058.806237131383,"y":25054.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 35","id":"a8a09eca-7bee-4f17-b7db-1f43f419441c"}}},{"type":"Layer Polygon","name":"SMA 70","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"8245ca0a-9442-456f-877d-104adf25e7e4","savedPayload":{"position":{"x":19094.806237131383,"y":24954.35640053908},"targetPosition":{"x":19058.806237131383,"y":25054.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 70","id":"31cf093b-6de4-4e4a-a8f4-f3ff989dd374"}}},{"type":"Layer Polygon","name":"SMA 140","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"bd82d497-5586-40e0-9503-7847e6a0f6f0","savedPayload":{"position":{"x":19009.806237131383,"y":25060.35640053908},"targetPosition":{"x":19058.806237131383,"y":25054.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 140","id":"41a149aa-efdf-4f53-82cf-cce9e904a000"}}},{"type":"Layer Polygon","name":"SMA 210","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a6800eed-f574-4a06-ad1c-90ef3cf14dc7","savedPayload":{"position":{"x":19085.806237131383,"y":24992.35640053908},"targetPosition":{"x":19058.806237131383,"y":25054.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 210","id":"c3ee15c5-a5b3-4318-bc09-a9fd03592d83"}}},{"type":"Layer Polygon","name":"SMA 280","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a9379e80-b2eb-445d-99fa-a5f7295913b0","savedPayload":{"position":{"x":18966.806237131383,"y":25036.35640053908},"targetPosition":{"x":19058.806237131383,"y":25054.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 280","id":"3bbf5574-e89c-4538-a95c-2da58e5a74d7"}}},{"type":"Layer Polygon","name":"SMA 350","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"48541783-740e-416c-a774-bf9212726fb8","savedPayload":{"position":{"x":19130.806237131383,"y":25106.35640053908},"targetPosition":{"x":19058.806237131383,"y":25054.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 350","id":"046240f2-f70b-471d-b07b-0e7490222f0d"}}}],"id":"67fa0696-ae4f-4fb9-9727-dce8fc0c3ae3","savedPayload":{"position":{"x":19058.806237131383,"y":25054.35640053908},"targetPosition":{"x":18959.806237131383,"y":25010.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e30601b1-eb9f-4d4f-9e9a-0b331dd17cb4","savedPayload":{"position":{"x":18959.806237131383,"y":25010.35640053908},"targetPosition":{"x":19026.806237131383,"y":24936.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"baf7de68-a10f-4a20-b6cf-d087b8ac1f4c"}}},{"type":"Layer","name":"Base11 SMAs","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"SMA Base 11","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2dcd7def-e08d-4b8f-adb5-201b49dbff56","savedPayload":{"position":{"x":19163.806237131383,"y":24910.35640053908},"targetPosition":{"x":19064.806237131383,"y":25006.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"SMA Base 11","id":"fc702308-8514-4e8d-85d3-5d052aad782c"}}}],"id":"265cac0b-ffe1-4a36-87ae-0abc025304fd","savedPayload":{"position":{"x":19064.806237131383,"y":25006.35640053908},"targetPosition":{"x":19058.806237131383,"y":24936.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"SMA 11","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"0391169d-a5b6-48cb-860f-ba79a3d54311","savedPayload":{"position":{"x":19012.806237131383,"y":24904.35640053908},"targetPosition":{"x":19024.806237131383,"y":24869.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 11","id":"82eff706-25ff-45ba-b066-0f20b64e26e1"}}},{"type":"Layer Polygon","name":"SMA 22","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"bc051bff-8e76-4039-8833-97dbc06fd70c","savedPayload":{"position":{"x":18983.806237131383,"y":24892.35640053908},"targetPosition":{"x":19024.806237131383,"y":24869.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 22","id":"b7186c69-0a02-4820-bb58-1e2cee5790b3"}}},{"type":"Layer Polygon","name":"SMA 33","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2ad17e13-3232-4aba-9b9a-11b9ad5d6cf3","savedPayload":{"position":{"x":18955.806237131383,"y":24942.35640053908},"targetPosition":{"x":19024.806237131383,"y":24869.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 33","id":"53f19bad-dcb0-476f-8b32-0d332d1ad130"}}},{"type":"Layer Polygon","name":"SMA 55","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"8cff3a39-7c95-471c-926c-bfacf752dab2","savedPayload":{"position":{"x":18946.806237131383,"y":24861.35640053908},"targetPosition":{"x":19024.806237131383,"y":24869.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 55","id":"8341d899-4df1-47f8-8e0d-bb87b76ed622"}}},{"type":"Layer Polygon","name":"SMA 111","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"e59d3153-b5f8-4e41-9128-1bc2f52ffd8d","savedPayload":{"position":{"x":19046.806237131383,"y":24917.35640053908},"targetPosition":{"x":19024.806237131383,"y":24869.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 111","id":"5745a180-5f94-4109-b8e5-41b2c21e9f1a"}}}],"id":"2ccaecec-bf08-4551-b372-dfb0d1697513","savedPayload":{"position":{"x":19024.806237131383,"y":24869.35640053908},"targetPosition":{"x":19058.806237131383,"y":24936.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ad5e81e6-012c-4512-9d43-4bb83436d3e2","savedPayload":{"position":{"x":19058.806237131383,"y":24936.35640053908},"targetPosition":{"x":19026.806237131383,"y":24936.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"f65cacd5-38dd-4027-9afe-474e702562b0"}}},{"type":"Layer","name":"Base5 SMAs","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"SMA Base 5","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"dec3d199-2996-418a-9662-41138a884487","savedPayload":{"position":{"x":18951.806237131383,"y":24885.35640053908},"targetPosition":{"x":18985.806237131383,"y":24905.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"SMA Base 5","id":"aa2c0f1e-8a0e-4da1-97df-6815890e5770"}}}],"id":"1e95e405-c3d8-48ca-afb3-234a594188d3","savedPayload":{"position":{"x":18985.806237131383,"y":24905.35640053908},"targetPosition":{"x":19062.806237131383,"y":24975.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"SMA 5","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"9f7a7b0a-6a40-482d-943e-dedeff04760d","savedPayload":{"position":{"x":19232.806237131383,"y":25132.35640053908},"targetPosition":{"x":19148.806237131383,"y":25040.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 5","id":"9de00c59-ad47-414f-93f4-976d1a798e33"}}},{"type":"Layer Polygon","name":"SMA 10","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"1326abb7-43c1-42b9-89eb-998998aad946","savedPayload":{"position":{"x":19188.806237131383,"y":24955.35640053908},"targetPosition":{"x":19148.806237131383,"y":25040.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 10","id":"0c387d26-20c4-4a66-aac4-599d98b8300e"}}},{"type":"Layer Polygon","name":"SMA 15","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"37ee8517-fb46-4cdf-bd07-e93847ec56fc","savedPayload":{"position":{"x":19198.806237131383,"y":25117.35640053908},"targetPosition":{"x":19148.806237131383,"y":25040.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 15","id":"9f49d18a-dfd7-4d55-8a1e-c186dbfc043e"}}},{"type":"Layer Polygon","name":"SMA 20","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"049625c6-9ce2-48bf-9eb7-613008132b83","savedPayload":{"position":{"x":19210.806237131383,"y":24964.35640053908},"targetPosition":{"x":19148.806237131383,"y":25040.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 20","id":"39db09d1-e5b2-4e83-80b5-41b5af443e3f"}}},{"type":"Layer Polygon","name":"SMA 25","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ac893a29-aa96-4e79-98cf-b9d707bbee7c","savedPayload":{"position":{"x":19111.806237131383,"y":25089.35640053908},"targetPosition":{"x":19148.806237131383,"y":25040.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 25","id":"9b80c90a-521b-4d8e-ba2b-781f3aee1fb2"}}},{"type":"Layer Polygon","name":"SMA 50","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"38598677-2196-47f9-9258-07b474911649","savedPayload":{"position":{"x":19048.806237131383,"y":25036.35640053908},"targetPosition":{"x":19148.806237131383,"y":25040.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 50","id":"39d6a3fc-1380-4e2d-8de6-13d0b9e7a8e3"}}},{"type":"Layer Polygon","name":"SMA 100","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"24a6fd8a-fe99-49c7-9161-7c412221374c","savedPayload":{"position":{"x":19105.806237131383,"y":24944.35640053908},"targetPosition":{"x":19148.806237131383,"y":25040.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 100","id":"c7c55c53-c6ee-4edc-8b4e-eab2ece17db9"}}},{"type":"Layer Polygon","name":"SMA 150","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a41b1b61-f6fc-4941-bec0-eebded58f8d3","savedPayload":{"position":{"x":19241.806237131383,"y":25101.35640053908},"targetPosition":{"x":19148.806237131383,"y":25040.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 150","id":"5c7935c9-6393-4e0f-8561-742533c1ebcf"}}},{"type":"Layer Polygon","name":"SMA 200","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"936c20af-7131-48cf-850a-1758c7430c70","savedPayload":{"position":{"x":19141.806237131383,"y":25036.35640053908},"targetPosition":{"x":19148.806237131383,"y":25040.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 200","id":"796fa379-26a6-4443-b515-1be86217f891"}}},{"type":"Layer Polygon","name":"SMA 250","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"1bcd8d06-7207-444f-a804-1043017f0c5a","savedPayload":{"position":{"x":19166.806237131383,"y":25137.35640053908},"targetPosition":{"x":19148.806237131383,"y":25040.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 250","id":"3ec27802-69a6-4c76-8bf5-ba92335ff928"}}},{"type":"Layer Polygon","name":"SMA 500","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"920b101b-5f48-463c-8c84-635d124e4d53","savedPayload":{"position":{"x":19063.806237131383,"y":25036.35640053908},"targetPosition":{"x":19148.806237131383,"y":25040.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 500","id":"d638a3eb-6f91-4c41-9f65-981ba269343a"}}},{"type":"Layer Polygon","name":"SMA 1000","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"931914cc-e96b-483d-bfeb-44dbbacdedd2","savedPayload":{"position":{"x":19151.806237131383,"y":25056.35640053908},"targetPosition":{"x":19148.806237131383,"y":25040.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 1000","id":"8042e9e4-b3be-4d8b-94bc-558b8b97a3f0"}}}],"id":"42492ae7-3697-435d-9e45-31bd1d9b428e","savedPayload":{"position":{"x":19148.806237131383,"y":25040.35640053908},"targetPosition":{"x":19062.806237131383,"y":24975.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"70c9fb67-f27a-4f05-8edb-e05ffb57cee5","savedPayload":{"position":{"x":19062.806237131383,"y":24975.35640053908},"targetPosition":{"x":19026.806237131383,"y":24936.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"24f5e2e3-80e6-4235-827a-df806c29de60"}}},{"type":"Layer","name":"Base6 SMAs","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"SMA Base 6","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"0e051c5a-c076-4aa8-96bd-c1ae6afe3626","savedPayload":{"position":{"x":18924.806237131383,"y":25006.35640053908},"targetPosition":{"x":18917.806237131383,"y":24979.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"SMA Base 6","id":"40313dff-6c5d-4650-bd51-8767bba6f6ad"}}}],"id":"c81e2539-14dc-4a23-98cb-48b6c4c44e08","savedPayload":{"position":{"x":18917.806237131383,"y":24979.35640053908},"targetPosition":{"x":18969.806237131383,"y":24884.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"SMA 6","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"58334fda-6935-4bf7-afb4-1a05b1055390","savedPayload":{"position":{"x":19047.806237131383,"y":24891.35640053908},"targetPosition":{"x":19040.806237131383,"y":24960.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 6","id":"12470549-c8b6-453f-a87a-396921a0a871"}}},{"type":"Layer Polygon","name":"SMA 12","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"34239b6b-7b3a-41b4-9988-68d66e52be74","savedPayload":{"position":{"x":19022.806237131383,"y":24918.35640053908},"targetPosition":{"x":19040.806237131383,"y":24960.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 12","id":"986a8bf8-3b7a-4421-80bd-940fa3bfe496"}}},{"type":"Layer Polygon","name":"SMA 18","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"adf39206-0b86-4895-8284-9dd574523d51","savedPayload":{"position":{"x":19036.806237131383,"y":25028.35640053908},"targetPosition":{"x":19040.806237131383,"y":24960.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 18","id":"9f9eeee3-ebd5-4f65-9079-cd0ac3c373da"}}},{"type":"Layer Polygon","name":"SMA 24","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"0bbd0c15-5cb6-4c55-94f3-600122a68dca","savedPayload":{"position":{"x":19043.806237131383,"y":25048.35640053908},"targetPosition":{"x":19040.806237131383,"y":24960.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 24","id":"5cde1b9e-eed8-4e90-9f31-9d0f38d4aef9"}}},{"type":"Layer Polygon","name":"SMA 30","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"255469da-4363-4d98-baf1-fc506e50b6fd","savedPayload":{"position":{"x":19022.806237131383,"y":24970.35640053908},"targetPosition":{"x":19040.806237131383,"y":24960.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 30","id":"ba9cdf50-c1e0-42c5-a81c-dbc068c3b10e"}}},{"type":"Layer Polygon","name":"SMA 60","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"e86fd20c-ded1-470d-8b2e-9362fd5c1b77","savedPayload":{"position":{"x":18991.806237131383,"y":24900.35640053908},"targetPosition":{"x":19040.806237131383,"y":24960.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 60","id":"8170049e-056a-4818-8f0a-1a23f9c51bff"}}},{"type":"Layer Polygon","name":"SMA 120","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"09f0b2f9-f270-4db6-9d4f-09d74f4d76ef","savedPayload":{"position":{"x":19103.806237131383,"y":24982.35640053908},"targetPosition":{"x":19040.806237131383,"y":24960.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 120","id":"7da9bd30-a7f8-410b-93a5-6b76ac57708b"}}},{"type":"Layer Polygon","name":"SMA 240","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"aab7e22b-2332-488b-8377-b2d47d34d13f","savedPayload":{"position":{"x":18964.806237131383,"y":24946.35640053908},"targetPosition":{"x":19040.806237131383,"y":24960.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 240","id":"adf40814-2b9a-4ee8-a154-364bfca32f7a"}}},{"type":"Layer Polygon","name":"SMA 300","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"9520b565-9ba3-4538-a3d8-b3b5a52af3a8","savedPayload":{"position":{"x":18975.806237131383,"y":25049.35640053908},"targetPosition":{"x":19040.806237131383,"y":24960.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 300","id":"60c00cdc-dbf4-460b-b021-7339dd7bbec8"}}},{"type":"Layer Polygon","name":"SMA 600","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"02eb9bdc-70f2-43b9-9ab5-f7170247087b","savedPayload":{"position":{"x":19065.806237131383,"y":24961.35640053908},"targetPosition":{"x":19040.806237131383,"y":24960.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 600","id":"93c1746c-2470-4032-84e1-c16a2d4e3921"}}},{"type":"Layer Polygon","name":"SMA 1200","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"295e7cce-d99f-4923-b1d9-d24b88fad5ba","savedPayload":{"position":{"x":19000.806237131383,"y":24889.35640053908},"targetPosition":{"x":19040.806237131383,"y":24960.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 1200","id":"790efcb9-f3af-4e01-86f2-adbfcda6a356"}}}],"id":"a074aa20-60d0-4ab1-b59b-feb83830a6cc","savedPayload":{"position":{"x":19040.806237131383,"y":24960.35640053908},"targetPosition":{"x":18969.806237131383,"y":24884.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"17dc084c-cabd-4cc4-9ddf-5b2695e81ee5","savedPayload":{"position":{"x":18969.806237131383,"y":24884.35640053908},"targetPosition":{"x":19026.806237131383,"y":24936.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"7a8425c8-21b3-419d-b4c9-da45bf7310f1"}}}],"layerFolders":[],"id":"4ddb1717-1b1a-49dc-9775-712cc0564f71","savedPayload":{"position":{"x":19026.806237131383,"y":24936.35640053908},"targetPosition":{"x":18938.806237131383,"y":24958.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c32b13c1-427c-494e-9021-fd30d124608b","savedPayload":{"position":{"x":18938.806237131383,"y":24958.35640053908},"targetPosition":{"x":18847.806237131383,"y":24926.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":120,"radius":0},"referenceParent":{"type":"Data Mine Products","name":"Sparta","id":"c7be79d8-0871-44d4-8445-c02b602b399a"}}},"id":"9956f226-3b76-4c8c-9dae-c61e174b4b61","savedPayload":{"position":{"x":18029.096541560637,"y":24387.914074635417},"targetPosition":{"x":18081.190994860717,"y":24683.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Masters Data","project":"Superalgos","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","config":"{\"value\":\"24-hs\"}","project":"Superalgos","id":"31a5497d-36a3-4df0-8eff-4c3b12366667","savedPayload":{"position":{"x":17799.200194133682,"y":24796.448614303306},"targetPosition":{"x":17898.200194133682,"y":24701.448614303306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 1,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Exchange Raw Data","project":"Superalgos","layers":[],"layerFolders":[],"id":"86761dff-564d-4963-af79-f2e60293e9b4","savedPayload":{"position":{"x":19032.806237131383,"y":24930.35640053908},"targetPosition":{"x":18967.806237131383,"y":24894.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Webhooks","project":"Superalgos","layers":[],"layerFolders":[],"id":"cd06dc88-2a31-4cbc-a734-f64caf67dd15","savedPayload":{"position":{"x":18987.806237131383,"y":24954.35640053908},"targetPosition":{"x":18967.806237131383,"y":24894.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Candles Volumes","project":"Superalgos","layers":[{"type":"Layer","name":"Candles","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Candle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"1c959534-eb84-424b-98b1-77af810c6fd5","savedPayload":{"position":{"x":18821.806237131383,"y":24923.35640053908},"targetPosition":{"x":18855.806237131383,"y":24949.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Candle","id":"9336f4e6-d56b-4ed4-819d-0bb762ba1fdd"}}}],"id":"8bae6852-f7aa-4648-9911-2b0d2b324ba6","savedPayload":{"position":{"x":18855.806237131383,"y":24949.35640053908},"targetPosition":{"x":18914.806237131383,"y":24865.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"8414c545-7cb3-4f00-97b6-28e86d881431","savedPayload":{"position":{"x":18822.806237131383,"y":24774.35640053908},"targetPosition":{"x":18914.806237131383,"y":24865.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"76cb7ce7-fae7-441b-8da6-f014248660b8","savedPayload":{"position":{"x":18914.806237131383,"y":24865.35640053908},"targetPosition":{"x":18933.806237131383,"y":24955.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"d90925c5-c2be-4437-b337-e9353d57669b"}}},{"type":"Layer","name":"Volumes","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Volume","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"f312fd29-ff58-4fc3-bebe-4169cbf05141","savedPayload":{"position":{"x":18903.806237131383,"y":24857.35640053908},"targetPosition":{"x":18946.806237131383,"y":24920.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Volume","id":"42dbd098-4550-44a0-987f-54a28dd5f40b"}}}],"id":"9a53fff6-c810-40c1-9e29-6c52919cadfb","savedPayload":{"position":{"x":18946.806237131383,"y":24920.35640053908},"targetPosition":{"x":18915.806237131383,"y":24877.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"becb8325-e03c-4eef-9296-c04f5517e496","savedPayload":{"position":{"x":18950.806237131383,"y":24964.35640053908},"targetPosition":{"x":18915.806237131383,"y":24877.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5d964055-30fe-4e46-aa28-6152ab710e47","savedPayload":{"position":{"x":18915.806237131383,"y":24877.35640053908},"targetPosition":{"x":18933.806237131383,"y":24955.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"bde169a8-e0a3-44dd-adba-853c89295bde"}}}],"layerFolders":[],"id":"3b9308dd-08a7-47c0-860f-2450a7fff9ca","savedPayload":{"position":{"x":18933.806237131383,"y":24955.35640053908},"targetPosition":{"x":18967.806237131383,"y":24894.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6c933816-a23b-4d14-815e-0262e657e74d","savedPayload":{"position":{"x":18967.806237131383,"y":24894.35640053908},"targetPosition":{"x":18877.806237131383,"y":24911.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":120,"radius":0},"referenceParent":{"type":"Data Mine Products","name":"Masters","id":"45f36208-7796-446e-8e2e-4f4ba67ff697"}}},"id":"b1054f56-fd37-4ac5-8cb1-043e308ab5ee","savedPayload":{"position":{"x":18133.285448160797,"y":24387.914074635417},"targetPosition":{"x":18081.190994860717,"y":24683.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ae3cca29-d5d8-4869-9203-0ad91dd0cba9","savedPayload":{"position":{"x":18081.190994860717,"y":24683.35640053908},"targetPosition":{"x":18340.99861599605,"y":24833.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":262.75},"width":200,"height":131.375,"radius":0},"referenceParent":{"type":"Backtesting Session","name":"Hello World Trading System","id":"a81c54d1-e345-46f4-9dd4-07ec436bd1e5"}}}],"id":"910237bf-29cd-4467-816e-675938bf5702","savedPayload":{"position":{"x":18340.99861599605,"y":24833.35640053908},"targetPosition":{"x":18600.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Testing Trading Tasks","name":"New Testing Trading Tasks","id":"8117db0a-e418-4f56-8fe4-fda2ddac1cbb"}}}],"id":"bae7d4bd-0d10-41d3-bcdd-50e1ff65d419","savedPayload":{"position":{"x":18600.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"21d2ec55-9e56-4652-8e96-c7e451262c36","savedPayload":{"position":{"x":18900.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"c"}}},{"type":"Design Space","name":"My Design Space","project":"Superalgos","spaceStyle":{"type":"Space Style","name":"My Space Style","config":" {\n \"backgroundColor\": \"UI_COLOR.BLACK\",\n \"node\": {\n \"fontSize\": 16,\n \"imageSize\": 60,\n \"type\": {\n \"fontColor\": \"UI_COLOR.WHITE\"\n },\n \"name\": {\n \"fontColor\": \"UI_COLOR.WHITE\"\n },\n \"menuItem\": {\n \"backgroundColor\": \"UI_COLOR.BLACK\",\n \"fontColor\": \"UI_COLOR.WHITE\",\n \"fontSize\": 14,\n \"imageSize\": 14\n }\n }\n }","project":"Superalgos","id":"fad0e429-f7a7-4b62-a2a5-2ead29b8f695","savedPayload":{"position":{"x":25236.875,"y":8701.347826086958},"targetPosition":{"x":24936.875,"y":8701.347826086958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"spaceSettings":{"type":"Space Settings","name":"New Space Settings","config":"{\n \"node\": {\n \"distancePercentage\": 60,\n \"radiusPercentage\": 85,\n \"massPercentage\": 100,\n \"animationSteps\": 2, \n \"menuItem\": {\n \"widthPercentage\": 100,\n \"heightPercentage\": 60,\n \"radiusPercentage\": 90\n }\n },\n \"physics\": false\n}","project":"Superalgos","id":"05c9d6d5-24c4-4eec-9aca-9668d6486fdd","savedPayload":{"position":{"x":24636.875,"y":8701.347826086958},"targetPosition":{"x":24936.875,"y":8701.347826086958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8485ce5-67f3-4476-b9e2-80994e49c318","savedPayload":{"position":{"x":24940.875,"y":10717.347826086958},"targetPosition":{"x":24940.875,"y":10717.347826086958},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":255,"y":588.3125}}}},{"type":"Superalgos Project","name":"New Superalgos Project","project":"Superalgos","projectDefinition":{"type":"Project Definition","name":"Superalgos","config":"{ \n \"codeName\": \"Superalgos\"\n}","project":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb","savedPayload":{"position":{"x":19203,"y":10733.5},"targetPosition":{"x":18903,"y":10733.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"spaces":{"type":"Spaces","name":"New Spaces","project":"Superalgos","id":"4d0ee814-4e48-4688-9cc5-7ee03de5192b","savedPayload":{"position":{"x":19053,"y":10993.307621135331},"targetPosition":{"x":18903,"y":10733.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"mines":{"type":"Mines","name":"New Mines","project":"Superalgos","id":"b979e3a3-9316-4e5a-831b-c503b4b0e507","savedPayload":{"position":{"x":18753,"y":10993.307621135331},"targetPosition":{"x":18903,"y":10733.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"trading":{"type":"Trading","name":"New Trading","project":"Superalgos","id":"9f98de79-8504-46b3-b725-ce3eee04b743","savedPayload":{"position":{"x":18603,"y":10733.5},"targetPosition":{"x":18903,"y":10733.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"learning":{"type":"Learning","name":"New Learning","project":"Superalgos","id":"a24dfd5f-6a7f-4a90-9a92-3194efc928f3","savedPayload":{"position":{"x":18753,"y":10473.692378864669},"targetPosition":{"x":18903,"y":10733.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"otherHierarchies":{"type":"Other Hierarchies","name":"New Other Hierarchies","project":"Superalgos","id":"0a1ff755-8e0b-4f62-976e-df76c8139c6f","savedPayload":{"position":{"x":19053,"y":10473.692378864669},"targetPosition":{"x":18903,"y":10733.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cf9f8b3b-77c6-43c6-b01f-95cf366a91f6","savedPayload":{"position":{"x":18903,"y":10733.5},"targetPosition":{"x":18903,"y":10733.5},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"APIs","name":"New APIs","project":"Superalgos","githubAPI":{"type":"Github API","name":"New Github API","config":"{\n \"username\": \"\",\n \"token\": \"\"\n}","project":"Superalgos","id":"9ea7bee2-c4db-4cee-a05f-63fcf3a86a4a","savedPayload":{"position":{"x":31349.208333333332,"y":10755.819458631257},"targetPosition":{"x":31049.208333333332,"y":10755.819458631257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"23021bb7-9997-4fe6-8199-71ebf70aef76","savedPayload":{"position":{"x":31049.208333333332,"y":10755.819458631257},"targetPosition":{"x":31049.208333333332,"y":10755.819458631257},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Mine","name":"Sparta","config":"{\n\"codeName\": \"Sparta\"\n}","project":"Superalgos","sensorBots":[],"indicatorBots":[{"type":"Indicator Bot","name":"Simple Moving Average (SMA)","config":"{\n\"codeName\": \"SMA\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates SMAs for Time Frames of 01-hs and above.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Popular SMAs","project":"Superalgos","id":"5302effb-1f09-4a30-9f71-6956b8b9ca88","savedPayload":{"position":{"x":24671.371468763104,"y":24071.92024540907},"targetPosition":{"x":25058.217086662786,"y":24183.34432246387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"3b21f9d7-2cbc-4c23-80c8-cc5e5b06a22c"}}},{"type":"Output Dataset","name":"Multi-Period-Market Base11 SMAs","project":"Superalgos","id":"8221593c-6298-4b4c-bfc2-cffbc9e5cd0f","savedPayload":{"position":{"x":24714.84194250997,"y":23967.97901251651},"targetPosition":{"x":25058.217086662786,"y":24183.34432246387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"af9b9cef-2a74-486f-b79e-047d68669a1f"}}},{"type":"Output Dataset","name":"Multi-Period-Market Base7 SMAs","project":"Superalgos","id":"aabd0857-b4fc-404a-8967-967475ed3993","savedPayload":{"position":{"x":24784.001840433328,"y":23883.08845694898},"targetPosition":{"x":25058.217086662786,"y":24183.34432246387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"78a6ef37-4df8-4ac8-83a0-c9a732467c59"}}},{"type":"Output Dataset","name":"Multi-Period-Market Base6 SMAs","project":"Superalgos","id":"dd00a77a-761e-404b-9e44-627335668112","savedPayload":{"position":{"x":24872.283222552593,"y":23821.04622118853},"targetPosition":{"x":25058.217086662786,"y":24183.34432246387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"c0862b3d-d35a-4d3e-8d80-258b8a01c37c"}}},{"type":"Output Dataset","name":"Muti-Period-Market Base5 SMAs","project":"Superalgos","id":"b6426833-d2c7-4300-b610-801e12a7edfd","savedPayload":{"position":{"x":24998.911695677707,"y":23784.421187779055},"targetPosition":{"x":25058.217086662786,"y":24183.34432246387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Muti-Period-Market","id":"a5d28568-fb58-469a-9820-b9f0e8eab705"}}}],"outputDatasetFolders":[],"id":"85a56739-9351-444b-95e9-a57470dca38a","savedPayload":{"position":{"x":25058.217086662786,"y":24183.34432246387},"targetPosition":{"x":25364.88217354886,"y":24523.973993901145},"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":"Simple Moving Average (SMA) Multi-Period-Market","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"d49d1e94-1960-4121-8e40-be8af52947ee","savedPayload":{"position":{"x":25129.94571338478,"y":23910.493602719045},"targetPosition":{"x":25268.034784614065,"y":24065.25979471781},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"81346f2f-13f2-46f4-85f5-a04b4d80f455"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"f7cf0949-06fc-4c98-a399-61fac1671c6e","savedPayload":{"position":{"x":25213.428603742737,"y":23851.716728912677},"targetPosition":{"x":25268.034784614065,"y":24065.25979471781},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"4228fdf3-e992-46b2-a91e-de95108a753d","savedPayload":{"position":{"x":25343.676786048763,"y":23875.230104349135},"targetPosition":{"x":25268.034784614065,"y":24065.25979471781},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"f404e748-b631-4cc5-975c-2a0736e55c0d","savedPayload":{"position":{"x":25268.034784614065,"y":24065.25979471781},"targetPosition":{"x":25364.88217354886,"y":24523.973993901145},"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":"81346f2f-13f2-46f4-85f5-a04b4d80f455","savedPayload":{"position":{"x":25510.322667507062,"y":24077.993199978442},"targetPosition":{"x":25364.88217354886,"y":24523.973993901145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"2bce272e-2712-4f28-9736-03b51929aba2","savedPayload":{"position":{"x":25713.756054234233,"y":24210.188469555913},"targetPosition":{"x":25364.88217354886,"y":24523.973993901145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"b569db86-9ab5-4ba2-be41-357a9bce84b4","savedPayload":{"position":{"x":25824.25822188407,"y":24426.461534374983},"targetPosition":{"x":25364.88217354886,"y":24523.973993901145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297","savedPayload":{"position":{"x":25438.057647468726,"y":24470.52456766718},"targetPosition":{"x":25299,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Describe what the process does.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Popular SMAs","project":"Superalgos","id":"417d3141-1e22-4ee6-b2d6-531a55b95c88","savedPayload":{"position":{"x":24970.32775962989,"y":23932.631927113478},"targetPosition":{"x":25303.81333347287,"y":24158.370577963422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2c338fe0-385f-45ab-b210-b98ef013228d"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Base11 SMAs","project":"Superalgos","id":"022edfeb-ec62-4cd9-85bf-20e9f444e3c1","savedPayload":{"position":{"x":25043.600807907624,"y":23846.76849820857},"targetPosition":{"x":25303.81333347287,"y":24158.370577963422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"de5cfa30-edbf-4d5b-8d7f-facfb69a0f3e"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Base7 SMAs","project":"Superalgos","id":"42e89cd9-acbe-49cd-b6f6-7671317796d6","savedPayload":{"position":{"x":25135.842958014407,"y":23787.71679232221},"targetPosition":{"x":25303.81333347287,"y":24158.370577963422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f155e2ed-7082-4021-a4ff-a6f3cfd5683d"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Base6 SMAs","project":"Superalgos","id":"a270e81a-4d70-4293-8a37-19191cf2ec23","savedPayload":{"position":{"x":25239.00458584356,"y":23755.999552329973},"targetPosition":{"x":25303.81333347287,"y":24158.370577963422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f5050eb2-0a99-464e-b5e2-2d8f40453e9a"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Base5 SMAs","project":"Superalgos","id":"d3d1bc15-201c-4d00-ba2e-6401e5392c14","savedPayload":{"position":{"x":25370.722346471546,"y":23760.53610279574},"targetPosition":{"x":25303.81333347287,"y":24158.370577963422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"01f32aa3-55e9-4f8c-80c7-997b52073274"}}}],"outputDatasetFolders":[],"id":"ad03dff7-56b2-4980-bc14-1b6c41fdf6cf","savedPayload":{"position":{"x":25303.81333347287,"y":24158.370577963422},"targetPosition":{"x":25490.250708854466,"y":24577.146289765482},"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":"Simple Moving Average (SMA) Multi-Period-Daily","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"d674a833-b9c8-4bdb-84de-e007ab243860","savedPayload":{"position":{"x":25434.718724640446,"y":23930.044070251213},"targetPosition":{"x":25539.922662089608,"y":24111.59791952444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"d2727d60-b26b-4e8b-a635-fbe78bc81240"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"ba857809-2273-4280-aa19-4b50837abccb","savedPayload":{"position":{"x":25520.028601447855,"y":23879.618842893065},"targetPosition":{"x":25539.922662089608,"y":24111.59791952444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"40e12ba8-59dc-4eaf-a30d-07bb8192e0a6","savedPayload":{"position":{"x":25578.567682627516,"y":23928.95373523229},"targetPosition":{"x":25539.922662089608,"y":24111.59791952444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"5f5e40cb-841e-4b18-a249-a04d541d31a0","savedPayload":{"position":{"x":25708.894626297544,"y":23954.02923390195},"targetPosition":{"x":25539.922662089608,"y":24111.59791952444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"b6aae3c7-2d70-4ffd-a5e5-951f0a565b13","savedPayload":{"position":{"x":25539.922662089608,"y":24111.59791952444},"targetPosition":{"x":25490.250708854466,"y":24577.146289765482},"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":"d2727d60-b26b-4e8b-a635-fbe78bc81240","savedPayload":{"position":{"x":25743.17555611438,"y":24231.057198877606},"targetPosition":{"x":25490.250708854466,"y":24577.146289765482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"8b753072-e4c9-4671-a5ce-eea9e1c1ba0f","savedPayload":{"position":{"x":25882.81678206937,"y":24403.02193975894},"targetPosition":{"x":25490.250708854466,"y":24577.146289765482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"87c9e783-adc5-40e3-b1fb-fdb2994c1217","savedPayload":{"position":{"x":25916.607934369258,"y":24621.969917282815},"targetPosition":{"x":25490.250708854466,"y":24577.146289765482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f","savedPayload":{"position":{"x":25563.503363531614,"y":24534.442352531274},"targetPosition":{"x":25299,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Popular SMAs","config":"{\n \"codeName\": \"Popular-SMAs\",\n \"singularVariableName\": \"popularSMA\",\n \"pluralVariableName\": \"popularSMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"3b21f9d7-2cbc-4c23-80c8-cc5e5b06a22c","savedPayload":{"position":{"x":25663.057647468726,"y":24183.996636468386},"targetPosition":{"x":25663.057647468726,"y":24633.996636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@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 }","project":"Superalgos","id":"2c338fe0-385f-45ab-b210-b98ef013228d","savedPayload":{"position":{"x":25927.56101100034,"y":24269.93898899966},"targetPosition":{"x":25663.057647468726,"y":24633.996636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"673a7fbf-1a73-4220-a561-84cf8b11c3a7","savedPayload":{"position":{"x":26532.771288375385,"y":23840.93402285877},"targetPosition":{"x":26745.89962081193,"y":23983.442353872528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"305fc918-e6df-48d7-a7b5-726e3fa8f958","savedPayload":{"position":{"x":26745.89962081193,"y":23983.442353872528},"targetPosition":{"x":27053.626419754422,"y":24186.64948079018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"002ffd5e-583c-4af5-87eb-a886fd3bc50e","savedPayload":{"position":{"x":26998.450288363627,"y":23563.370460688333},"targetPosition":{"x":27021.17784094006,"y":23818.40455080531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a305a94d-3af9-430a-8642-5ffb1229710f","savedPayload":{"position":{"x":27021.17784094006,"y":23818.40455080531},"targetPosition":{"x":27053.626419754422,"y":24186.64948079018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA20","config":"{\n \"codeName\": \"sma20\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma20","project":"Superalgos","id":"5adb676d-35a8-47b2-aa47-dc0e6edf8a81","savedPayload":{"position":{"x":27505.66359508799,"y":23754.62460206831},"targetPosition":{"x":27321.472749506538,"y":23930.75061006852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1657736e-6bc4-4279-9e65-5b0b0cf737cb","savedPayload":{"position":{"x":27321.472749506538,"y":23930.75061006852},"targetPosition":{"x":27053.626419754422,"y":24186.64948079018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA50","config":"{\n \"codeName\": \"sma50\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma50","project":"Superalgos","id":"85033109-c11c-43d2-84cc-4510dae276ca","savedPayload":{"position":{"x":27673.632532494357,"y":24270.05672258096},"targetPosition":{"x":27419.57838062802,"y":24236.346314853974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e7f1f78d-3a6d-49a2-b522-4423bd8d6a82","savedPayload":{"position":{"x":27419.57838062802,"y":24236.346314853974},"targetPosition":{"x":27053.626419754422,"y":24186.64948079018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA100","config":"{\n \"codeName\": \"sma100\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma100","project":"Superalgos","id":"43eebecb-65db-4e64-902a-582515e06daa","savedPayload":{"position":{"x":27375.574408280783,"y":24722.449076137586},"targetPosition":{"x":27243.581643268375,"y":24503.99161393099},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"090fa9ea-f050-4315-9360-3958ce5debaa","savedPayload":{"position":{"x":27243.581643268375,"y":24503.99161393099},"targetPosition":{"x":27053.626419754422,"y":24186.64948079018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA200","config":"{\n \"codeName\": \"sma200\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma200","project":"Superalgos","id":"5bdf982c-5480-4f90-9ec2-7708bf2d4943","savedPayload":{"position":{"x":26835.997377703778,"y":24771.12196991587},"targetPosition":{"x":26924.497450650604,"y":24533.26898953952},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8146fe70-3592-4f27-af4a-d3d8e93268d1","savedPayload":{"position":{"x":26924.497450650604,"y":24533.26898953952},"targetPosition":{"x":27053.626419754422,"y":24186.64948079018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1b29d760-f7fe-48a5-928c-212a6f9a2486","savedPayload":{"position":{"x":26305.020795967954,"y":24425.410165265297},"targetPosition":{"x":25663.057647468726,"y":24633.996636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last200.push(candle.close) // Add the current close value to the last 200 array.\n\nif (variable.last200.length > 200) {\n variable.last200.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 200 elements.\n}\n\nvariable.sma20 = calculateSMA(20)\nvariable.sma50 = calculateSMA(50)\nvariable.sma100 = calculateSMA(100)\nvariable.sma200 = calculateSMA(200)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last200.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last200.length - periods; i < variable.last200.length; i++) { // Iterate through the last periods\n sum = sum + variable.last200[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last200.length=\" + variable.last200.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last200[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"a9904080-6677-45e0-bcac-f336e882380a","savedPayload":{"position":{"x":26531.19950013176,"y":24679.49402306912},"targetPosition":{"x":26311.116289966652,"y":24726.274153503116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"shortcutKey":"f"}}},"id":"52a2ea69-6420-40f6-90f0-3330d33e6f67","savedPayload":{"position":{"x":26311.116289966652,"y":24726.274153503116},"targetPosition":{"x":26091.033079801546,"y":24773.054283937112},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 200 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last200 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"2790fd06-6fe8-4175-bbfc-854d9909aeb4","savedPayload":{"position":{"x":26392.141852663033,"y":25107.469455401937},"targetPosition":{"x":26241.58746623229,"y":24940.261869669524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6d5772df-819e-4968-9e27-61981c08f0e2","savedPayload":{"position":{"x":26241.58746623229,"y":24940.261869669524},"targetPosition":{"x":26091.033079801546,"y":24773.054283937112},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f1f881ff-a04f-4663-9747-2042d4581953","savedPayload":{"position":{"x":26091.033079801546,"y":24773.054283937112},"targetPosition":{"x":25663.057647468726,"y":24633.996636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34","savedPayload":{"position":{"x":25663.057647468726,"y":24633.996636468386},"targetPosition":{"x":25299,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"SMA Popular","id":"ddf21e96-c312-4ebe-9e2b-f56e8ea072aa"}}},{"type":"Product Definition","name":"Base7 SMAs","config":"{\n \"codeName\": \"Base7-SMAs\",\n \"singularVariableName\": \"base7SMA\",\n \"pluralVariableName\": \"base7SMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"78a6ef37-4df8-4ac8-83a0-c9a732467c59","savedPayload":{"position":{"x":25866.033079801546,"y":24331.466920198454},"targetPosition":{"x":25726.97543233282,"y":24759.442352531274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@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 }","project":"Superalgos","id":"f155e2ed-7082-4021-a4ff-a6f3cfd5683d","savedPayload":{"position":{"x":26091.033079801546,"y":24494.93898899966},"targetPosition":{"x":25726.97543233282,"y":24759.442352531274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"6d7e37c5-d80e-44a3-8484-f532bcfc7819","savedPayload":{"position":{"x":27129.74441664885,"y":24566.131001771104},"targetPosition":{"x":27360.66041037627,"y":24669.492211147335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"87203f0b-0fb8-4875-8127-d715198bf01b","savedPayload":{"position":{"x":27360.66041037627,"y":24669.492211147335},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"bf74ad1e-a569-4428-a387-b0f39bb63759","savedPayload":{"position":{"x":27282.7520534474,"y":24355.475731719413},"targetPosition":{"x":27452.157506799085,"y":24544.705540656538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0bc477f0-8b7d-4c75-8613-0cc63a25a79d","savedPayload":{"position":{"x":27452.157506799085,"y":24544.705540656538},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA7","config":"{\n \"codeName\": \"sma7\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma7","project":"Superalgos","id":"1a89def9-4270-4584-93c3-86ca30cb184c","savedPayload":{"position":{"x":27507.304614296558,"y":24224.558732332884},"targetPosition":{"x":27585.869993111435,"y":24468.54014223534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a87dddd8-9806-45be-b9a9-0e3196da48a7","savedPayload":{"position":{"x":27585.869993111435,"y":24468.54014223534},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA14","config":"{\n \"codeName\": \"sma14\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma14","project":"Superalgos","id":"c0b78d39-a652-4d13-9fce-1b56d4e6ffbb","savedPayload":{"position":{"x":27765.462938951838,"y":24196.706544090746},"targetPosition":{"x":27738.47180768098,"y":24451.901074653655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"114a04b9-e5b6-4f60-ad99-760c10275f9e","savedPayload":{"position":{"x":27738.47180768098,"y":24451.901074653655},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA21","config":"{\n \"codeName\": \"sma21\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma21","project":"Superalgos","id":"4740139a-d2d7-4050-a0f6-145eef002bed","savedPayload":{"position":{"x":28013.39773994293,"y":24276.915530608872},"targetPosition":{"x":27885.179872535056,"y":24498.779692003718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ac8182cd-7f7b-44e9-a91c-b470be594ef0","savedPayload":{"position":{"x":27885.179872535056,"y":24498.779692003718},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA28","config":"{\n \"codeName\": \"sma28\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma28","project":"Superalgos","id":"0a2f17a1-2663-477a-8c28-015592a67a7e","savedPayload":{"position":{"x":28204.500660958274,"y":24453.408472173087},"targetPosition":{"x":28000.925719846677,"y":24601.145448971423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"81c852eb-9b3e-4505-b81a-f236b39d770d","savedPayload":{"position":{"x":28000.925719846677,"y":24601.145448971423},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA35","config":"{\n \"codeName\": \"sma35\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma35","project":"Superalgos","id":"1a30763f-6398-475f-b232-ff0da4ad41fa","savedPayload":{"position":{"x":28311.639171088067,"y":24690.144622317323},"targetPosition":{"x":28060.69305021573,"y":24743.332521507702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a8a4dd40-6286-46b0-8f4d-61893d2d9234","savedPayload":{"position":{"x":28060.69305021573,"y":24743.332521507702},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA70","config":"{\n \"codeName\": \"sma70\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma70","project":"Superalgos","id":"07471d43-2432-4961-81b5-4aa1bb399df4","savedPayload":{"position":{"x":28312.91643890426,"y":24949.79399894941},"targetPosition":{"x":28060.92652147673,"y":24896.470735937753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9dbc330c-e654-4591-92d0-c3e92262436e","savedPayload":{"position":{"x":28060.92652147673,"y":24896.470735937753},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA140","config":"{\n \"codeName\": \"sma140\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma140","project":"Superalgos","id":"0ef6719d-cfa8-458e-a137-6bd2e77aa6fd","savedPayload":{"position":{"x":28206.53199652118,"y":25187.57118220277},"targetPosition":{"x":27999.788971107857,"y":25037.689026866727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"93814c2c-8fff-4415-9934-1356bf555015","savedPayload":{"position":{"x":27999.788971107857,"y":25037.689026866727},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA210","config":"{\n \"codeName\": \"sma210\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma210","project":"Superalgos","id":"037c98d5-1eef-4928-ade0-a70021337aa5","savedPayload":{"position":{"x":28012.73944784886,"y":25361.29757704196},"targetPosition":{"x":27885.249220726248,"y":25140.926166472495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"efbcaa0c-2bf3-44e6-aae3-4f73c6255c69","savedPayload":{"position":{"x":27885.249220726248,"y":25140.926166472495},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA280","config":"{\n \"codeName\": \"sma280\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma280","project":"Superalgos","id":"2bdc1e1e-b6a3-4e68-90b5-e88e64684804","savedPayload":{"position":{"x":27765.70266342922,"y":25441.968628350212},"targetPosition":{"x":27738.597242579614,"y":25187.795387040416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6b302071-d15f-43b3-9ab2-4b970a379ebc","savedPayload":{"position":{"x":27738.597242579614,"y":25187.795387040416},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA350","config":"{\n \"codeName\": \"sma350\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma350","project":"Superalgos","id":"18baf5c6-5aa5-4f66-8637-9966fdf4acf4","savedPayload":{"position":{"x":27507.499095863688,"y":25415.61956530881},"targetPosition":{"x":27585.91971988994,"y":25171.690551140535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f1de76b8-1665-4142-b8fc-712203bad655","savedPayload":{"position":{"x":27585.91971988994,"y":25171.690551140535},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA700","config":"{\n \"codeName\": \"sma700\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma700","project":"Superalgos","id":"c8f08ae8-f608-40f1-8df3-e4eb537a89ed","savedPayload":{"position":{"x":27282.249986716535,"y":25285.674296928475},"targetPosition":{"x":27452.181962748462,"y":25095.186548407437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"83b3c070-c0cb-4a4b-86ea-0b6292f57c13","savedPayload":{"position":{"x":27452.181962748462,"y":25095.186548407437},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA1400","config":"{\n \"codeName\": \"sma1400\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma1400","project":"Superalgos","id":"ca4c686e-61d0-4dc0-96f9-9ee80d856422","savedPayload":{"position":{"x":27128.27345492926,"y":25073.16319766951},"targetPosition":{"x":27360.93226808578,"y":24969.922926810006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e07922ab-0abb-4216-a534-07db74399c2a","savedPayload":{"position":{"x":27360.93226808578,"y":24969.922926810006},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f3c4fe44-c417-4c98-9547-4b0c062f7bd7","savedPayload":{"position":{"x":26401.97543233282,"y":24759.442352531274},"targetPosition":{"x":25726.97543233282,"y":24759.442352531274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1400.push(candle.close) // Add the current close value to the last 1400 array.\n\nif (variable.last1400.length > 1400) {\n variable.last1400.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1400 elements.\n}\n\nvariable.sma7 = calculateSMA(7)\nvariable.sma14 = calculateSMA(14)\nvariable.sma21 = calculateSMA(21)\nvariable.sma28 = calculateSMA(28)\nvariable.sma35 = calculateSMA(35)\nvariable.sma70 = calculateSMA(70)\nvariable.sma140 = calculateSMA(140)\nvariable.sma210 = calculateSMA(210)\nvariable.sma280 = calculateSMA(280)\nvariable.sma350 = calculateSMA(350)\nvariable.sma700 = calculateSMA(700)\nvariable.sma1400 = calculateSMA(1400)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1400.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1400.length - periods; i < variable.last1400.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1400[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1400.length=\" + variable.last1400.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1400[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"27796e5a-2553-47c6-bddd-c8deaed05c2f","savedPayload":{"position":{"x":26538.56793271727,"y":25070.98352453333},"targetPosition":{"x":26314.80050625941,"y":25047.46462029811},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e5d799ba-3a4f-45fb-8533-4c3de5d7886f","savedPayload":{"position":{"x":26314.80050625941,"y":25047.46462029811},"targetPosition":{"x":26091.033079801546,"y":25023.945716062888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1400 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1400 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"17ee3425-2a07-4523-b005-bac9dbf75184","savedPayload":{"position":{"x":26274.064569185655,"y":25435.041172002057},"targetPosition":{"x":26182.5488244936,"y":25229.493444032472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9e9e5c8c-98e2-4bbf-884a-071449177692","savedPayload":{"position":{"x":26182.5488244936,"y":25229.493444032472},"targetPosition":{"x":26091.033079801546,"y":25023.945716062888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6bd8fef6-49f7-45c5-9f9f-944785f8578e","savedPayload":{"position":{"x":26091.033079801546,"y":25023.945716062888},"targetPosition":{"x":25726.97543233282,"y":24759.442352531274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6","savedPayload":{"position":{"x":25726.97543233282,"y":24759.442352531274},"targetPosition":{"x":25299,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"SMA Base 7","id":"515565ff-dee2-4adf-adaf-b4cfea5f5dbd"}}},{"type":"Product Definition","name":"Base11 SMAs","config":"{\n \"codeName\": \"Base11-SMAs\",\n \"singularVariableName\": \"base11SMA\",\n \"pluralVariableName\": \"base11SMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"af9b9cef-2a74-486f-b79e-047d68669a1f","savedPayload":{"position":{"x":26013.503363531614,"y":24534.442352531274},"targetPosition":{"x":25749,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@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 }","project":"Superalgos","id":"de5cfa30-edbf-4d5b-8d7f-facfb69a0f3e","savedPayload":{"position":{"x":26176.97543233282,"y":24759.442352531274},"targetPosition":{"x":25749,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"a6c93c64-52da-4dad-bff9-9f6d9b4606b9","savedPayload":{"position":{"x":26878.166751041266,"y":24451.125700771026},"targetPosition":{"x":26993.196121135574,"y":24678.825584954808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5e8f3d9c-8284-4b92-b7f5-ad7498e5ef3d","savedPayload":{"position":{"x":26993.196121135574,"y":24678.825584954808},"targetPosition":{"x":27160.183546149707,"y":25008.708285617977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"ac16b3d1-e3b0-4b79-9047-cd137c6eeafc","savedPayload":{"position":{"x":27355.934344312845,"y":24408.76092774048},"targetPosition":{"x":27276.3713905735,"y":24652.620266807262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"43337725-24dd-4c1a-ae8d-2562a028d02d","savedPayload":{"position":{"x":27276.3713905735,"y":24652.620266807262},"targetPosition":{"x":27160.183546149707,"y":25008.708285617977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA11","config":"{\n \"codeName\": \"sma11\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma11","project":"Superalgos","id":"87a1e288-0966-46e9-8a4f-1ddbb3f8976c","savedPayload":{"position":{"x":27718.41187956599,"y":24724.68848935428},"targetPosition":{"x":27490.137694387457,"y":24840.809115750926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6a67dbd9-1e8e-4100-849f-5ea77ea67985","savedPayload":{"position":{"x":27490.137694387457,"y":24840.809115750926},"targetPosition":{"x":27160.183546149707,"y":25008.708285617977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA22","config":"{\n \"codeName\": \"sma22\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma22","project":"Superalgos","id":"8652042b-c373-4024-9fbf-c582a55134e0","savedPayload":{"position":{"x":27755.329865279484,"y":25201.403468266686},"targetPosition":{"x":27512.468902313612,"y":25122.788542084487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a5665ca1-e399-4e8a-8e04-8c0b153702e4","savedPayload":{"position":{"x":27512.468902313612,"y":25122.788542084487},"targetPosition":{"x":27160.183546149707,"y":25008.708285617977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA33","config":"{\n \"codeName\": \"sma33\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma33","project":"Superalgos","id":"738317b6-dcb4-4699-a48c-170491515eb5","savedPayload":{"position":{"x":27445.153120122683,"y":25565.51962044071},"targetPosition":{"x":27328.420993342283,"y":25337.491899531724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f35c54ed-6469-4cfa-94cf-f94f1c916e91","savedPayload":{"position":{"x":27328.420993342283,"y":25337.491899531724},"targetPosition":{"x":27160.183546149707,"y":25008.708285617977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA55","config":"{\n \"codeName\": \"sma55\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma55","project":"Superalgos","id":"675e9f6c-1e0d-4d09-ab69-88252ef60fe2","savedPayload":{"position":{"x":26968.411807983153,"y":25602.113369516912},"targetPosition":{"x":27047.017193328826,"y":25360.4276901231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c17d77b3-4d80-462d-88ba-ef421928dde1","savedPayload":{"position":{"x":27047.017193328826,"y":25360.4276901231},"targetPosition":{"x":27160.183546149707,"y":25008.708285617977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA111","config":"{\n \"codeName\": \"sma111\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma111","project":"Superalgos","id":"b32a4356-312c-4536-b30b-63bad302e857","savedPayload":{"position":{"x":26605.99712763428,"y":25293.188530603868},"targetPosition":{"x":26831.783854530866,"y":25176.47641278737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f49152b4-5306-41d2-966b-dba92eef2590","savedPayload":{"position":{"x":26831.783854530866,"y":25176.47641278737},"targetPosition":{"x":27160.183546149707,"y":25008.708285617977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a099f207-16db-4f66-adfb-1529fa350385","savedPayload":{"position":{"x":26390.963148499228,"y":25107.08647120309},"targetPosition":{"x":25749,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last200.push(candle.close) // Add the current close value to the last 200 array.\n\nif (variable.last200.length > 200) {\n variable.last200.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 200 elements.\n}\n\nvariable.sma11 = calculateSMA(11)\nvariable.sma22 = calculateSMA(22)\nvariable.sma33 = calculateSMA(33)\nvariable.sma55 = calculateSMA(55)\nvariable.sma111 = calculateSMA(111)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last200.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last200.length - periods; i < variable.last200.length; i++) { // Iterate through the last periods\n sum = sum + variable.last200[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last200.length=\" + variable.last200.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last200[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"317788d5-11f5-48a6-ab0c-252cdcef7728","savedPayload":{"position":{"x":26424.598819470782,"y":25445.58913685284},"targetPosition":{"x":26219.0510915012,"y":25354.073392160783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cce46065-5c04-428f-823f-4cb5e67b212a","savedPayload":{"position":{"x":26219.0510915012,"y":25354.073392160783},"targetPosition":{"x":26013.503363531614,"y":25262.557647468726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 200 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last200 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"70d5537e-f682-4322-992b-99a55edb2582","savedPayload":{"position":{"x":26060.541172002057,"y":25710.092500384446},"targetPosition":{"x":26037.022267766835,"y":25486.325073926586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f0707196-a2ac-4aee-99df-48a7fe77c365","savedPayload":{"position":{"x":26037.022267766835,"y":25486.325073926586},"targetPosition":{"x":26013.503363531614,"y":25262.557647468726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"663d58c6-e03e-4923-8cc7-03cc860aa318","savedPayload":{"position":{"x":26013.503363531614,"y":25262.557647468726},"targetPosition":{"x":25749,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"05fabbf9-7798-4a53-995e-53ae74bef3de","savedPayload":{"position":{"x":25749,"y":24898.5},"targetPosition":{"x":25299,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"SMA Base 11","id":"4a61ac35-a1ae-40f4-b3da-f81ae796ee00"}}},{"type":"Product Definition","name":"Base5 SMAs","config":"{\n \"codeName\": \"Base5-SMAs\",\n \"singularVariableName\": \"base5SMA\",\n \"pluralVariableName\": \"base5SMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Muti-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"a5d28568-fb58-469a-9820-b9f0e8eab705","savedPayload":{"position":{"x":26091.033079801546,"y":24773.054283937112},"targetPosition":{"x":25726.97543233282,"y":25037.557647468726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@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 }","project":"Superalgos","id":"01f32aa3-55e9-4f8c-80c7-997b52073274","savedPayload":{"position":{"x":26176.97543233282,"y":25037.557647468726},"targetPosition":{"x":25726.97543233282,"y":25037.557647468726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"949a2e58-5d07-475e-92b9-e0ef4b9fd9e7","savedPayload":{"position":{"x":26693.757557571444,"y":25170.209995376288},"targetPosition":{"x":26820.318750597926,"y":25391.90237078319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"65545f82-9022-4d4c-bd09-b900182bae75","savedPayload":{"position":{"x":26820.318750597926,"y":25391.90237078319},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"551c49da-26d4-438e-aff4-2a0ecc18ce7f","savedPayload":{"position":{"x":26940.709277123213,"y":25089.091662279785},"targetPosition":{"x":26966.796179292796,"y":25344.570895624045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"74445dab-2c42-4c71-b179-04b98b5a8e27","savedPayload":{"position":{"x":26966.796179292796,"y":25344.570895624045},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA5","config":"{\n \"codeName\": \"sma5\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma5","project":"Superalgos","id":"1c996969-c249-4b55-845c-62205e91fc68","savedPayload":{"position":{"x":27198.98274241963,"y":25117.33832759403},"targetPosition":{"x":27119.400078968432,"y":25360.08237896318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3b9f6fbf-20d8-4952-b5e8-34937746fef7","savedPayload":{"position":{"x":27119.400078968432,"y":25360.08237896318},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA10","config":"{\n \"codeName\": \"sma10\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma10","project":"Superalgos","id":"d16592d7-2f02-49ae-8857-dd7098990f20","savedPayload":{"position":{"x":27424.60229599898,"y":25246.55174694657},"targetPosition":{"x":27251.724949640433,"y":25437.6790494972},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"73cb2d83-d59b-457e-af00-68a8d0e2b016","savedPayload":{"position":{"x":27251.724949640433,"y":25437.6790494972},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA15","config":"{\n \"codeName\": \"sma15\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma15","project":"Superalgos","id":"147ea31e-2735-4bae-b6a9-99072ed3d7a5","savedPayload":{"position":{"x":27577.186115229386,"y":25457.26484807912},"targetPosition":{"x":27342.92040370257,"y":25561.240716231754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"666f82ef-a002-4067-9edb-6ddbe2861056","savedPayload":{"position":{"x":27342.92040370257,"y":25561.240716231754},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA20","config":"{\n \"codeName\": \"sma20\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma20","project":"Superalgos","id":"f2507a4f-7f65-4d22-b062-1834c9269285","savedPayload":{"position":{"x":27631.23349143082,"y":25711.700541402974},"targetPosition":{"x":27374.829516342168,"y":25711.67208564486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a6a82705-0a6c-425e-afab-099a63570ada","savedPayload":{"position":{"x":27374.829516342168,"y":25711.67208564486},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA25","config":"{\n \"codeName\": \"sma25\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma25","project":"Superalgos","id":"53aead0b-0c80-4e74-b19b-7290672f7444","savedPayload":{"position":{"x":27577.046266963323,"y":25966.056438585874},"targetPosition":{"x":27343.150142806066,"y":25861.986288922308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cbc6da93-d064-4762-a32f-ae1071a1ebe2","savedPayload":{"position":{"x":27343.150142806066,"y":25861.986288922308},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA50","config":"{\n \"codeName\": \"sma50\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma50","project":"Superalgos","id":"0c126131-e3bd-4d43-a037-53e54e268300","savedPayload":{"position":{"x":27424.69931470147,"y":26177.276663949266},"targetPosition":{"x":27252.302650218604,"y":25986.198480646537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1cda317e-4b82-4bd9-8b07-71ad7365e524","savedPayload":{"position":{"x":27252.302650218604,"y":25986.198480646537},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA100","config":"{\n \"codeName\": \"sma100\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma100","project":"Superalgos","id":"77c897e8-ab38-4c88-a215-e67d53401196","savedPayload":{"position":{"x":27198.804443850073,"y":26306.437274885426},"targetPosition":{"x":27119.615085200563,"y":26064.04709509539},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7a66586-158d-40e2-be75-1077a91b0d7e","savedPayload":{"position":{"x":27119.615085200563,"y":26064.04709509539},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA150","config":"{\n \"codeName\": \"sma150\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma150","project":"Superalgos","id":"1e5d6df6-a1af-49f0-a06e-08c362b1cd34","savedPayload":{"position":{"x":26941.023664465196,"y":26334.438683765406},"targetPosition":{"x":26966.812144167317,"y":26079.394167114657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"83260971-1089-4349-9019-29ea469a9d24","savedPayload":{"position":{"x":26966.812144167317,"y":26079.394167114657},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA200","config":"{\n \"codeName\": \"sma200\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma200","project":"Superalgos","id":"bc63f986-17dd-48fb-892b-7f2d2b033cc5","savedPayload":{"position":{"x":26693.05817446698,"y":26256.351045160845},"targetPosition":{"x":26822.038204570687,"y":26032.21874887651},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"07a55760-46cf-44e8-b2f9-f55a6bb5a81c","savedPayload":{"position":{"x":26822.038204570687,"y":26032.21874887651},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA250","config":"{\n \"codeName\": \"sma250\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma250","project":"Superalgos","id":"1bdc84fd-9eac-4b07-9ff6-56f80ec08553","savedPayload":{"position":{"x":26498.39661365437,"y":26081.125863056033},"targetPosition":{"x":26705.727798844153,"y":25929.283263271645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8b672a62-1ae1-4e92-819e-597fa42da35b","savedPayload":{"position":{"x":26705.727798844153,"y":25929.283263271645},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA 500","config":"{\n \"codeName\": \"sma500\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma500","project":"Superalgos","id":"0d17399e-97d1-459d-8864-6c72967f0fd4","savedPayload":{"position":{"x":26394.003285572806,"y":25843.188160713427},"targetPosition":{"x":26642.281171850507,"y":25789.007769403357},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"92405f1d-9adf-4a70-af18-f2537ba2b0a0","savedPayload":{"position":{"x":26642.281171850507,"y":25789.007769403357},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA 1000","config":"{\n \"codeName\": \"sma1000\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma1000","project":"Superalgos","id":"e2364abc-b940-4b52-a506-587c1a5941e3","savedPayload":{"position":{"x":26402.39893996769,"y":25584.394258364482},"targetPosition":{"x":26651.038311478438,"y":25636.105257822055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5318bf3f-6e8a-46c8-8b04-3769bde03438","savedPayload":{"position":{"x":26651.038311478438,"y":25636.105257822055},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"69298c3e-479d-4eb6-a972-35f8f079ce86","savedPayload":{"position":{"x":26273.06190353591,"y":25434.312692766147},"targetPosition":{"x":25726.97543233282,"y":25037.557647468726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1000.push(candle.close) // Add the current close value to the last 1000 array.\n\nif (variable.last1000.length > 1000) {\n variable.last1000.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1000 elements.\n}\n\nvariable.sma5 = calculateSMA(5)\nvariable.sma10 = calculateSMA(10)\nvariable.sma15 = calculateSMA(15)\nvariable.sma20 = calculateSMA(20)\nvariable.sma25 = calculateSMA(25)\nvariable.sma50 = calculateSMA(50)\nvariable.sma100 = calculateSMA(100)\nvariable.sma150 = calculateSMA(150)\nvariable.sma200 = calculateSMA(200)\nvariable.sma250 = calculateSMA(250)\nvariable.sma500 = calculateSMA(500)\nvariable.sma1000 = calculateSMA(1000)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1000.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1000.length - periods; i < variable.last1000.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1000[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1000.length=\" + variable.last1000.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1000[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"45ebc09e-bada-4bcd-8780-a2f56f23f037","savedPayload":{"position":{"x":26200.448251266374,"y":25766.641852663033},"targetPosition":{"x":26033.24066553396,"y":25616.08746623229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f65693cf-81ef-497e-86d2-a7ad9b74a1ca","savedPayload":{"position":{"x":26033.24066553396,"y":25616.08746623229},"targetPosition":{"x":25866.033079801546,"y":25465.533079801546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1000 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1000 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"22db43d3-db5d-43b6-80fc-1faa358bfadb","savedPayload":{"position":{"x":25772.472818933555,"y":25905.69950013176},"targetPosition":{"x":25819.25294936755,"y":25685.616289966652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"12255c95-c680-43af-be1b-61ee37e0e827","savedPayload":{"position":{"x":25819.25294936755,"y":25685.616289966652},"targetPosition":{"x":25866.033079801546,"y":25465.533079801546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cd8c13e4-2b9e-4a42-a576-539d412f239a","savedPayload":{"position":{"x":25866.033079801546,"y":25465.533079801546},"targetPosition":{"x":25726.97543233282,"y":25037.557647468726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2dcb55de-1673-409e-aa52-f51e7c7f8fa3","savedPayload":{"position":{"x":25726.97543233282,"y":25037.557647468726},"targetPosition":{"x":25299,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"SMA Base 5","id":"888c381d-457d-4421-8401-a7475b42ff03"}}},{"type":"Product Definition","name":"Base6 SMAs","config":"{\n \"codeName\": \"Base6-SMAs\",\n \"singularVariableName\": \"base6SMA\",\n \"pluralVariableName\": \"base6SMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"c0862b3d-d35a-4d3e-8d80-258b8a01c37c","savedPayload":{"position":{"x":26091.033079801546,"y":25023.945716062888},"targetPosition":{"x":25663.057647468726,"y":25163.003363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@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 }","project":"Superalgos","id":"f5050eb2-0a99-464e-b5e2-2d8f40453e9a","savedPayload":{"position":{"x":26091.033079801546,"y":25302.06101100034},"targetPosition":{"x":25663.057647468726,"y":25163.003363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Being","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"fc90c194-682d-4d5c-923b-89b19e49f234","savedPayload":{"position":{"x":26580.45065942521,"y":25439.757245160832},"targetPosition":{"x":26670.90254641409,"y":25677.64462787122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"37fc0238-a202-4c33-89ca-6a4e24d4e1ac","savedPayload":{"position":{"x":26670.90254641409,"y":25677.64462787122},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"c1b3c2c1-68aa-443a-8c69-c50dcd34998f","savedPayload":{"position":{"x":26837.46721303958,"y":25399.62434273565},"targetPosition":{"x":26823.55452911504,"y":25653.41228041602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7757e0dd-c3b4-48b4-bdf7-e517ce8df601","savedPayload":{"position":{"x":26823.55452911504,"y":25653.41228041602},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA6","config":"{\n \"codeName\": \"sma6\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma6","project":"Superalgos","id":"8a633674-750f-492d-8bfc-ac6f2e79793a","savedPayload":{"position":{"x":27087.889457268022,"y":25467.432199042523},"targetPosition":{"x":26972.087279648666,"y":25694.1101545314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"12d5b8f1-c83c-43a3-bf45-6f85e85a6df9","savedPayload":{"position":{"x":26972.087279648666,"y":25694.1101545314},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA12","config":"{\n \"codeName\": \"sma12\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma12","project":"Superalgos","id":"11e2a0cd-851a-425e-b2bd-f3cff1b00c77","savedPayload":{"position":{"x":27292.290495798108,"y":25629.300101397443},"targetPosition":{"x":27090.973174870796,"y":25791.80516430045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6c1f3e32-9310-4ece-a796-cf9225172978","savedPayload":{"position":{"x":27090.973174870796,"y":25791.80516430045},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA18","config":"{\n \"codeName\": \"sma18\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma18","project":"Superalgos","id":"0cbf493f-fa5f-41a8-a928-754ec9720fe0","savedPayload":{"position":{"x":27409.699616252605,"y":25862.306801182465},"targetPosition":{"x":27162.847071944903,"y":25928.071602991335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"12bf3180-d354-451d-ba14-81cdd9d95c19","savedPayload":{"position":{"x":27162.847071944903,"y":25928.071602991335},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA24","config":"{\n \"codeName\": \"sma24\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma24","project":"Superalgos","id":"4d677df1-74ec-417e-a518-2b8946c84542","savedPayload":{"position":{"x":27422.46879273162,"y":26121.685361586304},"targetPosition":{"x":27170.720717204124,"y":26081.88837045724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3e3a6434-aaa4-4170-8cdc-cca21c8d0863","savedPayload":{"position":{"x":27170.720717204124,"y":26081.88837045724},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA30","config":"{\n \"codeName\": \"sma30\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma30","project":"Superalgos","id":"3a92b258-6c21-4747-ba08-16cf9ba814ec","savedPayload":{"position":{"x":27329.333711952157,"y":26364.932090293034},"targetPosition":{"x":27114.50518599369,"y":26225.48960234487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"22bc84a6-f431-464c-a7e0-b9249b32abdf","savedPayload":{"position":{"x":27114.50518599369,"y":26225.48960234487},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA60","config":"{\n \"codeName\": \"sma60\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma60","project":"Superalgos","id":"d9a44db6-45eb-47f8-975b-ee8dccd0659d","savedPayload":{"position":{"x":27145.431874006845,"y":26549.40218658989},"targetPosition":{"x":27005.43515778987,"y":26334.0729836336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c3d4d569-0b7e-44b9-b2f0-84d9a91ee6b0","savedPayload":{"position":{"x":27005.43515778987,"y":26334.0729836336},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA120","config":"{\n \"codeName\": \"sma120\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma120","project":"Superalgos","id":"90fee0af-0e23-44de-aa16-d446857485f4","savedPayload":{"position":{"x":26902.02295017135,"y":26643.121620367918},"targetPosition":{"x":26861.69016122162,"y":26389.42902917456},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4f572d61-ff96-4ccb-90ca-7a26d5cc8322","savedPayload":{"position":{"x":26861.69016122162,"y":26389.42902917456},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA180","config":"{\n \"codeName\": \"sma180\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma180","project":"Superalgos","id":"031e5277-e225-4307-a247-f49dae98ac26","savedPayload":{"position":{"x":26642.39917682824,"y":26629.754253330866},"targetPosition":{"x":26708.32280917821,"y":26381.4618363008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9e3eb2e1-3cb4-4f0b-9a5a-5196bb4af3af","savedPayload":{"position":{"x":26708.32280917821,"y":26381.4618363008},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA240","config":"{\n \"codeName\": \"sma240\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma240","project":"Superalgos","id":"cb9604b0-3004-48d5-84fe-680747edb943","savedPayload":{"position":{"x":26410.670456260723,"y":26511.498034269385},"targetPosition":{"x":26571.347088301416,"y":26311.829888639608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"83c2137c-676d-4a43-88c1-e9a5f69cafeb","savedPayload":{"position":{"x":26571.347088301416,"y":26311.829888639608},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA300","config":"{\n \"codeName\": \"sma300\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma300","project":"Superalgos","id":"8c3259f1-e88b-40a2-9af2-a0e554affbd2","savedPayload":{"position":{"x":26246.541152629918,"y":26308.515665877218},"targetPosition":{"x":26474.4900026532,"y":26192.022276476648},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"829bfd3a-8c69-4e51-8951-a1d7cb0b8c6f","savedPayload":{"position":{"x":26474.4900026532,"y":26192.022276476648},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA600","config":"{\n \"codeName\": \"sma600\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma600","project":"Superalgos","id":"501b1e82-840a-4288-801d-38a5e5c7f7cb","savedPayload":{"position":{"x":26179.047493474805,"y":26057.85981030042},"targetPosition":{"x":26434.890329149977,"y":26043.32586054153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7174f99-231c-4188-8f4a-95a34c0c35f8","savedPayload":{"position":{"x":26434.890329149977,"y":26043.32586054153},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA1200","config":"{\n \"codeName\": \"sma1200\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma1200","project":"Superalgos","id":"0554601a-009b-47a2-8e0c-c7d6f3901a9e","savedPayload":{"position":{"x":26219.67796759663,"y":25812.260886235843},"targetPosition":{"x":26459.12369765294,"y":25890.957780577293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f6f0c544-4054-4cb4-9be1-14ffa23c5251","savedPayload":{"position":{"x":26459.12369765294,"y":25890.957780577293},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a84f4438-cabc-4c9a-bd9c-0338e55a6e15","savedPayload":{"position":{"x":26140.354724769648,"y":25640.300440832532},"targetPosition":{"x":25663.057647468726,"y":25163.003363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1200.push(candle.close) // Add the current close value to the last 1200 array.\n\nif (variable.last1200.length > 1200) {\n variable.last1200.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1200 elements.\n}\n\nvariable.sma6 = calculateSMA(6)\nvariable.sma12 = calculateSMA(12)\nvariable.sma18 = calculateSMA(18)\nvariable.sma24 = calculateSMA(24)\nvariable.sma30 = calculateSMA(30)\nvariable.sma60 = calculateSMA(60)\nvariable.sma120 = calculateSMA(120)\nvariable.sma180 = calculateSMA(180)\nvariable.sma240 = calculateSMA(240)\nvariable.sma300 = calculateSMA(300)\nvariable.sma600 = calculateSMA(600)\nvariable.sma1200 = calculateSMA(1200)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1200.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1200.length - periods; i < variable.last1200.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1200[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1200.length=\" + variable.last1200.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1200[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"f2c97b70-717a-4f98-be7c-d76dd94b8227","savedPayload":{"position":{"x":25888.057647468726,"y":26002.714795234613},"targetPosition":{"x":25775.557647468726,"y":25807.859079383114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96841e7b-90d9-4508-8933-4f0f9769800e","savedPayload":{"position":{"x":25775.557647468726,"y":25807.859079383114},"targetPosition":{"x":25663.057647468726,"y":25613.003363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1200 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1200 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"14dcff53-0599-4529-8a5d-5cf92a5c33c8","savedPayload":{"position":{"x":25438.057647468726,"y":26002.714795234613},"targetPosition":{"x":25550.557647468726,"y":25807.859079383114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2863a8f-8f38-4c47-9f48-0bd45b628fa0","savedPayload":{"position":{"x":25550.557647468726,"y":25807.859079383114},"targetPosition":{"x":25663.057647468726,"y":25613.003363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"948be5d9-da96-488a-bb15-f8cd94777231","savedPayload":{"position":{"x":25663.057647468726,"y":25613.003363531614},"targetPosition":{"x":25663.057647468726,"y":25163.003363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4ae22e54-cd02-4e2e-b638-1c5ea9a171ac","savedPayload":{"position":{"x":25663.057647468726,"y":25163.003363531614},"targetPosition":{"x":25299,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"SMA Base 6","id":"6ace920a-3a4b-4d28-8f04-4c2ecd3dfeb8"}}},{"type":"Product Definition","name":"Base12 SMAs","config":"{\n \"codeName\": \"Base12-SMAs\",\n \"singularVariableName\": \"base12SMA\",\n \"pluralVariableName\": \"base12SMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"6ba76363-0f50-4e67-8678-3eb4fd6d07d6","savedPayload":{"position":{"x":26013.503363531614,"y":25262.557647468726},"targetPosition":{"x":25563.503363531614,"y":25262.557647468726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@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 }","project":"Superalgos","id":"92d92b3e-6870-499b-bfec-33bab220bf62","savedPayload":{"position":{"x":25927.56101100034,"y":25527.06101100034},"targetPosition":{"x":25563.503363531614,"y":25262.557647468726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"d44292f3-8960-448b-8339-32147b8bb1c3","savedPayload":{"position":{"x":26330.864656950424,"y":25803.68236782766},"targetPosition":{"x":26295.885929981134,"y":26057.01970786639},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bcec1860-262e-4125-bdf4-a8f798d9d4ff","savedPayload":{"position":{"x":26295.885929981134,"y":26057.01970786639},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"91264df6-db08-498e-a039-fec9b0cd09a5","savedPayload":{"position":{"x":26590.79572201999,"y":25903.597980776238},"targetPosition":{"x":26451.121212743594,"y":26114.143680184552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0ef8d741-e876-446e-86ac-146b4f33d8e8","savedPayload":{"position":{"x":26451.121212743594,"y":26114.143680184552},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA12","config":"{\n \"codeName\": \"sma12\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma12","project":"Superalgos","id":"c694dcde-b622-4d71-b2cf-e42e1b4934ec","savedPayload":{"position":{"x":26783.950036903243,"y":26103.529063491693},"targetPosition":{"x":26563.17837734536,"y":26235.00237583355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"daf8aa00-f032-412e-b319-e7c581611db0","savedPayload":{"position":{"x":26563.17837734536,"y":26235.00237583355},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA24","config":"{\n \"codeName\": \"sma24\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma24","project":"Superalgos","id":"445b00ba-46a1-4e79-b762-72c521223b5f","savedPayload":{"position":{"x":26870.84879602414,"y":26368.361991746904},"targetPosition":{"x":26614.31662520227,"y":26390.994936109477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"255fdffa-cdbb-428b-a54e-14448f7cda29","savedPayload":{"position":{"x":26614.31662520227,"y":26390.994936109477},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA36","config":"{\n \"codeName\": \"sma36\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma36","project":"Superalgos","id":"c9c11106-98b6-4fcb-b30b-d49263a05d95","savedPayload":{"position":{"x":26833.51912081144,"y":26644.258338373496},"targetPosition":{"x":26593.111462972716,"y":26553.910768081667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"628c3c4f-7ef7-4008-bada-76e4edf6de42","savedPayload":{"position":{"x":26593.111462972716,"y":26553.910768081667},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA48","config":"{\n \"codeName\": \"sma48\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma48","project":"Superalgos","id":"8e1cfb60-cb51-4625-a36b-75d64381840d","savedPayload":{"position":{"x":26678.33964468265,"y":26875.524264476328},"targetPosition":{"x":26503.084692976285,"y":26692.248933913033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1aa9fd38-51e5-4158-9bb2-31dbc8f933d0","savedPayload":{"position":{"x":26503.084692976285,"y":26692.248933913033},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA60","config":"{\n \"codeName\": \"sma60\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma60","project":"Superalgos","id":"6fe04671-6298-4ef4-9ef8-779eafc1645d","savedPayload":{"position":{"x":26439.866554332657,"y":27018.761967586313},"targetPosition":{"x":26360.62276009851,"y":26774.981290360556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d76d7819-b542-4ee8-98fd-539ec3325e2c","savedPayload":{"position":{"x":26360.62276009851,"y":26774.981290360556},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA120","config":"{\n \"codeName\": \"sma120\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma120","project":"Superalgos","id":"f8abde07-3312-4983-bff2-65ed4f475a3f","savedPayload":{"position":{"x":26162.92542546256,"y":27045.027461839687},"targetPosition":{"x":26197.210639542558,"y":26789.605237258893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0e696147-e020-4056-8ad4-40ad79cba391","savedPayload":{"position":{"x":26197.210639542558,"y":26789.605237258893},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA240","config":"{\n \"codeName\": \"sma240\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma240","project":"Superalgos","id":"1ea2c145-6dcf-4e8a-908a-b12e08a8d658","savedPayload":{"position":{"x":25901.8727177444,"y":26946.929502386163},"targetPosition":{"x":26042.69652080181,"y":26732.805369345573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e02938c9-f5b1-49f7-8e63-f8637f6d1d4d","savedPayload":{"position":{"x":26042.69652080181,"y":26732.805369345573},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA360","config":"{\n \"codeName\": \"sma360\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma360","project":"Superalgos","id":"16ab9e8b-cb14-4a59-b7b3-0a1d13dbea5b","savedPayload":{"position":{"x":25709.695662901617,"y":26745.65837655285},"targetPosition":{"x":25928.77331852476,"y":26613.963791232814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fe671bcf-1d71-4081-a100-f4bbc59203c7","savedPayload":{"position":{"x":25928.77331852476,"y":26613.963791232814},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA480","config":"{\n \"codeName\": \"sma480\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma480","project":"Superalgos","id":"135a34fc-3cc8-4555-b1b9-c8ea03150aff","savedPayload":{"position":{"x":25623.23873031277,"y":26479.807551480884},"targetPosition":{"x":25878.273128137385,"y":26457.120563987803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"85a59bf2-d419-43c9-a287-68902b8cb199","savedPayload":{"position":{"x":25878.273128137385,"y":26457.120563987803},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA600","config":"{\n \"codeName\": \"sma600\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma600","project":"Superalgos","id":"cacf8e3b-77d3-4697-9ca5-51cff50afb6c","savedPayload":{"position":{"x":25660.338142885914,"y":26205.1301723162},"targetPosition":{"x":25900.514030915383,"y":26294.302886283534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"608a2a98-bd6e-49e0-b202-afff3553337d","savedPayload":{"position":{"x":25900.514030915383,"y":26294.302886283534},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA1200","config":"{\n \"codeName\": \"sma1200\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma1200","project":"Superalgos","id":"2e1c84ea-2cb3-4936-8106-623dcdff8782","savedPayload":{"position":{"x":25803.588502917133,"y":25980.78310813766},"targetPosition":{"x":25991.9094558216,"y":26156.74940405144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dda31bad-8835-446a-9015-4e15ae4cb845","savedPayload":{"position":{"x":25991.9094558216,"y":26156.74940405144},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f46175dc-dfd2-4e1e-a60c-554867b5f0a5","savedPayload":{"position":{"x":25772.089834734703,"y":25904.520795967954},"targetPosition":{"x":25563.503363531614,"y":25262.557647468726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1200.push(candle.close) // Add the current close value to the last 1200 array.\n\nif (variable.last1200.length > 1200) {\n variable.last1200.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1200 elements.\n}\n\nvariable.sma12 = calculateSMA(12)\nvariable.sma24 = calculateSMA(24)\nvariable.sma36 = calculateSMA(36)\nvariable.sma48 = calculateSMA(48)\nvariable.sma60 = calculateSMA(60)\nvariable.sma120 = calculateSMA(120)\nvariable.sma240 = calculateSMA(240)\nvariable.sma360 = calculateSMA(360)\nvariable.sma480 = calculateSMA(480)\nvariable.sma600 = calculateSMA(600)\nvariable.sma1200 = calculateSMA(1200)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1200.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1200.length - periods; i < variable.last1200.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1200[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1200.length=\" + variable.last1200.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1200[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"fba7176b-58ff-4bd6-95de-ad6f88de4cda","savedPayload":{"position":{"x":25518.00597693088,"y":26130.69950013176},"targetPosition":{"x":25471.225846496884,"y":25910.616289966652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"daf2fb19-bfda-4248-a0c6-8e364fe863ee","savedPayload":{"position":{"x":25471.225846496884,"y":25910.616289966652},"targetPosition":{"x":25424.445716062888,"y":25690.533079801546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1200 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1200 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"4d3f1fee-e71d-46cd-a50b-69176de5e1e8","savedPayload":{"position":{"x":25090.030544598056,"y":25991.641852663033},"targetPosition":{"x":25257.238130330472,"y":25841.08746623229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"08365c70-c9ba-481d-abb8-62dc21067754","savedPayload":{"position":{"x":25257.238130330472,"y":25841.08746623229},"targetPosition":{"x":25424.445716062888,"y":25690.533079801546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4aa28d66-d2c5-40d1-9b42-b6adb1e94d1c","savedPayload":{"position":{"x":25424.445716062888,"y":25690.533079801546},"targetPosition":{"x":25563.503363531614,"y":25262.557647468726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"723d28e9-a010-48c5-bda0-43a4c2343ddf","savedPayload":{"position":{"x":25563.503363531614,"y":25262.557647468726},"targetPosition":{"x":25299,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition","name":"Base30 SMAs","config":"{\n \"codeName\": \"Base30-SMAs\",\n \"singularVariableName\": \"base30SMA\",\n \"pluralVariableName\": \"base30SMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"4c486321-22e0-4991-9a1c-571bada649ad","savedPayload":{"position":{"x":25866.033079801546,"y":25465.533079801546},"targetPosition":{"x":25438.057647468726,"y":25326.47543233282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@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 }","project":"Superalgos","id":"819688c9-c7bd-444b-9658-2a4379125c72","savedPayload":{"position":{"x":25702.56101100034,"y":25690.533079801546},"targetPosition":{"x":25438.057647468726,"y":25326.47543233282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"16806650-2bfb-4709-acbd-aca1549c16e8","savedPayload":{"position":{"x":26030.90400930897,"y":26017.31604072213},"targetPosition":{"x":25911.89770679035,"y":26243.056297037474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"265d3765-cd1d-4652-a0ed-01931674a151","savedPayload":{"position":{"x":25911.89770679035,"y":26243.056297037474},"targetPosition":{"x":25740.44916648633,"y":26570.238642454664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"d0b81562-348b-433f-8524-f9bc909de69e","savedPayload":{"position":{"x":26255.577738587894,"y":26215.626812211078},"targetPosition":{"x":26044.072058856214,"y":26361.027979843693},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fe6074be-18c6-46c0-abd4-5d31bc067798","savedPayload":{"position":{"x":26044.072058856214,"y":26361.027979843693},"targetPosition":{"x":25740.44916648633,"y":26570.238642454664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA30","config":"{\n \"codeName\": \"sma30\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma30","project":"Superalgos","id":"2ef589ba-7f7d-4df5-91fd-9107d67a7792","savedPayload":{"position":{"x":26363.30040167155,"y":26495.377017762694},"targetPosition":{"x":26106.229616497607,"y":26526.19954067295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"72debf77-1c4b-4e8d-9a99-96951bd6d24c","savedPayload":{"position":{"x":26106.229616497607,"y":26526.19954067295},"targetPosition":{"x":25740.44916648633,"y":26570.238642454664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA60","config":"{\n \"codeName\": \"sma60\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma60","project":"Superalgos","id":"d51798bf-2373-4f5e-b6e4-56aad8117820","savedPayload":{"position":{"x":26325.516806669068,"y":26792.244479789046},"targetPosition":{"x":26086.836415970378,"y":26701.68319021127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78e59381-fcda-4204-a70a-4113eebdbba7","savedPayload":{"position":{"x":26086.836415970378,"y":26701.68319021127},"targetPosition":{"x":25740.44916648633,"y":26570.238642454664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA90","config":"{\n \"codeName\": \"sma90\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma90","project":"Superalgos","id":"a35a40dd-e5b4-4444-a8da-14eeb79e76b3","savedPayload":{"position":{"x":26154.797522434423,"y":27038.142274489528},"targetPosition":{"x":25985.587418220497,"y":26847.060054174686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"90b3598c-8f08-4dc1-ad41-a64caf0cab39","savedPayload":{"position":{"x":25985.587418220497,"y":26847.060054174686},"targetPosition":{"x":25740.44916648633,"y":26570.238642454664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA120","config":"{\n \"codeName\": \"sma120\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma120","project":"Superalgos","id":"046bdfe3-d838-425e-8cc0-e117151bdbf8","savedPayload":{"position":{"x":25889.895812373386,"y":27177.35393800552},"targetPosition":{"x":25828.61505747102,"y":26928.34442929303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aa9f7095-66e7-4e42-b6b2-d3a51e3b35d9","savedPayload":{"position":{"x":25828.61505747102,"y":26928.34442929303},"targetPosition":{"x":25740.44916648633,"y":26570.238642454664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA150","config":"{\n \"codeName\": \"sma150\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma150","project":"Superalgos","id":"8129644d-2b0a-4936-8255-22dc2aada9e7","savedPayload":{"position":{"x":25590.73872500813,"y":27179.308695991604},"targetPosition":{"x":25652.515419417003,"y":26927.859065981917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b0c06b10-549c-4280-aac9-0b649ede898c","savedPayload":{"position":{"x":25652.515419417003,"y":26927.859065981917},"targetPosition":{"x":25740.44916648633,"y":26570.238642454664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA300","config":"{\n \"codeName\": \"sma300\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma300","project":"Superalgos","id":"23ddb87c-8211-4032-8273-222af79863b5","savedPayload":{"position":{"x":25325.903506463797,"y":27038.66537936643},"targetPosition":{"x":25494.876517479395,"y":26847.71278744529},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"38b8e859-eda7-4cd9-afc2-ee0e3ed297b7","savedPayload":{"position":{"x":25494.876517479395,"y":26847.71278744529},"targetPosition":{"x":25740.44916648633,"y":26570.238642454664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA600","config":"{\n \"codeName\": \"sma600\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma600","project":"Superalgos","id":"8f07691b-ccdc-47cc-9c07-3701b61322f9","savedPayload":{"position":{"x":25156.455506369046,"y":26792.05190959552},"targetPosition":{"x":25394.67909700991,"y":26701.54922124756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cebd7a57-eebb-4e4f-9315-6f1411970e55","savedPayload":{"position":{"x":25394.67909700991,"y":26701.54922124756},"targetPosition":{"x":25740.44916648633,"y":26570.238642454664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA900","config":"{\n \"codeName\": \"sma900\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma900","project":"Superalgos","id":"ed66265d-f971-448f-b395-e0c12c178173","savedPayload":{"position":{"x":25119.442065541138,"y":26495.802595265683},"targetPosition":{"x":25374.357304183537,"y":26526.248865516933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fcbefbb9-2a6d-459a-8d3b-595d71caaa88","savedPayload":{"position":{"x":25374.357304183537,"y":26526.248865516933},"targetPosition":{"x":25740.44916648633,"y":26570.238642454664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA1200","config":"{\n \"codeName\": \"sma1200\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma1200","project":"Superalgos","id":"3e936d3b-8f40-49da-830c-f73ea5bf271a","savedPayload":{"position":{"x":25225.119514939674,"y":26215.702597180116},"targetPosition":{"x":25436.425450842544,"y":26360.785584011013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"311d2e2d-163e-4b8e-ae99-2b2d0fbbb2aa","savedPayload":{"position":{"x":25436.425450842544,"y":26360.785584011013},"targetPosition":{"x":25740.44916648633,"y":26570.238642454664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA1500","config":"{\n \"codeName\": \"sma1500\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma1500","project":"Superalgos","id":"d4db0dc9-12a2-41c6-8511-43cbfdcfb136","savedPayload":{"position":{"x":25445.697294997783,"y":26018.895855737155},"targetPosition":{"x":25569.292901210018,"y":26243.123694786802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b71b603d-38de-401d-b1df-ca20710dba64","savedPayload":{"position":{"x":25569.292901210018,"y":26243.123694786802},"targetPosition":{"x":25740.44916648633,"y":26570.238642454664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"229b4129-39f9-4f46-bbb5-a86a714023f8","savedPayload":{"position":{"x":25438.057647468726,"y":26001.47543233282},"targetPosition":{"x":25438.057647468726,"y":25326.47543233282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1500.push(candle.close) // Add the current close value to the last 1500 array.\n\nif (variable.last1500.length > 1500) {\n variable.last1500.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1500 elements.\n}\n\nvariable.sma30 = calculateSMA(30)\nvariable.sma60 = calculateSMA(60)\nvariable.sma90 = calculateSMA(90)\nvariable.sma120 = calculateSMA(120)\nvariable.sma150 = calculateSMA(150)\nvariable.sma300 = calculateSMA(300)\nvariable.sma600 = calculateSMA(600)\nvariable.sma900 = calculateSMA(900)\nvariable.sma1200 = calculateSMA(1200)\nvariable.sma1500 = calculateSMA(1500)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1500.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1500.length - periods; i < variable.last1500.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1500[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1500.length=\" + variable.last1500.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1500[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"382c5abf-a91a-40c0-88c2-7e230e93ed44","savedPayload":{"position":{"x":25126.51647546667,"y":26138.067932717266},"targetPosition":{"x":25150.03537970189,"y":25914.300506259406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d3dab655-2db2-4d4c-a776-91a6ae116304","savedPayload":{"position":{"x":25150.03537970189,"y":25914.300506259406},"targetPosition":{"x":25173.554283937112,"y":25690.533079801546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1500 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1500 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"41af43f4-4f30-404d-8d9e-3ad5e752688c","savedPayload":{"position":{"x":24762.458827997943,"y":25873.56456918566},"targetPosition":{"x":24968.006555967528,"y":25782.048824493602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8611aff-7f4f-4df8-a2ac-b92ef5633ad4","savedPayload":{"position":{"x":24968.006555967528,"y":25782.048824493602},"targetPosition":{"x":25173.554283937112,"y":25690.533079801546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e8bebfde-97db-42d7-93a2-972366bc002c","savedPayload":{"position":{"x":25173.554283937112,"y":25690.533079801546},"targetPosition":{"x":25438.057647468726,"y":25326.47543233282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"607ebabd-9602-4e5c-803d-d4207dbd6794","savedPayload":{"position":{"x":25438.057647468726,"y":25326.47543233282},"targetPosition":{"x":25299,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c1c6f0e0-49f7-4723-bf22-dd24dfee6102","savedPayload":{"position":{"x":19350,"y":18707},"targetPosition":{"x":18900,"y":18707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"plotters":[{"type":"Plotter","name":"Simple Moving Average (SMA)","config":"{\n\"codeName\": \"Plotter SMA\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"SMA Popular","config":"{\n\t\"codeName\": \"SMA-Popular\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"SMA 20 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma20","project":"Superalgos","id":"81557791-d18b-472c-b152-612294f281cc","savedPayload":{"position":{"x":22297.26894015578,"y":26124.70861021199},"targetPosition":{"x":23356.339746074842,"y":26032.051920822807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b932c738-3b05-4b1f-a822-2ba7bae30252","savedPayload":{"position":{"x":23356.339746074842,"y":26032.051920822807},"targetPosition":{"x":24415.410551993904,"y":25939.395231433624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 20 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma20","project":"Superalgos","id":"dd573845-585b-4a89-8518-425173e02916","savedPayload":{"position":{"x":22673.702796718353,"y":24719.838331831368},"targetPosition":{"x":23544.55667435613,"y":25329.616781632496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"44ba79ce-2ad1-4bb7-87db-df0aa58e6440","savedPayload":{"position":{"x":23544.55667435613,"y":25329.616781632496},"targetPosition":{"x":24415.410551993904,"y":25939.395231433624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 50 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma50","project":"Superalgos","id":"054b7477-497f-46f9-b33e-de27dc3d494f","savedPayload":{"position":{"x":23865.1010688999,"y":23885.61228063983},"targetPosition":{"x":24140.255810446903,"y":24912.503756036727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"00efabf8-701d-44b1-a590-b8399149dfbb","savedPayload":{"position":{"x":24140.255810446903,"y":24912.503756036727},"targetPosition":{"x":24415.410551993904,"y":25939.395231433624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 50 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma50","project":"Superalgos","id":"2e18404b-0350-4720-95d1-77533ced3986","savedPayload":{"position":{"x":25313.995264229772,"y":24012.374097379707},"targetPosition":{"x":24864.702908111838,"y":24975.884664406665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"084b4468-49d2-4ad2-a716-ebc338c34248","savedPayload":{"position":{"x":24864.702908111838,"y":24975.884664406665},"targetPosition":{"x":24415.410551993904,"y":25939.395231433624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 100 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma100","project":"Superalgos","id":"9e730b8b-7f20-41df-9126-9d9aae2f8ca6","savedPayload":{"position":{"x":26342.43168604782,"y":25040.810519197756},"targetPosition":{"x":25378.921119020863,"y":25490.10287531569},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bbacba1b-6b2d-48b7-a440-986a04c61858","savedPayload":{"position":{"x":25378.921119020863,"y":25490.10287531569},"targetPosition":{"x":24415.410551993904,"y":25939.395231433624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 100 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma100","project":"Superalgos","id":"922d462b-1e9f-4766-859d-330041428bc0","savedPayload":{"position":{"x":26469.193502787697,"y":26489.704714527626},"targetPosition":{"x":25442.3020273908,"y":26214.549972980625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"270a8be8-ad51-4061-abe1-a4c7234eb88a","savedPayload":{"position":{"x":25442.3020273908,"y":26214.549972980625},"targetPosition":{"x":24415.410551993904,"y":25939.395231433624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 200 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma200","project":"Superalgos","id":"4278cffb-da8c-458e-b014-449f8487204b","savedPayload":{"position":{"x":25634.96745159616,"y":27681.102986709175},"targetPosition":{"x":25025.18900179503,"y":26810.2491090714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cd242031-8d7a-4cee-a680-156b0be7c7c7","savedPayload":{"position":{"x":25025.18900179503,"y":26810.2491090714},"targetPosition":{"x":24415.410551993904,"y":25939.395231433624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 200 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma200","project":"Superalgos","id":"a3b73c57-a9b2-4a55-9232-9bacf741a933","savedPayload":{"position":{"x":24230.097173215538,"y":28057.536843271748},"targetPosition":{"x":24322.75386260472,"y":26998.466037352686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"328b048e-eb4a-4a02-ad95-a17cd170c4a7","savedPayload":{"position":{"x":24322.75386260472,"y":26998.466037352686},"targetPosition":{"x":24415.410551993904,"y":25939.395231433624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6755d98f-e1de-4ae9-b688-d06ab9cc543e","savedPayload":{"position":{"x":24415.410551993904,"y":25939.395231433624},"targetPosition":{"x":23663.67381814401,"y":26691.13196528352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"6368c66e-47fc-486d-8c03-e2ed303de825","savedPayload":{"position":{"x":25240.874776634908,"y":24912.503756036727},"targetPosition":{"x":24965.720035087907,"y":25939.395231433624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"b0d22693-8100-49e9-b92e-11a8a55a5480","savedPayload":{"position":{"x":24965.720035087907,"y":25939.395231433624},"targetPosition":{"x":24690.565293540905,"y":26966.28670683052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 20 End","project":"Superalgos","id":"d9dae274-33d5-403d-a5ff-5514104df62e","savedPayload":{"position":{"x":24148.3214966583,"y":27905.480513120252},"targetPosition":{"x":24690.565293540905,"y":26966.28670683052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 20 End","id":"44ba79ce-2ad1-4bb7-87db-df0aa58e6440"}}},{"type":"Polygon Vertex","name":"SMA 20 Begin","project":"Superalgos","id":"45823ead-7d67-409c-8160-ea36496c412e","savedPayload":{"position":{"x":24163.8283806018,"y":26053.951611398006},"targetPosition":{"x":24690.565293540905,"y":26966.28670683052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 20 Begin","id":"b932c738-3b05-4b1f-a822-2ba7bae30252"}}}],"id":"ffe11ebb-d04f-4bf6-b6ff-43382be7c347","savedPayload":{"position":{"x":24690.565293540905,"y":26966.28670683052},"targetPosition":{"x":23663.67381814401,"y":26691.13196528352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 50","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b0de67a4-9a26-40ce-aa19-f5336145f871","savedPayload":{"position":{"x":25992.611510484803,"y":27167.713957586413},"targetPosition":{"x":24965.720035087907,"y":27442.868699133414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"f06c2d68-11d4-40e0-99df-43a758ca0123","savedPayload":{"position":{"x":24965.720035087907,"y":27442.868699133414},"targetPosition":{"x":23938.82855969101,"y":27718.023440680416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 50 End","project":"Superalgos","id":"baf11fde-1f46-4e77-a8fe-d19a3ee8a4b2","savedPayload":{"position":{"x":23418.503308810636,"y":28619.253211666248},"targetPosition":{"x":23938.82855969101,"y":27718.023440680416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 50 End","id":"084b4468-49d2-4ad2-a716-ebc338c34248"}}},{"type":"Polygon Vertex","name":"SMA 50 Begin","project":"Superalgos","id":"bb6ef8cd-1473-4200-9c0e-35b5eab40259","savedPayload":{"position":{"x":23413.58172579006,"y":26808.269237849283},"targetPosition":{"x":23938.82855969101,"y":27718.023440680416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 50 Begin","id":"00efabf8-701d-44b1-a590-b8399149dfbb"}}}],"id":"c867bef2-aa91-4753-9b27-68f88d42370e","savedPayload":{"position":{"x":23938.82855969101,"y":27718.023440680416},"targetPosition":{"x":23663.67381814401,"y":26691.13196528352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 100","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b03ef9cb-fef3-4a54-bf5a-a85528fa2699","savedPayload":{"position":{"x":24726.790102488583,"y":28194.60543298331},"targetPosition":{"x":23663.67381814401,"y":28194.60543298331},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"baf25122-e7de-4283-b638-cfe2766220ac","savedPayload":{"position":{"x":23663.67381814401,"y":28194.60543298331},"targetPosition":{"x":22911.937084294113,"y":27442.868699133414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 100 Begin","project":"Superalgos","id":"8657980b-1796-4291-bba6-87520122b302","savedPayload":{"position":{"x":22376.411864886526,"y":28370.425587881826},"targetPosition":{"x":22911.937084294113,"y":27442.868699133414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 100 Begin","id":"bbacba1b-6b2d-48b7-a440-986a04c61858"}}},{"type":"Polygon Vertex","name":"SMA 100 End","project":"Superalgos","id":"45403abf-a4b1-4f8a-9d18-8ee72fef1792","savedPayload":{"position":{"x":22385.834818586787,"y":26531.632844951226},"targetPosition":{"x":22911.937084294113,"y":27442.868699133414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 100 End","id":"270a8be8-ad51-4061-abe1-a4c7234eb88a"}}}],"id":"7473f9b9-7737-4ee1-8418-39b96d8365c3","savedPayload":{"position":{"x":22911.937084294113,"y":27442.868699133414},"targetPosition":{"x":23663.67381814401,"y":26691.13196528352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 200","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"9475aa23-1561-45f6-8129-9d7ffaf0bb22","savedPayload":{"position":{"x":22086.47285965311,"y":28469.76017453031},"targetPosition":{"x":22361.62760120011,"y":27442.868699133414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9007d9ad-f2b5-45fb-a7b3-b9579c74866d","savedPayload":{"position":{"x":22361.62760120011,"y":27442.868699133414},"targetPosition":{"x":22636.782342747112,"y":26415.977223736518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 200 Begin","project":"Superalgos","id":"0b3d001b-060a-4d72-94e7-d8e9f76ef1ae","savedPayload":{"position":{"x":22111.590881013457,"y":27325.635519160573},"targetPosition":{"x":22636.782342747112,"y":26415.977223736518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 200 Begin","id":"cd242031-8d7a-4cee-a680-156b0be7c7c7"}}},{"type":"Polygon Vertex","name":"SMA 200 End","project":"Superalgos","id":"178f2776-a5db-4cb9-b8c7-11ecb471bf12","savedPayload":{"position":{"x":22104.664988823704,"y":25494.322931152066},"targetPosition":{"x":22636.782342747112,"y":26415.977223736518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 200 End","id":"328b048e-eb4a-4a02-ad95-a17cd170c4a7"}}}],"id":"5dbe47bb-9414-4edd-be08-5ab50755a852","savedPayload":{"position":{"x":22636.782342747112,"y":26415.977223736518},"targetPosition":{"x":23663.67381814401,"y":26691.13196528352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"340dc986-ccc9-4b47-ac54-294187daa2e0","savedPayload":{"position":{"x":24174,"y":25738.211431703},"targetPosition":{"x":24174,"y":25288.211431703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Popular SMA","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"SMA 20","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma20","project":"Superalgos","id":"4f901876-b274-426e-9755-529b6241890d","savedPayload":{"position":{"x":24453.11891122666,"y":26115.428977425974},"targetPosition":{"x":24118.70373976183,"y":25814.320204564487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"57d75985-febe-441b-be12-31f5eb10881b","savedPayload":{"position":{"x":24118.70373976183,"y":25814.320204564487},"targetPosition":{"x":23784.288568297,"y":25513.211431703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 50","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma50","project":"Superalgos","id":"dc2d66e9-8dc1-4092-bfa8-e147c7cf7226","savedPayload":{"position":{"x":23418.22558952878,"y":26335.402343581343},"targetPosition":{"x":23601.257078912895,"y":25924.30688764217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"74e3faab-246a-4c05-ae0a-b68f2095aa73","savedPayload":{"position":{"x":23601.257078912895,"y":25924.30688764217},"targetPosition":{"x":23784.288568297,"y":25513.211431703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 100","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma100","project":"Superalgos","id":"1b045b3c-13a9-4091-a804-0040340cf1be","savedPayload":{"position":{"x":22889.218862465554,"y":25419.135814762114},"targetPosition":{"x":23336.75371538128,"y":25466.173623232557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f46c7caf-8907-4cc4-b048-efe691a24049","savedPayload":{"position":{"x":23336.75371538128,"y":25466.173623232557},"targetPosition":{"x":23784.288568297,"y":25513.211431703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 200","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma200","project":"Superalgos","id":"ef7a7e7d-dec3-4da6-9646-d087e03b7a71","savedPayload":{"position":{"x":23597.16804656102,"y":24632.878591042572},"targetPosition":{"x":23690.72830742901,"y":25073.045011372786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e1108c8-e8a4-4ae8-b6b1-765c4292580a","savedPayload":{"position":{"x":23690.72830742901,"y":25073.045011372786},"targetPosition":{"x":23784.288568297,"y":25513.211431703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7fc74763-c245-4b23-8121-7fe0d1e8e1db","savedPayload":{"position":{"x":23784.288568297,"y":25513.211431703},"targetPosition":{"x":24174,"y":25288.211431703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ddf21e96-c312-4ebe-9e2b-f56e8ea072aa","savedPayload":{"position":{"x":24174,"y":25288.211431703},"targetPosition":{"x":24399,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"SMA Base 11","config":"{\n\t\"codeName\": \"SMA-Base11\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"SMA 11 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma11","project":"Superalgos","id":"ab8c79b6-26ed-436e-a9ed-5581e48403a9","savedPayload":{"position":{"x":23445.5083098748,"y":25450.360296932613},"targetPosition":{"x":23606.67371348075,"y":25567.923348870663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"77d02772-853e-4e30-9efe-7bea8e829d51","savedPayload":{"position":{"x":23606.67371348075,"y":25567.923348870663},"targetPosition":{"x":23768.069252136396,"y":25685.304503096788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 11 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma11","project":"Superalgos","id":"e7f8c6de-4085-4886-ad93-c207274eb90c","savedPayload":{"position":{"x":23624.079356183567,"y":25313.034435657217},"targetPosition":{"x":23696.045383916804,"y":25499.22032217218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"185ca2e7-b561-4ce4-b219-bd54496885b5","savedPayload":{"position":{"x":23696.045383916804,"y":25499.22032217218},"targetPosition":{"x":23768.069252136396,"y":25685.304503096788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 22 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma22","project":"Superalgos","id":"0c62dd54-916a-4187-be47-0715604a0632","savedPayload":{"position":{"x":23848.007725926338,"y":25294.37553961372},"targetPosition":{"x":23808.053786176108,"y":25489.866137276316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"08b23cb2-cf78-48ae-bd9a-efe0e8df4578","savedPayload":{"position":{"x":23808.053786176108,"y":25489.866137276316},"targetPosition":{"x":23768.069252136396,"y":25685.304503096788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 22 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma22","project":"Superalgos","id":"f1d537b7-09a0-4031-8565-02ea33b66261","savedPayload":{"position":{"x":24046.907072875485,"y":25400.097771339548},"targetPosition":{"x":23907.503965761352,"y":25542.69500258446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3871971f-7f4b-49a0-a0d7-b1d08a4db951","savedPayload":{"position":{"x":23907.503965761352,"y":25542.69500258446},"targetPosition":{"x":23768.069252136396,"y":25685.304503096788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 33 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma33","project":"Superalgos","id":"5cbdb800-4b2b-49e6-a8ef-678587ecd626","savedPayload":{"position":{"x":24157.173875543605,"y":25596.58591677463},"targetPosition":{"x":23962.63757892078,"y":25640.93085089134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2734c9f2-1347-4b5b-8dbf-f7f42eb2c810","savedPayload":{"position":{"x":23962.63757892078,"y":25640.93085089134},"targetPosition":{"x":23768.069252136396,"y":25685.304503096788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 33 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma33","project":"Superalgos","id":"d7051dab-455d-4d02-8e0b-59139c3546d3","savedPayload":{"position":{"x":24237.33632428876,"y":25854.61300971745},"targetPosition":{"x":23955.953365227422,"y":25753.121812939717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"id":"ce242fe6-2b52-4b89-a203-ce398b3545fd","savedPayload":{"position":{"x":23955.953365227422,"y":25753.121812939717},"targetPosition":{"x":23768.069252136396,"y":25685.304503096788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 55 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma55","project":"Superalgos","id":"2c8a5860-2c8c-4a04-b0aa-d353817d3dab","savedPayload":{"position":{"x":24010.940652631223,"y":26002.736362537966},"targetPosition":{"x":23889.50565223263,"y":25844.011539800696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bdc5f0cf-2c2f-466c-963b-19d81a13b532","savedPayload":{"position":{"x":23889.50565223263,"y":25844.011539800696},"targetPosition":{"x":23768.069252136396,"y":25685.304503096788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 55 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma55","project":"Superalgos","id":"62dfcbf0-e773-41db-80e0-bf46d47d977f","savedPayload":{"position":{"x":23800.894030995943,"y":26083.862713210103},"targetPosition":{"x":23784.469476249214,"y":25884.563824285586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2e58c59-c5d7-4b42-bb66-f012da23c12a","savedPayload":{"position":{"x":23784.469476249214,"y":25884.563824285586},"targetPosition":{"x":23768.069252136396,"y":25685.304503096788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 111 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma111","project":"Superalgos","id":"b496251d-8005-4d21-9be0-1dec58cb58ba","savedPayload":{"position":{"x":23580.73971773342,"y":26038.449581388668},"targetPosition":{"x":23674.365303451275,"y":25861.843930618154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"62ed1060-3233-4175-a4cc-8ad04a123105","savedPayload":{"position":{"x":23674.365303451275,"y":25861.843930618154},"targetPosition":{"x":23768.069252136396,"y":25685.304503096788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 11 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma111","project":"Superalgos","id":"3e765b91-17a0-4b30-bcfb-d7491afa9635","savedPayload":{"position":{"x":23419.740156004467,"y":25880.754186477632},"targetPosition":{"x":23593.802148028837,"y":25782.93547409018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bdee0fe7-c635-483d-b547-6271410cc35a","savedPayload":{"position":{"x":23593.802148028837,"y":25782.93547409018},"targetPosition":{"x":23768.069252136396,"y":25685.304503096788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"853ae08f-85ed-48e9-82d9-7f00184ff7e7","savedPayload":{"position":{"x":23768.069252136396,"y":25685.304503096788},"targetPosition":{"x":22774.661212586474,"y":25632.78900029543},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 11","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"a36a0be4-c3be-4e17-8459-ce24d08c60d4","savedPayload":{"position":{"x":22890.48775306603,"y":26275.999175299065},"targetPosition":{"x":22846.928225986412,"y":26149.822365615928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bc76dbe0-28fe-4811-b396-583cc810ad8c","savedPayload":{"position":{"x":22846.928225986412,"y":26149.822365615928},"targetPosition":{"x":22759.65953923653,"y":25898.339825148945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 11 Begin","project":"Superalgos","id":"007b0aa7-d129-4b66-97b1-a223b61465a9","savedPayload":{"position":{"x":22744.1477828529,"y":26164.291555392167},"targetPosition":{"x":22759.65953923653,"y":25898.339825148945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 11 Begin","id":"77d02772-853e-4e30-9efe-7bea8e829d51"}}},{"type":"Polygon Vertex","name":"SMA 11 End","project":"Superalgos","id":"8bf6c449-35d6-44c0-ac25-0da059e0c7d0","savedPayload":{"position":{"x":22677.171121517895,"y":26147.95400637928},"targetPosition":{"x":22759.65953923653,"y":25898.339825148945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 11 End","id":"185ca2e7-b561-4ce4-b219-bd54496885b5"}}}],"id":"82eff706-25ff-45ba-b066-0f20b64e26e1","savedPayload":{"position":{"x":22759.65953923653,"y":25898.339825148945},"targetPosition":{"x":22774.661212586474,"y":25632.78900029543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 22","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"48b5e69c-d187-40f8-aee9-89f02ac7b442","savedPayload":{"position":{"x":22580.132009350342,"y":26257.65744555869},"targetPosition":{"x":22595.698838350872,"y":26124.749422563986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"13b6ae03-77c1-473a-9cd9-eee42cab5005","savedPayload":{"position":{"x":22595.698838350872,"y":26124.749422563986},"targetPosition":{"x":22645.41945391903,"y":25865.21200088052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 22 End","project":"Superalgos","id":"5101118b-d0b2-46b3-b752-c1e8f3e09842","savedPayload":{"position":{"x":22504.34914560704,"y":26096.5372002741},"targetPosition":{"x":22645.41945391903,"y":25865.21200088052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 22 End","id":"3871971f-7f4b-49a0-a0d7-b1d08a4db951"}}},{"type":"Polygon Vertex","name":"SMA 22 Begin","project":"Superalgos","id":"5d1290b9-98c2-4925-9da4-fcdf50d13c5b","savedPayload":{"position":{"x":22460.689016380984,"y":26052.185106619963},"targetPosition":{"x":22645.41945391903,"y":25865.21200088052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 22 Begin","id":"08b23cb2-cf78-48ae-bd9a-efe0e8df4578"}}}],"id":"b7186c69-0a02-4820-bb58-1e2cee5790b3","savedPayload":{"position":{"x":22645.41945391903,"y":25865.21200088052},"targetPosition":{"x":22774.661212586474,"y":25632.78900029543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 33","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"a8183072-9dc8-4f7c-b72b-742477e4c8fd","savedPayload":{"position":{"x":22326.75121693219,"y":26110.098926388553},"targetPosition":{"x":22398.562563740925,"y":25997.128959494486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"98a87528-cb66-4e15-a3b0-aadb8d25fcec","savedPayload":{"position":{"x":22398.562563740925,"y":25997.128959494486},"targetPosition":{"x":22557.19830749089,"y":25785.84705202662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 33 End","project":"Superalgos","id":"242e470b-2971-40b2-9f06-a95bf95e23fc","savedPayload":{"position":{"x":22329.0028165134,"y":25932.598216798764},"targetPosition":{"x":22557.19830749089,"y":25785.84705202662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 33 End","id":"ce242fe6-2b52-4b89-a203-ce398b3545fd"}}},{"type":"Polygon Vertex","name":"SMA 33 Begin","project":"Superalgos","id":"106e4253-deab-440c-828a-ea55aea78c97","savedPayload":{"position":{"x":22309.435476663653,"y":25873.900214021392},"targetPosition":{"x":22557.19830749089,"y":25785.84705202662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 33 Begin","id":"2734c9f2-1347-4b5b-8dbf-f7f42eb2c810"}}}],"id":"53f19bad-dcb0-476f-8b32-0d332d1ad130","savedPayload":{"position":{"x":22557.19830749089,"y":25785.84705202662},"targetPosition":{"x":22774.661212586474,"y":25632.78900029543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 55","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"ea853676-6bdc-4723-a515-1a4c683fa1fa","savedPayload":{"position":{"x":22164.037404208662,"y":25867.926312386917},"targetPosition":{"x":22277.775655847134,"y":25797.36704582367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1fd3b244-b5ae-4a96-add5-50b228eac931","savedPayload":{"position":{"x":22277.775655847134,"y":25797.36704582367},"targetPosition":{"x":22512.249882299642,"y":25676.013162289895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 55 End","project":"Superalgos","id":"c0102a15-8594-4582-9714-75e555e3f2ac","savedPayload":{"position":{"x":22242.84484018818,"y":25709.197144070848},"targetPosition":{"x":22512.249882299642,"y":25676.013162289895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 55 End","id":"d2e58c59-c5d7-4b42-bb66-f012da23c12a"}}},{"type":"Polygon Vertex","name":"SMA 55 Begin","project":"Superalgos","id":"aa781190-aa71-4407-bc72-db67ffd67c7e","savedPayload":{"position":{"x":22250.774928253602,"y":25647.827061636737},"targetPosition":{"x":22512.249882299642,"y":25676.013162289895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 55 Begin","id":"bdc5f0cf-2c2f-466c-963b-19d81a13b532"}}}],"id":"8341d899-4df1-47f8-8e0d-bb87b76ed622","savedPayload":{"position":{"x":22512.249882299642,"y":25676.013162289895},"targetPosition":{"x":22774.661212586474,"y":25632.78900029543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 111","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"85056d46-5dd2-4dc2-9c40-55ef936aeea8","savedPayload":{"position":{"x":22123.07726353102,"y":25579.33438479624},"targetPosition":{"x":22256.04302955145,"y":25565.183762782923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bd5b197d-7425-461d-a2ab-5ad6446d00ee","savedPayload":{"position":{"x":22256.04302955145,"y":25565.183762782923},"targetPosition":{"x":22519.60724327549,"y":25557.472874616582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 11 End","project":"Superalgos","id":"fbd2d02d-d58e-4d04-a5a6-9bbc6e877244","savedPayload":{"position":{"x":22262.362041083237,"y":25470.52413326329},"targetPosition":{"x":22519.60724327549,"y":25557.472874616582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 11 End","id":"bdee0fe7-c635-483d-b547-6271410cc35a"}}},{"type":"Polygon Vertex","name":"SMA 111 Begin","project":"Superalgos","id":"e79d988b-7d4a-4201-839a-a95f99dc26fe","savedPayload":{"position":{"x":22315.883201443183,"y":25384.882411733917},"targetPosition":{"x":22519.60724327549,"y":25557.472874616582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 111 Begin","id":"62ed1060-3233-4175-a4cc-8ad04a123105"}}}],"id":"5745a180-5f94-4109-b8e5-41b2c21e9f1a","savedPayload":{"position":{"x":22519.60724327549,"y":25557.472874616582},"targetPosition":{"x":22774.661212586474,"y":25632.78900029543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"ade8af76-e9e6-4dda-8921-c3c5cc8a0ecc","savedPayload":{"position":{"x":22774.661212586474,"y":25632.78900029543},"targetPosition":{"x":23129.470722161208,"y":25238.599780812794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"SMA Base 11","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"SMA 11","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma11","project":"Superalgos","id":"bce6e5ba-e93b-4c0f-9013-db467727e721","savedPayload":{"position":{"x":21753.153980629722,"y":25341.535805839143},"targetPosition":{"x":21931.295278037138,"y":25144.02691207743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f4794965-6a35-4289-9e0e-718b931028de","savedPayload":{"position":{"x":21931.295278037138,"y":25144.02691207743},"targetPosition":{"x":22109.21905775678,"y":24946.434334556972},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 22","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma22","project":"Superalgos","id":"e8837d50-025b-4bbc-8199-328df7afbdda","savedPayload":{"position":{"x":21603.055463046094,"y":25110.598837456517},"targetPosition":{"x":21856.1762857388,"y":25028.52622810222},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2b4712d6-5952-4bd0-bcac-7d396d95f842","savedPayload":{"position":{"x":21856.1762857388,"y":25028.52622810222},"targetPosition":{"x":22109.21905775678,"y":24946.434334556972},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 33","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma33","project":"Superalgos","id":"825bc681-cb31-4d26-85af-4f692538fc9d","savedPayload":{"position":{"x":21588.646167340787,"y":24836.008015086445},"targetPosition":{"x":21848.967106822984,"y":24891.211467813333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"377ff3cb-9d7b-45aa-a2c1-3cabf3540c8e","savedPayload":{"position":{"x":21848.967106822984,"y":24891.211467813333},"targetPosition":{"x":22109.21905775678,"y":24946.434334556972},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 55","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma55","project":"Superalgos","id":"24c4a804-6686-43ab-a664-db08d860034c","savedPayload":{"position":{"x":21713.735836870415,"y":24590.641283971185},"targetPosition":{"x":21911.53145760585,"y":24768.51299335729},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4b0485d9-4d37-4402-939b-eb878c6750ec","savedPayload":{"position":{"x":21911.53145760585,"y":24768.51299335729},"targetPosition":{"x":22109.21905775678,"y":24946.434334556972},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 111","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma111","project":"Superalgos","id":"3d21e771-7edd-4460-aa23-da3c7880a629","savedPayload":{"position":{"x":21944.909788750796,"y":24440.82162801966},"targetPosition":{"x":22027.20082305592,"y":24693.5591871556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"738b01bd-a4da-4f90-a816-c021eeb81030","savedPayload":{"position":{"x":22027.20082305592,"y":24693.5591871556},"targetPosition":{"x":22109.21905775678,"y":24946.434334556972},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fc702308-8514-4e8d-85d3-5d052aad782c","savedPayload":{"position":{"x":22109.21905775678,"y":24946.434334556972},"targetPosition":{"x":23129.470722161208,"y":25238.599780812794},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4a61ac35-a1ae-40f4-b3da-f81ae796ee00","savedPayload":{"position":{"x":23814.432852445505,"y":25236},"targetPosition":{"x":24399,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"SMA Base 7","config":"{\n\t\"codeName\": \"SMA-Base7\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"SMA 7 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma7","project":"Superalgos","id":"b459dee1-24d0-4794-9c4d-d9c58972f6e6","savedPayload":{"position":{"x":21986.784924702,"y":26397.24938048172},"targetPosition":{"x":22337.75557148565,"y":26795.63924213095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8d6e2d59-fe23-4ba5-ad87-d9d15ad60340","savedPayload":{"position":{"x":22337.75557148565,"y":26795.63924213095},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 7 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma7","project":"Superalgos","id":"3994ef79-ab0b-4552-bbde-f754a86f2e04","savedPayload":{"position":{"x":22228.156051004677,"y":26237.484612712058},"targetPosition":{"x":22458.481546853964,"y":26715.656312869425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a95fee99-4a06-44d7-a6c4-0eea9ccec4d9","savedPayload":{"position":{"x":22458.481546853964,"y":26715.656312869425},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 14 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma14","project":"Superalgos","id":"40d386cb-84a9-49b0-b28e-3d39e9e274cb","savedPayload":{"position":{"x":22503.750355453365,"y":26148.698561797813},"targetPosition":{"x":22596.25520186743,"y":26671.235071593208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c6d631e7-8cd0-4ccd-b7b4-90b8dda615d8","savedPayload":{"position":{"x":22596.25520186743,"y":26671.235071593208},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 21 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma21","project":"Superalgos","id":"6d2cd604-9a38-4ab7-b19d-9e9e3ae8ad25","savedPayload":{"position":{"x":22792.569855147005,"y":26137.36575595188},"targetPosition":{"x":22740.69260748118,"y":26665.617129828435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4f1044fa-67dd-42dc-ba74-61e299e1f1e1","savedPayload":{"position":{"x":22740.69260748118,"y":26665.617129828435},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 21 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma21","project":"Superalgos","id":"1de80488-5eeb-491c-bd5f-e5bd7569dc59","savedPayload":{"position":{"x":23074.024877046373,"y":26204.5080221996},"targetPosition":{"x":22881.463135209062,"y":26699.22754928417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"df7e58c1-c042-443b-bfd3-69d57894d358","savedPayload":{"position":{"x":22881.463135209062,"y":26699.22754928417},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 28 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma28","project":"Superalgos","id":"93b50d69-b003-4590-b098-ff59dc226e22","savedPayload":{"position":{"x":23326.89577994574,"y":26345.123075993764},"targetPosition":{"x":23007.937642873218,"y":26769.561116692617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7bd742dd-7c4c-4dfe-9415-e655a5e1cc88","savedPayload":{"position":{"x":23007.937642873218,"y":26769.561116692617},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 28 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma28","project":"Superalgos","id":"36ddca01-d7c2-44e4-bac6-1efd92721b56","savedPayload":{"position":{"x":23532.44160627121,"y":26548.77853408365},"targetPosition":{"x":23110.73773651831,"y":26871.414500421215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7678774b-b068-4757-962b-8e126342898a","savedPayload":{"position":{"x":23110.73773651831,"y":26871.414500421215},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 35 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma35","project":"Superalgos","id":"e631b84b-646b-41f7-b87b-7cb4fbf8ac76","savedPayload":{"position":{"x":23675.409092560716,"y":26800.3478895262},"targetPosition":{"x":23182.232270195756,"y":26997.22515916036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"93613bd9-2dbb-493c-a72e-414b0398733e","savedPayload":{"position":{"x":23182.232270195756,"y":26997.22515916036},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 35 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma35","project":"Superalgos","id":"89e3900f-eeaf-47cb-97f6-9093b2f39811","savedPayload":{"position":{"x":23745.209120500065,"y":27081.173218773085},"targetPosition":{"x":23217.140663345843,"y":27137.668428304984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f620fdbe-48b5-4831-995d-b3c721738d1b","savedPayload":{"position":{"x":23217.140663345843,"y":27137.668428304984},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 70 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma70","project":"Superalgos","id":"cacaceaf-b19d-4b2a-81b3-5ac6b44877b7","savedPayload":{"position":{"x":23736.65384852964,"y":27370.010721047118},"targetPosition":{"x":23212.86362405315,"y":27282.113460395904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9e506a85-5f72-4a3f-a773-cd85d8b15f21","savedPayload":{"position":{"x":23212.856629087782,"y":27282.109735730493},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 70 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma70","project":"Superalgos","id":"8658d660-52c4-41f8-b423-db569ff19941","savedPayload":{"position":{"x":23650.359553141967,"y":27646.21443226562},"targetPosition":{"x":23169.7079698243,"y":27420.241610673074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8392e1ff-33a6-4b95-baad-3f146bd3c121","savedPayload":{"position":{"x":23169.711877845704,"y":27420.248441146625},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 140 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma140","project":"Superalgos","id":"a56e674e-ec4f-4448-a8bc-bfbc3a02eea4","savedPayload":{"position":{"x":23492.738418912675,"y":27888.902299087855},"targetPosition":{"x":23090.88086641848,"y":27541.608039642528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"39e65adb-6125-4e9a-8f15-5403b21aac40","savedPayload":{"position":{"x":23090.89307466219,"y":27541.610397587378},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 140 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma140","project":"Superalgos","id":"9aeb4594-c7e0-41e1-83b3-8df31b0d44b0","savedPayload":{"position":{"x":23275.495274506862,"y":28080.0779385582},"targetPosition":{"x":22982.244481526268,"y":27637.21960086305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7559cbf5-acba-4a60-91b4-d95f90293f22","savedPayload":{"position":{"x":22982.236997047443,"y":27637.22593443824},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 210 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma210","project":"Superalgos","id":"8856ee41-b264-4468-9dac-eb808b483df3","savedPayload":{"position":{"x":23014.69945096927,"y":28205.53561513008},"targetPosition":{"x":22851.82079692318,"y":27699.966535776955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"479df802-576f-45f1-8322-6b2e493c5ecc","savedPayload":{"position":{"x":22851.83319501053,"y":27699.96607819945},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 210 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma210","project":"Superalgos","id":"f4fa8a22-fe87-4174-bf51-cb574381ca0d","savedPayload":{"position":{"x":22729.73606976784,"y":28255.99064094411},"targetPosition":{"x":22709.310573768165,"y":27725.196962221653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"45a926f2-4bb2-4562-b40f-bd2532ff1d10","savedPayload":{"position":{"x":22709.31406092312,"y":27725.18565872822},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 280 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma280","project":"Superalgos","id":"49f183b2-f8d1-4055-947d-291b7787d846","savedPayload":{"position":{"x":22442.131612099245,"y":28227.708010731636},"targetPosition":{"x":22565.480715422385,"y":27711.05519458715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d5e455bf-bb27-41fa-ba41-c8e7d0aa4d5e","savedPayload":{"position":{"x":22565.491735764223,"y":27711.05762227205},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 280 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma280","project":"Superalgos","id":"012f6580-f9e9-47f6-b6f4-82598b8e8aa7","savedPayload":{"position":{"x":22172.421872262126,"y":28122.77467288487},"targetPosition":{"x":22430.60214945525,"y":27658.572071176033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"298d0ca9-1b4a-48d8-8efe-fda6b2fc2c34","savedPayload":{"position":{"x":22430.61579953118,"y":27658.575922160864},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 350 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma350","project":"Superalgos","id":"4a3f6588-26e3-446b-ac4e-54ad3bc9ef3c","savedPayload":{"position":{"x":21941.031361206067,"y":27948.96770217476},"targetPosition":{"x":22314.888061803547,"y":27571.65269237189},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f3c05d30-da2e-449e-8471-dcc216f4e630","savedPayload":{"position":{"x":22314.902229464,"y":27571.651041020235},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 350 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma350","project":"Superalgos","id":"1157762f-1236-43b1-a399-06d59a992d55","savedPayload":{"position":{"x":21765.123025965684,"y":27719.179326611753},"targetPosition":{"x":22226.92413500168,"y":27456.734954953154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d6598381-9b15-4cb3-afba-b85ed6770ce3","savedPayload":{"position":{"x":22226.92861677674,"y":27456.722849063673},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"New Point","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.propertyA","project":"Superalgos","id":"24151ce9-3ecb-4c6b-97e5-41a8a95b45a8","savedPayload":{"position":{"x":21657.733064158605,"y":27450.441143718384},"targetPosition":{"x":22173.2216946555,"y":27322.333259857547},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"30f77a0a-81fd-4498-8510-cfca20b6b1d8","savedPayload":{"position":{"x":22173.218801722323,"y":27322.339963511884},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"New Point","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.propertyA","project":"Superalgos","id":"0da81a21-3169-44c7-a896-17eb32bdfa17","savedPayload":{"position":{"x":21626.831093229186,"y":27163.10497180119},"targetPosition":{"x":22157.773189916683,"y":27178.62722120268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6fd2e88e-f5e1-45d5-8baf-4bc724bf2bae","savedPayload":{"position":{"x":22157.773189916683,"y":27178.62722120268},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 14 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma14","project":"Superalgos","id":"78e7fbfb-c210-44b6-8399-1567f81c73c9","savedPayload":{"position":{"x":21674.748283832396,"y":26877.622563948233},"targetPosition":{"x":22181.75425740549,"y":27035.815157661258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d5f823d6-8b99-44b5-99dc-04724a531323","savedPayload":{"position":{"x":22181.75425740549,"y":27035.815157661258},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e561ee2d-8458-4001-8904-61cd2a3a815e","savedPayload":{"position":{"x":22688.887077774216,"y":27194.183794825934},"targetPosition":{"x":22725.068857629147,"y":25075.79453123554},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 7","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"38522e0c-85c4-49ae-93ac-9a04470855e0","savedPayload":{"position":{"x":22314.770617055005,"y":25906.55589651838},"targetPosition":{"x":22363.923905599433,"y":25782.56489748551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"fcc0c4b0-28ea-4482-8da8-16a0c88c1e52","savedPayload":{"position":{"x":22363.923905599433,"y":25782.56489748551},"targetPosition":{"x":22436.34268778964,"y":25521.989015152198},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 7 End","project":"Superalgos","id":"f11dbba2-2bd3-4d0a-a182-2ef78a492d32","savedPayload":{"position":{"x":22288.962375009774,"y":25761.908436867274},"targetPosition":{"x":22436.34268778964,"y":25521.989015152198},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 7 End","id":"a95fee99-4a06-44d7-a6c4-0eea9ccec4d9"}}},{"type":"Polygon Vertex","name":"SMA 7 Begin","project":"Superalgos","id":"c50700bc-305d-4cb6-b1bf-1c03c7459d2b","savedPayload":{"position":{"x":22241.007843766678,"y":25691.69360185358},"targetPosition":{"x":22436.34268778964,"y":25521.989015152198},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 7 Begin","id":"8d6e2d59-fe23-4ba5-ad87-d9d15ad60340"}}}],"id":"62ad882d-f16d-4476-8c17-0f6e2d6e2b76","savedPayload":{"position":{"x":22436.34268778964,"y":25521.989015152198},"targetPosition":{"x":22725.068857629147,"y":25075.79453123554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 14","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"14a21030-fa6b-44ef-8cb2-e4f3cb79126e","savedPayload":{"position":{"x":22099.70274280228,"y":25766.271272998692},"targetPosition":{"x":22179.69029389717,"y":25659.083630631703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ca2fa8f2-f6a1-4084-8606-a35495dfd596","savedPayload":{"position":{"x":22179.69029389717,"y":25659.083630631703},"targetPosition":{"x":22330.410272503934,"y":25431.696434957837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 14 Begin","project":"Superalgos","id":"e7d170e8-3d4f-4a55-883a-3a3394fef2af","savedPayload":{"position":{"x":22126.676180587598,"y":25622.772664444954},"targetPosition":{"x":22330.410272503934,"y":25431.696434957837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 14 Begin","id":"d5f823d6-8b99-44b5-99dc-04724a531323"}}},{"type":"Polygon Vertex","name":"SMA 14 End","project":"Superalgos","id":"2383789a-4600-4b8b-a49b-51cbeb46d4f1","savedPayload":{"position":{"x":22096.544921537843,"y":25544.76560295121},"targetPosition":{"x":22330.410272503934,"y":25431.696434957837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 14 End","id":"c6d631e7-8cd0-4ccd-b7b4-90b8dda615d8"}}}],"id":"ab179cef-53c3-46f7-a83b-af29ccd8bc90","savedPayload":{"position":{"x":22330.410272503934,"y":25431.696434957837},"targetPosition":{"x":22725.068857629147,"y":25075.79453123554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 21","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"f8f0733e-0890-4d54-8d77-1b1fc8b8c92b","savedPayload":{"position":{"x":21941.318695654227,"y":25580.287180549756},"targetPosition":{"x":22046.49271687942,"y":25497.470772313536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"a0f2de63-1abd-4945-9c8c-84e21fd121e0","savedPayload":{"position":{"x":22046.49271687942,"y":25497.470772313536},"targetPosition":{"x":22251.643563601778,"y":25317.248869543433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 21 End","project":"Superalgos","id":"69c3f249-07bf-4a03-b8a1-9d74d0255f23","savedPayload":{"position":{"x":22004.89006699828,"y":25448.775446559903},"targetPosition":{"x":22251.643563601778,"y":25317.248869543433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 21 End","id":"df7e58c1-c042-443b-bfd3-69d57894d358"}}},{"type":"Polygon Vertex","name":"SMA 21 Begin","project":"Superalgos","id":"959961b9-9bf9-48ce-9ee0-08d2d6a62b8e","savedPayload":{"position":{"x":21996.78006835395,"y":25365.6278349347},"targetPosition":{"x":22251.643563601778,"y":25317.248869543433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 21 Begin","id":"4f1044fa-67dd-42dc-ba74-61e299e1f1e1"}}}],"id":"9a17429f-8213-4a7e-8167-dc36d761973e","savedPayload":{"position":{"x":22251.643563601778,"y":25317.248869543433},"targetPosition":{"x":22725.068857629147,"y":25075.79453123554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 28","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"713c60e9-ee11-4551-ab62-58ce9c16e066","savedPayload":{"position":{"x":21836.885595729367,"y":25360.04600690659},"targetPosition":{"x":21959.969313954585,"y":25307.323855475737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"725a4d2f-0838-4d78-a8fa-a2b129feda2f","savedPayload":{"position":{"x":21959.969313954585,"y":25307.323855475737},"targetPosition":{"x":22205.209141498788,"y":25186.35660182873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 28 Begin","project":"Superalgos","id":"f4c161f4-6510-47a2-97f7-3f9f848d9892","savedPayload":{"position":{"x":21932.87253669335,"y":25249.452641088472},"targetPosition":{"x":22205.209141498788,"y":25186.35660182873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 28 Begin","id":"7bd742dd-7c4c-4dfe-9415-e655a5e1cc88"}}},{"type":"Polygon Vertex","name":"SMA 28 End","project":"Superalgos","id":"b1b22a6f-0a69-401f-90ea-2306baee0ea2","savedPayload":{"position":{"x":21946.388856141577,"y":25167.197793860338},"targetPosition":{"x":22205.209141498788,"y":25186.35660182873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 28 End","id":"7678774b-b068-4757-962b-8e126342898a"}}}],"id":"4f6e0c60-00a8-4a76-b1b1-4eaa25c5824c","savedPayload":{"position":{"x":22205.209141498788,"y":25186.35660182873},"targetPosition":{"x":22725.068857629147,"y":25075.79453123554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 35","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"73f591c5-286b-4441-aa59-f647f738e40e","savedPayload":{"position":{"x":21662.04680464002,"y":25139.51994537515},"targetPosition":{"x":21925.75239294638,"y":25101.402748852826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2c56cb10-43c9-447b-8b8a-30dae8e7fab8","savedPayload":{"position":{"x":21925.75239294638,"y":25101.402748852826},"targetPosition":{"x":22194.294676208432,"y":25048.12585987751},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 35 End","project":"Superalgos","id":"3ad24108-1339-4c6d-abc6-27a9aa5bc046","savedPayload":{"position":{"x":21915.170778647116,"y":25038.635441699207},"targetPosition":{"x":22194.294676208432,"y":25048.12585987751},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 35 End","id":"f620fdbe-48b5-4831-995d-b3c721738d1b"}}},{"type":"Polygon Vertex","name":"SMA 35 Begin","project":"Superalgos","id":"abfdefe3-b9d4-4816-b2cc-7aa64bb69734","savedPayload":{"position":{"x":21949.020686022537,"y":24962.516093387832},"targetPosition":{"x":22194.294676208432,"y":25048.12585987751},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 35 Begin","id":"93613bd9-2dbb-493c-a72e-414b0398733e"}}}],"id":"a8a09eca-7bee-4f17-b7db-1f43f419441c","savedPayload":{"position":{"x":22194.294676208432,"y":25048.12585987751},"targetPosition":{"x":22725.068857629147,"y":25075.79453123554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 70","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"9ac33f9d-bce7-407a-8de9-3334bb263b69","savedPayload":{"position":{"x":21682.027916077735,"y":24862.457674107376},"targetPosition":{"x":21946.610044076828,"y":24893.698384931788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ea184e1f-5a0f-4ed3-b3ed-6ba18e7237f9","savedPayload":{"position":{"x":21946.610044076828,"y":24893.698384931788},"targetPosition":{"x":22219.581842827207,"y":24911.646243849904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 70 Begin","project":"Superalgos","id":"5505dd50-5ad7-48fc-9256-14cab581d92f","savedPayload":{"position":{"x":21952.44719472421,"y":24830.29108547712},"targetPosition":{"x":22219.581842827207,"y":24911.646243849904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 70 Begin","id":"9e506a85-5f72-4a3f-a773-cd85d8b15f21"}}},{"type":"Polygon Vertex","name":"SMA 70 End","project":"Superalgos","id":"b255b251-b73a-469c-a41f-e273d2909af2","savedPayload":{"position":{"x":22004.75809763867,"y":24765.43902550588},"targetPosition":{"x":22219.581842827207,"y":24911.646243849904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 70 End","id":"8392e1ff-33a6-4b95-baad-3f146bd3c121"}}}],"id":"31cf093b-6de4-4e4a-a8f4-f3ff989dd374","savedPayload":{"position":{"x":22219.581842827207,"y":24911.646243849904},"targetPosition":{"x":22725.068857629147,"y":25075.79453123554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 140","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"e9088da2-eb17-4e48-9fba-5bd00fba6a2b","savedPayload":{"position":{"x":21773.182835169137,"y":24599.88600225311},"targetPosition":{"x":22020.607787785142,"y":24698.504874568745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"b93ae9ca-6c4e-47db-a998-045e845ab9cd","savedPayload":{"position":{"x":22020.607787785142,"y":24698.504874568745},"targetPosition":{"x":22279.39421301658,"y":24786.345507099315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 140 Begin","project":"Superalgos","id":"e1bdea5b-664c-4146-adf6-858405354f8c","savedPayload":{"position":{"x":22042.368440660026,"y":24638.540856984164},"targetPosition":{"x":22279.39421301658,"y":24786.345507099315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 140 Begin","id":"39e65adb-6125-4e9a-8f15-5403b21aac40"}}},{"type":"Polygon Vertex","name":"SMA 140 End","project":"Superalgos","id":"3d994072-d0b7-4065-a8be-3c718de28086","savedPayload":{"position":{"x":22109.890061107737,"y":24589.5712241843},"targetPosition":{"x":22279.39421301658,"y":24786.345507099315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 140 End","id":"7559cbf5-acba-4a60-91b4-d95f90293f22"}}}],"id":"41a149aa-efdf-4f53-82cf-cce9e904a000","savedPayload":{"position":{"x":22279.39421301658,"y":24786.345507099315},"targetPosition":{"x":22725.068857629147,"y":25075.79453123554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 210","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"08949257-633e-4013-b770-bbb798972d2d","savedPayload":{"position":{"x":21929.135300406288,"y":24369.802138276933},"targetPosition":{"x":22142.49810910978,"y":24528.99191337216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"53e088d8-8ec5-4dbe-b732-c65f31005105","savedPayload":{"position":{"x":22142.49810910978,"y":24528.99191337216},"targetPosition":{"x":22369.631775502356,"y":24680.75370447642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 210 Begin","project":"Superalgos","id":"15882e16-4782-48e8-9cac-fbb1d07ae51d","savedPayload":{"position":{"x":22179.01490195371,"y":24476.676902185165},"targetPosition":{"x":22369.631775502356,"y":24680.75370447642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 210 Begin","id":"479df802-576f-45f1-8322-6b2e493c5ecc"}}},{"type":"Polygon Vertex","name":"SMA 210 End","project":"Superalgos","id":"a6f51174-ea46-4282-a476-4e809f456682","savedPayload":{"position":{"x":22256.950865664392,"y":24446.786234545198},"targetPosition":{"x":22369.631775502356,"y":24680.75370447642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 210 End","id":"45a926f2-4bb2-4562-b40f-bd2532ff1d10"}}}],"id":"c3ee15c5-a5b3-4318-bc09-a9fd03592d83","savedPayload":{"position":{"x":22369.631775502356,"y":24680.75370447642},"targetPosition":{"x":22725.068857629147,"y":25075.79453123554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 280","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"942d9600-7935-4ca6-81d8-9bd014df736f","savedPayload":{"position":{"x":22139.67233010465,"y":24187.882750608092},"targetPosition":{"x":22304.214057938145,"y":24396.817346951713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1c6e0c3f-8ac7-4b0b-9da8-0f7faf9befd1","savedPayload":{"position":{"x":22304.214057938145,"y":24396.817346951713},"targetPosition":{"x":22484.20682019741,"y":24602.101962418466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 280 Begin","project":"Superalgos","id":"cc54382b-cf2b-42c7-8958-8816809dd7ba","savedPayload":{"position":{"x":22352.912218616813,"y":24355.28081625431},"targetPosition":{"x":22484.20682019741,"y":24602.101962418466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 280 Begin","id":"d5e455bf-bb27-41fa-ba41-c8e7d0aa4d5e"}}},{"type":"Polygon Vertex","name":"SMA 280 End","project":"Superalgos","id":"3629786a-8eed-4cff-9780-0e685aeed577","savedPayload":{"position":{"x":22436.238225743462,"y":24347.341362095358},"targetPosition":{"x":22484.20682019741,"y":24602.101962418466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 280 End","id":"298d0ca9-1b4a-48d8-8efe-fda6b2fc2c34"}}}],"id":"3bbf5574-e89c-4538-a95c-2da58e5a74d7","savedPayload":{"position":{"x":22484.20682019741,"y":24602.101962418466},"targetPosition":{"x":22725.068857629147,"y":25075.79453123554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 350","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.BLACK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"8142bd21-31e4-4edd-97d5-217e30321e0a","savedPayload":{"position":{"x":22389.89949406125,"y":24066.100660631204},"targetPosition":{"x":22494.61557554617,"y":24310.625649982434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6eade211-19cf-48a7-87ac-faf30e387e10","savedPayload":{"position":{"x":22494.61557554617,"y":24310.625649982434},"targetPosition":{"x":22615.433981652863,"y":24555.758455366147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 350 End","project":"Superalgos","id":"f16d8eac-9e78-4167-b087-9803637412a6","savedPayload":{"position":{"x":22547.578962862553,"y":24282.036625520668},"targetPosition":{"x":22615.433981652863,"y":24555.758455366147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 350 End","id":"d6598381-9b15-4cb3-afba-b85ed6770ce3"}}},{"type":"Polygon Vertex","name":"SMA 350 Begin","project":"Superalgos","id":"b94a339d-5abf-4563-a693-edb5d812c24e","savedPayload":{"position":{"x":22658.0150582385,"y":24295.19733050896},"targetPosition":{"x":22615.433981652863,"y":24555.758455366147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 350 Begin","id":"f3c05d30-da2e-449e-8471-dcc216f4e630"}}}],"id":"046240f2-f70b-471d-b07b-0e7490222f0d","savedPayload":{"position":{"x":22615.433981652863,"y":24555.758455366147},"targetPosition":{"x":22725.068857629147,"y":25075.79453123554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"391b803a-4b4e-4c0b-bb6b-b4d68e989c9c","savedPayload":{"position":{"x":22725.068857629147,"y":25075.79453123554},"targetPosition":{"x":23129.77365704174,"y":24582.01109640315},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"SMA Base 7","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"SMA 7","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma7","project":"Superalgos","id":"1c683838-c882-49bd-997a-2f4255347854","savedPayload":{"position":{"x":21994.09305482482,"y":24131.280483425966},"targetPosition":{"x":21951.73309101315,"y":23869.39925858442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c26c14bd-b9ab-4121-89b2-eb3044534cf2","savedPayload":{"position":{"x":21951.73309101315,"y":23869.39925858442},"targetPosition":{"x":21909.006834193595,"y":23607.20884610875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 14","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma14","project":"Superalgos","id":"1060ea54-bb29-4c3b-8db0-522893543a36","savedPayload":{"position":{"x":21696.923793695147,"y":24094.6835873632},"targetPosition":{"x":21803.01769521118,"y":23851.001926237765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"94b29f18-cad5-49df-8b87-d6ef10f5ae61","savedPayload":{"position":{"x":21803.01769521118,"y":23851.001926237765},"targetPosition":{"x":21909.006834193595,"y":23607.20884610875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 21","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma21","project":"Superalgos","id":"c0287e9c-4b88-4b92-b6ac-f17474649958","savedPayload":{"position":{"x":21466.68178906986,"y":23902.83237290405},"targetPosition":{"x":21687.83710608927,"y":23755.027857024797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ffcb7173-b2bf-4d5d-90e5-6f8b26af4b86","savedPayload":{"position":{"x":21687.83710608927,"y":23755.027857024797},"targetPosition":{"x":21909.006834193595,"y":23607.20884610875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 28","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma28","project":"Superalgos","id":"9f1615e0-e437-4221-8e9a-a6dcb4556022","savedPayload":{"position":{"x":21376.792670130042,"y":23616.819213402912},"targetPosition":{"x":21642.8656383077,"y":23611.996786317733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"186d8c1a-5eef-44a1-aa09-b28e4f5b6b0e","savedPayload":{"position":{"x":21642.8656383077,"y":23611.996786317733},"targetPosition":{"x":21909.006834193595,"y":23607.20884610875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 35","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma35","project":"Superalgos","id":"423f3069-d5a3-4d29-bb35-68802f367c50","savedPayload":{"position":{"x":21455.828122363557,"y":23327.945698970558},"targetPosition":{"x":21682.380143842558,"y":23467.545452782673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6b047d8e-451d-4267-adc4-6e9496aa0025","savedPayload":{"position":{"x":21682.380143842558,"y":23467.545452782673},"targetPosition":{"x":21909.006834193595,"y":23607.20884610875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 70","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma70","project":"Superalgos","id":"62ed074e-5b1a-4306-b411-cd436680147d","savedPayload":{"position":{"x":21678.721680207032,"y":23127.267674136383},"targetPosition":{"x":21793.84351797554,"y":23367.191579921946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9676685c-f20e-4d65-a0fe-8551e80132ee","savedPayload":{"position":{"x":21793.84351797554,"y":23367.191579921946},"targetPosition":{"x":21909.006834193595,"y":23607.20884610875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 140","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma140","project":"Superalgos","id":"2200abd2-2897-4eff-9804-f599c0e18f42","savedPayload":{"position":{"x":21974.30139110037,"y":23078.924587402915},"targetPosition":{"x":21941.65441897204,"y":23343.020533978433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a44d3c89-8463-4493-b195-70ee4146bbdb","savedPayload":{"position":{"x":21941.65441897204,"y":23343.020533978433},"targetPosition":{"x":21909.006834193595,"y":23607.20884610875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 210","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma210","project":"Superalgos","id":"38e3066f-1951-4c96-8a36-3bcf778328bd","savedPayload":{"position":{"x":22249.38919464797,"y":23198.26402394615},"targetPosition":{"x":22079.21972262748,"y":23402.70664886277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"44198c4d-4d98-43a2-9c03-2d8794b9edac","savedPayload":{"position":{"x":22079.21972262748,"y":23402.70664886277},"targetPosition":{"x":21909.006834193595,"y":23607.20884610875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 280","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma280","project":"Superalgos","id":"eca55243-4492-4983-9e03-04694437c8ae","savedPayload":{"position":{"x":22416.260689595394,"y":23447.38025236584},"targetPosition":{"x":22162.665325912985,"y":23527.291681449435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96706885-fa55-4fad-82bd-fb43a2f331d7","savedPayload":{"position":{"x":22162.665325912985,"y":23527.291681449435},"targetPosition":{"x":21909.006834193595,"y":23607.20884610875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 350","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma350","project":"Superalgos","id":"64ea1867-2fb1-4191-a4c7-b5ac37f7be7a","savedPayload":{"position":{"x":22421.873811152673,"y":23746.73343926736},"targetPosition":{"x":22165.4477614576,"y":23677.075369169434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9f208b33-3d80-4d2e-ad88-13139a8e93f8","savedPayload":{"position":{"x":22165.4477614576,"y":23677.075369169434},"targetPosition":{"x":21909.006834193595,"y":23607.20884610875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b73ac725-eea1-4aa2-974c-937de300b456","savedPayload":{"position":{"x":21909.006834193595,"y":23607.20884610875},"targetPosition":{"x":23129.77365704174,"y":24582.01109640315},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"515565ff-dee2-4adf-adaf-b4cfea5f5dbd","savedPayload":{"position":{"x":23724,"y":24898.5},"targetPosition":{"x":24399,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"SMA Base 6","config":"{\n\t\"codeName\": \"SMA-Base6\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"SMA 6 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma6","project":"Superalgos","id":"28dce892-9996-45ac-af68-55d0056b6af2","savedPayload":{"position":{"x":22847.252853622394,"y":24261.66295404803},"targetPosition":{"x":22545.845444310344,"y":24998.353782913044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dece94e6-77de-4d21-9376-c2efc825b567","savedPayload":{"position":{"x":22545.845444310344,"y":24998.353782913044},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 6 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma6","project":"Superalgos","id":"f878b59a-0787-4c44-a341-02db47b15aad","savedPayload":{"position":{"x":23194.879757751947,"y":24457.379776429225},"targetPosition":{"x":22719.599441047554,"y":25096.466329805535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32025fb3-9ec4-4f50-b4c9-9a73100ce864","savedPayload":{"position":{"x":22719.599441047554,"y":25096.466329805535},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 12 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma12","project":"Superalgos","id":"d3c24df7-68df-4d50-92d6-9f722ee8816a","savedPayload":{"position":{"x":23482.26558017704,"y":24734.402676417936},"targetPosition":{"x":22863.400813758944,"y":25234.728088800202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8662f4a4-41a4-4992-a333-017cd8764cd1","savedPayload":{"position":{"x":22863.400813758944,"y":25234.728088800202},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 18 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma18","project":"Superalgos","id":"fc0e1a4a-8966-4340-83bc-2c43992486ed","savedPayload":{"position":{"x":23692.165229559894,"y":25073.998055276148},"targetPosition":{"x":22968.422035068033,"y":25404.580881431433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3260182a-83b5-4362-8962-84ec488b69cb","savedPayload":{"position":{"x":22968.422035068033,"y":25404.580881431433},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 18 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma18","project":"Superalgos","id":"53ce5612-9c75-4a89-98cd-7dd278f67df3","savedPayload":{"position":{"x":23811.358051138654,"y":25454.94175303005},"targetPosition":{"x":23028.070961922793,"y":25594.982955003303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"942b73d2-241e-43dd-b83b-0d3724f331a4","savedPayload":{"position":{"x":23028.070961922793,"y":25594.982955003303},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 24 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma24","project":"Superalgos","id":"9c2d5563-016b-40e7-a45f-973a874ee6e3","savedPayload":{"position":{"x":23831.984329459472,"y":25853.033720043626},"targetPosition":{"x":23038.37012128921,"y":25794.028398193783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c0b2d03c-3cec-4ca2-b344-cdd99cb28362","savedPayload":{"position":{"x":23038.37012128921,"y":25794.028398193783},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 24 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma24","project":"Superalgos","id":"3b3a0b5b-0290-47a3-8bef-d5b289e4f7b6","savedPayload":{"position":{"x":23752.82937730334,"y":26244.140423801062},"targetPosition":{"x":22998.77450348666,"y":25989.599665252023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4b33b779-8111-415c-a1e5-893ed5f49527","savedPayload":{"position":{"x":22998.77450348666,"y":25989.599665252023},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 30 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma30","project":"Superalgos","id":"876a382a-7632-4dcf-b0d5-b36d8df8b92c","savedPayload":{"position":{"x":23578.87216459151,"y":26603.278375456004},"targetPosition":{"x":22911.778537858627,"y":26169.188440823516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fef118ef-22cb-4ff5-b971-c90c2a01265a","savedPayload":{"position":{"x":22911.778537858627,"y":26169.188440823516},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 30 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma30","project":"Superalgos","id":"59c1198f-77ea-4780-b25b-e17b11bd0a0e","savedPayload":{"position":{"x":23321.043963769127,"y":26907.8759576423},"targetPosition":{"x":22782.85049495522,"y":26321.504840703845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e2f5657-06b0-4e46-aa7e-8676683ffb77","savedPayload":{"position":{"x":22782.85049495522,"y":26321.504840703845},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 60 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma60","project":"Superalgos","id":"deea8750-3324-4bdc-bc4d-7fc9db32ceca","savedPayload":{"position":{"x":22995.553122362788,"y":27138.790193943532},"targetPosition":{"x":22620.093412812806,"y":26436.974363409896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e7fb950-9b88-4aaf-95a1-982abf35b9f3","savedPayload":{"position":{"x":22620.093412812806,"y":26436.974363409896},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 60 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma60","project":"Superalgos","id":"4c4c6ec2-0ae2-4c37-bf9e-a2753f2b6ac5","savedPayload":{"position":{"x":22622.85109295329,"y":27281.514896251025},"targetPosition":{"x":22433.73139575098,"y":26508.349302892464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"173b07f4-37d0-4831-8d6b-1b989d9e3213","savedPayload":{"position":{"x":22433.73139575098,"y":26508.349302892464},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 120 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma120","project":"Superalgos","id":"4fae8019-4feb-4608-b26e-1b84bfa92eca","savedPayload":{"position":{"x":22226.751344094842,"y":27327.059144873732},"targetPosition":{"x":22235.67231693421,"y":26531.12978531879},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2fb358ff-8b9f-4b95-95f8-8be509b5b3a1","savedPayload":{"position":{"x":22235.67231693421,"y":26531.12978531879},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 120 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma120","project":"Superalgos","id":"94a5dfc2-27fa-48e5-8d60-125c185ee02c","savedPayload":{"position":{"x":21728.429529655685,"y":27655.631341193617},"targetPosition":{"x":22037.975632603993,"y":26503.896905168036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"id":"682e079f-319c-43dc-91a2-5732c3fb28c8","savedPayload":{"position":{"x":22037.975632603993,"y":26503.896905168036},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 180 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma180","project":"Superalgos","id":"c2b1772b-a983-4ecd-baec-c3ca0c346515","savedPayload":{"position":{"x":21462.005747243904,"y":27121.51780952574},"targetPosition":{"x":21853.260026600896,"y":26428.35981047775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5a2a1087-3910-4dd5-90d6-2370dc8949fa","savedPayload":{"position":{"x":21853.260026600896,"y":26428.35981047775},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 180 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma180","project":"Superalgos","id":"b7886b86-1f12-4645-b2fb-ecb4182dbec2","savedPayload":{"position":{"x":21141.7522985992,"y":26883.333498922417},"targetPosition":{"x":21693.119939179094,"y":26309.26659507801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1b5a66be-de8e-40c3-b3f2-e193e5deaeed","savedPayload":{"position":{"x":21693.119939179094,"y":26309.26659507801},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 240 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma240","project":"Superalgos","id":"219f9e45-38cc-4c5f-a396-f7a0788f973e","savedPayload":{"position":{"x":20890.820426783434,"y":26573.030040865022},"targetPosition":{"x":21567.64803411656,"y":26154.120927252916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"854a73e9-f8d2-4b85-a0dd-65284e175ca0","savedPayload":{"position":{"x":21567.64803411656,"y":26154.120927252916},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 240 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma240","project":"Superalgos","id":"57299592-e72a-4e7e-ac7a-e055ac925792","savedPayload":{"position":{"x":20724.917134843487,"y":26210.104557350052},"targetPosition":{"x":21484.678553482827,"y":25972.671550977444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"13eca50c-c1fb-4baa-8618-1f7eafde66c9","savedPayload":{"position":{"x":21484.678553482827,"y":25972.671550977444},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 300 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma300","project":"Superalgos","id":"fc7307b3-aeb1-49c0-bac9-ac2d27ad5d05","savedPayload":{"position":{"x":20643.040959684327,"y":25821.758764384387},"targetPosition":{"x":21438.02779496154,"y":25780.689713181695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"45ae2073-5312-48dc-b4ed-61326a2ce947","savedPayload":{"position":{"x":21438.02779496154,"y":25780.689713181695},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 300 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma300","project":"Superalgos","id":"9754f895-ef8d-4165-ae3b-efd97f52f9ce","savedPayload":{"position":{"x":20683.8748318002,"y":25419.839212802617},"targetPosition":{"x":21464.053433941306,"y":25577.55617093522},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31514c9e-d4f7-4c54-94ca-4e04e5f1df5c","savedPayload":{"position":{"x":21464.053433941306,"y":25577.55617093522},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 12 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma12","project":"Superalgos","id":"cb472a55-eacc-4dec-b337-087a1116e39f","savedPayload":{"position":{"x":20825.742379243755,"y":25020.682926372156},"targetPosition":{"x":21542.361108298857,"y":25367.406402650202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48fe3ebc-6bbf-4a33-9068-2766eaf1599a","savedPayload":{"position":{"x":21542.361108298857,"y":25367.406402650202},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 600 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma600","project":"Superalgos","id":"a22c9eff-f7ff-4867-ba2e-c123b4036f99","savedPayload":{"position":{"x":21029.423852030628,"y":24706.774032797177},"targetPosition":{"x":21636.946130128676,"y":25220.909956788582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3ecee44a-2a84-41ac-b579-f6f48acc590a","savedPayload":{"position":{"x":21636.946130128676,"y":25220.909956788582},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 600 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma600","project":"Superalgos","id":"2197c8c8-f750-4adf-a521-b1e4b347663c","savedPayload":{"position":{"x":21315.376610904892,"y":24444.59238248166},"targetPosition":{"x":21776.375067191973,"y":25093.43757947955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9bd8a9e7-09cf-4989-a9fa-c2f73d361134","savedPayload":{"position":{"x":21776.375067191973,"y":25093.43757947955},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 1200 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma1200","project":"Superalgos","id":"17399e4a-5716-4e7b-9348-995fef5766eb","savedPayload":{"position":{"x":21676.086657262586,"y":24248.227344212926},"targetPosition":{"x":21960.46747247007,"y":24991.46616047113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0481ec1e-ae49-4c99-a5ad-16c427db6e45","savedPayload":{"position":{"x":21960.46747247007,"y":24991.46616047113},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 1200 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma1200","project":"Superalgos","id":"5df49dd0-4b42-4be0-8493-2d762fa6b9c2","savedPayload":{"position":{"x":22063.26561573637,"y":24153.40953859813},"targetPosition":{"x":22154.131326421535,"y":24944.13658513155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eacd5f37-bdf2-4756-b7db-46db919b08a7","savedPayload":{"position":{"x":22154.131326421535,"y":24944.13658513155},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ddf91804-9a1f-44db-aea2-11db8bcd6aa1","savedPayload":{"position":{"x":22244.46290678159,"y":25735.087283273737},"targetPosition":{"x":22461.097284810985,"y":24161.387283153348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 6","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"34040727-f963-4459-9d11-6dfe71da067f","savedPayload":{"position":{"x":21932.797709168026,"y":25934.265850095413},"targetPosition":{"x":21980.85956678695,"y":25672.79279300407},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ec04ffcd-829f-41db-9aa0-c3807ff916ef","savedPayload":{"position":{"x":21980.85956678695,"y":25672.79279300407},"targetPosition":{"x":22068.85626347877,"y":25148.22672770251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 6 End","project":"Superalgos","id":"143eac37-51eb-4384-9455-94a62c781a28","savedPayload":{"position":{"x":21875.696135225426,"y":25645.32487198983},"targetPosition":{"x":22068.85626347877,"y":25148.22672770251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 6 End","id":"32025fb3-9ec4-4f50-b4c9-9a73100ce864"}}},{"type":"Polygon Vertex","name":"SMA 6 Begin","project":"Superalgos","id":"ffabc963-65ea-44af-9d15-d8bf6896a781","savedPayload":{"position":{"x":21769.179090762387,"y":25588.121753736792},"targetPosition":{"x":22068.85626347877,"y":25148.22672770251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 6 Begin","id":"dece94e6-77de-4d21-9376-c2efc825b567"}}}],"id":"12470549-c8b6-453f-a87a-396921a0a871","savedPayload":{"position":{"x":22068.85626347877,"y":25148.22672770251},"targetPosition":{"x":22461.097284810985,"y":24161.387283153348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 12","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"065e548b-05c8-4419-9bd1-0ef305c8b868","savedPayload":{"position":{"x":21516.383223116038,"y":25752.113465574632},"targetPosition":{"x":21625.715973416933,"y":25509.731908374295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bb849209-1786-43ce-b2cc-cb1d43252144","savedPayload":{"position":{"x":21625.715973416933,"y":25509.731908374295},"targetPosition":{"x":21843.92443939878,"y":25025.54049781639},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 12 Begin","project":"Superalgos","id":"9af3283c-bb60-4843-beae-89f1d065c8ba","savedPayload":{"position":{"x":21535.245929319142,"y":25457.748655530948},"targetPosition":{"x":21843.92443939878,"y":25025.54049781639},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 12 Begin","id":"48fe3ebc-6bbf-4a33-9068-2766eaf1599a"}}},{"type":"Polygon Vertex","name":"SMA 12 End","project":"Superalgos","id":"fee1b2e2-fdd0-4a53-b277-b7549e08aaf8","savedPayload":{"position":{"x":21456.740366250633,"y":25389.050040831105},"targetPosition":{"x":21843.92443939878,"y":25025.54049781639},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 12 End","id":"8662f4a4-41a4-4992-a333-017cd8764cd1"}}}],"id":"986a8bf8-3b7a-4421-80bd-940fa3bfe496","savedPayload":{"position":{"x":21843.92443939878,"y":25025.54049781639},"targetPosition":{"x":22461.097284810985,"y":24161.387283153348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 18","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"4ee42ccb-7981-4865-990b-09a84732f649","savedPayload":{"position":{"x":21162.948748821666,"y":25479.57370995394},"targetPosition":{"x":21327.14797441278,"y":25270.4406849237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"557e774e-833c-4373-a833-24a2b8e1c98b","savedPayload":{"position":{"x":21327.14797441278,"y":25270.4406849237},"targetPosition":{"x":21654.93531720089,"y":24852.585885847195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 18 End","project":"Superalgos","id":"b73a1590-a667-4c62-b1b0-319bc1c35264","savedPayload":{"position":{"x":21251.74942270536,"y":25198.31476347592},"targetPosition":{"x":21654.93531720089,"y":24852.585885847195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 18 End","id":"942b73d2-241e-43dd-b83b-0d3724f331a4"}}},{"type":"Polygon Vertex","name":"SMA 18 Begin","project":"Superalgos","id":"370a951b-b7cb-47fe-8e09-799f7da546a6","savedPayload":{"position":{"x":21191.939672016168,"y":25112.787349146405},"targetPosition":{"x":21654.93531720089,"y":24852.585885847195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 18 Begin","id":"3260182a-83b5-4362-8962-84ec488b69cb"}}}],"id":"9f9eeee3-ebd5-4f65-9079-cd0ac3c373da","savedPayload":{"position":{"x":21654.93531720089,"y":24852.585885847195},"targetPosition":{"x":22461.097284810985,"y":24161.387283153348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 24","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b30aa3da-65ea-4e03-88d0-d452114f94bc","savedPayload":{"position":{"x":20098.903544806744,"y":25614.09537483412},"targetPosition":{"x":20412.783284430294,"y":25368.714593956327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"42bded2a-28e5-457d-b8de-a71218db1630","savedPayload":{"position":{"x":20412.783284430294,"y":25368.714593956327},"targetPosition":{"x":21039.760435621352,"y":24878.370757201516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 24 Begin","project":"Superalgos","id":"a7a1b3d2-2c0a-47d0-8177-991c5b860ed4","savedPayload":{"position":{"x":20329.069098804448,"y":25236.82151614764},"targetPosition":{"x":21039.760435621352,"y":24878.370757201516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 24 Begin","id":"c0b2d03c-3cec-4ca2-b344-cdd99cb28362"}}},{"type":"Polygon Vertex","name":"SMA 24 End","project":"Superalgos","id":"8aac2b0b-8089-4adc-93d2-1544e0113105","savedPayload":{"position":{"x":20272.728802830552,"y":25091.149422811206},"targetPosition":{"x":21039.760435621352,"y":24878.370757201516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 24 End","id":"4b33b779-8111-415c-a1e5-893ed5f49527"}}}],"id":"5cde1b9e-eed8-4e90-9f31-9d0f38d4aef9","savedPayload":{"position":{"x":21039.760435621352,"y":24878.370757201516},"targetPosition":{"x":22461.097284810985,"y":24161.387283153348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 30","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"682c040c-2367-4838-92d2-5c14e6d65e0a","savedPayload":{"position":{"x":20457.08297146014,"y":24833.9586788288},"targetPosition":{"x":20941.60651376762,"y":24616.60733235544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"e80caa85-ac79-4b2b-ab2d-04f54c46b24b","savedPayload":{"position":{"x":20941.60651376762,"y":24616.60733235544},"targetPosition":{"x":21426.07753239444,"y":24398.952377362442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 30 End","project":"Superalgos","id":"985225d1-7a9d-45f7-93d2-59fe91c4450c","savedPayload":{"position":{"x":20908.34121799696,"y":24517.65184543693},"targetPosition":{"x":21426.07753239444,"y":24398.952377362442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 30 End","id":"8e2f5657-06b0-4e46-aa7e-8676683ffb77"}}},{"type":"Polygon Vertex","name":"SMA 30 Begin","project":"Superalgos","id":"0e1a912e-34be-4976-8d43-141b0f89a8ee","savedPayload":{"position":{"x":20895.131656169102,"y":24414.172964191614},"targetPosition":{"x":21426.07753239444,"y":24398.952377362442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 30 Begin","id":"fef118ef-22cb-4ff5-b971-c90c2a01265a"}}}],"id":"ba9cdf50-c1e0-42c5-a81c-dbc068c3b10e","savedPayload":{"position":{"x":21426.07753239444,"y":24398.952377362442},"targetPosition":{"x":22461.097284810985,"y":24161.387283153348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 60","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"85247bae-4a81-4247-affa-a8889f32987c","savedPayload":{"position":{"x":20354.2114104577,"y":24334.80979413967},"targetPosition":{"x":20876.730758026428,"y":24239.727910071277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9a153786-a0a0-4686-b83d-f55fb7513c56","savedPayload":{"position":{"x":20876.730758026428,"y":24239.727910071277},"targetPosition":{"x":21399.270068335903,"y":24144.418987519493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 60 Begin","project":"Superalgos","id":"389d9bf7-3844-4b65-9607-17dec104368f","savedPayload":{"position":{"x":20868.124605259276,"y":24135.937819202747},"targetPosition":{"x":21399.270068335903,"y":24144.418987519493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 60 Begin","id":"8e7fb950-9b88-4aaf-95a1-982abf35b9f3"}}},{"type":"Polygon Vertex","name":"SMA 60 End","project":"Superalgos","id":"0386e3c3-f9a3-442c-b2e4-c9d069621958","savedPayload":{"position":{"x":20880.06783174921,"y":24032.301630370297},"targetPosition":{"x":21399.270068335903,"y":24144.418987519493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 60 End","id":"173b07f4-37d0-4831-8d6b-1b989d9e3213"}}}],"id":"8170049e-056a-4818-8f0a-1a23f9c51bff","savedPayload":{"position":{"x":21399.270068335903,"y":24144.418987519493},"targetPosition":{"x":22461.097284810985,"y":24161.387283153348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 120","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"613b4c9b-b002-4c65-87b7-8b9d41eda4df","savedPayload":{"position":{"x":20373.90080432382,"y":23825.834404363035},"targetPosition":{"x":20904.02054181274,"y":23858.386689258576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"27a6e346-8da3-4900-83c4-41680d2168f4","savedPayload":{"position":{"x":20904.02054181274,"y":23858.386689258576},"targetPosition":{"x":21434.21740789074,"y":23890.735748311334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 120 Begin","project":"Superalgos","id":"956a6867-d00a-4888-9ffe-cbfabcfbe4fa","savedPayload":{"position":{"x":20920.553629100148,"y":23755.36027716184},"targetPosition":{"x":21434.21740789074,"y":23890.735748311334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 120 Begin","id":"2fb358ff-8b9f-4b95-95f8-8be509b5b3a1"}}},{"type":"Polygon Vertex","name":"SMA 120 End","project":"Superalgos","id":"040f4fe5-147d-4ba9-9a2d-fa134ca5d178","savedPayload":{"position":{"x":20956.955201459074,"y":23657.592103486215},"targetPosition":{"x":21434.21740789074,"y":23890.735748311334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 120 End","id":"682e079f-319c-43dc-91a2-5732c3fb28c8"}}}],"id":"7da9bd30-a7f8-410b-93a5-6b76ac57708b","savedPayload":{"position":{"x":21434.21740789074,"y":23890.735748311334},"targetPosition":{"x":22461.097284810985,"y":24161.387283153348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 240","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"d2ac585e-594d-4031-b17d-2274efc677ec","savedPayload":{"position":{"x":20514.94539566678,"y":23335.986528915277},"targetPosition":{"x":21021.846366991613,"y":23494.48142903897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"4e402467-2d78-4d95-ba03-3910f5120122","savedPayload":{"position":{"x":21021.846366991613,"y":23494.48142903897},"targetPosition":{"x":21528.867255660334,"y":23652.805504224674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 180 Begin","project":"Superalgos","id":"efe56d7d-f6e6-4944-aa32-26d3c4ed055b","savedPayload":{"position":{"x":21062.556561770958,"y":23398.40553066091},"targetPosition":{"x":21528.867255660334,"y":23652.805504224674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 180 Begin","id":"5a2a1087-3910-4dd5-90d6-2370dc8949fa"}}},{"type":"Polygon Vertex","name":"SMA 180 End","project":"Superalgos","id":"ec3a6f4b-adf2-4be1-ab28-313bbffb7491","savedPayload":{"position":{"x":21121.300808801523,"y":23312.189731737893},"targetPosition":{"x":21528.867255660334,"y":23652.805504224674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 180 End","id":"1b5a66be-de8e-40c3-b3f2-e193e5deaeed"}}}],"id":"adf40814-2b9a-4ee8-a154-364bfca32f7a","savedPayload":{"position":{"x":21528.867255660334,"y":23652.805504224674},"targetPosition":{"x":22461.097284810985,"y":24161.387283153348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 300","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"e79c6ed7-e52f-4191-a423-b14965211a19","savedPayload":{"position":{"x":20769.149279829366,"y":22894.12725743156},"targetPosition":{"x":21223.359884217858,"y":23169.34853274849},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"e5cd42c0-f52d-4608-91d5-966cc7bf39b3","savedPayload":{"position":{"x":21223.359884217858,"y":23169.34853274849},"targetPosition":{"x":21677.71959950107,"y":23444.439624161278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 240 Begin","project":"Superalgos","id":"f29f45ac-86bb-4490-b8b1-9a50dc736782","savedPayload":{"position":{"x":21285.88201679655,"y":23085.80722010574},"targetPosition":{"x":21677.71959950107,"y":23444.439624161278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 240 Begin","id":"854a73e9-f8d2-4b85-a0dd-65284e175ca0"}}},{"type":"Polygon Vertex","name":"SMA 240 End","project":"Superalgos","id":"eb330333-6b0f-4fad-97a7-a34e93cc3dee","savedPayload":{"position":{"x":21363.556640032893,"y":23016.155197006934},"targetPosition":{"x":21677.71959950107,"y":23444.439624161278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 240 End","id":"13eca50c-c1fb-4baa-8618-1f7eafde66c9"}}}],"id":"60c00cdc-dbf4-460b-b021-7339dd7bbec8","savedPayload":{"position":{"x":21677.71959950107,"y":23444.439624161278},"targetPosition":{"x":22461.097284810985,"y":24161.387283153348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 600","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"182273b1-1d73-4dc7-93dc-b2a4644b18f1","savedPayload":{"position":{"x":21121.768340965875,"y":22525.933881073808},"targetPosition":{"x":21496.877120524467,"y":22901.87718241841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"3342f900-2346-4377-b6b0-34566787d6d9","savedPayload":{"position":{"x":21496.877120524467,"y":22901.87718241841},"targetPosition":{"x":21872.144295610648,"y":23277.73782931434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 600 Begin","project":"Superalgos","id":"5b6c238c-a7cb-4002-85e5-5e84cd6ffdf8","savedPayload":{"position":{"x":21577.581817828242,"y":22835.72666433792},"targetPosition":{"x":21872.144295610648,"y":23277.73782931434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 600 Begin","id":"3ecee44a-2a84-41ac-b579-f6f48acc590a"}}},{"type":"Polygon Vertex","name":"SMA 600 End","project":"Superalgos","id":"b60e6d28-cb70-49c5-9e06-c67cfe81b1f1","savedPayload":{"position":{"x":21669.679647653746,"y":22786.687784097558},"targetPosition":{"x":21872.144295610648,"y":23277.73782931434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 600 End","id":"9bd8a9e7-09cf-4989-a9fa-c2f73d361134"}}}],"id":"93c1746c-2470-4032-84e1-c16a2d4e3921","savedPayload":{"position":{"x":21872.144295610648,"y":23277.73782931434},"targetPosition":{"x":22461.097284810985,"y":24161.387283153348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 1200","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"f0b2a565-d33f-42d4-85ed-d61766b82af7","savedPayload":{"position":{"x":21552.41354819525,"y":22252.808678862344},"targetPosition":{"x":21826.597932184795,"y":22707.6076599902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"e108f855-0252-4113-8bd3-2cf2581abc47","savedPayload":{"position":{"x":21826.597932184795,"y":22707.6076599902},"targetPosition":{"x":22100.90381493375,"y":23162.379449321343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 1200 Begin","project":"Superalgos","id":"f15e631f-a4ef-4493-bb68-8c3a082ba0aa","savedPayload":{"position":{"x":21920.81565915732,"y":22662.694744348362},"targetPosition":{"x":22100.90381493375,"y":23162.379449321343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 1200 Begin","id":"0481ec1e-ae49-4c99-a5ad-16c427db6e45"}}},{"type":"Polygon Vertex","name":"SMA 1200 End","project":"Superalgos","id":"cf097102-9c66-4f90-95cd-1c1c9efc113b","savedPayload":{"position":{"x":22022.053176143498,"y":22637.111143575814},"targetPosition":{"x":22100.90381493375,"y":23162.379449321343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 1200 End","id":"eacd5f37-bdf2-4756-b7db-46db919b08a7"}}}],"id":"790efcb9-f3af-4e01-86f2-adbfcda6a356","savedPayload":{"position":{"x":22100.90381493375,"y":23162.379449321343},"targetPosition":{"x":22461.097284810985,"y":24161.387283153348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"93675e57-6b0f-4fe5-8c8a-a4c02f794650","savedPayload":{"position":{"x":22300.99633518746,"y":24910.83114736863},"targetPosition":{"x":23220.028379375075,"y":24379.317885541386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"SMA Base 6","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"SMA 6","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma6","project":"Superalgos","id":"bf5de8a3-8c0b-41e8-8d21-bef5a721133f","savedPayload":{"position":{"x":23190.43446889845,"y":23534.92305845683},"targetPosition":{"x":23288.723440920767,"y":23287.92181107525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"995dd126-9cef-4b6e-960f-6828cfc41777","savedPayload":{"position":{"x":23288.723440920767,"y":23287.92181107525},"targetPosition":{"x":23404.607611488595,"y":22996.235690645863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 12","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma12","project":"Superalgos","id":"9d4756de-3019-4ab6-a77d-7a1452ce1813","savedPayload":{"position":{"x":22964.47437969323,"y":23373.42630320755},"targetPosition":{"x":23166.431623595985,"y":23200.393816326385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"414bd6ad-d6c6-4100-867e-232c6e649de2","savedPayload":{"position":{"x":23166.431623595985,"y":23200.393816326385},"targetPosition":{"x":23404.607611488595,"y":22996.235690645863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 18","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma18","project":"Superalgos","id":"8c7a57b7-0d00-4239-b7ce-018b8da0fce7","savedPayload":{"position":{"x":22839.67233422309,"y":23125.532997341663},"targetPosition":{"x":23099.02981189959,"y":23066.194147139642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2b73a8b5-c7a5-47b2-acad-87fa5aec85be","savedPayload":{"position":{"x":23099.02981189959,"y":23066.194147139642},"targetPosition":{"x":23404.607611488595,"y":22996.235690645863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 24","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma24","project":"Superalgos","id":"3880e650-f608-4c97-8b5a-6956c8c2fba7","savedPayload":{"position":{"x":22844.364653670676,"y":22848.60608985288},"targetPosition":{"x":23101.65676842989,"y":22916.401926843846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7655b5d6-708e-4e05-9499-2058d8511689","savedPayload":{"position":{"x":23101.65676842989,"y":22916.401926843846},"targetPosition":{"x":23404.607611488595,"y":22996.235690645863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 30","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma30","project":"Superalgos","id":"ae5edcfd-b4be-4c3e-bb28-333fade4b88d","savedPayload":{"position":{"x":22977.348639482876,"y":22605.233161654964},"targetPosition":{"x":23173.60314783295,"y":22784.834873967262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad60eba1-2b62-4b1f-bed9-de38285f4acc","savedPayload":{"position":{"x":23173.60314783295,"y":22784.834873967262},"targetPosition":{"x":23404.607611488595,"y":22996.235690645863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 60","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma60","project":"Superalgos","id":"cd97e51b-fa6a-4d6e-b7dd-43c9299bde4d","savedPayload":{"position":{"x":23208.09378847997,"y":22451.486399892947},"targetPosition":{"x":23298.382610611385,"y":22701.792273541516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5baddfba-9384-417f-954a-37abf160567e","savedPayload":{"position":{"x":23298.382610611385,"y":22701.792273541516},"targetPosition":{"x":23404.607611488595,"y":22996.235690645863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 120","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma120","project":"Superalgos","id":"189b3ffd-8d2b-4124-af4c-52a9756c3409","savedPayload":{"position":{"x":23483.365777289655,"y":22422.473192074336},"targetPosition":{"x":23447.186952465738,"y":22686.10396315105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"980faff9-33a9-4c63-b64c-3bdbeeeb1b8a","savedPayload":{"position":{"x":23447.186952465738,"y":22686.10396315105},"targetPosition":{"x":23404.607611488595,"y":22996.235690645863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 180","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma180","project":"Superalgos","id":"7dac036e-a376-493f-8e5a-d8a7e211f262","savedPayload":{"position":{"x":23741.01206929381,"y":22524.895929171682},"targetPosition":{"x":23586.532390841032,"y":22741.35089399476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d22d8f06-1510-43c7-a233-7a5dc67f809b","savedPayload":{"position":{"x":23586.532390841032,"y":22741.35089399476},"targetPosition":{"x":23404.607611488595,"y":22996.235690645863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 240","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma240","project":"Superalgos","id":"2b86e2e4-bf2d-4b68-a54e-a781e56458bf","savedPayload":{"position":{"x":23921.75482241177,"y":22735.230632280665},"targetPosition":{"x":23684.22486549823,"y":22855.12285211595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"696305ab-09c2-41af-bfb3-85ce4fb5e705","savedPayload":{"position":{"x":23684.22486549823,"y":22855.12285211595},"targetPosition":{"x":23404.607611488595,"y":22996.235690645863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 300 ","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma300","project":"Superalgos","id":"03bc78eb-d57f-41fc-a8ba-3592e222d5cc","savedPayload":{"position":{"x":23983.933292109632,"y":23005.144018108225},"targetPosition":{"x":23718.04852446272,"y":23001.09169004303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f34223f9-87e3-49fe-8acf-77080dffa25f","savedPayload":{"position":{"x":23718.04852446272,"y":23001.09169004303},"targetPosition":{"x":23404.607611488595,"y":22996.235690645863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 600 ","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma600","project":"Superalgos","id":"c6511ef3-8c3a-445c-9d90-1bb91a1763fb","savedPayload":{"position":{"x":23913.33690349348,"y":23273.570760728147},"targetPosition":{"x":23679.940616808995,"y":23146.380702189806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ff4236e0-4c9b-4b98-9dd3-b3c152bb12e2","savedPayload":{"position":{"x":23679.940616808995,"y":23146.380702189806},"targetPosition":{"x":23404.607611488595,"y":22996.235690645863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 1200 ","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma1200","project":"Superalgos","id":"931713d5-2d25-428f-95bc-0a21e01892f7","savedPayload":{"position":{"x":23725.81583674357,"y":23478.49693884385},"targetPosition":{"x":23578.455870915335,"y":23257.36854214097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e3345124-6aed-4164-ab86-041fd39608b0","savedPayload":{"position":{"x":23578.455870915335,"y":23257.36854214097},"targetPosition":{"x":23404.607611488595,"y":22996.235690645863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"40313dff-6c5d-4650-bd51-8767bba6f6ad","savedPayload":{"position":{"x":22690.307514523643,"y":23461.419987211662},"targetPosition":{"x":23220.028379375075,"y":24379.317885541386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6ace920a-3a4b-4d28-8f04-4c2ecd3dfeb8","savedPayload":{"position":{"x":23814.432852445505,"y":24561},"targetPosition":{"x":24399,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"SMA Base 5","config":"{\n\t\"codeName\": \"SMA-Base7\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"SMA 5 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma5","project":"Superalgos","id":"37d1cd48-3a3f-4477-a125-76dcec51195b","savedPayload":{"position":{"x":25316.931332389668,"y":19625.33234686246},"targetPosition":{"x":25451.67986847657,"y":21204.420600101148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9eca5bc8-cdb2-46fb-9a26-1c2da03b8818","savedPayload":{"position":{"x":25451.67986847657,"y":21204.420600101148},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 5 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma5","project":"Superalgos","id":"3537c835-0158-465b-81d1-5440a40a649b","savedPayload":{"position":{"x":26110.090252071444,"y":19657.619475228057},"targetPosition":{"x":25848.30641556872,"y":21220.5638911527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"db00298d-2997-4640-93fe-17125aeb7f0e","savedPayload":{"position":{"x":25848.30641556872,"y":21220.5638911527},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 10 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma10","project":"Superalgos","id":"3f1d398f-6d0a-4713-8fbf-29cbb133be3e","savedPayload":{"position":{"x":26870.97845152137,"y":19886.493114074896},"targetPosition":{"x":26228.73820924724,"y":21334.991206695115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b2e038ee-355d-4862-a454-514f7bcf31cf","savedPayload":{"position":{"x":26228.73820924724,"y":21334.991206695115},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 15 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma15","project":"Superalgos","id":"cadaa709-8956-4c7a-9215-76ac92a53517","savedPayload":{"position":{"x":27551.105700253072,"y":20297.055090453578},"targetPosition":{"x":26568.81181419751,"y":21540.249330754217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"02f80e02-080a-4950-9ffc-2f3b5770b404","savedPayload":{"position":{"x":26568.81181419751,"y":21540.249330754217},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 15 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma15","project":"Superalgos","id":"e4212208-3b31-47c0-aebd-966d4a77c0f9","savedPayload":{"position":{"x":28107.8292996675,"y":20863.805266738873},"targetPosition":{"x":26847.159904673692,"y":21823.626411242156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32c7c4d3-a210-4d4d-8d10-bb23f91edcda","savedPayload":{"position":{"x":26847.159904673692,"y":21823.626411242156},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 20 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma20","project":"Superalgos","id":"73c6c2a6-b4b7-4d2a-be7e-5810261e68c7","savedPayload":{"position":{"x":28506.102540804197,"y":21551.15125444166},"targetPosition":{"x":27046.29179556215,"y":22167.31563678739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6b07cc40-e7da-48bc-a49b-cac5a0615c34","savedPayload":{"position":{"x":27046.29179556215,"y":22167.31563678739},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 20 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma20","project":"Superalgos","id":"c8dd3770-668a-47d7-aad8-db412890bc28","savedPayload":{"position":{"x":28721.343269533703,"y":22315.972226865833},"targetPosition":{"x":27153.91999225355,"y":22549.725828990307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e2f2041d-b896-44d7-b251-85eb1cd7fadf","savedPayload":{"position":{"x":27153.91999225355,"y":22549.725828990307},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 25 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma25","project":"Superalgos","id":"d7265ad0-64e1-4fb7-8cd0-bdbf329b3d6d","savedPayload":{"position":{"x":28739.28601735465,"y":23109.50588485619},"targetPosition":{"x":27162.892018855644,"y":22946.480504196938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78b96701-c691-41fa-91d2-3bdb00e2e0fa","savedPayload":{"position":{"x":27162.892018855644,"y":22946.480504196938},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 25 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma25","project":"Superalgos","id":"5cefb3f2-2429-478b-80a8-8f9e07e12c00","savedPayload":{"position":{"x":28558.626547227468,"y":23883.22989496725},"targetPosition":{"x":27072.581031357902,"y":23333.307782259104},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c9293d92-6255-4c96-9bf9-f4c6dcf419a1","savedPayload":{"position":{"x":27072.581031357902,"y":23333.307782259104},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 50 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma50","project":"Superalgos","id":"cfa001a1-ac90-4713-b542-4fab32f377e0","savedPayload":{"position":{"x":28191.74383572311,"y":24587.719630779477},"targetPosition":{"x":26889.110685365544,"y":23685.5583158755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1d352202-ba2e-41a7-9d4b-c4c97d2e391d","savedPayload":{"position":{"x":26889.110685365544,"y":23685.5583158755},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 50 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma50","project":"Superalgos","id":"1655e27e-3738-4b5d-8961-105e11b5070c","savedPayload":{"position":{"x":27661.367490290064,"y":25178.72356858686},"targetPosition":{"x":26623.890336729153,"y":23981.05960366105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4e34e6e6-d370-4127-b4fe-0c9fd591e730","savedPayload":{"position":{"x":26623.890336729153,"y":23981.05960366105},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 100 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma100","project":"Superalgos","id":"44d9a566-3392-4f8f-ae69-f16de47bdd50","savedPayload":{"position":{"x":26990.246349742167,"y":25636.999407631945},"targetPosition":{"x":26293.696824969444,"y":24201.10651027873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"651f424a-51be-4b25-a895-d50f75329384","savedPayload":{"position":{"x":26293.696824969444,"y":24201.10651027873},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 100 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma100","project":"Superalgos","id":"05d2a007-3c1e-4e61-8cef-0aa1bdb3c0f5","savedPayload":{"position":{"x":26186.012813226578,"y":25840.999520632056},"targetPosition":{"x":25853.62295334718,"y":24282.86845819472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aada5c3d-5ff5-4afd-8dd1-298ce8fce853","savedPayload":{"position":{"x":25853.62295334718,"y":24282.86845819472},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 150 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma150","project":"Superalgos","id":"f5f1a287-14c5-4b05-9032-85623b3e948f","savedPayload":{"position":{"x":25458.43157535027,"y":25950.774859383935},"targetPosition":{"x":25522.593106171924,"y":24367.07585842121},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"55d6b376-dd20-4044-b6c2-51acd03bee71","savedPayload":{"position":{"x":25522.593106171924,"y":24367.07585842121},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 150 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma150","project":"Superalgos","id":"e8805c13-2905-47dd-ad3d-eea5d645fd2f","savedPayload":{"position":{"x":24675.106257345637,"y":25818.7071402533},"targetPosition":{"x":25130.760347700736,"y":24300.987973567382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"812b92a9-2ba5-44e2-b255-976f8354e841","savedPayload":{"position":{"x":25130.760347700736,"y":24300.987973567382},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 200 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma200","project":"Superalgos","id":"13b0144f-8413-43d8-97f9-61a50712a17b","savedPayload":{"position":{"x":23948.17462794799,"y":25495.791350743402},"targetPosition":{"x":24767.205887945467,"y":24138.90956934111},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"652e1cae-11c0-489c-a820-03296a362c77","savedPayload":{"position":{"x":24767.205887945467,"y":24138.90956934111},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 200 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma200","project":"Superalgos","id":"51211e13-8719-4d03-afb1-a7bb2f656f68","savedPayload":{"position":{"x":23325.53821503313,"y":25003.701701017995},"targetPosition":{"x":24455.997515226987,"y":23893.32725382284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4e4458f4-c6ca-4235-8734-8e833d3722f2","savedPayload":{"position":{"x":24455.997515226987,"y":23893.32725382284},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 250 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma250","project":"Superalgos","id":"a37e3e5a-dc59-4373-97c3-98de0c09fbb7","savedPayload":{"position":{"x":22844.191420192492,"y":24371.6350164854},"targetPosition":{"x":24215.47912431288,"y":23577.447741417767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"52aefae1-6ceb-47c4-a82d-ac55a7b91b25","savedPayload":{"position":{"x":24215.47912431288,"y":23577.447741417767},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 250 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma250","project":"Superalgos","id":"aae7721e-b9d3-4629-94be-eecd49675c8f","savedPayload":{"position":{"x":22535.46210332133,"y":23640.055253482635},"targetPosition":{"x":24061.007622143898,"y":23211.58846491511},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8ddf18b2-93b4-4422-9e64-f9fc22f5de52","savedPayload":{"position":{"x":24061.007622143898,"y":23211.58846491511},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 500 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.propertyA","project":"Superalgos","id":"65cfa112-3dc1-4bbd-9f90-13076e630272","savedPayload":{"position":{"x":22399.884412012616,"y":22851.24434747338},"targetPosition":{"x":24002.01607419896,"y":22818.7564605542},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d1ec756e-a71c-433b-ad10-ef8234617768","savedPayload":{"position":{"x":24002.01607419896,"y":22818.7564605542},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 500 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.propertyA","project":"Superalgos","id":"577145f8-de78-4ded-a41e-86f9b54ec8a2","savedPayload":{"position":{"x":22499.925425963742,"y":22064.523254526463},"targetPosition":{"x":24043.21010262051,"y":22424.0084442247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b2fbef6-9a30-4ed6-a98e-5ccceb77aea3","savedPayload":{"position":{"x":24043.21010262051,"y":22424.0084442247},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 10 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma10","project":"Superalgos","id":"520c2e51-b036-4267-928d-53f69d83747b","savedPayload":{"position":{"x":22779.289500935596,"y":21320.468086292152},"targetPosition":{"x":24181.33963462729,"y":22051.533299455594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7fe319a5-1a75-4f65-97da-20345cc502c2","savedPayload":{"position":{"x":24181.33963462729,"y":22051.533299455594},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 1000 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.propertyA","project":"Superalgos","id":"3514870d-ad16-4bee-b5fa-a68739f3b332","savedPayload":{"position":{"x":23218.679929739206,"y":20672.646844099887},"targetPosition":{"x":24407.557573251204,"y":21725.008275679982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"db6c9de6-aeb9-46ff-a46d-893ac56a32a2","savedPayload":{"position":{"x":24407.557573251204,"y":21725.008275679982},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 1000 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.propertyA","project":"Superalgos","id":"9cd8a206-16f2-446d-b63e-43faa32d7abd","savedPayload":{"position":{"x":23829.100228741023,"y":20146.61229489676},"targetPosition":{"x":24707.894234133648,"y":21464.967961908318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e518b92f-f678-4868-ae0c-a0bd31f480eb","savedPayload":{"position":{"x":24707.894234133648,"y":21464.967961908318},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f32ec0d3-ec1a-4f9d-b0dc-a394dac962ba","savedPayload":{"position":{"x":25586.49464195755,"y":22783.510612259408},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 5","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"a7e019b1-8c26-45dc-a717-de61a361f789","savedPayload":{"position":{"x":19960.951597765677,"y":24002.03815136308},"targetPosition":{"x":20303.940609983536,"y":23799.81744173517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"7da673e1-96be-42bb-ac8e-ba94da835b8d","savedPayload":{"position":{"x":20303.940609983536,"y":23799.81744173517},"targetPosition":{"x":20988.573790820694,"y":23395.748544985014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 5 End","project":"Superalgos","id":"e755e4bb-ff8f-4591-b0ae-878d71639fd5","savedPayload":{"position":{"x":20238.227694230092,"y":23658.218748508552},"targetPosition":{"x":20988.573790820694,"y":23395.748544985014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 5 End","id":"db00298d-2997-4640-93fe-17125aeb7f0e"}}},{"type":"Polygon Vertex","name":"SMA 5 Begin","project":"Superalgos","id":"c452cccc-8d2b-4630-9219-fb5e4d89fb1e","savedPayload":{"position":{"x":20201.29706535384,"y":23506.62672002147},"targetPosition":{"x":20988.573790820694,"y":23395.748544985014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 5 Begin","id":"9eca5bc8-cdb2-46fb-9a26-1c2da03b8818"}}}],"id":"9de00c59-ad47-414f-93f4-976d1a798e33","savedPayload":{"position":{"x":20988.573790820694,"y":23395.748544985014},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 10","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"d99069f1-59c4-4dd2-a77f-15de8869aeaf","savedPayload":{"position":{"x":19772.55398449779,"y":23410.386772315327},"targetPosition":{"x":20151.965058316902,"y":23289.719126230804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6867a6be-eb3c-4c1f-a83e-f630c5a40ba3","savedPayload":{"position":{"x":20151.965058316902,"y":23289.719126230804},"targetPosition":{"x":20909.26420413932,"y":23048.3682485213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 10 Begin","project":"Superalgos","id":"43ddbce7-424a-4718-9012-bd9327a7b6e0","savedPayload":{"position":{"x":20119.36406038495,"y":23137.133146732755},"targetPosition":{"x":20909.26420413932,"y":23048.3682485213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 10 Begin","id":"7fe319a5-1a75-4f65-97da-20345cc502c2"}}},{"type":"Polygon Vertex","name":"SMA 10 End","project":"Superalgos","id":"f48c16c1-ca4a-4a64-ae78-78cbc754888e","savedPayload":{"position":{"x":20116.96522038806,"y":22981.602358501706},"targetPosition":{"x":20909.26420413932,"y":23048.3682485213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 10 End","id":"b2e038ee-355d-4862-a454-514f7bcf31cf"}}}],"id":"0c387d26-20c4-4a66-aac4-599d98b8300e","savedPayload":{"position":{"x":20909.26420413932,"y":23048.3682485213},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 15","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"e52e6176-fecb-48d3-ad99-7b66e11b02de","savedPayload":{"position":{"x":19720.36204398127,"y":22792.77691119728},"targetPosition":{"x":20117.232997116374,"y":22759.604081692814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"3850ed1d-dc3b-47b2-bee7-7aa961acfaa2","savedPayload":{"position":{"x":20117.232997116374,"y":22759.604081692814},"targetPosition":{"x":20909.309259785892,"y":22692.72963840176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 15 End","project":"Superalgos","id":"3f50ad9c-b951-420f-92cb-564d050f144e","savedPayload":{"position":{"x":20119.333510831275,"y":22603.788571179066},"targetPosition":{"x":20909.309259785892,"y":22692.72963840176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 15 End","id":"32c7c4d3-a210-4d4d-8d10-bb23f91edcda"}}},{"type":"Polygon Vertex","name":"SMA 15 Begin","project":"Superalgos","id":"5cce1576-091c-49fa-a98f-0ebcf033c933","savedPayload":{"position":{"x":20151.957550193438,"y":22451.175198752062},"targetPosition":{"x":20909.309259785892,"y":22692.72963840176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 15 Begin","id":"02f80e02-080a-4950-9ffc-2f3b5770b404"}}}],"id":"9f49d18a-dfd7-4d55-8a1e-c186dbfc043e","savedPayload":{"position":{"x":20909.309259785892,"y":22692.72963840176},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"e9126aac-9402-4bfc-9f89-b6996780d7ba","savedPayload":{"position":{"x":19806.877718860087,"y":22178.888850268144},"targetPosition":{"x":20200.991295159205,"y":22234.54855444601},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9ec36dc5-91e0-4861-8748-9f9b7d92bacc","savedPayload":{"position":{"x":20200.991295159205,"y":22234.54855444601},"targetPosition":{"x":20988.33723163613,"y":22345.488763141424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 20 Begin","project":"Superalgos","id":"6a595b60-ea82-4ef7-ad14-f698d4885e0d","savedPayload":{"position":{"x":20237.888555284702,"y":22082.85467251906},"targetPosition":{"x":20988.33723163613,"y":22345.488763141424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 20 Begin","id":"6b07cc40-e7da-48bc-a49b-cac5a0615c34"}}},{"type":"Polygon Vertex","name":"SMA 20 End","project":"Superalgos","id":"3d4d3854-f28c-462a-b08a-21db3bdf9d82","savedPayload":{"position":{"x":20303.68932552002,"y":21941.429944580184},"targetPosition":{"x":20988.33723163613,"y":22345.488763141424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 20 End","id":"e2f2041d-b896-44d7-b251-85eb1cd7fadf"}}}],"id":"39db09d1-e5b2-4e83-80b5-41b5af443e3f","savedPayload":{"position":{"x":20988.33723163613,"y":22345.488763141424},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 25","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"938779af-a8c9-48dc-a936-7f196f976c5a","savedPayload":{"position":{"x":19656.411190809897,"y":21456.217476887283},"targetPosition":{"x":20399.57040696433,"y":21741.56134674985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c905d757-47ba-4c5b-9f85-73db3050e897","savedPayload":{"position":{"x":20399.57040696433,"y":21741.56134674985},"targetPosition":{"x":21142.891431892902,"y":22024.74993684295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 25 End","project":"Superalgos","id":"a952acf4-c97a-40f5-8f9d-edbae371305d","savedPayload":{"position":{"x":20469.734944325824,"y":21601.67519607259},"targetPosition":{"x":21142.891431892902,"y":22024.74993684295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 25 End","id":"c9293d92-6255-4c96-9bf9-f4c6dcf419a1"}}},{"type":"Polygon Vertex","name":"SMA 25 Begin","project":"Superalgos","id":"88efd4f2-dc1e-43d6-96f0-7e60ed1d4177","savedPayload":{"position":{"x":20565.096990706046,"y":21478.34865299125},"targetPosition":{"x":21142.891431892902,"y":22024.74993684295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 25 Begin","id":"78b96701-c691-41fa-91d2-3bdb00e2e0fa"}}}],"id":"9b80c90a-521b-4d8e-ba2b-781f3aee1fb2","savedPayload":{"position":{"x":21142.891431892902,"y":22024.74993684295},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 50","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b8842dee-7b08-40e5-818d-54df493e6e20","savedPayload":{"position":{"x":20036.545024674757,"y":20857.14037085379},"targetPosition":{"x":20698.211252135192,"y":21299.243674384634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c1dfcdd1-96a1-49ee-82e6-7d78077c43c0","savedPayload":{"position":{"x":20703.886008701138,"y":21303.477494607185},"targetPosition":{"x":21364.78263530816,"y":21746.251931457737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 50 Begin","project":"Superalgos","id":"cdbfa16a-32ae-43e0-ba6f-940351c04786","savedPayload":{"position":{"x":20802.74908860738,"y":21184.157650473102},"targetPosition":{"x":21364.78263530816,"y":21746.251931457737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 50 Begin","id":"1d352202-ba2e-41a7-9d4b-c4c97d2e391d"}}},{"type":"Polygon Vertex","name":"SMA 50 End","project":"Superalgos","id":"5e17d592-e906-4b8b-b48b-97b98cdd2cd1","savedPayload":{"position":{"x":20923.33621766578,"y":21085.253404578496},"targetPosition":{"x":21364.78263530816,"y":21746.251931457737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 50 End","id":"4e34e6e6-d370-4127-b4fe-0c9fd591e730"}}}],"id":"39d6a3fc-1380-4e2d-8de6-13d0b9e7a8e3","savedPayload":{"position":{"x":21364.78263530816,"y":21746.251931457737},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 100","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"2a39fe15-bcc6-49a4-9dcd-41c882a4b361","savedPayload":{"position":{"x":20545.34423836003,"y":20362.65338756075},"targetPosition":{"x":21091.920483053076,"y":20940.83844913714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ea97087b-647a-4900-8de5-2aabe7f95095","savedPayload":{"position":{"x":21092.057608104693,"y":20940.8574303535},"targetPosition":{"x":21638.88713615668,"y":21519.17387802736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 100 Begin","project":"Superalgos","id":"d87c3f75-6f43-4087-ab8b-0493e77a3a25","savedPayload":{"position":{"x":21220.320983800993,"y":20850.893906848025},"targetPosition":{"x":21643.3552743623,"y":21524.131434914634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 100 Begin","id":"651f424a-51be-4b25-a895-d50f75329384"}}},{"type":"Polygon Vertex","name":"SMA 100 End","project":"Superalgos","id":"b6782eed-6d13-4cf8-98c1-b623da09e0d1","savedPayload":{"position":{"x":21360.08059508771,"y":20781.16218808441},"targetPosition":{"x":21643.3552743623,"y":21524.131434914634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 100 End","id":"aada5c3d-5ff5-4afd-8dd1-298ce8fce853"}}}],"id":"c7c55c53-c6ee-4edc-8b4e-eab2ece17db9","savedPayload":{"position":{"x":21643.3552743623,"y":21524.131434914634},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 150","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"7e3e32b9-1c64-43f1-85ab-6bb2d777c5a5","savedPayload":{"position":{"x":21152.42585794359,"y":19996.095689115966},"targetPosition":{"x":21556.371341192928,"y":20681.00242476546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"91bbb7a8-0800-4d46-a3ba-bd195153f61e","savedPayload":{"position":{"x":21555.518504562187,"y":20678.93259505686},"targetPosition":{"x":21959.896579552962,"y":21364.452775480804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 150 Begin","project":"Superalgos","id":"db2a660d-2315-482c-a29a-38acac0ca453","savedPayload":{"position":{"x":21701.65180234905,"y":20619.414653184947},"targetPosition":{"x":21964.14516888933,"y":21369.814831890162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 150 Begin","id":"55d6b376-dd20-4044-b6c2-51acd03bee71"}}},{"type":"Polygon Vertex","name":"SMA 150 End","project":"Superalgos","id":"2c0a8a74-58c0-4331-a438-2154306fb317","savedPayload":{"position":{"x":21853.088239777197,"y":20582.659081787402},"targetPosition":{"x":21964.14516888933,"y":21369.814831890162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 150 End","id":"812b92a9-2ba5-44e2-b255-976f8354e841"}}}],"id":"5c7935c9-6393-4e0f-8561-742533c1ebcf","savedPayload":{"position":{"x":21964.14516888933,"y":21369.814831890162},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 200","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"0ab949bd-a21b-43e8-ae5d-ba2067fa9436","savedPayload":{"position":{"x":21824.8191112252,"y":19771.3616322119},"targetPosition":{"x":22066.186276334145,"y":20529.009571934468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"838799c3-76c5-4e9e-9291-e297d352969c","savedPayload":{"position":{"x":22065.803142369426,"y":20526.84166510073},"targetPosition":{"x":22307.456289666403,"y":21285.12338542995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 200 Begin","project":"Superalgos","id":"f36ca4d6-1114-4958-9bf2-09cd34536077","savedPayload":{"position":{"x":22222.312816984308,"y":20500.334332454528},"targetPosition":{"x":22311.26706375412,"y":21290.59847028023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 200 Begin","id":"652e1cae-11c0-489c-a820-03296a362c77"}}},{"type":"Polygon Vertex","name":"SMA 200 End","project":"Superalgos","id":"af95d8b6-43cf-4529-910a-8713ab69fb13","savedPayload":{"position":{"x":22377.919327956977,"y":20498.471287512388},"targetPosition":{"x":22311.26706375412,"y":21290.59847028023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 200 End","id":"4e4458f4-c6ca-4235-8734-8e833d3722f2"}}}],"id":"796fa379-26a6-4443-b515-1be86217f891","savedPayload":{"position":{"x":22311.26706375412,"y":21290.59847028023},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 250","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.BLACK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"6f488fbe-fb26-4965-9ad2-be64bc66477e","savedPayload":{"position":{"x":22530.086921798335,"y":19701.871751341794},"targetPosition":{"x":22596.76943743385,"y":20494.258757218267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1860376f-2657-41cb-84d1-10c324f64535","savedPayload":{"position":{"x":22596.91136374727,"y":20492.063671246062},"targetPosition":{"x":22663.742585832366,"y":21285.127703607184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 250 End","project":"Superalgos","id":"e513348c-19d0-49e5-a77f-e6059d459335","savedPayload":{"position":{"x":22756.051910859533,"y":20500.597731439222},"targetPosition":{"x":22667.051965425828,"y":21290.69349377176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 250 End","id":"8ddf18b2-93b4-4422-9e64-f9fc22f5de52"}}},{"type":"Polygon Vertex","name":"SMA 250 Begin","project":"Superalgos","id":"ddd52ba0-601f-4121-908e-9cd42450ecaa","savedPayload":{"position":{"x":22908.48358361343,"y":20533.194982601733},"targetPosition":{"x":22667.051965425828,"y":21290.69349377176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 250 Begin","id":"52aefae1-6ceb-47c4-a82d-ac55a7b91b25"}}}],"id":"3ec27802-69a6-4c76-8bf5-ba92335ff928","savedPayload":{"position":{"x":22667.051965425828,"y":21290.69349377176},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 500","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.BLACK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b8892640-241d-4817-90b9-142d50f45575","savedPayload":{"position":{"x":23232.866489199685,"y":19791.14658948157},"targetPosition":{"x":23121.800040948587,"y":20578.526720682818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"640d28c5-0762-4fe0-8d3b-b2b2fd178cbe","savedPayload":{"position":{"x":23122.43562347258,"y":20576.347090860247},"targetPosition":{"x":23011.28759626819,"y":21364.47188030187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 500 Begin","project":"Superalgos","id":"cc1d57e4-c69b-4faf-987e-1ecc6402d774","savedPayload":{"position":{"x":23276.75798656674,"y":20619.244754548083},"targetPosition":{"x":23014.125360674436,"y":21369.814888187662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 500 Begin","id":"d1ec756e-a71c-433b-ad10-ef8234617768"}}},{"type":"Polygon Vertex","name":"SMA 500 End","project":"Superalgos","id":"f5f0ed9f-dc7d-40cb-94cb-9fca1de4aacf","savedPayload":{"position":{"x":23418.13728851191,"y":20685.194456155623},"targetPosition":{"x":23014.125360674436,"y":21369.814888187662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 500 End","id":"0b2fbef6-9a30-4ed6-a98e-5ccceb77aea3"}}}],"id":"d638a3eb-6f91-4c41-9f65-981ba269343a","savedPayload":{"position":{"x":23014.125360674436,"y":21369.814888187662},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 1000","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.BLACK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"accb8fb4-da01-4314-bda3-a127f32443db","savedPayload":{"position":{"x":23899.71386486142,"y":20032.835708349812},"targetPosition":{"x":23616.118883337145,"y":20775.937332304093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2139584e-6960-4ac5-a6b2-d45aae1cfae3","savedPayload":{"position":{"x":23616.512738413443,"y":20775.661163577708},"targetPosition":{"x":23332.712587442296,"y":21519.26105630498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 1000 Begin","project":"Superalgos","id":"82d72489-eb93-4293-8b96-498e6756e89d","savedPayload":{"position":{"x":23758.100886961143,"y":20851.257836064135},"targetPosition":{"x":23335.106530718793,"y":21524.269978747765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 1000 Begin","id":"db6c9de6-aeb9-46ff-a46d-893ac56a32a2"}}},{"type":"Polygon Vertex","name":"SMA 1000 End","project":"Superalgos","id":"e781d4f3-58b9-4fce-82aa-27b669582090","savedPayload":{"position":{"x":23881.43645196623,"y":20946.820974511196},"targetPosition":{"x":23335.106530718793,"y":21524.269978747765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 1000 End","id":"e518b92f-f678-4868-ae0c-a0bd31f480eb"}}}],"id":"8042e9e4-b3be-4d8b-94bc-558b8b97a3f0","savedPayload":{"position":{"x":23335.106530718793,"y":21524.269978747765},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"9847b54e-34cd-4a44-b43f-be3c091f5ec0","savedPayload":{"position":{"x":22489.032240710487,"y":22870.422182932976},"targetPosition":{"x":23609.15081377993,"y":23990.5537578445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"SMA Base 5","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"SMA 5","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma5","project":"Superalgos","id":"5c11d2b4-671b-42ec-88b0-9dbbf0ba5a57","savedPayload":{"position":{"x":23339.416408171634,"y":23443.51500665364},"targetPosition":{"x":23463.21813254879,"y":23207.7633126285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ec513f64-7c7c-4693-ac51-b2e36f2f858c","savedPayload":{"position":{"x":23463.21813254879,"y":23207.7633126285},"targetPosition":{"x":23608.788123047783,"y":22929.959227604573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 10","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma10","project":"Superalgos","id":"5e333385-55ff-48d1-abb0-0757ef26a20c","savedPayload":{"position":{"x":23127.385830252755,"y":23261.832532347085},"targetPosition":{"x":23346.521193642642,"y":23110.84930039687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c599221d-9b35-48c5-bb4d-4c4fd0c8c4e8","savedPayload":{"position":{"x":23346.521193642642,"y":23110.84930039687},"targetPosition":{"x":23608.788123047783,"y":22929.959227604573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 15","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma15","project":"Superalgos","id":"0cb3bdcb-7c0b-4cfa-9357-0b142c1e230b","savedPayload":{"position":{"x":23033.487415441854,"y":22999.31522464764},"targetPosition":{"x":23297.959059224777,"y":22967.463107639473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f3ff46f2-80e9-458f-b7ca-8f0fe7c7cff2","savedPayload":{"position":{"x":23297.959059224777,"y":22967.463107639473},"targetPosition":{"x":23608.788123047783,"y":22929.959227604573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 20","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma20","project":"Superalgos","id":"8dc1f569-2c1e-4842-b135-528ba461ca30","savedPayload":{"position":{"x":23066.624986642277,"y":22724.388094840724},"targetPosition":{"x":23316.317398514704,"y":22819.05962928242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"14a4ef21-076b-418a-98a6-7b3ff64f2a9f","savedPayload":{"position":{"x":23316.317398514704,"y":22819.05962928242},"targetPosition":{"x":23608.788123047783,"y":22929.959227604573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 25","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma25","project":"Superalgos","id":"2d76e840-cdda-48e8-9290-342c2a143b6d","savedPayload":{"position":{"x":23225.101381303546,"y":22496.774323007907},"targetPosition":{"x":23401.1552901458,"y":22695.543738038014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d8d31fc6-55db-4a89-bcc8-4e33a3583542","savedPayload":{"position":{"x":23401.1552901458,"y":22695.543738038014},"targetPosition":{"x":23608.788123047783,"y":22929.959227604573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 50","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma50","project":"Superalgos","id":"9a0af05e-b760-4a22-85ab-8b3c64b3ef29","savedPayload":{"position":{"x":23470.10703591069,"y":22366.63328471307},"targetPosition":{"x":23534.1513746402,"y":22626.837396589388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48d5643b-e652-4c4d-b7cf-37e9656bfd43","savedPayload":{"position":{"x":23534.1513746402,"y":22626.837396589388},"targetPosition":{"x":23608.788123047783,"y":22929.959227604573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 100","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma100","project":"Superalgos","id":"1987b0ae-9510-45e9-b7ed-3802c3f28e1d","savedPayload":{"position":{"x":23746.909213935247,"y":22367.982550989895},"targetPosition":{"x":23683.662252003953,"y":22625.355238959764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4ad1bbaa-2c37-4009-bbdd-d154be78b2d0","savedPayload":{"position":{"x":23683.662252003953,"y":22625.355238959764},"targetPosition":{"x":23608.788123047783,"y":22929.959227604573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 150","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma150","project":"Superalgos","id":"611d7c8b-2cb8-412b-bd1b-2a04b3a796c0","savedPayload":{"position":{"x":23992.490238327653,"y":22496.435969709062},"targetPosition":{"x":23815.798670137152,"y":22696.070081993832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8ef64a02-b88d-4635-8d88-99121a55ed73","savedPayload":{"position":{"x":23815.798670137152,"y":22696.070081993832},"targetPosition":{"x":23608.788123047783,"y":22929.959227604573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 200","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma200","project":"Superalgos","id":"d8bbc57a-1eda-43c8-a865-1ceeb879a755","savedPayload":{"position":{"x":24150.41922437878,"y":22724.436143966795},"targetPosition":{"x":23901.301579804272,"y":22818.964060841186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"06680ab8-0ec9-448e-9854-97bf413f4133","savedPayload":{"position":{"x":23901.301579804272,"y":22818.964060841186},"targetPosition":{"x":23608.788123047783,"y":22929.959227604573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 250","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma250","project":"Superalgos","id":"496ce598-2c93-40df-8f2e-effaeff2b665","savedPayload":{"position":{"x":24184.05779906247,"y":22999.25802659542},"targetPosition":{"x":23919.86580999489,"y":22967.475177328546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"503ab933-6f8f-4fcb-a0e6-ecf1b6e8b24b","savedPayload":{"position":{"x":23919.86580999489,"y":22967.475177328546},"targetPosition":{"x":23608.788123047783,"y":22929.959227604573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 500","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma500","project":"Superalgos","id":"67dd80e5-30f9-48b2-b661-e40acde070cc","savedPayload":{"position":{"x":24085.27038873185,"y":23258.603143586282},"targetPosition":{"x":23866.857909674105,"y":23108.02767390209},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a4ab02a6-f6c0-4b8f-98d9-e24b66e492ab","savedPayload":{"position":{"x":23866.857909674105,"y":23108.02767390209},"targetPosition":{"x":23608.788123047783,"y":22929.959227604573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 1000","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma1000","project":"Superalgos","id":"359489a0-97b9-49f8-8f35-2f6247b570a9","savedPayload":{"position":{"x":23877.390050813414,"y":23442.750592114575},"targetPosition":{"x":23754.01109188948,"y":23207.411949625443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"88560ba5-2c50-4236-90b6-47d19ac3afa5","savedPayload":{"position":{"x":23754.01109188948,"y":23207.411949625443},"targetPosition":{"x":23608.788123047783,"y":22929.959227604573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa2c0f1e-8a0e-4da1-97df-6815890e5770","savedPayload":{"position":{"x":23609.15662950315,"y":22931.871323135456},"targetPosition":{"x":23609.15081377993,"y":23990.5537578445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"888c381d-457d-4421-8401-a7475b42ff03","savedPayload":{"position":{"x":24061.5,"y":24313.932852445505},"targetPosition":{"x":24399,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9b2443b7-9276-4fa3-b4b3-b9b991d886d8","savedPayload":{"position":{"x":18450,"y":18707},"targetPosition":{"x":18900,"y":18707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9cfffc48-486a-48cb-b641-98c82e314d3a","savedPayload":{"position":{"x":18900,"y":18707},"targetPosition":{"x":18900,"y":18707},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},{"type":"Trading Engine","name":"Low-Frequency","project":"Superalgos","tradingCurrent":{"type":"Trading Current","name":"New Trading Current","project":"Superalgos","tradingEpisode":{"type":"Trading Episode","name":"New Trading Episode","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5eb83933-432a-4029-8a3e-e4d8d760dd27","savedPayload":{"position":{"x":31167.323708986285,"y":23977.688964335575},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"8ba7fe0c-c5df-408e-be8a-ebde90f2a50d","savedPayload":{"position":{"x":31238.95073256315,"y":23884.34280982911},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d7faf864-3fa8-4280-b7d3-a022338b0dfe","savedPayload":{"position":{"x":31325.698970329096,"y":23804.852695273097},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f6722d05-77f9-4a68-ba69-38f56cdc7e91","savedPayload":{"position":{"x":31424.932620976335,"y":23741.633887574382},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"beginRate":{"type":"Begin Rate","name":"New Begin Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"613903ae-45e4-4eee-a178-d6ec049490ec","savedPayload":{"position":{"x":31533.6365202446,"y":23696.60725821463},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"endRate":{"type":"End Rate","name":"New End Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b2bfb20d-64d5-4c98-b0cd-a466654c1e6a","savedPayload":{"position":{"x":31648.50775516145,"y":23671.140918542358},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"2615490b-e968-4607-a6e5-009c3ae78957","savedPayload":{"position":{"x":31766.056021381584,"y":23666.008650401927},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"6bcc264b-a189-4aca-8397-d3520bdf4078","savedPayload":{"position":{"x":31882.7096743182,"y":23681.366395163728},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"headOfTheMarket":{"type":"Head Of The Market","name":"New Head Of The Market","config":"{\n\"initialValue\": false\n}","project":"Superalgos","id":"f7e00135-13b1-4265-95da-dd3a2c763b6f","savedPayload":{"position":{"x":31994.92425175642,"y":23716.747515524563},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"processDate":{"type":"Process Date","name":"New Process Date","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d9163f6e-0d50-4ddd-b13b-14f7b4124ec8","savedPayload":{"position":{"x":32099.29017054409,"y":23771.076974045984},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"episodeBaseAsset":{"type":"Episode Base Asset","name":"New Episode Base Asset","project":"Superalgos","balance":{"type":"Balance","name":"Base Asset","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"72f6a6b6-f35b-4d80-b8ad-4a4ed55f2387","savedPayload":{"position":{"x":22098.11187050857,"y":28352.010025698582},"targetPosition":{"x":22007.047967690567,"y":29274.785163911532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"beginBalance":{"type":"Begin Balance","name":"New Begin Balance","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0176b616-7628-42b1-8c06-4cfb1bfd05aa","savedPayload":{"position":{"x":22228.95762577073,"y":28374.45877465838},"targetPosition":{"x":22007.047967690567,"y":29274.785163911532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"endBalance":{"type":"End Balance","name":"New End Balance","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d3844a95-57a8-48f5-bfa9-e093bf815f57","savedPayload":{"position":{"x":22354.94567161915,"y":28415.250076258388},"targetPosition":{"x":22007.047967690567,"y":29274.785163911532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hits":{"type":"Hits","name":"New Hits","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c5eff46f-38bc-4ab9-9d07-ed6c5e161895","savedPayload":{"position":{"x":22473.785257190313,"y":28473.54288727863},"targetPosition":{"x":22007.047967690567,"y":29274.785163911532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"fails":{"type":"Fails","name":"New Fails","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4a05a6d4-add4-4b8e-a64f-82f1cb8363cd","savedPayload":{"position":{"x":22583.10027230804,"y":28548.14984671618},"targetPosition":{"x":22007.047967690567,"y":29274.785163911532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hitRatio":{"type":"Hit Ratio","name":"New Hit Ratio","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"348b1305-f52f-4dd0-b8f7-d0950aed6604","savedPayload":{"position":{"x":22680.678550725854,"y":28637.553733541827},"targetPosition":{"x":22007.047967690567,"y":29274.785163911532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"profitLoss":{"type":"Profit Loss","name":"New Profit Loss","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"be210037-a2bd-445e-8a18-081e3e4fc995","savedPayload":{"position":{"x":22764.53963470937,"y":28739.938856938978},"targetPosition":{"x":22007.047967690567,"y":29274.785163911532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"ROI":{"type":"ROI","name":"New ROI","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"405d086e-9461-4e0d-b875-8decf729a434","savedPayload":{"position":{"x":22832.980345134085,"y":28853.232493838477},"targetPosition":{"x":22007.047967690567,"y":29274.785163911532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"annualizedRateOfReturn":{"type":"Annualized Rate Of Return","name":"New Annualized Rate Of Return","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2fa70a73-35be-40a2-a0e8-6ef12e76a105","savedPayload":{"position":{"x":22884.612418088982,"y":28975.16895263282},"targetPosition":{"x":22007.047967690567,"y":29274.785163911532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hitFail":{"type":"Hit Fail","name":"New Hit Fail","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"388b582a-74fb-4245-b831-892b19868e85","savedPayload":{"position":{"x":22918.40627908166,"y":29103.545752069178},"targetPosition":{"x":22007.047967690567,"y":29274.785163911532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"11def55a-16a2-4105-a2c0-2dc7b39422d5","savedPayload":{"position":{"x":32192.636325050553,"y":23842.703997622848},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"episodeQuotedAsset":{"type":"Episode Quoted Asset","name":"New Episode Quoted Asset","project":"Superalgos","balance":{"type":"Balance","name":"Quoted Asset","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"31600195-9fe6-48f2-a744-12609943a948","savedPayload":{"position":{"x":32454.57552335716,"y":23279.57737679018},"targetPosition":{"x":32272.126439606567,"y":23929.452235388795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"beginBalance":{"type":"Begin Balance","name":"New Begin Balance","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"020629af-dc56-40f5-b724-aa7a38017577","savedPayload":{"position":{"x":32545.205290153775,"y":23312.157377655625},"targetPosition":{"x":32272.126439606567,"y":23929.452235388795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"endBalance":{"type":"End Balance","name":"New End Balance","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3dafbad0-221d-4728-a507-682516c5c7d2","savedPayload":{"position":{"x":32630.275959047616,"y":23357.30372169314},"targetPosition":{"x":32272.126439606567,"y":23929.452235388795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hits":{"type":"Hits","name":"New Hits","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ff31de06-cf8f-4a56-8bd3-0fc978257133","savedPayload":{"position":{"x":32708.055736543567,"y":23414.097359529438},"targetPosition":{"x":32272.126439606567,"y":23929.452235388795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"fails":{"type":"Fails","name":"New Fails","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"48db7b5c-f10c-4d10-9662-0f28bebcc16a","savedPayload":{"position":{"x":32776.96125067017,"y":23481.382136477496},"targetPosition":{"x":32272.126439606567,"y":23929.452235388795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hitRatio":{"type":"Hit Ratio","name":"New Hit Ratio","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7e8dabb5-0d33-470a-9c62-92bfd48fbc66","savedPayload":{"position":{"x":32835.58978386688,"y":23557.78832851192},"targetPosition":{"x":32272.126439606567,"y":23929.452235388795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"profitLoss":{"type":"Profit Loss","name":"New Profit Loss","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b87d87fa-37b4-4a84-ab28-44e1f69bf485","savedPayload":{"position":{"x":32882.74782826856,"y":23641.760525900158},"targetPosition":{"x":32272.126439606567,"y":23929.452235388795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"ROI":{"type":"ROI","name":"New ROI","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"37ab9b9a-d76c-4d1e-bbb0-8f81d852ef5f","savedPayload":{"position":{"x":32917.475382083765,"y":23731.5892968592},"targetPosition":{"x":32272.126439606567,"y":23929.452235388795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"annualizedRateOfReturn":{"type":"Annualized Rate Of Return","name":"New Annualized Rate Of Return","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3eefd2a4-05e5-45cc-8319-b2f473907651","savedPayload":{"position":{"x":32939.065492462796,"y":23825.445986657112},"targetPosition":{"x":32272.126439606567,"y":23929.452235388795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hitFail":{"type":"Hit Fail","name":"New Hit Fail","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"7b13fa53-921e-457b-bde5-dd4c13247936","savedPayload":{"position":{"x":32947.07864701909,"y":23921.419943749945},"targetPosition":{"x":32272.126439606567,"y":23929.452235388795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9d3a2c33-2d9f-4d01-a410-9c29b534b886","savedPayload":{"position":{"x":32272.126439606567,"y":23929.452235388795},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingEpisodeCounters":{"type":"Trading Episode Counters","name":"New Trading Episode Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6c6579c8-fb13-41f6-a25b-1833d2963640","savedPayload":{"position":{"x":21684.93018412795,"y":29547.22017543007},"targetPosition":{"x":21714.345247305282,"y":29883.435886036033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"strategies":{"type":"Strategies","name":"New Strategies","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"caf6b80c-fff7-4c1e-abf9-3b37cd8d3806","savedPayload":{"position":{"x":21815.833454637974,"y":29561.556415158506},"targetPosition":{"x":21714.345247305282,"y":29883.435886036033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"positions":{"type":"Positions","name":"New Positions","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e9184950-7342-4ba0-96cd-bf51ac20c432","savedPayload":{"position":{"x":21931.286065574488,"y":29624.895886483377},"targetPosition":{"x":21714.345247305282,"y":29883.435886036033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"orders":{"type":"Orders","name":"New Orders","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"668e9060-80e2-41d4-8528-65b40a9dc523","savedPayload":{"position":{"x":22013.711403502934,"y":29727.59572906921},"targetPosition":{"x":21714.345247305282,"y":29883.435886036033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"hits":{"type":"Hits","name":"New Hits","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e9beeed6-f4c1-4862-a84a-9215a5dc0b76","savedPayload":{"position":{"x":22050.560957911246,"y":29854.0208228587},"targetPosition":{"x":21714.345247305282,"y":29883.435886036033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"fails":{"type":"Fails","name":"New Fails","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"db9005e4-0895-4a13-80de-3d7592477457","savedPayload":{"position":{"x":22036.22471818281,"y":29984.924093368725},"targetPosition":{"x":21714.345247305282,"y":29883.435886036033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[{"type":"User Defined Counter","name":"New User Defined Counter","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"43f2fef0-fffd-45d1-9ded-ba2bda6908cb","savedPayload":{"position":{"x":21972.88524685794,"y":30100.37670430524},"targetPosition":{"x":21714.345247305282,"y":29883.435886036033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"id":"5a0d3549-0f15-4815-b4b3-11b78cc0ee8f","savedPayload":{"position":{"x":32335.345247305282,"y":24028.685886036033},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingEpisodeStatistics":{"type":"Trading Episode Statistics","name":"New Trading Episode Statistics","project":"Superalgos","profitLoss":{"type":"Profit Loss","name":"New Profit Loss","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e3d6d413-30e8-4d83-9fdb-0c344065bb25","savedPayload":{"position":{"x":21818.2020030197,"y":29319.70836409237},"targetPosition":{"x":21759.371876665035,"y":29992.139785304298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"ROI":{"type":"ROI","name":"New ROI","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9d578e19-1f24-46a0-95bc-ac1b0db612d8","savedPayload":{"position":{"x":22071.052190598683,"y":29393.407472909},"targetPosition":{"x":21759.371876665035,"y":29992.139785304298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hitFail":{"type":"Hit Fail","name":"New Hit Fail","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"660dcca3-ccee-4e7c-91b2-2c23884d901e","savedPayload":{"position":{"x":22276.45187577034,"y":29558.258148765883},"targetPosition":{"x":21759.371876665035,"y":29992.139785304298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2c041b27-ee4b-444d-a80f-d4441a072079","savedPayload":{"position":{"x":22403.13081842009,"y":29789.163370638915},"targetPosition":{"x":21759.371876665035,"y":29992.139785304298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"annualizedRateOfReturn":{"type":"Annualized Rate Of Return","name":"New Annualized Rate Of Return","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"adaf52e7-6cfb-419c-a977-8453841db79c","savedPayload":{"position":{"x":22431.803297876962,"y":30050.969911658965},"targetPosition":{"x":21759.371876665035,"y":29992.139785304298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Write your Formula code here.","project":"Superalgos","id":"03dfd055-de12-4acd-a2d6-09571bcb476b","savedPayload":{"position":{"x":22358.104189060337,"y":30303.820099237946},"targetPosition":{"x":22058.738032862686,"y":30147.979942271122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c4634159-3ab1-4053-bcd3-ef6807874149","savedPayload":{"position":{"x":22058.738032862686,"y":30147.979942271122},"targetPosition":{"x":21759.371876665035,"y":29992.139785304298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Write your Formula code here.","project":"Superalgos","id":"e26802c2-6390-430a-8223-a22b45fa625f","savedPayload":{"position":{"x":22193.253513203446,"y":30509.219784409608},"targetPosition":{"x":21976.31269493424,"y":30250.679784856955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"40e19232-9c8e-4f03-857e-98a57ac22551","savedPayload":{"position":{"x":21976.31269493424,"y":30250.679784856955},"targetPosition":{"x":21759.371876665035,"y":29992.139785304298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fb2b103c-aa99-4528-b517-26f8b19c8f2e","savedPayload":{"position":{"x":32380.371876665035,"y":24137.389785304298},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"distanceToTradingEvent":{"type":"Distance To Trading Event","name":"New Distance To Trading Event","project":"Superalgos","triggerOn":{"type":"Trigger On","name":"New Trigger On","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"902bb26e-1767-438f-ad17-90ecdf895917","savedPayload":{"position":{"x":22986.377354774188,"y":29204.45520364069},"targetPosition":{"x":22303.52657611185,"y":29837.47376203433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"triggerOff":{"type":"Trigger Off","name":"New Trigger Off","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"38a99470-0ba3-449b-b390-e91b641df71e","savedPayload":{"position":{"x":23077.130865145038,"y":29312.729377378433},"targetPosition":{"x":22303.52657611185,"y":29837.47376203433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"takePosition":{"type":"Take Position","name":"New Take Position","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2ab42094-807b-4a1b-a98e-0461ac76b96a","savedPayload":{"position":{"x":23146.35198301012,"y":29438.64286448589},"targetPosition":{"x":22303.52657611185,"y":29837.47376203433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"closePosition":{"type":"Close Position","name":"New Close Position","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"266078a8-278e-4725-a40a-517565ed5be2","savedPayload":{"position":{"x":23198.933264566556,"y":29574.03599112221},"targetPosition":{"x":22303.52657611185,"y":29837.47376203433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhase":{"type":"Next Phase","name":"New Next Phase","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"700d730c-0ce4-41e5-beb4-d247ea87ff39","savedPayload":{"position":{"x":23228.34578524394,"y":29716.860826038508},"targetPosition":{"x":22303.52657611185,"y":29837.47376203433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhase":{"type":"Move To Phase","name":"New Move To Phase","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"db34eaee-4206-47f0-9611-5157b8e8b5be","savedPayload":{"position":{"x":23236.204582193706,"y":29862.880596804724},"targetPosition":{"x":22303.52657611185,"y":29837.47376203433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"createOrder":{"type":"Create Order","name":"New Create Order","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0bbe164f-0d90-4784-a367-f78123ec00d7","savedPayload":{"position":{"x":23220.429528175213,"y":30008.37037019478},"targetPosition":{"x":22303.52657611185,"y":29837.47376203433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"cancelOrder":{"type":"Cancel Order","name":"New Cancel Order","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8c07e14b-2113-4651-9370-ac2506b7662a","savedPayload":{"position":{"x":23182.5619690346,"y":30149.849521515825},"targetPosition":{"x":22303.52657611185,"y":29837.47376203433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"closeOrder":{"type":"Close Order","name":"New Close Order","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3a0488f3-87b0-4f44-92f9-5abc53a68d58","savedPayload":{"position":{"x":23102.559301420217,"y":30312.23805593147},"targetPosition":{"x":22303.52657611185,"y":29837.47376203433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5fa3b58c-7e8c-4327-acbf-d6b367c2248d","savedPayload":{"position":{"x":32405.838216337306,"y":24252.261020221147},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"candle":{"type":"Candle","name":"New Candle","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"99e6ab4d-b289-4ffa-8011-7cd6cc8e7be2","savedPayload":{"position":{"x":32553.604147815222,"y":24063.930408316413},"targetPosition":{"x":32410.970484477737,"y":24369.809286441283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"30567d08-6c02-4566-b96e-9d308511550a","savedPayload":{"position":{"x":32659.801585651156,"y":24141.797591370996},"targetPosition":{"x":32410.970484477737,"y":24369.809286441283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"open":{"type":"Open","name":"New Open","project":"Superalgos","id":"3a56e6c9-1780-496e-88f1-8bad9ba7df83","savedPayload":{"position":{"x":32728.11674399298,"y":24254.37748806887},"targetPosition":{"x":32410.970484477737,"y":24369.809286441283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"close":{"type":"Close","name":"New Close","project":"Superalgos","id":"b2eaedfb-9589-49f1-8b38-91384c91821c","savedPayload":{"position":{"x":32748.149259261612,"y":24384.530829677085},"targetPosition":{"x":32410.970484477737,"y":24369.809286441283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"min":{"type":"Min","name":"New Min","project":"Superalgos","id":"ee29c140-d133-4265-a4ad-1d3f9bd098c6","savedPayload":{"position":{"x":32716.849362602607,"y":24512.442949778768},"targetPosition":{"x":32410.970484477737,"y":24369.809286441283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"max":{"type":"Max","name":"New Max","project":"Superalgos","id":"a6bcef43-3109-4da4-9fdc-fa9f03e5ce6b","savedPayload":{"position":{"x":32638.982179548024,"y":24618.6403876147},"targetPosition":{"x":32410.970484477737,"y":24369.809286441283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"index":{"type":"Index","name":"New Index","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d4a0e8f8-bf5e-42d1-b5bc-b5de3ed078dc","savedPayload":{"position":{"x":32526.40228285015,"y":24686.955545956527},"targetPosition":{"x":32410.970484477737,"y":24369.809286441283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"83f13bc0-737a-4679-aab3-e596a728693f","savedPayload":{"position":{"x":32410.970484477737,"y":24369.809286441283},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"cycle":{"type":"Cycle","name":"New Cycle","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c9986759-eca8-4a11-b5fa-4930d3022ecc","savedPayload":{"position":{"x":21900.99901759908,"y":30229.395806241497},"targetPosition":{"x":21774.612739715936,"y":30341.212939377903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c0aa558a-35de-42e0-a6c0-48c45da865a4","savedPayload":{"position":{"x":21942.585848190396,"y":30325.038968640118},"targetPosition":{"x":21774.612739715936,"y":30341.212939377903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"lastBegin":{"type":"Last Begin","name":"New Last Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"983768b0-972f-4ade-98e1-865a8c733117","savedPayload":{"position":{"x":21920.012660540444,"y":30426.860038127525},"targetPosition":{"x":21774.612739715936,"y":30341.212939377903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"lastEnd":{"type":"Last End","name":"New Last End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3f54c869-6154-478d-94fc-c0dbde606801","savedPayload":{"position":{"x":21841.90164509707,"y":30495.966826930395},"targetPosition":{"x":21774.612739715936,"y":30341.212939377903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"10a54b94-404f-4107-9f37-5ab09b13a0e5","savedPayload":{"position":{"x":32395.612739715936,"y":24486.4629393779},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"772a16fc-f0e4-4bfa-8045-bf8bc984eb53","savedPayload":{"position":{"x":31736.612934909983,"y":24340.36619996968},"targetPosition":{"x":31478.301618063546,"y":24963.9848844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"strategy":{"type":"Strategy","name":"New Strategy","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"989dc7f3-b431-49a1-b77e-a44a9c5cb9dd","savedPayload":{"position":{"x":21202.464124525155,"y":29365.868025765194},"targetPosition":{"x":21682.054446484464,"y":30159.030577879887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"6d661273-f8fd-48ac-8258-d4851c18e9b5","savedPayload":{"position":{"x":21406.398658488935,"y":29274.038485276607},"targetPosition":{"x":21682.054446484464,"y":30159.030577879887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6440a481-de19-4054-ada3-aaf4847f7bf5","savedPayload":{"position":{"x":21626.26468914486,"y":29233.738250541508},"targetPosition":{"x":21682.054446484464,"y":30159.030577879887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d73398fd-bef4-439b-b015-7c485f323fd9","savedPayload":{"position":{"x":21849.062545766,"y":29247.232622597738},"targetPosition":{"x":21682.054446484464,"y":30159.030577879887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"beginRate":{"type":"Begin Rate","name":"New Begin Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8ab7d69f-a2e4-42dc-b3c8-e55c6e9395ed","savedPayload":{"position":{"x":22062.44492072017,"y":29313.72611608966},"targetPosition":{"x":21682.054446484464,"y":30159.030577879887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"endRate":{"type":"End Rate","name":"New End Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"752b56ac-dacf-4de6-b9cd-1f907c4639d8","savedPayload":{"position":{"x":22253.713227664477,"y":29429.35166685984},"targetPosition":{"x":21682.054446484464,"y":30159.030577879887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"95eaccfe-cf23-4bde-9cc3-4d4ac22c4147","savedPayload":{"position":{"x":22411.75092039691,"y":29587.384444577714},"targetPosition":{"x":21682.054446484464,"y":30159.030577879887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"e982b53e-71c4-40bd-a158-b477b51c18e6","savedPayload":{"position":{"x":22527.38092688656,"y":29778.650896123785},"targetPosition":{"x":21682.054446484464,"y":30159.030577879887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"No Stage\"\n}","project":"Superalgos","id":"b3fcda1e-aaed-4f29-8f4e-6a3c53f41d5c","savedPayload":{"position":{"x":22593.88141421011,"y":29992.02388636535},"targetPosition":{"x":21682.054446484464,"y":30159.030577879887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"index":{"type":"Index","name":"New Index","config":"{\n\"initialValue\": -1\n}","project":"Superalgos","id":"2b5497a7-5945-4c6d-89c7-328f488efcd9","savedPayload":{"position":{"x":22607.376547573534,"y":30214.816208799464},"targetPosition":{"x":21682.054446484464,"y":30159.030577879887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"strategyName":{"type":"Strategy Name","name":"New Strategy Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"165503a7-6932-4492-b55d-e1f078e84184","savedPayload":{"position":{"x":22567.075749901494,"y":30434.676995693146},"targetPosition":{"x":21682.054446484464,"y":30159.030577879887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"strategyCounters":{"type":"Strategy Counters","name":"New Strategy Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6444a48f-005e-435d-971f-6f4b918b448b","savedPayload":{"position":{"x":22872.303885871603,"y":30878.59617854075},"targetPosition":{"x":22475.237046571565,"y":30638.64370636241},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"0959dc76-33eb-416f-ba6d-49bf7bdedcfe","savedPayload":{"position":{"x":22475.237046571565,"y":30638.64370636241},"targetPosition":{"x":21682.054446484464,"y":30159.030577879887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4ae1a2e2-3986-426d-887c-854ffcd0bacf","savedPayload":{"position":{"x":31955.598695364464,"y":24486.68780711388},"targetPosition":{"x":31478.301618063546,"y":24963.9848844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"position":{"type":"Position","name":"New Position","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3477c173-53bc-42ea-a3b7-4f00a1c02015","savedPayload":{"position":{"x":31955.823563100446,"y":24046.67376276241},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"9261f02f-9032-4602-9770-072e9268313c","savedPayload":{"position":{"x":32072.477216037063,"y":24031.31601800061},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f0b88792-57a2-4081-90d4-e38705f487cd","savedPayload":{"position":{"x":32190.0254822572,"y":24036.44828614104},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3ef9a99a-9339-4ff9-b634-aa59a5f8e28a","savedPayload":{"position":{"x":32304.896717174048,"y":24061.91462581331},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"beginRate":{"type":"Begin Rate","name":"New Begin Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4d36149a-9c7e-4646-8c15-64a9404c8970","savedPayload":{"position":{"x":32413.600616442312,"y":24106.941255173064},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"endRate":{"type":"End Rate","name":"New End Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"207d3050-dd30-4da0-ab7d-c29819d88f66","savedPayload":{"position":{"x":32512.83426708955,"y":24170.16006287178},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"a927c8ca-6401-40b6-a322-697e234c031c","savedPayload":{"position":{"x":32599.582504855498,"y":24249.650177427793},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"cabf5599-bd58-4d1c-92f5-9de5799d6aa4","savedPayload":{"position":{"x":32671.209528432362,"y":24342.996331934257},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"No Stage\"\n}","project":"Superalgos","id":"eab14f99-22d2-492d-b398-1aac390d7066","savedPayload":{"position":{"x":32725.538986953783,"y":24447.362250721926},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"entryTargetRate":{"type":"Entry Target Rate","name":"New Entry Target Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"71b3e7d9-80d0-422d-999e-99549f5ab59d","savedPayload":{"position":{"x":32760.920107314618,"y":24559.576828160145},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitTargetRate":{"type":"Exit Target Rate","name":"New Exit Target Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"bc637b55-04bd-4701-9683-78593832cb09","savedPayload":{"position":{"x":32776.27785207642,"y":24676.23048109676},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"stopLoss":{"type":"Stop Loss","name":"New Stop Loss","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a2c06262-0906-4aac-8048-86e6c861a3f1","savedPayload":{"position":{"x":22456.907595062607,"y":30507.804483134954},"targetPosition":{"x":22150.145583935988,"y":30648.5287473169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3dbcd6ca-7f17-4e43-a211-a0052d85a2a8","savedPayload":{"position":{"x":22480.530525676448,"y":30579.59370346288},"targetPosition":{"x":22150.145583935988,"y":30648.5287473169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"stopLossPhase":{"type":"Stop Loss Phase","name":"New Stop Loss Phase","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"cd72e0d5-5947-4dba-98e0-a6b245d0589a","savedPayload":{"position":{"x":22487.58657574404,"y":30654.839614737328},"targetPosition":{"x":22150.145583935988,"y":30648.5287473169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"stopLossPosition":{"type":"Stop Loss Position","name":"New Stop Loss Position","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"952c2041-9073-4207-a65d-2676a4d17bf7","savedPayload":{"position":{"x":22477.721925451508,"y":30729.769072767427},"targetPosition":{"x":22150.145583935988,"y":30648.5287473169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"initialValue":{"type":"Initial Value","name":"New Initial Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"081a3ca6-613e-4fa2-944f-b2d153f3976c","savedPayload":{"position":{"x":22451.43122955571,"y":30800.624801649385},"targetPosition":{"x":22150.145583935988,"y":30648.5287473169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"finalValue":{"type":"Final Value","name":"New Final Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"da4d0a4f-f6d5-47f4-98f4-3ebe8dbfd5ad","savedPayload":{"position":{"x":22410.032813329242,"y":30863.853799269295},"targetPosition":{"x":22150.145583935988,"y":30648.5287473169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6cc8dba0-5f83-4a35-af20-ec8c0f2cfcff","savedPayload":{"position":{"x":32771.145583935984,"y":24793.778747316897},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2685e828-a599-44df-9fc7-3ddcd004339a","savedPayload":{"position":{"x":22451.217363179545,"y":30678.082300040012},"targetPosition":{"x":22124.679244263716,"y":30763.39998223375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"85b941f4-bdf3-44ff-bb77-bd65eb39e6b5","savedPayload":{"position":{"x":22462.01534111084,"y":30752.8829596539},"targetPosition":{"x":22124.679244263716,"y":30763.39998223375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"takeProfitPhase":{"type":"Take Profit Phase","name":"New Take Profit Phase","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"bb18fe69-5012-4f64-ad50-387872f0c4e2","savedPayload":{"position":{"x":22455.89787855336,"y":30828.21098669521},"targetPosition":{"x":22124.679244263716,"y":30763.39998223375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"takeProfitPosition":{"type":"Take Profit Position","name":"New Take Profit Position","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"90a1092c-47e5-4d98-9d9a-c1cb2f057274","savedPayload":{"position":{"x":22433.171730624024,"y":30900.289119345638},"targetPosition":{"x":22124.679244263716,"y":30763.39998223375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"initialValue":{"type":"Initial Value","name":"New Initial Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"57ef7f9f-6d22-4d67-8a2b-4707646f24fb","savedPayload":{"position":{"x":22394.976481276135,"y":30965.503059062015},"targetPosition":{"x":22124.679244263716,"y":30763.39998223375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"finalValue":{"type":"Final Value","name":"New Final Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a6692953-5973-4c51-ab28-aba3c749041f","savedPayload":{"position":{"x":22343.22739980148,"y":31020.582706597263},"targetPosition":{"x":22124.679244263716,"y":30763.39998223375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"df523873-e747-41bb-ac2e-a4091fd911e5","savedPayload":{"position":{"x":32745.679244263716,"y":24908.649982233746},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionCounters":{"type":"Position Counters","name":"New Position Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"fb374cfd-85ce-434a-98fb-29262017b4df","savedPayload":{"position":{"x":32700.652614903967,"y":25017.35388150201},"targetPosition":{"x":32401.286458706316,"y":24861.513724535187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"9c24f6bf-cc20-4384-abf5-db31a0adfe75","savedPayload":{"position":{"x":32401.286458706316,"y":24861.513724535187},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionStatistics":{"type":"Position Statistics","name":"New Position Statistics","project":"Superalgos","profitLoss":{"type":"Profit Loss","name":"New Profit Loss","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"45ce7818-05a2-4bcb-b822-034f801e3efa","savedPayload":{"position":{"x":22351.04644791891,"y":31015.390122023528},"targetPosition":{"x":22016.43380720525,"y":30971.337532149257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"ROI":{"type":"ROI","name":"New ROI","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c8373104-21d5-41d3-a551-71753683853b","savedPayload":{"position":{"x":22328.243149427806,"y":31100.493190572473},"targetPosition":{"x":22016.43380720525,"y":30971.337532149257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"hitFail":{"type":"Hit Fail","name":"New Hit Fail","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"c809d913-3522-46b3-9735-b63a32cbdc5b","savedPayload":{"position":{"x":22284.190559553543,"y":31176.7945144397},"targetPosition":{"x":22016.43380720525,"y":30971.337532149257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"cedad2f7-7afc-4d24-8318-f800a3447b24","savedPayload":{"position":{"x":22221.890789495694,"y":31239.09428449755},"targetPosition":{"x":22016.43380720525,"y":30971.337532149257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"03d2f3b4-3d5e-4b8d-b0ba-a73b52842cf0","savedPayload":{"position":{"x":22145.589465628465,"y":31283.14687437182},"targetPosition":{"x":22081.011636416857,"y":31127.24220326054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"445bfb04-2212-4586-8507-831dcc60a4d4","savedPayload":{"position":{"x":22081.011636416857,"y":31127.24220326054},"targetPosition":{"x":22016.43380720525,"y":30971.337532149257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dd3ec368-eae6-49cf-8753-b317c8e7725e","savedPayload":{"position":{"x":32637.43380720525,"y":25116.58753214925},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionBaseAsset":{"type":"Position Base Asset","name":"New Position Base Asset","project":"Superalgos","beginBalance":{"type":"Begin Balance","name":"New Begin Balance","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8c6d01dc-f258-4957-81a9-743eff6367c4","savedPayload":{"position":{"x":23409.896254278152,"y":31363.68063606183},"targetPosition":{"x":22509.38843634761,"y":31143.780022689803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"endBalance":{"type":"End Balance","name":"New End Balance","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7e0d3197-eb56-4390-b319-1e29888e5eb0","savedPayload":{"position":{"x":23349.567336864027,"y":31535.40723593963},"targetPosition":{"x":22509.38843634761,"y":31143.780022689803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"entryTargetSize":{"type":"Entry Target Size","name":"New Entry Target Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4f34b4ec-74cb-42ad-be53-3ce37b6cf429","savedPayload":{"position":{"x":23256.963875891925,"y":31691.87402220499},"targetPosition":{"x":22509.38843634761,"y":31143.780022689803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitTargetSize":{"type":"Exit Target Size","name":"New Exit Target Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"543c7935-d286-45a0-944d-95fc013f54a6","savedPayload":{"position":{"x":23135.61720895022,"y":31827.223380477255},"targetPosition":{"x":22509.38843634761,"y":31143.780022689803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"profitLoss":{"type":"Profit Loss","name":"New Profit Loss","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c6a22f90-dc9e-4f23-a5c6-db20864d5764","savedPayload":{"position":{"x":22990.199546091688,"y":31936.308214216813},"targetPosition":{"x":22509.38843634761,"y":31143.780022689803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"ROI":{"type":"ROI","name":"New ROI","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f8d76bbb-9697-4244-beed-e180394b0190","savedPayload":{"position":{"x":22826.26676518483,"y":32014.913950973765},"targetPosition":{"x":22509.38843634761,"y":31143.780022689803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hitFail":{"type":"Hit Fail","name":"New Hit Fail","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"f729b426-5742-4050-9f5f-17be937603fe","savedPayload":{"position":{"x":22649.94657753411,"y":32060.040641825},"targetPosition":{"x":22509.38843634761,"y":31143.780022689803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"49b6cd2f-d026-45a1-94a6-34da6a8a00d0","savedPayload":{"position":{"x":32557.943692649234,"y":25203.335769915197},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionQuotedAsset":{"type":"Position Quoted Asset","name":"New Position Quoted Asset","project":"Superalgos","beginBalance":{"type":"Begin Balance","name":"New Begin Balance","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7ac0990c-72be-4a29-b8f5-742e3d3a187f","savedPayload":{"position":{"x":23228.43911591012,"y":31615.565262893047},"targetPosition":{"x":22379.660808553912,"y":31242.332296252862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"endBalance":{"type":"End Balance","name":"New End Balance","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7671b848-4e6e-4671-8180-984b622a5252","savedPayload":{"position":{"x":23139.13935145123,"y":31774.08660420411},"targetPosition":{"x":22379.660808553912,"y":31242.332296252862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"entryTargetSize":{"type":"Entry Target Size","name":"New Entry Target Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3f327b74-3799-4344-8694-b2b9affaec47","savedPayload":{"position":{"x":23020.733534433813,"y":31912.100062898317},"targetPosition":{"x":22379.660808553912,"y":31242.332296252862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitTargetSize":{"type":"Exit Target Size","name":"New Exit Target Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9340a64e-303d-4e87-a281-5aba9d0735c4","savedPayload":{"position":{"x":22877.758625137816,"y":32024.220409015004},"targetPosition":{"x":22379.660808553912,"y":31242.332296252862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"profitLoss":{"type":"Profit Loss","name":"New Profit Loss","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5af6674b-b49c-4f44-bddb-0316342fa013","savedPayload":{"position":{"x":22715.599413059936,"y":32106.315855576133},"targetPosition":{"x":22379.660808553912,"y":31242.332296252862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"ROI":{"type":"ROI","name":"New ROI","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"fd0421eb-6448-4fe6-8758-54584c7b2c3c","savedPayload":{"position":{"x":22540.499047964135,"y":32155.37458622078},"targetPosition":{"x":22379.660808553912,"y":31242.332296252862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hitFail":{"type":"Hit Fail","name":"New Hit Fail","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"0ff63d38-707c-40a6-92ac-3e89744857c9","savedPayload":{"position":{"x":22359.264243549194,"y":32169.14191656447},"targetPosition":{"x":22379.660808553912,"y":31242.332296252862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"37210802-7554-4c5f-8154-b89ac2cef413","savedPayload":{"position":{"x":32464.59753814277,"y":25274.96279349206},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"37e18e8e-1d1c-42b8-a39c-ae9f169298f7","savedPayload":{"position":{"x":32101.920302508664,"y":24705.673567568363},"targetPosition":{"x":31478.301618063546,"y":24963.9848844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"strategyTriggerStage":{"type":"Strategy Trigger Stage","name":"New Strategy Trigger Stage","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"931c5ac7-f366-43ad-9343-c2d742858956","savedPayload":{"position":{"x":22154.246550066782,"y":30396.523298979308},"targetPosition":{"x":21953.020073381733,"y":30814.735082084924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"59e8db85-8e15-4cc8-b9f8-13ee48f3ac6e","savedPayload":{"position":{"x":22315.965544858773,"y":30525.37783701141},"targetPosition":{"x":21953.020073381733,"y":30814.735082084924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"383a0db7-d66b-4737-a0ad-c0fbd83141b1","savedPayload":{"position":{"x":22405.61349385632,"y":30711.5588545773},"targetPosition":{"x":21953.020073381733,"y":30814.735082084924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"98dd6291-cae7-42bb-bfe0-7258b98b3e48","savedPayload":{"position":{"x":22405.62767886511,"y":30917.895950258557},"targetPosition":{"x":21953.020073381733,"y":30814.735082084924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"beginRate":{"type":"Begin Rate","name":"New Begin Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"af5e94f8-f9fa-4efd-b476-b39e73a17647","savedPayload":{"position":{"x":22315.936067533912,"y":31104.101575435532},"targetPosition":{"x":21953.020073381733,"y":30814.735082084924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"endRate":{"type":"End Rate","name":"New End Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ff9e5f2c-39ed-4132-85ad-ea1f8bc79c77","savedPayload":{"position":{"x":22154.254695793104,"y":31232.963282180215},"targetPosition":{"x":21953.020073381733,"y":30814.735082084924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cf358488-11ec-493e-8fa1-f9e49ebc49a4","savedPayload":{"position":{"x":32153.301618063546,"y":24963.9848844148},"targetPosition":{"x":31478.301618063546,"y":24963.9848844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"strategyOpenStage":{"type":"Strategy Open Stage","name":"New Strategy Open Stage","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"479be369-3e1b-403b-8205-60b134ffe853","savedPayload":{"position":{"x":32321.1090188201,"y":24965.659187871228},"targetPosition":{"x":32101.920302508664,"y":25222.296201261237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7f4c00d9-28f8-4217-acc8-28a0610697c4","savedPayload":{"position":{"x":32389.68635797817,"y":25045.952935669604},"targetPosition":{"x":32101.920302508664,"y":25222.296201261237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"f6545702-f89a-4e30-b35b-f2b9e8e0d54a","savedPayload":{"position":{"x":32430.09515064288,"y":25143.50839095987},"targetPosition":{"x":32101.920302508664,"y":25222.296201261237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"ff2a4db2-77c1-4e50-8e93-4b19e59da2f5","savedPayload":{"position":{"x":32438.379902643595,"y":25248.776146069384},"targetPosition":{"x":32101.920302508664,"y":25222.296201261237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"beginRate":{"type":"Begin Rate","name":"New Begin Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ce4c89e0-d04d-42e1-9817-74076e9e7c4c","savedPayload":{"position":{"x":32413.729644731226,"y":25351.451859684454},"targetPosition":{"x":32101.920302508664,"y":25222.296201261237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"endRate":{"type":"End Rate","name":"New End Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"63c332fa-e15c-44ac-96eb-1dbc96754827","savedPayload":{"position":{"x":32358.557315898674,"y":25441.484917572674},"targetPosition":{"x":32101.920302508664,"y":25222.296201261237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"stageDefinedIn":{"type":"Stage Defined In","name":"New Stage Defined In","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"d5138adf-43da-40c0-8c09-3469ce877c08","savedPayload":{"position":{"x":32278.263568100298,"y":25510.062256730744},"targetPosition":{"x":32101.920302508664,"y":25222.296201261237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"stageBaseAsset":{"type":"Stage Base Asset","name":"New Stage Base Asset","project":"Superalgos","targetSize":{"type":"Target Size","name":"New Target Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ec5ef5ba-d046-4d53-b0da-d501792676be","savedPayload":{"position":{"x":22293.229573833494,"y":31973.442425127716},"targetPosition":{"x":21991.099593178667,"y":31620.67078169142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sizePlaced":{"type":"Size Placed","name":"New Size Placed","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1026f6d6-b8dd-4ecf-81b9-11dfab3a552e","savedPayload":{"position":{"x":22169.08772555278,"y":32049.68321371376},"targetPosition":{"x":21991.099593178667,"y":31620.67078169142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"shortcutKey":"r"}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"bb1b0ee5-f7f6-4646-aa36-0e08629a7042","savedPayload":{"position":{"x":22027.703459216333,"y":32083.638845163456},"targetPosition":{"x":21991.099593178667,"y":31620.67078169142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"shortcutKey":""}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9e964d4d-860e-4c93-9399-f06296a74049","savedPayload":{"position":{"x":21882.859316899143,"y":32072.062958673087},"targetPosition":{"x":21991.099593178667,"y":31620.67078169142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"29dd1ff0-989e-403b-8d43-788a8140c9e1","savedPayload":{"position":{"x":32180.708112810033,"y":25550.47104939545},"targetPosition":{"x":32101.920302508664,"y":25222.296201261237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"stageQuotedAsset":{"type":"Stage Quoted Asset","name":"New Stage Quoted Asset","project":"Superalgos","targetSize":{"type":"Target Size","name":"New Target Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8727b1ed-fbd4-4b60-ae3c-05ffc4c2cd86","savedPayload":{"position":{"x":32204.596016123734,"y":25870.565143618725},"targetPosition":{"x":32075.440357700518,"y":25558.755801396168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sizePlaced":{"type":"Size Placed","name":"New Size Placed","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"364ee3d9-3cdc-433c-8716-1d3b6bddd980","savedPayload":{"position":{"x":32101.920302508664,"y":25895.2154015311},"targetPosition":{"x":32075.440357700518,"y":25558.755801396168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"79c2e37f-7081-4d6e-b302-046e2ec27e79","savedPayload":{"position":{"x":31996.65254739915,"y":25886.930649530383},"targetPosition":{"x":32075.440357700518,"y":25558.755801396168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7d0d2ba9-182a-4c72-b8b1-e9ba6d970293","savedPayload":{"position":{"x":31899.097092108885,"y":25846.521856865675},"targetPosition":{"x":32075.440357700518,"y":25558.755801396168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48381545-119a-422d-b6ea-5868072f8cf4","savedPayload":{"position":{"x":32075.440357700518,"y":25558.755801396168},"targetPosition":{"x":32101.920302508664,"y":25222.296201261237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ecf3bffe-dd3d-4b29-b744-2a9a7dd3f7b7","savedPayload":{"position":{"x":32101.920302508664,"y":25222.296201261237},"targetPosition":{"x":31478.301618063546,"y":24963.9848844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"strategyManageStage":{"type":"Strategy Manage Stage","name":"New Strategy Manage Stage","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a1884450-68d0-41fd-a7af-f55c1fa2ac98","savedPayload":{"position":{"x":22120.096792620818,"y":31317.134330516237},"targetPosition":{"x":21682.101026388067,"y":31470.31370039613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c178d9c3-ab54-474a-aecc-e26890ba579f","savedPayload":{"position":{"x":22143.29349550404,"y":31521.868992591095},"targetPosition":{"x":21682.101026388067,"y":31470.31370039613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"f3b3a0fa-650a-4fdc-b080-98d71a5aeadb","savedPayload":{"position":{"x":22075.434494547764,"y":31717.265434202483},"targetPosition":{"x":21682.101026388067,"y":31470.31370039613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"02e7b009-0743-424a-b019-136886535362","savedPayload":{"position":{"x":21929.023275063388,"y":31863.159241755624},"targetPosition":{"x":21682.101026388067,"y":31470.31370039613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"beginRate":{"type":"Begin Rate","name":"New Begin Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"12c10a40-ec02-4ad5-aa19-7248bc152a09","savedPayload":{"position":{"x":21733.93521217379,"y":31931.45751400179},"targetPosition":{"x":21682.101026388067,"y":31470.31370039613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"endRate":{"type":"End Rate","name":"New End Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6c5e211f-117b-4bdb-b5d0-d4ff9137d20f","savedPayload":{"position":{"x":21529.202485311034,"y":31908.650666578942},"targetPosition":{"x":21682.101026388067,"y":31470.31370039613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"23623d89-4f23-4827-bd18-d10ed8cd91ce","savedPayload":{"position":{"x":31955.598695364464,"y":25441.28196171572},"targetPosition":{"x":31478.301618063546,"y":24963.9848844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"strategyCloseStage":{"type":"Strategy Close Stage","name":"New Strategy Close Stage","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"77de6af4-78af-47eb-9d05-1b45bd90f432","savedPayload":{"position":{"x":21844.164595126953,"y":31634.792695677104},"targetPosition":{"x":21381.186717498567,"y":31671.43106315734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ee5c568c-cc11-4ef1-b53d-528e54090442","savedPayload":{"position":{"x":21832.824359668368,"y":31779.68047104169},"targetPosition":{"x":21381.186717498567,"y":31671.43106315734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"171cfa7e-95e0-4c9d-a682-52b346e1f4d0","savedPayload":{"position":{"x":21777.215167627262,"y":31914.00774805555},"targetPosition":{"x":21381.186717498567,"y":31671.43106315734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"c7c4bde9-a2cf-40db-b7a4-23d84ec57389","savedPayload":{"position":{"x":21682.82889173393,"y":32024.544711257266},"targetPosition":{"x":21381.186717498567,"y":31671.43106315734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"beginRate":{"type":"Begin Rate","name":"New Begin Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ac995378-3294-475b-9863-ec9d01a2c620","savedPayload":{"position":{"x":21558.9108485862,"y":32100.49469735298},"targetPosition":{"x":21381.186717498567,"y":31671.43106315734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"endRate":{"type":"End Rate","name":"New End Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"36633085-158f-42dd-8d0a-22d94af1d95f","savedPayload":{"position":{"x":21417.594931634725,"y":32134.42820399235},"targetPosition":{"x":21381.186717498567,"y":31671.43106315734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"stageDefinedIn":{"type":"Stage Defined In","name":"New Stage Defined In","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"d0add24e-c4fb-4ffa-8d5c-f80712fb2e5f","savedPayload":{"position":{"x":21273.005896804258,"y":32123.02285071015},"targetPosition":{"x":21381.186717498567,"y":31671.43106315734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"stageBaseAsset":{"type":"Stage Base Asset","name":"New Stage Base Asset","project":"Superalgos","targetSize":{"type":"Target Size","name":"New Target Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c3c3f2eb-97a1-49e2-9274-dae429f86bb7","savedPayload":{"position":{"x":21104.097888061267,"y":32530.75159323251},"targetPosition":{"x":21140.370518360374,"y":32066.936156699747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sizePlaced":{"type":"Size Placed","name":"New Size Placed","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"32c52f90-73a0-40a3-b6b5-f66ae5c9bcf7","savedPayload":{"position":{"x":20963.295403862518,"y":32495.615843294712},"targetPosition":{"x":21140.370518360374,"y":32066.936156699747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0b788290-7362-4697-8426-28d8256be6e4","savedPayload":{"position":{"x":20860.18805613958,"y":32411.420566121546},"targetPosition":{"x":21140.370518360374,"y":32066.936156699747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4706a702-a16a-4382-bb31-60dd83460120","savedPayload":{"position":{"x":20744.618975016,"y":32308.71789768758},"targetPosition":{"x":21140.370518360374,"y":32066.936156699747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ccf55d5f-01a0-4b6c-b6bd-6114040e1ea6","savedPayload":{"position":{"x":21138.8005077119,"y":32067.413426429724},"targetPosition":{"x":21381.186717498567,"y":31671.43106315734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"stageQuotedAsset":{"type":"Stage Quoted Asset","name":"New Stage Quoted Asset","project":"Superalgos","targetSize":{"type":"Target Size","name":"New Target Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"81269885-7567-4162-bdae-9ae3aaf02300","savedPayload":{"position":{"x":22010.759419975475,"y":32091.495953908852},"targetPosition":{"x":21833.18285123971,"y":31662.54308115213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sizePlaced":{"type":"Size Placed","name":"New Size Placed","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8d101afe-a76b-452a-831b-3b8c5d45d27f","savedPayload":{"position":{"x":21869.171076940678,"y":32125.63891972362},"targetPosition":{"x":21833.18285123971,"y":31662.54308115213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5560b6f6-b787-4a6c-a082-6a5a9cc16d77","savedPayload":{"position":{"x":21724.356974849616,"y":32114.08070656262},"targetPosition":{"x":21833.18285123971,"y":31662.54308115213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8211c5c6-520d-4296-81b5-888d9c8fb90d","savedPayload":{"position":{"x":21590.06799216204,"y":32058.0553760826},"targetPosition":{"x":21833.18285123971,"y":31662.54308115213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0851ffc1-4ce3-4977-9a68-61e0d1b89d32","savedPayload":{"position":{"x":21033.485599100284,"y":31978.649477433988},"targetPosition":{"x":21381.186717498567,"y":31671.43106315734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c7c28513-1e64-4ab8-8d7d-4448c0027721","savedPayload":{"position":{"x":31736.612934909983,"y":25587.60356885992},"targetPosition":{"x":31478.301618063546,"y":24963.9848844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9404147f-b225-4709-a1b5-394cf9903622","savedPayload":{"position":{"x":31478.301618063546,"y":24963.9848844148},"targetPosition":{"x":31028.301618063546,"y":24963.9848844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingLast":{"type":"Trading Last","name":"New Trading Last","project":"Superalgos","position":{"type":"Position","name":"New Position","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7cb38892-bc86-4771-b74e-edebdc17ec3a","savedPayload":{"position":{"x":20801.966184271852,"y":31510.67691903712},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"22d3c1b5-001d-4ca3-b38e-10f70610e1be","savedPayload":{"position":{"x":20814.236930064577,"y":31588.151358872114},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"df386025-376f-453b-aa1a-2a4ab2888c83","savedPayload":{"position":{"x":20812.86796036338,"y":31666.57958052741},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5f07b765-ee12-4181-85c0-94748b03d839","savedPayload":{"position":{"x":20797.9008706199,"y":31743.578582174618},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"beginRate":{"type":"Begin Rate","name":"New Begin Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d82fcc11-12d7-45e4-8a03-f8b2fe6bd28e","savedPayload":{"position":{"x":20769.790428282282,"y":31816.808788112052},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"endRate":{"type":"End Rate","name":"New End Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e026edaf-074a-4eab-9f95-85ed3bc5003c","savedPayload":{"position":{"x":20729.39075491638,"y":31884.04513558858},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"45078dd6-c7e7-42b0-b0bf-db5927a4b404","savedPayload":{"position":{"x":20677.929374154206,"y":31943.244682209363},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"e5d13ca1-1c13-4c44-9d97-50fd98de5755","savedPayload":{"position":{"x":20616.969914009493,"y":31992.608679706733},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"No Stage\"\n}","project":"Superalgos","id":"20fcc6f8-e21c-4412-9ce8-833da712c35c","savedPayload":{"position":{"x":20548.364596831765,"y":32030.637227996136},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"entryTargetRate":{"type":"Entry Target Rate","name":"New Entry Target Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7a3f4b4f-0ff4-424d-b35f-626ba3ea02e8","savedPayload":{"position":{"x":20474.197960467507,"y":32056.174848881165},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitTargetRate":{"type":"Exit Target Rate","name":"New Exit Target Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"cfedd274-c3ea-4048-95c8-ff040c67fefe","savedPayload":{"position":{"x":20396.723520632513,"y":32068.44559467389},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"stopLoss":{"type":"Stop Loss","name":"New Stop Loss","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"996de0cd-fa45-4173-b6be-3b7c6fef4462","savedPayload":{"position":{"x":20396.989393918997,"y":32510.142353077776},"targetPosition":{"x":20318.295298977213,"y":32067.076624972688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"611661d8-b2d9-47b8-926d-1899598a7330","savedPayload":{"position":{"x":20346.886959840744,"y":32516.167391888535},"targetPosition":{"x":20318.295298977213,"y":32067.076624972688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"stopLossPhase":{"type":"Stop Loss Phase","name":"New Stop Loss Phase","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1e86cfaa-6316-4629-99e5-c19bf7690b00","savedPayload":{"position":{"x":20296.424969037864,"y":32516.544853736792},"targetPosition":{"x":20318.295298977213,"y":32067.076624972688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"stopLossPosition":{"type":"Stop Loss Position","name":"New Stop Loss Position","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"fb0a2f9c-46fc-4a94-a137-bda440bb257e","savedPayload":{"position":{"x":20246.238010323435,"y":32511.2699918208},"targetPosition":{"x":20318.295298977213,"y":32067.076624972688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"initialValue":{"type":"Initial Value","name":"New Initial Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"25512e02-953b-434c-9480-78690e8c1a2b","savedPayload":{"position":{"x":20196.957213822436,"y":32500.409140589705},"targetPosition":{"x":20318.295298977213,"y":32067.076624972688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"finalValue":{"type":"Final Value","name":"New Final Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f492cbaa-6bdf-4ad4-aaff-b501188371a3","savedPayload":{"position":{"x":20149.20231414426,"y":32484.09888154934},"targetPosition":{"x":20318.295298977213,"y":32067.076624972688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dde16cfc-ae9b-4f8f-a994-2023cc79e609","savedPayload":{"position":{"x":20318.295298977213,"y":32067.076624972688},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6d9c0e84-fb34-4b87-b9f3-ea95c6d2a3cf","savedPayload":{"position":{"x":20241.857295872833,"y":32502.10918554089},"targetPosition":{"x":20241.296297330005,"y":32052.10953522921},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"02b3db46-b6d5-488a-82ce-2587c9e38589","savedPayload":{"position":{"x":20191.469793337925,"y":32499.34249409956},"targetPosition":{"x":20241.296297330005,"y":32052.10953522921},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"takeProfitPhase":{"type":"Take Profit Phase","name":"New Take Profit Phase","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"019e4501-c133-464f-9fbd-8635aed9e325","savedPayload":{"position":{"x":20141.70888800073,"y":32490.951588709824},"targetPosition":{"x":20241.296297330005,"y":32052.10953522921},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"takeProfitPosition":{"type":"Take Profit Position","name":"New Take Profit Position","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"d105ba15-57a8-4330-b1ac-d57d235bc4d0","savedPayload":{"position":{"x":20093.200352117812,"y":32477.041989875484},"targetPosition":{"x":20241.296297330005,"y":32052.10953522921},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"initialValue":{"type":"Initial Value","name":"New Initial Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"284b2b0e-8416-4acb-bc29-ca9530ba679b","savedPayload":{"position":{"x":20046.554208673206,"y":32457.788618872408},"targetPosition":{"x":20241.296297330005,"y":32052.10953522921},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"finalValue":{"type":"Final Value","name":"New Final Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7d28caa5-7ba5-4cec-bda5-709cc313fb37","savedPayload":{"position":{"x":20002.35705998545,"y":32433.433598012038},"targetPosition":{"x":20241.296297330005,"y":32052.10953522921},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e9a86fd6-21b5-46db-b551-b4502467025e","savedPayload":{"position":{"x":20241.296297330005,"y":32052.10953522921},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionCounters":{"type":"Position Counters","name":"New Position Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"54222121-067d-4819-969b-ed18bf53b077","savedPayload":{"position":{"x":20168.06609139257,"y":32023.999092891594},"targetPosition":{"x":20266.699599420113,"y":31821.77043247428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"6cfdc33a-accb-4fa6-99d2-cf90bc576452","savedPayload":{"position":{"x":20266.699599420113,"y":31821.77043247428},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionStatistics":{"type":"Position Statistics","name":"New Position Statistics","project":"Superalgos","profitLoss":{"type":"Profit Loss","name":"New Profit Loss","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"00306590-32f1-40b3-9d28-2a311c4907bc","savedPayload":{"position":{"x":20694.358471967727,"y":32961.424061902006},"targetPosition":{"x":20676.718485129004,"y":32624.83306186262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"ROI":{"type":"ROI","name":"New ROI","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c97c73f5-99a0-4267-b0cd-550265dabfc9","savedPayload":{"position":{"x":20606.641242771628,"y":32954.52056624634},"targetPosition":{"x":20676.718485129004,"y":32624.83306186262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"hitFail":{"type":"Hit Fail","name":"New Hit Fail","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"391d41bd-a921-4273-b41e-caf758f04e01","savedPayload":{"position":{"x":20523.69966183407,"y":32925.149412001294},"targetPosition":{"x":20676.718485129004,"y":32624.83306186262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"53d86a40-81ed-41d2-a565-41b35f78a202","savedPayload":{"position":{"x":20451.1860608285,"y":32875.31219479053},"targetPosition":{"x":20676.718485129004,"y":32624.83306186262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"c691ada5-0a55-4c33-9eb7-770dcfe20fd1","savedPayload":{"position":{"x":20394.042121829054,"y":32808.40523860707},"targetPosition":{"x":20535.38030347903,"y":32716.619150234845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1d77229e-c424-492e-a2f3-04e81345d118","savedPayload":{"position":{"x":20535.38030347903,"y":32716.619150234845},"targetPosition":{"x":20676.718485129004,"y":32624.83306186262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ca4c6442-d2f1-4eff-9b4f-03f51bc26246","savedPayload":{"position":{"x":20100.82974391604,"y":31983.599419525694},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionBaseAsset":{"type":"Position Base Asset","name":"New Position Base Asset","project":"Superalgos","beginBalance":{"type":"Begin Balance","name":"New Begin Balance","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a033536f-b761-407b-bfcb-fdb4c6887af6","savedPayload":{"position":{"x":20238.347879991747,"y":33260.24126983032},"targetPosition":{"x":20310.82669468301,"y":32590.50199325208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"endBalance":{"type":"End Balance","name":"New End Balance","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a75ae534-5dc2-4af6-883e-15221b92911c","savedPayload":{"position":{"x":20108.585741595307,"y":33233.04919416387},"targetPosition":{"x":20310.82669468301,"y":32590.50199325208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"entryTargetSize":{"type":"Entry Target Size","name":"New Entry Target Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6d04c944-0069-4834-aebf-7ad11f6e87d9","savedPayload":{"position":{"x":19986.99340511704,"y":33181.135191738394},"targetPosition":{"x":20310.82669468301,"y":32590.50199325208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitTargetSize":{"type":"Exit Target Size","name":"New Exit Target Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1de6e566-f52e-447a-9558-6ea566eb44e6","savedPayload":{"position":{"x":19877.929519141497,"y":33106.518003536105},"targetPosition":{"x":20310.82669468301,"y":32590.50199325208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"profitLoss":{"type":"Profit Loss","name":"New Profit Loss","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"299519f3-5af9-43f7-9d56-aebde2eb1646","savedPayload":{"position":{"x":19785.536248021042,"y":33012.045973771725},"targetPosition":{"x":20310.82669468301,"y":32590.50199325208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"ROI":{"type":"ROI","name":"New ROI","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a7b1ab74-2854-470a-8dce-318368b447d0","savedPayload":{"position":{"x":19713.3405068739,"y":32901.2956806342},"targetPosition":{"x":20310.82669468301,"y":32590.50199325208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hitFail":{"type":"Hit Fail","name":"New Hit Fail","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"e9dbeafb-424f-4aca-8560-02f8b66d584c","savedPayload":{"position":{"x":19664.063980894483,"y":32778.211899705995},"targetPosition":{"x":20310.82669468301,"y":32590.50199325208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"75f6f07f-522c-45ed-ad5d-c5b3cb7c6c07","savedPayload":{"position":{"x":20041.630197295264,"y":31932.138038763514},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionQuotedAsset":{"type":"Position Quoted Asset","name":"New Position Quoted Asset","project":"Superalgos","beginBalance":{"type":"Begin Balance","name":"New Begin Balance","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"814f50a4-a3c2-441e-9380-7adc1f50fe63","savedPayload":{"position":{"x":20335.241009547066,"y":33140.10007948894},"targetPosition":{"x":20489.746331300747,"y":32483.93943808889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"endBalance":{"type":"End Balance","name":"New End Balance","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c19014a7-b345-4e4b-bc3c-9b7d4e44ec00","savedPayload":{"position":{"x":20210.199195155725,"y":33097.34964377987},"targetPosition":{"x":20489.746331300747,"y":32483.93943808889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"entryTargetSize":{"type":"Entry Target Size","name":"New Entry Target Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"eb40f77a-bf19-44c8-9842-42f81c8450d0","savedPayload":{"position":{"x":20095.9002204346,"y":33031.0261978705},"targetPosition":{"x":20489.746331300747,"y":32483.93943808889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitTargetSize":{"type":"Exit Target Size","name":"New Exit Target Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2ae48a53-42f3-470f-afb7-b1201231ab67","savedPayload":{"position":{"x":19996.73653088262,"y":32943.67851459252},"targetPosition":{"x":20489.746331300747,"y":32483.93943808889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"profitLoss":{"type":"Profit Loss","name":"New Profit Loss","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d89b53ac-e902-4399-871d-eb444acb4b9c","savedPayload":{"position":{"x":19916.51893147762,"y":32838.66331642914},"targetPosition":{"x":20489.746331300747,"y":32483.93943808889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"ROI":{"type":"ROI","name":"New ROI","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4013695d-57f7-4d35-b926-a716130d5bd7","savedPayload":{"position":{"x":19858.3301395782,"y":32720.016278552597},"targetPosition":{"x":20489.746331300747,"y":32483.93943808889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hitFail":{"type":"Hit Fail","name":"New Hit Fail","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"6a12c16d-6fd8-47b4-ae90-688b2990dd2d","savedPayload":{"position":{"x":19824.406317824396,"y":32592.296940090448},"targetPosition":{"x":20489.746331300747,"y":32483.93943808889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5d48e215-20ac-47e3-9e19-4079bd8aa08c","savedPayload":{"position":{"x":19992.266199797887,"y":31871.178578618805},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"aafaaba0-bc67-4f12-a749-f1f1c02d3a17","savedPayload":{"position":{"x":30986.333107447655,"y":25764.79177205697},"targetPosition":{"x":30803.301618063546,"y":25353.6963161178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"strategy":{"type":"Strategy","name":"New Strategy","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"33eefe8a-94c7-4f43-b32b-cab99cf96e76","savedPayload":{"position":{"x":21285.805286229595,"y":32082.276531957134},"targetPosition":{"x":20615.037364829004,"y":32131.12584022031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"19e984be-3241-4542-ad9b-b271872888ae","savedPayload":{"position":{"x":21278.06134626283,"y":32244.198179875435},"targetPosition":{"x":20615.037364829004,"y":32131.12584022031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"97723b40-10c4-4bb4-b4d8-4f3e185f9662","savedPayload":{"position":{"x":21231.694162057967,"y":32399.672499270375},"targetPosition":{"x":20615.037364829004,"y":32131.12584022031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"48b58adb-c7d2-4635-95cb-45ea9eeda108","savedPayload":{"position":{"x":21149.477952435103,"y":32539.487132686394},"targetPosition":{"x":20615.037364829004,"y":32131.12584022031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"beginRate":{"type":"Begin Rate","name":"New Begin Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ef8bbe43-9fb3-4e9e-84d9-3725e74ee42c","savedPayload":{"position":{"x":21036.189946197745,"y":32655.526510526543},"targetPosition":{"x":20615.037364829004,"y":32131.12584022031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"endRate":{"type":"End Rate","name":"New End Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"84b9ef17-7c4e-472a-ac52-46bb6ae33b64","savedPayload":{"position":{"x":20898.424439697992,"y":32741.078217921015},"targetPosition":{"x":20615.037364829004,"y":32131.12584022031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"50ede031-76b4-4eb6-ae73-0d56619ed6f3","savedPayload":{"position":{"x":20744.18769724072,"y":32791.21277864253},"targetPosition":{"x":20615.037364829004,"y":32131.12584022031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"24635c41-8cf9-45ba-8bbb-71c2d1e21442","savedPayload":{"position":{"x":20582.769564542465,"y":32802.961282392105},"targetPosition":{"x":20615.037364829004,"y":32131.12584022031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"No Stage\"\n}","project":"Superalgos","id":"3a505e32-35a6-4c5f-a5de-f20243cfc849","savedPayload":{"position":{"x":20422.93026801634,"y":32775.68597900595},"targetPosition":{"x":20615.037364829004,"y":32131.12584022031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"index":{"type":"Index","name":"New Index","config":"{\n\"initialValue\": -1\n}","project":"Superalgos","id":"442baa35-4bf6-4b8b-8d3d-387e31345ab7","savedPayload":{"position":{"x":20274.230740039067,"y":32710.863763128196},"targetPosition":{"x":20615.037364829004,"y":32131.12584022031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"strategyName":{"type":"Strategy Name","name":"New Strategy Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"a1afe24b-0e40-4faa-adf1-cb0f629a19d7","savedPayload":{"position":{"x":20145.388045047534,"y":32612.37691644206},"targetPosition":{"x":20615.037364829004,"y":32131.12584022031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"strategyCounters":{"type":"Strategy Counters","name":"New Strategy Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"72a7b066-ea44-44cc-bc9c-9645bb103846","savedPayload":{"position":{"x":19757.873562829594,"y":32663.071949346137},"targetPosition":{"x":20043.679331309762,"y":32485.56154295631},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"89864f0c-2efe-4101-98ef-b9248a524207","savedPayload":{"position":{"x":20043.679331309762,"y":32485.56154295631},"targetPosition":{"x":20615.037364829004,"y":32131.12584022031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"886fcf92-e98b-4ba3-a5f7-29b2da8ee6c8","savedPayload":{"position":{"x":30709.741357195555,"y":25793.862736448013},"targetPosition":{"x":30803.301618063546,"y":25353.6963161178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"limitOrders":{"type":"Limit Order","name":"New Limit Order","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5c4a87d7-7e76-4cb4-b02f-a5b96faff9c9","savedPayload":{"position":{"x":20082.41964389318,"y":31893.604798479028},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"683fdd1f-306a-4e4e-bb90-a6152496f5be","savedPayload":{"position":{"x":20007.85732158386,"y":31930.16098427379},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"014b85ce-5670-4737-9ffe-e475a31abc7e","savedPayload":{"position":{"x":19927.84738299084,"y":31952.39394076546},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7788884e-d628-4828-9f3c-d03b8ea0b2ed","savedPayload":{"position":{"x":19845.114470611556,"y":31959.546551286214},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0f9906dc-ddff-4b6e-8a82-558d6c67e16e","savedPayload":{"position":{"x":19762.475954549896,"y":31951.375242263377},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"99919a0d-bd78-4a50-946a-bc033bfca7a0","savedPayload":{"position":{"x":19682.745990356365,"y":31928.15827782532},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"b88600a1-1a4f-49e8-aef5-9f66dd632842","savedPayload":{"position":{"x":19608.63968633602,"y":31890.6862838503},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"e161b4f7-99f0-43ee-9310-c06cab1b1ab0","savedPayload":{"position":{"x":19542.680643791562,"y":31840.235324150424},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"93510545-cf4c-4d2f-bdac-f5100e113f0c","savedPayload":{"position":{"x":19487.115018807686,"y":31778.52344564903},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"1ce311ec-e3ec-44a1-85c0-5562d626a602","savedPayload":{"position":{"x":19443.8350320996,"y":31707.652172353228},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"6678ca6b-6f7d-4fb8-ad26-becd97592a80","savedPayload":{"position":{"x":19414.314531706026,"y":31630.034940474397},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6983f5e7-d2a4-43b2-996a-2d07bf022251","savedPayload":{"position":{"x":19399.55880286192,"y":31548.314911752554},"targetPosition":{"x":19623.72262473032,"y":31528.93500036592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"b159cae7-c3d8-4bc5-bccf-217d5ed764f5","savedPayload":{"position":{"x":19623.72262473032,"y":31528.93500036592},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"84601506-b411-4098-b89b-a0fc25dab789","savedPayload":{"position":{"x":19400.07033421554,"y":31465.27496375345},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"98690132-d002-4a52-a440-e7bbeffa67b5","savedPayload":{"position":{"x":19265.424520356144,"y":31551.082930833843},"targetPosition":{"x":19415.831706180135,"y":31383.742922310754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b1d09bc5-fb51-49ec-ac2c-b717d549e76d","savedPayload":{"position":{"x":19207.713405641945,"y":31469.251828169123},"targetPosition":{"x":19415.831706180135,"y":31383.742922310754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ecd9ad56-cd63-469b-91ae-adba390bf171","savedPayload":{"position":{"x":19191.222672752785,"y":31370.48463800124},"targetPosition":{"x":19415.831706180135,"y":31383.742922310754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c8d6b34b-b656-4ef7-aeca-3faa55f2408f","savedPayload":{"position":{"x":19219.218513582935,"y":31274.343413643044},"targetPosition":{"x":19415.831706180135,"y":31383.742922310754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"843d0988-74dd-4cef-8789-3f8cfaba0288","savedPayload":{"position":{"x":19286.156008509526,"y":31199.870103673413},"targetPosition":{"x":19415.831706180135,"y":31383.742922310754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e9960576-d623-492b-b881-f7b5ec209bf3","savedPayload":{"position":{"x":19378.777365727845,"y":31161.81506048704},"targetPosition":{"x":19415.831706180135,"y":31383.742922310754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6bd8cfef-5ca4-4c17-b492-5f377b2da318","savedPayload":{"position":{"x":19415.831706180135,"y":31383.742922310754},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"41aa065e-0d3e-4c56-bc5a-71f492deadfa","savedPayload":{"position":{"x":19267.711320595463,"y":31443.34874231666},"targetPosition":{"x":19446.306184137142,"y":31306.49526330889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a3d7adcb-33e5-4707-bc03-12fc7c5f1a62","savedPayload":{"position":{"x":19226.01927293567,"y":31352.306580178374},"targetPosition":{"x":19446.306184137142,"y":31306.49526330889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b998c6bd-9e7e-4950-9b74-c58a4f613b4c","savedPayload":{"position":{"x":19227.957749681005,"y":31252.190924895156},"targetPosition":{"x":19446.306184137142,"y":31306.49526330889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e1810107-ca1f-4508-98a9-ae31ed8cb55a","savedPayload":{"position":{"x":19273.142811738187,"y":31162.830909833785},"targetPosition":{"x":19446.306184137142,"y":31306.49526330889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"314e7ea2-53a9-4e00-a530-77667403bbf1","savedPayload":{"position":{"x":19352.625003408375,"y":31101.92538190583},"targetPosition":{"x":19446.306184137142,"y":31306.49526330889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1dcd1b89-604e-4b52-b530-20d94f682e2f","savedPayload":{"position":{"x":19450.661901846182,"y":31081.537427874697},"targetPosition":{"x":19446.306184137142,"y":31306.49526330889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ececab38-e728-45bf-bab7-0ec18ab1f00c","savedPayload":{"position":{"x":19446.306184137142,"y":31306.49526330889},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"90fb70dd-b116-4dad-b100-10176078d976","savedPayload":{"position":{"x":19274.82022280906,"y":31300.398170038767},"targetPosition":{"x":19490.45599628984,"y":31236.162563126818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"85f98313-ef05-4b22-abd4-019c5a150669","savedPayload":{"position":{"x":19278.2462485338,"y":31161.382733243896},"targetPosition":{"x":19490.45599628984,"y":31236.162563126818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"shortcutKey":""}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"688b2648-42c0-448d-ba4d-48c4edea9317","savedPayload":{"position":{"x":19362.729185157306,"y":31050.930649791364},"targetPosition":{"x":19490.45599628984,"y":31236.162563126818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"1f12b4f2-a850-4396-9f03-00b04c39e43a","savedPayload":{"position":{"x":19495.999422358796,"y":31011.230861431795},"targetPosition":{"x":19493.227709324317,"y":31123.696712279307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"46b38d34-1481-42cf-91b6-e8f969d5667d","savedPayload":{"position":{"x":19493.227709324317,"y":31123.696712279307},"targetPosition":{"x":19490.45599628984,"y":31236.162563126818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8ddd03e8-4355-4f1f-b9c0-1eaef13de32e","savedPayload":{"position":{"x":19490.45599628984,"y":31236.162563126818},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0f344181-126b-4235-97c5-92b1f8caa20d","savedPayload":{"position":{"x":30468.886446598717,"y":25654.805088979287},"targetPosition":{"x":30803.301618063546,"y":25353.6963161178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"marketOrders":{"type":"Market Order","name":"New Market Order","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4e19c5cd-06c8-41aa-88b6-c3e53500f2ce","savedPayload":{"position":{"x":19698.76935211298,"y":31704.042020800982},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"8638e802-8f3e-4eef-806a-689732daa685","savedPayload":{"position":{"x":19616.959979334453,"y":31689.78996292837},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"34cfab6e-fa47-41d1-9c7c-fc50251db9d6","savedPayload":{"position":{"x":19539.16237535314,"y":31660.74814062353},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"746e3b6d-1121-456a-a236-95f0e8f02bc9","savedPayload":{"position":{"x":19468.025844264674,"y":31617.905538313214},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"10b91c50-0ff3-4746-89f3-ea5a2bf10b78","savedPayload":{"position":{"x":19405.97285531641,"y":31562.72110943508},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b9ff8ac5-6b93-4268-95fd-3e64a9d8ded1","savedPayload":{"position":{"x":19355.116548622627,"y":31497.07409352812},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"b6040957-3530-47b9-8798-1be2aa79ba91","savedPayload":{"position":{"x":19317.188774712362,"y":31423.20002098415},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"d2122053-2ec2-4879-a1eb-a05af04f6a37","savedPayload":{"position":{"x":19293.481118436783,"y":31343.614584741466},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"7c7100ce-fabe-4f5b-a875-0f73ec1bea7a","savedPayload":{"position":{"x":19284.800915596148,"y":31261.027971379102},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"a78a397d-2efc-41d9-b887-b3673c4a6caf","savedPayload":{"position":{"x":19291.443760087444,"y":31178.252568963377},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"6202ca96-5782-40e8-9a43-5187eab3825c","savedPayload":{"position":{"x":19313.183437808733,"y":31098.107194545424},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7e7cbae6-c274-40d6-a41f-089e5fdc39f5","savedPayload":{"position":{"x":19349.279630109082,"y":31023.32110272725},"targetPosition":{"x":19542.023197628452,"y":31139.402613657745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"f6d8f35f-224e-4135-8685-6341d3e128c9","savedPayload":{"position":{"x":19542.023197628452,"y":31139.402613657745},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"1f66bae9-8ab5-4096-baf0-f03304ae3761","savedPayload":{"position":{"x":19398.50312445232,"y":30956.441044169704},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"be9f87f1-2617-4b74-a034-1ea4061af8dd","savedPayload":{"position":{"x":19247.871262226123,"y":30822.448999479027},"targetPosition":{"x":19459.17767377566,"y":30899.744539053165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"05925960-9b83-4221-a42f-6b1b3101f37f","savedPayload":{"position":{"x":19270.36903078973,"y":30777.36685998622},"targetPosition":{"x":19459.17767377566,"y":30899.744539053165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f2f1aca9-c603-4c63-ae7a-ceec8bcf539f","savedPayload":{"position":{"x":19302.334453108888,"y":30738.421248326515},"targetPosition":{"x":19459.17767377566,"y":30899.744539053165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"14a0e462-f77a-4d50-a9ec-2f194bf6a422","savedPayload":{"position":{"x":19342.16464943253,"y":30707.56506009125},"targetPosition":{"x":19459.17767377566,"y":30899.744539053165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b5cd9cdf-7786-4d90-bfab-8fd9f2c6b55e","savedPayload":{"position":{"x":19387.862367400576,"y":30686.345553402745},"targetPosition":{"x":19459.17767377566,"y":30899.744539053165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"561f0374-fada-47b9-87bb-8552ec85d183","savedPayload":{"position":{"x":19437.13613261705,"y":30675.82676293132},"targetPosition":{"x":19459.17767377566,"y":30899.744539053165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6078ba38-48d9-4123-9464-b671acb313df","savedPayload":{"position":{"x":19459.17767377566,"y":30899.744539053165},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a74f0e67-f759-4263-a1a3-25a069a8d57d","savedPayload":{"position":{"x":19335.731578855182,"y":30740.355431498712},"targetPosition":{"x":19529.237079072995,"y":30855.162318859424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e40ea964-d259-4779-acbc-6133cbbdf983","savedPayload":{"position":{"x":19366.13010155007,"y":30700.1748552266},"targetPosition":{"x":19529.237079072995,"y":30855.162318859424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"66ba7df9-f806-4985-b1cd-d6ce3a36bf0e","savedPayload":{"position":{"x":19404.707489173376,"y":30667.765997552327},"targetPosition":{"x":19529.237079072995,"y":30855.162318859424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"bd853d02-c376-4235-9b0a-f323af11a6a8","savedPayload":{"position":{"x":19449.529310424532,"y":30644.753973927283},"targetPosition":{"x":19529.237079072995,"y":30855.162318859424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"195c9857-33af-4dfa-b5a9-cafc956b6b67","savedPayload":{"position":{"x":19498.34801202638,"y":30632.292703305866},"targetPosition":{"x":19529.237079072995,"y":30855.162318859424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"beee6763-fc4f-42a5-acfa-b28a7d4c7091","savedPayload":{"position":{"x":19548.715620431456,"y":30631.007045830782},"targetPosition":{"x":19529.237079072995,"y":30855.162318859424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e06730c6-fa37-4125-b497-79711fc685cb","savedPayload":{"position":{"x":19529.237079072995,"y":30855.162318859424},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ce8ba99f-24ae-4415-8bec-0ff5e4c93c28","savedPayload":{"position":{"x":23991.509710590006,"y":29434.770734439975},"targetPosition":{"x":23623.392979659846,"y":29611.849799447322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2440e044-a31c-47ff-834f-e7079a5f9d2e","savedPayload":{"position":{"x":24028.250833522186,"y":29557.78176040273},"targetPosition":{"x":23623.392979659846,"y":29611.849799447322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"056b2fe1-a3af-4f7b-a135-47b18de2b6a4","savedPayload":{"position":{"x":24025.645249175825,"y":29686.3496213003},"targetPosition":{"x":23623.392979659846,"y":29611.849799447322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"0b0697e8-0423-45fe-b3bb-fc7c6214e514","savedPayload":{"position":{"x":24063.727043978433,"y":29851.09750393271},"targetPosition":{"x":23884.434469555476,"y":29753.48764158327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f0074bb8-e239-43eb-8371-4de534b53651","savedPayload":{"position":{"x":23884.434469555476,"y":29753.48764158327},"targetPosition":{"x":23623.392979659846,"y":29611.849799447322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"37e193a3-bd64-4a96-a0f4-697cd09d3590","savedPayload":{"position":{"x":19606.295551323918,"y":30824.212577626684},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1eb34afa-52d4-486e-83ec-e52dfaf6448a","savedPayload":{"position":{"x":30355.766765147822,"y":25400.73412458824},"targetPosition":{"x":30803.301618063546,"y":25353.6963161178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"44fbb36a-4652-4bf8-badd-47c574fe7774","savedPayload":{"position":{"x":30803.301618063546,"y":25353.6963161178},"targetPosition":{"x":31028.301618063546,"y":24963.9848844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeOrders":{"type":"Exchange Orders","name":"New Exchange Orders","project":"Superalgos","marketBuyOrders":{"type":"Market Buy Orders","name":"New Market Buy Orders","project":"Superalgos","marketOrders":[{"type":"Market Order","name":"Open Buy Market Order","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3cd2b72e-afd0-4552-a6fe-01c7a47f3501","savedPayload":{"position":{"x":19274.688239220446,"y":31313.124462082626},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"913dc1ca-9313-4039-b832-bb4f08c75aef","savedPayload":{"position":{"x":19151.374041476716,"y":31330.71342304867},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"63f4f9e6-563e-4fc7-842c-08cf6937be11","savedPayload":{"position":{"x":19026.927539189124,"y":31325.343974154326},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"fded8848-e5f2-448a-bb2a-8cbb6dae639e","savedPayload":{"position":{"x":18905.586608735946,"y":31297.198965541756},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b51ba6d2-3ed2-49b2-bbc2-de3930bb877d","savedPayload":{"position":{"x":18791.483369971364,"y":31247.23684172304},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9ddd0b24-7dfa-499d-8481-8d4e1d182db5","savedPayload":{"position":{"x":18688.503471839747,"y":31177.15900290187},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"c38e8adb-0f45-403c-9c6f-7647bb881f4d","savedPayload":{"position":{"x":18600.153771261197,"y":31089.351865830184},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"e6caddd6-d5f5-4c33-b742-6b49a20840dd","savedPayload":{"position":{"x":18529.442911325128,"y":30986.80559724792},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"0a3420c6-4177-4f3d-916c-a148ca850968","savedPayload":{"position":{"x":18478.77886555834,"y":30873.012287340942},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"fc76ed8e-8212-497d-9fc0-f0e032bb4956","savedPayload":{"position":{"x":18449.88693727459,"y":30751.847030798104},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"e8c6e52e-ba3b-45e9-9bb4-07c022209252","savedPayload":{"position":{"x":18443.751006439532,"y":30627.435965109275},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"18a54f80-526e-4059-88e0-d45e65990c67","savedPayload":{"position":{"x":18460.58002481852,"y":30504.015759901842},"targetPosition":{"x":18789.351803028792,"y":30580.27431910968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"ff67287a-0a4e-4551-aa03-041288fc28cb","savedPayload":{"position":{"x":18789.351803028792,"y":30580.27431910968},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"49e850c8-3501-4d41-899e-96224d1ee461","savedPayload":{"position":{"x":18499.80090037484,"y":30385.789342237935},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1d33a196-fae3-4a34-a22f-56891d939f0d","savedPayload":{"position":{"x":18222.80305079629,"y":30264.46003936913},"targetPosition":{"x":18560.078013231676,"y":30276.78277097414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d7a3341e-e7d6-4363-bab2-f45927dc7ba7","savedPayload":{"position":{"x":18234.001304018984,"y":30189.718256336884},"targetPosition":{"x":18560.078013231676,"y":30276.78277097414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"57d4e7ab-d804-40f6-a3f2-342b11da6c71","savedPayload":{"position":{"x":18261.55040501936,"y":30119.342251618305},"targetPosition":{"x":18560.078013231676,"y":30276.78277097414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ae1e20cb-745b-4817-9ae3-8ed9c126034f","savedPayload":{"position":{"x":18304.068926838238,"y":30056.860971954586},"targetPosition":{"x":18560.078013231676,"y":30276.78277097414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9d44c42c-ba10-4660-b3c1-44c26373f1f2","savedPayload":{"position":{"x":18359.42481324973,"y":30005.40748960716},"targetPosition":{"x":18560.078013231676,"y":30276.78277097414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e9d13246-5f13-4252-ba8a-bf842424cd98","savedPayload":{"position":{"x":18424.84228896311,"y":29967.561897031977},"targetPosition":{"x":18560.078013231676,"y":30276.78277097414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9b9934b9-3d46-442c-a5c2-47534e7861bb","savedPayload":{"position":{"x":18560.078013231676,"y":30276.78277097414},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1a093948-32c1-461a-8f5a-386ee7dbe1f3","savedPayload":{"position":{"x":18310.090779324837,"y":30106.621108754414},"targetPosition":{"x":18639.358698605116,"y":30180.708134155873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c374a797-47e4-4d35-9340-9627dbae21da","savedPayload":{"position":{"x":18334.83212759912,"y":30035.209620241367},"targetPosition":{"x":18639.358698605116,"y":30180.708134155873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f40cc3e1-35f3-4e54-a8ef-dea041b8f86a","savedPayload":{"position":{"x":18374.84370973586,"y":29971.09403476488},"targetPosition":{"x":18639.358698605116,"y":30180.708134155873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"11b292ec-138c-4b98-a479-292abd79eba7","savedPayload":{"position":{"x":18428.11917793291,"y":29917.489375504105},"targetPosition":{"x":18639.358698605116,"y":30180.708134155873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"05cf852d-17ca-4143-81ef-2b66dc27ae64","savedPayload":{"position":{"x":18491.987077755886,"y":29877.08360390795},"targetPosition":{"x":18639.358698605116,"y":30180.708134155873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3e0af072-76d7-432a-8b37-2d7d1197205b","savedPayload":{"position":{"x":18563.244806018538,"y":29851.902834084052},"targetPosition":{"x":18639.358698605116,"y":30180.708134155873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1b6e6937-8c99-46a5-99bd-f1c19c4aa6e8","savedPayload":{"position":{"x":18639.358698605116,"y":30180.708134155873},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f67adf1e-206a-4864-95e8-e2ee7a7c8fd2","savedPayload":{"position":{"x":20665.928345186298,"y":28657.590477472215},"targetPosition":{"x":20471.826272775474,"y":29017.30535041722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a44a1653-e899-4fb3-b8c6-ab452221676b","savedPayload":{"position":{"x":20767.89547097239,"y":28735.369465289463},"targetPosition":{"x":20471.826272775474,"y":29017.30535041722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"feb097b5-2ac2-4b21-816b-074bbe292378","savedPayload":{"position":{"x":20840.70270207213,"y":28840.956085931102},"targetPosition":{"x":20471.826272775474,"y":29017.30535041722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"cd91cb19-8193-4a92-8238-0ae05b0abfe7","savedPayload":{"position":{"x":20944.425663610396,"y":28955.054963328468},"targetPosition":{"x":20741.40137692579,"y":28981.662836711992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"00dfb443-2533-489f-a0c6-a1110ed94c7c","savedPayload":{"position":{"x":20741.40137692579,"y":28981.662836711992},"targetPosition":{"x":20471.826272775474,"y":29017.30535041722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ef52d686-c0de-4467-9620-591012e62d45","savedPayload":{"position":{"x":18734.943147841466,"y":30100.83713831115},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3","savedPayload":{"position":{"x":29739.123581239066,"y":24801.782878317525},"targetPosition":{"x":30355.766765147822,"y":24527.23564424136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Market Order","name":"Market Buy Order #2","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c3e4801b-1175-4110-9dad-7c77890b5251","savedPayload":{"position":{"x":18698.33763148378,"y":30449.115361973192},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"c79c56d6-c202-40fb-a179-970b96ffb32c","savedPayload":{"position":{"x":18621.448045589157,"y":30351.116614562845},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"22593cb5-8c92-48a4-88fc-aba10a5d8d9a","savedPayload":{"position":{"x":18563.874873592184,"y":30240.658057722503},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1e28e08a-bc3f-49bf-9f57-1fc67241081d","savedPayload":{"position":{"x":18527.57870081381,"y":30121.50122512492},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a2a427a2-c57b-451e-b844-97b983781bdf","savedPayload":{"position":{"x":18513.795549885548,"y":29997.703859791356},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3f8c5c95-f622-4dce-a111-ba139e53f34d","savedPayload":{"position":{"x":18522.994789481185,"y":29873.481732519656},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"925cb3cc-166a-4db5-aed8-217d3634c1e2","savedPayload":{"position":{"x":18554.86315052957,"y":29753.065078866042},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"66821726-82b4-43c9-9b52-c01ae5a6e421","savedPayload":{"position":{"x":18608.315394217083,"y":29640.55454354683},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"2b460638-d6e8-431f-a14e-41d40cab2494","savedPayload":{"position":{"x":18681.531268493844,"y":29539.781537900803},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"b49fd1ee-ea92-4687-9a54-ac215d966725","savedPayload":{"position":{"x":18772.017494574124,"y":29454.17776577134},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"a50280fa-32e2-45db-b575-1737b08a69a4","savedPayload":{"position":{"x":18876.692672555022,"y":29386.6583609479},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8f794d98-218a-4f47-b59d-7582b04f21c6","savedPayload":{"position":{"x":18991.99221479444,"y":29339.52261578115},"targetPosition":{"x":19090.336254369588,"y":29662.376607362545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"eabd1631-8836-47db-98b2-b99d794e125b","savedPayload":{"position":{"x":19090.336254369588,"y":29662.376607362545},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"5afe9f6b-f429-46eb-8440-3380f1f6d449","savedPayload":{"position":{"x":19113.98973366797,"y":29314.375681539634},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c0e36342-f7ec-4fd0-a2bd-e1ca2349fece","savedPayload":{"position":{"x":19080.56506738654,"y":29013.823855576542},"targetPosition":{"x":19238.530749990274,"y":29312.073906908532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8378ccb4-daee-4ea7-bbde-a05b19a815db","savedPayload":{"position":{"x":19150.892476827954,"y":28986.150935829282},"targetPosition":{"x":19238.530749990274,"y":29312.073906908532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f4beed06-e887-4746-ae63-36c076452b2b","savedPayload":{"position":{"x":19225.614435231284,"y":28974.821154787744},"targetPosition":{"x":19238.530749990274,"y":29312.073906908532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c5548fa3-6d39-4b8b-9b83-479b33dce985","savedPayload":{"position":{"x":19300.984071590465,"y":28980.40263498239},"targetPosition":{"x":19238.530749990274,"y":29312.073906908532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"acfb692f-cc8b-4385-b7e9-f69596075365","savedPayload":{"position":{"x":19373.22203762225,"y":29002.615497690036},"targetPosition":{"x":19238.530749990274,"y":29312.073906908532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b1824d29-63f5-4245-8d82-50acbe1c7e6a","savedPayload":{"position":{"x":19438.70602007033,"y":29040.345897221683},"targetPosition":{"x":19238.530749990274,"y":29312.073906908532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"98802c83-3a16-4dff-b385-591e59949e3f","savedPayload":{"position":{"x":19238.530749990274,"y":29312.073906908532},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3e9d6b2d-5df3-4dac-a271-a8b6581c4305","savedPayload":{"position":{"x":19260.901455269322,"y":29010.49778061355},"targetPosition":{"x":19361.374168820978,"y":29332.69567606224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4225b562-96e6-41f8-80ba-ff36fd97bbff","savedPayload":{"position":{"x":19335.11629258082,"y":28996.21867248643},"targetPosition":{"x":19361.374168820978,"y":29332.69567606224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0200f5ed-e48e-4c8c-9bc1-41fc0643db8c","savedPayload":{"position":{"x":19410.647809450347,"y":28998.81192632421},"targetPosition":{"x":19361.374168820978,"y":29332.69567606224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4522d317-dc29-48c7-9019-f56dc19f86da","savedPayload":{"position":{"x":19483.70854022991,"y":29018.14750555098},"targetPosition":{"x":19361.374168820978,"y":29332.69567606224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4d5524ae-0dbd-482a-bfbb-cfb357a74cbe","savedPayload":{"position":{"x":19550.634914803177,"y":29053.25584348596},"targetPosition":{"x":19361.374168820978,"y":29332.69567606224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2bc7e9dd-86ec-482b-a5f7-346a7d06b4fd","savedPayload":{"position":{"x":19608.070965288847,"y":29102.376461465436},"targetPosition":{"x":19361.374168820978,"y":29332.69567606224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e3fdab87-ca49-479a-8a43-d4dde949fbe3","savedPayload":{"position":{"x":19361.374168820978,"y":29332.69567606224},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"238be086-0999-4feb-b230-b480537fd34f","savedPayload":{"position":{"x":19468.982424814192,"y":29038.168397706148},"targetPosition":{"x":19478.336704866244,"y":29375.5387393853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c99d1a46-a434-4cbe-a22e-e58ed5f50ba6","savedPayload":{"position":{"x":19573.69342484443,"y":29051.789846020394},"targetPosition":{"x":19478.336704866244,"y":29375.5387393853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"305db308-40c2-446b-80d6-2dcfd0b2eac1","savedPayload":{"position":{"x":19669.07024473387,"y":29097.102091708373},"targetPosition":{"x":19478.336704866244,"y":29375.5387393853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"6cd597c1-85da-4694-ae90-6466c7e32cfa","savedPayload":{"position":{"x":19745.776736822347,"y":29169.669656453174},"targetPosition":{"x":19612.056720844295,"y":29272.604197919238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7474b7a-3366-4e8f-8112-c698e76bdda8","savedPayload":{"position":{"x":19612.056720844295,"y":29272.604197919238},"targetPosition":{"x":19478.336704866244,"y":29375.5387393853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"caef76b7-9fa7-4d01-bddb-6fe620392bce","savedPayload":{"position":{"x":19478.336704866244,"y":29375.5387393853},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f9d549de-24f3-4dc8-8c09-33d6b301280d","savedPayload":{"position":{"x":30173.73794141346,"y":24394.98396247555},"targetPosition":{"x":30355.766765147822,"y":24527.23564424136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a5823c2e-46a8-4824-a267-5606466e19db","savedPayload":{"position":{"x":30355.766765147822,"y":24527.23564424136},"targetPosition":{"x":30803.301618063546,"y":24574.2734527118},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"marketSellOrders":{"type":"Market Sell Orders","name":"New Market Sell Orders","project":"Superalgos","marketOrders":[{"type":"Market Order","name":"Close Sell Market Order","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9e62e429-ace2-469c-8d43-ddb407499fa5","savedPayload":{"position":{"x":18928.365435412346,"y":30610.794435169533},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"4c89aeee-df1f-4f7e-b049-877f473d8c4e","savedPayload":{"position":{"x":18818.26362193097,"y":30552.54193667241},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"fbfd7a04-bfa3-4e4e-a607-42a7d3ba92b5","savedPayload":{"position":{"x":18720.740369562824,"y":30475.050142522436},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"99a80e5b-0bde-4f49-a81c-a0e88b2c118f","savedPayload":{"position":{"x":18639.116715701046,"y":30380.95794282821},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"90744b76-8917-4e5e-9313-87e7487efcfc","savedPayload":{"position":{"x":18576.172255981124,"y":30273.46953459918},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d1d02b18-2e2a-4646-8b0d-f7144bcdd945","savedPayload":{"position":{"x":18534.05048848526,"y":30156.24530665943},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"63a268b6-7f8b-49e9-b420-37a08d4b9bbe","savedPayload":{"position":{"x":18514.185819486032,"y":30033.277189496504},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"db3e6d10-ee2b-49da-ac75-71cc0a2246cc","savedPayload":{"position":{"x":18517.254716461168,"y":29908.752714856375},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"853d913d-eedd-4349-9a40-a52f690668eb","savedPayload":{"position":{"x":18543.152671804914,"y":29786.912414372266},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"dd180ddb-0851-47a9-a979-3ce5da36b223","savedPayload":{"position":{"x":18590.997761709208,"y":29671.905413345834},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"f3515c3c-7ebe-408b-ae1a-c80acb939e37","savedPayload":{"position":{"x":18659.160679021228,"y":29567.648137261334},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e4dc4641-78f4-446a-8e3e-7932afb51ce0","savedPayload":{"position":{"x":18745.320217344313,"y":29477.690942613008},"targetPosition":{"x":18966.478516723855,"y":29732.632615580667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"86d6ac94-c819-4724-aee1-4d0c61298b77","savedPayload":{"position":{"x":18966.478516723855,"y":29732.632615580667},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"a763d22c-0245-42ab-a0d2-b06233dc552a","savedPayload":{"position":{"x":18846.542316937856,"y":29405.09721377284},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6699cd68-35c8-4f90-8850-6ab7cfe2016a","savedPayload":{"position":{"x":18693.761924120707,"y":29144.124494937307},"targetPosition":{"x":18959.37998060272,"y":29352.339043109903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c7b98e92-df2c-4e5a-9940-0d10a5ea930a","savedPayload":{"position":{"x":18746.753619081574,"y":29090.239290370075},"targetPosition":{"x":18959.37998060272,"y":29352.339043109903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8771390c-321e-457b-bf9d-bc2d341bf4dc","savedPayload":{"position":{"x":18810.407287659476,"y":29049.496861838474},"targetPosition":{"x":18959.37998060272,"y":29352.339043109903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9d9efc68-ba3e-4c36-8f56-0beac18d35e0","savedPayload":{"position":{"x":18881.531069117347,"y":29023.94020483464},"targetPosition":{"x":18959.37998060272,"y":29352.339043109903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"85c030de-a925-45ae-a811-e53e8f4f75be","savedPayload":{"position":{"x":18956.55852006584,"y":29014.850836856058},"targetPosition":{"x":18959.37998060272,"y":29352.339043109903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"75d5db30-1378-4aa3-8f50-fa1f973b6b38","savedPayload":{"position":{"x":19031.727450827042,"y":29022.68453676706},"targetPosition":{"x":18959.37998060272,"y":29352.339043109903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"bf184263-2b70-4934-a1ef-a3d9881f9171","savedPayload":{"position":{"x":18959.37998060272,"y":29352.339043109903},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"cad488ae-7e5d-4600-a796-22708671364c","savedPayload":{"position":{"x":18857.154575553628,"y":29067.736557231226},"targetPosition":{"x":19079.99065703666,"y":29321.21304684967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5de83a17-4069-4cab-82a9-c2faa0aed4f4","savedPayload":{"position":{"x":18919.145366563494,"y":29024.50604906801},"targetPosition":{"x":19079.99065703666,"y":29321.21304684967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"fb23eb72-a33c-4c80-8b54-ade1b5eed5bd","savedPayload":{"position":{"x":18989.201612069126,"y":28996.153668714098},"targetPosition":{"x":19079.99065703666,"y":29321.21304684967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"306baf20-5d8a-4614-8ecd-5adc8738ab11","savedPayload":{"position":{"x":19063.810399391466,"y":28984.101122909662},"targetPosition":{"x":19079.99065703666,"y":29321.21304684967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4b930ee3-6684-4a26-878f-43dd26fbbdd7","savedPayload":{"position":{"x":19139.230532395006,"y":28988.95277662837},"targetPosition":{"x":19079.99065703666,"y":29321.21304684967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0eb0f6d9-d10a-485a-8b34-f0788a9f31d7","savedPayload":{"position":{"x":19211.680130683904,"y":29010.46534769405},"targetPosition":{"x":19079.99065703666,"y":29321.21304684967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"96cb5ac0-a52a-4c5c-b613-357434c50a9f","savedPayload":{"position":{"x":19079.99065703666,"y":29321.21304684967},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5647419a-17f5-44d8-85b4-e57287adeb8d","savedPayload":{"position":{"x":22143.81147557059,"y":28934.09581860374},"targetPosition":{"x":21775.69474464043,"y":29111.174883611086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"cc5b4f99-1d79-47ea-b554-91f19187e628","savedPayload":{"position":{"x":22180.55259850277,"y":29057.106844566493},"targetPosition":{"x":21775.69474464043,"y":29111.174883611086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"50282e17-b223-4318-a93a-f001a8756b9f","savedPayload":{"position":{"x":22177.94701415641,"y":29185.674705464065},"targetPosition":{"x":21775.69474464043,"y":29111.174883611086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"9a913ce3-65eb-46f2-ac68-b877e8fc52fc","savedPayload":{"position":{"x":22216.028808959018,"y":29350.422588096473},"targetPosition":{"x":22036.73623453606,"y":29252.812725747033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1684af0b-83de-4fae-b7c1-7e177c983952","savedPayload":{"position":{"x":22036.73623453606,"y":29252.812725747033},"targetPosition":{"x":21775.69474464043,"y":29111.174883611086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b9099572-9359-4b04-9cf0-d10e5905fa37","savedPayload":{"position":{"x":19204.26709431028,"y":29312.779183463266},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604","savedPayload":{"position":{"x":29808.636816103397,"y":24132.824288548327},"targetPosition":{"x":30468.886446598717,"y":24273.164679850313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Market Order","name":"Market Sell Order #2","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0b81731f-f5aa-4385-8087-883b0053f35e","savedPayload":{"position":{"x":18969.93980592588,"y":29573.026002508974},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"e4da00c4-a47d-44a2-8af1-64e863d1e368","savedPayload":{"position":{"x":18965.33704271761,"y":29448.548785782805},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"ba273d24-bcbe-40ac-bc04-e9216cfa4744","savedPayload":{"position":{"x":18983.685278852252,"y":29325.34527469732},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d4cc6bef-c37c-40b1-a881-4e8bddadda43","savedPayload":{"position":{"x":19024.35968715452,"y":29207.611017056202},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"34645282-c5b4-4fdf-ad2e-567903e0dbb2","savedPayload":{"position":{"x":19085.975149433256,"y":29099.355311796746},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4926adb9-5dfa-459d-bb6c-5f2929ec7c73","savedPayload":{"position":{"x":19166.433425020157,"y":29004.264677123152},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"f7a4d950-f67d-423e-ab99-ba43888bfc8e","savedPayload":{"position":{"x":19262.99460383918,"y":28925.577310550587},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"1eb65c1b-c8bf-458a-80f2-02054c23ccc6","savedPayload":{"position":{"x":19372.370410758012,"y":28865.972815972586},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"a3372580-6256-41e4-993e-ea10cfa6c845","savedPayload":{"position":{"x":19490.83618385385,"y":28827.480952964288},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"33431686-26aa-485e-a0de-3981bb35dff8","savedPayload":{"position":{"x":19614.357713307956,"y":28811.412515754542},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"12ec632d-d6d6-4841-b2bc-268353c80597","savedPayload":{"position":{"x":19738.728621582508,"y":28818.31469570056},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9b62a3d1-92a5-4d06-bdad-ffbf6f1bb330","savedPayload":{"position":{"x":19859.713606562687,"y":28847.952447342534},"targetPosition":{"x":19749.506790979158,"y":29166.95198934681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"33fe6333-e5ba-46ae-ba6e-eb72db5a18c2","savedPayload":{"position":{"x":19749.506790979158,"y":29166.95198934681},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"be48c3db-3bc7-4105-b883-ad0ed50819b2","savedPayload":{"position":{"x":19973.192669690477,"y":28899.31649259485},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5cc67466-ca02-4eb2-b137-0390110f1a17","savedPayload":{"position":{"x":20122.81147748817,"y":28636.518431797267},"targetPosition":{"x":20075.30141757421,"y":28970.65769050084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0848e446-525d-4e6a-a074-5926230c2df0","savedPayload":{"position":{"x":20195.97328101195,"y":28655.46798353936},"targetPosition":{"x":20075.30141757421,"y":28970.65769050084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"92451f64-da38-4044-8f2c-cc95258a60f3","savedPayload":{"position":{"x":20263.08409342114,"y":28690.222463306098},"targetPosition":{"x":20075.30141757421,"y":28970.65769050084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"17b37fa1-aaec-4185-8a02-231691462c8d","savedPayload":{"position":{"x":20320.778698351198,"y":28739.039136359912},"targetPosition":{"x":20075.30141757421,"y":28970.65769050084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"39d8b4de-b9a4-4a7a-a3b3-949c3baef162","savedPayload":{"position":{"x":20366.16404739924,"y":28799.470130873204},"targetPosition":{"x":20075.30141757421,"y":28970.65769050084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"911090ca-bba6-45f4-9c5c-7af3945cf131","savedPayload":{"position":{"x":20396.964329651288,"y":28868.48518444322},"targetPosition":{"x":20075.30141757421,"y":28970.65769050084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cbd98498-37d3-4b4f-b797-392f4405f28f","savedPayload":{"position":{"x":20075.30141757421,"y":28970.65769050084},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"023905b1-a2a1-4df6-a128-1da70299913a","savedPayload":{"position":{"x":20270.6616978008,"y":28739.826649876835},"targetPosition":{"x":20162.56265927064,"y":29059.54660213014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"dcd46554-00ff-4808-a75c-607b31e6114c","savedPayload":{"position":{"x":20339.095811593583,"y":28771.896995610463},"targetPosition":{"x":20162.56265927064,"y":29059.54660213014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a58bd9db-f888-4678-8291-c8b7f2d3185d","savedPayload":{"position":{"x":20398.677815990646,"y":28818.39129373514},"targetPosition":{"x":20162.56265927064,"y":29059.54660213014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0af2b201-7c59-4052-9110-dd1bfdb02206","savedPayload":{"position":{"x":20446.42002049874,"y":28876.978125999616},"targetPosition":{"x":20162.56265927064,"y":29059.54660213014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e05bef30-b5dd-4475-9cf3-5537ce25f702","savedPayload":{"position":{"x":20479.928431629738,"y":28944.719703996845},"targetPosition":{"x":20162.56265927064,"y":29059.54660213014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ec7a47e6-2858-4ef5-849c-3838dd074290","savedPayload":{"position":{"x":20497.52279773059,"y":29018.219182141846},"targetPosition":{"x":20162.56265927064,"y":29059.54660213014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d60208af-cf08-4b32-8772-9daa1b7479cf","savedPayload":{"position":{"x":20162.56265927064,"y":29059.54660213014},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ac0449d3-86dc-45b2-8f93-c7573015ffbc","savedPayload":{"position":{"x":22360.109487118374,"y":28757.54843792331},"targetPosition":{"x":21991.992756188214,"y":28934.62750293065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a82976da-584f-4845-beb9-3c1bdd08d034","savedPayload":{"position":{"x":22396.850610050555,"y":28880.559463886057},"targetPosition":{"x":21991.992756188214,"y":28934.62750293065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"585d2e1b-0ee9-4554-a0d3-7aa6797060b3","savedPayload":{"position":{"x":22394.245025704193,"y":29009.12732478363},"targetPosition":{"x":21991.992756188214,"y":28934.62750293065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"ce0d0c85-9440-475d-834b-d44a7a8ad44f","savedPayload":{"position":{"x":22432.3268205068,"y":29173.875207416037},"targetPosition":{"x":22253.034246083844,"y":29076.265345066604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b43d17da-95d3-4286-9f23-60d4b04fae2e","savedPayload":{"position":{"x":22253.034246083844,"y":29076.265345066604},"targetPosition":{"x":21991.992756188214,"y":28934.62750293065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"78c636c0-cedc-4e63-a357-68f172f3a408","savedPayload":{"position":{"x":20232.004817852125,"y":29162.956222207715},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d5d8b542-53f6-4cae-8f16-197523dd0dab","savedPayload":{"position":{"x":30260.29997539563,"y":23631.201531351086},"targetPosition":{"x":30468.886446598717,"y":24273.164679850313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0cb8959b-8c1b-45f2-aa32-11c1efa63cc1","savedPayload":{"position":{"x":30468.886446598717,"y":24273.164679850313},"targetPosition":{"x":30803.301618063546,"y":24574.2734527118},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"limitBuyOrders":{"type":"Limit Buy Orders","name":"New Limit Buy Orders","project":"Superalgos","limitOrders":[{"type":"Limit Order","name":"Limit Buy Order #1","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0194d2f8-65b6-4b14-a475-98894e185842","savedPayload":{"position":{"x":19088.9177398892,"y":30270.005538311794},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"b489aabd-42fc-4dfa-88d7-a06447eb9ab3","savedPayload":{"position":{"x":18993.33329065285,"y":30190.134542467073},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"ddb47e49-1bd2-4ec6-bcba-ab683fe6057a","savedPayload":{"position":{"x":18914.05260527941,"y":30094.059905648806},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"717a205b-4e4c-483c-8cc4-b7b37b1c346c","savedPayload":{"position":{"x":18853.775492422574,"y":29985.05333438501},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1f6e73ab-b746-4866-a778-f0463def7cba","savedPayload":{"position":{"x":18814.554616866255,"y":29866.826916721104},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1c848292-d64a-456f-b1b9-b9e4a387436e","savedPayload":{"position":{"x":18797.725598487265,"y":29743.40671151367},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"94931a87-f582-496a-9568-414b6c7b85ce","savedPayload":{"position":{"x":18803.861529322323,"y":29618.99564582484},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"0216b354-f6d6-41d2-8a38-ed7dfe714b24","savedPayload":{"position":{"x":18832.75345760607,"y":29497.830389282004},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"03a48411-88af-4c63-97e6-bad700dd2fbf","savedPayload":{"position":{"x":18883.41750337286,"y":29384.037079375026},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"91379553-15c6-4663-8d4c-8c5d3bbc5822","savedPayload":{"position":{"x":18954.12836330893,"y":29281.490810792762},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"57d6275e-125c-4950-a515-ce56fe4c032d","savedPayload":{"position":{"x":19042.47806388748,"y":29193.683673721076},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"588c867e-9337-4872-8490-62a114e0e0c0","savedPayload":{"position":{"x":19145.457962019096,"y":29123.6058348999},"targetPosition":{"x":19308.778067652947,"y":29418.957816602662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"371c590e-927d-4d94-8ed9-3edf5e3f8410","savedPayload":{"position":{"x":19308.778067652947,"y":29418.957816602662},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"41cd34ec-9e60-425f-97ba-cc2e874ce66b","savedPayload":{"position":{"x":19259.56120078368,"y":29073.64371108119},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"623c7f3e-bf42-4d57-8bd5-16e664ceaaa3","savedPayload":{"position":{"x":19059.828903449852,"y":28941.487970337585},"targetPosition":{"x":19380.902131236857,"y":29045.49870246862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"01d4bade-b1c7-4230-9638-06b14acff0ae","savedPayload":{"position":{"x":19136.75371404919,"y":28812.479818288048},"targetPosition":{"x":19380.902131236857,"y":29045.49870246862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0d2c2d0b-6be9-48b5-990e-b1a9f86a45a8","savedPayload":{"position":{"x":19262.035112956382,"y":28729.62391403955},"targetPosition":{"x":19380.902131236857,"y":29045.49870246862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5210cb3d-0652-4891-b974-90583714dbf0","savedPayload":{"position":{"x":19410.859582642337,"y":28709.33088558948},"targetPosition":{"x":19380.902131236857,"y":29045.49870246862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a494886b-7045-4d81-be56-14ebaecc329c","savedPayload":{"position":{"x":19553.7506116734,"y":28755.62001610003},"targetPosition":{"x":19380.902131236857,"y":29045.49870246862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"92603bc3-edc6-4f83-b4fc-d485cf4dbad9","savedPayload":{"position":{"x":19662.406879306513,"y":28859.323175574667},"targetPosition":{"x":19380.902131236857,"y":29045.49870246862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ec2bce1d-0e80-4158-bc17-ff7a0c290593","savedPayload":{"position":{"x":19380.902131236857,"y":29045.49870246862},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8cf38f76-2cd3-44f6-bb86-f2b8bfad423d","savedPayload":{"position":{"x":19208.854209457968,"y":28878.89245102137},"targetPosition":{"x":19505.34863352445,"y":29040.129253574276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7f645045-3a7d-4086-84ae-abbf53f7f22e","savedPayload":{"position":{"x":19308.174414708905,"y":28766.215804772502},"targetPosition":{"x":19505.34863352445,"y":29040.129253574276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"58409d16-1157-486d-8ef2-68cd23246714","savedPayload":{"position":{"x":19446.54739217936,"y":28707.791076386828},"targetPosition":{"x":19505.34863352445,"y":29040.129253574276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"284001b7-b135-41de-9915-112dce35ba8e","savedPayload":{"position":{"x":19596.56667664811,"y":28715.189999853385},"targetPosition":{"x":19505.34863352445,"y":29040.129253574276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"40a8de4e-7754-4614-ae93-9bd30cb4b918","savedPayload":{"position":{"x":19728.51910896034,"y":28786.947127637788},"targetPosition":{"x":19505.34863352445,"y":29040.129253574276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"16be0d25-24d4-4d4b-ac26-c48a266d22b7","savedPayload":{"position":{"x":19816.26989160622,"y":28908.85008053892},"targetPosition":{"x":19505.34863352445,"y":29040.129253574276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7c5da6d9-1986-4f7b-aecc-7268bf83bb66","savedPayload":{"position":{"x":19505.34863352445,"y":29040.129253574276},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f5214e63-7a64-40d0-8c15-db40a6cafa6f","savedPayload":{"position":{"x":17297.33119416522,"y":30570.75892881005},"targetPosition":{"x":17686.940361411183,"y":30498.45723764209},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"65fac651-eb4d-419f-b35d-d813f3baef3f","savedPayload":{"position":{"x":17328.863840170987,"y":30328.15158204874},"targetPosition":{"x":17686.940361411183,"y":30498.45723764209},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e9a5a1b7-4755-4262-b762-4753e75cfe90","savedPayload":{"position":{"x":17497.369388059982,"y":30149.98662463911},"targetPosition":{"x":17686.940361411183,"y":30498.45723764209},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"d13bdc2c-7cd0-4635-9557-1d112f122504","savedPayload":{"position":{"x":17750.823020603188,"y":30007.595038768028},"targetPosition":{"x":17725.57488144146,"y":30201.82729279386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1509fcc5-09bf-4ce5-a508-bb80acac4a49","savedPayload":{"position":{"x":17725.57488144146,"y":30201.82729279386},"targetPosition":{"x":17686.940361411183,"y":30498.45723764209},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"87b2e55b-69dc-433a-af96-2619bd7ec970","savedPayload":{"position":{"x":19628.66283126818,"y":29057.718214540313},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"008e16b8-9487-4db3-81e1-d11c19a7f59e","savedPayload":{"position":{"x":19425.044294589887,"y":29865.848052674388},"targetPosition":{"x":20088.741357195555,"y":29988.857032381587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Limit Order","name":"Limit Buy Order #2","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d516c43a-d83f-4062-a162-3b054a188996","savedPayload":{"position":{"x":19114.612113927444,"y":29628.629374475866},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"706d8275-0d37-4b82-b297-46240caf7037","savedPayload":{"position":{"x":19084.229663540704,"y":29507.829251870207},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"5617dbbc-8ad0-4b30-a360-d22fe67fb185","savedPayload":{"position":{"x":19076.561496389033,"y":29383.503220301674},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"17edfdf5-0772-483a-8140-2447bad2a472","savedPayload":{"position":{"x":19091.868742707826,"y":29259.885053662707},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f09d53f0-b4fc-4495-a331-c9c0b3b5dbd6","savedPayload":{"position":{"x":19129.63013258271,"y":29141.184420354533},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"52d30ed5-1c58-47be-a12c-7d95a6dde07a","savedPayload":{"position":{"x":19188.559747171297,"y":29031.44352807875},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"c847c219-47bb-44da-bbb6-ee2ba07e253d","savedPayload":{"position":{"x":19266.650809127055,"y":28934.399471302117},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"d7f72ff1-0b5f-4fe3-925c-a1e5f0adb39a","savedPayload":{"position":{"x":19361.244020994985,"y":28853.35696898664},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"659e5c4e-3d5e-42a6-8c88-e5defe7118ee","savedPayload":{"position":{"x":19469.118124396977,"y":28791.07582634891},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"7917f816-7f0f-468b-a5e3-3a5bcf499e04","savedPayload":{"position":{"x":19586.5995961224,"y":28749.676953003458},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"4e0c3898-8897-4a60-97a9-06373c32f158","savedPayload":{"position":{"x":19709.687745555144,"y":28730.570137929586},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8d17bb58-f671-4c13-8de1-3be5093e98a2","savedPayload":{"position":{"x":19834.190953394238,"y":28734.40604079853},"targetPosition":{"x":19792.716155294896,"y":29069.34796281281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"bbce9d28-eac9-4e9c-aabc-13b7c27fdee2","savedPayload":{"position":{"x":19792.716155294896,"y":29069.34796281281},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"a319ae7f-4df1-47f5-9b09-f130ca02d11b","savedPayload":{"position":{"x":19955.86941222186,"y":28761.054034538764},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4ff538d9-3562-46c8-98be-26129f3db05c","savedPayload":{"position":{"x":19871.96178476812,"y":28536.73809559366},"targetPosition":{"x":20070.579508059862,"y":28809.60665368419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7dbb1024-5bdf-4ea5-9124-c413f2027233","savedPayload":{"position":{"x":20010.02435303228,"y":28477.583577378362},"targetPosition":{"x":20070.579508059862,"y":28809.60665368419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9ce1108e-4b0a-4ce1-a307-9ecc6a46a9ba","savedPayload":{"position":{"x":20160.080612409893,"y":28484.190301421237},"targetPosition":{"x":20070.579508059862,"y":28809.60665368419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ae8b0433-bad6-4c82-8a92-08e60e6f9531","savedPayload":{"position":{"x":20292.410080411973,"y":28555.24972499945},"targetPosition":{"x":20070.579508059862,"y":28809.60665368419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"cb2ee517-1712-46d8-b167-586d816f541f","savedPayload":{"position":{"x":20380.803282986282,"y":28676.687657786686},"targetPosition":{"x":20070.579508059862,"y":28809.60665368419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9a8f6143-6b20-4d85-9080-e97b8891322d","savedPayload":{"position":{"x":20407.752862291494,"y":28824.451827855926},"targetPosition":{"x":20070.579508059862,"y":28809.60665368419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c1a0e27c-1166-431d-ba8a-2f511fb525c4","savedPayload":{"position":{"x":20070.579508059862,"y":28809.60665368419},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"dca23083-2e1c-4dd8-b054-e5c15f624cc2","savedPayload":{"position":{"x":20029.318513034268,"y":28573.69213378505},"targetPosition":{"x":20174.414926174075,"y":28878.41049702226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f82d03c0-698d-4811-81a9-7d91c5eb2b1d","savedPayload":{"position":{"x":20175.899917909945,"y":28540.913764001714},"targetPosition":{"x":20174.414926174075,"y":28878.41049702226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7fb770cd-de9f-4ed2-bf36-6e72190980e2","savedPayload":{"position":{"x":20322.187201960103,"y":28574.98076131889},"targetPosition":{"x":20174.414926174075,"y":28878.41049702226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1837436f-430f-4ab8-88d4-7ae0c12af61c","savedPayload":{"position":{"x":20439.20637448281,"y":28669.145739113614},"targetPosition":{"x":20174.414926174075,"y":28878.41049702226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c47f2fc4-b14e-400b-abc7-93708c15654d","savedPayload":{"position":{"x":20503.78035321397,"y":28804.75816867598},"targetPosition":{"x":20174.414926174075,"y":28878.41049702226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1faf0d1b-61ac-4835-a937-d9a1508126d5","savedPayload":{"position":{"x":20503.119469718004,"y":28954.958345153856},"targetPosition":{"x":20174.414926174075,"y":28878.41049702226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f2870e23-9835-4532-bd91-b4fcc21dd948","savedPayload":{"position":{"x":20174.414926174075,"y":28878.41049702226},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"62fb7451-7bf5-496d-9353-d735820b30b2","savedPayload":{"position":{"x":17603.538956874025,"y":29639.38710844845},"targetPosition":{"x":17961.204368089377,"y":29809.649822833868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2262cd32-bff0-4385-bbc9-521774bf944e","savedPayload":{"position":{"x":17771.92725806642,"y":29461.554140058746},"targetPosition":{"x":17961.204368089377,"y":29809.649822833868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7e524691-0da3-4c5e-bc7a-319d871dae43","savedPayload":{"position":{"x":18012.451809177936,"y":29416.26381463596},"targetPosition":{"x":17961.204368089377,"y":29809.649822833868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"25d54fc5-92c9-43e4-8cbf-71cb76a1334d","savedPayload":{"position":{"x":18301.279930990066,"y":29450.405954343754},"targetPosition":{"x":18167.267018282633,"y":29591.964819703593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7d89aff-04c2-47cb-82f2-eaf9310be4ed","savedPayload":{"position":{"x":18167.267018282633,"y":29591.964819703593},"targetPosition":{"x":17961.204368089377,"y":29809.649822833868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e9e813ef-9592-4176-bc78-b55ba7b8c551","savedPayload":{"position":{"x":20263.83967593748,"y":28965.122532189227},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"68fee060-9d11-4222-b788-46cc11a9305d","savedPayload":{"position":{"x":19522.638723832395,"y":29621.225683746445},"targetPosition":{"x":20088.741357195555,"y":29988.857032381587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Limit Order","name":"Limit Buy Order #3","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"19953c5d-b9dd-496e-ac1c-366d00fb0e35","savedPayload":{"position":{"x":19512.39074945889,"y":29124.847932272147},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"a1a87815-ca21-4253-98fc-6fe7bf39209b","savedPayload":{"position":{"x":19558.815361307992,"y":29009.260223895755},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"39d13327-892e-49b0-a3b9-1b81bcc7b8a2","savedPayload":{"position":{"x":19625.68869159861,"y":28904.171115949757},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a664b78f-0261-463b-8122-4f49ca906ee6","savedPayload":{"position":{"x":19710.73344927342,"y":28813.159291964752},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8d4e39cb-5cde-4cef-9504-a4e065d3ed12","savedPayload":{"position":{"x":19811.05353710974,"y":28739.32405044989},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c7a0e139-7cb3-49bb-8aea-a1c5283c5f3d","savedPayload":{"position":{"x":19923.232674836996,"y":28685.179761999367},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"c937b8cc-6adf-49df-8322-3eb3eb0dfdc1","savedPayload":{"position":{"x":20043.45073646393,"y":28652.57024541743},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"5025336e-e85b-419d-9bd9-f5811e3fa9b2","savedPayload":{"position":{"x":20167.61384008751,"y":28642.60597868049},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"643aa93b-e58d-4928-a576-c2f1ec3c2745","savedPayload":{"position":{"x":20291.49376013106,"y":28655.62628294144},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"e5d2af2d-22c8-453b-a4cc-e4fb81225457","savedPayload":{"position":{"x":20410.87191449509,"y":28691.187767354815},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"6d137135-5b2d-4b29-a7c6-bc92ac579612","savedPayload":{"position":{"x":20521.683023311045,"y":28748.07942822021},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"111c6c6f-c6af-44e6-bdf6-ba6b8325c9b5","savedPayload":{"position":{"x":20620.15354717147,"y":28824.363888260887},"targetPosition":{"x":20389.725808536346,"y":29070.959320634443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"d479f8d6-64ad-46ec-8537-fe131d79a8a9","savedPayload":{"position":{"x":20389.725808536346,"y":29070.959320634443},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"d8e6194b-d355-442a-a6c1-72580597638f","savedPayload":{"position":{"x":20702.930190488685,"y":28917.44337168328},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"986a2c18-c5e3-419f-8b40-79a5880d4763","savedPayload":{"position":{"x":20766.897094687,"y":28686.64829899535},"targetPosition":{"x":20767.194093954153,"y":29024.148168315973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"fb4e15d2-6acf-427c-b243-22c1ce1ec97c","savedPayload":{"position":{"x":20913.362212113174,"y":28719.94242998441},"targetPosition":{"x":20767.194093954153,"y":29024.148168315973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"dbcd4995-b198-4340-ace5-1fee2d4836c7","savedPayload":{"position":{"x":21030.87694110363,"y":28813.488238288577},"targetPosition":{"x":20767.194093954153,"y":29024.148168315973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a82ab2a6-6739-436f-a3bb-a90818584a8f","savedPayload":{"position":{"x":21096.16604835823,"y":28948.757829309172},"targetPosition":{"x":20767.194093954153,"y":29024.148168315973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"04f910f4-2a94-4ed7-a800-f7b2d218e88f","savedPayload":{"position":{"x":21096.298225466853,"y":29098.959401571883},"targetPosition":{"x":20767.194093954153,"y":29024.148168315973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0a58a068-de29-459c-9c6c-ed59e3251927","savedPayload":{"position":{"x":21031.247293132088,"y":29234.343691588707},"targetPosition":{"x":20767.194093954153,"y":29024.148168315973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"553ae1bd-21d8-4d72-8283-2aa1f909b5cd","savedPayload":{"position":{"x":20767.194093954153,"y":29024.148168315973},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4e4e7ae3-ec61-46dc-a1bf-471888a346dd","savedPayload":{"position":{"x":20872.480323371998,"y":28809.036708126812},"targetPosition":{"x":20810.756827411416,"y":29140.84457428795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"74010dbf-1e63-4989-b8f2-43d7a9a1508b","savedPayload":{"position":{"x":21010.333813328612,"y":28868.676837970423},"targetPosition":{"x":20810.756827411416,"y":29140.84457428795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"746b590a-a40c-4671-a0b4-02fc443f36df","savedPayload":{"position":{"x":21108.65863357322,"y":28982.223125909943},"targetPosition":{"x":20810.756827411416,"y":29140.84457428795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"827661f4-2537-4d0f-92ee-feb8e0266e05","savedPayload":{"position":{"x":21147.980347581593,"y":29127.186337065134},"targetPosition":{"x":20810.756827411416,"y":29140.84457428795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7a964074-cc1a-4464-83c4-5a9c37bd174e","savedPayload":{"position":{"x":21120.510807645198,"y":29274.854729609586},"targetPosition":{"x":20810.756827411416,"y":29140.84457428795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1ab0c697-faf9-4cb9-8ebb-474ece1a12d8","savedPayload":{"position":{"x":21031.690693040237,"y":29395.980767365894},"targetPosition":{"x":20810.756827411416,"y":29140.84457428795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8deb2930-0f19-452a-8c4a-44d87159e3c8","savedPayload":{"position":{"x":20810.756827411416,"y":29140.84457428795},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c7fbd2e6-2de9-4b89-a086-4c321fbfd725","savedPayload":{"position":{"x":18329.33370081835,"y":30058.46209197097},"targetPosition":{"x":18616.870311713617,"y":30330.877145757557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5b0c5718-5ab8-462c-b7a4-f81f4bc02165","savedPayload":{"position":{"x":18544.29306588619,"y":29941.360295712024},"targetPosition":{"x":18616.870311713617,"y":30330.877145757557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"737d2666-fc0b-4d12-81fd-1ea60b82ae3f","savedPayload":{"position":{"x":18787.185886639003,"y":29972.351372240395},"targetPosition":{"x":18616.870311713617,"y":30330.877145757557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"225697e6-ae0f-47e0-9ba1-4803266d331d","savedPayload":{"position":{"x":19051.367241898643,"y":30094.078844644268},"targetPosition":{"x":18879.252577281124,"y":30187.978286683072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"49b649cd-2b6c-488c-9d2e-b7093798f8d4","savedPayload":{"position":{"x":18879.252577281124,"y":30187.978286683072},"targetPosition":{"x":18616.870311713617,"y":30330.877145757557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e7cd13f9-2f0b-4d6b-8870-a75c0b3f1992","savedPayload":{"position":{"x":20832.134914220333,"y":29263.558633455737},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"accb5840-90b8-4f57-869f-71d9cbdee6ee","savedPayload":{"position":{"x":19706.41714727129,"y":29432.571855061724},"targetPosition":{"x":20088.741357195555,"y":29988.857032381587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Limit Order","name":"Limit Buy Order #4","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"98451bf9-2b66-4d19-8fbd-f792d88fb324","savedPayload":{"position":{"x":20130.315727709083,"y":28951.088599721028},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"17d393b9-5199-4676-918d-74c235161186","savedPayload":{"position":{"x":20235.81477798219,"y":28884.863881491983},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"14d7acd3-ff50-4ede-9afa-a9bd25100060","savedPayload":{"position":{"x":20351.68626648498,"y":28839.15216455647},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"88413b58-802d-438e-927d-2f73ce62f26a","savedPayload":{"position":{"x":20473.984328649025,"y":28815.51010660958},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4bce6443-38b7-4fc2-80f2-18bebc2ca65c","savedPayload":{"position":{"x":20598.544250647683,"y":28814.742809579155},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ccc3cb23-544f-4d93-b0cd-7f31dc6374b6","savedPayload":{"position":{"x":20721.12429373045,"y":28836.876402845308},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"0669d33c-a13b-4573-9373-e36505a14627","savedPayload":{"position":{"x":20837.550141548698,"y":28881.15715343567},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"bbb2315b-a527-4199-9dc6-30ba8454ae0c","savedPayload":{"position":{"x":20943.857051492396,"y":28946.077133497798},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"d8ca88ce-db47-4b7f-88b3-b6df03ec32ed","savedPayload":{"position":{"x":21036.424869244493,"y":29029.42557097361},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"b133f9b6-c2bb-415d-a48e-665e75695ec1","savedPayload":{"position":{"x":21112.1013087943,"y":29128.364134790303},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"35499c65-da01-47b2-b7e1-12a8e1c32d01","savedPayload":{"position":{"x":21168.30929975683,"y":29239.52359082082},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ed741871-50af-4101-ab56-4744c8b88b1c","savedPayload":{"position":{"x":21203.134746413918,"y":29359.118537111113},"targetPosition":{"x":20871.76963145085,"y":29423.17640614773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"7f1b2469-a692-4acc-b259-aaaf71557551","savedPayload":{"position":{"x":20871.76963145085,"y":29423.17640614773},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"813fc2a2-ec07-4ff7-b77f-ba596f533c90","savedPayload":{"position":{"x":21215.391709948173,"y":29483.0763112036},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1d83de0d-6af9-498d-a687-831d17d2cc58","savedPayload":{"position":{"x":21402.799962549892,"y":29333.957978103645},"targetPosition":{"x":21204.66279416704,"y":29607.175679772525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8449f2d7-1306-40ef-946a-2579132dec2e","savedPayload":{"position":{"x":21501.72293244753,"y":29446.983531885133},"targetPosition":{"x":21204.66279416704,"y":29607.175679772525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1d1b73f3-77f0-49b0-a13b-b5236d4b1b13","savedPayload":{"position":{"x":21541.809498755203,"y":29591.737105183478},"targetPosition":{"x":21204.66279416704,"y":29607.175679772525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a2b4b46f-cf1a-4e13-9aad-023be83def72","savedPayload":{"position":{"x":21515.12002538621,"y":29739.548477520882},"targetPosition":{"x":21204.66279416704,"y":29607.175679772525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"066530a0-f4d3-4786-b71d-0ba43e73d510","savedPayload":{"position":{"x":21426.940689866187,"y":29861.141793818395},"targetPosition":{"x":21204.66279416704,"y":29607.175679772525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8232e36b-b592-44e5-bc01-9fafa8574e10","savedPayload":{"position":{"x":21294.736491043455,"y":29932.434006539137},"targetPosition":{"x":21204.66279416704,"y":29607.175679772525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6fe6a708-fd2a-4c8d-adf0-8db9d11afaea","savedPayload":{"position":{"x":21204.66279416704,"y":29607.175679772525},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0761f871-8503-42b0-a57f-0409cecaa870","savedPayload":{"position":{"x":21416.280486938023,"y":29495.032545715978},"targetPosition":{"x":21171.313359429532,"y":29727.19058766206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f4963f9f-ac80-4e63-af92-dedb30938cfc","savedPayload":{"position":{"x":21492.750714279944,"y":29624.310672679727},"targetPosition":{"x":21171.313359429532,"y":29727.19058766206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4aeb6c33-f400-4066-a5d9-d8dd06b9b5a1","savedPayload":{"position":{"x":21505.556331323285,"y":29773.96542854508},"targetPosition":{"x":21171.313359429532,"y":29727.19058766206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"362996ac-69e5-4f09-abdb-faa740362bbe","savedPayload":{"position":{"x":21452.16102856203,"y":29914.35585351778},"targetPosition":{"x":21171.313359429532,"y":29727.19058766206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e7ab1462-db02-4a8b-9a42-64aeda463217","savedPayload":{"position":{"x":21343.14040055846,"y":30017.6759021564},"targetPosition":{"x":21171.313359429532,"y":29727.19058766206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b65fdf40-e781-4eff-b519-b6d8f88d8900","savedPayload":{"position":{"x":21200.08731973894,"y":30063.461771690832},"targetPosition":{"x":21171.313359429532,"y":29727.19058766206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"790babc4-3b12-48c9-b54e-685e8a68ce93","savedPayload":{"position":{"x":21171.313359429532,"y":29727.19058766206},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5dd514a8-cc41-42a5-9f9b-0e66182d2ea1","savedPayload":{"position":{"x":17977.437220858108,"y":29477.575541907536},"targetPosition":{"x":18264.973831753374,"y":29749.99059569413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8dec1cc6-15ca-4b47-950a-bf8ce1621597","savedPayload":{"position":{"x":18192.396585925948,"y":29360.47374564859},"targetPosition":{"x":18264.973831753374,"y":29749.99059569413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"aeb7a9fc-db49-4260-bfa7-50489799e684","savedPayload":{"position":{"x":18435.28940667876,"y":29391.46482217696},"targetPosition":{"x":18264.973831753374,"y":29749.99059569413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"0b3e6c5e-d7ce-4524-afbc-34e680e04fc1","savedPayload":{"position":{"x":18699.4707619384,"y":29513.19229458084},"targetPosition":{"x":18527.35609732088,"y":29607.091736619645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"80e7267f-7958-498a-a54a-bdb29d0e3e35","savedPayload":{"position":{"x":18527.35609732088,"y":29607.091736619645},"targetPosition":{"x":18264.973831753374,"y":29749.99059569413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a6e13625-1b79-46a4-95cd-336b5797d8c2","savedPayload":{"position":{"x":21116.479080737397,"y":29839.034071126043},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3928e158-cbb9-40b6-910d-a2d20603bc64","savedPayload":{"position":{"x":19948.40096589357,"y":29328.60740188627},"targetPosition":{"x":20088.741357195555,"y":29988.857032381587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Limit Order","name":"Limit Buy Order #5","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c22b5f40-1de3-4b41-bf8b-fb435cbb1c8c","savedPayload":{"position":{"x":19758.212829284847,"y":29225.089208951482},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"e5100c66-e044-449e-b449-7760e5ee259d","savedPayload":{"position":{"x":19863.71187955795,"y":29158.864490722437},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"4dd1e856-ec07-411f-8d84-322c0a507818","savedPayload":{"position":{"x":19979.583368060743,"y":29113.152773786926},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"77686e92-830d-4e5b-9d16-4c2e0a146809","savedPayload":{"position":{"x":20101.88143022479,"y":29089.510715840035},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6d2484c7-ff50-48d2-b869-1efa87a21d04","savedPayload":{"position":{"x":20226.441352223446,"y":29088.74341880961},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b2f5836a-23fe-4095-a4a1-4b70901230b3","savedPayload":{"position":{"x":20349.021395306212,"y":29110.87701207576},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"261cab5d-e958-48c0-b3f0-3703315ea7dd","savedPayload":{"position":{"x":20465.44724312446,"y":29155.157762666124},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"2d0c5bbc-ee77-4976-997e-55e2045f9673","savedPayload":{"position":{"x":20571.75415306816,"y":29220.077742728252},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"9f6733f5-ee05-469a-8ca1-bd77b71b011a","savedPayload":{"position":{"x":20664.321970820256,"y":29303.426180204064},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"fa6e2f1d-78bd-4296-9c61-0c36c6d73a33","savedPayload":{"position":{"x":20739.998410370063,"y":29402.364744020757},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"59d3bba7-5222-45c0-8472-1468ce021224","savedPayload":{"position":{"x":20796.206401332594,"y":29513.524200051274},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f00e782e-ac01-46e8-995d-83bd7d5ecf0f","savedPayload":{"position":{"x":20831.03184798968,"y":29633.119146341567},"targetPosition":{"x":20499.666733026614,"y":29697.177015378184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"ebce24a6-271f-4028-bdc5-370ac91b64cc","savedPayload":{"position":{"x":20499.666733026614,"y":29697.177015378184},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"b8059d97-a6c0-48cf-ab6a-d14b2526eb58","savedPayload":{"position":{"x":20843.288811523937,"y":29757.076920434054},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"60f71d1c-6a79-4ed7-ac1f-ec58984f4960","savedPayload":{"position":{"x":21030.697064125656,"y":29607.9585873341},"targetPosition":{"x":20832.559895742805,"y":29881.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3027eeaa-862d-4739-bc09-f837c1896b0c","savedPayload":{"position":{"x":21129.620034023294,"y":29720.984141115587},"targetPosition":{"x":20832.559895742805,"y":29881.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e3a4b9fc-e9a1-404f-90f2-c7647e1cb338","savedPayload":{"position":{"x":21169.706600330966,"y":29865.737714413932},"targetPosition":{"x":20832.559895742805,"y":29881.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"dc3f44ea-2f1a-4799-a51a-fd92d838c61d","savedPayload":{"position":{"x":21143.017126961975,"y":30013.549086751336},"targetPosition":{"x":20832.559895742805,"y":29881.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"963e906a-5e4e-4207-b2ab-b77e12721d43","savedPayload":{"position":{"x":21054.83779144195,"y":30135.14240304885},"targetPosition":{"x":20832.559895742805,"y":29881.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d5ab8302-9908-471c-b9c2-6839eaf85fd3","savedPayload":{"position":{"x":20922.63359261922,"y":30206.43461576959},"targetPosition":{"x":20832.559895742805,"y":29881.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"20e5ece1-2a3e-4e8d-8f13-96622f9a5c72","savedPayload":{"position":{"x":20832.559895742805,"y":29881.17628900298},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0ccacad9-8aff-4728-979f-27e20eebf1f4","savedPayload":{"position":{"x":21044.177588513787,"y":29769.03315494643},"targetPosition":{"x":20799.210461005296,"y":30001.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c17618d5-88f2-4b2b-a4d4-a4f0173853a8","savedPayload":{"position":{"x":21120.647815855707,"y":29898.31128191018},"targetPosition":{"x":20799.210461005296,"y":30001.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"42e91165-1451-4c00-949c-c322955a6753","savedPayload":{"position":{"x":21133.45343289905,"y":30047.966037775535},"targetPosition":{"x":20799.210461005296,"y":30001.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"189e375f-0bdc-43a6-b3aa-9fecdc3de029","savedPayload":{"position":{"x":21080.058130137793,"y":30188.356462748234},"targetPosition":{"x":20799.210461005296,"y":30001.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4856c933-b4e2-4240-8e04-abda3da63715","savedPayload":{"position":{"x":20971.037502134222,"y":30291.676511386853},"targetPosition":{"x":20799.210461005296,"y":30001.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"320baed7-0e30-4141-8018-373858a8777d","savedPayload":{"position":{"x":20827.984421314704,"y":30337.462380921286},"targetPosition":{"x":20799.210461005296,"y":30001.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"55d7405e-f678-4bb5-a642-ff6c29fe5ab0","savedPayload":{"position":{"x":20799.210461005296,"y":30001.191196892512},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"cb5b62af-fcbb-401c-b7aa-c2f0d239c6e2","savedPayload":{"position":{"x":17605.33432243387,"y":29751.57615113799},"targetPosition":{"x":17892.870933329137,"y":30023.991204924583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b79f935b-06c3-4479-b46d-ebfc0eeef325","savedPayload":{"position":{"x":17820.29368750171,"y":29634.474354879043},"targetPosition":{"x":17892.870933329137,"y":30023.991204924583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"192e6727-286f-4868-bd57-9f5ebb59b14e","savedPayload":{"position":{"x":18063.186508254523,"y":29665.465431407414},"targetPosition":{"x":17892.870933329137,"y":30023.991204924583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"7c205b94-6aae-4332-9442-3f5ea752171c","savedPayload":{"position":{"x":18327.367863514162,"y":29787.192903811294},"targetPosition":{"x":18155.253198896644,"y":29881.0923458501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e12ca256-8faf-41fa-bca4-873b8677d686","savedPayload":{"position":{"x":18155.253198896644,"y":29881.0923458501},"targetPosition":{"x":17892.870933329137,"y":30023.991204924583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"251da11c-15cc-49d6-8919-0fa27251a0ed","savedPayload":{"position":{"x":20744.37618231316,"y":30113.034680356497},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8498313c-e3ff-4d36-a5c8-7d502096e3b2","savedPayload":{"position":{"x":20211.750336902754,"y":29325.159969775916},"targetPosition":{"x":20088.741357195555,"y":29988.857032381587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Limit Order","name":"Limit Buy Order #6","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a11152a1-1102-4a49-aedc-30c605f017ef","savedPayload":{"position":{"x":19446.212829284847,"y":29330.089208951482},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"5f0a50aa-03eb-4b65-a8e3-d3ce13b96954","savedPayload":{"position":{"x":19551.71187955795,"y":29263.864490722437},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"e610e024-6c1f-4a1d-b5bc-355ed39ac36f","savedPayload":{"position":{"x":19667.583368060743,"y":29218.152773786926},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a85b9419-fb7d-4f4b-af06-0e1c7651c200","savedPayload":{"position":{"x":19789.88143022479,"y":29194.510715840035},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"618376b2-8493-4978-8c74-fe4c9c5ddfe2","savedPayload":{"position":{"x":19914.441352223446,"y":29193.74341880961},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"735bad1a-1c50-4c78-8d5d-5d7134c34917","savedPayload":{"position":{"x":20037.021395306212,"y":29215.87701207576},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"7b252033-59b3-4224-982c-495fa4b6b499","savedPayload":{"position":{"x":20153.44724312446,"y":29260.157762666124},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"78541c24-6e1c-465d-9b18-d3f7ab20695b","savedPayload":{"position":{"x":20259.75415306816,"y":29325.077742728252},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"916bac0f-27aa-4cd0-9439-1cc90d29e1d7","savedPayload":{"position":{"x":20352.321970820256,"y":29408.426180204064},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"dc367fb4-0528-48ec-87ad-2d9be203ffb1","savedPayload":{"position":{"x":20427.998410370063,"y":29507.364744020757},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"b04f5e67-59d1-48dd-b54d-62adb71cb562","savedPayload":{"position":{"x":20484.206401332594,"y":29618.524200051274},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a89bf5f9-c4d0-4310-90eb-575e2d0305d6","savedPayload":{"position":{"x":20519.03184798968,"y":29738.119146341567},"targetPosition":{"x":20187.666733026614,"y":29802.177015378184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"8245dbf6-fda1-4014-a9da-f0a8b83f256c","savedPayload":{"position":{"x":20187.666733026614,"y":29802.177015378184},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"28b65e25-2e17-406b-962e-e5f0a964a52b","savedPayload":{"position":{"x":20531.288811523937,"y":29862.076920434054},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8d0b359a-a6c2-4a6b-8874-43ee2fb59c00","savedPayload":{"position":{"x":20718.697064125656,"y":29712.9585873341},"targetPosition":{"x":20520.559895742805,"y":29986.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b43be8c0-0c1d-4a84-bba5-49718fac4b8a","savedPayload":{"position":{"x":20817.620034023294,"y":29825.984141115587},"targetPosition":{"x":20520.559895742805,"y":29986.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a40df24d-f364-4a5f-946c-8ee16acca1a5","savedPayload":{"position":{"x":20857.706600330966,"y":29970.737714413932},"targetPosition":{"x":20520.559895742805,"y":29986.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3595e151-3c5c-489b-b2a9-576b36745e03","savedPayload":{"position":{"x":20831.017126961975,"y":30118.549086751336},"targetPosition":{"x":20520.559895742805,"y":29986.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8749eea9-dac1-4ef5-a553-4a80d262db51","savedPayload":{"position":{"x":20742.83779144195,"y":30240.14240304885},"targetPosition":{"x":20520.559895742805,"y":29986.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"dea29acc-ddde-42e2-8c5a-a6035c572844","savedPayload":{"position":{"x":20610.63359261922,"y":30311.43461576959},"targetPosition":{"x":20520.559895742805,"y":29986.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d9f8c6cd-dfac-430e-97c5-8e2fa833db3a","savedPayload":{"position":{"x":20520.559895742805,"y":29986.17628900298},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"293650db-33b2-4ece-b97e-d77b58300715","savedPayload":{"position":{"x":20732.177588513787,"y":29874.03315494643},"targetPosition":{"x":20487.210461005296,"y":30106.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7e91d96e-d7a6-42ff-9ceb-d74a14c2f089","savedPayload":{"position":{"x":20808.647815855707,"y":30003.31128191018},"targetPosition":{"x":20487.210461005296,"y":30106.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"dd2de844-7af3-4ddd-a55a-71f3a9053012","savedPayload":{"position":{"x":20821.45343289905,"y":30152.966037775535},"targetPosition":{"x":20487.210461005296,"y":30106.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"fa5d61b2-b806-400e-8d69-dd781bc884c8","savedPayload":{"position":{"x":20768.058130137793,"y":30293.356462748234},"targetPosition":{"x":20487.210461005296,"y":30106.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c9e27b64-41d5-4647-814f-17e52d2cb87e","savedPayload":{"position":{"x":20659.037502134222,"y":30396.676511386853},"targetPosition":{"x":20487.210461005296,"y":30106.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6d2ad7f1-dd19-4a64-8874-25d4f79bfd45","savedPayload":{"position":{"x":20515.984421314704,"y":30442.462380921286},"targetPosition":{"x":20487.210461005296,"y":30106.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"84de3049-f76d-4c78-a53a-8338fca49b4f","savedPayload":{"position":{"x":20487.210461005296,"y":30106.191196892512},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1a73d081-e1de-4ccc-bb52-dfab03c48d13","savedPayload":{"position":{"x":17293.33432243387,"y":29856.57615113799},"targetPosition":{"x":17580.870933329137,"y":30128.991204924583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"59b76a85-9aa5-4cc2-a8d7-77c21a8833de","savedPayload":{"position":{"x":17508.29368750171,"y":29739.474354879043},"targetPosition":{"x":17580.870933329137,"y":30128.991204924583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"01b21bcc-944c-471d-a57e-cf1282453bde","savedPayload":{"position":{"x":17751.186508254523,"y":29770.465431407414},"targetPosition":{"x":17580.870933329137,"y":30128.991204924583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"f6c6fd6c-0917-4461-a327-69af16129979","savedPayload":{"position":{"x":18015.367863514162,"y":29892.192903811294},"targetPosition":{"x":17843.253198896644,"y":29986.0923458501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad48743e-11b3-4e9a-9767-f2d72907299f","savedPayload":{"position":{"x":17843.253198896644,"y":29986.0923458501},"targetPosition":{"x":17580.870933329137,"y":30128.991204924583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"14f78e25-d3d8-4ee8-8511-07c19be592ec","savedPayload":{"position":{"x":20432.37618231316,"y":30218.034680356497},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6b09d2c2-7ac5-40db-b680-87f2815e2109","savedPayload":{"position":{"x":20456.372705830698,"y":29422.754399018428},"targetPosition":{"x":20088.741357195555,"y":29988.857032381587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Limit Order","name":"Limit Buy Order #7","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2612e09d-8ba6-4c50-9513-341b4da6080a","savedPayload":{"position":{"x":19416.212829284847,"y":29393.089208951482},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"d3912688-22d8-4a54-bc73-302efbddad30","savedPayload":{"position":{"x":19521.71187955795,"y":29326.864490722437},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"d02af40e-a745-41b3-8740-0bcd18a18664","savedPayload":{"position":{"x":19637.583368060743,"y":29281.152773786926},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"82e747c3-4913-4ce6-8c69-d9cc46f2f138","savedPayload":{"position":{"x":19759.88143022479,"y":29257.510715840035},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f4870048-4305-4b2c-bb61-7bc43190f0af","savedPayload":{"position":{"x":19884.441352223446,"y":29256.74341880961},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3b29b69e-bd44-4cca-bb6e-4930c7e3695f","savedPayload":{"position":{"x":20007.021395306212,"y":29278.87701207576},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"c1cc192a-4f0e-4ed7-ace6-c56bf084c78b","savedPayload":{"position":{"x":20123.44724312446,"y":29323.157762666124},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"37d3d60f-80c4-4de0-ac52-ccfe5bc6cfa8","savedPayload":{"position":{"x":20229.75415306816,"y":29388.077742728252},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"dddaf984-1a75-4511-8f1a-6eeab4bfa93d","savedPayload":{"position":{"x":20322.321970820256,"y":29471.426180204064},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"89177c4c-3cfe-489b-9ed8-7af85c13567b","savedPayload":{"position":{"x":20397.998410370063,"y":29570.364744020757},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"f2eed8da-6556-423d-8dd4-bdeefc7c1bd4","savedPayload":{"position":{"x":20454.206401332594,"y":29681.524200051274},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"af682a52-f263-4989-9aa1-ccfdbad4bac1","savedPayload":{"position":{"x":20489.03184798968,"y":29801.119146341567},"targetPosition":{"x":20157.666733026614,"y":29865.177015378184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"38c42cf8-1c36-4e29-a274-8160e510dd82","savedPayload":{"position":{"x":20157.666733026614,"y":29865.177015378184},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"3d09eb30-6129-4103-96d4-90805564bd16","savedPayload":{"position":{"x":20501.288811523937,"y":29925.076920434054},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7c37d5f1-5b9c-4303-b00a-0ed498a1f9d7","savedPayload":{"position":{"x":20688.697064125656,"y":29775.9585873341},"targetPosition":{"x":20490.559895742805,"y":30049.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6b431250-651b-46de-b2eb-d8d6ac31fd2b","savedPayload":{"position":{"x":20787.620034023294,"y":29888.984141115587},"targetPosition":{"x":20490.559895742805,"y":30049.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"01ffc4b8-59e0-434b-9291-6549c6284ece","savedPayload":{"position":{"x":20827.706600330966,"y":30033.737714413932},"targetPosition":{"x":20490.559895742805,"y":30049.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1116159b-0ea7-4c55-a0c5-fadf76bf7935","savedPayload":{"position":{"x":20801.017126961975,"y":30181.549086751336},"targetPosition":{"x":20490.559895742805,"y":30049.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7950d646-808a-4c39-84a4-e4b769434e60","savedPayload":{"position":{"x":20712.83779144195,"y":30303.14240304885},"targetPosition":{"x":20490.559895742805,"y":30049.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"77f8e5ba-d4cb-466c-a310-4b4a0411ecc0","savedPayload":{"position":{"x":20580.63359261922,"y":30374.43461576959},"targetPosition":{"x":20490.559895742805,"y":30049.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9d714138-76af-4ffc-a3d6-3b91f538a220","savedPayload":{"position":{"x":20490.559895742805,"y":30049.17628900298},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"fada26f7-d74f-44cb-b837-1e5f07c65bd5","savedPayload":{"position":{"x":20702.177588513787,"y":29937.03315494643},"targetPosition":{"x":20457.210461005296,"y":30169.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"cd457342-4011-44b6-a199-8ff9ed3cd326","savedPayload":{"position":{"x":20778.647815855707,"y":30066.31128191018},"targetPosition":{"x":20457.210461005296,"y":30169.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"695c70b5-0c2a-4167-a554-6e54bcc8a550","savedPayload":{"position":{"x":20791.45343289905,"y":30215.966037775535},"targetPosition":{"x":20457.210461005296,"y":30169.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d3a952b5-4b25-496f-9ebe-b23a92b3dc67","savedPayload":{"position":{"x":20738.058130137793,"y":30356.356462748234},"targetPosition":{"x":20457.210461005296,"y":30169.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8ab3f8ec-1614-4b7a-b2f6-e2901e0decb6","savedPayload":{"position":{"x":20629.037502134222,"y":30459.676511386853},"targetPosition":{"x":20457.210461005296,"y":30169.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d9d683b4-56c2-4e94-acb1-8dc4010019fb","savedPayload":{"position":{"x":20485.984421314704,"y":30505.462380921286},"targetPosition":{"x":20457.210461005296,"y":30169.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"28d98991-dc7f-4f86-8b1c-11017bd6ce5c","savedPayload":{"position":{"x":20457.210461005296,"y":30169.191196892512},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7936390b-a672-4127-a666-cb6bdd262fdd","savedPayload":{"position":{"x":17263.33432243387,"y":29919.57615113799},"targetPosition":{"x":17550.870933329137,"y":30191.991204924583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1e8819ed-7051-4221-b5c2-820e67d283ea","savedPayload":{"position":{"x":17478.29368750171,"y":29802.474354879043},"targetPosition":{"x":17550.870933329137,"y":30191.991204924583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"bc03238d-774e-430c-945e-e71b5d7cff9d","savedPayload":{"position":{"x":17721.186508254523,"y":29833.465431407414},"targetPosition":{"x":17550.870933329137,"y":30191.991204924583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"685faf9b-c439-4e23-9954-08867d8fdd39","savedPayload":{"position":{"x":17985.367863514162,"y":29955.192903811294},"targetPosition":{"x":17813.253198896644,"y":30049.0923458501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eb7525d3-4548-475f-bdcd-72f10864ce58","savedPayload":{"position":{"x":17813.253198896644,"y":30049.0923458501},"targetPosition":{"x":17550.870933329137,"y":30191.991204924583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bc4aa133-ed34-423c-8fcb-1abc965867c4","savedPayload":{"position":{"x":20402.37618231316,"y":30281.034680356497},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9b628e4a-2adb-488f-9916-f2a950119635","savedPayload":{"position":{"x":20645.026534515415,"y":29606.532822457324},"targetPosition":{"x":20088.741357195555,"y":29988.857032381587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f8247166-0cc2-4b14-ba38-37795aa65d87","savedPayload":{"position":{"x":30709.741357195555,"y":24134.107032381587},"targetPosition":{"x":30803.301618063546,"y":24574.2734527118},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"limitSellOrders":{"type":"Limit Sell Orders","name":"New Limit Sell Orders","project":"Superalgos","limitOrders":[{"type":"Limit Order","name":"Limit Sell Order #1","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b93b7202-379b-42b8-8bf4-30c8ee6eb2b0","savedPayload":{"position":{"x":19334.02565604323,"y":29895.0594133672},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"61e8fafd-e4c8-4002-a4c5-3f61436788a8","savedPayload":{"position":{"x":19276.282446603676,"y":29784.689649950473},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"e6f893c2-0b55-4383-bac8-9cf1d4c84d1c","savedPayload":{"position":{"x":19239.802815844534,"y":29665.588854601658},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"57f75a48-8bd4-4cca-8a61-b2447a2e0ecb","savedPayload":{"position":{"x":19225.82903383881,"y":29541.812862060695},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"601a8f27-12cd-4770-ad2d-34ed37ea253d","savedPayload":{"position":{"x":19234.836960973007,"y":29417.576715300624},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6a7faff9-39e1-479e-8875-8da5c8555685","savedPayload":{"position":{"x":19266.519843092385,"y":29297.111127294527},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"163600f3-bf47-4a17-a399-578cef593d68","savedPayload":{"position":{"x":19319.7987576458,"y":29184.518409159406},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"0b05fbb2-9102-4921-ace7-13ae89e086a0","savedPayload":{"position":{"x":19392.85935509915,"y":29083.632770871278},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"22927833-41b3-4478-8a3b-c0d6d14183ca","savedPayload":{"position":{"x":19483.21364443269,"y":28997.889751843046},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"2c4f393e-d02b-4b97-a2d5-35c81590f77b","savedPayload":{"position":{"x":19587.78471869119,"y":28930.209227750303},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"3a7feba8-a01f-4459-9c95-bfec028b0c91","savedPayload":{"position":{"x":19703.011535359954,"y":28882.89597766719},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"31d8d314-f897-4c86-b303-ae6365c71657","savedPayload":{"position":{"x":19824.970183396665,"y":28857.5611975793},"targetPosition":{"x":19862.83197612552,"y":29192.93074695932},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"525dd597-3f3a-41c3-bf05-882d631a400d","savedPayload":{"position":{"x":19862.83197612552,"y":29192.93074695932},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"020c2bc8-15f0-4074-9f01-2ef3848665d7","savedPayload":{"position":{"x":19949.50750731571,"y":28855.0676330368},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"36ac5e3a-da4a-4356-8162-7adad0331fd4","savedPayload":{"position":{"x":19815.552738302038,"y":28656.537407962045},"targetPosition":{"x":20072.382537917078,"y":28875.50019938949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"50c0c606-517c-45dd-98b5-37408700fdb4","savedPayload":{"position":{"x":19935.99127878647,"y":28566.787267310567},"targetPosition":{"x":20072.382537917078,"y":28875.50019938949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"shortcutKey":"w"}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9ab92cbc-aa48-44d5-b006-91203998b94b","savedPayload":{"position":{"x":20083.443780870737,"y":28538.181508972964},"targetPosition":{"x":20072.382537917078,"y":28875.50019938949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c2965e06-91ec-4acf-aaa9-a4d23b3301f8","savedPayload":{"position":{"x":20228.70546813079,"y":28576.38585421461},"targetPosition":{"x":20072.382537917078,"y":28875.50019938949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"65109b61-420e-44f2-9fe1-e1594fb26ccc","savedPayload":{"position":{"x":20343.005481887092,"y":28673.833463914845},"targetPosition":{"x":20072.382537917078,"y":28875.50019938949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9452d3af-bbda-4b69-821b-291340311173","savedPayload":{"position":{"x":20403.705302617534,"y":28811.22364385603},"targetPosition":{"x":20072.382537917078,"y":28875.50019938949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2688db6f-483d-440e-8bc1-46774884e344","savedPayload":{"position":{"x":20072.382537917078,"y":28875.50019938949},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3a6e4be3-f60c-4aad-874d-3b75485271c4","savedPayload":{"position":{"x":19977.18843653177,"y":28655.73620445132},"targetPosition":{"x":20189.410913405998,"y":28918.163090096386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2b6bd448-1833-4d7e-b0ce-6215ae843dfd","savedPayload":{"position":{"x":20112.067827061837,"y":28589.644754238616},"targetPosition":{"x":20189.410913405998,"y":28918.163090096386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"53b2fd1b-e305-4de2-87ad-5c7fede63db8","savedPayload":{"position":{"x":20262.265964393067,"y":28588.62038945553},"targetPosition":{"x":20189.410913405998,"y":28918.163090096386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d2080fab-3a99-44f8-89a6-9d9942fb9a27","savedPayload":{"position":{"x":20398.034265367744,"y":28652.865998110356},"targetPosition":{"x":20189.410913405998,"y":28918.163090096386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a6e7af83-68d1-41f1-9d1f-b1b8af71c45f","savedPayload":{"position":{"x":20492.482152888897,"y":28769.65694948833},"targetPosition":{"x":20189.410913405998,"y":28918.163090096386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e2fd39a4-12c4-4e69-ae03-cf88ef0dcba8","savedPayload":{"position":{"x":20526.90306450563,"y":28915.861363322016},"targetPosition":{"x":20189.410913405998,"y":28918.163090096386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0792e616-00d7-4c93-8e0e-eadaf04faf76","savedPayload":{"position":{"x":20189.410913405998,"y":28918.163090096386},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"94544402-f217-4671-8a78-a7f0ac1c7826","savedPayload":{"position":{"x":18554.059931675514,"y":28821.462529727323},"targetPosition":{"x":18841.59654257078,"y":29093.87758351391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"02898028-e79c-4650-9de9-83f533faacb4","savedPayload":{"position":{"x":18769.019296743354,"y":28704.36073346837},"targetPosition":{"x":18841.59654257078,"y":29093.87758351391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"78527442-4d45-4317-87d6-6be7bd952391","savedPayload":{"position":{"x":19011.912117496166,"y":28735.35180999674},"targetPosition":{"x":18841.59654257078,"y":29093.87758351391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"aa79b285-9cad-44f5-b1a7-bc66e1cc01ca","savedPayload":{"position":{"x":19276.093472755805,"y":28857.079282400628},"targetPosition":{"x":19103.978808138287,"y":28950.978724439425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a4cb4ecd-a8bc-4762-b7c5-cae00e806743","savedPayload":{"position":{"x":19103.978808138287,"y":28950.978724439425},"targetPosition":{"x":18841.59654257078,"y":29093.87758351391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"42c09a9e-3aec-44b8-8aa3-9211d2707503","savedPayload":{"position":{"x":20296.607372815262,"y":28981.603471582966},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"929c1c8c-1964-4495-991c-0a516f1e9ba0","savedPayload":{"position":{"x":19900.693768854373,"y":29528.300296339337},"targetPosition":{"x":20365.333107447655,"y":30017.927996772632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"e"}}},{"type":"Limit Order","name":"Limit Sell Order #2","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e15dae16-7526-4267-9273-99a25b3a00f6","savedPayload":{"position":{"x":19459.549032596155,"y":29509.747952048565},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"b2f25feb-fed7-4511-b31e-fc1e14cb000c","savedPayload":{"position":{"x":19448.437943147073,"y":29385.68221703563},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"c50f2c48-b43c-464a-863c-c3ea0a866b4b","savedPayload":{"position":{"x":19460.31306009663,"y":29261.68727959672},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"bf7e3856-d410-4c9d-9315-08b3c2f830a2","savedPayload":{"position":{"x":19494.769990579738,"y":29141.985638610786},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ce6e002a-ec8f-4856-883a-66ca4e7adbbc","savedPayload":{"position":{"x":19550.635345155333,"y":29030.653589895293},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7b9b7ca1-14cf-4000-960b-cb74e974d09a","savedPayload":{"position":{"x":19626.006696176446,"y":28931.482412841193},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"2bb7de1a-a85f-4950-82f7-5d6e10e86ae3","savedPayload":{"position":{"x":19718.317362682028,"y":28847.849262940326},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"7ff72f98-48b5-4525-92d9-57b64cce2277","savedPayload":{"position":{"x":19824.423815638667,"y":28782.60216680568},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"48dcaeca-8ad9-4f3d-ab39-7124531aaaab","savedPayload":{"position":{"x":19940.712727051596,"y":28737.963036040834},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"046378c8-2a44-4501-ad49-ab79289c3838","savedPayload":{"position":{"x":20063.22401751582,"y":28715.452002705264},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"406574dc-e33c-4ca0-bac7-0360c0597f6b","savedPayload":{"position":{"x":20187.785711970675,"y":28715.835653040194},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"aa95b773-3784-4ad4-a0f3-5d6dc6bf12f0","savedPayload":{"position":{"x":20310.15601130679,"y":28739.10092229361},"targetPosition":{"x":20216.795376405684,"y":29063.431065590317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"65419c94-25bf-43f5-9a95-a3c5a22ed1f8","savedPayload":{"position":{"x":20216.795376405684,"y":29063.431065590317},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"61bd4976-9f93-4841-bd69-054e54be0b37","savedPayload":{"position":{"x":20426.16774174727,"y":28784.4555396247},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"21ae960d-6cac-4d7c-b7a1-9afeef86837f","savedPayload":{"position":{"x":20378.383900333087,"y":28549.775257305453},"targetPosition":{"x":20531.8702629527,"y":28850.355007937127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e171ab29-a9f0-4787-94cd-f63a8fd08f04","savedPayload":{"position":{"x":20524.00049469194,"y":28512.94677337916},"targetPosition":{"x":20531.8702629527,"y":28850.355007937127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a971e83d-f240-4750-b4b8-db6fb4884fc0","savedPayload":{"position":{"x":20671.175793171213,"y":28542.946128347518},"targetPosition":{"x":20531.8702629527,"y":28850.355007937127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5fcae54c-4a6f-4ed7-b0d9-6a5305980ead","savedPayload":{"position":{"x":20790.7599229205,"y":28633.831582041086},"targetPosition":{"x":20531.8702629527,"y":28850.355007937127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"962130d5-da33-4773-a0d3-8f837f9f0239","savedPayload":{"position":{"x":20859.067780439847,"y":28767.602155718923},"targetPosition":{"x":20531.8702629527,"y":28850.355007937127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"96fe0924-c448-49f9-8d35-3516cddadece","savedPayload":{"position":{"x":20862.570156806654,"y":28917.7629466757},"targetPosition":{"x":20531.8702629527,"y":28850.355007937127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"927e1f8b-1435-4838-8c19-89f5e08ca928","savedPayload":{"position":{"x":20531.8702629527,"y":28850.355007937127},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"cd98e3d4-3d9d-4aca-b61b-edf26b8193dd","savedPayload":{"position":{"x":20528.022420960217,"y":28610.890345571803},"targetPosition":{"x":20623.66400233963,"y":28934.555199875205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"851f78ee-6610-4f5f-a02b-8be28fab03e8","savedPayload":{"position":{"x":20677.92683224592,"y":28601.445915569646},"targetPosition":{"x":20623.66400233963,"y":28934.555199875205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"eaaf2c8e-717c-4329-86d8-44e514b2ad8e","savedPayload":{"position":{"x":20817.083824578753,"y":28657.977864641485},"targetPosition":{"x":20623.66400233963,"y":28934.555199875205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b7cc7990-9132-463f-827f-e4cb3b10a599","savedPayload":{"position":{"x":20917.931648978676,"y":28769.289346954778},"targetPosition":{"x":20623.66400233963,"y":28934.555199875205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"13599a3b-cba1-4992-990e-ea03ca474985","savedPayload":{"position":{"x":20960.496157005888,"y":28913.333758291636},"targetPosition":{"x":20623.66400233963,"y":28934.555199875205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a3f33aae-6f04-4f12-8976-a73359a3741b","savedPayload":{"position":{"x":20936.346925826165,"y":29061.58133639802},"targetPosition":{"x":20623.66400233963,"y":28934.555199875205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7305508f-4939-431c-be88-f4fd0896abd7","savedPayload":{"position":{"x":20623.66400233963,"y":28934.555199875205},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7e0ef872-6dbb-4383-bacd-3618f0c5421a","savedPayload":{"position":{"x":18592.437220858108,"y":29144.575541907536},"targetPosition":{"x":18879.973831753374,"y":29416.99059569413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1270d136-9730-4f09-878a-30a089bc8135","savedPayload":{"position":{"x":18807.396585925948,"y":29027.47374564859},"targetPosition":{"x":18879.973831753374,"y":29416.99059569413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f3e85b22-eee3-477d-998f-f564b7f32dd5","savedPayload":{"position":{"x":19050.28940667876,"y":29058.46482217696},"targetPosition":{"x":18879.973831753374,"y":29416.99059569413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"bfa4439c-9331-4a2f-8107-05f435d92685","savedPayload":{"position":{"x":19314.4707619384,"y":29180.19229458084},"targetPosition":{"x":19142.35609732088,"y":29274.091736619645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bc017de9-4fce-4d25-84a9-5cfdad34217e","savedPayload":{"position":{"x":19142.35609732088,"y":29274.091736619645},"targetPosition":{"x":18879.973831753374,"y":29416.99059569413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0a4e2dc8-458c-4bf6-be14-5bf2e5d2b765","savedPayload":{"position":{"x":20698.423034207688,"y":29034.18877888949},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e133f5d4-034b-4333-9ea4-a6b52183476e","savedPayload":{"position":{"x":20123.434741504578,"y":29387.761208887023},"targetPosition":{"x":20365.333107447655,"y":30017.927996772632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Limit Order","name":"Limit Sell Order #3","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"21dfc9c5-eb2f-4c78-80e2-8259f7affefa","savedPayload":{"position":{"x":19722.96982359213,"y":29201.802295875583},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"435255ea-97df-49b6-a8e0-8317bada8362","savedPayload":{"position":{"x":19760.18241677987,"y":29082.92847276348},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"ecdf173f-f860-4072-8439-0cfc38cbe8a7","savedPayload":{"position":{"x":19818.60440253076,"y":28972.916498442646},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f0c266ca-9ffb-4ca0-a1fe-33ab9427c60f","savedPayload":{"position":{"x":19896.2462901895,"y":28875.512698753766},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5cbe73d5-f73c-4638-8577-34b8618cc383","savedPayload":{"position":{"x":19990.46407839306,"y":28794.03404327226},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c3e11b4b-c754-4d2b-b764-026ef7d58f3e","savedPayload":{"position":{"x":20098.04929336594,"y":28731.25518988767},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"62606235-38b2-4632-b325-6b7d342cb78e","savedPayload":{"position":{"x":20215.338249646487,"y":28689.313997157078},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"eec3d4f3-541c-406f-ab2a-f915553be12d","savedPayload":{"position":{"x":20338.336812501166,"y":28669.63872209601},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"52458d96-4992-4a22-826e-a58defe970e8","savedPayload":{"position":{"x":20462.85641339247,"y":28672.899382598778},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"3e3e4e4d-7951-4e3f-aad9-c383b7aa4e02","savedPayload":{"position":{"x":20584.656686656854,"y":28698.98494078269},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"173cac06-8ac9-44a1-97c5-c03f930f3e57","savedPayload":{"position":{"x":20699.58987007162,"y":28747.00708424997},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"19ca42cb-2a54-4731-b277-8af7fa427a7f","savedPayload":{"position":{"x":20803.74205192274,"y":28815.330476501054},"targetPosition":{"x":20593.372299739105,"y":29079.244889457594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"398d330c-c2d6-4568-b1bb-3f707f933712","savedPayload":{"position":{"x":20593.372299739105,"y":29079.244889457594},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"0921a747-2bc1-400c-a2d3-c9f2de534a9a","savedPayload":{"position":{"x":20893.56645457405,"y":28901.628446357703},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e772b9b0-eb04-46f7-b3ad-b7391556e38c","savedPayload":{"position":{"x":20939.22819745306,"y":28666.526052395006},"targetPosition":{"x":20966.004215725752,"y":29002.962219959467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4587d77c-0f66-4188-b7a1-804cbb7f973f","savedPayload":{"position":{"x":21087.854039212918,"y":28688.226028020654},"targetPosition":{"x":20966.004215725752,"y":29002.962219959467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c8fbc574-9bb0-436e-bf51-f3e3b3dff06e","savedPayload":{"position":{"x":21212.346029041128,"y":28772.263366445863},"targetPosition":{"x":20966.004215725752,"y":29002.962219959467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e5feb02b-e7f4-4d5f-aca8-09b74b330314","savedPayload":{"position":{"x":21288.047001558152,"y":28901.993442145198},"targetPosition":{"x":20966.004215725752,"y":29002.962219959467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"fd0fc56c-22e6-4d90-8005-553adb3798da","savedPayload":{"position":{"x":21299.963450745494,"y":29051.721622591453},"targetPosition":{"x":20966.004215725752,"y":29002.962219959467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"920b17bf-fe0e-4fed-bfba-fbc85bbb196a","savedPayload":{"position":{"x":21245.735177695944,"y":29191.79240535161},"targetPosition":{"x":20966.004215725752,"y":29002.962219959467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"341467d7-22c6-45bb-b7fb-9d45e39c17f9","savedPayload":{"position":{"x":20966.004215725752,"y":29002.962219959467},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"39b7fe39-2b11-4ba8-a2b5-6fcbc4f128eb","savedPayload":{"position":{"x":21054.088432188666,"y":28780.25321425953},"targetPosition":{"x":21018.588554301346,"y":29115.880997182794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8e86045f-2ec5-40b6-bd28-6cf203b7d72c","savedPayload":{"position":{"x":21196.196276498642,"y":28828.893633321793},"targetPosition":{"x":21018.588554301346,"y":29115.880997182794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"38b2dc9d-492d-4183-bcc2-1cc2edb12408","savedPayload":{"position":{"x":21303.126733211673,"y":28934.37541946576},"targetPosition":{"x":21018.588554301346,"y":29115.880997182794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"abe419e4-1bab-4116-a588-539058869394","savedPayload":{"position":{"x":21353.70091395976,"y":29075.806611296415},"targetPosition":{"x":21018.588554301346,"y":29115.880997182794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f89e98a8-a2d8-4440-bff5-e321f4fa4782","savedPayload":{"position":{"x":21337.901981994117,"y":29225.17502673196},"targetPosition":{"x":21018.588554301346,"y":29115.880997182794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"83e6f934-08de-4572-bc6b-e5b5edd3b26a","savedPayload":{"position":{"x":21258.859109551726,"y":29352.896419211982},"targetPosition":{"x":21018.588554301346,"y":29115.880997182794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f2412f2a-9af9-49aa-8cc3-d1f5b3393826","savedPayload":{"position":{"x":21018.588554301346,"y":29115.880997182794},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"63d2ceed-a735-4a6e-a480-7ea813d0c8e5","savedPayload":{"position":{"x":18951.05183725856,"y":29700.86192536768},"targetPosition":{"x":19238.588448153827,"y":29973.27697915426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"13cadd4e-2fe3-41ed-912e-3608eb4f35f3","savedPayload":{"position":{"x":19166.0112023264,"y":29583.760129108727},"targetPosition":{"x":19238.588448153827,"y":29973.27697915426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"22ad5823-ef3e-4d85-bd0c-22e6d3c87233","savedPayload":{"position":{"x":19408.904023079212,"y":29614.751205637098},"targetPosition":{"x":19238.588448153827,"y":29973.27697915426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"697772bb-a90c-455d-a0eb-ffb21046f211","savedPayload":{"position":{"x":19673.085378338852,"y":29736.478678040978},"targetPosition":{"x":19500.970713721334,"y":29830.378120079775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ed24a5b4-b33d-4068-b069-35529ac9c027","savedPayload":{"position":{"x":19500.970713721334,"y":29830.378120079775},"targetPosition":{"x":19238.588448153827,"y":29973.27697915426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c8b9919c-ca7b-4fef-877f-aa90d7fe867f","savedPayload":{"position":{"x":21049.528773718604,"y":29236.5394645005},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a5d970bf-0f85-4546-9c4a-a0a113e7ea04","savedPayload":{"position":{"x":20383.00254755547,"y":29343.159302414133},"targetPosition":{"x":20365.333107447655,"y":30017.927996772632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Limit Order","name":"Limit Sell Order #4","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"43478f0c-6a3a-4939-a7db-236129532cf9","savedPayload":{"position":{"x":20084.18460151745,"y":29018.104379466284},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"b11738b3-7b4d-49b8-9b30-c49fcacbb1da","savedPayload":{"position":{"x":20164.05559736217,"y":28922.51993022993},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"ee5f047c-40d8-4fc3-985c-2f94a8e473c0","savedPayload":{"position":{"x":20260.13023418044,"y":28843.239244856486},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b7a5de66-c4be-4540-8d4b-b5c8569f5382","savedPayload":{"position":{"x":20369.136805444236,"y":28782.96213199965},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"86cc532f-273c-4cef-9fe4-1095739c3c59","savedPayload":{"position":{"x":20487.363223108143,"y":28743.741256443333},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"019fbb21-bf78-4cc0-87b0-15910b42b1ed","savedPayload":{"position":{"x":20610.78342831557,"y":28726.912238064346},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"63a76c09-04f5-4df0-a1c5-28ddbc8be5b6","savedPayload":{"position":{"x":20735.19449400441,"y":28733.048168899404},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"4677088b-93a1-4a06-ace6-2afff21d1c7e","savedPayload":{"position":{"x":20856.359750547243,"y":28761.940097183156},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"543746cc-7674-4cef-a773-499631d2cd1d","savedPayload":{"position":{"x":20970.15306045422,"y":28812.604142949946},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"8018fcb0-4077-448f-8d08-53c63251057d","savedPayload":{"position":{"x":21072.699329036488,"y":28883.31500288601},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"16fc199e-6a3d-4d52-842b-b8b89dc2134b","savedPayload":{"position":{"x":21160.506466108167,"y":28971.664703464558},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6cc6b150-b02b-4f94-b91f-798be8cc2e28","savedPayload":{"position":{"x":21230.58430492934,"y":29074.644601596177},"targetPosition":{"x":20935.23232322658,"y":29237.96470723003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"e86bb45a-c318-471c-b8e7-6a27b1dfa7fa","savedPayload":{"position":{"x":20935.23232322658,"y":29237.96470723003},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"37896346-c3dd-4c1e-9890-0de8095607dc","savedPayload":{"position":{"x":21280.546428748054,"y":29188.74784036076},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"42f061ed-52b6-4bf8-9603-0b7621767a79","savedPayload":{"position":{"x":21412.70216949166,"y":28989.015543026937},"targetPosition":{"x":21308.691437360623,"y":29310.08877081394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"12293cf5-ede5-4d18-bdab-de9c3976c7c1","savedPayload":{"position":{"x":21541.71032154119,"y":29065.940353626276},"targetPosition":{"x":21308.691437360623,"y":29310.08877081394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"84d7df9e-8a6e-4fb4-abce-3b5450a3037e","savedPayload":{"position":{"x":21624.566225789695,"y":29191.22175253347},"targetPosition":{"x":21308.691437360623,"y":29310.08877081394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0b55890d-e3e8-4e6c-bbd5-b4f8706fc52f","savedPayload":{"position":{"x":21644.859254239764,"y":29340.04622221942},"targetPosition":{"x":21308.691437360623,"y":29310.08877081394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a837b250-aade-4479-8f95-49298fd037c9","savedPayload":{"position":{"x":21598.57012372921,"y":29482.937251250485},"targetPosition":{"x":21308.691437360623,"y":29310.08877081394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"77b57646-02d9-4ce0-8240-aa3637421ea3","savedPayload":{"position":{"x":21494.866964254572,"y":29591.593518883594},"targetPosition":{"x":21308.691437360623,"y":29310.08877081394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4aa992de-9815-4ca7-b9b7-cc348fb0a706","savedPayload":{"position":{"x":21308.691437360623,"y":29310.08877081394},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ee83b795-4340-4edf-9268-15576dd48467","savedPayload":{"position":{"x":21475.297688807874,"y":29138.040849035046},"targetPosition":{"x":21314.060886254967,"y":29434.53527310153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7c14d3ab-95e0-4fd0-8cb2-15259c9d72c7","savedPayload":{"position":{"x":21587.974335056737,"y":29237.361054285982},"targetPosition":{"x":21314.060886254967,"y":29434.53527310153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"02819dda-f0e1-49bf-a9ed-b07c4b8a4767","savedPayload":{"position":{"x":21646.399063442415,"y":29375.734031756445},"targetPosition":{"x":21314.060886254967,"y":29434.53527310153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"92e2d4bc-a719-4a37-b91d-79b91fa7e09d","savedPayload":{"position":{"x":21639.00013997586,"y":29525.753316225193},"targetPosition":{"x":21314.060886254967,"y":29434.53527310153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8daf0f36-1e8e-4f1a-bc44-e8a8e2492d45","savedPayload":{"position":{"x":21567.24301219145,"y":29657.705748537424},"targetPosition":{"x":21314.060886254967,"y":29434.53527310153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"bd9e6a90-448a-42e9-9582-fc577ec8a819","savedPayload":{"position":{"x":21445.340059290324,"y":29745.456531183307},"targetPosition":{"x":21314.060886254967,"y":29434.53527310153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ef56bd7f-b36d-47ec-bc9f-861728d84989","savedPayload":{"position":{"x":21314.060886254967,"y":29434.53527310153},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"cf1e2969-52f2-47a6-af1d-d2f8cdc05d28","savedPayload":{"position":{"x":18640.437220858108,"y":29140.575541907536},"targetPosition":{"x":18927.973831753374,"y":29412.99059569413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7b0037a1-612c-4cad-8f1c-9f96b2450d96","savedPayload":{"position":{"x":18855.396585925948,"y":29023.47374564859},"targetPosition":{"x":18927.973831753374,"y":29412.99059569413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f8c739bf-e5d3-45d9-b965-b91a8eeb0cf9","savedPayload":{"position":{"x":19098.28940667876,"y":29054.46482217696},"targetPosition":{"x":18927.973831753374,"y":29412.99059569413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"1753e430-35e6-40b7-935c-d020b28ebf90","savedPayload":{"position":{"x":19362.4707619384,"y":29176.19229458084},"targetPosition":{"x":19190.35609732088,"y":29270.091736619645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5977664e-04dc-4333-91dd-951bae431ac7","savedPayload":{"position":{"x":19190.35609732088,"y":29270.091736619645},"targetPosition":{"x":18927.973831753374,"y":29412.99059569413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8b70f49a-490a-4ef5-a310-9e9828a611ff","savedPayload":{"position":{"x":21296.47192528893,"y":29557.849470845264},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7fb716f8-8bba-4c0d-8df3-69a7bc9ae317","savedPayload":{"position":{"x":20639.88034152382,"y":29401.28481286388},"targetPosition":{"x":20365.333107447655,"y":30017.927996772632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Limit Order","name":"Limit Sell Order #5","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c21909ae-7bce-48a4-97c0-03001f36bc9a","savedPayload":{"position":{"x":20488.201690853086,"y":28986.620545368205},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"6628bc0e-a38e-42bc-ae67-447a6094e6e8","savedPayload":{"position":{"x":20598.57145426981,"y":28928.877335928657},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"af947606-2995-4abb-899d-bf1612455701","savedPayload":{"position":{"x":20717.67224961863,"y":28892.39770516951},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"11f5acb6-bca7-4df0-9c5a-28e500087b70","savedPayload":{"position":{"x":20841.448242159597,"y":28878.423923163784},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"01da2344-3681-4947-8e39-b632718a6a35","savedPayload":{"position":{"x":20965.684388919668,"y":28887.43185029798},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"732ad726-a4c8-4561-a4de-a59b25111848","savedPayload":{"position":{"x":21086.14997692576,"y":28919.114732417365},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"e83e876a-31fb-4a82-9a3b-afa626f1c103","savedPayload":{"position":{"x":21198.74269506088,"y":28972.393646970777},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"263be304-708d-4f68-a896-12214ac404ef","savedPayload":{"position":{"x":21299.628333349014,"y":29045.45424442413},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"4567768f-7801-4b8e-9506-02435026da34","savedPayload":{"position":{"x":21385.371352377246,"y":29135.808533757663},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"44d63c52-6d96-48dd-8492-44526e0ddea2","savedPayload":{"position":{"x":21453.051876469985,"y":29240.379608016163},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"77cc4f80-04c4-4907-b914-b46fc9531c8f","savedPayload":{"position":{"x":21500.365126553097,"y":29355.606424684935},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"eb351029-a49c-46ba-ba2c-302a353ff97b","savedPayload":{"position":{"x":21525.699906640988,"y":29477.56507272165},"targetPosition":{"x":21190.33035726097,"y":29515.4268654505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"4f014f57-4f7b-460d-b740-6c3a6c1df9bf","savedPayload":{"position":{"x":21190.33035726097,"y":29515.4268654505},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"f29b9169-c7cc-4ab2-9013-92a353605f2d","savedPayload":{"position":{"x":21528.193471183487,"y":29602.102396640686},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f3faef60-5aba-4eec-8e35-a584de65dc14","savedPayload":{"position":{"x":21726.723696258246,"y":29468.14762762702},"targetPosition":{"x":21507.7609048308,"y":29724.977427242055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5d887d94-d554-4a08-b37c-3cb901e34a16","savedPayload":{"position":{"x":21816.473836909725,"y":29588.586168111447},"targetPosition":{"x":21507.7609048308,"y":29724.977427242055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"de852846-2ada-4974-bf5f-39c1e126834b","savedPayload":{"position":{"x":21845.079595247327,"y":29736.03867019571},"targetPosition":{"x":21507.7609048308,"y":29724.977427242055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7eb49c05-59dc-483b-b40c-56c31d71a2f8","savedPayload":{"position":{"x":21806.875250005683,"y":29881.300357455766},"targetPosition":{"x":21507.7609048308,"y":29724.977427242055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"03450469-57f1-4efa-9f64-b751c125aa96","savedPayload":{"position":{"x":21709.42764030545,"y":29995.600371212073},"targetPosition":{"x":21507.7609048308,"y":29724.977427242055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e51385a8-87d1-4a59-9f45-f271e01c9804","savedPayload":{"position":{"x":21572.03746036426,"y":30056.300191942508},"targetPosition":{"x":21507.7609048308,"y":29724.977427242055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f872512b-a913-4f51-9e5a-23196a41bf42","savedPayload":{"position":{"x":21507.7609048308,"y":29724.977427242055},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f03155f6-d118-4bc7-a459-06ac485f5332","savedPayload":{"position":{"x":21727.524899768967,"y":29629.783325856755},"targetPosition":{"x":21465.0980141239,"y":29842.00580273098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1229e93b-73e5-43f8-a857-4cb0829eb0d8","savedPayload":{"position":{"x":21793.616349981672,"y":29764.662716386818},"targetPosition":{"x":21465.0980141239,"y":29842.00580273098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"17ca5b23-50ae-4711-a2e0-48b5fb70e8a1","savedPayload":{"position":{"x":21794.640714764762,"y":29914.860853718048},"targetPosition":{"x":21465.0980141239,"y":29842.00580273098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c603c52c-44c7-4137-a34e-1817e5efe103","savedPayload":{"position":{"x":21730.395106109932,"y":30050.629154692724},"targetPosition":{"x":21465.0980141239,"y":29842.00580273098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0c23efa1-82e9-44c7-b863-dc186153f2d4","savedPayload":{"position":{"x":21613.60415473196,"y":30145.077042213874},"targetPosition":{"x":21465.0980141239,"y":29842.00580273098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0d9004c8-6370-42cf-a432-477ffbd8bc6a","savedPayload":{"position":{"x":21467.39974089827,"y":30179.497953830607},"targetPosition":{"x":21465.0980141239,"y":29842.00580273098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ad61a2f9-b057-485c-b18a-492e0ad86541","savedPayload":{"position":{"x":21465.0980141239,"y":29842.00580273098},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"eeaf0a5e-54fa-431a-974b-f62ae5097578","savedPayload":{"position":{"x":18617.033994885256,"y":29803.94481319523},"targetPosition":{"x":18904.570605780522,"y":30076.35986698181},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"578670d9-2033-417d-bdbb-8ae5a38511f1","savedPayload":{"position":{"x":18831.993359953096,"y":29686.843016936276},"targetPosition":{"x":18904.570605780522,"y":30076.35986698181},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"fe07db0c-aae2-4697-8caa-523ad1dc38a9","savedPayload":{"position":{"x":19074.886180705907,"y":29717.834093464648},"targetPosition":{"x":18904.570605780522,"y":30076.35986698181},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"d96a7df0-089c-4e53-a9bf-ec276a357d5b","savedPayload":{"position":{"x":19339.067535965547,"y":29839.561565868527},"targetPosition":{"x":19166.95287134803,"y":29933.461007907325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9a3fb4f7-641a-4ff8-8a17-3461011e8e30","savedPayload":{"position":{"x":19166.95287134803,"y":29933.461007907325},"targetPosition":{"x":18904.570605780522,"y":30076.35986698181},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a270a831-de12-4466-a643-3d21f866a19b","savedPayload":{"position":{"x":21401.65763263732,"y":29949.202262140243},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3c44b04d-6b6b-4278-ba85-898b1f12cdfa","savedPayload":{"position":{"x":20854.96080788095,"y":29553.28865817935},"targetPosition":{"x":20365.333107447655,"y":30017.927996772632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Limit Order","name":"Limit Sell Order #6","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9c727aaf-1a30-4470-9318-2f8825c33024","savedPayload":{"position":{"x":20873.513152171727,"y":29112.143921921124},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"00f6d4a8-702b-4c06-bcd5-c7a557564ce8","savedPayload":{"position":{"x":20997.578887184656,"y":29101.032832472047},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"fc4008d3-a179-4d99-b0bd-f27eb6a615fe","savedPayload":{"position":{"x":21121.573824623567,"y":29112.907949421606},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e3568259-dff9-47c5-99da-f254adc3d046","savedPayload":{"position":{"x":21241.275465609506,"y":29147.364879904715},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7c07afb3-62e6-4d0b-a854-290a842c0aaf","savedPayload":{"position":{"x":21352.60751432499,"y":29203.230234480303},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"41c315de-6ccb-4f5f-a929-33a59a1dbc37","savedPayload":{"position":{"x":21451.7786913791,"y":29278.60158550142},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"b8b1bdaa-e081-4e66-8a55-9a5df6520c74","savedPayload":{"position":{"x":21535.411841279958,"y":29370.912252007},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"ab9e5c18-bc35-4490-a925-154c0ec58163","savedPayload":{"position":{"x":21600.65893741461,"y":29477.018704963644},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"64cf7d12-6dab-4925-9582-e0d25fe98019","savedPayload":{"position":{"x":21645.298068179454,"y":29593.307616376573},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"7d294033-4349-4bb2-936e-4d9d1e93e32b","savedPayload":{"position":{"x":21667.809101515028,"y":29715.818906840796},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"eedd3c1c-9624-4090-bdad-6969901a8dee","savedPayload":{"position":{"x":21667.425451180094,"y":29840.38060129565},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"403af118-41a8-426d-a929-f68f23caafc4","savedPayload":{"position":{"x":21644.160181926676,"y":29962.75090063177},"targetPosition":{"x":21319.83003862997,"y":29869.39026573066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"2895d29d-2521-4073-81d8-a444696ed084","savedPayload":{"position":{"x":21319.83003862997,"y":29869.39026573066},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"6f5d0936-6867-4375-a034-655623224b20","savedPayload":{"position":{"x":21598.805564595586,"y":30078.762631072248},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"bce7180e-040c-4f8b-a9b3-86bf0d9664d8","savedPayload":{"position":{"x":21833.48584691484,"y":30030.97878965806},"targetPosition":{"x":21532.90609628316,"y":30184.465152277677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a28ea194-f3ec-47d0-96c1-c1c680810a44","savedPayload":{"position":{"x":21870.314330841124,"y":30176.595384016917},"targetPosition":{"x":21532.90609628316,"y":30184.465152277677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"20b0bac5-aef4-4ee3-ba01-32e3db00e5a2","savedPayload":{"position":{"x":21840.31497587277,"y":30323.770682496193},"targetPosition":{"x":21532.90609628316,"y":30184.465152277677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7a704287-a289-4834-bc5e-893c19c23817","savedPayload":{"position":{"x":21749.429522179198,"y":30443.354812245474},"targetPosition":{"x":21532.90609628316,"y":30184.465152277677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"72bf8991-9547-4202-9784-9bb9acba42b0","savedPayload":{"position":{"x":21615.658948501365,"y":30511.662669764824},"targetPosition":{"x":21532.90609628316,"y":30184.465152277677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b6f079e8-44f8-47e4-a323-48da22aa9d93","savedPayload":{"position":{"x":21465.49815754459,"y":30515.16504613163},"targetPosition":{"x":21532.90609628316,"y":30184.465152277677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8d7fdc43-8442-4477-9d6d-bdbd65c19434","savedPayload":{"position":{"x":21532.90609628316,"y":30184.465152277677},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5fbeec0b-5946-47c7-bac0-11baaf975f5a","savedPayload":{"position":{"x":21772.37075864849,"y":30180.617310285183},"targetPosition":{"x":21448.705904345083,"y":30276.2588916646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9d8bcda5-45b6-4b04-8247-e3a85d8dc3ae","savedPayload":{"position":{"x":21781.81518865064,"y":30330.52172157089},"targetPosition":{"x":21448.705904345083,"y":30276.2588916646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4dd613cf-99fe-45bc-be8e-bb24ae859dd7","savedPayload":{"position":{"x":21725.283239578803,"y":30469.67871390372},"targetPosition":{"x":21448.705904345083,"y":30276.2588916646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"80e5a664-a670-46be-b835-ac0b6a16f210","savedPayload":{"position":{"x":21613.97175726551,"y":30570.526538303646},"targetPosition":{"x":21448.705904345083,"y":30276.2588916646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d0f2e08f-5270-4c1d-b408-4c0ce2d91cc2","savedPayload":{"position":{"x":21469.927345928652,"y":30613.09104633086},"targetPosition":{"x":21448.705904345083,"y":30276.2588916646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f6757945-c686-4e3f-8423-2699c33c02a4","savedPayload":{"position":{"x":21321.679767822272,"y":30588.941815151135},"targetPosition":{"x":21448.705904345083,"y":30276.2588916646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c4fe4a32-5cb5-42c3-ae18-f5d888f9b8f0","savedPayload":{"position":{"x":21448.705904345083,"y":30276.2588916646},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"41425b71-3c1f-4952-ab7e-c073498f118a","savedPayload":{"position":{"x":18741.523975783537,"y":30101.080267022327},"targetPosition":{"x":19029.060586678803,"y":30373.495320808906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"553275c8-ceea-497c-95b7-1e23f6e51a58","savedPayload":{"position":{"x":18956.483340851377,"y":29983.978470763373},"targetPosition":{"x":19029.060586678803,"y":30373.495320808906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"35916359-97c9-4ab4-8ca7-a6c5f60d17da","savedPayload":{"position":{"x":19199.37616160419,"y":30014.969547291745},"targetPosition":{"x":19029.060586678803,"y":30373.495320808906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"a63dd474-1b20-4504-8790-f3a53ec5a725","savedPayload":{"position":{"x":19463.557516863828,"y":30136.697019695624},"targetPosition":{"x":19291.44285224631,"y":30230.59646173442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eca5c17c-3f6a-49b1-951e-53339faa9d14","savedPayload":{"position":{"x":19291.44285224631,"y":30230.59646173442},"targetPosition":{"x":19029.060586678803,"y":30373.495320808906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0c92fa7f-81c6-4abd-941b-1ef17c952c7e","savedPayload":{"position":{"x":21349.072325330802,"y":30351.017923532658},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"90d28d1e-6fd2-4a83-a423-3f34bf455004","savedPayload":{"position":{"x":20995.499895333265,"y":29776.02963082955},"targetPosition":{"x":20365.333107447655,"y":30017.927996772632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Limit Order","name":"Limit Sell Order #7","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"fa31d1c9-8ee0-4ba8-87ae-a5771ad35b44","savedPayload":{"position":{"x":21181.458808344705,"y":29375.564712917112},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"c9a2076d-d9bf-48c8-abfb-f3edb9905fd1","savedPayload":{"position":{"x":21300.33263145681,"y":29412.77730610485},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"d910eaf4-2bcb-4b9c-8f70-5d69ed385648","savedPayload":{"position":{"x":21410.344605777642,"y":29471.199291855737},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a027a7b2-1833-4557-9c72-ac1f84e8889e","savedPayload":{"position":{"x":21507.748405466526,"y":29548.84117951448},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e8a616de-c956-474b-a572-943dba739546","savedPayload":{"position":{"x":21589.227060948033,"y":29643.05896771804},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5b4b3cd4-6107-4940-9e0d-80614590def4","savedPayload":{"position":{"x":21652.005914332618,"y":29750.644182690914},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"0299f975-8ff6-4062-ada4-7602145d273a","savedPayload":{"position":{"x":21693.947107063206,"y":29867.933138971464},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"4ea390ec-59f1-41cd-8a1d-6489d492be32","savedPayload":{"position":{"x":21713.622382124275,"y":29990.931701826143},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"dfad8d25-bbb5-49e3-a595-83d97ad08a35","savedPayload":{"position":{"x":21710.36172162151,"y":30115.451302717447},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"dfdae604-14c1-471a-9c5b-ec2b3ef28dc7","savedPayload":{"position":{"x":21684.2761634376,"y":30237.251575981827},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"402a0802-a66e-4241-9b40-716457d3ee7a","savedPayload":{"position":{"x":21636.254019970318,"y":30352.1847593966},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e5d84547-cd32-4627-b4e8-1d0b3cf34e1e","savedPayload":{"position":{"x":21567.930627719234,"y":30456.33694124772},"targetPosition":{"x":21304.016214762694,"y":30245.967189064082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"a6ed37b6-d121-4b7d-a928-b7e131c8ebbc","savedPayload":{"position":{"x":21304.016214762694,"y":30245.967189064082},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"e00e5e44-6768-485d-b98f-d07c032b95c4","savedPayload":{"position":{"x":21481.63265786258,"y":30546.161343899024},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"37c1f14a-3dc7-46cc-982f-facdb981df85","savedPayload":{"position":{"x":21716.735051825275,"y":30591.823086778037},"targetPosition":{"x":21380.298884260817,"y":30618.59910505073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1919145a-09dc-44f1-bf66-db1cd2423d19","savedPayload":{"position":{"x":21695.03507619963,"y":30740.448928537895},"targetPosition":{"x":21380.298884260817,"y":30618.59910505073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f0086e54-7654-4319-8cd1-32aba52593ba","savedPayload":{"position":{"x":21610.997737774425,"y":30864.940918366105},"targetPosition":{"x":21380.298884260817,"y":30618.59910505073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"244d134e-63c9-4f01-9e5b-a64b74114ca8","savedPayload":{"position":{"x":21481.267662075083,"y":30940.641890883133},"targetPosition":{"x":21380.298884260817,"y":30618.59910505073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"fc1b011f-bc04-470d-9446-facb1649bd97","savedPayload":{"position":{"x":21331.53948162883,"y":30952.55834007047},"targetPosition":{"x":21380.298884260817,"y":30618.59910505073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"edcd8dc1-7e0e-49d9-bfd5-ce9e08138be9","savedPayload":{"position":{"x":21191.468698868674,"y":30898.33006702092},"targetPosition":{"x":21380.298884260817,"y":30618.59910505073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9f098ef2-5e76-4a6f-a220-905680a6a857","savedPayload":{"position":{"x":21380.298884260817,"y":30618.59910505073},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"606e7a63-b911-4c72-9b6f-453330b7d907","savedPayload":{"position":{"x":21603.007889960754,"y":30706.683321513643},"targetPosition":{"x":21267.38010703749,"y":30671.183443626323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0393cb12-8ea6-4ce1-acc0-c9d74cc38515","savedPayload":{"position":{"x":21554.367470898495,"y":30848.79116582362},"targetPosition":{"x":21267.38010703749,"y":30671.183443626323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6345257d-26b2-4e6b-9126-adecf0940dcb","savedPayload":{"position":{"x":21448.885684754525,"y":30955.72162253665},"targetPosition":{"x":21267.38010703749,"y":30671.183443626323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2d00e2be-471c-4603-bdeb-80f7c85f3d3b","savedPayload":{"position":{"x":21307.454492923865,"y":31006.29580328474},"targetPosition":{"x":21267.38010703749,"y":30671.183443626323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"32bad449-4c6d-4e9f-b8b4-0f9ff1478aaa","savedPayload":{"position":{"x":21158.086077488322,"y":30990.49687131909},"targetPosition":{"x":21267.38010703749,"y":30671.183443626323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"99a244e7-f907-41d5-b32d-822f27730787","savedPayload":{"position":{"x":21030.3646850083,"y":30911.4539988767},"targetPosition":{"x":21267.38010703749,"y":30671.183443626323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c69e4280-e76f-4b74-8178-3363c95d7b4d","savedPayload":{"position":{"x":21267.38010703749,"y":30671.183443626323},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"61215a99-f445-4ba1-a76a-0f46a754b027","savedPayload":{"position":{"x":18681.523975783537,"y":30236.080267022327},"targetPosition":{"x":18969.060586678803,"y":30508.495320808906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5436c96d-ed7b-4b52-abc9-9739ef923808","savedPayload":{"position":{"x":18896.483340851377,"y":30118.978470763373},"targetPosition":{"x":18969.060586678803,"y":30508.495320808906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"79935293-07bc-4415-bb91-1e45c95064e4","savedPayload":{"position":{"x":19139.37616160419,"y":30149.969547291745},"targetPosition":{"x":18969.060586678803,"y":30508.495320808906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"80438372-c0f2-4f67-ae8f-7c5e909a990a","savedPayload":{"position":{"x":19403.557516863828,"y":30271.697019695624},"targetPosition":{"x":19231.44285224631,"y":30365.59646173442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a1c12939-d02f-483d-b5e9-6532f4f88c08","savedPayload":{"position":{"x":19231.44285224631,"y":30365.59646173442},"targetPosition":{"x":18969.060586678803,"y":30508.495320808906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"61467c34-b621-4980-876a-9c66eef0144f","savedPayload":{"position":{"x":21146.721639719788,"y":30702.12366304358},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5bfce673-ceb2-4104-bd7e-75d62453164e","savedPayload":{"position":{"x":21040.101801806155,"y":30035.597436880445},"targetPosition":{"x":20365.333107447655,"y":30017.927996772632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1b0f368b-51b9-4c61-9c7b-b0b308cf7ba9","savedPayload":{"position":{"x":30986.333107447655,"y":24163.17799677263},"targetPosition":{"x":30803.301618063546,"y":24574.2734527118},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07f9794a-dea7-4075-bdea-00e4b90960a6","savedPayload":{"position":{"x":30803.301618063546,"y":24574.2734527118},"targetPosition":{"x":31028.301618063546,"y":24963.9848844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"eb20f622-71bf-4479-a574-d2320e1d4bd1","savedPayload":{"position":{"x":31028.301618063546,"y":24963.9848844148},"targetPosition":{"x":31028.301618063546,"y":24963.9848844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Trading System","name":"Hello World Trading System","project":"Superalgos","tradingStrategies":[{"type":"Trading Strategy","name":"Hello World Strategy","project":"Superalgos","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"SMA50 > SMA200","code":"chart.at04hs.popularSMA.sma50 > chart.at04hs.popularSMA.sma200","project":"Superalgos","id":"aa5d3611-c281-49a9-ac5c-3f1dd6ddb188","savedPayload":{"position":{"x":30690.404084004633,"y":30632.686682062475},"targetPosition":{"x":30840.19851421782,"y":30624.836288626033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"70ad156a-d631-4bde-97ba-ebbed0be9fb0","savedPayload":{"position":{"x":30840.19851421782,"y":30624.836288626033},"targetPosition":{"x":30989.992944431007,"y":30616.98589518959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"PREVIOUS SMA50 < SMA200","code":"chart.at04hs.popularSMA.previous.sma50 < chart.at04hs.popularSMA.previous.sma200","project":"Superalgos","id":"46c234bc-a7f7-47b6-87d3-179416477d08","savedPayload":{"position":{"x":30826.601233926496,"y":30365.384724805965},"targetPosition":{"x":30908.29708917875,"y":30491.185309997778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9a8d5312-39d3-45b4-9da9-1968d46353d5","savedPayload":{"position":{"x":30908.29708917875,"y":30491.185309997778},"targetPosition":{"x":30989.992944431007,"y":30616.98589518959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7eea5636-ac5a-4a55-9559-e71508fcabb1","savedPayload":{"position":{"x":30989.992944431007,"y":30616.98589518959},"targetPosition":{"x":31123.643923059262,"y":30685.084470150523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"1daea4f0-6f2f-4aa3-bc75-39b86e70f63b","savedPayload":{"position":{"x":31123.643923059262,"y":30685.084470150523},"targetPosition":{"x":31257.294901687517,"y":30753.183045111455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"False","code":"false","project":"Superalgos","id":"78c13813-7d93-42b2-8b6e-684e55bc27d7","savedPayload":{"position":{"x":31071.884705062545,"y":30182.549135334357},"targetPosition":{"x":31118.237254218788,"y":30325.20761277863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b4fb261e-4e3c-4fb5-9c90-1e7d66f56495","savedPayload":{"position":{"x":31118.237254218788,"y":30325.20761277863},"targetPosition":{"x":31164.58980337503,"y":30467.866090222906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b3cca434-df32-4896-84d3-cc6ea988ad39","savedPayload":{"position":{"x":31164.58980337503,"y":30467.866090222906},"targetPosition":{"x":31210.942352531274,"y":30610.52456766718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"8cd9345d-9d26-4baa-900b-fef145444218","savedPayload":{"position":{"x":31210.942352531274,"y":30610.52456766718},"targetPosition":{"x":31257.294901687517,"y":30753.183045111455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"True","code":"true","project":"Superalgos","id":"49461e3c-04c0-466a-8e52-cc36fb95b64c","savedPayload":{"position":{"x":31529.689201531244,"y":30218.579130598435},"targetPosition":{"x":31461.590626570312,"y":30352.23010922669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"740bded8-0ed9-420e-8a08-eef70d5a5ebe","savedPayload":{"position":{"x":31461.590626570312,"y":30352.23010922669},"targetPosition":{"x":31393.49205160938,"y":30485.881087854945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"86611e2c-0232-41ae-9eb9-c7c91ac8118c","savedPayload":{"position":{"x":31393.49205160938,"y":30485.881087854945},"targetPosition":{"x":31325.39347664845,"y":30619.5320664832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"e6b6fbce-70b3-4aa8-bcc7-245330ee2c6c","savedPayload":{"position":{"x":31325.39347664845,"y":30619.5320664832},"targetPosition":{"x":31257.294901687517,"y":30753.183045111455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"2813f9a3-ad86-4961-8fa2-2e2ec805d78c","savedPayload":{"position":{"x":31257.294901687517,"y":30753.183045111455},"targetPosition":{"x":31350,"y":31038.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"4H Close","code":"chart.at04hs.candle.close\n\n/* Here it would be preferable to use another formula that does not force us to change the TF if it is changed in the strategy.\nSo we can use this code\n\ntradingEngine.tradingCurrent.tradingEpisode.candle.close.value\n\nTry it!\nAnd you can use this in the Close Stage Target Rate node too\n\n*/","project":"Superalgos","id":"34b744f4-7cf5-4474-a920-1a805e728391","savedPayload":{"position":{"x":31622.357055793556,"y":30426.77603705538},"targetPosition":{"x":31638.036325283705,"y":30575.954321360623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a989af2a-6dfc-4550-a846-7150eb914ee7","savedPayload":{"position":{"x":31638.036325283705,"y":30575.954321360623},"targetPosition":{"x":31653.715594773854,"y":30725.132605665865},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"Full Balance","code":"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset.balance.value","project":"Superalgos","id":"26be6b42-8c82-4d3b-9225-0473123a32b1","savedPayload":{"position":{"x":31896.42069308634,"y":30548.797029978123},"targetPosition":{"x":31775.068143930097,"y":30636.964817821994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c8d8e437-6f69-447a-9739-c789ae8fea6e","savedPayload":{"position":{"x":31775.068143930097,"y":30636.964817821994},"targetPosition":{"x":31653.715594773854,"y":30725.132605665865},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4e354f7b-687a-412d-961c-93b9f41fa7ec","savedPayload":{"position":{"x":31653.715594773854,"y":30725.132605665865},"targetPosition":{"x":31592.705098312483,"y":30862.164424312257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[{"type":"Market Buy Order","name":"Open Buy Market Order","config":"{\n \"percentageOfAlgorithmSize\": 100,\n \"spawnMultipleOrders\": false\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"True","code":"true","project":"Superalgos","id":"1efacc41-1d7d-4467-9e11-99976da0da20","savedPayload":{"position":{"x":32636.95308844918,"y":30752.409537881216},"targetPosition":{"x":32487.774804143937,"y":30768.088807371365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b23f97b4-9a2a-4493-8aa0-fb1f1671ded0","savedPayload":{"position":{"x":32487.774804143937,"y":30768.088807371365},"targetPosition":{"x":32338.596519838695,"y":30783.768076861514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"01c020c7-bffe-4177-ac7f-40ca128506be","savedPayload":{"position":{"x":32338.596519838695,"y":30783.768076861514},"targetPosition":{"x":32189.418235533452,"y":30799.447346351662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"f3a8d3b9-892b-4eef-bdb9-a23688f7b6b1","savedPayload":{"position":{"x":32189.418235533452,"y":30799.447346351662},"targetPosition":{"x":32040.23995122821,"y":30815.12661584181},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0a0cc8c6-4191-4e3d-abe8-11f9d096eb3f","savedPayload":{"position":{"x":32040.23995122821,"y":30815.12661584181},"targetPosition":{"x":31891.061666922968,"y":30830.80588533196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Open Buy Market Order","id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3"}}}],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[],"id":"ff7e75c1-58d2-49e8-9e4d-4957c4a7ceaa","savedPayload":{"position":{"x":31891.061666922968,"y":30830.80588533196},"targetPosition":{"x":31741.883382617725,"y":30846.48515482211},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"47e80991-0b34-4093-8cb2-a5e176c5e80d","savedPayload":{"position":{"x":31741.883382617725,"y":30846.48515482211},"targetPosition":{"x":31592.705098312483,"y":30862.164424312257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"ec88dd85-34a0-41c9-8554-6f200951e6b1","savedPayload":{"position":{"x":31592.705098312483,"y":30862.164424312257},"targetPosition":{"x":31350,"y":31038.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"New Manage Stage","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"SL 20%","code":"tradingEngine.tradingCurrent.position.entryTargetRate.value * 0.8\n\n/* SL is set at 20% from entry price */\n","project":"Superalgos","id":"040b7473-e789-461d-a468-e7fa3948135b","savedPayload":{"position":{"x":32040.23995122821,"y":31261.87338415819},"targetPosition":{"x":31891.061666922968,"y":31246.19411466804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"b5cc106a-8558-4fea-8c54-be7eae245950","savedPayload":{"position":{"x":31891.061666922968,"y":31246.19411466804},"targetPosition":{"x":31741.883382617725,"y":31230.51484517789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bb46145b-26d3-40a4-8c6e-0e9275a8640e","savedPayload":{"position":{"x":31741.883382617725,"y":31230.51484517789},"targetPosition":{"x":31592.705098312483,"y":31214.835575687743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"TP 100% OR TREND CHANGE","code":"if (chart.at04hs.popularSMA.sma50 > chart.at04hs.popularSMA.sma200) {tradingEngine.tradingCurrent.position.entryTargetRate.value * 2} else {chart.at04hs.candle.close}\n\n/* Until SMA50 > SMA200 TP is set at 100%\nelse (i.e. when SMA50 As soos as SMA50 goes below SMA200 we assume trend is changing and we close position */","project":"Superalgos","id":"9276e10c-4e21-491b-8291-4cb5d0b581fc","savedPayload":{"position":{"x":31775.736587696596,"y":31625.93103162692},"targetPosition":{"x":31714.726091235225,"y":31488.899212980526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"03f1c483-3d9e-4615-8675-b1958b6d3628","savedPayload":{"position":{"x":31714.726091235225,"y":31488.899212980526},"targetPosition":{"x":31653.715594773854,"y":31351.867394334135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c01f7787-f396-4cf2-a42e-4b18b16ef956","savedPayload":{"position":{"x":31653.715594773854,"y":31351.867394334135},"targetPosition":{"x":31592.705098312483,"y":31214.835575687743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"e2fae940-f3da-47a6-bf76-b37c8d5e321e","savedPayload":{"position":{"x":31592.705098312483,"y":31214.835575687743},"targetPosition":{"x":31350,"y":31038.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"4H Close","code":"chart.at04hs.candle.close\n\n/* Read the note on the Open Stage\n\ntradingEngine.tradingCurrent.tradingEpisode.candle.close.value\n\n*/","project":"Superalgos","id":"f90225af-66e8-4645-be0f-fa61e73fc9d0","savedPayload":{"position":{"x":31489.22083721784,"y":31693.48254264184},"targetPosition":{"x":31388.85124626401,"y":31582.01081882023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"953b142f-f176-4bc1-9f18-e8a15ca22c6c","savedPayload":{"position":{"x":31388.85124626401,"y":31582.01081882023},"targetPosition":{"x":31288.48165531018,"y":31470.539094998618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.tradingCurrent.strategyOpenStage.stageBaseAsset.sizeFilled.value - tradingEngine.tradingCurrent.strategyOpenStage.stageBaseAsset.feesPaid.value","project":"Superalgos","id":"c37a6a0e-2e3d-4626-a0c2-bb56cd7fb297","savedPayload":{"position":{"x":31195.776556997695,"y":31755.856049887167},"targetPosition":{"x":31242.129106153938,"y":31613.197572442892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a6ec0f66-4140-431d-b007-b7aeea5ca574","savedPayload":{"position":{"x":31242.129106153938,"y":31613.197572442892},"targetPosition":{"x":31288.48165531018,"y":31470.539094998618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"acee4ac0-3ce1-4f22-a518-6d11841816af","savedPayload":{"position":{"x":31288.48165531018,"y":31470.539094998618},"targetPosition":{"x":31257.294901687517,"y":31323.816954888545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","name":"New Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[{"type":"Market Sell Order","name":"Close Sell Market Order","config":"{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"True","code":"true","project":"Superalgos","id":"8a79d0dd-c782-415b-9881-5124bc45c513","savedPayload":{"position":{"x":29203.18494014653,"y":31760.431505605837},"targetPosition":{"x":29496.62922036667,"y":31698.05799836051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3e7d8fd9-559b-4574-b87c-a10545e723ff","savedPayload":{"position":{"x":29496.62922036667,"y":31698.05799836051},"targetPosition":{"x":29790.073500586812,"y":31635.684491115182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"57c8940c-888e-4faa-84ad-88f9f9492649","savedPayload":{"position":{"x":29790.073500586812,"y":31635.684491115182},"targetPosition":{"x":30083.517780806953,"y":31573.310983869855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"75d130d2-3ccb-4712-9e99-a4e706e817a8","savedPayload":{"position":{"x":30083.517780806953,"y":31573.310983869855},"targetPosition":{"x":30376.962061027094,"y":31510.937476624527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3813acc5-ae84-445c-9fcf-b46b40637491","savedPayload":{"position":{"x":30922.879730222685,"y":31624.925727750033},"targetPosition":{"x":31034.351454044296,"y":31524.556136796204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Close Sell Market Order","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}}],"limitBuyOrders":[],"limitSellOrders":[],"id":"d692162a-46a6-42f7-b7af-b1289658bee2","savedPayload":{"position":{"x":31034.351454044296,"y":31524.556136796204},"targetPosition":{"x":31145.823177865906,"y":31424.186545842374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8fbac454-8c7b-4480-805a-90a51d3bcd1b","savedPayload":{"position":{"x":31145.823177865906,"y":31424.186545842374},"targetPosition":{"x":31257.294901687517,"y":31323.816954888545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"24a530bd-b539-4544-b159-ddd92c428220","savedPayload":{"position":{"x":31257.294901687517,"y":31323.816954888545},"targetPosition":{"x":31350,"y":31038.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c4513d52-2a75-4d7b-99ff-6cb3a29966c3","savedPayload":{"position":{"x":31350,"y":31038.5},"targetPosition":{"x":31050,"y":31038.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"dynamicIndicators":{"type":"Dynamic Indicators","name":"New Dynamic Indicators","project":"Superalgos","indicatorFunctions":[{"type":"Indicator Function","name":"New Indicator Function","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"bb6aa5b2-3915-458d-8933-73d6f8605b1f","savedPayload":{"position":{"x":30150,"y":31038.5},"targetPosition":{"x":30450,"y":31038.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"54529d53-40b6-4da0-834b-5690007ff019","savedPayload":{"position":{"x":30450,"y":31038.5},"targetPosition":{"x":30750,"y":31038.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"beeb921e-e775-4f7a-8ef6-e5e5577a580b","savedPayload":{"position":{"x":30750,"y":31038.5},"targetPosition":{"x":31050,"y":31038.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"828f4dd3-7564-4022-96e2-bb3ec5b52ede","savedPayload":{"position":{"x":31050,"y":31038.5},"targetPosition":{"x":31050,"y":31038.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Mine","name":"Masters","config":"{\n\"codeName\": \"Masters\"\n}","project":"Superalgos","sensorBots":[{"type":"Sensor Bot","name":"Exchange Raw Data","config":"{\n\"codeName\": \"Exchange-Raw-Data\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Historic-OHLCVs","config":"{\n \"codeName\": \"Historic-OHLCVs\",\n \"description\": \"Retrieves and saves historical maket data\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 60000,\n \"retryWaitTime\": 10000,\n \"botModule\": \"Exchange Raw Data Historic OHLCVs\"\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[],"outputDatasetFolders":[],"id":"dfe2556e-a765-4e38-9d30-7f91090c0069","savedPayload":{"position":{"x":25547.3217174194,"y":18185.761511878332},"targetPosition":{"x":25508.163859753386,"y":18483.194970290475},"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":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"ea39c98b-18e2-44ce-9f7f-86a8a76a688a","savedPayload":{"position":{"x":25873.42071715862,"y":18007.18296611573},"targetPosition":{"x":25690.792288456003,"y":18245.188968203103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[],"dataMineDataDependencies":[],"id":"5c7fae5a-6da6-4864-a167-f2f21d578c72","savedPayload":{"position":{"x":25690.792288456003,"y":18245.188968203103},"targetPosition":{"x":25508.163859753386,"y":18483.194970290475},"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":"181c7c34-7243-497a-9ddb-1b0067c6d66e","savedPayload":{"position":{"x":25785.32771950677,"y":18368.38994058095},"targetPosition":{"x":25508.163859753386,"y":18483.194970290475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"","project":"Superalgos","id":"957e7e3a-b167-40be-93b5-9ba4ceff56e5","savedPayload":{"position":{"x":25805.597318165528,"y":18522.35282795649},"targetPosition":{"x":25508.163859753386,"y":18483.194970290475},"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":"fe40a546-43ee-49df-908a-7e72f598f0cd","savedPayload":{"position":{"x":25746.169861840757,"y":18665.823398993092},"targetPosition":{"x":25508.163859753386,"y":18483.194970290475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc","savedPayload":{"position":{"x":25508.163859753386,"y":18483.194970290475},"targetPosition":{"x":25231,"y":18598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Candles","config":"{\n\"codeName\": \"Candles\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"One-Min","config":"{\n\"codeName\": \"One-Min\"\n}","project":"Superalgos","id":"1c3696e4-c28e-4744-9100-706d6dce0c3c","savedPayload":{"position":{"x":25681,"y":18598},"targetPosition":{"x":25531,"y":18598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"id":"2443883b-6959-42a3-ae3b-ef3102ffcdcc","savedPayload":{"position":{"x":25531,"y":18598},"targetPosition":{"x":25231,"y":18598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition","name":"Volumes","config":"{\n\"codeName\": \"Volumes\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"One-Min","config":"{\n\"codeName\": \"One-Min\"\n}","project":"Superalgos","id":"73dcce78-c223-49e1-a93c-7e1ab7283f86","savedPayload":{"position":{"x":25646.74578963008,"y":18770.207544564288},"targetPosition":{"x":25508.163859753386,"y":18712.805029709525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"id":"3a43c6f3-bac0-404e-865f-822eb48c8660","savedPayload":{"position":{"x":25508.163859753386,"y":18712.805029709525},"targetPosition":{"x":25231,"y":18598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"af924204-66a2-47d4-9910-66ab78acb06f","savedPayload":{"position":{"x":25241,"y":18653},"targetPosition":{"x":24941,"y":18653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Sensor Bot","name":"Webhooks","config":"{\n\"codeName\": \"Webhooks\",\n\"repo\": \"Webhooks-Sensor-Bot\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Check-Webhook","config":"{\n \"codeName\": \"Check-Webhook\",\n \"description\": \"Retrieves and saves Webhooks Messages Received at the Web Server\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 30000,\n \"retryWaitTime\": 10000,\n \"botModule\": \"Webhooks Check Webhook\"\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[],"outputDatasetFolders":[],"id":"9b932f7d-fee5-4d42-97a3-beda58fa0322","savedPayload":{"position":{"x":25783.65853177429,"y":18599.96728729979},"targetPosition":{"x":25511.7661956633,"y":18726.752765822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Webhooks Check-Webhook","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"d6965837-6a98-474c-aee3-8053ac436b9c","savedPayload":{"position":{"x":26102.65084747062,"y":18622.56385922184},"targetPosition":{"x":25807.208521566958,"y":18674.65831252192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"57bc4c48-663d-4944-8b5b-b09cf6ae3578"}}}],"dataDependencies":[],"dataMineDataDependencies":[],"id":"ff50f64f-12f6-49e7-83a6-659109b89a6a","savedPayload":{"position":{"x":25807.208521566958,"y":18674.65831252192},"targetPosition":{"x":25511.7661956633,"y":18726.752765822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"57bc4c48-663d-4944-8b5b-b09cf6ae3578","savedPayload":{"position":{"x":25810.62460509082,"y":18752.899488646297},"targetPosition":{"x":25511.7661956633,"y":18726.752765822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"","project":"Superalgos","id":"ed7c8dbc-8f81-4a3f-a525-a839f3b30440","savedPayload":{"position":{"x":25793.673981899068,"y":18829.3588088197},"targetPosition":{"x":25511.7661956633,"y":18726.752765822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"1982bdf9-4889-430b-a004-7760307852b9","savedPayload":{"position":{"x":25757.511808949992,"y":18898.825696727312},"targetPosition":{"x":25511.7661956633,"y":18726.752765822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"69f37820-ab16-4e19-bfd8-386dd6e249a3","savedPayload":{"position":{"x":25511.7661956633,"y":18726.752765822},"targetPosition":{"x":25212.907786235774,"y":18700.6060429977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"External Signals","config":"{\n\"codeName\": \"External-Signals\",\n \"singularVariableName\": \"externalSignal\",\n \"pluralVariableName\": \"externalSignals\"\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":"c52d1012-5e3b-41a0-b5af-84098b0594bf","savedPayload":{"position":{"x":25740.561185758244,"y":18975.285016900714},"targetPosition":{"x":25458.65339952247,"y":18872.678973903014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Timestamp","config":"{ \n\"codeName\": \"timestamp\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"d27e836f-1cea-41e1-b4e8-c411fb50addc","savedPayload":{"position":{"x":26064.360922565593,"y":19657.243145311073},"targetPosition":{"x":25760.78938687676,"y":19425.33243829109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Source","config":"{ \n\"codeName\": \"source\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"6aea41d8-153e-4196-9a55-ec40700c6c0e","savedPayload":{"position":{"x":25953.125405784973,"y":19756.844192552286},"targetPosition":{"x":25760.78938687676,"y":19425.33243829109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Message","config":"{ \n\"codeName\": \"message\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7c1feeae-6fdb-4886-aeb7-f16d10433acd","savedPayload":{"position":{"x":25812.18525487614,"y":19805.760013995074},"targetPosition":{"x":25760.78938687676,"y":19425.33243829109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6e1d5a0a-c082-4916-bce1-3a8a1651ff02","savedPayload":{"position":{"x":25651.489682428433,"y":19102.492306838707},"targetPosition":{"x":25458.65339952247,"y":18872.678973903014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"29196db8-4c41-47ea-be7e-952cd9be9a0b","savedPayload":{"position":{"x":25458.65339952247,"y":18872.678973903014},"targetPosition":{"x":25212.907786235774,"y":18700.6060429977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f0d7c835-cf51-447a-8d00-1aeb854bc909","savedPayload":{"position":{"x":24941,"y":18953},"targetPosition":{"x":24941,"y":18653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"indicatorBots":[{"type":"Indicator Bot","name":"Candles Volumes","config":"{\n \"codeName\": \"Candles-Volumes\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Produces different files with multi-period candles and volumes for entire markets.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"botModule\": \"Candles Volumes Multi Period Market\"\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Candles","project":"Superalgos","id":"5d82f670-e692-40ca-8d24-9273d0f5e08f","savedPayload":{"position":{"x":27197.63211099408,"y":19916.997037294273},"targetPosition":{"x":26753.68850647042,"y":19952.395024658337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}},{"type":"Output Dataset","name":"Multi-Period-Market Volumes","project":"Superalgos","id":"b198c9ea-3141-4407-9953-2b2ebb672450","savedPayload":{"position":{"x":27191.50217417728,"y":20033.786394440922},"targetPosition":{"x":26753.68850647042,"y":19952.395024658337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1"}}}],"outputDatasetFolders":[],"id":"d529ec20-8461-40d6-9dc3-14f9ab8b64be","savedPayload":{"position":{"x":26753.68850647042,"y":19952.395024658337},"targetPosition":{"x":25864.616668513398,"y":19906.640279103307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"ff665e30-1d31-429b-88dc-f5e623b9a5f8","savedPayload":{"position":{"x":27626.486344522968,"y":19998.678321925363},"targetPosition":{"x":26739.448524421612,"y":20069.01205660054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"6d911e31-cef3-4c4f-82e3-d7b9b1ba9541","savedPayload":{"position":{"x":27628.081369521406,"y":20115.337302074215},"targetPosition":{"x":26739.448524421612,"y":20069.01205660054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"957ffa57-d4df-4866-b99f-86cf8add689d","savedPayload":{"position":{"x":27614.38710404594,"y":20231.090204309567},"targetPosition":{"x":26739.448524421612,"y":20069.01205660054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles One-Min","project":"Superalgos","id":"982efbd9-6a54-4322-9a0f-52a6483d67d9","savedPayload":{"position":{"x":27585.674551637185,"y":20344.05415796294},"targetPosition":{"x":26739.448524421612,"y":20069.01205660054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"One-Min","id":"1c3696e4-c28e-4744-9100-706d6dce0c3c"}}},{"type":"Data Dependency","name":"Volumes One-Min","project":"Superalgos","id":"fe28906a-90b1-4a5e-88b1-110d994cb397","savedPayload":{"position":{"x":27542.299864988356,"y":20452.569999924734},"targetPosition":{"x":26739.448524421612,"y":20069.01205660054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"One-Min","id":"73dcce78-c223-49e1-a93c-7e1ab7283f86"}}}],"dataMineDataDependencies":[],"id":"09645f1b-96c2-4dbb-a99f-803c8ebe7a00","savedPayload":{"position":{"x":26739.448524421612,"y":20069.01205660054},"targetPosition":{"x":25864.616668513398,"y":19906.640279103307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d","savedPayload":{"position":{"x":26710.789617039773,"y":20181.7446078522},"targetPosition":{"x":25864.616668513398,"y":19906.640279103307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"c086e5db-7777-45d9-bb4d-381f9566341f","savedPayload":{"position":{"x":26667.615798050225,"y":20289.92710426847},"targetPosition":{"x":25864.616668513398,"y":19906.640279103307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"fe40a546-43ee-49df-908a-7e72f598f0cd"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5","savedPayload":{"position":{"x":26610.479090462417,"y":20391.821907973124},"targetPosition":{"x":25864.616668513398,"y":19906.640279103307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1","savedPayload":{"position":{"x":25451.90205081849,"y":18718.259714226064},"targetPosition":{"x":25160.813332935693,"y":18790.836282905962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Produces different files with multi-period candles and volumes on a daily format.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"botModule\": \"Candles Volumes Multi Period Daily\"\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Candles","project":"Superalgos","id":"f60fba20-b9d6-4362-b667-020096340e38","savedPayload":{"position":{"x":26721.129479009196,"y":20995.760025971133},"targetPosition":{"x":26341.10322749104,"y":20763.450471044347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Volumes","project":"Superalgos","id":"a507b588-ce8f-4d5c-9053-d130015560b5","savedPayload":{"position":{"x":26647.398575077346,"y":21086.79016717155},"targetPosition":{"x":26341.10322749104,"y":20763.450471044347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2e683057-f911-4105-bc77-16f2706d1915"}}}],"outputDatasetFolders":[],"id":"4d806ace-6f82-449d-b908-afcd7d029a68","savedPayload":{"position":{"x":26341.10322749104,"y":20763.450471044347},"targetPosition":{"x":25648.808995345247,"y":20203.67135481477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"14730a16-e01e-4bc5-9886-0eed386152f2","savedPayload":{"position":{"x":27020.081928145428,"y":21313.828394018106},"targetPosition":{"x":26261.05128969707,"y":20849.396335055884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"1baff60d-84c4-4e27-b03d-663158ca6bba","savedPayload":{"position":{"x":26952.680946194174,"y":21409.30144685118},"targetPosition":{"x":26261.05128969707,"y":20849.396335055884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"4e77c03b-367c-450c-82ca-c7211c2fab8e","savedPayload":{"position":{"x":26873.56095172413,"y":21494.89458975966},"targetPosition":{"x":26261.05128969707,"y":20849.396335055884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles One-Min","project":"Superalgos","id":"2d324ca2-acc5-4390-ae37-0d350fe8e8fa","savedPayload":{"position":{"x":26783.931056056146,"y":21569.40427176681},"targetPosition":{"x":26261.05128969707,"y":20849.396335055884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"One-Min","id":"1c3696e4-c28e-4744-9100-706d6dce0c3c"}}},{"type":"Data Dependency","name":"Volumes One-Min","project":"Superalgos","id":"4051019a-9548-4541-a7e7-11097fe3f103","savedPayload":{"position":{"x":26685.051409046962,"y":21631.699341761276},"targetPosition":{"x":26261.05128969707,"y":20849.396335055884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"One-Min","id":"73dcce78-c223-49e1-a93c-7e1ab7283f86"}}}],"dataMineDataDependencies":[],"id":"1e4c5a40-0c64-423f-968d-31b178056cf3","savedPayload":{"position":{"x":26261.05128969707,"y":20849.396335055884},"targetPosition":{"x":25648.808995345247,"y":20203.67135481477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"2a021da8-9feb-475e-90ab-1586968c17c7","savedPayload":{"position":{"x":26171.615585723255,"y":20923.744114852907},"targetPosition":{"x":25648.808995345247,"y":20203.67135481477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"fa826f1b-2a52-4542-89b2-7190e137ef56","savedPayload":{"position":{"x":26073.118599669808,"y":20985.881149447363},"targetPosition":{"x":25648.808995345247,"y":20203.67135481477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"fe40a546-43ee-49df-908a-7e72f598f0cd"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3","savedPayload":{"position":{"x":25967.02380658774,"y":21034.734087222027},"targetPosition":{"x":25648.808995345247,"y":20203.67135481477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d","savedPayload":{"position":{"x":25438.96848930573,"y":18903.218260930735},"targetPosition":{"x":25160.813332935693,"y":18790.836282905962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Candles","config":"{\n \"codeName\": \"Candles\",\n \"singularVariableName\": \"candle\",\n \"pluralVariableName\": \"candles\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"\",\n \"fileName\": \"\"\n }\n }","project":"Superalgos","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8","savedPayload":{"position":{"x":25438.388603533014,"y":19329.01308702337},"targetPosition":{"x":25255.760174830397,"y":19091.007084935998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@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\": \"\",\n \"fileName\": \"\"\n }\n }","project":"Superalgos","id":"678a567c-f08d-49b9-813b-4e54fd6afadb","savedPayload":{"position":{"x":25398.90780290828,"y":19354.652218734587},"targetPosition":{"x":25255.760174830397,"y":19091.007084935998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Min","config":"{\n \"codeName\": \"min\",\n \"isString\": false\n}","project":"Superalgos","id":"95264fe8-6089-4a70-bf6d-158bc43c04f3","savedPayload":{"position":{"x":25520.620954891903,"y":19521.204186938827},"targetPosition":{"x":25456.04429037066,"y":19656.591979591307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Max","config":"{\n \"codeName\": \"max\",\n \"isString\": false\n}","project":"Superalgos","id":"b716bfaa-d785-45e3-b8ca-370284ac901c","savedPayload":{"position":{"x":25597.440514034486,"y":19606.520950706243},"targetPosition":{"x":25456.04429037066,"y":19656.591979591307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Open","config":"{\n \"codeName\": \"open\",\n \"isString\": false\n}","project":"Superalgos","id":"7d809ac3-9b7d-4687-83bb-40b851e522d0","savedPayload":{"position":{"x":25591.43208302314,"y":19721.16864411255},"targetPosition":{"x":25456.04429037066,"y":19656.591979591307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Close","config":"{\n \"codeName\": \"close\",\n \"isString\": false\n}","project":"Superalgos","id":"b0ea41f8-03da-454e-8d0f-bb0f2fc5d328","savedPayload":{"position":{"x":25506.115319255725,"y":19797.988203255132},"targetPosition":{"x":25456.04429037066,"y":19656.591979591307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"21b8be1f-0437-4fc8-9bc0-31779a9ea47e","savedPayload":{"position":{"x":25391.46762584942,"y":19791.979772243787},"targetPosition":{"x":25456.04429037066,"y":19656.591979591307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"91ba9479-fdb4-42b7-ad02-1b2ac24b13d6","savedPayload":{"position":{"x":25314.648066706835,"y":19706.66300847637},"targetPosition":{"x":25456.04429037066,"y":19656.591979591307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Direction","config":"{\n \"codeName\": \"direction\",\n \"isString\": true,\n \"isCalculated\": true,\n \"possibleValues\": [\"Up\", \"Down\", \"Side\"]\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.direction","project":"Superalgos","id":"becdde12-efb6-464b-bfb0-ac98e3c2b8e3","savedPayload":{"position":{"x":25185.2687050657,"y":19527.438650548822},"targetPosition":{"x":25320.65649771818,"y":19592.015315070064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aafd0a4b-da5d-40c1-94b8-e79f0b1eca9b","savedPayload":{"position":{"x":25320.65649771818,"y":19592.015315070064},"targetPosition":{"x":25456.04429037066,"y":19656.591979591307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"65ea4bea-6b8f-4df9-8716-d8af0ce2044c","savedPayload":{"position":{"x":25456.04429037066,"y":19656.591979591307},"targetPosition":{"x":25255.760174830397,"y":19091.007084935998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"calculations":{"type":"Calculations Procedure","name":"New Calculations Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"let candle = product.candle\n\nif (candle.close > candle.open) {\n variable.direction = \"Up\"\n}\n\nif (candle.close < candle.open) {\n variable.direction = \"Down\"\n}\n\nif (candle.close === candle.open) {\n variable.direction = \"Side\"\n}","project":"Superalgos","id":"798bc1e0-90d2-435f-980d-b457b30046dd","savedPayload":{"position":{"x":25365.101490125682,"y":19680.96002947437},"targetPosition":{"x":25337.76616130186,"y":19533.471793339777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"abbcb291-c048-49e7-b0d0-fdf20891faea","savedPayload":{"position":{"x":25337.76616130186,"y":19533.471793339777},"targetPosition":{"x":25310.43083247804,"y":19385.983557205185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f7846b50-ae42-46b4-aeb6-9f6217477a1b","savedPayload":{"position":{"x":25310.43083247804,"y":19385.983557205185},"targetPosition":{"x":25255.760174830397,"y":19091.007084935998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7","savedPayload":{"position":{"x":25319.789112205654,"y":19045.25071175289},"targetPosition":{"x":25160.813332935693,"y":18790.836282905962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Candles","id":"0aed75a3-fee8-4ddc-97ff-b6768e6f12a3"}}},{"type":"Product Definition","name":"Volumes","config":"{\n \"codeName\": \"Volumes\",\n \"singularVariableName\": \"volume\",\n \"pluralVariableName\": \"volumes\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@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\": \"\",\n \"fileName\": \"\"\n }\n }","project":"Superalgos","id":"2e683057-f911-4105-bc77-16f2706d1915","savedPayload":{"position":{"x":25126.036332309974,"y":19405.364200132546},"targetPosition":{"x":25071.36567466233,"y":19110.38772786336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"\",\n \"fileName\": \"\"\n }\n }","project":"Superalgos","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1","savedPayload":{"position":{"x":25008.992167417004,"y":19403.8320080835},"targetPosition":{"x":25071.36567466233,"y":19110.38772786336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Buy","config":"{\n \"codeName\": \"buy\",\n \"isString\": false\n}","project":"Superalgos","id":"bc8405e2-4a80-416c-bccf-1334e53d371b","savedPayload":{"position":{"x":24924.35008821883,"y":19513.196239022458},"targetPosition":{"x":24816.482868046158,"y":19481.244512743266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Sell","config":"{\n \"codeName\": \"sell\",\n \"isString\": false\n}","project":"Superalgos","id":"f08f11a8-d092-4b7e-a7e6-c67adac04a33","savedPayload":{"position":{"x":24819.427774730793,"y":19593.705961803014},"targetPosition":{"x":24816.482868046158,"y":19481.244512743266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"8e2624b0-48ee-4d00-821e-0c6a72b3838f","savedPayload":{"position":{"x":24710.435700298287,"y":19518.797784407067},"targetPosition":{"x":24816.482868046158,"y":19481.244512743266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"62964ed9-14c4-442d-b272-602d0c714654","savedPayload":{"position":{"x":24747.997207282675,"y":19391.992261960502},"targetPosition":{"x":24816.482868046158,"y":19481.244512743266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7edf78c7-c63d-4e7e-a643-99aaf52ac967","savedPayload":{"position":{"x":24816.482868046158,"y":19481.244512743266},"targetPosition":{"x":25071.36567466233,"y":19110.38772786336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f","savedPayload":{"position":{"x":25139.886390812455,"y":19090.10549798391},"targetPosition":{"x":25160.813332935693,"y":18790.836282905962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Volumes","id":"a6177fb7-51d1-4b7c-bcbb-04861a5bf0c1"}}}],"id":"285a4618-0423-4ac9-9df9-7a78be6fd915","savedPayload":{"position":{"x":24641,"y":18653},"targetPosition":{"x":24941,"y":18653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"l"}}}],"plotters":[{"type":"Plotter","name":"Plotters Candles Volumes","config":"{\n\"codeName\": \"PlottersCandlesVolumes\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Candles","config":"{\n\"codeName\": \"Candles\",\n\"isLegacy\": true,\n\"icon\": \"layer-candles\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Candle","config":"{ \n\"codeName\": \"CandlePanel\" ,\n\"isLegacy\": true\n}","project":"Superalgos","panelData":[],"id":"9336f4e6-d56b-4ed4-819d-0bb762ba1fdd","savedPayload":{"position":{"x":24058.207561956904,"y":18597.58286360246},"targetPosition":{"x":24353.649887860567,"y":18545.48841030238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0aed75a3-fee8-4ddc-97ff-b6768e6f12a3","savedPayload":{"position":{"x":24353.649887860567,"y":18545.48841030238},"targetPosition":{"x":24649.092213764226,"y":18493.3939570023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Volumes","config":"{\n\"codeName\": \"Volumes\",\n\"isLegacy\": true,\n\"icon\": \"layer-volume\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Volume","config":"{ \n\"codeName\": \"VolumePanel\" ,\n\"isLegacy\": true\n}","project":"Superalgos","panelData":[],"id":"42dbd098-4550-44a0-987f-54a28dd5f40b","savedPayload":{"position":{"x":24263.419647952305,"y":18033.767291130913},"targetPosition":{"x":24456.255930858268,"y":18263.580624066606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a6177fb7-51d1-4b7c-bcbb-04861a5bf0c1","savedPayload":{"position":{"x":24456.255930858268,"y":18263.580624066606},"targetPosition":{"x":24649.092213764226,"y":18493.3939570023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e4347543-21b5-4274-b690-e6b3b5899862","savedPayload":{"position":{"x":24941,"y":18353},"targetPosition":{"x":24941,"y":18653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959","savedPayload":{"position":{"x":24941,"y":18653},"targetPosition":{"x":24941,"y":18653},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"m"}}},{"type":"Trading Mine","name":"Masters","config":"{ \n\"codeName\": \"Masters\"\n}","project":"Superalgos","tradingBots":[{"type":"Trading Bot","name":"Low Frequency","config":"{\n\"codeName\": \"Low-Frequency\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Trading","config":"{\n \"codeName\": \"Trading\",\n \"sessionRunWaitTime\": 5000,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Low-Frequency-Trading-Process\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[],"outputDatasetFolders":[{"type":"Output Dataset Folder","name":"Trading Engine","project":"Superalgos","outputDatasets":[],"outputDatasetFolders":[{"type":"Output Dataset Folder","name":"Trading Episode","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Trading Episode Counters","project":"Superalgos","id":"ec8d74ba-a4ad-417a-b479-6bae95b8a1fe","savedPayload":{"position":{"x":30998.007168475306,"y":18157.29532463841},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"3ed03a02-381d-43fe-9faa-761728c53bd8"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading Episode Counters","project":"Superalgos","id":"22b0af33-8c2f-4194-839b-affd18f298d5","savedPayload":{"position":{"x":30921.633828297163,"y":18189.899121013277},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"15f5b150-f1cf-403c-8cb9-2c7c4e1db8e8"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading Episode Statistics","project":"Superalgos","id":"23ab91ae-2e78-4993-bb69-855f69cef1ce","savedPayload":{"position":{"x":30840.569957506174,"y":18207.914211365573},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"fc9dc0f7-35e0-4548-bb91-f920825d694f"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading Episode Statistics","project":"Superalgos","id":"d0a4515a-279d-4c27-8de2-168108861242","savedPayload":{"position":{"x":30757.57608899672,"y":18210.72711340006},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"91953362-8751-4440-a898-21245cd47c15"}}},{"type":"Output Dataset","name":"Multi-Period-Market Episode Candle","project":"Superalgos","id":"7fc80977-5b37-413e-8107-0a89a16e08b0","savedPayload":{"position":{"x":30675.478479420723,"y":18198.242037111664},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"17fb41f5-61b5-4433-9a10-950ff8216a7e"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Candle","project":"Superalgos","id":"a6888750-1043-420c-9253-633e1399c5e4","savedPayload":{"position":{"x":30597.072864407062,"y":18170.884146799188},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"bbc9467d-28bf-432b-9e49-582d1bcabfb9"}}},{"type":"Output Dataset","name":"Multi-Period-Market Episode Balances","project":"Superalgos","id":"0ad114df-f076-4a86-8c62-4c4a146da73c","savedPayload":{"position":{"x":30525.029253137858,"y":18129.585082605052},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"acddff59-b51b-4b45-b58f-71d4077755ee"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Balances","project":"Superalgos","id":"04b51302-957d-4365-ad55-9f89d60e261c","savedPayload":{"position":{"x":30461.801004388097,"y":18075.751234627613},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"213b8fe8-f772-41ea-a3f5-97867be555f7"}}},{"type":"Output Dataset","name":"Multi-Period-Market Distance To Trading Event","project":"Superalgos","id":"6d460b9b-5bf6-49ad-9611-70904cdc85be","savedPayload":{"position":{"x":30409.541280335023,"y":18011.215849993165},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"0ef6aa1d-3345-40f8-bc4f-4d2e2ff199ff"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Distance To Trading Event","project":"Superalgos","id":"ef6652ab-d2ef-482c-bfb4-a96bbd36d239","savedPayload":{"position":{"x":30370.02972320263,"y":17938.17660382377},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"c291211b-4012-4440-a302-8e15412b0990"}}},{"type":"Output Dataset","name":"Multi-Period-Market Episode Base Asset","project":"Superalgos","id":"83ceb16b-c882-4528-908a-d03387b475f1","savedPayload":{"position":{"x":30344.61185168018,"y":17859.120760046804},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"e8b67591-d484-4c08-a711-7a4418ee101a"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Base Asset","project":"Superalgos","id":"bf9c3526-8056-425f-954e-33bea9d757bf","savedPayload":{"position":{"x":30334.15324089699,"y":17776.74047060506},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"c6f34adc-2863-4ce6-8379-9b3cc1b37b73"}}},{"type":"Output Dataset","name":"Multi-Period-Market Episode Quoted Asset","project":"Superalgos","id":"c6af3132-aa9f-4703-8031-d078c75bc579","savedPayload":{"position":{"x":30339.01004629956,"y":17693.841097451208},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"99d1f17b-92cb-4544-88a2-fe463dd1de4b"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Quoted Asset","project":"Superalgos","id":"5390a269-2c8e-4eee-ba8d-23e026cd793d","savedPayload":{"position":{"x":30359.016875205,"y":17613.245679311167},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"daf4e3e9-426d-44c3-8b43-6849778d972f"}}},{"type":"Output Dataset","name":"Multi-Period-Market Current Episode","project":"Superalgos","id":"a97335c5-a44f-4052-b66b-b5bedbe6b3a0","savedPayload":{"position":{"x":30393.492419050486,"y":17537.698796486144},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"26f6b248-21de-4898-9ee5-58b728a04267"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Current Episode","project":"Superalgos","id":"f448ea93-263f-419d-95a4-518301c1968d","savedPayload":{"position":{"x":30441.262654539212,"y":17469.773107462246},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ecdfe444-00e6-4ad4-a482-14b59a1e752a"}}}],"outputDatasetFolders":[],"id":"995b0e5f-ea6a-4142-9877-4edd429d8bd7","savedPayload":{"position":{"x":30783.894999568125,"y":17761.497422766934},"targetPosition":{"x":31133.610682223763,"y":17478.30324679451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Strategy","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Current Strategy","project":"Superalgos","id":"6907e0fe-9f3e-466b-85ca-04f83447b5c3","savedPayload":{"position":{"x":30484.855204073156,"y":17949.651691947376},"targetPosition":{"x":30689.15092895595,"y":17548.69875606261},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7b4550d3-69d1-41ac-bad3-e2283f798bb8"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Current Strategy","project":"Superalgos","id":"6f3c4eff-ed37-4fe6-862c-39d96ea9e10e","savedPayload":{"position":{"x":30288.197993071186,"y":17752.994480945406},"targetPosition":{"x":30689.15092895595,"y":17548.69875606261},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"49d55660-71e9-4c5a-8b1a-198934844e4a"}}},{"type":"Output Dataset","name":"Multi-Period-Market Last Strategy","project":"Superalgos","id":"922a493f-254d-48dc-870b-83e96a0df0fe","savedPayload":{"position":{"x":30244.691175688138,"y":17478.30324679451},"targetPosition":{"x":30689.15092895595,"y":17548.69875606261},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"a2e7b5d2-8556-4c58-b2f6-a9c27c939e94"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Last Strategy","project":"Superalgos","id":"0a0466df-1c89-4ecb-beb0-1e3bedaf4953","savedPayload":{"position":{"x":30370.952877422005,"y":17230.500704528666},"targetPosition":{"x":30689.15092895595,"y":17548.69875606261},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"76ff2401-1d4f-4dda-87f6-5e0b7af3eab2"}}}],"outputDatasetFolders":[],"id":"fafacd7f-c6d4-425a-b483-68054946b94c","savedPayload":{"position":{"x":30689.15092895595,"y":17548.69875606261},"targetPosition":{"x":31133.610682223763,"y":17478.30324679451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Position","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Current Position","project":"Superalgos","id":"2e19e13d-2709-4622-856d-c5efa444eff5","savedPayload":{"position":{"x":30418.272927254293,"y":17656.65698059937},"targetPosition":{"x":30713.499490300022,"y":17317.037669499125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7506dd91-ad9d-4aad-bb1a-604bc5d3fe8d"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Current Position","project":"Superalgos","id":"7f943c9b-5a42-4590-a02b-dc52e26ab8bd","savedPayload":{"position":{"x":30319.920622087295,"y":17535.201998609977},"targetPosition":{"x":30713.499490300022,"y":17317.037669499125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"06678152-1082-4f00-9275-22ffde715469"}}},{"type":"Output Dataset","name":"Multi-Period-Market Last Position","project":"Superalgos","id":"2f77df6b-e0f3-4a23-bf2c-bc2531567744","savedPayload":{"position":{"x":30269.03973703221,"y":17387.433178767227},"targetPosition":{"x":30713.499490300022,"y":17317.037669499125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"485671ff-0d50-4c08-958c-93e657cd238f"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Last Position","project":"Superalgos","id":"a464a09e-8f91-43f1-8752-85194adc3927","savedPayload":{"position":{"x":30271.767257748572,"y":17231.17362157968},"targetPosition":{"x":30713.499490300022,"y":17317.037669499125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"a909df42-6192-4bbd-9f38-e8800149aaa1"}}},{"type":"Output Dataset","name":"Multi-Period-Market Stop Loss","project":"Superalgos","id":"30e7e833-628e-4133-8960-e0e19d268425","savedPayload":{"position":{"x":30327.77420498407,"y":17085.2705357896},"targetPosition":{"x":30713.499490300022,"y":17317.037669499125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"b0276d53-e43b-4f1b-a5d8-b118921970dd"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Stop Loss","project":"Superalgos","id":"63595c6e-3a95-4f40-8016-3d7957eb0944","savedPayload":{"position":{"x":30430.305314327594,"y":16967.321986843486},"targetPosition":{"x":30713.499490300022,"y":17317.037669499125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b5d51a14-eed9-405f-90d7-e91c0ceed659"}}},{"type":"Output Dataset","name":"Multi-Period-Market Take Profit","project":"Superalgos","id":"504a520b-1aa2-44c3-95e0-1aa96444f847","savedPayload":{"position":{"x":30566.9938207943,"y":16891.55431047943},"targetPosition":{"x":30713.499490300022,"y":17317.037669499125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"67fd9603-5184-4570-bebb-07c33974b40c"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Take Profit","project":"Superalgos","id":"a1c1a1e1-2617-4c71-b10b-4a0f9542da34","savedPayload":{"position":{"x":30721.3530731968,"y":16867.10620667875},"targetPosition":{"x":30713.499490300022,"y":17317.037669499125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"d1fc090a-18c0-4ff6-87d6-726d276bad43"}}}],"outputDatasetFolders":[],"id":"945db015-7460-4822-b1ce-9086206ddbb5","savedPayload":{"position":{"x":30713.499490300022,"y":17317.037669499125},"targetPosition":{"x":31133.610682223763,"y":17478.30324679451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Stages","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Open Stage","project":"Superalgos","id":"4d3664a4-74a0-428f-8790-93ec819ab48d","savedPayload":{"position":{"x":30424.93314723164,"y":17275.09323364459},"targetPosition":{"x":30850.416506251335,"y":17128.58756413887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"b553683f-14f4-48be-91a6-0fb5381887e4"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Open Stage","project":"Superalgos","id":"e5c413a5-599d-4544-a8ee-240de57b4bc2","savedPayload":{"position":{"x":30400.48504343096,"y":17120.733981242094},"targetPosition":{"x":30850.416506251335,"y":17128.58756413887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"3287fb46-854d-41de-8a42-285f9c10d4fa"}}},{"type":"Output Dataset","name":"Multi-Period-Market Close Stage","project":"Superalgos","id":"d1ac39c5-f175-40a4-b55c-2631e262b360","savedPayload":{"position":{"x":30430.305314327594,"y":16967.321986843486},"targetPosition":{"x":30850.416506251335,"y":17128.58756413887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"0c30c4d3-3e58-4422-a178-450c24f95001"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Close Stage","project":"Superalgos","id":"a7425ac8-801e-4d44-8beb-43e0670cd6dd","savedPayload":{"position":{"x":30510.797195151088,"y":16833.36100109314},"targetPosition":{"x":30850.416506251335,"y":17128.58756413887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"4903a08c-90b6-4726-aa4d-1d8a0acdbd77"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trigger Stage","project":"Superalgos","id":"84379ea1-432c-42c2-910b-ce2d64cae90c","savedPayload":{"position":{"x":30632.252177140483,"y":16735.008695926143},"targetPosition":{"x":30850.416506251335,"y":17128.58756413887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"a179150b-2eaa-45ef-a7fa-14a1decf7dfc"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trigger Stage","project":"Superalgos","id":"433f36c0-cd49-410a-8649-603edcd1c9bc","savedPayload":{"position":{"x":30780.020996983232,"y":16684.127810871058},"targetPosition":{"x":30850.416506251335,"y":17128.58756413887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"493f0951-e638-4da1-88b4-1c1d3829046e"}}},{"type":"Output Dataset","name":"Multi-Period-Market Manage Stage","project":"Superalgos","id":"7213f716-e04b-4f34-afdc-2189c1cb65ec","savedPayload":{"position":{"x":30936.28055417078,"y":16686.85533158742},"targetPosition":{"x":30850.416506251335,"y":17128.58756413887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"56d1a25b-54b1-419c-a323-f2fad41de0ec"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Manage Stage","project":"Superalgos","id":"d0a10c39-8aeb-4700-bc2d-7711a272f9da","savedPayload":{"position":{"x":31082.18363996086,"y":16742.86227882292},"targetPosition":{"x":30850.416506251335,"y":17128.58756413887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"fef1dba7-fc21-4338-b75e-a040d71dbde5"}}}],"outputDatasetFolders":[],"id":"dc792f37-8560-4ef0-82f1-1d620b8d1754","savedPayload":{"position":{"x":30850.416506251335,"y":17128.58756413887},"targetPosition":{"x":31133.610682223763,"y":17478.30324679451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Orders","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Market Buy Orders","project":"Superalgos","id":"234a4f87-b71a-4354-8e78-a8adb1c9d04e","savedPayload":{"position":{"x":30614.82386428172,"y":16995.82725613173},"targetPosition":{"x":31063.21517295566,"y":17033.843493526696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"a2ea8001-2143-4055-b1d3-525d95fa8e6f"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Market Buy Orders","project":"Superalgos","id":"35e9dacf-0814-4d91-8ee4-ee9674252333","savedPayload":{"position":{"x":30636.95118189963,"y":16889.624875002657},"targetPosition":{"x":31063.21517295566,"y":17033.843493526696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"557357c6-f814-4bf9-9426-82fc5e22c028"}}},{"type":"Output Dataset","name":"Multi-Period-Market Market Sell Orders","project":"Superalgos","id":"fad3d464-a7e1-4fe6-a6e5-c90cd2c2ccd6","savedPayload":{"position":{"x":30683.85141327115,"y":16791.80395576885},"targetPosition":{"x":31063.21517295566,"y":17033.843493526696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"917cfdae-b736-4ed5-ad8e-d572c49ea489"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Market Sell Orders","project":"Superalgos","id":"4d0c0274-c640-40d9-a617-e632fe0307ac","savedPayload":{"position":{"x":30752.79888742437,"y":16708.049494691608},"targetPosition":{"x":31063.21517295566,"y":17033.843493526696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"3c878a50-6d76-412b-95d7-f2e546960293"}}},{"type":"Output Dataset","name":"Multi-Period-Market Limit Buy Orders","project":"Superalgos","id":"b3970d06-c11b-4e23-9688-4305533c0697","savedPayload":{"position":{"x":30839.786627775386,"y":16643.228996613656},"targetPosition":{"x":31063.21517295566,"y":17033.843493526696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"df8cfaa4-a4d4-4bc1-9fa2-4f8e91e45a87"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Limit Buy Orders","project":"Superalgos","id":"0b27dde5-84e1-45b5-80b5-675bf309a7c4","savedPayload":{"position":{"x":30939.75922304256,"y":16601.10959327037},"targetPosition":{"x":31063.21517295566,"y":17033.843493526696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"12652573-9506-4d3e-82bb-64b1bb9e7ce0"}}},{"type":"Output Dataset","name":"Multi-Period-Market Limit Sell Orders","project":"Superalgos","id":"4090e0da-861e-4681-bc52-ec95cfb59a6d","savedPayload":{"position":{"x":31046.906629374564,"y":16584.139111286247},"targetPosition":{"x":31063.21517295566,"y":17033.843493526696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f645108f-4648-497f-b361-0be5b84c233a"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Limit Sell Orders","project":"Superalgos","id":"ef44fbac-4f91-47a8-983a-a34a9bff9e8b","savedPayload":{"position":{"x":31155.001828980356,"y":16593.303813389022},"targetPosition":{"x":31063.21517295566,"y":17033.843493526696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e98191d1-5b13-42eb-bd52-31e3c6830188"}}},{"type":"Output Dataset","name":"Multi-Period-Market Last Market Order","project":"Superalgos","id":"7e238b18-d0f3-426c-b10d-194e81d6e5bf","savedPayload":{"position":{"x":31257.762721768915,"y":16628.071080404814},"targetPosition":{"x":31063.21517295566,"y":17033.843493526696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"768b42e9-59fe-494f-9e05-3be57fb17ca8"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Last Market Order","project":"Superalgos","id":"4bc6b052-2f68-4335-8f0d-930d869a289d","savedPayload":{"position":{"x":31349.217218172013,"y":16686.42036514854},"targetPosition":{"x":31063.21517295566,"y":17033.843493526696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"26a39916-4f2d-42ab-ae86-7ab622f80624"}}},{"type":"Output Dataset","name":"Multi-Period-Market Last Limit Order","project":"Superalgos","id":"614692d9-50af-4f5f-9790-ef471eecd20b","savedPayload":{"position":{"x":31424.050315282275,"y":16764.96061928192},"targetPosition":{"x":31063.21517295566,"y":17033.843493526696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f9263cd7-460d-461c-be7b-ed2a69d38d11"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Last Limit Order","project":"Superalgos","id":"3520e492-6504-4db7-9cab-1a118a31f89b","savedPayload":{"position":{"x":31477.912985502888,"y":16859.12736871692},"targetPosition":{"x":31063.21517295566,"y":17033.843493526696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f3d5b047-d9c2-4e71-8fce-6e9be3499556"}}}],"outputDatasetFolders":[],"id":"d6594a81-44be-4a3d-9186-b590e4df0d73","savedPayload":{"position":{"x":31063.21517295566,"y":17033.843493526696},"targetPosition":{"x":31133.610682223763,"y":17478.30324679451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"914ae121-5a93-4ee5-9a99-6aba6a39aead","savedPayload":{"position":{"x":31139.610682223763,"y":17478.30324679451},"targetPosition":{"x":31559.721874147504,"y":17639.568824089893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Trading System","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Trading System Errors","project":"Superalgos","id":"fffef2bc-4075-4d0d-b7ea-f66f3c794439","savedPayload":{"position":{"x":30935.07574201665,"y":17341.344458446794},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2ef33675-fc52-49fd-a8ef-bc5da1711dd1"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Errors","project":"Superalgos","id":"82523512-94b4-4b08-8932-049265af5daa","savedPayload":{"position":{"x":30922.43898710058,"y":17268.105230248453},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2d0dd4c2-4f4c-4d8c-b9a5-9ca62f186369"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Highlights","project":"Superalgos","id":"777f4b37-3c50-4ae8-8005-42aa960cdae6","savedPayload":{"position":{"x":30922.02936180857,"y":17193.78494816464},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"6e0f951c-25e7-4b92-85da-8be04d424bd0"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Highlights","project":"Superalgos","id":"da5be91d-2f77-4147-b31b-c2f273af28d1","savedPayload":{"position":{"x":30933.85803965077,"y":17120.410875752084},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"fa53ecfb-a558-4810-b6f8-1f9c6c8bfc5b"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Values","project":"Superalgos","id":"eae22a32-d154-4854-a471-f6b5febd41d8","savedPayload":{"position":{"x":30957.602365130708,"y":17049.98446643427},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9c4ec2f8-f4a8-45b9-aba3-b093a7b8f86a"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Values","project":"Superalgos","id":"2e848753-bdf4-4303-93ce-cea96b78fb3a","savedPayload":{"position":{"x":30992.614654946126,"y":16984.42676906944},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b3d3fe62-e714-4cb9-a78d-55bc0add1d7c"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Status","project":"Superalgos","id":"beca64ab-2509-43f5-bca6-095c6eaf6ecf","savedPayload":{"position":{"x":31037.93986510109,"y":16925.526026745545},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b83dc93-dc14-44d9-8f8c-889f39a952da"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Status","project":"Superalgos","id":"2aa4ae9f-6938-4967-b0ce-97c97e729127","savedPayload":{"position":{"x":31092.34164201657,"y":16874.888898170404},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"0f8dcda3-1eab-439d-956c-c6eb9b1c481f"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Progress","project":"Superalgos","id":"cde9d10e-f3fc-445c-8ab8-f765f428e7d6","savedPayload":{"position":{"x":31154.336047033168,"y":16833.896632210402},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"77735fc0-9ce6-4dec-a3ad-8075a22eda40"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Progress","project":"Superalgos","id":"e277a4df-c725-4164-ba3f-bcd595ba5f60","savedPayload":{"position":{"x":31222.23203438938,"y":16803.66739102207},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2fde11bd-4515-4a4e-9dc0-f6869dd3a04e"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Running","project":"Superalgos","id":"63ba83d9-9098-4fe0-bc15-8c4aa138cb98","savedPayload":{"position":{"x":31294.177578541763,"y":16785.025749503275},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"c7b45884-6cdf-43f7-a1e5-c5325effd207"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Running","project":"Superalgos","id":"dca719f2-e5b1-4676-a5cc-0aa78cdf817d","savedPayload":{"position":{"x":31368.21019259387,"y":16778.480203039515},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"a21cbc62-e6d8-4286-b0ff-430071d46700"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Announcements","project":"Superalgos","id":"d1a11ace-444a-4709-8464-230cf0b5b4a4","savedPayload":{"position":{"x":31442.310459822984,"y":16784.209297075355},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9e29a710-30c0-4faa-b71a-f4ee109673a2"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Announcements","project":"Superalgos","id":"5cc7df48-a3d5-49c4-ab98-95d977d7ac12","savedPayload":{"position":{"x":31514.45711810407,"y":16802.05675686013},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b7e24195-a9d0-45e7-9dba-447db8000feb"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Warnings","project":"Superalgos","id":"030ff471-5471-4e48-8da1-24e48bd7a95e","savedPayload":{"position":{"x":31582.68219467153,"y":16831.53575021577},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"0381cc1b-24c3-4705-9c76-94129e8605ff"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Warnings","project":"Superalgos","id":"5be3c8fd-243e-47ca-90e5-cc263c14da8b","savedPayload":{"position":{"x":31645.124687286097,"y":16871.84216704953},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b93b5cc3-7d61-4071-8eba-de15a4fea64b"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Infos","project":"Superalgos","id":"bdeac361-8693-44df-a47d-10eb881a0f3e","savedPayload":{"position":{"x":31700.081327524684,"y":16921.876553381175},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"cd834a3e-1b23-4e15-a068-59c235a90f89"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Infos","project":"Superalgos","id":"540aea70-6c45-46e7-a4c7-717731f50872","savedPayload":{"position":{"x":31746.05304150284,"y":16980.27410158149},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e24a4dcf-5adb-4c63-b9db-3ba2a7ece789"}}}],"outputDatasetFolders":[],"id":"c01cb90b-67d6-4e38-8720-46c405e790ca","savedPayload":{"position":{"x":31376.690384763395,"y":17228.47336815072},"targetPosition":{"x":31559.721874147504,"y":17639.568824089893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Simulation Objects","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Episodes","project":"Superalgos","id":"f80a4896-072b-4e06-9d1b-e68998fef8ad","savedPayload":{"position":{"x":31388.56898448736,"y":16909.698073103962},"targetPosition":{"x":31714.98745144289,"y":17219.45763216615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"38264ecd-10e7-4a62-a2ca-9b607c30e72c"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episodes","project":"Superalgos","id":"4d029e2f-760c-4ad2-b3db-336f28f84b60","savedPayload":{"position":{"x":31531.95596205878,"y":16808.36217622698},"targetPosition":{"x":31714.98745144289,"y":17219.45763216615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"cdc39b61-9aa5-46d5-9e80-915e0c2d545d"}}},{"type":"Output Dataset","name":"Multi-Period-Market Strategies","project":"Superalgos","id":"cf8fb7ee-dc19-4e15-b6c5-41a36ba68a50","savedPayload":{"position":{"x":31703.207824704346,"y":16769.61183592715},"targetPosition":{"x":31714.98745144289,"y":17219.45763216615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"03d1a187-b188-4ad7-b99e-6e4f6c6f0278"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Strategies","project":"Superalgos","id":"a312982f-f91a-475f-a27c-582a8312a4cd","savedPayload":{"position":{"x":31876.253028738272,"y":16799.34644024241},"targetPosition":{"x":31714.98745144289,"y":17219.45763216615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"58a5a046-53a1-43a7-bb76-0c29d94ef579"}}}],"outputDatasetFolders":[{"type":"Output Dataset Folder","name":"Orders","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Market Buy Orders","project":"Superalgos","id":"7548b90c-e06e-4733-bea8-09f5338b5170","savedPayload":{"position":{"x":31823.957994605666,"y":16490.318702489712},"targetPosition":{"x":32024.747010505078,"y":16893.039165210623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"45609efb-0edc-4aa9-bc12-f5b4ca6dc5bf"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Market Buy Orders","project":"Superalgos","id":"669a6acd-3570-4ffd-901f-61087b26c682","savedPayload":{"position":{"x":31973.80556430952,"y":16445.931830156158},"targetPosition":{"x":32024.747010505078,"y":16893.039165210623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"5eed53d0-a3e7-4082-b7f1-cb321b3d306b"}}},{"type":"Output Dataset","name":"Multi-Period-Market Market Sell Orders","project":"Superalgos","id":"6cad3b70-d38a-46a8-ad81-899f8b2bd79f","savedPayload":{"position":{"x":32129.797424240234,"y":16455.472701031667},"targetPosition":{"x":32024.747010505078,"y":16893.039165210623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"6112bd4d-07cb-41db-98c4-e286d172b5c0"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Market Sell Orders","project":"Superalgos","id":"4fe326fe-2bc5-4808-b1f4-4d234d3ec8d8","savedPayload":{"position":{"x":32273.118653895504,"y":16517.790545280397},"targetPosition":{"x":32024.747010505078,"y":16893.039165210623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"07cd5668-5e0f-4385-9c02-72eebc99344a"}}},{"type":"Output Dataset","name":"Multi-Period-Market Limit Buy Orders","project":"Superalgos","id":"57dd9169-fc8f-4ff9-8019-bfd6c3dd62a9","savedPayload":{"position":{"x":32386.482597782826,"y":16625.368911172518},"targetPosition":{"x":32024.747010505078,"y":16893.039165210623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"b82fb0f9-74c1-42e6-961c-a696214ef079"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Limit Buy Orders","project":"Superalgos","id":"e06f03ae-e9e5-4a58-ba22-e5f0c3251de0","savedPayload":{"position":{"x":32456.215891195763,"y":16765.232260093857},"targetPosition":{"x":32024.747010505078,"y":16893.039165210623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2e03f52e-0cd2-46b4-9c10-0b8516ef9c71"}}},{"type":"Output Dataset","name":"Multi-Period-Market Limit Sell Orders","project":"Superalgos","id":"0319a6de-a73d-4a29-883b-28e473f3c5f1","savedPayload":{"position":{"x":32473.907669794917,"y":16920.511008001307},"targetPosition":{"x":32024.747010505078,"y":16893.039165210623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"356495a9-b063-495d-b06d-5281c7c0007e"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Limit Sell Orders","project":"Superalgos","id":"1e6c50d7-3828-4f96-828f-8447a99b10f1","savedPayload":{"position":{"x":32437.424043978383,"y":17072.476246226983},"targetPosition":{"x":32024.747010505078,"y":16893.039165210623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"934ab813-127e-4bbf-aa71-09b3cdadc0d0"}}}],"outputDatasetFolders":[],"id":"035fbced-8761-4dca-b634-ffae62724f7f","savedPayload":{"position":{"x":32024.747010505078,"y":16893.039165210623},"targetPosition":{"x":31714.98745144289,"y":17219.45763216615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Stages","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Trigger Stages","project":"Superalgos","id":"2faef203-7d0e-47d2-9d36-47f38ed179a6","savedPayload":{"position":{"x":32094.692494197203,"y":16587.52232016512},"targetPosition":{"x":32126.08290738206,"y":17036.426142782042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"e951c491-c864-4668-9d70-c48df90d8342"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trigger Stages","project":"Superalgos","id":"e676f3b6-e65b-42e7-84be-44c12be7f3f7","savedPayload":{"position":{"x":32250.11971749971,"y":16603.8583796098},"targetPosition":{"x":32126.08290738206,"y":17036.426142782042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ace4518d-bfe1-49e2-af7b-4ff9559fe6a9"}}},{"type":"Output Dataset","name":"Multi-Period-Market Open Stages","project":"Superalgos","id":"c8bd6875-e505-458b-afa7-80b779b7cf99","savedPayload":{"position":{"x":32390.586270913675,"y":16672.368495313316},"targetPosition":{"x":32126.08290738206,"y":17036.426142782042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"613bf56d-986e-4a94-9b39-4f0ac3300b0c"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Open Stages","project":"Superalgos","id":"3d2d5c0c-8bf1-4c5c-aa6b-8ca822df0c7c","savedPayload":{"position":{"x":32499.14981503183,"y":16784.789336220205},"targetPosition":{"x":32126.08290738206,"y":17036.426142782042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"44a0d895-2a7e-4f9a-b9a7-81dc32bf30e4"}}},{"type":"Output Dataset","name":"Multi-Period-Market Manage Stages","project":"Superalgos","id":"eec39a94-771d-4dd6-b1c0-1856a759f24a","savedPayload":{"position":{"x":32562.715984206257,"y":16927.56128976219},"targetPosition":{"x":32126.08290738206,"y":17036.426142782042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f6e10004-71dd-4ae9-8c1f-0b71de02d274"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Manage Stages","project":"Superalgos","id":"c8340bc7-1214-452e-b8b2-5d2a83e971f2","savedPayload":{"position":{"x":32573.617760297784,"y":17083.463951252485},"targetPosition":{"x":32126.08290738206,"y":17036.426142782042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"8f3984d8-e735-4dab-a9cc-51e97d704154"}}},{"type":"Output Dataset","name":"Multi-Period-Market Close Stages","project":"Superalgos","id":"c889f02f-9bba-4f5b-a1a3-70c76e5bbb22","savedPayload":{"position":{"x":32530.540228216687,"y":17233.693158837126},"targetPosition":{"x":32126.08290738206,"y":17036.426142782042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ee0f2bab-26b6-44c6-af1c-efbca2c765cd"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Close Stages","project":"Superalgos","id":"2052f35f-d3ab-425d-97b3-5b69edb3d1ef","savedPayload":{"position":{"x":32438.67917408861,"y":17360.129052934433},"targetPosition":{"x":32126.08290738206,"y":17036.426142782042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"cbd3905d-fafc-47f3-8a61-20c9aab10d86"}}}],"outputDatasetFolders":[],"id":"1b4dcc33-ac77-4f53-9a63-47e8426f3776","savedPayload":{"position":{"x":32126.08290738206,"y":17036.426142782042},"targetPosition":{"x":31714.98745144289,"y":17219.45763216615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Position","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Positions","project":"Superalgos","id":"d2c1174c-ce8a-404f-98fd-d3b91895ef6e","savedPayload":{"position":{"x":32280.26698495324,"y":16772.735420366582},"targetPosition":{"x":32164.83324768189,"y":17207.67800542761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"55df9376-2806-429d-b43d-b96700787f74"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Positions","project":"Superalgos","id":"9ca58bc6-4b21-4b70-ba5d-c6abafa3fee0","savedPayload":{"position":{"x":32398.128594080277,"y":16822.875093083047},"targetPosition":{"x":32164.83324768189,"y":17207.67800542761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"fd62b468-93fa-44e0-941f-fff7ea4b04ea"}}},{"type":"Output Dataset","name":"Multi-Period-Market Position Base Asset","project":"Superalgos","id":"57931139-936d-4ee2-99eb-9b9628321398","savedPayload":{"position":{"x":32497.090001702963,"y":16904.18920924663},"targetPosition":{"x":32164.83324768189,"y":17207.67800542761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"a0ff2796-59dd-4aa4-93ed-ba4601b9de5d"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Position Base Asset","project":"Superalgos","id":"ea9f9e0d-114d-4ed4-9b61-7d155a881969","savedPayload":{"position":{"x":32569.133943121866,"y":17010.090182759428},"targetPosition":{"x":32164.83324768189,"y":17207.67800542761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"9985d32d-c070-4593-8a2a-ec8bc1c78cbb"}}},{"type":"Output Dataset","name":"Multi-Period-Market Position Quoted Asset","project":"Superalgos","id":"57285cd0-120d-43a2-b4a8-d25bc166c6ce","savedPayload":{"position":{"x":32608.42384666504,"y":17131.998546564773},"targetPosition":{"x":32164.83324768189,"y":17207.67800542761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"abab2ab2-3a9b-49bd-8935-9bb01c113761"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Position Quoted Asset","project":"Superalgos","id":"f085adfd-36e2-4ebd-9a42-eff08f337439","savedPayload":{"position":{"x":32611.77667801347,"y":17260.038010044118},"targetPosition":{"x":32164.83324768189,"y":17207.67800542761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"40ac7181-100d-4b65-b7fd-a8103cda2300"}}},{"type":"Output Dataset","name":"Multi-Period-Market Stop Loss","project":"Superalgos","id":"09a58e0e-2309-447e-8be4-c272385c49bd","savedPayload":{"position":{"x":32578.920810711363,"y":17383.835577346366},"targetPosition":{"x":32164.83324768189,"y":17207.67800542761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"0ea22a69-e7cb-4fcf-b7ae-4b7233b196c4"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Stop Loss","project":"Superalgos","id":"19c2422b-f0f9-4714-bf28-e58897c75355","savedPayload":{"position":{"x":32512.518031726173,"y":17493.361905821177},"targetPosition":{"x":32164.83324768189,"y":17207.67800542761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"75b13383-2771-4f58-b2c4-ffadad2e9519"}}},{"type":"Output Dataset","name":"Multi-Period-Market Take Profit","project":"Superalgos","id":"8555e8dd-5892-435e-9051-a8ac0d901815","savedPayload":{"position":{"x":32417.94789929874,"y":17579.743823713678},"targetPosition":{"x":32164.83324768189,"y":17207.67800542761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"3cd59aa1-0590-43b6-9fb7-c85276ac132e"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Take Profit","project":"Superalgos","id":"fd77d264-2a52-4b8a-9a85-2510a1cb6f68","savedPayload":{"position":{"x":32302.871923128107,"y":17635.98318176926},"targetPosition":{"x":32164.83324768189,"y":17207.67800542761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"916d5610-87ae-47e7-9067-9a406141e3df"}}}],"outputDatasetFolders":[],"id":"31ecd1c1-4248-4b51-9066-e6c6b9c4a819","savedPayload":{"position":{"x":32164.83324768189,"y":17207.67800542761},"targetPosition":{"x":31714.98745144289,"y":17219.45763216615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"059498d1-eae4-4842-8846-8d21b32ab139","savedPayload":{"position":{"x":31720.98745144289,"y":17219.45763216615},"targetPosition":{"x":31559.721874147504,"y":17639.568824089893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f50da2e7-a341-4272-9947-db65142b1e23","savedPayload":{"position":{"x":31559.721874147504,"y":17639.568824089893},"targetPosition":{"x":31742.753363531614,"y":18050.664280029065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Low Frequency Trading","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"e7fd528f-46bb-4a13-a11f-b6994236e3e7","savedPayload":{"position":{"x":31378.695716062884,"y":17420.09793772923},"targetPosition":{"x":31789.791172002057,"y":17603.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a8577e6c-9afc-4c9e-87ef-ee38531de864"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"0517c2f1-627f-44e2-b58d-6d3f72d6c931","savedPayload":{"position":{"x":31455.376000537228,"y":17302.020654251854},"targetPosition":{"x":31789.791172002057,"y":17603.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"0b6d7ced-ccef-4a98-909c-443125480c10","savedPayload":{"position":{"x":31564.791172002057,"y":17213.417995410342},"targetPosition":{"x":31789.791172002057,"y":17603.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[],"dataMineDataDependencies":[{"type":"Data Mine Data Dependencies","name":"Masters","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"Webhooks","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"External Signals Single File","project":"Superalgos","id":"4d262c83-ea85-4c13-b2c2-e06273f0dce3","savedPayload":{"position":{"x":30801.16120530262,"y":17068.887389842243},"targetPosition":{"x":31248.696058218342,"y":17115.925198312685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Single File","id":"c52d1012-5e3b-41a0-b5af-84098b0594bf"}}}],"dataDependencyFolders":[],"id":"6b94d500-7c95-4178-b714-a13261f88ddf","savedPayload":{"position":{"x":31248.696058218342,"y":17115.925198312685},"targetPosition":{"x":31696.230911134066,"y":17162.963006783128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Candles Volumes","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"d49e652b-79c6-409b-abac-22604b4e88aa","savedPayload":{"position":{"x":30895.424023491894,"y":17204.931517399018},"targetPosition":{"x":31285.135455194893,"y":16979.931517399018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}},{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"16310d45-0ce4-4c0d-a307-c205aeb48e64","savedPayload":{"position":{"x":30837.60060227917,"y":16932.893708928576},"targetPosition":{"x":31285.135455194893,"y":16979.931517399018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Daily","project":"Superalgos","id":"1f7365be-a68e-491a-8446-32ba2ea0e7a3","savedPayload":{"position":{"x":30950.720283730065,"y":16678.82274453753},"targetPosition":{"x":31285.135455194893,"y":16979.931517399018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2e683057-f911-4105-bc77-16f2706d1915"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Market","project":"Superalgos","id":"3cf1d63c-155a-45ae-a2b3-36faabb5ea9f","savedPayload":{"position":{"x":31191.575194326902,"y":16539.765097068805},"targetPosition":{"x":31285.135455194893,"y":16979.931517399018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1"}}}],"dataDependencyFolders":[],"id":"c226ac3e-1e4d-48fc-8b5e-27ea871abeeb","savedPayload":{"position":{"x":31285.135455194893,"y":16979.931517399018},"targetPosition":{"x":31696.230911134066,"y":17162.963006783128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Bollinger Bands","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"af7dc60c-d5d2-433b-ab09-fd37c61654a7","savedPayload":{"position":{"x":30921.649319339023,"y":16955.41449478963},"targetPosition":{"x":31361.815739669237,"y":16861.85423392164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f5b2a7d8-fc32-44a3-a002-9b0fc30a9719"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"a7dd4c24-e5b3-4ddf-b350-44c5ef206eea","savedPayload":{"position":{"x":30950.720283730065,"y":16678.82274453753},"targetPosition":{"x":31361.815739669237,"y":16861.85423392164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"506104fa-e99a-4a46-930e-176bce311aff"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"eeb73829-8815-4e9d-be40-80ce46049381","savedPayload":{"position":{"x":31136.815739669237,"y":16472.14280221864},"targetPosition":{"x":31361.815739669237,"y":16861.85423392164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"207e9481-0730-4304-a938-cfe223d70856"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"05418e2b-de4a-4855-ad43-82dd22c5ab57","savedPayload":{"position":{"x":31408.85354813968,"y":16414.319381005917},"targetPosition":{"x":31361.815739669237,"y":16861.85423392164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e60d62dd-87f7-4f2d-ac21-3ac5c30a50ea"}}}],"dataDependencyFolders":[],"id":"42a0318e-15de-4d4f-937a-aa93c8bf6799","savedPayload":{"position":{"x":31361.815739669237,"y":16861.85423392164},"targetPosition":{"x":31696.230911134066,"y":17162.963006783128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Bollinger Channels","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"38f62ac3-67a7-4bfe-bede-7c64ffce5585","savedPayload":{"position":{"x":31028.06742227857,"y":16851.39325503025},"targetPosition":{"x":31471.230911134066,"y":16773.25157508013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"610cd062-ab88-4892-b711-0fb430305c61"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"63c7dc87-60f4-450b-b03f-460e24871381","savedPayload":{"position":{"x":31028.06742227857,"y":16695.10989513001},"targetPosition":{"x":31471.230911134066,"y":16773.25157508013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"64910fea-c92a-4a55-850a-aa62d98b478e"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"31fd8b9d-5d0f-4df7-9db8-a92565e93280","savedPayload":{"position":{"x":31081.519479431066,"y":16548.25157508013},"targetPosition":{"x":31471.230911134066,"y":16773.25157508013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"22c1f2c6-3838-4657-add8-2e01d7056917"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"3edfa5d9-1267-45df-95a7-d6a0fabf0dc5","savedPayload":{"position":{"x":31181.976486775122,"y":16428.53157567659},"targetPosition":{"x":31471.230911134066,"y":16773.25157508013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"96b4e65b-e6db-44a0-80a5-ceb9d68a09ec"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"ac0cddc1-4817-45fa-a960-038a8f014fa2","savedPayload":{"position":{"x":31317.321846637515,"y":16350.389895726468},"targetPosition":{"x":31471.230911134066,"y":16773.25157508013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"869f615e-0cc0-44fd-8648-4a951c23a410"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"37ed91b7-4a0a-4f56-af52-697b97e866cf","savedPayload":{"position":{"x":31471.230911134066,"y":16323.251575080129},"targetPosition":{"x":31471.230911134066,"y":16773.25157508013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"029479ae-275d-4854-ad3e-66948656a053"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"82e17882-4e77-47d6-8ac4-709232f21771","savedPayload":{"position":{"x":31625.139975630616,"y":16350.389895726468},"targetPosition":{"x":31471.230911134066,"y":16773.25157508013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"f8d44a4d-3771-4a71-97ca-dc604ff565d3"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"a592c4ef-e086-4081-9c99-7c557376627d","savedPayload":{"position":{"x":31760.48533549301,"y":16428.53157567659},"targetPosition":{"x":31471.230911134066,"y":16773.25157508013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"ca71e765-0f66-4b18-b500-847b9d16169b"}}}],"dataDependencyFolders":[],"id":"5b8b4ab5-f886-4639-89e5-c8c4eca90f9c","savedPayload":{"position":{"x":31471.230911134066,"y":16773.25157508013},"targetPosition":{"x":31696.230911134066,"y":17162.963006783128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Candle Channels","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"1470209a-172e-40ca-bec0-25f57eb4ee5c","savedPayload":{"position":{"x":31191.575194326902,"y":16539.765097068805},"targetPosition":{"x":31602.670650266075,"y":16722.796586452914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"df7d1cd7-95b0-499c-b51a-772c3fb8a2b0"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"81c48ba3-d186-4b22-8981-752d3d28e554","savedPayload":{"position":{"x":31377.670650266075,"y":16333.085154749915},"targetPosition":{"x":31602.670650266075,"y":16722.796586452914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"07734f1c-e2e7-4a35-8567-6a996c68883e"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"f72351b7-367b-459e-a297-b5abec7155f8","savedPayload":{"position":{"x":31649.708458736517,"y":16275.26173353719},"targetPosition":{"x":31602.670650266075,"y":16722.796586452914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"566b9df4-da86-4b4f-a3f4-ef8a76443714"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"c1d62c3f-6345-4ff9-9170-26a7ff91d1f2","savedPayload":{"position":{"x":31903.779423127562,"y":16388.381414988085},"targetPosition":{"x":31602.670650266075,"y":16722.796586452914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"8a7d224b-7571-4e1a-8b8f-8a35aa25dc63"}}}],"dataDependencyFolders":[],"id":"4e734cf8-48e2-49a7-836f-b1249bef2547","savedPayload":{"position":{"x":31602.670650266075,"y":16722.796586452914},"targetPosition":{"x":31696.230911134066,"y":17162.963006783128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Resistances and Supports","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"f7bf772f-37d3-47a8-a243-a158e2efa091","savedPayload":{"position":{"x":31408.85354813968,"y":16414.319381005917},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"44e905fc-719f-453b-a567-fd5e3bfcae91"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"39757544-c0bc-4ccf-b786-fc961d845db0","savedPayload":{"position":{"x":31649.708458736517,"y":16275.26173353719},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f4530d48-3239-4ab0-8c4d-d611cd55fde3"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"70ed349c-815a-4eef-b06b-5c8690bf5268","savedPayload":{"position":{"x":31926.300208988618,"y":16304.332697928232},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4a1bd251-76ed-4530-8723-08e41d50f12d"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"b7b2012d-6b3a-4a81-a841-0b08061a6b60","savedPayload":{"position":{"x":32132.980151307507,"y":16490.428153867404},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"deaaf4ec-9352-40b6-af9a-8541a73a5e13"}}}],"dataDependencyFolders":[],"id":"955c58c7-5e4f-4f91-9a12-0c6a81fb9ba0","savedPayload":{"position":{"x":31743.268719604508,"y":16715.428153867404},"targetPosition":{"x":31696.230911134066,"y":17162.963006783128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Fees Band","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"05b4030f-7240-4f9c-a03a-45591d7c9079","savedPayload":{"position":{"x":31832.224592047733,"y":16304.332697928232},"targetPosition":{"x":31879.262400518175,"y":16751.867550843956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9c699a57-f0cf-434c-8ef8-40aac182200e"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"93dee846-2d29-46f7-8298-bc17475a360d","savedPayload":{"position":{"x":32243.3200479869,"y":16487.36418731234},"targetPosition":{"x":31879.262400518175,"y":16751.867550843956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2dd03ed7-736e-4959-ad8e-8108e59b8796"}}}],"dataDependencyFolders":[],"id":"dc1f8f70-5255-48aa-945a-c6ca9d9eb9cf","savedPayload":{"position":{"x":31879.262400518175,"y":16751.867550843956},"targetPosition":{"x":31696.230911134066,"y":17162.963006783128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Volume Analysis","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"943209e4-1d8c-4a82-a6c3-51fb0a92a848","savedPayload":{"position":{"x":32090.899944863544,"y":16388.381414988085},"targetPosition":{"x":31997.339683995553,"y":16828.5478353183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"1d4df142-34c0-4439-a532-208c56cbb349"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"489ed763-0358-4ad6-8b67-27479e37456d","savedPayload":{"position":{"x":32425.315116328373,"y":16689.490187849573},"targetPosition":{"x":31997.339683995553,"y":16828.5478353183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"cccbe688-75e9-405c-a087-8c1bb953430f"}}}],"dataDependencyFolders":[],"id":"967f32f4-bf9a-48ee-b029-0aac6d7f6c6f","savedPayload":{"position":{"x":31997.339683995553,"y":16828.5478353183},"targetPosition":{"x":31696.230911134066,"y":17162.963006783128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Candle Analysis","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"f28c08ba-4f8e-4f1d-a8d6-9b448332ca91","savedPayload":{"position":{"x":32310.942342837065,"y":16548.25157508013},"targetPosition":{"x":32085.942342837065,"y":16937.963006783128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f65e4bf0-df3b-414c-aeba-f21dadb5d7ec"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"6f2baf08-d5ba-4e97-99a0-d3b1860779ae","savedPayload":{"position":{"x":32535.942342837065,"y":16937.963006783128},"targetPosition":{"x":32085.942342837065,"y":16937.963006783128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2127b8f1-932e-41c4-8eb9-1e0b6f02c2ec"}}}],"dataDependencyFolders":[],"id":"9372e4cf-b684-4535-b1db-0806cb0f21cd","savedPayload":{"position":{"x":32085.942342837065,"y":16937.963006783128},"targetPosition":{"x":31696.230911134066,"y":17162.963006783128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bb373fba-6e46-49cb-96f3-3993b0fabddf","savedPayload":{"position":{"x":31696.230911134066,"y":17162.963006783128},"targetPosition":{"x":31789.791172002057,"y":17603.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Masters","id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959"}}},{"type":"Data Mine Data Dependencies","name":"Sparta","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"SMA","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Popular SMAs Multi-Period-Market","project":"Superalgos","id":"f6c100bb-6d55-4413-885a-cf72c0c88737","savedPayload":{"position":{"x":31138.356161538944,"y":17118.989164867744},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"3b21f9d7-2cbc-4c23-80c8-cc5e5b06a22c"}}},{"type":"Data Dependency","name":"Popular SMAs Multi-Period-Daily","project":"Superalgos","id":"f222eb9d-03d7-4d07-8359-eab4175236f8","savedPayload":{"position":{"x":31091.3183530685,"y":17037.51729072024},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2c338fe0-385f-45ab-b210-b98ef013228d"}}},{"type":"Data Dependency","name":"Base7 SMAs Multi-Period-Market","project":"Superalgos","id":"f6916d88-c2c3-47b1-b1e2-17b07cc7f806","savedPayload":{"position":{"x":31062.247388677457,"y":16948.04606220412},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"78a6ef37-4df8-4ac8-83a0-c9a732467c59"}}},{"type":"Data Dependency","name":"Base7 SMAs Multi-Period-Daily","project":"Superalgos","id":"3ef5ba50-e0e4-43e3-9ff6-7e5a38cdb27a","savedPayload":{"position":{"x":31052.41380900767,"y":16854.48580133613},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f155e2ed-7082-4021-a4ff-a6f3cfd5683d"}}},{"type":"Data Dependency","name":"Base11 SMAs Multi-Period-Market","project":"Superalgos","id":"c54592c1-b3ff-4e26-afd7-2c99a41bc480","savedPayload":{"position":{"x":31062.247388677457,"y":16760.92554046814},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"af9b9cef-2a74-486f-b79e-047d68669a1f"}}},{"type":"Data Dependency","name":"Base11 SMAs Multi-Period-Daily","project":"Superalgos","id":"da27910b-25c6-4353-aaa6-11833ceff9e2","savedPayload":{"position":{"x":31091.3183530685,"y":16671.45431195202},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"de5cfa30-edbf-4d5b-8d7f-facfb69a0f3e"}}},{"type":"Data Dependency","name":"Base5 SMAs Muti-Period-Market","project":"Superalgos","id":"94e0b16a-5479-41cc-ac49-c3731d7649a7","savedPayload":{"position":{"x":31138.356161538944,"y":16589.982437804516},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Muti-Period-Market","id":"a5d28568-fb58-469a-9820-b9f0e8eab705"}}},{"type":"Data Dependency","name":"Base5 SMAs Multi-Period-Daily","project":"Superalgos","id":"f53b92bf-81a9-460c-8606-d7393f7ea1b9","savedPayload":{"position":{"x":31201.305036146183,"y":16520.0706298713},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"01f32aa3-55e9-4f8c-80c7-997b52073274"}}},{"type":"Data Dependency","name":"Base6 SMAs Multi-Period-Market","project":"Superalgos","id":"7255a015-bcba-46cc-bce3-a086bde7cd9c","savedPayload":{"position":{"x":31277.41380900767,"y":16464.77436963313},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"c0862b3d-d35a-4d3e-8d80-258b8a01c37c"}}},{"type":"Data Dependency","name":"Base6 SMAs Multi-Period-Daily","project":"Superalgos","id":"7d125034-419a-4213-99f9-17ee742b5060","savedPayload":{"position":{"x":31363.356161538944,"y":16426.51036900331},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f5050eb2-0a99-464e-b5e2-2d8f40453e9a"}}},{"type":"Data Dependency","name":"Base12 SMAs Multi-Period-Market","project":"Superalgos","id":"40e2db15-fa28-4e7f-a06f-55db43a82c9b","savedPayload":{"position":{"x":31455.376000537228,"y":16406.950948420406},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"6ba76363-0f50-4e67-8678-3eb4fd6d07d6"}}},{"type":"Data Dependency","name":"Base12 SMAs Multi-Period-Daily","project":"Superalgos","id":"4428af09-2752-4150-8a93-e67835f9f153","savedPayload":{"position":{"x":31549.451617478113,"y":16406.950948420406},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"92d92b3e-6870-499b-bfec-33bab220bf62"}}},{"type":"Data Dependency","name":"Base30 SMAs Multi-Period-Market","project":"Superalgos","id":"22181196-5218-4820-97e8-7e5611db578a","savedPayload":{"position":{"x":31641.471456476396,"y":16426.51036900331},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4c486321-22e0-4991-9a1c-571bada649ad"}}},{"type":"Data Dependency","name":"Base30 SMAs Multi-Period-Daily","project":"Superalgos","id":"43064f0e-46fb-4ddf-9aa1-2e60cfc2bcdd","savedPayload":{"position":{"x":31727.41380900767,"y":16464.77436963313},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"819688c9-c7bd-444b-9658-2a4379125c72"}}}],"dataDependencyFolders":[],"id":"865ca804-48d0-453f-859b-59da94c60e7f","savedPayload":{"position":{"x":31502.41380900767,"y":16854.48580133613},"targetPosition":{"x":31836.8289804725,"y":17155.594574197617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"EMA","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"45ed8174-7f73-4ef4-9b97-c7fdd06d3440","savedPayload":{"position":{"x":31293.268719604508,"y":16715.428153867404},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ea1af06a-2584-43f0-aecf-ec8ad9169e9c"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"896fadd1-75bd-4c5f-9ee6-e0bb01aef101","savedPayload":{"position":{"x":31303.102299274295,"y":16621.867892999413},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e7f5899c-fc4c-412d-a8db-77c1bef8ed21"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"fede78a8-c43d-466b-bdbd-37e06a3f5c1b","savedPayload":{"position":{"x":31332.173263665336,"y":16532.396664483294},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"85e3f0ce-5331-4c0b-900a-e73aaf53d96e"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"7b1ed9bd-230c-416f-a429-53162bee94c6","savedPayload":{"position":{"x":31379.211072135782,"y":16450.92479033579},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e04edb48-09ab-4f92-beb7-14ba647de7d6"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"9baa62ae-c198-46b7-8ac0-4e682cac04d1","savedPayload":{"position":{"x":31442.15994674302,"y":16381.012982402575},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"6b6840f7-3b76-474a-9d27-9515cbcd6499"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"cb48a108-c578-4423-a809-b93fe5dc1178","savedPayload":{"position":{"x":31518.268719604508,"y":16325.716722164405},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ef3d5a7d-11eb-4ead-8e24-49ac7c80b0c7"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"6c98f48d-b32a-4afa-b6e2-f5879d75d2cb","savedPayload":{"position":{"x":31604.211072135782,"y":16287.452721534584},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4e36a5a5-7a03-43a9-b3e0-0c5763c29199"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"f8ffaf2b-65bc-4000-8d70-6a5bd073330e","savedPayload":{"position":{"x":31696.230911134066,"y":16267.89330095168},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"15ccbcff-318d-46db-93f2-d649b57fd52a"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"1474cd98-5fa6-40cb-997b-c845639bb284","savedPayload":{"position":{"x":31790.30652807495,"y":16267.89330095168},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5586aa74-2ecb-4b71-83ea-d621aa400660"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"523d76b3-5cb7-43a2-84d3-2cd9e416f4cd","savedPayload":{"position":{"x":31882.326367073234,"y":16287.452721534584},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"0198fa3f-98e3-4c57-a4a4-a7a8e27905d3"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"116353fa-9a96-4b92-aae0-3360a555417e","savedPayload":{"position":{"x":31968.268719604508,"y":16325.716722164405},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ea61dfed-8f93-4b4f-8575-61ca2547ea90"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"3bed9aac-6c45-43d3-8886-f415cf8e2a0c","savedPayload":{"position":{"x":32044.377492465996,"y":16381.012982402575},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b251aca0-1996-4d13-99ed-6fb9796ec8d6"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"c6c3542a-4fac-429b-9887-d4aa78602149","savedPayload":{"position":{"x":32107.326367073234,"y":16450.92479033579},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"dea3491f-aae7-4419-a98f-108cf5d69b87"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"c6efe95b-6f58-4916-b879-eafe896d42fe","savedPayload":{"position":{"x":32154.36417554368,"y":16532.396664483294},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"6624337b-4afd-44b8-a2ea-3f1779ddda7e"}}}],"dataDependencyFolders":[],"id":"c4bcaef1-029d-42a2-adaf-c89bd5e340ed","savedPayload":{"position":{"x":31743.268719604508,"y":16715.428153867404},"targetPosition":{"x":31836.8289804725,"y":17155.594574197617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"MACD","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"4ebcee82-fb06-48c5-bd00-be086fe9b10d","savedPayload":{"position":{"x":31696.157559704217,"y":16431.902851551895},"targetPosition":{"x":32019.86046985661,"y":16744.499118258445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"01d43ed0-2a80-4eca-bee6-db2fe40470fc"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"dc57c67e-aee7-43e5-812c-1a2b6f4b0523","savedPayload":{"position":{"x":31822.593453801524,"y":16340.041797423819},"targetPosition":{"x":32019.86046985661,"y":16744.499118258445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"dd5d3067-ff7b-4353-ba4f-c030bd3da796"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"929cdf22-03cf-4808-87c9-410788b306ff","savedPayload":{"position":{"x":31972.822661386166,"y":16296.964265342722},"targetPosition":{"x":32019.86046985661,"y":16744.499118258445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"19b1d791-d2ea-4f25-a6e1-fe0a64450745"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"6acc9176-a33a-4d95-a065-8a7f278d3d7b","savedPayload":{"position":{"x":32128.72532287646,"y":16307.866041434248},"targetPosition":{"x":32019.86046985661,"y":16744.499118258445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ec2611a6-699b-45a5-beec-679dd4b7734a"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"0cc6f43f-ed39-4ff4-9811-cc3ad841bc42","savedPayload":{"position":{"x":32271.497276418446,"y":16371.432210608677},"targetPosition":{"x":32019.86046985661,"y":16744.499118258445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"c390cbd3-0ba0-4507-8614-42c88f4ce7e6"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"756737a7-a6c7-4f2a-845b-2881814537d2","savedPayload":{"position":{"x":32383.918117325335,"y":16479.99575472683},"targetPosition":{"x":32019.86046985661,"y":16744.499118258445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"29e18539-f188-4d29-9531-25cd3ee8f282"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"a4c788e6-3c63-46a3-b752-f584eab5213b","savedPayload":{"position":{"x":32452.42823302885,"y":16620.462308140795},"targetPosition":{"x":32019.86046985661,"y":16744.499118258445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"89254c6c-9be2-4037-b063-467edc660d10"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"ba2ac8fe-e021-444d-957e-84be68d6f918","savedPayload":{"position":{"x":32468.76429247353,"y":16775.889531443303},"targetPosition":{"x":32019.86046985661,"y":16744.499118258445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"8a9dde13-e4b8-40f3-80bc-ea51050b2f08"}}}],"dataDependencyFolders":[],"id":"cc197aba-39d0-4736-8c2b-bda6eb134bf0","savedPayload":{"position":{"x":32019.86046985661,"y":16744.499118258445},"targetPosition":{"x":31836.8289804725,"y":17155.594574197617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"RSI","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"d346bec8-3710-4295-8953-20350461715c","savedPayload":{"position":{"x":32451.5404121755,"y":16540.88314249462},"targetPosition":{"x":32226.5404121755,"y":16930.594574197617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5ec62760-e144-4496-98ab-0415a4b315ec"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"3e7e6c8d-9473-49b2-b2fd-4a3f6dc58edc","savedPayload":{"position":{"x":32676.5404121755,"y":16930.594574197617},"targetPosition":{"x":32226.5404121755,"y":16930.594574197617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f1556d09-f134-4678-83fb-04002d1dcd34"}}}],"dataDependencyFolders":[],"id":"285b291e-023c-4c30-9739-b75f72e47ef8","savedPayload":{"position":{"x":32226.5404121755,"y":16930.594574197617},"targetPosition":{"x":31836.8289804725,"y":17155.594574197617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"35f72951-fd87-499a-9094-2674c68386c3","savedPayload":{"position":{"x":31836.8289804725,"y":17155.594574197617},"targetPosition":{"x":31789.791172002057,"y":17603.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Sparta","id":"9cfffc48-486a-48cb-b641-98c82e314d3a"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"Super Trend","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"aa25c359-b0ad-471a-9beb-2f36a5343e25","savedPayload":{"position":{"x":31297.22384191538,"y":16644.944834321333},"targetPosition":{"x":31708.319297854552,"y":16827.976323705443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7c8e7a6f-99c8-4d90-9f44-e3e9e909eb88"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"75981994-324a-46e8-bb53-fa2d3ce6d2ca","savedPayload":{"position":{"x":31661.28148938411,"y":16380.44147078972},"targetPosition":{"x":31708.319297854552,"y":16827.976323705443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"c17b5d3f-7cf7-418a-92b8-f8c67a120446"}}}],"dataDependencyFolders":[],"id":"182ce481-aaa7-4eb6-a941-87ea4bd18e5f","savedPayload":{"position":{"x":31708.319297854552,"y":16827.976323705443},"targetPosition":{"x":31972.822661386166,"y":17192.03397117417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Wave Trend","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"b5de16ef-ce7e-4dc2-9719-0715ed9b6de7","savedPayload":{"position":{"x":31661.28148938411,"y":16380.44147078972},"targetPosition":{"x":31925.784852915724,"y":16744.499118258445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9b727bdd-1684-43e1-a39c-fbd14ce64828"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"3ab774f7-128d-4d79-870d-eeedeb53674e","savedPayload":{"position":{"x":32108.816342299833,"y":16333.403662319273},"targetPosition":{"x":31925.784852915724,"y":16744.499118258445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"3bf983d5-4d3c-46f8-a130-9e621b76e62d"}}}],"dataDependencyFolders":[],"id":"afd3b0b9-8d11-4d78-a777-de60564a8162","savedPayload":{"position":{"x":31925.784852915724,"y":16744.499118258445},"targetPosition":{"x":31972.822661386166,"y":17192.03397117417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Donchian Channel","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"1a048d09-ae81-4514-a9bd-605420d81ba4","savedPayload":{"position":{"x":32108.816342299833,"y":16333.403662319273},"targetPosition":{"x":32155.854150770276,"y":16780.938515234997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7298225c-3b68-4f34-a935-fc0ab3d8f662"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"981bf6e9-f3e9-4818-9db0-f97924723a2b","savedPayload":{"position":{"x":32519.911798239,"y":16516.435151703383},"targetPosition":{"x":32155.854150770276,"y":16780.938515234997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"50ed783e-0e71-4903-8a82-854c8bd2ed6e"}}}],"dataDependencyFolders":[],"id":"cb76ca1e-8d5e-4155-a830-105e5b2e9591","savedPayload":{"position":{"x":32155.854150770276,"y":16780.938515234997},"targetPosition":{"x":31972.822661386166,"y":17192.03397117417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"DMI Directional Movement","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"dc3dfe16-1717-4205-84bc-cfb4901cd882","savedPayload":{"position":{"x":32519.911798239,"y":16516.435151703383},"targetPosition":{"x":32336.880308854892,"y":16927.530607642555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ffc7f78b-9ec3-4218-b76f-47233d535a17"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"475e4ca7-1deb-400d-8f00-2cb436ccf866","savedPayload":{"position":{"x":32784.415161770616,"y":16880.492799172112},"targetPosition":{"x":32336.880308854892,"y":16927.530607642555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"9b222dca-e8c2-4392-9c3e-7c970dca4a52"}}}],"dataDependencyFolders":[],"id":"b5dc9ede-b1c0-4c9d-8af3-47dca243d9ae","savedPayload":{"position":{"x":32336.880308854892,"y":16927.530607642555},"targetPosition":{"x":31972.822661386166,"y":17192.03397117417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Ichimoku Cloud","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"c077f92a-4899-4a01-961c-da5c6a460ed4","savedPayload":{"position":{"x":32784.415161770616,"y":16880.492799172112},"targetPosition":{"x":32420.35751430189,"y":17144.996162703726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"80018870-2528-42bf-a3a7-6f0b5e44d9c9"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"2ae91f5c-28de-40d1-93ba-89e50bca120b","savedPayload":{"position":{"x":32831.452970241065,"y":17328.027652087836},"targetPosition":{"x":32420.35751430189,"y":17144.996162703726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ef8da44c-8cc5-41fc-add6-f2feff945632"}}}],"dataDependencyFolders":[],"id":"bb7bd319-2d2a-4ee7-af94-e21613f73543","savedPayload":{"position":{"x":32420.35751430189,"y":17144.996162703726},"targetPosition":{"x":31972.822661386166,"y":17192.03397117417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4753c44e-2dfa-48c4-8e93-159d17f4511b","savedPayload":{"position":{"x":31972.822661386166,"y":17192.03397117417},"targetPosition":{"x":31789.791172002057,"y":17603.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Zeus","id":"d2083ac0-43e2-41e4-83c7-eb09a6f29353"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"ATR","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"0bd705dc-9278-4d39-b266-f142a556c94c","savedPayload":{"position":{"x":31689.94700897878,"y":16574.24339925219},"targetPosition":{"x":32067.34876455422,"y":16819.330965008954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"67695466-be2d-43b4-9824-83baa7a08412"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"0681e9a9-9895-4420-aa40-598f1474919a","savedPayload":{"position":{"x":31906.083187258835,"y":16399.219773085213},"targetPosition":{"x":32067.34876455422,"y":16819.330965008954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e3d0bccf-5f97-4902-92df-4ac8fe8c41a8"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"e59288bb-e428-4686-837f-1475ae86f7b0","savedPayload":{"position":{"x":32183.81733485035,"y":16384.664343178873},"targetPosition":{"x":32067.34876455422,"y":16819.330965008954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2570d2c7-72e3-4131-97dc-a9f97f493e93"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"75de7f05-ae08-462d-9840-c7e8ce83db21","savedPayload":{"position":{"x":32417.064447209857,"y":16536.136789036525},"targetPosition":{"x":32067.34876455422,"y":16819.330965008954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"93eb665f-d903-4825-9fb1-2783e917ac89"}}}],"dataDependencyFolders":[],"id":"fb94c6f8-1001-49ee-95fb-300c10e94c7d","savedPayload":{"position":{"x":32067.34876455422,"y":16819.330965008954},"targetPosition":{"x":32090.899944863544,"y":17268.714255648512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"ROC","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"06cc9d0c-7a8d-4da0-8ab8-1724352c44f0","savedPayload":{"position":{"x":32221.357259531214,"y":16517.912148970387},"targetPosition":{"x":32392.00871772503,"y":16934.299084183684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"40268fec-e5e8-4b05-9f27-c4072ebda94a"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"4384ac6e-1f40-426a-baea-42e353612ffd","savedPayload":{"position":{"x":32418.9205870003,"y":16485.104525788203},"targetPosition":{"x":32392.00871772503,"y":16934.299084183684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"cb60d68b-b11d-4317-8830-65c212a8c728"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"f44fb6a3-2dee-47ad-850b-37fb02cc7d82","savedPayload":{"position":{"x":32611.153688706996,"y":16541.265393905975},"targetPosition":{"x":32392.00871772503,"y":16934.299084183684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"41a488be-c66c-458d-99fc-490b9e8172ef"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"727b8b9a-b93b-4c75-bfe7-24e5a5117140","savedPayload":{"position":{"x":32759.982441274027,"y":16675.27140462513},"targetPosition":{"x":32392.00871772503,"y":16934.299084183684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"30276899-0d68-40e3-9c35-a28442485b55"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"d62366e0-983c-44f4-8091-0c5d35c7fd3a","savedPayload":{"position":{"x":32835.929484990615,"y":16860.58102404687},"targetPosition":{"x":32392.00871772503,"y":16934.299084183684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9c6b7d85-01f5-449c-a5be-9a357b6588bc"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"68de0e1d-b715-457f-8317-3de7f4a95ba7","savedPayload":{"position":{"x":32823.95257641933,"y":17060.491409371385},"targetPosition":{"x":32392.00871772503,"y":16934.299084183684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"66f59b6d-9d4b-4cef-9ffd-aed019219809"}}}],"dataDependencyFolders":[],"id":"b9d44070-286a-4e06-a1b1-e8f0a4c443cb","savedPayload":{"position":{"x":32392.00871772503,"y":16934.299084183684},"targetPosition":{"x":32090.899944863544,"y":17268.714255648512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Stochastic","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"4e1b5819-e232-4e83-b823-adaaea13f6be","savedPayload":{"position":{"x":32917.68499107854,"y":17000.075509582424},"targetPosition":{"x":32540.283235503102,"y":17245.163075339187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"88b1ff0e-ad99-474c-8833-7b76a5a57ebd"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"e326bbc5-5a60-47a7-bc0c-f5cbf73ed6f4","savedPayload":{"position":{"x":32941.23617138786,"y":17449.458800221983},"targetPosition":{"x":32540.283235503102,"y":17245.163075339187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"4b941e0d-8b0a-41e2-bc20-54e0bc0d936a"}}}],"dataDependencyFolders":[],"id":"8906261a-12ed-426f-9e61-e3364d3416f9","savedPayload":{"position":{"x":32540.283235503102,"y":17245.163075339187},"targetPosition":{"x":32090.899944863544,"y":17268.714255648512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"590a75c2-4bf6-48e0-9d78-161dde4ab1dd","savedPayload":{"position":{"x":32090.899944863544,"y":17268.714255648512},"targetPosition":{"x":31789.791172002057,"y":17603.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Alpha","id":"511bef1e-62d8-4ff9-8d87-15bd0d3d630c"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"Candles Probabilities","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"701b2fe3-63a4-42ea-8258-a6ccfbb4dda1","savedPayload":{"position":{"x":32404.502603705056,"y":16538.417995410342},"targetPosition":{"x":32404.502603705056,"y":16988.417995410342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"85c67513-347a-4948-9121-dee04543fcff"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"ad078b3b-3e2f-41d4-b47d-0276b121a9e1","savedPayload":{"position":{"x":32794.214035408055,"y":16763.417995410342},"targetPosition":{"x":32404.502603705056,"y":16988.417995410342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"fa17370b-0a9c-4350-9cce-1df4be39b58c"}}}],"dataDependencyFolders":[],"id":"9661bd50-2f23-4064-b92c-969cc5c43a8a","savedPayload":{"position":{"x":32404.502603705056,"y":16988.417995410342},"targetPosition":{"x":32179.502603705056,"y":17378.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Candles Channels Probabilities","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"ef21ded7-724f-4808-92ee-0aea97adb1b6","savedPayload":{"position":{"x":33019.214035408055,"y":17153.12942711334},"targetPosition":{"x":32629.502603705056,"y":17378.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"fdee2b9c-3036-4db2-af42-b3507a6ffacf"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"94b23c10-760f-470a-b662-a81279f667b3","savedPayload":{"position":{"x":33019.214035408055,"y":17603.12942711334},"targetPosition":{"x":32629.502603705056,"y":17378.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2774470d-7382-48e3-bd0a-957f0332a698"}}}],"dataDependencyFolders":[],"id":"2463d929-6149-4723-8ef0-7dd9705bb5c6","savedPayload":{"position":{"x":32629.502603705056,"y":17378.12942711334},"targetPosition":{"x":32179.502603705056,"y":17378.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"90d6ef9d-8d5b-48ec-b593-ac9b45bfc3d7","savedPayload":{"position":{"x":32179.502603705056,"y":17378.12942711334},"targetPosition":{"x":31789.791172002057,"y":17603.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Samurai","id":"37e312af-e076-47aa-a1cd-bf5b2e16127d"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"Candle Patterns","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"aeae278a-dfe9-4eb8-ae40-43221dd83c16","savedPayload":{"position":{"x":32732.751908094513,"y":16970.388274443652},"targetPosition":{"x":32670.124012662483,"y":17416.00890537736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"07be5b9b-e8fd-49fc-ab77-20f89fdea10f"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"9eb1255c-faa0-43da-9931-9f72fe2025bb","savedPayload":{"position":{"x":32881.386215916136,"y":17018.682488590843},"targetPosition":{"x":32670.124012662483,"y":17416.00890537736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"9e6d7f95-b2fe-466e-9a5d-175479cbf85d"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"67d4fcaf-7a5d-4cbc-ba27-c7bf56bb4ea4","savedPayload":{"position":{"x":33004.53918412731,"y":17114.90013251587},"targetPosition":{"x":32670.124012662483,"y":17416.00890537736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"144d8665-1ff0-4db3-9340-a33fd7d0d098"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"0c6208be-27c6-49f8-a96f-9eac016daeb5","savedPayload":{"position":{"x":33087.356747217535,"y":17247.435938340197},"targetPosition":{"x":32670.124012662483,"y":17416.00890537736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f0a11771-dd69-4b9a-9347-7cb2d1f231ff"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"6bea13b9-5a49-4bd0-9f6d-e592b48a8d82","savedPayload":{"position":{"x":33119.84988482107,"y":17400.304131861234},"targetPosition":{"x":32670.124012662483,"y":17416.00890537736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"8c35ce52-9dee-4d20-92e6-50ba7fd2882b"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"4b02fcb4-0e38-45c8-b0a9-c10556b57f0c","savedPayload":{"position":{"x":33098.0994449953,"y":17555.066552846085},"targetPosition":{"x":32670.124012662483,"y":17416.00890537736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"4f1260c8-6d74-454e-963a-fa3ff910329c"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"f4aae5aa-54ac-44b2-a9f2-f96e558d6d17","savedPayload":{"position":{"x":33024.728851785505,"y":17693.056569273904},"targetPosition":{"x":32670.124012662483,"y":17416.00890537736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"087fc67e-78f9-4204-ba5e-8b670566a716"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"b4b47d84-e4d2-459d-b13e-a4fc62985b46","savedPayload":{"position":{"x":32908.58768156743,"y":17797.63054864775},"targetPosition":{"x":32670.124012662483,"y":17416.00890537736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b60cb94f-79c5-410c-b166-abc97d0f2bc3"}}}],"dataDependencyFolders":[],"id":"2a036cda-055e-409e-a588-a08134c16ecf","savedPayload":{"position":{"x":32670.124012662483,"y":17416.00890537736},"targetPosition":{"x":32229.95759233227,"y":17509.56916624535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"61739442-c10b-49af-a5a2-ece01fa74fdd","savedPayload":{"position":{"x":32229.95759233227,"y":17509.56916624535},"targetPosition":{"x":31789.791172002057,"y":17603.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Buddha","id":"38d04c99-51a6-4c1c-853e-ba67e216854b"}}}],"id":"5175cccd-58ed-40d8-8e0d-1a234d7460eb","savedPayload":{"position":{"x":31789.791172002057,"y":17603.12942711334},"targetPosition":{"x":31742.753363531614,"y":18050.664280029065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"a8577e6c-9afc-4c9e-87ef-ee38531de864","savedPayload":{"position":{"x":32007.256727063228,"y":17686.60663256034},"targetPosition":{"x":31742.753363531614,"y":18050.664280029065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"","project":"Superalgos","id":"a47d063a-c7b9-40d9-8d77-26cead472b6c","savedPayload":{"position":{"x":32153.848819470786,"y":17867.632790644955},"targetPosition":{"x":31742.753363531614,"y":18050.664280029065},"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":"dd185847-d39a-4501-8863-f906716b5f79","savedPayload":{"position":{"x":32190.288216447338,"y":18097.702088499507},"targetPosition":{"x":31742.753363531614,"y":18050.664280029065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a8c8d761-96e5-4a86-9285-6c3881d61442","savedPayload":{"position":{"x":31742.753363531614,"y":18050.664280029065},"targetPosition":{"x":31478.25,"y":18414.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"products":[],"productDefinitionFolders":[{"type":"Product Definition Folder","name":"Trading Engine","project":"Superalgos","products":[],"productDefinitionFolders":[{"type":"Product Definition Folder","name":"Trading Episode","project":"Superalgos","products":[{"type":"Product Definition","name":"Trading Episode Counters","config":"{\n \"codeName\": \"Trading-Episode-Counters\",\n \"singularVariableName\": \"tradingEpisodeCounter\",\n \"pluralVariableName\": \"tradingEpisodeCounters\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.tradingEpisodeCounters\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"3ed03a02-381d-43fe-9faa-761728c53bd8","savedPayload":{"position":{"x":31390.24978958454,"y":17559.898479475254},"targetPosition":{"x":31612.16404993042,"y":17597.034190793907},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"15f5b150-f1cf-403c-8cb9-2c7c4e1db8e8","savedPayload":{"position":{"x":31421.353228295222,"y":17477.802356341435},"targetPosition":{"x":31612.16404993042,"y":17597.034190793907},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"f0032eaa-4b31-4e39-84c1-5e5957f21ba9","savedPayload":{"position":{"x":30917.214015916616,"y":17350.939476768777},"targetPosition":{"x":31350.847719860496,"y":17230.682207533562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"baf72135-2aa6-4be6-b673-09151eeea3e6","savedPayload":{"position":{"x":30902.234919680588,"y":17195.375614456032},"targetPosition":{"x":31350.847719860496,"y":17230.682207533562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{\n \"codeName\": \"periods\",\n \"isString\": false\n}","project":"Superalgos","id":"4274f7bf-7f70-4775-8d30-fc56153f70fc","savedPayload":{"position":{"x":30941.36514796605,"y":17044.070248338256},"targetPosition":{"x":31350.847719860496,"y":17230.682207533562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Strategies","config":"{\n \"codeName\": \"strategies\",\n \"isString\": false\n}","project":"Superalgos","id":"10f5cc85-e009-4feb-9eba-8997ccc46ba5","savedPayload":{"position":{"x":31029.885017741115,"y":16915.27303859863},"targetPosition":{"x":31350.847719860496,"y":17230.682207533562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Positions","config":"{\n \"codeName\": \"positions\",\n \"isString\": false\n}","project":"Superalgos","id":"d3aaaeb9-d602-4188-a594-372d67545aed","savedPayload":{"position":{"x":31157.117726296765,"y":16824.518829576125},"targetPosition":{"x":31350.847719860496,"y":17230.682207533562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Orders","config":"{\n \"codeName\": \"orders\",\n \"isString\": false\n}","project":"Superalgos","id":"2be38b73-1ea0-4e08-ae4a-9caaa44e486f","savedPayload":{"position":{"x":31307.717131226396,"y":16782.753918268332},"targetPosition":{"x":31350.847719860496,"y":17230.682207533562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hits","config":"{\n \"codeName\": \"hits\",\n \"isString\": false\n}","project":"Superalgos","id":"bb822003-abbb-4748-8d18-02c67a33e24f","savedPayload":{"position":{"x":31463.518721684995,"y":16795.015769363414},"targetPosition":{"x":31350.847719860496,"y":17230.682207533562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fails","config":"{\n \"codeName\": \"fails\",\n \"isString\": false\n}","project":"Superalgos","id":"e114274f-a7ba-47e4-b0d3-710b5bd7fcd9","savedPayload":{"position":{"x":31605.73052647667,"y":16859.825422653656},"targetPosition":{"x":31350.847719860496,"y":17230.682207533562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"72e8a046-c0a4-4402-b1b9-c6a65b759515","savedPayload":{"position":{"x":31350.847719860496,"y":17230.682207533562},"targetPosition":{"x":31612.16404993042,"y":17597.034190793907},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"d81c6019-864e-42f5-94ba-2f249b865f85","savedPayload":{"position":{"x":31618.16404993042,"y":17597.034190793907},"targetPosition":{"x":31999.78569320081,"y":17835.49785969885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Trading Episode Counters","id":"5e478e3f-e432-4364-8f2c-2f3b2849848b"}}},{"type":"Product Definition","name":"Trading Episode Statistics","config":"{\n \"codeName\": \"Trading-Episode-Statistics\",\n \"singularVariableName\": \"tradingEpisodeStatistics\",\n \"pluralVariableName\": \"tradingEpisodeStatistics\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.tradingEpisodeStatistics\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"fc9dc0f7-35e0-4548-bb91-f920825d694f","savedPayload":{"position":{"x":31526.90799771779,"y":17370.097719552545},"targetPosition":{"x":31722.738029304266,"y":17480.893020575826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"91953362-8751-4440-a898-21245cd47c15","savedPayload":{"position":{"x":31584.214197355992,"y":17303.590601014315},"targetPosition":{"x":31722.738029304266,"y":17480.893020575826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"8a268555-b786-4756-9e5c-7a190c3ae37e","savedPayload":{"position":{"x":31152.531880072063,"y":17040.476589344475},"targetPosition":{"x":31602.48076006905,"y":17047.259316631946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"ef14e964-9f33-4b53-bf44-bd81c386319d","savedPayload":{"position":{"x":31172.668886327287,"y":16913.986089048183},"targetPosition":{"x":31602.48076006905,"y":17047.259316631946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss","config":"{\n \"codeName\": \"profitLoss\",\n \"isString\": false\n}","project":"Superalgos","id":"360e05d7-340f-4975-93f2-b15835e975d2","savedPayload":{"position":{"x":31227.62669440343,"y":16798.292593044327},"targetPosition":{"x":31602.48076006905,"y":17047.259316631946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{\n \"codeName\": \"days\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"72167f7d-b29e-4f27-a68c-4a3fa3d7c321","savedPayload":{"position":{"x":31312.952949536833,"y":16702.768900323423},"targetPosition":{"x":31602.48076006905,"y":17047.259316631946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI","config":"{\n \"codeName\": \"ROI\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"2e89519e-eab5-4656-ade5-3a18eb1cf07f","savedPayload":{"position":{"x":31421.735025991366,"y":16635.15377236844},"targetPosition":{"x":31602.48076006905,"y":17047.259316631946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Annualized Rate Of Return","config":"{ \n\"codeName\": \"annualizedRateOfReturn\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"9177857b-5e67-4e42-a874-b0e1633ad45d","savedPayload":{"position":{"x":31545.160046884605,"y":16600.924984723646},"targetPosition":{"x":31602.48076006905,"y":17047.259316631946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail","config":"{\n \"codeName\": \"hitFail\",\n \"isString\": true\n}","project":"Superalgos","id":"81ebbfbf-23c5-4156-b1b4-0f0f35dc1d03","savedPayload":{"position":{"x":31673.228851060638,"y":16602.855550197586},"targetPosition":{"x":31602.48076006905,"y":17047.259316631946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"8356215e-6e31-45d0-bd78-ba080d2258de","savedPayload":{"position":{"x":31795.566065659634,"y":16640.78906585707},"targetPosition":{"x":31602.48076006905,"y":17047.259316631946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"59b47d20-5679-4889-8c1f-7853aa68f4a0","savedPayload":{"position":{"x":31902.260657122206,"y":16711.65238386267},"targetPosition":{"x":31602.48076006905,"y":17047.259316631946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"df7dbe99-16e8-42ad-9c8b-5acdf3b63f05","savedPayload":{"position":{"x":31984.668864185227,"y":16809.70457962996},"targetPosition":{"x":31602.48076006905,"y":17047.259316631946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c0f124f4-1e7d-4d06-94fd-b547257b4061","savedPayload":{"position":{"x":31602.48076006905,"y":17047.259316631946},"targetPosition":{"x":31722.738029304266,"y":17480.893020575826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"400c7f49-37da-41fb-b83d-879960aa74ff","savedPayload":{"position":{"x":31722.738029304266,"y":17480.893020575826},"targetPosition":{"x":31999.78569320081,"y":17835.49785969885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Trading Episode Statistics","id":"6ce18a43-2e6a-452e-a72d-1c56a58d3f81"}}},{"type":"Product Definition","name":"Episode Candle","config":"{\n \"codeName\": \"Episode-Candle\",\n \"singularVariableName\": \"episodeCandle\",\n \"pluralVariableName\": \"episodeCandles\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\",\n \"saveAtCycle\": \"Second\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"17fb41f5-61b5-4433-9a10-950ff8216a7e","savedPayload":{"position":{"x":31708.602234857794,"y":17236.431085106025},"targetPosition":{"x":31854.728045732085,"y":17407.52242736603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"bbc9467d-28bf-432b-9e49-582d1bcabfb9","savedPayload":{"position":{"x":31785.199221997722,"y":17193.534711199623},"targetPosition":{"x":31854.728045732085,"y":17407.52242736603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\"\n}","project":"Superalgos","id":"9ffe3183-b249-41b6-8e57-56b5d5023376","savedPayload":{"position":{"x":31489.08170292485,"y":16754.61390230333},"targetPosition":{"x":31890.034638809615,"y":16958.909627186124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\"\n}","project":"Superalgos","id":"b7b61cc0-b94d-40cb-abe1-047463675f5b","savedPayload":{"position":{"x":31597.783017061032,"y":16616.726942666108},"targetPosition":{"x":31890.034638809615,"y":16958.909627186124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Open","config":"{\n \"codeName\": \"open\",\n \"isString\": false\n}","project":"Superalgos","id":"f93f3ac6-8420-401c-9921-2229d02f5832","savedPayload":{"position":{"x":31750.97699134089,"y":16530.934194853304},"targetPosition":{"x":31890.034638809615,"y":16958.909627186124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Close","config":"{\n \"codeName\": \"close\",\n \"isString\": false\n}","project":"Superalgos","id":"86935367-3d64-4ad2-8171-be1368ca0a8d","savedPayload":{"position":{"x":31925.341231887145,"y":16510.296827006216},"targetPosition":{"x":31890.034638809615,"y":16958.909627186124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Min","config":"{\n \"codeName\": \"min\",\n \"isString\": false\n}","project":"Superalgos","id":"e5bad869-4386-48a6-b434-36253eaf7f48","savedPayload":{"position":{"x":32094.33036369241,"y":16557.95669130136},"targetPosition":{"x":31890.034638809615,"y":16958.909627186124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Max","config":"{\n \"codeName\": \"max\",\n \"isString\": false\n}","project":"Superalgos","id":"9c960e9d-7d1f-440b-9e5a-76e81f5a8e29","savedPayload":{"position":{"x":32232.21732332963,"y":16666.65800543754},"targetPosition":{"x":31890.034638809615,"y":16958.909627186124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Index","config":"{ \n\"codeName\": \"index\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"67d251d5-a236-42e7-8b34-4a5276e64d25","savedPayload":{"position":{"x":32318.010071142435,"y":16819.851979717398},"targetPosition":{"x":31890.034638809615,"y":16958.909627186124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d52a6d09-8b78-49db-a525-48a82991fcbc","savedPayload":{"position":{"x":31890.034638809615,"y":16958.909627186124},"targetPosition":{"x":31854.728045732085,"y":17407.52242736603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"b9a58113-cf27-4d57-9810-87a2cc158804","savedPayload":{"position":{"x":31860.728045732085,"y":17407.52242736603},"targetPosition":{"x":31999.78569320081,"y":17835.49785969885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Candle","id":"31789d43-d608-4eeb-a3ff-338a99074045"}}},{"type":"Product Definition","name":"Episode Balances","config":"{\n \"codeName\": \"Episode-Balances\",\n \"singularVariableName\": \"episodeBalance\",\n \"pluralVariableName\": \"episodeBalances\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"acddff59-b51b-4b45-b58f-71d4077755ee","savedPayload":{"position":{"x":31930.693805933555,"y":17175.02074495937},"targetPosition":{"x":32009.490466716936,"y":17385.771987540258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"213b8fe8-f772-41ea-a3f5-97867be555f7","savedPayload":{"position":{"x":32017.342853475,"y":17160.90905146096},"targetPosition":{"x":32009.490466716936,"y":17385.771987540258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"c9e3558a-d9e9-4466-97fb-c0e9ec3752c1","savedPayload":{"position":{"x":31875.13972379286,"y":16660.88024671088},"targetPosition":{"x":32196.102425912242,"y":16976.289415645813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"bfb43790-48a8-4437-a191-9f4c396504fb","savedPayload":{"position":{"x":32002.37243234851,"y":16570.126037688377},"targetPosition":{"x":32196.102425912242,"y":16976.289415645813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Balance Base Asset","config":"{ \n\"codeName\": \"balanceBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"balance\",\n \"decimals\": 10\n}","project":"Superalgos","id":"7658d8bf-a4e0-490e-a3ae-df3bef72e491","savedPayload":{"position":{"x":32152.971837278143,"y":16528.361126380583},"targetPosition":{"x":32196.102425912242,"y":16976.289415645813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Balance Quoted Asset","config":"{ \n\"codeName\": \"balanceQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"balance\",\n \"decimals\": 10\n}","project":"Superalgos","id":"1f5cf49c-7040-4cee-b525-83810013a4fb","savedPayload":{"position":{"x":32308.77342773674,"y":16540.622977475665},"targetPosition":{"x":32196.102425912242,"y":16976.289415645813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Balance Base Asset","config":"{ \n\"codeName\": \"beginBalanceBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"beginBalance\",\n \"decimals\": 10\n}","project":"Superalgos","id":"b2e41c55-b66c-4895-b2a8-82b9cf53bfa1","savedPayload":{"position":{"x":32450.985232528416,"y":16605.432630765907},"targetPosition":{"x":32196.102425912242,"y":16976.289415645813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Balance Quoted Asset","config":"{ \n\"codeName\": \"beginBalanceQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"beginBalance\",\n \"decimals\": 10\n}","project":"Superalgos","id":"121b09db-2f3d-43c9-a271-e716a66f019b","savedPayload":{"position":{"x":32562.454409172587,"y":16714.97308557589},"targetPosition":{"x":32196.102425912242,"y":16976.289415645813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Balance Base Asset","config":"{ \n\"codeName\": \"endBalanceBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"endBalance\",\n \"decimals\": 10\n}","project":"Superalgos","id":"14f17c26-2832-4aa6-b39f-05acc8c3626f","savedPayload":{"position":{"x":32629.736129856123,"y":16856.0321464106},"targetPosition":{"x":32196.102425912242,"y":16976.289415645813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Balance Quoted Asset","config":"{ \n\"codeName\": \"endBalanceQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"endBalance\",\n \"decimals\": 10\n}","project":"Superalgos","id":"b8d553ad-2dfb-4db7-b858-b086daeee2a6","savedPayload":{"position":{"x":32644.71522609215,"y":17011.596008723343},"targetPosition":{"x":32196.102425912242,"y":16976.289415645813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0755daf6-8847-48c4-9013-394ddb96a89b","savedPayload":{"position":{"x":32196.102425912242,"y":16976.289415645813},"targetPosition":{"x":32009.490466716936,"y":17385.771987540258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"a9a53d82-133b-4417-b639-f9a56d338233","savedPayload":{"position":{"x":32015.490466716936,"y":17385.771987540258},"targetPosition":{"x":31999.78569320081,"y":17835.49785969885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Episode Balances","id":"e5d9e3e1-d1f4-4493-b452-33fe49c81228"}}},{"type":"Product Definition","name":"Distance To Trading Event","config":"{\n \"codeName\": \"Distance-To-Trading-Event\",\n \"singularVariableName\": \"distanceToTradingEvent\",\n \"pluralVariableName\": \"distanceToTradingEvents\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.distanceToTradingEvent\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0ef6aa1d-3345-40f8-bc4f-4d2e2ff199ff","savedPayload":{"position":{"x":32160.395189750838,"y":17193.273692454357},"targetPosition":{"x":32162.358660237973,"y":17418.265125143796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"c291211b-4012-4440-a302-8e15412b0990","savedPayload":{"position":{"x":32246.645143756552,"y":17209.64875786627},"targetPosition":{"x":32162.358660237973,"y":17418.265125143796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"0235ad32-fd46-41eb-b875-ae81f3ce48c5","savedPayload":{"position":{"x":32249.37556584059,"y":16709.56930082573},"targetPosition":{"x":32477.767829172906,"y":17097.302423024415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"9d6c01fa-af2b-4d51-9aa4-f169c53e63b3","savedPayload":{"position":{"x":32357.51055993769,"y":16663.668719080535},"targetPosition":{"x":32477.767829172906,"y":17097.302423024415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Trigger On","config":"{ \n\"codeName\": \"triggerOn\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7e17fb3f-495f-49c5-9b41-6869155b99fc","savedPayload":{"position":{"x":32473.84088819864,"y":16647.31955764554},"targetPosition":{"x":32477.767829172906,"y":17097.302423024415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Trigger Off","config":"{ \n\"codeName\": \"triggerOff\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"9de32719-925a-4796-b562-379323cb4d82","savedPayload":{"position":{"x":32590.438830997406,"y":16661.635984854267},"targetPosition":{"x":32477.767829172906,"y":17097.302423024415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Take Position","config":"{ \n\"codeName\": \"takePosition\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e4276497-b218-4b18-b089-70fcc5806fa3","savedPayload":{"position":{"x":32699.358431219465,"y":16705.64235985146},"targetPosition":{"x":32477.767829172906,"y":17097.302423024415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Close Position","config":"{ \n\"codeName\": \"closePosition\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"4793082b-ddc8-4246-bb0e-c7f6340da600","savedPayload":{"position":{"x":32793.17699810784,"y":16776.339720905034},"targetPosition":{"x":32477.767829172906,"y":17097.302423024415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Phase","config":"{ \n\"codeName\": \"nextPhase\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"0ada00bc-9398-47a0-9659-63b0838b81d7","savedPayload":{"position":{"x":32865.50095137159,"y":16868.9101596921},"targetPosition":{"x":32477.767829172906,"y":17097.302423024415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Move To Phase","config":"{ \n\"codeName\": \"moveToPhase\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"9020e64b-d301-49f6-bc6c-cb8086730b19","savedPayload":{"position":{"x":32911.40153311679,"y":16977.0451537892},"targetPosition":{"x":32477.767829172906,"y":17097.302423024415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Create Order","config":"{ \n\"codeName\": \"createOrder\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"906c1925-caab-4db6-8fec-06845a13fd0a","savedPayload":{"position":{"x":32927.75069455178,"y":17093.37548205015},"targetPosition":{"x":32477.767829172906,"y":17097.302423024415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Cancel Order","config":"{ \n\"codeName\": \"cancelOrder\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e864d723-5ad5-4bbd-ad7b-0f975d480ee3","savedPayload":{"position":{"x":32913.43426734305,"y":17209.973424848915},"targetPosition":{"x":32477.767829172906,"y":17097.302423024415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Close Order","config":"{ \n\"codeName\": \"closeOrder\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f5be374b-36e6-484c-bd78-6e126e3020fb","savedPayload":{"position":{"x":32869.42789234586,"y":17318.893025070975},"targetPosition":{"x":32477.767829172906,"y":17097.302423024415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0c3c5d0b-6072-4e57-bff9-9823e0f79b5b","savedPayload":{"position":{"x":32477.767829172906,"y":17097.302423024415},"targetPosition":{"x":32162.358660237973,"y":17418.265125143796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"8ea88d6c-7d7f-4152-b781-ea108df52c63","savedPayload":{"position":{"x":32168.358660237973,"y":17418.265125143796},"targetPosition":{"x":31999.78569320081,"y":17835.49785969885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Distance To Trading Event","id":"56eb7de2-0281-404a-bd4d-34ac113e2325"}}},{"type":"Product Definition","name":"Episode Base Asset","config":"{\n \"codeName\": \"Episode-BaseAsset\",\n \"singularVariableName\": \"episodeBaseAsset\",\n \"pluralVariableName\": \"episodeBaseAssets\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"e8b67591-d484-4c08-a711-7a4418ee101a","savedPayload":{"position":{"x":32370.001009389896,"y":17288.98835273828},"targetPosition":{"x":32294.8944660623,"y":17501.082688234022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"c6f34adc-2863-4ce6-8379-9b3cc1b37b73","savedPayload":{"position":{"x":32445.448852493042,"y":17333.87510250161},"targetPosition":{"x":32294.8944660623,"y":17501.082688234022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"2d706d6c-f204-4209-bda6-20f6bccef1fb","savedPayload":{"position":{"x":32642.321057520712,"y":16861.202507052076},"targetPosition":{"x":32701.057844019735,"y":17307.35269467029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"45aadf3c-c609-42fc-95dd-400968a950dd","savedPayload":{"position":{"x":32783.0638304912,"y":16864.887986266513},"targetPosition":{"x":32701.057844019735,"y":17307.35269467029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hits","config":"{\n \"codeName\": \"hits\",\n \"isString\": false\n}","project":"Superalgos","id":"16a724af-e57e-4e5b-9f8f-597ade0521d8","savedPayload":{"position":{"x":32915.77928613656,"y":16911.884993972406},"targetPosition":{"x":32701.057844019735,"y":17307.35269467029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fails","config":"{\n \"codeName\": \"fails\",\n \"isString\": false\n}","project":"Superalgos","id":"94c63c77-f7e4-4d15-bb6c-6b49bb600b10","savedPayload":{"position":{"x":33027.47631097527,"y":16997.593135608102},"targetPosition":{"x":32701.057844019735,"y":17307.35269467029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Ratio","config":"{\n \"codeName\": \"hitRatio\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"0b91b798-b30f-46f5-935b-1e4dac8dfee0","savedPayload":{"position":{"x":33107.221221977175,"y":17113.62270110656},"targetPosition":{"x":32701.057844019735,"y":17307.35269467029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI","config":"{\n \"codeName\": \"ROI\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"db2cd2b2-5c5f-4eef-874a-201059d80ea0","savedPayload":{"position":{"x":33147.20803163795,"y":17248.61590817127},"targetPosition":{"x":32701.057844019735,"y":17307.35269467029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss","config":"{ \n\"codeName\": \"profitLoss\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"c4bb2bd0-02a8-47de-9fa8-c2b87776e36f","savedPayload":{"position":{"x":33143.522552423514,"y":17389.35868114176},"targetPosition":{"x":32701.057844019735,"y":17307.35269467029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Annualized Rate Of Return","config":"{ \n\"codeName\": \"annualizedRateOfReturn\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"432a1f4e-283a-4276-b436-42ef167dd9e7","savedPayload":{"position":{"x":33096.52554471762,"y":17522.074136787116},"targetPosition":{"x":32701.057844019735,"y":17307.35269467029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail","config":"{ \n\"codeName\": \"hitFail\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"08161b1c-ad52-4c01-88b1-8cd8ed077b6b","savedPayload":{"position":{"x":33010.81740308192,"y":17633.77116162582},"targetPosition":{"x":32701.057844019735,"y":17307.35269467029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e2ea652a-5508-4eef-998a-8cb0b2fac0a7","savedPayload":{"position":{"x":32701.057844019735,"y":17307.35269467029},"targetPosition":{"x":32294.8944660623,"y":17501.082688234022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"234969ff-eab1-4d59-b6fa-79433c9a20e9","savedPayload":{"position":{"x":32300.8944660623,"y":17501.082688234022},"targetPosition":{"x":31999.78569320081,"y":17835.49785969885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Episode Base Asset","id":"a99b25e6-7aca-41a2-aacc-1911aac2ee3e"}}},{"type":"Product Definition","name":"Episode Quoted Asset","config":"{\n \"codeName\": \"Episode-QuotedAsset\",\n \"singularVariableName\": \"episodeQuotedAsset\",\n \"pluralVariableName\": \"episodeQuotedAssets\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"99d1f17b-92cb-4544-88a2-fe463dd1de4b","savedPayload":{"position":{"x":32540.229709549825,"y":17450.620125182966},"targetPosition":{"x":32397.112109987327,"y":17624.235656445202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"daf4e3e9-426d-44c3-8b43-6849778d972f","savedPayload":{"position":{"x":32595.775318380587,"y":17518.604554818376},"targetPosition":{"x":32397.112109987327,"y":17624.235656445202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"408f6716-f1a1-4f7f-924c-c5c0d9bb814d","savedPayload":{"position":{"x":32942.438225524704,"y":17141.771864607133},"targetPosition":{"x":32845.04039925255,"y":17581.105067811102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"b07f31ed-986d-4b45-bd05-017e3d9268bd","savedPayload":{"position":{"x":33073.43266258488,"y":17193.371945612416},"targetPosition":{"x":32845.04039925255,"y":17581.105067811102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hits","config":"{\n \"codeName\": \"hits\",\n \"isString\": false\n}","project":"Superalgos","id":"709ed8fc-94d8-4f8c-977a-fa865c43a83e","savedPayload":{"position":{"x":33182.07047360761,"y":17282.926046114022},"targetPosition":{"x":32845.04039925255,"y":17581.105067811102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fails","config":"{\n \"codeName\": \"fails\",\n \"isString\": false\n}","project":"Superalgos","id":"d874a492-fb07-4704-8589-73f864040da9","savedPayload":{"position":{"x":33257.71743272586,"y":17401.667986794742},"targetPosition":{"x":32845.04039925255,"y":17581.105067811102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Ratio","config":"{\n \"codeName\": \"hitRatio\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"4ad7e208-1cfb-402d-89d6-3ca98832f2f9","savedPayload":{"position":{"x":33292.96868851779,"y":17537.974479177003},"targetPosition":{"x":32845.04039925255,"y":17581.105067811102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI","config":"{\n \"codeName\": \"ROI\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"02d21bbe-a2b9-4d61-9ee6-243f21208c9f","savedPayload":{"position":{"x":33284.37360245653,"y":17678.50289408325},"targetPosition":{"x":32845.04039925255,"y":17581.105067811102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss","config":"{ \n\"codeName\": \"profitLoss\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"d78850bc-4017-4a14-b7a2-4efb03156596","savedPayload":{"position":{"x":33232.77352145124,"y":17809.49733114342},"targetPosition":{"x":32845.04039925255,"y":17581.105067811102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Annualized Rate Of Return","config":"{ \n\"codeName\": \"annualizedRateOfReturn\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"51e1f4b1-fe6a-4125-ae19-a34859928ab0","savedPayload":{"position":{"x":33143.21942094964,"y":17918.135142166153},"targetPosition":{"x":32845.04039925255,"y":17581.105067811102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail","config":"{ \n\"codeName\": \"hitFail\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"cb125657-fff3-49bc-99d5-393d2baaec15","savedPayload":{"position":{"x":33024.47748026892,"y":17993.782101284407},"targetPosition":{"x":32845.04039925255,"y":17581.105067811102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e5dde8e0-9f3d-4d58-878b-316e2888384f","savedPayload":{"position":{"x":32845.04039925255,"y":17581.105067811102},"targetPosition":{"x":32397.112109987327,"y":17624.235656445202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"ae525e31-d6a8-47d2-9021-3f2ddb9615b0","savedPayload":{"position":{"x":32397.112109987327,"y":17624.235656445202},"targetPosition":{"x":31999.78569320081,"y":17835.49785969885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Episode Quoted Asset","id":"ede92318-db13-4951-83b1-11fc0345d677"}}},{"type":"Product Definition","name":"Current Episode","config":"{\n \"codeName\": \"Current-Episode\",\n \"singularVariableName\": \"currentEpisode\",\n \"pluralVariableName\": \"currentEpisodes\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode\",\n \"saveAtCycle\": \"Second\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"26f6b248-21de-4898-9ee5-58b728a04267","savedPayload":{"position":{"x":32639.272885233862,"y":17658.673832600663},"targetPosition":{"x":32445.406324134517,"y":17772.86996426682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"ecdfe444-00e6-4ad4-a482-14b59a1e752a","savedPayload":{"position":{"x":32668.21663960137,"y":17741.556016550807},"targetPosition":{"x":32445.406324134517,"y":17772.86996426682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"fb250d69-0a1d-44db-a823-6ce600fabc5c","savedPayload":{"position":{"x":33102.663364351225,"y":17493.880902918365},"targetPosition":{"x":32881.07276230467,"y":17885.54096609132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"1e3e49d8-8494-474c-85df-93d080271a32","savedPayload":{"position":{"x":33196.4819312396,"y":17564.57826397194},"targetPosition":{"x":32881.07276230467,"y":17885.54096609132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\"\n}","project":"Superalgos","id":"8da52905-c159-42b2-81eb-bcdb0e82213c","savedPayload":{"position":{"x":33268.80588450335,"y":17657.148702759005},"targetPosition":{"x":32881.07276230467,"y":17885.54096609132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\"\n}","project":"Superalgos","id":"3fb36608-3225-4e84-9e7c-deb0cd4e0c90","savedPayload":{"position":{"x":33314.70646624855,"y":17765.283696856106},"targetPosition":{"x":32881.07276230467,"y":17885.54096609132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"dc27dfcd-81f7-4796-94bf-9552681c5781","savedPayload":{"position":{"x":33331.05562768354,"y":17881.614025117055},"targetPosition":{"x":32881.07276230467,"y":17885.54096609132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f2738fa9-e225-49ba-adce-8e3f5490ae79","savedPayload":{"position":{"x":33316.73920047481,"y":17998.21196791582},"targetPosition":{"x":32881.07276230467,"y":17885.54096609132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"0bfb640f-7160-4f9f-9a37-a93ad21ac304","savedPayload":{"position":{"x":33272.73282547762,"y":18107.13156813788},"targetPosition":{"x":32881.07276230467,"y":17885.54096609132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"66977e9f-19c3-445e-baec-72fd24bcfd4f","savedPayload":{"position":{"x":33202.03546442404,"y":18200.950135026254},"targetPosition":{"x":32881.07276230467,"y":17885.54096609132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Cycle","config":"{ \n\"codeName\": \"cycle\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"2e9b2ae9-fa39-4767-8f15-918680491022","savedPayload":{"position":{"x":33109.46502563698,"y":18273.274088290007},"targetPosition":{"x":32881.07276230467,"y":17885.54096609132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Head Of The Market","config":"{ \n\"codeName\": \"headOfTheMarket\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"87f75619-ada5-4a35-851c-901776e8dd53","savedPayload":{"position":{"x":33001.33003153988,"y":18319.1746700352},"targetPosition":{"x":32881.07276230467,"y":17885.54096609132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Process Date","config":"{ \n\"codeName\": \"processDate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"aa739894-963f-4535-b4c4-d057e185ad9c","savedPayload":{"position":{"x":32884.99970327893,"y":18335.523831470196},"targetPosition":{"x":32881.07276230467,"y":17885.54096609132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"973a9bbe-dcc2-4df3-acef-63999441e21f","savedPayload":{"position":{"x":32881.07276230467,"y":17885.54096609132},"targetPosition":{"x":32445.406324134517,"y":17772.86996426682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"b8da0132-ba28-46ec-aa54-eb9eaac56ce7","savedPayload":{"position":{"x":32445.406324134517,"y":17772.86996426682},"targetPosition":{"x":31999.78569320081,"y":17835.49785969885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Episode","id":"bf241117-1c2c-470c-a172-b86b2befa9a2"}}}],"productDefinitionFolders":[],"id":"6e3006f3-06dc-4cc6-a8fc-51f0e99ca9eb","savedPayload":{"position":{"x":31999.78569320081,"y":17835.49785969885},"targetPosition":{"x":31906.22543233282,"y":18275.664280029065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Strategy","project":"Superalgos","products":[{"type":"Product Definition","name":"Current Strategy","config":"{\n \"codeName\": \"Current-Strategy\",\n \"singularVariableName\": \"currentStrategy\",\n \"pluralVariableName\": \"currentStrategies\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategy\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"7b4550d3-69d1-41ac-bad3-e2283f798bb8","savedPayload":{"position":{"x":32259.891472826566,"y":17279.850334032133},"targetPosition":{"x":32300.8944660623,"y":17501.082688234022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"49d55660-71e9-4c5a-8b1a-198934844e4a","savedPayload":{"position":{"x":32347.674596496294,"y":17280.999478068916},"targetPosition":{"x":32300.8944660623,"y":17501.082688234022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"3808ed7c-4ae4-4ad8-8ea8-237ee2f8cc8c","savedPayload":{"position":{"x":32256.694360143218,"y":16793.99769003847},"targetPosition":{"x":32555.77727267847,"y":17130.225903354116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"c8b93e25-fe0e-450a-bcc7-262a06936372","savedPayload":{"position":{"x":32345.849844242268,"y":16732.19264495708},"targetPosition":{"x":32555.77727267847,"y":17130.225903354116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"702327c6-5dfe-4ab0-bce1-750637a4b863","savedPayload":{"position":{"x":32447.205547426875,"y":16693.519846061696},"targetPosition":{"x":32555.77727267847,"y":17130.225903354116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"a152bb71-b294-48e7-bf9c-9be7510c8461","savedPayload":{"position":{"x":32554.871044640942,"y":16680.226815854214},"targetPosition":{"x":32555.77727267847,"y":17130.225903354116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Strategy Name","config":"{ \n\"codeName\": \"strategyName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"35b9d166-f366-4601-a472-5e8d74be8f82","savedPayload":{"position":{"x":32662.589208534544,"y":16693.0860969321},"targetPosition":{"x":32555.77727267847,"y":17130.225903354116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Index","config":"{ \n\"codeName\": \"index\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"dcdb4018-97ea-4bb8-9e55-5efa00ab8404","savedPayload":{"position":{"x":32764.09985096178,"y":16731.350354620685},"targetPosition":{"x":32555.77727267847,"y":17130.225903354116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"c2ac38c8-3bc5-4359-8f92-510263b841d1","savedPayload":{"position":{"x":32853.50354236095,"y":16792.795809348034},"targetPosition":{"x":32555.77727267847,"y":17130.225903354116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"1ae37227-35b8-4abc-a42b-aa0c42fa9fc2","savedPayload":{"position":{"x":32925.60446515714,"y":16873.851474630526},"targetPosition":{"x":32555.77727267847,"y":17130.225903354116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"288b5fed-0d4b-4b85-9cb5-802c2ff30ca7","savedPayload":{"position":{"x":32976.212375793606,"y":16969.806689827303},"targetPosition":{"x":32555.77727267847,"y":17130.225903354116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"3802817a-f022-4762-9ff4-412d42f22316","savedPayload":{"position":{"x":33002.38612645645,"y":17075.08488661414},"targetPosition":{"x":32555.77727267847,"y":17130.225903354116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"97832d1b-40b4-4fc3-9e52-ec3beacf164e","savedPayload":{"position":{"x":33002.60459389485,"y":17183.567678864467},"targetPosition":{"x":32555.77727267847,"y":17130.225903354116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategy.strategyCounters\"\n}","project":"Superalgos","id":"d219dca7-ae8f-422d-a90a-f86b617a76e2","savedPayload":{"position":{"x":32976.85508157538,"y":17288.950441011595},"targetPosition":{"x":32555.77727267847,"y":17130.225903354116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a4bce1f3-c9cc-470d-b271-1190684aff6f","savedPayload":{"position":{"x":32555.77727267847,"y":17130.225903354116},"targetPosition":{"x":32300.8944660623,"y":17501.082688234022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"895d8a04-ef45-41a7-909a-ba31013ffb90","savedPayload":{"position":{"x":32300.8944660623,"y":17501.082688234022},"targetPosition":{"x":32207.334205194307,"y":17941.249108564236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Strategy","id":"a3c31000-1b82-4fe9-ae56-6d5893582b16"}}},{"type":"Product Definition","name":"Last Strategy","config":"{\n \"codeName\": \"Last-Strategy\",\n \"singularVariableName\": \"lastStrategy\",\n \"pluralVariableName\": \"lastStrategies\",\n \"nodePath\": \"tradingEngine.tradingLast.strategy\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a2e7b5d2-8556-4c58-b2f6-a9c27c939e94","savedPayload":{"position":{"x":32806.40097978713,"y":17656.06565022122},"targetPosition":{"x":32635.309637527127,"y":17802.19146109551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"76ff2401-1d4f-4dda-87f6-5e0b7af3eab2","savedPayload":{"position":{"x":32849.29735369353,"y":17732.662637361147},"targetPosition":{"x":32635.309637527127,"y":17802.19146109551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"02e1c6bb-e984-4104-98c8-dbcba98ab660","savedPayload":{"position":{"x":33225.563155639815,"y":17410.37054742185},"targetPosition":{"x":33083.922437707035,"y":17837.49805417304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"0fbc8383-f53b-42c2-ac1a-060f6bc80c5c","savedPayload":{"position":{"x":33323.665636811864,"y":17456.67893899763},"targetPosition":{"x":33083.922437707035,"y":17837.49805417304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"5785bb06-20d0-4683-b5d3-3cce32ddf13f","savedPayload":{"position":{"x":33407.83511468302,"y":17525.119153326243},"targetPosition":{"x":33083.922437707035,"y":17837.49805417304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"cca74655-a684-4b14-a70b-63a95f520418","savedPayload":{"position":{"x":33473.179965143005,"y":17611.713693920967},"targetPosition":{"x":33083.922437707035,"y":17837.49805417304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Strategy Name","config":"{ \n\"codeName\": \"strategyName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"10192034-747b-49ed-ba2b-a645da326297","savedPayload":{"position":{"x":33515.90258300195,"y":17711.430000840784},"targetPosition":{"x":33083.922437707035,"y":17837.49805417304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Index","config":"{ \n\"codeName\": \"index\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"5cc8df5d-637c-4059-88ca-b30193db45cd","savedPayload":{"position":{"x":33533.5200850003,"y":17818.47292478154},"targetPosition":{"x":33083.922437707035,"y":17837.49805417304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e44d0b8d-1bd1-457b-b3ec-efafe83135e2","savedPayload":{"position":{"x":33525.008605958916,"y":17926.621520089004},"targetPosition":{"x":33083.922437707035,"y":17837.49805417304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"c1181965-30d7-455c-84f8-b59a10b17292","savedPayload":{"position":{"x":33490.86280210172,"y":18029.590583508045},"targetPosition":{"x":33083.922437707035,"y":17837.49805417304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"f233bd2e-9c8a-415c-b348-890e2b8c835b","savedPayload":{"position":{"x":33433.06710343395,"y":18121.395927350073},"targetPosition":{"x":33083.922437707035,"y":17837.49805417304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"09b0f818-5159-433b-8eae-f0209351e6b3","savedPayload":{"position":{"x":33354.98038588335,"y":18196.702158729833},"targetPosition":{"x":33083.922437707035,"y":17837.49805417304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"8cfbc9c3-071f-43d0-b245-4c0278f975c0","savedPayload":{"position":{"x":33261.14076564029,"y":18251.132753206548},"targetPosition":{"x":33083.922437707035,"y":17837.49805417304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.strategy.strategyCounters\"\n}","project":"Superalgos","id":"bb8b605d-bf3a-4408-a147-f316bdee7df7","savedPayload":{"position":{"x":33157.00186034017,"y":18281.52440247639},"targetPosition":{"x":33083.922437707035,"y":17837.49805417304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"325b09da-1fc2-43bc-a59d-381c30a4ba1d","savedPayload":{"position":{"x":33083.922437707035,"y":17837.49805417304},"targetPosition":{"x":32635.309637527127,"y":17802.19146109551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"0625f524-2b97-4b4d-8a90-590ffc62ecd3","savedPayload":{"position":{"x":32635.309637527127,"y":17802.19146109551},"targetPosition":{"x":32207.334205194307,"y":17941.249108564236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Last Strategy","id":"028aaa23-630c-4aa6-a168-6b2a128b1a83"}}}],"productDefinitionFolders":[],"id":"bb870967-9e1d-44a9-9bbc-68e6c024a3c3","savedPayload":{"position":{"x":32207.334205194307,"y":17941.249108564236},"targetPosition":{"x":31906.22543233282,"y":18275.664280029065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Position","project":"Superalgos","products":[{"type":"Product Definition","name":"Current Position","config":"{\n \"codeName\": \"Current-Position\",\n \"singularVariableName\": \"currentPosition\",\n \"pluralVariableName\": \"currentPositions\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"7506dd91-ad9d-4aad-bb1a-604bc5d3fe8d","savedPayload":{"position":{"x":32455.605215595602,"y":17484.324800137565},"targetPosition":{"x":32473.258512134365,"y":17708.63120022752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"06678152-1082-4f00-9275-22ffde715469","savedPayload":{"position":{"x":32542.78733586873,"y":17494.64348406111},"targetPosition":{"x":32473.258512134365,"y":17708.63120022752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"6e9bd403-9341-4573-9509-39592db0f4ae","savedPayload":{"position":{"x":32438.24263750715,"y":16371.428897276433},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"e9f969f0-20f4-4d61-870b-2997e715c706","savedPayload":{"position":{"x":32509.876469523682,"y":16310.24782492538},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"c9761b5c-3714-4253-9906-873e8933e698","savedPayload":{"position":{"x":32587.513047387176,"y":16256.889683268808},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"e0d6465b-de24-4ce2-9cc3-b7e3e563d4d7","savedPayload":{"position":{"x":32670.301768504065,"y":16211.939075272618},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"1b892131-86ea-4264-bfae-3eae52374803","savedPayload":{"position":{"x":32757.335582321135,"y":16175.888489204532},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f7d48869-1ac5-4e6c-9f73-52112cf5a9c8","savedPayload":{"position":{"x":32847.66092816122,"y":16149.13290282958},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"08064bc3-d662-46d7-a9ac-da517de9f0f3","savedPayload":{"position":{"x":32940.288182633485,"y":16131.965455951064},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"07748c3d-c020-4734-b505-38ceeb96ddc2","savedPayload":{"position":{"x":33034.20250215444,"y":16124.57423870949},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"5f987e27-560f-485d-b832-46025f14f446","savedPayload":{"position":{"x":33128.37494178659,"y":16127.040230827675},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionCounters\"\n}","project":"Superalgos","id":"c00c9780-7a99-40fe-8563-9ef38089edae","savedPayload":{"position":{"x":33221.773728574466,"y":16139.336414379934},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"90759217-f2a3-4203-8249-35c703108863","savedPayload":{"position":{"x":33313.37556586506,"y":16161.328069806117},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"905584a9-29a2-4e59-be9d-7859ada74e43","savedPayload":{"position":{"x":33402.17684476011,"y":16192.774251927334},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"a85c3f00-4b38-430d-a911-b404de9c2ce3","savedPayload":{"position":{"x":33487.20463986518,"y":16233.330429791724},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Base Asset","config":"{ \n\"codeName\": \"profitLossInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3c081ea4-6bcb-4ba2-8e3e-2f572b428003","savedPayload":{"position":{"x":33567.527368863884,"y":16282.552261427678},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Quoted Asset","config":"{ \n\"codeName\": \"profitLossInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"1b65da38-1f4b-4c28-81bb-38e95fed5a3d","savedPayload":{"position":{"x":33642.264999128696,"y":16339.900462147463},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Base Asset","config":"{ \n\"codeName\": \"ROIInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"9705d87a-bc3a-473e-b205-4eefcbbeeb21","savedPayload":{"position":{"x":33710.59868954259,"y":16404.746713063112},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Quoted Asset","config":"{ \n\"codeName\": \"ROIInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3fdcd35b-a08a-4d68-bcbd-f547b8265203","savedPayload":{"position":{"x":33771.779761893646,"y":16476.380545079643},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Base Asset","config":"{ \n\"codeName\": \"hitFailInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"14d4fbc8-7b1b-4b27-a9ed-c4c5601116d8","savedPayload":{"position":{"x":33825.13790355022,"y":16554.017122943136},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Quoted Asset","config":"{ \n\"codeName\": \"hitFailInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"2ba0cad6-6f43-4fb3-9dfb-8ad67e0c8a09","savedPayload":{"position":{"x":33870.088511546404,"y":16636.805844060025},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Base Asset","config":"{ \n\"codeName\": \"entryTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"7a3cc7f2-ecf2-4f50-968a-ca27117b4bac","savedPayload":{"position":{"x":33906.13909761449,"y":16723.839657877095},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Quoted Asset","config":"{ \n\"codeName\": \"entryTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"cfa55f9f-0792-4a1d-8bbd-5350864e8a61","savedPayload":{"position":{"x":33932.89468398944,"y":16814.165003717175},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Base Asset","config":"{ \n\"codeName\": \"exitTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"8172e284-94fd-4dc4-8591-53a2c5ca475a","savedPayload":{"position":{"x":33950.06213086796,"y":16906.792258189445},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Quoted Asset","config":"{ \n\"codeName\": \"exitTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"0d0bdeba-f4d9-4de7-81d0-b4aa3bb9ec6b","savedPayload":{"position":{"x":33957.45334810953,"y":17000.706577710404},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Rate","config":"{ \n\"codeName\": \"entryTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f03c45fb-c2ca-4294-abce-650cf8656471","savedPayload":{"position":{"x":33954.98735599135,"y":17094.87901734255},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Rate","config":"{ \n\"codeName\": \"exitTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"472bf4ef-2e4f-4aa9-a054-ed458249032d","savedPayload":{"position":{"x":33942.69117243909,"y":17188.277804130423},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Profit Loss","config":"{ \n\"codeName\": \"profitLoss\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2ab54033-cbad-4618-9681-e8ae36c1ace5","savedPayload":{"position":{"x":33920.69951701291,"y":17279.879641421023},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics ROI","config":"{ \n\"codeName\": \"ROI\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 10\n}","project":"Superalgos","id":"a0778ae5-4242-4a8e-8ebc-6af71dad5c58","savedPayload":{"position":{"x":33889.25333489169,"y":17368.680920316074},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Hit Fail","config":"{ \n\"codeName\": \"hitFail\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\"\n}","project":"Superalgos","id":"e87e024f-3726-4d08-a890-829b44616eeb","savedPayload":{"position":{"x":33848.6971570273,"y":17453.70871542114},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"d6e98d71-15ee-4e22-b18c-b154b1ecec52","savedPayload":{"position":{"x":33799.475325391344,"y":17534.03144441984},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a35249e0-a2dc-43b0-bb8c-ebd6265e13c2","savedPayload":{"position":{"x":33057.76175563153,"y":17024.26583118749},"targetPosition":{"x":32473.258512134365,"y":17708.63120022752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"832ecada-8da3-4ba6-b6e9-be34dd5f7ce9","savedPayload":{"position":{"x":32473.258512134365,"y":17708.63120022752},"targetPosition":{"x":32334.20086466564,"y":18136.60663256034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Position","id":"0d2212c7-07bb-4c41-94fb-00844415ba5e"}}},{"type":"Product Definition","name":"Last Position","config":"{\n \"codeName\": \"Last-Position\",\n \"singularVariableName\": \"lastPosition\",\n \"pluralVariableName\": \"lastPositions\",\n \"nodePath\": \"tradingEngine.tradingLast.position\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"485671ff-0d50-4c08-958c-93e657cd238f","savedPayload":{"position":{"x":32815.820689195454,"y":17680.259232049055},"targetPosition":{"x":32698.258512134365,"y":17872.103269028725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a909df42-6192-4bbd-9f38-e8800149aaa1","savedPayload":{"position":{"x":32880.28733586873,"y":17739.851587262918},"targetPosition":{"x":32698.258512134365,"y":17872.103269028725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"a616f774-00d3-475e-b0b6-631a93777573","savedPayload":{"position":{"x":33455.91786749423,"y":16769.702066321977},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"2e577616-21a7-4199-a64f-d90386edc6ec","savedPayload":{"position":{"x":33549.832187015185,"y":16762.310849080408},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"9993ddd9-d4f8-4eef-91db-45eb57c04d8e","savedPayload":{"position":{"x":33644.00462664734,"y":16764.776841198593},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"dd7f3f5d-3f52-4256-b7e1-c2d94aa85795","savedPayload":{"position":{"x":33737.40341343521,"y":16777.07302475085},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e7f50ea4-ebd4-448f-bd18-54fc2d7e2e7b","savedPayload":{"position":{"x":33829.00525072581,"y":16799.064680177034},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"d9ff5483-8800-49f7-8d9f-9e8e48f8b795","savedPayload":{"position":{"x":33917.80652962086,"y":16830.51086229825},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"f0e01315-185f-4092-9b13-0f529a794336","savedPayload":{"position":{"x":34002.834324725925,"y":16871.06704016264},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"a41e9fac-16b2-4b08-b9e8-b494359f1737","savedPayload":{"position":{"x":34083.15705372463,"y":16920.288871798595},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e6137e7e-940e-44b9-937f-4c6a89709af4","savedPayload":{"position":{"x":34157.89468398944,"y":16977.63707251838},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionCounters\"\n}","project":"Superalgos","id":"3976c01c-c92d-47b1-965d-4e4d7678a59a","savedPayload":{"position":{"x":34226.228374403334,"y":17042.48332343403},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"5a796662-dd46-4e75-8d5b-192ec323901e","savedPayload":{"position":{"x":34287.40944675439,"y":17114.11715545056},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"373f4395-e367-4089-ad1c-6bcefb4a1d40","savedPayload":{"position":{"x":34340.76758841096,"y":17191.753733314054},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"337bc66f-9deb-4e01-b4a8-24cac360726f","savedPayload":{"position":{"x":34385.71819640715,"y":17274.542454430943},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Base Asset","config":"{ \n\"codeName\": \"profitLossInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionBaseAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2c6b4f74-ede6-4055-96e9-7b6a7fe6f14b","savedPayload":{"position":{"x":34421.768782475236,"y":17361.576268248013},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Quoted Asset","config":"{ \n\"codeName\": \"profitLossInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionQuotedAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"1ea905bd-9a4f-45ef-a3f9-ecdfb8e68ce1","savedPayload":{"position":{"x":34448.52436885019,"y":17451.901614088092},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Base Asset","config":"{ \n\"codeName\": \"ROIInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionBaseAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"29924f25-d402-499e-a51a-952a4d1bc015","savedPayload":{"position":{"x":34465.69181572871,"y":17544.528868560363},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Quoted Asset","config":"{ \n\"codeName\": \"ROIInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionQuotedAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2af609c6-806d-4dd2-af9e-4cc9e1a2b0c3","savedPayload":{"position":{"x":34473.08303297027,"y":17638.44318808132},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Base Asset","config":"{ \n\"codeName\": \"hitFailInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionBaseAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"1f4d9780-e2f9-400c-b47b-e303c3a2bac1","savedPayload":{"position":{"x":34470.61704085209,"y":17732.61562771347},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Quoted Asset","config":"{ \n\"codeName\": \"hitFailInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionQuotedAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"4019c021-32b6-48bc-9523-39befbf74aeb","savedPayload":{"position":{"x":34458.320857299834,"y":17826.01441450134},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Base Asset","config":"{ \n\"codeName\": \"entryTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"e8cd2d2b-0ca6-46e1-946b-2aa4bfdb341c","savedPayload":{"position":{"x":34436.329201873654,"y":17917.61625179194},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Quoted Asset","config":"{ \n\"codeName\": \"entryTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2f52b5a7-cd53-485d-b2b6-64c1ce2f5af1","savedPayload":{"position":{"x":34404.88301975244,"y":18006.41753068699},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Base Asset","config":"{ \n\"codeName\": \"exitTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"45e8300d-baf1-4d87-aef6-ec10dd85da2d","savedPayload":{"position":{"x":34364.32684188805,"y":18091.445325792058},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Quoted Asset","config":"{ \n\"codeName\": \"exitTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4c4be570-1f2d-4e3e-9c4e-8076fd4a5b9d","savedPayload":{"position":{"x":34315.10501025209,"y":18171.76805479076},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Rate","config":"{ \n\"codeName\": \"entryTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"546beb6d-17ef-4b1b-b0e5-f9f716cbf09c","savedPayload":{"position":{"x":34257.75680953231,"y":18246.505685055574},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Rate","config":"{ \n\"codeName\": \"exitTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"d71cf631-337c-40ff-8637-89ab1bf10316","savedPayload":{"position":{"x":34192.910558616655,"y":18314.839375469466},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Profit Loss","config":"{ \n\"codeName\": \"profitLoss\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 10\n}","project":"Superalgos","id":"c5e7ea1d-2314-48a4-8c2f-eea2054521aa","savedPayload":{"position":{"x":34121.276726600125,"y":18376.02044782052},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics ROI","config":"{ \n\"codeName\": \"ROI\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 10\n}","project":"Superalgos","id":"6ccc1352-bb8a-4b4c-9e3e-e3107e4610c8","savedPayload":{"position":{"x":34043.64014873663,"y":18429.37858947709},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Hit Fail","config":"{ \n\"codeName\": \"hitFail\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\"\n}","project":"Superalgos","id":"afc68726-a40f-49f8-b9a3-c841e9f14c84","savedPayload":{"position":{"x":33960.85142761974,"y":18474.329197473282},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"871e0d9c-c467-4fbf-bb51-ff06cdd97a24","savedPayload":{"position":{"x":33873.817613802676,"y":18510.379783541368},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"731e7326-c591-4d9f-a9d7-1c7abd42156f","savedPayload":{"position":{"x":33573.391440492276,"y":17662.00244155841},"targetPosition":{"x":32698.258512134365,"y":17872.103269028725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"477cd6d5-862a-44d0-9313-786a4e63a602","savedPayload":{"position":{"x":32698.258512134365,"y":17872.103269028725},"targetPosition":{"x":32334.20086466564,"y":18136.60663256034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Last Position","id":"08c88b9c-70f1-49ff-aa16-21f2bc1c0ba1"}}},{"type":"Product Definition","name":"Stop Loss","config":"{\n \"codeName\": \"Stop-Loss\",\n \"singularVariableName\": \"stopLoss\",\n \"pluralVariableName\": \"stopLosses\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAtCycle\": \"Second\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"b0276d53-e43b-4f1b-a5d8-b118921970dd","savedPayload":{"position":{"x":32992.07375948068,"y":18050.502860278193},"targetPosition":{"x":32784.20086466564,"y":18136.60663256034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"b5d51a14-eed9-405f-90d7-e91c0ceed659","savedPayload":{"position":{"x":33009.20086466564,"y":18136.60663256034},"targetPosition":{"x":32784.20086466564,"y":18136.60663256034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\",\n \"childProperty\": \"begin\"\n}","project":"Superalgos","id":"496f95fc-0a29-4a08-a5ba-7fbd1979b326","savedPayload":{"position":{"x":33155.673639752,"y":18221.3928693874},"targetPosition":{"x":32943.29989043261,"y":18295.70565832731},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\",\n \"childProperty\": \"end\"\n}","project":"Superalgos","id":"62a7bb07-5534-4c43-818c-8125eb98cc21","savedPayload":{"position":{"x":33166.885137658595,"y":18320.897665450557},"targetPosition":{"x":32943.29989043261,"y":18295.70565832731},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stop Loss","config":"{\n \"codeName\": \"stopLoss\",\n \"isString\": false\n}","project":"Superalgos","id":"f1054e02-00f1-4a93-8a5f-10bb181d57ac","savedPayload":{"position":{"x":33133.81283525898,"y":18415.41287554326},"targetPosition":{"x":32943.29989043261,"y":18295.70565832731},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stop Loss Phase","config":"{\n \"codeName\": \"stopLossPhase\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\"\n}","project":"Superalgos","id":"d6b29dfa-d7bf-4995-bff3-2641052c3e4a","savedPayload":{"position":{"x":33063.00710764856,"y":18486.218603153677},"targetPosition":{"x":32943.29989043261,"y":18295.70565832731},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Initial Value","config":"{\n \"codeName\": \"initialValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\"\n}","project":"Superalgos","id":"a87ea0f8-6d19-40ce-97b4-d4ce51b41df2","savedPayload":{"position":{"x":32968.491897555854,"y":18519.29090555329},"targetPosition":{"x":32943.29989043261,"y":18295.70565832731},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Final Value","config":"{\n \"codeName\": \"finalValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\"\n}","project":"Superalgos","id":"c78fd29a-b6c9-4fab-a805-2f11cce53f6a","savedPayload":{"position":{"x":32868.987101492705,"y":18508.079407646695},"targetPosition":{"x":32943.29989043261,"y":18295.70565832731},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d1352dcb-8236-4dfc-98da-4abb3c3813d5","savedPayload":{"position":{"x":32943.29989043261,"y":18295.70565832731},"targetPosition":{"x":32784.20086466564,"y":18136.60663256034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a1c047bd-e95e-469a-aac9-3d45c4157440","savedPayload":{"position":{"x":32784.20086466564,"y":18136.60663256034},"targetPosition":{"x":32334.20086466564,"y":18136.60663256034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Stop Loss","id":"cdafbd38-ade8-4548-b951-b404c1bd7885"}}},{"type":"Product Definition","name":"Take Profit","config":"{\n \"codeName\": \"Take-Profit\",\n \"singularVariableName\": \"takeProfit\",\n \"pluralVariableName\": \"takeProfits\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAtCycle\": \"Second\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"67fd9603-5184-4570-bebb-07c33974b40c","savedPayload":{"position":{"x":32911.04174422384,"y":18453.635202959533},"targetPosition":{"x":32692.258512134365,"y":18401.109996091953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"d1fc090a-18c0-4ff6-87d6-726d276bad43","savedPayload":{"position":{"x":32874.28733586873,"y":18533.36167785776},"targetPosition":{"x":32692.258512134365,"y":18401.109996091953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\",\n \"childProperty\": \"begin\"\n}","project":"Superalgos","id":"cba47a0d-3982-454d-a2e1-8bfbc9314c0e","savedPayload":{"position":{"x":32942.95020052253,"y":18688.04972139806},"targetPosition":{"x":32727.45626676842,"y":18623.339872725857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\",\n \"childProperty\": \"end\"\n}","project":"Superalgos","id":"e30faa7e-ff94-485a-a2c6-6c2f4767ef0c","savedPayload":{"position":{"x":32893.533041203074,"y":18775.140745560573},"targetPosition":{"x":32727.45626676842,"y":18623.339872725857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Take Profit","config":"{\n \"codeName\": \"takeProfit\",\n \"isString\": false\n}","project":"Superalgos","id":"094ba661-8e22-4924-9529-465052979f5c","savedPayload":{"position":{"x":32811.222339908854,"y":18832.16574514264},"targetPosition":{"x":32727.45626676842,"y":18623.339872725857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stop Loss Phase","config":"{\n \"codeName\": \"takeProfitPhase\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\"\n}","project":"Superalgos","id":"b7897f40-beef-425c-afb0-b62383df7644","savedPayload":{"position":{"x":32712.32074050571,"y":18847.83021961131},"targetPosition":{"x":32727.45626676842,"y":18623.339872725857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Initial Value","config":"{\n \"codeName\": \"initialValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\"\n}","project":"Superalgos","id":"e0218aec-2f5e-4307-8533-990d87464375","savedPayload":{"position":{"x":32616.41691770394,"y":18819.03162768589},"targetPosition":{"x":32727.45626676842,"y":18623.339872725857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Final Value","config":"{\n \"codeName\": \"finalValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\"\n}","project":"Superalgos","id":"046e68e8-98db-49a9-bf07-c3a9638a7fbb","savedPayload":{"position":{"x":32542.505799792638,"y":18751.47388368876},"targetPosition":{"x":32727.45626676842,"y":18623.339872725857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3012a392-5c3a-4204-82f1-44f46d08621a","savedPayload":{"position":{"x":32727.45626676842,"y":18623.339872725857},"targetPosition":{"x":32692.258512134365,"y":18401.109996091953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"11513bf1-0f23-4d79-b760-83ccebc4e1c5","savedPayload":{"position":{"x":32698.258512134365,"y":18401.109996091953},"targetPosition":{"x":32334.20086466564,"y":18136.60663256034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Take Profit","id":"d06674eb-36cf-4048-bd99-31712b0523a0"}}}],"productDefinitionFolders":[],"id":"83cdc0a1-260e-42bb-a054-5719c34b0165","savedPayload":{"position":{"x":32334.20086466564,"y":18136.60663256034},"targetPosition":{"x":31906.22543233282,"y":18275.664280029065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Stages","project":"Superalgos","products":[{"type":"Product Definition","name":"Open Stage","config":"{\n \"codeName\": \"Current-Strategy-Open-Stage\",\n \"singularVariableName\": \"currentStrategyOpenStage\",\n \"pluralVariableName\": \"currentStrategyOpenStages\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"b553683f-14f4-48be-91a6-0fb5381887e4","savedPayload":{"position":{"x":32777.672020909726,"y":17865.034079056848},"targetPosition":{"x":32680.807024127862,"y":18068.115768035568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"3287fb46-854d-41de-8a42-285f9c10d4fa","savedPayload":{"position":{"x":32848.01460986027,"y":17917.561381604824},"targetPosition":{"x":32680.807024127862,"y":18068.115768035568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"16f06257-04df-47fc-8a3c-29daf922e556","savedPayload":{"position":{"x":33040.42401522331,"y":17472.55955731152},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"4d6aabc2-0b50-4948-9c21-82f6a1df7bbf","savedPayload":{"position":{"x":33128.54687542867,"y":17468.519390740814},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"22ea5554-c115-4081-bc2a-03243d8630c4","savedPayload":{"position":{"x":33215.76467698239,"y":17481.74877201233},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"37d59f42-6664-4cdb-a563-599f4c926ed2","savedPayload":{"position":{"x":33298.72568868307,"y":17511.739303422935},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"4768b50b-1fb1-4a31-a9ce-9dd1bb7ae14c","savedPayload":{"position":{"x":33374.24176537614,"y":17557.338465669396},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"fa740c89-d602-4dda-953b-80b4744e742c","savedPayload":{"position":{"x":33439.41086658417,"y":17616.793908518885},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"f022ac0c-4a8c-4ea1-bc77-f9e03c706e6e","savedPayload":{"position":{"x":33491.72858029499,"y":17687.8207926457},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3491a030-50f3-4909-be44-b40a7c8fe8c0","savedPayload":{"position":{"x":33529.18436611082,"y":17767.689594725176},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageBaseAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"20e53cb6-ac86-4d7f-823c-d9dcd3fe3683","savedPayload":{"position":{"x":33550.3388191882,"y":17853.33100148434},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageQuotedAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"6e4fd9ec-7ff6-4f34-911e-4954d1e17b18","savedPayload":{"position":{"x":33554.3789857589,"y":17941.453861689697},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Placed In Base Asset","config":"{\n \"codeName\": \"sizePlacedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageBaseAsset\",\n \"childProperty\": \"sizePlaced\",\n \"decimals\": 10\n}","project":"Superalgos","id":"180c4f89-8767-48c0-8319-c3564cf17c90","savedPayload":{"position":{"x":33541.14960448738,"y":18028.671663243418},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Placed In Quoted Asset","config":"{\n \"codeName\": \"sizePlacedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageQuotedAsset\",\n \"childProperty\": \"sizePlaced\",\n \"decimals\": 10\n}","project":"Superalgos","id":"df80e04b-729b-482e-a088-90a164e53095","savedPayload":{"position":{"x":33511.15907307678,"y":18111.632674944103},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Target Size In Base Asset","config":"{\n \"codeName\": \"targetSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageBaseAsset\",\n \"childProperty\": \"targetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"709e3369-660e-4109-bbcb-3d4e45b6609f","savedPayload":{"position":{"x":33465.559910830314,"y":18187.148751637167},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Target Size In Quoted Asset","config":"{\n \"codeName\": \"targetSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageQuotedAsset\",\n \"childProperty\": \"targetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"eb37666f-1459-4bbc-8a33-5030dd2468fa","savedPayload":{"position":{"x":33406.104467980826,"y":18252.3178528452},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stage Defined In","config":"{ \n\"codeName\": \"stageDefinedIn\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"68d9f756-49e1-4541-b94b-e6502c2dd812","savedPayload":{"position":{"x":33335.077583854014,"y":18304.635566556026},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"59f991ac-f3e7-410e-9caf-bf14ed61d69c","savedPayload":{"position":{"x":33104.995695119345,"y":17917.902681380372},"targetPosition":{"x":32680.807024127862,"y":18068.115768035568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"73c3c041-ba2a-4798-a362-a453409b518a","savedPayload":{"position":{"x":32680.807024127862,"y":18068.115768035568},"targetPosition":{"x":32346.391852663033,"y":18369.224540897056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Strategy Open Stage","id":"f759a457-fc11-43a8-bf2c-6ebf1db0e78d"}}},{"type":"Product Definition","name":"Close Stage","config":"{\n \"codeName\": \"Current-Strategy-Close-Stage\",\n \"singularVariableName\": \"currentStrategyCloseStage\",\n \"pluralVariableName\": \"currentStrategyCloseStages\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0c30c4d3-3e58-4422-a178-450c24f95001","savedPayload":{"position":{"x":32991.660555927694,"y":18214.8260113682},"targetPosition":{"x":32793.92670557876,"y":18322.186732426613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"4903a08c-90b6-4726-aa4d-1d8a0acdbd77","savedPayload":{"position":{"x":33017.69413203662,"y":18298.667828191392},"targetPosition":{"x":32793.92670557876,"y":18322.186732426613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"840e560a-bfeb-473e-9a22-e0388757f531","savedPayload":{"position":{"x":33434.922120415744,"y":18051.74920068501},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"4beb9d7d-106c-440a-9ea0-db16de4c2da4","savedPayload":{"position":{"x":33508.58976224187,"y":18100.27795488774},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"517d1407-6464-46e0-b5f7-ce3ca23a7cbd","savedPayload":{"position":{"x":33571.3744107025,"y":18162.246086652114},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"23275807-6666-4821-a84b-060a46ed4993","savedPayload":{"position":{"x":33620.86328696733,"y":18235.272195426554},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"75a1d315-4027-402a-8646-565331def8e4","savedPayload":{"position":{"x":33655.15456127518,"y":18316.549928804372},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"f46867ef-8d39-4aa9-b57d-12ab7eb8c293","savedPayload":{"position":{"x":33672.93043918516,"y":18402.955829072936},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"73317d39-d014-45f3-bf3b-07230c4055cc","savedPayload":{"position":{"x":33673.50780367804,"y":18491.16936594191},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"f4815fd2-f336-4867-ae0c-8d31ac90ced9","savedPayload":{"position":{"x":33656.86446696013,"y":18577.800542660145},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageBaseAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"81b366f7-5fb3-4b55-98c8-cea47462b138","savedPayload":{"position":{"x":33623.64002312781,"y":18659.52017168968},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageQuotedAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"7f1e01e4-f353-4cd4-b145-871558d5ab60","savedPayload":{"position":{"x":33575.11126892508,"y":18733.187813515808},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Placed In Base Asset","config":"{\n \"codeName\": \"sizePlacedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageBaseAsset\",\n \"childProperty\": \"sizePlaced\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3074287b-add9-4baf-a74c-9f09c17cf4f8","savedPayload":{"position":{"x":33513.1431371607,"y":18795.972461976435},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Placed In Quoted Asset","config":"{\n \"codeName\": \"sizePlacedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageQuotedAsset\",\n \"childProperty\": \"sizePlaced\",\n \"decimals\": 10\n}","project":"Superalgos","id":"b8c6b690-b924-4a51-88c0-e17e95c16d38","savedPayload":{"position":{"x":33440.11702838627,"y":18845.461338241264},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Target Size In Base Asset","config":"{\n \"codeName\": \"targetSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageBaseAsset\",\n \"childProperty\": \"targetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"e0e42bb9-3f23-49d1-a286-bdb3b58f4a14","savedPayload":{"position":{"x":33358.83929500845,"y":18879.752612549113},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Target Size In Quoted Asset","config":"{\n \"codeName\": \"targetSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageQuotedAsset\",\n \"childProperty\": \"targetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3ab9f66f-69b9-4d05-a7a1-105d49ce0c09","savedPayload":{"position":{"x":33272.433394739885,"y":18897.528490459103},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stage Defined In","config":"{ \n\"codeName\": \"stageDefinedIn\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7bcc6d7f-a5c9-4a06-9730-7744461e9a75","savedPayload":{"position":{"x":33184.21985787091,"y":18898.105854951977},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"722161de-6374-4eb6-a3cc-ab6638d0c484","savedPayload":{"position":{"x":33225.39558626944,"y":18449.99363754338},"targetPosition":{"x":32793.92670557876,"y":18322.186732426613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"2bb9bb41-1ff5-4f83-aa5b-bfc4c9f06a9a","savedPayload":{"position":{"x":32793.92670557876,"y":18322.186732426613},"targetPosition":{"x":32346.391852663033,"y":18369.224540897056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Strategy Close Stage","id":"6be13ce1-0fae-4355-99b2-dc8db000251f"}}},{"type":"Product Definition","name":"Trigger Stage","config":"{\n \"codeName\": \"Current-Strategy-Trigger-Stage\",\n \"singularVariableName\": \"currentStrategyTriggerStage\",\n \"pluralVariableName\": \"currentStrategyTriggerStages\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyTriggerStage\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a179150b-2eaa-45ef-a7fa-14a1decf7dfc","savedPayload":{"position":{"x":32959.178378175144,"y":18623.592934146567},"targetPosition":{"x":32736.103284366032,"y":18594.224540897056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"493f0951-e638-4da1-88b4-1c1d3829046e","savedPayload":{"position":{"x":32930.95900021753,"y":18706.724540897056},"targetPosition":{"x":32736.103284366032,"y":18594.224540897056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"42eb64c6-8540-44fa-a428-e6f6514464c1","savedPayload":{"position":{"x":33093.33123371996,"y":18726.772346559905},"targetPosition":{"x":32873.074605892994,"y":18772.729042462583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"56c868af-79a0-4b0e-a9ec-7d82999155b7","savedPayload":{"position":{"x":33091.45883357001,"y":18826.8892594296},"targetPosition":{"x":32873.074605892994,"y":18772.729042462583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"22df8e6e-b5c8-4ee3-80a9-425ef95d88f8","savedPayload":{"position":{"x":33046.33275882182,"y":18916.279077097508},"targetPosition":{"x":32873.074605892994,"y":18772.729042462583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"fcf315f5-afd7-449e-b0bf-d7cf4af9bba0","savedPayload":{"position":{"x":32966.89078201429,"y":18977.23704988033},"targetPosition":{"x":32873.074605892994,"y":18772.729042462583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"5f4b2d5b-c8bc-401b-90ec-14ede9ec8f64","savedPayload":{"position":{"x":32868.86736094604,"y":18997.68970366795},"targetPosition":{"x":32873.074605892994,"y":18772.729042462583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"292f1ff7-7038-4826-8af8-1fdd34661d0b","savedPayload":{"position":{"x":32771.67723633801,"y":18973.586139542396},"targetPosition":{"x":32873.074605892994,"y":18772.729042462583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c9ec94f8-1ccc-4111-817f-2fb25f5f02b5","savedPayload":{"position":{"x":32873.074605892994,"y":18772.729042462583},"targetPosition":{"x":32736.103284366032,"y":18594.224540897056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"b6cff826-9056-4fbd-8eca-cbd6cceec962","savedPayload":{"position":{"x":32736.103284366032,"y":18594.224540897056},"targetPosition":{"x":32346.391852663033,"y":18369.224540897056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Strategy Trigger Stage","id":"823fa15f-bf29-4784-a5f8-5b82d2ed7645"}}},{"type":"Product Definition","name":"Manage Stage","config":"{\n \"codeName\": \"Current-Strategy-Manage-Stage\",\n \"singularVariableName\": \"currentStrategyManageStage\",\n \"pluralVariableName\": \"currentStrategyManageStages\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyManageStage\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"56d1a25b-54b1-419c-a323-f2fad41de0ec","savedPayload":{"position":{"x":32692.63257552491,"y":18935.19977636732},"targetPosition":{"x":32529.423342047143,"y":18780.319996836228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"fef1dba7-fc21-4338-b75e-a040d71dbde5","savedPayload":{"position":{"x":32620.9390867392,"y":18985.867724805812},"targetPosition":{"x":32529.423342047143,"y":18780.319996836228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"4df09191-2517-4b69-8d05-ba22ee71d7a5","savedPayload":{"position":{"x":32740.517178547834,"y":19097.526744521507},"targetPosition":{"x":32535.313155416414,"y":19005.24289495573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"41b7d04c-0aeb-478f-9515-8ee8d6eb15e4","savedPayload":{"position":{"x":32680.15513011639,"y":19177.42245926291},"targetPosition":{"x":32535.313155416414,"y":19005.24289495573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"1250e9d7-07f0-47a5-b1bb-9ad2af6ee8ef","savedPayload":{"position":{"x":32591.10535222537,"y":19223.215899649498},"targetPosition":{"x":32535.313155416414,"y":19005.24289495573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"c629a906-31b2-4dae-bc5b-44f189b024ae","savedPayload":{"position":{"x":32491.005245509947,"y":19225.837113193018},"targetPosition":{"x":32535.313155416414,"y":19005.24289495573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"e876f72a-fef5-4956-b401-3d2b7b4b8b95","savedPayload":{"position":{"x":32399.680863752354,"y":19184.766936404096},"targetPosition":{"x":32535.313155416414,"y":19005.24289495573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"e248dba4-bfa4-4879-8276-edc85ee6b0d9","savedPayload":{"position":{"x":32335.22012077972,"y":19108.139821488443},"targetPosition":{"x":32535.313155416414,"y":19005.24289495573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"188b2d1c-91c4-4a50-9101-91596ac53407","savedPayload":{"position":{"x":32535.313155416414,"y":19005.24289495573},"targetPosition":{"x":32529.423342047143,"y":18780.319996836228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"bd691611-e7a6-49a8-b07d-c15360b55e40","savedPayload":{"position":{"x":32529.423342047143,"y":18780.319996836228},"targetPosition":{"x":32346.391852663033,"y":18369.224540897056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Strategy Manage Stage","id":"34a912c3-4b0f-4f21-9736-4ef47cd0544d"}}}],"productDefinitionFolders":[],"id":"e3ceaf77-f718-477c-bf10-3dc0cf2235bb","savedPayload":{"position":{"x":32346.391852663033,"y":18369.224540897056},"targetPosition":{"x":31906.22543233282,"y":18275.664280029065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Orders","project":"Superalgos","products":[{"type":"Product Definition","name":"Market Buy Orders","config":"{ \n \"codeName\": \"Market-Buy-Orders\", \n \"singularVariableName\": \"marketBuyOrder\", \n \"pluralVariableName\": \"marketBuyOrders\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a2ea8001-2143-4055-b1d3-525d95fa8e6f","savedPayload":{"position":{"x":32816.72047965542,"y":18247.618709207796},"targetPosition":{"x":32657.027539010945,"y":18406.121594696735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"557357c6-f814-4bf9-9426-82fc5e22c028","savedPayload":{"position":{"x":32865.22100661759,"y":18320.795865599826},"targetPosition":{"x":32657.027539010945,"y":18406.121594696735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"1f788bde-d5cc-4556-9cb3-f6ad2a085870","savedPayload":{"position":{"x":33152.806684562674,"y":17960.13955394905},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"cbe57e07-e492-45ef-be26-6e5ace5cc49d","savedPayload":{"position":{"x":33196.46507665883,"y":17966.782632854145},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"0eef5d2a-489b-402b-a1bc-bbf6105bc226","savedPayload":{"position":{"x":33239.262106066715,"y":17977.672994263223},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"76a37b2a-ff68-425c-95ae-9da13d4f11e3","savedPayload":{"position":{"x":33280.78561399792,"y":17992.705758042637},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"81aa9c0a-b729-471f-8b3f-046d83779376","savedPayload":{"position":{"x":33320.63570637199,"y":18011.73615045945},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"48215010-5717-4f29-aa92-edc16d881270","savedPayload":{"position":{"x":33358.428605015106,"y":18034.580898431617},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"588b02df-d269-4fac-a942-0e148bef8573","savedPayload":{"position":{"x":33393.800343653624,"y":18061.019994547954},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f44959e8-ba4e-41f2-a349-7003d00ef570","savedPayload":{"position":{"x":33426.41027310828,"y":18090.798815859784},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"43c9c172-0930-4a94-86c4-6de1b82604d3","savedPayload":{"position":{"x":33455.94434193206,"y":18123.630576039115},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e637160d-ab4a-4d36-8324-994615efa900","savedPayload":{"position":{"x":33482.1181208972,"y":18159.19908728775},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b9cf9af0-758e-46c8-ad34-0afb01aa1658","savedPayload":{"position":{"x":33504.67954220423,"y":18197.161805398642},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderCounters\"\n}","project":"Superalgos","id":"69f674b7-9532-406e-bda9-6a128a9b3e8b","savedPayload":{"position":{"x":33523.411327032634,"y":18237.153128643848},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"5f50a6c7-0123-4f45-802c-897b7f1d9186","savedPayload":{"position":{"x":33538.133078054685,"y":18278.787918719037},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"ff92e722-7f93-4935-ab39-5fe5d901d275","savedPayload":{"position":{"x":33548.70301676031,"y":18321.66520983589},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"7ed49f47-7cf0-4c04-8ec7-c42b77bbc496","savedPayload":{"position":{"x":33555.01934886165,"y":18365.37207024185},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lock","config":"{\n \"codeName\": \"lock\",\n \"isString\": true\n}","project":"Superalgos","id":"c8db7716-5a26-4aa6-b6fa-594e9b4998f0","savedPayload":{"position":{"x":33557.02124462772,"y":18409.487578978595},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"9033bc32-f754-4d94-87a6-4c16cd8ca7d7","savedPayload":{"position":{"x":33554.68942470795,"y":18453.58687958101},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"1524688a-c64c-434c-84ea-79e57f7e37bc","savedPayload":{"position":{"x":33548.04634580285,"y":18497.24527167716},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"200c3a3d-f082-4cb0-86b1-ba12429f6c0e","savedPayload":{"position":{"x":33537.15598439377,"y":18540.04230108505},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"256902a5-0c3d-4a8d-9f85-e68bb07405e0","savedPayload":{"position":{"x":33522.12322061436,"y":18581.56580901625},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"5f054d54-a92e-4d88-a654-20f9257ab794","savedPayload":{"position":{"x":33503.09282819755,"y":18621.415901390326},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2180ac7e-b09a-404f-86cd-3e0d0eb0635f","savedPayload":{"position":{"x":33480.248080225385,"y":18659.208800033437},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"cd182952-6fd9-40be-82c6-d5b1356c3fc7","savedPayload":{"position":{"x":33453.80898410904,"y":18694.58053867195},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"81cb024b-b64e-4f2c-be9d-c343fc27b08e","savedPayload":{"position":{"x":33424.030162797215,"y":18727.190468126617},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"bfd95185-6f74-4710-b798-b76a5c3cc109","savedPayload":{"position":{"x":33391.19840261788,"y":18756.724536950387},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Base Asset","config":"{\n \"codeName\": \"actualSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4a7527d6-b18c-4e2d-a999-7a0adae10446","savedPayload":{"position":{"x":33355.629891369244,"y":18782.89831591553},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Quoted Asset","config":"{\n \"codeName\": \"actualSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"563763f2-8250-4ba4-86b6-4513fff2809d","savedPayload":{"position":{"x":33317.667173258356,"y":18805.459737222558},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Base Asset","config":"{\n \"codeName\": \"amountReceivedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"f8f2196b-973a-4f6f-a78b-408d4ac24b4d","savedPayload":{"position":{"x":33277.675850013155,"y":18824.19152205096},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Quoted Asset","config":"{\n \"codeName\": \"amountReceivedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"cc17eb10-cd63-4be5-9190-6d2f94e02f70","savedPayload":{"position":{"x":33236.04105993796,"y":18838.913273073013},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Base Asset","config":"{ \n\"codeName\": \"feesToBePaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"cf03df3f-d37a-4970-a8d3-d1983d680ebf","savedPayload":{"position":{"x":33193.163768821105,"y":18849.483211778635},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesToBePaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"3af34380-403a-4cee-b0b1-767b8fff60f5","savedPayload":{"position":{"x":33149.45690841515,"y":18855.79954387998},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2b743c15-4ca6-46e9-a96e-b0a62b42de60","savedPayload":{"position":{"x":33107.02439181933,"y":18407.804586837665},"targetPosition":{"x":32657.027539010945,"y":18406.121594696735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"7c769317-2639-4460-8b88-9dc92f7b0585","savedPayload":{"position":{"x":32657.027539010945,"y":18406.121594696735},"targetPosition":{"x":32240.64060379765,"y":18576.773052890552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Market Buy Orders","id":"50d624c9-9a6e-4d57-a147-29d5c004b3f2"}}},{"type":"Product Definition","name":"Market Sell Orders","config":"{ \n \"codeName\": \"Market-Sell-Orders\", \n \"singularVariableName\": \"marketSellOrder\", \n \"pluralVariableName\": \"marketSellOrders\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"917cfdae-b736-4ed5-ad8e-d572c49ea489","savedPayload":{"position":{"x":32902.485354754455,"y":18530.166927065085},"targetPosition":{"x":32689.83516219313,"y":18603.68492216582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"3c878a50-6d76-412b-95d7-f2e546960293","savedPayload":{"position":{"x":32914.43244139087,"y":18617.140856803453},"targetPosition":{"x":32689.83516219313,"y":18603.68492216582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"7dd0d738-2116-4010-a9d5-19624a9bc097","savedPayload":{"position":{"x":33330.02109310939,"y":18416.979497257067},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"5843c701-ba88-42c1-97c2-215cb97b309c","savedPayload":{"position":{"x":33366.4736212961,"y":18441.90737094411},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"f3f77a4c-acf5-4026-aa2a-9b34e231a9d5","savedPayload":{"position":{"x":33400.3072617028,"y":18470.288182676515},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"cc0b04e1-acd8-413b-8366-e620d55a22be","savedPayload":{"position":{"x":33431.196177877035,"y":18501.848609722765},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"89bb217d-a5ce-4197-b33b-4b251e3ec5c9","savedPayload":{"position":{"x":33458.84289267042,"y":18536.284707917726},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"3a6b6603-5de8-47a1-b2cb-e2078397aca1","savedPayload":{"position":{"x":33482.9811531063,"y":18573.264838811087},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"a0d62501-1822-4d56-afce-b5eee40212f7","savedPayload":{"position":{"x":33503.378494541335,"y":18612.432863526956},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"9f72bb4a-779d-453f-a7b2-bf240eec29fa","savedPayload":{"position":{"x":33519.83847942719,"y":18653.411572575893},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7b91a979-7175-49aa-a83b-faa1d7c22bf3","savedPayload":{"position":{"x":33532.202589111475,"y":18695.806318588522},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b47e5776-92ed-468e-8040-16a655a9a92b","savedPayload":{"position":{"x":33540.35175045903,"y":18739.20881698541},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"178e1183-6b29-4a8b-b2a2-3e817bf56c0b","savedPayload":{"position":{"x":33544.20748259127,"y":18783.20107798078},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderCounters\"\n}","project":"Superalgos","id":"16eb66bd-cbd5-4272-83bd-7aa5cbf79965","savedPayload":{"position":{"x":33543.732652700026,"y":18827.359432052628},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"4694fc1a-8031-4b21-8002-fb2259b98221","savedPayload":{"position":{"x":33538.9318336567,"y":18871.25861011183},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"3fdfa893-f3ff-4595-bfd1-e9e191a2f7de","savedPayload":{"position":{"x":33529.85125997309,"y":18914.475839075945},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"fd90ed73-a52a-41b0-988e-f85896e4e119","savedPayload":{"position":{"x":33516.578382537715,"y":18956.594913405108},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lock","config":"{\n \"codeName\": \"lock\",\n \"isString\": true\n}","project":"Superalgos","id":"a0541e00-0150-4089-82c3-1f596ed4fc0c","savedPayload":{"position":{"x":33499.241026415955,"y":18997.210203388902},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"2320eff7-cd11-46a6-8f2b-7c6c6bd9afa2","savedPayload":{"position":{"x":33478.006159824836,"y":19035.930561582205},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"cbcd69c4-f332-4615-a1aa-ff5a63c2f63a","savedPayload":{"position":{"x":33453.078286137796,"y":19072.38308976892},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"67d569c5-929d-4f9a-a7a2-1a31aecab027","savedPayload":{"position":{"x":33424.69747440539,"y":19106.21673017562},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"42ccc010-d59e-45d0-9ded-718df8f547cc","savedPayload":{"position":{"x":33393.13704735914,"y":19137.10564634985},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"da1eb092-2796-4d86-9e20-095b75b18911","savedPayload":{"position":{"x":33358.70094916418,"y":19164.752361143244},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4b2b02b0-2297-4cae-997e-ddadffae94e1","savedPayload":{"position":{"x":33321.72081827081,"y":19188.890621579118},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"49e12e85-2250-420d-ae4e-4d7ee514e59c","savedPayload":{"position":{"x":33282.55279355495,"y":19209.28796301415},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"f28662d2-c0e7-4051-a8ab-868707defe65","savedPayload":{"position":{"x":33241.574084506006,"y":19225.74794790001},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"a4c176bc-6da0-459f-ac04-7c414f92ce02","savedPayload":{"position":{"x":33199.179338493384,"y":19238.112057584298},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Base Asset","config":"{\n \"codeName\": \"actualSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"294f76ca-f9e2-4286-a23d-5c99566196e6","savedPayload":{"position":{"x":33155.77684009649,"y":19246.261218931846},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Quoted Asset","config":"{\n \"codeName\": \"actualSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"8568ef28-9a27-42e2-bb4c-4369687ffc12","savedPayload":{"position":{"x":33111.78457910112,"y":19250.11695106409},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Base Asset","config":"{\n \"codeName\": \"amountReceivedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"cf72b9d2-d399-4a2b-9928-9caa64660f4a","savedPayload":{"position":{"x":33067.62622502928,"y":19249.64212117284},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Quoted Asset","config":"{\n \"codeName\": \"amountReceivedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"885e6120-43c9-4eee-85c1-668a539be5b6","savedPayload":{"position":{"x":33023.727046970074,"y":19244.84130212952},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Base Asset","config":"{ \n\"codeName\": \"feesToBePaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"9e9c5625-295a-4292-a5de-8b4e5d637afd","savedPayload":{"position":{"x":32980.50981800596,"y":19235.76072844591},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesToBePaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"f8d17b8d-ae68-4b25-970e-2fb371884d48","savedPayload":{"position":{"x":32938.39074367679,"y":19222.48785101053},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e2626cbd-29b0-4582-a408-4720feb8123d","savedPayload":{"position":{"x":33094.538094304546,"y":18800.44756277736},"targetPosition":{"x":32689.83516219313,"y":18603.68492216582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"9cc7645a-54fe-40d6-9896-9278167011fb","savedPayload":{"position":{"x":32689.83516219313,"y":18603.68492216582},"targetPosition":{"x":32240.64060379765,"y":18576.773052890552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Market Sell Orders","id":"4f84a1a5-f9cd-4b9d-9d91-661ba912e2ca"}}},{"type":"Product Definition","name":"Limit Buy Orders","config":"{ \n \"codeName\": \"Limit-Buy-Orders\", \n \"singularVariableName\": \"limitBuyOrder\", \n \"pluralVariableName\": \"limitBuyOrders\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"df8cfaa4-a4d4-4bc1-9fa2-4f8e91e45a87","savedPayload":{"position":{"x":32857.1637599333,"y":18821.94605972873},"targetPosition":{"x":32633.674294075357,"y":18795.918023872517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"12652573-9506-4d3e-82bb-64b1bb9e7ce0","savedPayload":{"position":{"x":32830.19113921421,"y":18905.4905093635},"targetPosition":{"x":32633.674294075357,"y":18795.918023872517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"b0dc1303-0b65-4328-b885-f33d4ef395a6","savedPayload":{"position":{"x":33291.47033537298,"y":18905.46851399763},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"451e4e45-854c-4b9f-ac75-ddfe076fb6d8","savedPayload":{"position":{"x":33313.497129381954,"y":18943.743911362602},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"fa7958e6-31e1-4216-b3bf-f341cae3ad92","savedPayload":{"position":{"x":33331.66621336255,"y":18983.99400558692},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"f3230b63-049f-457a-abc1-9117d8443337","savedPayload":{"position":{"x":33345.802609103805,"y":19025.831166260257},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"544aae22-e5cf-41d2-912e-f19699a7f65a","savedPayload":{"position":{"x":33355.770175386984,"y":19068.852478654822},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7cccabcc-97ae-4e46-86b4-70c8b6ab73c5","savedPayload":{"position":{"x":33361.47291909996,"y":19112.64362401441},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"3f94ee88-bb65-4f46-9cef-c3468b2e5831","savedPayload":{"position":{"x":33362.85591970333,"y":19156.78286967053},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"fbe17bbd-1af9-4b97-be44-f267039077e5","savedPayload":{"position":{"x":33359.90585814527,"y":19200.845130558548},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"593c0354-1f6a-4ec1-879b-13f95de9d66d","savedPayload":{"position":{"x":33352.65114513124,"y":19244.406063019236},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7a473c6b-849a-46f7-befa-661675c6b6a7","savedPayload":{"position":{"x":33341.161647513414,"y":19287.046151460163},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7e05bfad-d3ba-4170-bb97-b02911c65b81","savedPayload":{"position":{"x":33325.54801543463,"y":19328.3547485202},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderCounters\"\n}","project":"Superalgos","id":"e86cdc19-1330-4dbd-b0d9-6300bb84b504","savedPayload":{"position":{"x":33305.960616707096,"y":19367.934029828088},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"dc8ff39f-2ebf-4097-a324-69714556e67e","savedPayload":{"position":{"x":33282.58808868812,"y":19405.402825268593},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"e9f153ec-763f-45ce-ab8e-9095762a8b5c","savedPayload":{"position":{"x":33255.65552159924,"y":19440.40028985909},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"45ca3d8c-ba98-4ff9-8825-d515ad54d235","savedPayload":{"position":{"x":33225.422290784365,"y":19472.589378884026},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lock","config":"{\n \"codeName\": \"lock\",\n \"isString\": true\n}","project":"Superalgos","id":"0952905d-7adc-497d-859c-9bf80bd5753c","savedPayload":{"position":{"x":33192.17955878342,"y":19501.66009381973},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"7becceb8-d380-4e4e-b5ce-70b63b32445f","savedPayload":{"position":{"x":33156.24747127788,"y":19527.332467789714},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"4deb6a9d-3914-4a70-b2f5-992a09504eec","savedPayload":{"position":{"x":33117.97207391291,"y":19549.35926179869},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"3213e0e6-5b5f-4e9a-b67e-33f596bad152","savedPayload":{"position":{"x":33077.72197968859,"y":19567.52834577929},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"737e90c6-6468-4873-a786-8e998b39163b","savedPayload":{"position":{"x":33035.88481901525,"y":19581.66474152054},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"08461bfb-7f11-40d4-96a8-0b84ab258efe","savedPayload":{"position":{"x":32992.86350662069,"y":19591.63230780372},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"1c6d07ec-602d-412b-b384-b9170f8bb8de","savedPayload":{"position":{"x":32949.072361261104,"y":19597.335051516693},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"bb16c953-c112-4828-8f29-6604be02b427","savedPayload":{"position":{"x":32904.93311560498,"y":19598.718052120064},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"a698c86e-8997-4053-9bd7-222876eb9a74","savedPayload":{"position":{"x":32860.870854716966,"y":19595.767990562006},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"07aef603-7b78-4446-b0e2-03c365d5941c","savedPayload":{"position":{"x":32817.309922256274,"y":19588.51327754798},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Base Asset","config":"{\n \"codeName\": \"actualSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"d28dd916-3d2e-459c-9899-4dc31385242d","savedPayload":{"position":{"x":32774.66983381535,"y":19577.02377993015},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Quoted Asset","config":"{\n \"codeName\": \"actualSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"b5bedab9-5eb2-4334-9c65-901f03abf58c","savedPayload":{"position":{"x":32733.36123675531,"y":19561.410147851366},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Base Asset","config":"{\n \"codeName\": \"amountReceivedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"0c5084c6-c8cd-4985-8971-2055b7e81781","savedPayload":{"position":{"x":32693.781955447423,"y":19541.822749123832},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Quoted Asset","config":"{\n \"codeName\": \"amountReceivedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"980d1de1-2e7e-434c-88c8-e0990cefff6d","savedPayload":{"position":{"x":32656.313160006917,"y":19518.450221104853},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Base Asset","config":"{ \n\"codeName\": \"feesToBePaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"cc86032e-ef23-4fbd-920a-11e92467a2f8","savedPayload":{"position":{"x":32621.31569541642,"y":19491.517654015974},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesToBePaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"5c1dcd41-a39e-4933-b591-3a8f1c2d8de9","savedPayload":{"position":{"x":32589.126606391485,"y":19461.284423201105},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d3c594aa-6573-44f7-b93e-2bd2b0d4134e","savedPayload":{"position":{"x":32912.92692642938,"y":19148.789058846123},"targetPosition":{"x":32633.674294075357,"y":18795.918023872517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"4c827ee0-a29b-4b65-8438-03e2ea98b410","savedPayload":{"position":{"x":32633.674294075357,"y":18795.918023872517},"targetPosition":{"x":32240.64060379765,"y":18576.773052890552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Limit Buy Orders","id":"17ec46bd-e5c0-48d5-a3b6-e108cc835f17"}}},{"type":"Product Definition","name":"Limit Sell Orders","config":"{ \n \"codeName\": \"Limit-Sell-Orders\", \n \"singularVariableName\": \"limitSellOrder\", \n \"pluralVariableName\": \"limitSellOrders\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"f645108f-4648-497f-b361-0be5b84c233a","savedPayload":{"position":{"x":32689.732192879168,"y":19065.165671538474},"targetPosition":{"x":32499.6682833562,"y":18944.746776439548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"e98191d1-5b13-42eb-bd52-31e3c6830188","savedPayload":{"position":{"x":32629.182123135477,"y":19128.733638214046},"targetPosition":{"x":32499.6682833562,"y":18944.746776439548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"5d3f01ca-9d2b-4446-906c-0f9dfcf8016f","savedPayload":{"position":{"x":33044.78986171716,"y":19328.85536348067},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"ef7f6f85-9aac-4eb1-935e-84c03beb5ae0","savedPayload":{"position":{"x":33048.028244854024,"y":19372.897372658488},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"68c5cf4d-ee84-4d53-be73-923d6ec0c070","savedPayload":{"position":{"x":33046.93416249697,"y":19417.04472457858},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"f551a912-c93a-49a5-8ec6-b23845504195","savedPayload":{"position":{"x":33041.51815125717,"y":19460.87225610855},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"5ca3123d-351b-4b1b-9bdd-2be83cb30d4b","savedPayload":{"position":{"x":33031.83237028358,"y":19503.957884161206},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"a4d2dcb3-66b5-4689-9ff5-6e79ca264c3a","savedPayload":{"position":{"x":33017.97009894173,"y":19545.886670585394},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"74cfaaa3-4241-4585-bb78-afe6ab4fad13","savedPayload":{"position":{"x":33000.064838482554,"y":19586.25481824725},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e79e457e-0f39-4444-b196-e2ab8e9d51b3","savedPayload":{"position":{"x":32978.28902635228,"y":19624.67355981731},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"26467972-56e9-445c-84cc-043cf332e7cf","savedPayload":{"position":{"x":32952.85237552559,"y":19660.77290181244},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"259e069d-8c48-4b18-b3be-876eb376edfd","savedPayload":{"position":{"x":32923.99985485503,"y":19694.205187835312},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"ab79d27c-63b2-4b9c-986c-69551d4acda6","savedPayload":{"position":{"x":32892.00932988705,"y":19724.648446695588},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderCounters\"\n}","project":"Superalgos","id":"df8ad782-de40-443e-9c25-0c9fd06c0ddd","savedPayload":{"position":{"x":32857.1888868649,"y":19751.809493168457},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"2adf7743-fa8c-484c-b2b2-16c144f2aa8c","savedPayload":{"position":{"x":32819.87386568967,"y":19775.42675152865},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"fd5472c9-a36f-4281-891d-57380ca2ef6c","savedPayload":{"position":{"x":32780.42363041373,"y":19795.27277466765},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"87559a66-ff26-4cfb-b9db-baa312369ee1","savedPayload":{"position":{"x":32739.218108368503,"y":19811.156434533696},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lock","config":"{\n \"codeName\": \"lock\",\n \"isString\": true\n}","project":"Superalgos","id":"aee3133b-1078-4262-84da-01e16ab7d491","savedPayload":{"position":{"x":32696.654131256495,"y":19822.924762799375},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"84f5a086-9b8d-4296-bba1-bccfc56fb263","savedPayload":{"position":{"x":32653.14161344514,"y":19830.464424030273},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"8bf3e674-bbc9-4ff6-bcba-c9487d5215a3","savedPayload":{"position":{"x":32609.09960426732,"y":19833.70280716714},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"1d59f7dc-e3c9-4456-8980-3fded2a58f1a","savedPayload":{"position":{"x":32564.95225234723,"y":19832.60872481008},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"8a2fa2ac-a644-46bd-ad48-8acd59807416","savedPayload":{"position":{"x":32521.124720817257,"y":19827.19271357029},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"fd203e76-3248-4806-98bc-3dd66c8c4964","savedPayload":{"position":{"x":32478.039092764604,"y":19817.506932596687},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2967221c-0ec9-41e4-8185-689147f647eb","savedPayload":{"position":{"x":32436.110306340415,"y":19803.644661254846},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"996a2f7a-28d7-4bbd-9695-3d29119b3008","savedPayload":{"position":{"x":32395.74215867856,"y":19785.73940079567},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4056be3b-3774-4537-8902-06ecf35d9958","savedPayload":{"position":{"x":32357.3234171085,"y":19763.963588665392},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"ed176195-45a7-4fa0-92d0-ac7a4feab4bc","savedPayload":{"position":{"x":32321.22407511337,"y":19738.526937838702},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Base Asset","config":"{\n \"codeName\": \"actualSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"d4610df3-78d9-49fc-8218-be21473b12b6","savedPayload":{"position":{"x":32287.791789090494,"y":19709.674417168142},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Quoted Asset","config":"{\n \"codeName\": \"actualSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"f0112290-2f1b-42cc-ab0e-51601b9b44e0","savedPayload":{"position":{"x":32257.34853023022,"y":19677.683892200166},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Base Asset","config":"{\n \"codeName\": \"amountReceivedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"aa23a704-83fd-4c85-a429-7c6228e6c373","savedPayload":{"position":{"x":32230.187483757352,"y":19642.863449178014},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Quoted Asset","config":"{\n \"codeName\": \"amountReceivedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"0f2548c2-6dfd-4858-94f2-4c711909dc60","savedPayload":{"position":{"x":32206.57022539716,"y":19605.54842800278},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Base Asset","config":"{ \n\"codeName\": \"feesToBePaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"3f1abc5c-e271-453b-ad96-755d827b8e79","savedPayload":{"position":{"x":32186.72420225816,"y":19566.098192726848},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesToBePaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"dc782a78-4e32-4e52-9e9e-c57770f06536","savedPayload":{"position":{"x":32170.840542392114,"y":19524.892670681616},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"38241371-e97c-4eb5-989e-26605c078620","savedPayload":{"position":{"x":32598.161207306348,"y":19383.83576961946},"targetPosition":{"x":32499.6682833562,"y":18944.746776439548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"2c753cd8-36d8-466c-bd80-1ebfa8e314dc","savedPayload":{"position":{"x":32499.6682833562,"y":18944.746776439548},"targetPosition":{"x":32240.64060379765,"y":18576.773052890552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Limit Sell Orders","id":"1ec8da3f-8749-430d-8ad9-35fffc0d61ec"}}},{"type":"Product Definition","name":"Last Market Order","config":"{ \n \"codeName\": \"Last-Market-Order\", \n \"singularVariableName\": \"lastMarketOrder\", \n \"pluralVariableName\": \"lastMarketOrders\",\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"768b42e9-59fe-494f-9e05-3be57fb17ca8","savedPayload":{"position":{"x":32433.35252886055,"y":19211.6531354826},"targetPosition":{"x":32314.35866393446,"y":19020.693820156135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"26a39916-4f2d-42ab-ae86-7ab622f80624","savedPayload":{"position":{"x":32351.217694002866,"y":19242.654203788927},"targetPosition":{"x":32314.35866393446,"y":19020.693820156135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"8dbd8444-1037-4ab0-888b-dd49ffbfdc8b","savedPayload":{"position":{"x":32638.837765286953,"y":19603.28308766709},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"db3b180d-b86f-4749-a8a7-8d5d7689f032","savedPayload":{"position":{"x":32622.646336055288,"y":19644.368648600295},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"fbef9773-d1c5-4ac2-9ce3-287dd94fd114","savedPayload":{"position":{"x":32602.50578378943,"y":19683.669333736645},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"b9f73cfb-1c24-4ce7-a9ac-184841d1e16a","savedPayload":{"position":{"x":32578.610073017648,"y":19720.806655994336},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"9e7d08f0-4218-447b-8a13-54211abc880c","savedPayload":{"position":{"x":32551.189332497397,"y":19755.422962658704},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f8dafa7f-c43a-4dc9-909a-85eb44e49dbd","savedPayload":{"position":{"x":32520.50763894959,"y":19787.18487977337},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"1a84e99a-ccb0-4483-90c6-f99c396b0dc8","savedPayload":{"position":{"x":32486.860473855417,"y":19815.786522713686},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b098ae78-9591-4d50-8c01-09d5775d27ff","savedPayload":{"position":{"x":32450.571877808135,"y":19840.952442022895},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"9bd09a1b-af71-4467-b571-6815ddc01c7d","savedPayload":{"position":{"x":32411.99132982505,"y":19862.440276140955},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"c9301d25-01f7-4ae9-bd3b-184eedac1998","savedPayload":{"position":{"x":32371.490381673517,"y":19880.043085478865},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"89ad4f68-83b2-4f5b-9aa5-1db1815b12fd","savedPayload":{"position":{"x":32329.459079624296,"y":19893.591345360026},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderCounters\"\n}","project":"Superalgos","id":"10fdf7b0-2fb7-4692-86fe-0d5481e90b93","savedPayload":{"position":{"x":32286.302208092773,"y":19902.95457863555},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"e5946038-66fd-4f81-a503-ac98a61095bb","savedPayload":{"position":{"x":32242.43539134374,"y":19908.04261225053},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderStatistics\"\n}","project":"Superalgos","id":"9b802d6d-35f2-4535-8062-e3dc2b782574","savedPayload":{"position":{"x":32198.281090802535,"y":19908.806445659855},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"8dba345d-5995-4973-a80f-99cd5c07d106","savedPayload":{"position":{"x":32154.264536520564,"y":19905.23872273023},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lock","config":"{\n \"codeName\": \"lock\",\n \"isString\": true\n}","project":"Superalgos","id":"8255158c-b589-4b7b-9f8e-c66ec0ee1ed3","savedPayload":{"position":{"x":32110.80963197746,"y":19897.373802583796},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"9b78302a-2d32-45e1-84c9-7fa34ea3f378","savedPayload":{"position":{"x":32068.334871658837,"y":19885.287428700958},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"bb170388-df93-4218-a35b-dcf7a42d261b","savedPayload":{"position":{"x":32027.24931072563,"y":19869.09599946929},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"6067ba50-8879-4d74-8bc6-11b77677fbea","savedPayload":{"position":{"x":31987.94862558928,"y":19848.955447203436},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"5bdb31c2-8bfb-4ac9-8492-3d3d76c20e71","savedPayload":{"position":{"x":31950.81130333159,"y":19825.059736431653},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"eaf268d2-5576-4da0-9d30-708bd68f7a9c","savedPayload":{"position":{"x":31916.194996667222,"y":19797.638995911402},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"a050f0e0-b844-4c9f-ad32-85af779a59d5","savedPayload":{"position":{"x":31884.433079552557,"y":19766.957302363597},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"fb89644d-9ce1-4ee5-8b4a-ccbcff36ac8b","savedPayload":{"position":{"x":31855.83143661224,"y":19733.310137269422},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"fd00ddf7-d367-4ea6-a289-a29a15b41aab","savedPayload":{"position":{"x":31830.66551730303,"y":19697.02154122214},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"9e87631f-fcf4-4d3d-837d-82e7d12bf94f","savedPayload":{"position":{"x":31809.17768318497,"y":19658.440993239055},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Base Asset","config":"{\n \"codeName\": \"actualSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderBaseAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"d8d0f0b6-9164-4166-af6b-adac7a1891b2","savedPayload":{"position":{"x":31791.57487384706,"y":19617.940045087522},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Quoted Asset","config":"{\n \"codeName\": \"actualSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderQuotedAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"1bf66ce6-4819-4d7d-8853-f1f85d6c9c32","savedPayload":{"position":{"x":31778.0266139659,"y":19575.9087430383},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Base Asset","config":"{\n \"codeName\": \"amountReceivedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderBaseAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"20ae12e0-bde2-4e56-9df1-afec37006b55","savedPayload":{"position":{"x":31768.663380690377,"y":19532.751871506778},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Quoted Asset","config":"{\n \"codeName\": \"amountReceivedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderQuotedAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"fa076306-c699-4067-bcf2-0890b5b72748","savedPayload":{"position":{"x":31763.575347075395,"y":19488.885054757746},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Base Asset","config":"{ \n\"codeName\": \"feesToBePaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderBaseAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"17fef0b6-4279-4fda-8d40-015ec3f52529","savedPayload":{"position":{"x":31762.81151366607,"y":19444.73075421654},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesToBePaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderQuotedAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"0336d6d0-3d2d-4a87-b7b3-cd48c43c157d","savedPayload":{"position":{"x":31766.379236595694,"y":19400.71419993457},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9292833c-b6ec-4734-b6ec-552aeecb540d","savedPayload":{"position":{"x":32212.58414795596,"y":19459.033811369965},"targetPosition":{"x":32314.35866393446,"y":19020.693820156135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"6df1ac87-92d5-4788-b0bc-f3543b283ef0","savedPayload":{"position":{"x":32314.35866393446,"y":19020.693820156135},"targetPosition":{"x":32240.64060379765,"y":18576.773052890552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Last Market Order","id":"05aa37c8-9f6d-4276-96a6-3123707e7686"}}},{"type":"Product Definition","name":"Last Limit Order","config":"{ \n \"codeName\": \"Last-Limit-Order\", \n \"singularVariableName\": \"lastLimitOrder\", \n \"pluralVariableName\": \"lastLimitOrders\",\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"f9263cd7-460d-461c-be7b-ed2a69d38d11","savedPayload":{"position":{"x":32138.803904626562,"y":19232.39481277614},"targetPosition":{"x":32114.448278609947,"y":19008.716911584852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"f3d5b047-d9c2-4e71-8fce-6e9be3499556","savedPayload":{"position":{"x":32051.352116016096,"y":19224.688840932},"targetPosition":{"x":32114.448278609947,"y":19008.716911584852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"f5ab0d81-63ce-48d6-99f8-51c6bf2a6e97","savedPayload":{"position":{"x":32154.017837456086,"y":19674.39791014662},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"6e9e3c64-3e53-4049-b251-3a9e1e63b24c","savedPayload":{"position":{"x":32121.603506990064,"y":19704.389523611055},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"53856545-fe51-4ec7-bbb0-e398eb6fdbd0","savedPayload":{"position":{"x":32086.405568199327,"y":19731.05955928114},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"4b0399dd-39b4-4ef5-9c57-48f7a2465581","savedPayload":{"position":{"x":32048.76299647557,"y":19754.151170134046},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"552cb522-d091-446c-b0c7-8644d9a39e9c","savedPayload":{"position":{"x":32009.03831036202,"y":19773.441971334105},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"34b51b42-1c7f-4691-81ff-e3baba398a2c","savedPayload":{"position":{"x":31967.61408030167,"y":19788.746181920334},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"4b2251b9-462f-4b9b-850c-2848dac1d08b","savedPayload":{"position":{"x":31924.889244274793,"y":19799.91641397865},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"22e3ead2-3ec4-437f-99d4-eb1cf2465f34","savedPayload":{"position":{"x":31881.275265808097,"y":19806.845092068073},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f1ba05d1-f727-4495-9bf9-aeb656da4e7b","savedPayload":{"position":{"x":31837.192171356044,"y":19809.46548923099},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"53acfd34-51ce-49b9-b42a-03706b2e7a86","savedPayload":{"position":{"x":31793.064505216473,"y":19807.752369610276},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"1f8cb548-32a3-49c3-b1b1-20eb6130c58c","savedPayload":{"position":{"x":31749.317240936947,"y":19801.72223148436},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderCounters\"\n}","project":"Superalgos","id":"d4c99d02-1038-4ee5-8f67-6804d89ab65e","savedPayload":{"position":{"x":31706.371688587165,"y":19791.4331483798},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"fbd59c15-2863-4257-9211-7492ebb69c93","savedPayload":{"position":{"x":31664.641437312686,"y":19776.984209791488},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderStatistics\"\n}","project":"Superalgos","id":"ead97685-20c5-44a7-b86c-33e7a55e416a","savedPayload":{"position":{"x":31624.528372245353,"y":19758.51456689661},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"97b1f010-04b2-4016-b313-48ea865b49a4","savedPayload":{"position":{"x":31586.418804129797,"y":19736.20209245279},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lock","config":"{\n \"codeName\": \"lock\",\n \"isString\": true\n}","project":"Superalgos","id":"eba510cb-b866-45ba-984e-153216f4f3c6","savedPayload":{"position":{"x":31550.679748939787,"y":19710.26166778615},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"af94d067-ae2f-4610-b546-6d97904957e2","savedPayload":{"position":{"x":31517.655393313747,"y":19680.94311336672},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"839364f2-db1b-4bfd-b61c-015e70f5d171","savedPayload":{"position":{"x":31487.663779849314,"y":19648.5287829007},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"919ab388-ca0a-4d89-b0ea-929090ef1bf8","savedPayload":{"position":{"x":31460.993744179228,"y":19613.33084410996},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"1cd292aa-6c43-44ad-90e3-6f49f71be40f","savedPayload":{"position":{"x":31437.902133326323,"y":19575.688272386204},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"9abd9e70-fad1-4da5-86b8-fb5e1daf6a2a","savedPayload":{"position":{"x":31418.611332126264,"y":19535.963586272654},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3819475a-dec6-4cd3-8d9a-c10a9193d592","savedPayload":{"position":{"x":31403.307121540034,"y":19494.539356212306},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"034fc727-1072-4cbf-8540-693d0a34d4e6","savedPayload":{"position":{"x":31392.136889481717,"y":19451.814520185428},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"598761f1-33e1-4edb-bff9-33b2b8ba2933","savedPayload":{"position":{"x":31385.208211392295,"y":19408.200541718732},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"182d9d37-1cef-43ed-93c8-7b9bebdf150f","savedPayload":{"position":{"x":31382.587814229377,"y":19364.117447266675},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Base Asset","config":"{\n \"codeName\": \"actualSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderBaseAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4fbfcb6e-829f-47ae-817c-9c1c000319d7","savedPayload":{"position":{"x":31384.300933850092,"y":19319.989781127108},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Quoted Asset","config":"{\n \"codeName\": \"actualSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderQuotedAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"a8b9518b-c4b5-4778-81b1-9fe05ac07f03","savedPayload":{"position":{"x":31390.33107197601,"y":19276.242516847582},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Base Asset","config":"{\n \"codeName\": \"amountReceivedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderBaseAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"5cb701a7-772c-4f2f-8807-a0914f6e9bbc","savedPayload":{"position":{"x":31400.620155080567,"y":19233.2969644978},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Quoted Asset","config":"{\n \"codeName\": \"amountReceivedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderQuotedAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"c35a38b3-480a-4414-9b5e-c31f34a902f1","savedPayload":{"position":{"x":31415.06909366888,"y":19191.56671322332},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Base Asset","config":"{ \n\"codeName\": \"feesToBePaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderBaseAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"d252669b-695b-4862-a3ce-4d6cecb2aa73","savedPayload":{"position":{"x":31433.538736563758,"y":19151.453648155988},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesToBePaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderQuotedAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"5c4ac5b8-307a-4316-bea0-75b90976d070","savedPayload":{"position":{"x":31455.85121100758,"y":19113.34408004043},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e82595f6-184f-4a0c-8385-1364f22ea8e0","savedPayload":{"position":{"x":31832.564013774867,"y":19359.4892896855},"targetPosition":{"x":32114.448278609947,"y":19008.716911584852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"c24ec6a1-e937-4d20-93eb-4faf2a0becc3","savedPayload":{"position":{"x":32114.448278609947,"y":19008.716911584852},"targetPosition":{"x":32240.64060379765,"y":18576.773052890552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Last Limit Order","id":"2284d48f-cf52-4277-b81e-c62afef88b71"}}}],"productDefinitionFolders":[],"id":"1e82c85a-37f7-4610-a982-e14ab71a5286","savedPayload":{"position":{"x":32240.64060379765,"y":18576.773052890552},"targetPosition":{"x":31906.22543233282,"y":18275.664280029065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"db019824-6897-461b-b39b-ebe905a84231","savedPayload":{"position":{"x":31906.22543233282,"y":18275.664280029065},"targetPosition":{"x":31478.25,"y":18414.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Trading System","project":"Superalgos","products":[{"type":"Product Definition","name":"Trading System Errors","config":"{\n \"codeName\": \"Trading-System-Errors\",\n \"singularVariableName\": \"tradingSystemError\",\n \"pluralVariableName\": \"tradingSystemErrors\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"errors\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"2ef33675-fc52-49fd-a8ef-bc5da1711dd1","savedPayload":{"position":{"x":32223.254002732014,"y":17970.938695408313},"targetPosition":{"x":32170.728795864434,"y":18189.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"2d0dd4c2-4f4c-4d8c-b9a5-9ca62f186369","savedPayload":{"position":{"x":32302.98047763024,"y":18007.693103763428},"targetPosition":{"x":32170.728795864434,"y":18189.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"214b7654-8ea4-4b39-8f2d-8fb64d9a4b23","savedPayload":{"position":{"x":32415.098039711684,"y":17853.376518347224},"targetPosition":{"x":32362.572832844104,"y":18072.159750436702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"6efbb2e5-0be8-42c2-99c6-0f9ebe42b174","savedPayload":{"position":{"x":32554.416869823774,"y":17954.597573375613},"targetPosition":{"x":32362.572832844104,"y":18072.159750436702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Errors","config":"{\n \"codeName\": \"errors\",\n \"isString\": false\n}","project":"Superalgos","id":"e994737a-9a14-40f0-8ad0-a151c799a094","savedPayload":{"position":{"x":32581.35606493358,"y":18124.684957304282},"targetPosition":{"x":32362.572832844104,"y":18072.159750436702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cbcd5cb4-66b1-4535-9592-0164a480b7f7","savedPayload":{"position":{"x":32362.572832844104,"y":18072.159750436702},"targetPosition":{"x":32170.728795864434,"y":18189.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"1d9c570d-77c7-40ac-a61e-c5a57a411de8","savedPayload":{"position":{"x":32170.728795864434,"y":18189.72192749779},"targetPosition":{"x":31906.22543233282,"y":18553.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Errors","id":"64684730-d049-4d3c-8013-b48c5438417e"}}},{"type":"Product Definition","name":"Trading System Highlights","config":"{\n \"codeName\": \"Trading-System-Highlights\",\n \"singularVariableName\": \"tradingSystemHighlight\",\n \"pluralVariableName\": \"tradingSystemHighlights\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"highlights\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"6e0f951c-25e7-4b92-85da-8be04d424bd0","savedPayload":{"position":{"x":32387.845256862634,"y":18097.432174455233},"targetPosition":{"x":32270.283079801546,"y":18289.276211434903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"fa53ecfb-a558-4810-b6f8-1f9c6c8bfc5b","savedPayload":{"position":{"x":32452.31190353591,"y":18157.024529669096},"targetPosition":{"x":32270.283079801546,"y":18289.276211434903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"9fefb3c2-2293-4ffa-8db8-9430dd662bcf","savedPayload":{"position":{"x":32606.628488952112,"y":18044.906967587653},"targetPosition":{"x":32489.066311891023,"y":18236.751004567323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"431d65d9-1f6d-4e73-8655-cbf36854d3cf","savedPayload":{"position":{"x":32707.8495439805,"y":18184.225797699743},"targetPosition":{"x":32489.066311891023,"y":18236.751004567323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Highlights","config":"{\n \"codeName\": \"highlights\",\n \"isString\": false\n}","project":"Superalgos","id":"6355df8f-6845-4652-8ebc-90468c526949","savedPayload":{"position":{"x":32680.910348870693,"y":18354.31318162841},"targetPosition":{"x":32489.066311891023,"y":18236.751004567323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"af6916b9-83d1-478b-ac92-35ea4f9b8a46","savedPayload":{"position":{"x":32489.066311891023,"y":18236.751004567323},"targetPosition":{"x":32270.283079801546,"y":18289.276211434903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"319f660a-78be-4cf4-8052-877837cad806","savedPayload":{"position":{"x":32270.283079801546,"y":18289.276211434903},"targetPosition":{"x":31906.22543233282,"y":18553.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Highlights","id":"d979c9f0-530a-41d3-a357-b57a3e4f2201"}}},{"type":"Product Definition","name":"Trading System Values","config":"{\n \"codeName\": \"Trading-System-Values\",\n \"singularVariableName\": \"tradingSystemValue\",\n \"pluralVariableName\": \"tradingSystemValues\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"values\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"9c4ec2f8-f4a8-45b9-aba3-b093a7b8f86a","savedPayload":{"position":{"x":32505.292206925646,"y":18268.5961166235},"targetPosition":{"x":32334.20086466564,"y":18414.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"b3d3fe62-e714-4cb9-a78d-55bc0add1d7c","savedPayload":{"position":{"x":32548.188580832048,"y":18345.193103763428},"targetPosition":{"x":32334.20086466564,"y":18414.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"956e9238-3cd9-4258-9295-77d3ad473508","savedPayload":{"position":{"x":32729.5986070156,"y":18286.249413162266},"targetPosition":{"x":32558.507264755593,"y":18432.375224036557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"dbb03ed7-1d1f-4105-b559-eac7b4d8d4d9","savedPayload":{"position":{"x":32782.81366484555,"y":18450.028520575324},"targetPosition":{"x":32558.507264755593,"y":18432.375224036557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Values","config":"{\n \"codeName\": \"values\",\n \"isString\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"2349e00c-f032-432b-8c9a-07c1606574e8","savedPayload":{"position":{"x":32704.633075629885,"y":18603.466566296564},"targetPosition":{"x":32558.507264755593,"y":18432.375224036557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a65db5f6-3b75-435d-8155-2e2c7af39279","savedPayload":{"position":{"x":32558.507264755593,"y":18432.375224036557},"targetPosition":{"x":32334.20086466564,"y":18414.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"c90c009b-588d-45d4-aff1-05e375181dfa","savedPayload":{"position":{"x":32334.20086466564,"y":18414.72192749779},"targetPosition":{"x":31906.22543233282,"y":18553.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Values","id":"476925ed-e2ac-443d-82f3-501b64ca6c87"}}},{"type":"Product Definition","name":"Trading System Status","config":"{\n \"codeName\": \"Trading-System-Status\",\n \"singularVariableName\": \"tradingSystemState\",\n \"pluralVariableName\": \"tradingSystemStatus\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"2b83dc93-dc14-44d9-8f8c-889f39a952da","savedPayload":{"position":{"x":32564.098327147858,"y":18467.67580268437},"targetPosition":{"x":32356.22543233282,"y":18553.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0f8dcda3-1eab-439d-956c-c6eb9b1c481f","savedPayload":{"position":{"x":32581.22543233282,"y":18553.779574966517},"targetPosition":{"x":32356.22543233282,"y":18553.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"214b03c2-5fc3-4157-bcfd-4796b0565d98","savedPayload":{"position":{"x":32771.9712219629,"y":18553.779574966517},"targetPosition":{"x":32564.098327147858,"y":18639.883347248662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"78c4b87a-592d-49ca-9c8c-f5d0dae8d7ba","savedPayload":{"position":{"x":32771.9712219629,"y":18725.987119530808},"targetPosition":{"x":32564.098327147858,"y":18639.883347248662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{\n \"codeName\": \"status\",\n \"isString\": false\n}","project":"Superalgos","id":"fdb4b903-20ff-4a67-a03f-f02e67b5d81b","savedPayload":{"position":{"x":32650.202099430004,"y":18847.7562420637},"targetPosition":{"x":32564.098327147858,"y":18639.883347248662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04b0fd4c-df6f-40df-9567-60a735d126e6","savedPayload":{"position":{"x":32564.098327147858,"y":18639.883347248662},"targetPosition":{"x":32356.22543233282,"y":18553.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"eed48c80-35c5-49fa-b12d-18e7280ffb8f","savedPayload":{"position":{"x":32356.22543233282,"y":18553.779574966517},"targetPosition":{"x":31906.22543233282,"y":18553.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Status","id":"0437448d-8740-496b-8fce-d3804be81a2b"}}},{"type":"Product Definition","name":"Trading System Progress","config":"{\n \"codeName\": \"Trading-System-Progress\",\n \"singularVariableName\": \"tradingSystemProgress\",\n \"pluralVariableName\": \"tradingSystemProgresses\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"progress\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"77735fc0-9ce6-4dec-a3ad-8075a22eda40","savedPayload":{"position":{"x":32558.507264755593,"y":18675.183925896476},"targetPosition":{"x":32334.20086466564,"y":18692.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"2fde11bd-4515-4a4e-9dc0-f6869dd3a04e","savedPayload":{"position":{"x":32548.188580832048,"y":18762.366046169605},"targetPosition":{"x":32334.20086466564,"y":18692.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"076e6f4d-1b05-42e1-abc6-c50c935ef056","savedPayload":{"position":{"x":32729.5986070156,"y":18821.309736770767},"targetPosition":{"x":32505.292206925646,"y":18838.963033309534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"280a33ea-29cc-41ab-9ffc-31c38a8e8d60","savedPayload":{"position":{"x":32676.38354918565,"y":18985.088844183825},"targetPosition":{"x":32505.292206925646,"y":18838.963033309534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Progress","config":"{\n \"codeName\": \"progress\",\n \"isString\": false\n}","project":"Superalgos","id":"5964f3e5-82af-47de-9492-19c634d4f5ad","savedPayload":{"position":{"x":32522.945503464412,"y":19063.269433399488},"targetPosition":{"x":32505.292206925646,"y":18838.963033309534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"218da162-dd8c-4f77-9150-3d2eee6e6e0d","savedPayload":{"position":{"x":32505.292206925646,"y":18838.963033309534},"targetPosition":{"x":32334.20086466564,"y":18692.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"04c8606b-5e59-4e7d-b3ac-387bfffcd300","savedPayload":{"position":{"x":32334.20086466564,"y":18692.837222435242},"targetPosition":{"x":31906.22543233282,"y":18553.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Progress","id":"99aecc8d-2bc4-4748-b642-78888c2d35eb"}}},{"type":"Product Definition","name":"Trading System Running","config":"{\n \"codeName\": \"Trading-System-Running\",\n \"singularVariableName\": \"tradingSystemRun\",\n \"pluralVariableName\": \"tradingSystemRunning\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"running\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"c7b45884-6cdf-43f7-a1e5-c5325effd207","savedPayload":{"position":{"x":32489.066311891023,"y":18870.80814536571},"targetPosition":{"x":32270.283079801546,"y":18818.28293849813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a21cbc62-e6d8-4286-b0ff-430071d46700","savedPayload":{"position":{"x":32452.31190353591,"y":18950.534620263938},"targetPosition":{"x":32270.283079801546,"y":18818.28293849813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"42cccc8c-a020-4cb2-8a40-4d3dacc86597","savedPayload":{"position":{"x":32606.628488952112,"y":19062.65218234538},"targetPosition":{"x":32387.845256862634,"y":19010.1269754778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"7fc1205e-ad17-40d0-bb05-21e8d1842b7c","savedPayload":{"position":{"x":32505.407433923723,"y":19201.97101245747},"targetPosition":{"x":32387.845256862634,"y":19010.1269754778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Running","config":"{\n \"codeName\": \"running\",\n \"isString\": false\n}","project":"Superalgos","id":"7c7cb8f0-6d6d-4761-b51c-70ee77c05811","savedPayload":{"position":{"x":32335.320049995054,"y":19228.910207567278},"targetPosition":{"x":32387.845256862634,"y":19010.1269754778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f2bf57f0-e966-4b75-a95f-ba206c266dae","savedPayload":{"position":{"x":32387.845256862634,"y":19010.1269754778},"targetPosition":{"x":32270.283079801546,"y":18818.28293849813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"17236f59-6ef2-4cc3-913c-1ff6db052236","savedPayload":{"position":{"x":32270.283079801546,"y":18818.28293849813},"targetPosition":{"x":31906.22543233282,"y":18553.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Running","id":"ac1e8218-af24-491f-a552-736d83d68c01"}}},{"type":"Product Definition","name":"Trading System Announcements","config":"{\n \"codeName\": \"Trading-System-Announcements\",\n \"singularVariableName\": \"tradingSystemAnnouncement\",\n \"pluralVariableName\": \"tradingSystemAnnouncements\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"announcements\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"9e29a710-30c0-4faa-b71a-f4ee109673a2","savedPayload":{"position":{"x":32362.572832844104,"y":19035.39939949633},"targetPosition":{"x":32170.728795864434,"y":18917.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"b7e24195-a9d0-45e7-9dba-447db8000feb","savedPayload":{"position":{"x":32302.98047763024,"y":19099.866046169605},"targetPosition":{"x":32170.728795864434,"y":18917.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"0487c17a-d445-4d37-b186-dc0e79e0dae7","savedPayload":{"position":{"x":32415.098039711684,"y":19254.18263158581},"targetPosition":{"x":32223.254002732014,"y":19136.62045452472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"cb847e27-30fe-43af-9b5f-19de453cc5f7","savedPayload":{"position":{"x":32275.779209599594,"y":19355.403686614198},"targetPosition":{"x":32223.254002732014,"y":19136.62045452472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Announcements","config":"{\n \"codeName\": \"announcements\",\n \"isString\": false\n}","project":"Superalgos","id":"b3aaeae8-ed67-4830-a49c-13baada2bc11","savedPayload":{"position":{"x":32105.691825670925,"y":19328.46449150439},"targetPosition":{"x":32223.254002732014,"y":19136.62045452472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"73ef953c-001b-474e-9221-23375777f3f3","savedPayload":{"position":{"x":32223.254002732014,"y":19136.62045452472},"targetPosition":{"x":32170.728795864434,"y":18917.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"4a6f828a-9671-431e-8257-fc920943581e","savedPayload":{"position":{"x":32170.728795864434,"y":18917.837222435242},"targetPosition":{"x":31906.22543233282,"y":18553.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Announcements","id":"0a3b8bea-749a-48ce-8b53-e4a731555b98"}}},{"type":"Product Definition","name":"Trading System Warnings","config":"{\n \"codeName\": \"Trading-System-Warnings\",\n \"singularVariableName\": \"tradingSystemWarning\",\n \"pluralVariableName\": \"tradingSystemWarnings\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"warnings\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0381cc1b-24c3-4705-9c76-94129e8605ff","savedPayload":{"position":{"x":32191.408890675837,"y":19152.846349559342},"targetPosition":{"x":32045.283079801546,"y":18981.755007299336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"b93b5cc3-7d61-4071-8eba-de15a4fea64b","savedPayload":{"position":{"x":32114.81190353591,"y":19195.742723465744},"targetPosition":{"x":32045.283079801546,"y":18981.755007299336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"9de05c23-cce3-4229-bb5b-6d893a7caf2b","savedPayload":{"position":{"x":32173.75559413707,"y":19377.152749649296},"targetPosition":{"x":32027.62978326278,"y":19206.06140738929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"64348c8c-f29d-4dc0-9028-18f02e8b03a3","savedPayload":{"position":{"x":32009.976486724012,"y":19430.367807479244},"targetPosition":{"x":32027.62978326278,"y":19206.06140738929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Warnings","config":"{\n \"codeName\": \"warnings\",\n \"isString\": false\n}","project":"Superalgos","id":"0d7f3ba2-e9a0-42b0-aaca-02d1911fa209","savedPayload":{"position":{"x":31856.538441002773,"y":19352.18721826358},"targetPosition":{"x":32027.62978326278,"y":19206.06140738929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f6021fb9-4897-4984-8475-bf136233005e","savedPayload":{"position":{"x":32027.62978326278,"y":19206.06140738929},"targetPosition":{"x":32045.283079801546,"y":18981.755007299336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"34310596-466a-4e9a-a5a2-256b0fe3e339","savedPayload":{"position":{"x":32045.283079801546,"y":18981.755007299336},"targetPosition":{"x":31906.22543233282,"y":18553.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Warnings","id":"a9709093-95c1-4b1b-aeb5-329c7505ab75"}}},{"type":"Product Definition","name":"Trading System Infos","config":"{\n \"codeName\": \"Trading-System-Infos\",\n \"singularVariableName\": \"tradingSystemInfo\",\n \"pluralVariableName\": \"tradingSystemInfos\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"infos\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"cd834a3e-1b23-4e15-a068-59c235a90f89","savedPayload":{"position":{"x":31992.329204614965,"y":19211.652469781555},"targetPosition":{"x":31906.22543233282,"y":19003.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"e24a4dcf-5adb-4c63-b9db-3ba2a7ece789","savedPayload":{"position":{"x":31906.22543233282,"y":19228.779574966517},"targetPosition":{"x":31906.22543233282,"y":19003.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"a3502c18-91c5-467b-aab5-deb330bf44bc","savedPayload":{"position":{"x":31906.22543233282,"y":19419.525364596593},"targetPosition":{"x":31820.121660050674,"y":19211.652469781555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"7b3f0c7c-1bb1-4477-af46-5cccfe2309cb","savedPayload":{"position":{"x":31734.01788776853,"y":19419.525364596593},"targetPosition":{"x":31820.121660050674,"y":19211.652469781555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Infos","config":"{\n \"codeName\": \"infos\",\n \"isString\": false\n}","project":"Superalgos","id":"2f73152b-cbcf-462d-ba3a-d35417d2ca9c","savedPayload":{"position":{"x":31612.248765235636,"y":19297.7562420637},"targetPosition":{"x":31820.121660050674,"y":19211.652469781555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"60ed1049-434c-45e8-9a49-e7561cdb3d6b","savedPayload":{"position":{"x":31820.121660050674,"y":19211.652469781555},"targetPosition":{"x":31906.22543233282,"y":19003.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"020ad519-0fc6-4f2f-9f26-b2c7de118fb8","savedPayload":{"position":{"x":31906.22543233282,"y":19003.779574966517},"targetPosition":{"x":31906.22543233282,"y":18553.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Infos","id":"f175df3b-a277-44bc-88db-dcf6b0e3fa38"}}}],"productDefinitionFolders":[],"id":"57d56564-1a8f-4ee9-acfb-389ec2d3375a","savedPayload":{"position":{"x":31906.22543233282,"y":18553.779574966517},"targetPosition":{"x":31478.25,"y":18414.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Simulation Objects","project":"Superalgos","products":[{"type":"Product Definition","name":"Episodes","config":"{\n \"codeName\": \"Episode-Objects\",\n \"singularVariableName\": \"episodeObject\",\n \"pluralVariableName\": \"episodeObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"38264ecd-10e7-4a62-a2ca-9b607c30e72c","savedPayload":{"position":{"x":32388.02206679628,"y":18624.38104543766},"targetPosition":{"x":32190.288216447338,"y":18731.741766496074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"cdc39b61-9aa5-46d5-9e80-915e0c2d545d","savedPayload":{"position":{"x":32414.055642905198,"y":18708.222862260853},"targetPosition":{"x":32190.288216447338,"y":18731.741766496074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"e7c507b1-7d60-4f5d-9213-4001c116852a","savedPayload":{"position":{"x":33407.29237834869,"y":18159.927643902327},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"387fc08a-670c-4ca7-a2b9-449d1abc17fb","savedPayload":{"position":{"x":33500.95682796331,"y":18206.627015808623},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"2cea2a9b-293e-4b6c-8266-25ab09d94a1c","savedPayload":{"position":{"x":33588.566485904914,"y":18263.88440217411},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"811f4049-1507-4cd0-a57b-8d38f0cefa79","savedPayload":{"position":{"x":33668.93658184281,"y":18330.92549507232},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"a25505b8-3a79-44c0-9a65-84c2acbde853","savedPayload":{"position":{"x":33740.980248103035,"y":18406.843678729714},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f06dc26f-dcd7-46d8-af5a-177db0354b16","savedPayload":{"position":{"x":33803.72321768916,"y":18490.612289948753},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"2c462bdb-cad9-4589-add4-10fdafa4b432","savedPayload":{"position":{"x":33856.3169995721,"y":18581.098501966397},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e3ea261e-5586-4578-97f6-e5d7139c6641","savedPayload":{"position":{"x":33898.05035307567,"y":18677.07864399275},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hits In Base Asset","config":"{ \n\"codeName\": \"hitsInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"hits\",\n \"decimals\": 0\n}","project":"Superalgos","id":"d4a1ae83-0774-49f5-8780-f3db92e7ac59","savedPayload":{"position":{"x":33928.35890618662,"y":18777.25474925929},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fails In Base Asset","config":"{ \n\"codeName\": \"failsInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"fails\",\n \"decimals\": 0\n}","project":"Superalgos","id":"39600b8b-e28f-4c5b-a44c-3a816c43a439","savedPayload":{"position":{"x":33946.83278771797,"y":18880.27210779278},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Ratio In Base Asset","config":"{ \n\"codeName\": \"hitRatioInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"hitRatio\",\n \"decimals\": 2\n}","project":"Superalgos","id":"f59830d2-1d39-47ff-b008-41c202c5f131","savedPayload":{"position":{"x":33953.222170113644,"y":18984.73758654368},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Base Asset","config":"{ \n\"codeName\": \"profitLossInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"02dfb7e5-a203-4c49-8ffc-6addba0f06c7","savedPayload":{"position":{"x":33947.44064793764,"y":19089.238469120723},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Base Asset","config":"{ \n\"codeName\": \"ROIInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"6bc1b577-8926-4c00-9091-3ddf6e86d105","savedPayload":{"position":{"x":33929.56640635927,"y":19192.361560356632},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Annualized Rate Of ReturnIn Base Asset","config":"{ \n\"codeName\": \"annualizedRateOfReturnInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"annualizedRateOfReturn\",\n \"decimals\": 2\n}","project":"Superalgos","id":"39e77c8f-3f22-45ea-8ad8-d28f7c0f3c0f","savedPayload":{"position":{"x":33899.8411638329,"y":19292.71229734845},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Base Asset","config":"{ \n\"codeName\": \"hitFailInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"e8384c2c-39b2-4d47-9828-f4968a6bc4e7","savedPayload":{"position":{"x":33858.66690327053,"y":19388.933608528434},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hits In Quoted Asset","config":"{ \n\"codeName\": \"hitsInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"hits\",\n \"decimals\": 0\n}","project":"Superalgos","id":"b31c6ade-c339-4129-ac5c-2383a9443c85","savedPayload":{"position":{"x":33806.6004359125,"y":19479.72426572898},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fails In Quoted Asset","config":"{ \n\"codeName\": \"failsInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"fails\",\n \"decimals\": 0\n}","project":"Superalgos","id":"0fe968f9-77ec-4258-bb12-7ac592665cf5","savedPayload":{"position":{"x":33744.345871410624,"y":19563.85648106136},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Ratio In Quoted Asset","config":"{ \n\"codeName\": \"hitRatioInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"hitRatio\",\n \"decimals\": 2\n}","project":"Superalgos","id":"5bbf2817-e7ed-4795-aecc-5ccefb04b6c1","savedPayload":{"position":{"x":33672.74509595309,"y":19640.192510640663},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Quoted Asset","config":"{ \n\"codeName\": \"profitLossInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"ae87f4f0-2dd4-4484-a803-b06096fbff58","savedPayload":{"position":{"x":33592.76638719799,"y":19707.700040620064},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Quoted Asset","config":"{ \n\"codeName\": \"ROIInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3dd87ddc-a9a9-4f94-8c14-ca651cb6b644","savedPayload":{"position":{"x":33505.491319979046,"y":19765.466147464664},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Annualized Rate Of ReturnIn Quoted Asset","config":"{ \n\"codeName\": \"annualizedRateOfReturnInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"annualizedRateOfReturn\",\n \"decimals\": 2\n}","project":"Superalgos","id":"8826c757-479b-498e-91ec-ccee35f9eef0","savedPayload":{"position":{"x":33412.10013986143,"y":19812.70964367622},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Quoted Asset","config":"{ \n\"codeName\": \"hitFailInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"aa3d008e-90a1-4e76-a389-68206925a8ee","savedPayload":{"position":{"x":33313.85580234516,"y":19848.79164201392},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Balance In Base Asset","config":"{ \n\"codeName\": \"beginBalanceInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"beginBalance\"\n}","project":"Superalgos","id":"a6826d46-bf05-4988-9314-8e41a3ecfce9","savedPayload":{"position":{"x":33212.086893558575,"y":19873.224195348343},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Balance In Base Asset","config":"{ \n\"codeName\": \"endBalanceInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"endBalance\"\n}","project":"Superalgos","id":"93c0d5a2-06cd-4bd9-bd2c-49fbab7d2bdb","savedPayload":{"position":{"x":33108.16966341008,"y":19885.676895309287},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Balance In Quoted Asset","config":"{ \n\"codeName\": \"beginBalanceInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"beginBalance\"\n}","project":"Superalgos","id":"fcf98b55-f145-484d-91ce-6e3417e3760d","savedPayload":{"position":{"x":33003.50941416911,"y":19885.981340492184},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Balance In Quoted Asset","config":"{ \n\"codeName\": \"endBalanceInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"endBalance\"\n}","project":"Superalgos","id":"e34b3fbc-a578-407d-ba84-055c56d52454","savedPayload":{"position":{"x":32899.52149616367,"y":19874.133413798216},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b5c2e7b4-cec1-4975-9abb-af447f80c59e","savedPayload":{"position":{"x":33053.22597782871,"y":18987.355576729606},"targetPosition":{"x":32190.288216447338,"y":18731.741766496074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"aeec080e-8caf-4976-8187-ba4e725b73b0","savedPayload":{"position":{"x":32190.288216447338,"y":18731.741766496074},"targetPosition":{"x":31742.753363531614,"y":18778.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Episode Objects","id":"b7320c91-b8aa-4642-bd11-a1efb2a88d39"}}},{"type":"Product Definition","name":"Strategies","config":"{\n \"codeName\": \"Strategy-Objects\",\n \"singularVariableName\": \"strategyObject\",\n \"pluralVariableName\": \"strategyObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategy\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"03d1a187-b188-4ad7-b99e-6e4f6c6f0278","savedPayload":{"position":{"x":32372.771717590287,"y":18967.700877719897},"targetPosition":{"x":32147.848819470786,"y":18961.811064350626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"58a5a046-53a1-43a7-bb76-0c29d94ef579","savedPayload":{"position":{"x":32353.39654744037,"y":19053.326809042683},"targetPosition":{"x":32147.848819470786,"y":18961.811064350626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"ffa3b94b-d147-42eb-943e-4e1661c0b8c4","savedPayload":{"position":{"x":32848.672032726594,"y":19065.58807432041},"targetPosition":{"x":32457.608378532976,"y":19288.229531306155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"95273be5-fbf1-42a5-87c3-29f5ecbaafa1","savedPayload":{"position":{"x":32890.59002184149,"y":19165.645288608095},"targetPosition":{"x":32457.608378532976,"y":19288.229531306155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"19988cef-f604-49a9-91f5-f8b1c93b0302","savedPayload":{"position":{"x":32907.34469167154,"y":19272.826653505803},"targetPosition":{"x":32457.608378532976,"y":19288.229531306155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"8e1f47f3-3a81-45ed-892e-ea3e21d544c6","savedPayload":{"position":{"x":32897.96232170696,"y":19380.90317767408},"targetPosition":{"x":32457.608378532976,"y":19288.229531306155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Strategy Name","config":"{ \n\"codeName\": \"strategyName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"2bb2239e-adc4-4ad1-9c82-64e03c7c60f3","savedPayload":{"position":{"x":32862.988181186556,"y":19483.593846370455},"targetPosition":{"x":32457.608378532976,"y":19288.229531306155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Index","config":"{ \n\"codeName\": \"index\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"85886ed3-2cbb-4386-b661-d7103a1c63bb","savedPayload":{"position":{"x":32804.45484003156,"y":19574.930651195682},"targetPosition":{"x":32457.608378532976,"y":19288.229531306155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"78491f8d-a68a-4918-ab38-cc9fa8eff27e","savedPayload":{"position":{"x":32725.76404326986,"y":19649.6054290491},"targetPosition":{"x":32457.608378532976,"y":19288.229531306155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"46f41431-bf06-4d5e-93b5-1b64dafb8d6a","savedPayload":{"position":{"x":32631.48901397983,"y":19703.27835327364},"targetPosition":{"x":32457.608378532976,"y":19288.229531306155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b9c2814b-3d92-406b-88ab-78c71e635bd2","savedPayload":{"position":{"x":32527.108674188024,"y":19732.830148606514},"targetPosition":{"x":32457.608378532976,"y":19288.229531306155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b78b86e0-a571-4f94-b837-b237c2043c3c","savedPayload":{"position":{"x":32418.689229836044,"y":19736.54337211938},"targetPosition":{"x":32457.608378532976,"y":19288.229531306155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f99d1259-33b6-4c61-9332-5b751c1b2439","savedPayload":{"position":{"x":32312.531624940977,"y":19714.20222475869},"targetPosition":{"x":32457.608378532976,"y":19288.229531306155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategy.strategyCounters\"\n}","project":"Superalgos","id":"9d920c3c-3693-465f-a5e9-e8ea5dcdfd55","savedPayload":{"position":{"x":32214.805353632135,"y":19667.105092802278},"targetPosition":{"x":32457.608378532976,"y":19288.229531306155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b0192e6c-445b-4b55-b344-b273b268897b","savedPayload":{"position":{"x":32457.608378532976,"y":19288.229531306155},"targetPosition":{"x":32147.848819470786,"y":18961.811064350626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"21db6fce-8450-4b07-9015-d81a339fd030","savedPayload":{"position":{"x":32153.848819470786,"y":18961.811064350626},"targetPosition":{"x":31742.753363531614,"y":18778.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Strategy Objects","id":"d54a124c-6029-41a6-9bbd-bb3fe8b1a318"}}}],"productDefinitionFolders":[{"type":"Product Definition Folder","name":"Orders","project":"Superalgos","products":[{"type":"Product Definition","name":"Market Buy Orders","config":"{ \n \"codeName\": \"Market-Buy-Orders-Objects\", \n \"singularVariableName\": \"marketBuyOrdersObject\", \n \"pluralVariableName\": \"marketBuyOrdersObjects\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"45609efb-0edc-4aa9-bc12-f5b4ca6dc5bf","savedPayload":{"position":{"x":32665.129621878266,"y":19056.733450153097},"targetPosition":{"x":32457.256727063228,"y":19142.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"5eed53d0-a3e7-4082-b7f1-cb321b3d306b","savedPayload":{"position":{"x":32682.256727063228,"y":19142.837222435242},"targetPosition":{"x":32457.256727063228,"y":19142.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"2b09fe55-b85c-4242-bae1-85a671b006ad","savedPayload":{"position":{"x":33095.95891748789,"y":18924.160585502348},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"9fdc2c26-3835-4917-b12b-5f1b0bef5a05","savedPayload":{"position":{"x":33143.19161808996,"y":18955.18667068034},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"f889b073-b78f-4345-bca7-c1943b6f5ee3","savedPayload":{"position":{"x":33186.16327515985,"y":18991.8879330061},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"2cf8c3ee-79ae-49bb-882b-992379f41fd9","savedPayload":{"position":{"x":33224.19619999555,"y":19033.685571648468},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"94e5c88c-2317-4bd1-86e6-f578db5e882f","savedPayload":{"position":{"x":33256.69059065265,"y":19079.920412877356},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7b9b53d5-d93a-4301-a0e6-ce8322da8fce","savedPayload":{"position":{"x":33283.13399117926,"y":19129.863305627234},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"5906d64e-d90e-4dae-a2bb-c806e3d5d21d","savedPayload":{"position":{"x":33303.109373352556,"y":19182.726620644997},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"294ae361-a9f7-404a-a6dd-3dc25d8c6c27","savedPayload":{"position":{"x":33316.301713462955,"y":19237.6766718738},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e837a938-5448-4987-bdf0-d28de65d33fb","savedPayload":{"position":{"x":33322.502960426194,"y":19293.846864180196},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"4424a014-cc5f-494e-be78-0b49f960045b","savedPayload":{"position":{"x":33321.61531687321,"y":19350.351360077064},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"137a18b5-33a3-433e-b85b-c8fbe03cbe69","savedPayload":{"position":{"x":33313.6527814731,"y":19406.299049909965},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderCounters\"\n}","project":"Superalgos","id":"35ca0a49-129b-49e2-864a-3c43ed3bf38b","savedPayload":{"position":{"x":33298.7409281657,"y":19460.8076051887},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"4b0020d5-4d5b-4747-aa28-baf6e28f67d9","savedPayload":{"position":{"x":33277.11492578559,"y":19513.017393434697},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"eedcf7ad-6668-4b14-8f07-7ee44998c47a","savedPayload":{"position":{"x":33249.11582930903,"y":19562.10503509869},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"46b407ab-5799-4ea6-946b-d857abb76183","savedPayload":{"position":{"x":33215.185201213324,"y":19607.296388748116},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"c2fcb23d-4a6d-457a-8d38-03a46786fedc","savedPayload":{"position":{"x":33175.858147772706,"y":19647.87875973991},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"ca02a2ed-731a-4df8-9f76-fe8d60b7ad8e","savedPayload":{"position":{"x":33131.754880112785,"y":19683.212139840794},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"ac187d63-a2cc-487c-8e81-03c786749d9c","savedPayload":{"position":{"x":33083.57093311056,"y":19712.739300539444},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"97b70829-4c2e-433c-8233-f6254788232a","savedPayload":{"position":{"x":33032.06619639398,"y":19735.994580872975},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"e8f83131-1dbc-48b7-9862-49130126b67d","savedPayload":{"position":{"x":32978.052930428465,"y":19752.61123117849},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"895ce4a6-2cf5-4f2e-b160-38f0237cbce4","savedPayload":{"position":{"x":32922.382956684276,"y":19762.327196954364},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"10253d7f-83fc-4bce-b757-f9fe36481f28","savedPayload":{"position":{"x":32865.934223902994,"y":19764.98925161628},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"d436d73b-be15-4d1a-baeb-c41b6706bbde","savedPayload":{"position":{"x":32809.5969623214,"y":19760.555412971986},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"320e3ae5-5884-4c25-b61b-2d0ef4730884","savedPayload":{"position":{"x":32754.25964420889,"y":19749.09560530554},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d79b050c-2805-4b39-bcd3-1678628f8d1c","savedPayload":{"position":{"x":32873.002516693305,"y":19315.044766999534},"targetPosition":{"x":32457.256727063228,"y":19142.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"db256083-9aa2-48e1-8fd6-3425a5085302","savedPayload":{"position":{"x":32457.256727063228,"y":19142.837222435242},"targetPosition":{"x":32007.256727063228,"y":19142.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Market Buy Orders","id":"e00fe7d4-894d-4483-a73a-3cd77943ea80"}}},{"type":"Product Definition","name":"Market Sell Orders","config":"{ \n \"codeName\": \"Market-Sell-Orders-Objects\", \n \"singularVariableName\": \"marketSellOrdersObject\", \n \"pluralVariableName\": \"marketSellOrdersObjects\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"6112bd4d-07cb-41db-98c4-e286d172b5c0","savedPayload":{"position":{"x":36648.77132809873,"y":19194.80414169415},"targetPosition":{"x":35495.8473760316,"y":19236.160064914686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"07cd5668-5e0f-4385-9c02-72eebc99344a","savedPayload":{"position":{"x":36577.00503174409,"y":19638.70928451402},"targetPosition":{"x":35495.8473760316,"y":19236.160064914686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"0ba08ecb-3542-4acd-abbe-7059306ed669","savedPayload":{"position":{"x":37224.78276280781,"y":19283.320438784736},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"0ae49e68-38d8-4356-bde3-c648a29177a7","savedPayload":{"position":{"x":37310.62278914025,"y":19400.31696684512},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"b7057c53-6d99-44ca-9eff-4dd21ebe2116","savedPayload":{"position":{"x":37380.95819401753,"y":19526.930575466467},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"01b26cba-240f-451e-8533-2e090a3103fd","savedPayload":{"position":{"x":37434.84189106303,"y":19661.323001727702},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"052e9ef4-da9f-4198-b13f-7a2e0c60b906","savedPayload":{"position":{"x":37471.44855911343,"y":19801.39713674378},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"a6e9d3dc-20e3-4cf3-94f4-79f3723b4d34","savedPayload":{"position":{"x":37490.20772814566,"y":19944.94998395948},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b38cf81f-59f2-4508-9fbc-e82b1ad38d65","savedPayload":{"position":{"x":37490.82584076763,"y":20089.465386385164},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"0132786e-0a9a-4096-a6a5-57f03485d0b1","savedPayload":{"position":{"x":37473.29482374845,"y":20233.169027075288},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"d1cb7813-1e5a-43f2-af35-f82a9ee47a0b","savedPayload":{"position":{"x":37437.890651183334,"y":20373.542897175153},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"8ab09d9d-7c5a-45d4-ad6a-8a4292c1b137","savedPayload":{"position":{"x":37385.22601545196,"y":20508.39954739631},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b1d35b5f-2d9f-4ba0-b4bc-cc12c74104e8","savedPayload":{"position":{"x":37316.02278677801,"y":20635.56579274744},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderCounters\"\n}","project":"Superalgos","id":"b1dbf0d5-39bb-4c1a-ac6d-d1d647e82d54","savedPayload":{"position":{"x":37231.42688736509,"y":20753.055891345826},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"8b25c33c-8f96-4a6e-8180-43027d0fc396","savedPayload":{"position":{"x":37132.77376322683,"y":20859.01831691781},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"2ffc6fc2-9e28-4ef6-9047-a2bd2b618bd3","savedPayload":{"position":{"x":37021.617485084455,"y":20951.780697922375},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"e5c5802a-d778-40e5-9039-4067a6a56e4f","savedPayload":{"position":{"x":36899.71155441462,"y":21029.88084368371},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"7fccf0bc-d0a4-48d9-b4ac-c467bc74ef0f","savedPayload":{"position":{"x":36768.976947505755,"y":21092.084241923752},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"2149cdc5-19f8-4e11-9d5c-e6c062998223","savedPayload":{"position":{"x":36631.4767458956,"y":21137.4118352178},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"df8e190a-1138-4ffa-baef-6a560ba51739","savedPayload":{"position":{"x":36489.38443340047,"y":21165.15211560389},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"e78e7e63-95da-479e-9d5c-9531b2b2bf26","savedPayload":{"position":{"x":36344.92712084821,"y":21174.86277480083},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"8010dd65-bb12-492e-a5b8-4e8b12e1e211","savedPayload":{"position":{"x":36200.63225056701,"y":21166.386872186253},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"857f1eed-2dd2-4646-8b63-acb4cec04400","savedPayload":{"position":{"x":36058.292727314714,"y":21139.85200185274},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3578ea56-a788-42bc-a964-0ba02e432a2e","savedPayload":{"position":{"x":35920.38320240877,"y":21095.68847541047},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"0f88abbf-bbcb-4281-90e2-5bd844c7bdfc","savedPayload":{"position":{"x":35789.07158125979,"y":21034.5486119569},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"c5a06ac6-e0c8-4a38-a790-d3569bb73ef5","savedPayload":{"position":{"x":35666.258306288895,"y":20957.275510809028},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8b01d5ae-7d6f-4c08-9f05-2f8edb699fd6","savedPayload":{"position":{"x":36340.12358884422,"y":20022.12891877262},"targetPosition":{"x":35495.8473760316,"y":19236.160064914686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"1958f79b-5c6c-4874-9154-98c314822ed7","savedPayload":{"position":{"x":32371.314374531954,"y":19407.340585966856},"targetPosition":{"x":32007.256727063228,"y":19142.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Market Sell Orders","id":"a9811005-1b7d-45bb-8003-0e60caab5f09"}}},{"type":"Product Definition","name":"Limit Buy Orders","config":"{ \n \"codeName\": \"Limit-Buy-Orders-Objects\", \n \"singularVariableName\": \"limitBuyOrdersObject\", \n \"pluralVariableName\": \"limitBuyOrdersObjects\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"b82fb0f9-74c1-42e6-961c-a696214ef079","savedPayload":{"position":{"x":34384.23035957715,"y":20954.46761572294},"targetPosition":{"x":33705.06350421577,"y":20244.179241484384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"2e03f52e-0cd2-46b4-9c10-0b8516ef9c71","savedPayload":{"position":{"x":34060.56952105141,"y":21160.220097704983},"targetPosition":{"x":33705.06350421577,"y":20244.179241484384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"890f7170-f42d-43d8-a084-b9b88ea212cc","savedPayload":{"position":{"x":34653.5642509438,"y":21370.898901502373},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"3e6e8e40-2e6c-4bd4-b709-effa25749403","savedPayload":{"position":{"x":34627.667453498674,"y":21491.951576610787},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"280a9209-b9cd-4cb7-b0b7-3dfe2f472140","savedPayload":{"position":{"x":34586.72575289801,"y":21608.68673880305},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"254561e5-52c3-4669-920e-4fe5370653c4","savedPayload":{"position":{"x":34531.72200753468,"y":21718.8506834832},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"8ef21836-adad-4918-9816-fbb3c9dd1fc5","savedPayload":{"position":{"x":34463.167887948686,"y":21821.4712163037},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"4d6fd5f1-a95b-4ec1-a49c-6c057190d354","savedPayload":{"position":{"x":34382.37432709204,"y":21914.656237849133},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"12402a8e-c9d4-4adb-94c3-22f526d72d14","savedPayload":{"position":{"x":34290.69250915081,"y":21997.035069616693},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"8cc955fb-62ec-40b9-963b-275956de04d9","savedPayload":{"position":{"x":34189.17463031711,"y":22067.37094671621},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"63af17a0-e994-4b5f-b853-207bf27c496c","savedPayload":{"position":{"x":34079.793332932495,"y":22124.271000005283},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"0af4f067-ac3d-4ee7-ba1d-d9c22ae2f46f","savedPayload":{"position":{"x":33963.953556857196,"y":22166.955605243813},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f8cb0422-95bb-4c53-a5f6-7e02819021c0","savedPayload":{"position":{"x":33843.777040509856,"y":22195.00029911506},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderCounters\"\n}","project":"Superalgos","id":"d16faba6-3464-4536-9c93-afbe6e0d4262","savedPayload":{"position":{"x":33721.14317634714,"y":22207.55074719593},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"75fd2c91-2bfe-428c-9ff6-7d28d566a96d","savedPayload":{"position":{"x":33597.94815692365,"y":22204.576822966923},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"5d621574-54fd-4279-8c47-7bb9710bcc90","savedPayload":{"position":{"x":33476.20618676116,"y":22186.46458807944},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"0bddc747-8300-4b15-8a7a-134ff133d2ec","savedPayload":{"position":{"x":33357.472628495234,"y":22153.06734953091},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"4564e44d-dbd5-4d97-8433-fc1dd877bd2f","savedPayload":{"position":{"x":33243.87695978432,"y":22104.86951150597},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"dc313012-cb3e-4087-9ae1-af1125a074e3","savedPayload":{"position":{"x":33137.05891347931,"y":22043.01382650776},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"ba489aaa-0872-4e7f-bad0-a7c43b0da4b5","savedPayload":{"position":{"x":33038.93112469974,"y":21968.25175119171},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"56b30e10-c354-4a0c-a570-07976dc45b76","savedPayload":{"position":{"x":32951.17436761777,"y":21881.647963859472},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4696e371-b17b-48fc-8ebb-dfa00e0b2aed","savedPayload":{"position":{"x":32874.74091740714,"y":21784.73975993078},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"8161a21f-02f8-4929-acd1-f684a7deb41b","savedPayload":{"position":{"x":32811.079419976086,"y":21679.251948801433},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2c17774e-a962-487f-939c-411973472057","savedPayload":{"position":{"x":32761.037359838887,"y":21566.13084818431},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"d96f2a66-4d03-4cda-90c7-3dd7eae7712a","savedPayload":{"position":{"x":32725.570266137576,"y":21447.784607792688},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"9a713d83-5701-47a7-b0a0-4969671df884","savedPayload":{"position":{"x":32705.166523437052,"y":21325.673574378776},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aaad0279-43dd-46fc-b099-40cba6c3b6a8","savedPayload":{"position":{"x":33682.32349718927,"y":21226.236096659137},"targetPosition":{"x":33705.06350421577,"y":20244.179241484384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"5deceb32-c7ab-4560-818a-0f0b9d6632fb","savedPayload":{"position":{"x":32146.314374531954,"y":19570.812654768062},"targetPosition":{"x":32007.256727063228,"y":19142.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Limit Buy Orders","id":"7e3120c7-a0c9-483c-ada9-8c53deb10f33"}}},{"type":"Product Definition","name":"Limit Sell Orders","config":"{ \n \"codeName\": \"Limit-Sell-Orders-Objects\", \n \"singularVariableName\": \"limitSellOrdersObject\", \n \"pluralVariableName\": \"limitSellOrdersObjects\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"356495a9-b063-495d-b06d-5281c7c0007e","savedPayload":{"position":{"x":34143.87507929519,"y":21071.6842379248},"targetPosition":{"x":33533.245706658156,"y":20301.786596852995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"934ab813-127e-4bbf-aa71-09b3cdadc0d0","savedPayload":{"position":{"x":33802.77152163195,"y":21246.694886215762},"targetPosition":{"x":33533.245706658156,"y":20301.786596852995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"5c8236b1-b257-44f4-98bd-a158b67aad16","savedPayload":{"position":{"x":34373.67530135927,"y":21511.457258416318},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"16140fc9-d4ae-43c2-ba47-f676b79a9775","savedPayload":{"position":{"x":34336.66147367481,"y":21629.655340629193},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"2d871d0f-e668-4e9d-9fcf-439f37cd082f","savedPayload":{"position":{"x":34285.27047161146,"y":21742.051017463495},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"fc6f8fe4-b752-448a-9ece-8497abf2901c","savedPayload":{"position":{"x":34220.227170297585,"y":21846.824448399577},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"3502765f-2f50-44c6-b85c-64d7f72f5592","savedPayload":{"position":{"x":34142.57683949222,"y":21942.772238925907},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"608ebfd0-4294-4e24-8111-a8f695072ca0","savedPayload":{"position":{"x":34053.41709164034,"y":22028.020895912483},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"c49c3510-e24b-418f-9334-760c5da57ccf","savedPayload":{"position":{"x":33954.40427163083,"y":22101.54065085818},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"04b96ab3-eb13-4039-a385-8e5c4377daa4","savedPayload":{"position":{"x":33846.9074099673,"y":22162.058919499894},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"6ec27702-5283-4fbf-b6a7-92663a6e9e9b","savedPayload":{"position":{"x":33732.73287631778,"y":22208.746478546025},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"6a4285a4-c9d5-4d5b-a218-da8e19ca5970","savedPayload":{"position":{"x":33613.52536773751,"y":22240.471859994603},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e3e35a81-c5b2-4768-ab16-99b42ef83358","savedPayload":{"position":{"x":33491.3100634298,"y":22257.28781737063},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderCounters\"\n}","project":"Superalgos","id":"815780d8-f647-42cc-9a40-aa99caa350c7","savedPayload":{"position":{"x":33368.19856137995,"y":22258.499817366537},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"d824c424-4324-46b1-87b9-182cc9f0d054","savedPayload":{"position":{"x":33245.84847001982,"y":22244.196016165963},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"d722bfd4-eb08-4dfc-8cc9-f706f93df80e","savedPayload":{"position":{"x":33126.09014183429,"y":22214.814950823962},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"d05fe7d4-d772-4ad4-9890-a3aa342fc5f6","savedPayload":{"position":{"x":33010.90439975224,"y":22170.505097531397},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"d4b14139-33ad-4da1-942c-ce8df0d3efa9","savedPayload":{"position":{"x":32902.16936303195,"y":22112.246794189672},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"9ade3c97-f409-4c23-b66f-b6670100e039","savedPayload":{"position":{"x":32801.701503574455,"y":22040.77506370113},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"780e674d-64fc-401a-ad5d-1012645f512e","savedPayload":{"position":{"x":32710.87485162655,"y":21957.170814942023},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"8dade5f4-6361-49b2-ae94-2b66b21d5522","savedPayload":{"position":{"x":32631.3199384275,"y":21862.982781691113},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"896f401d-5a79-45bb-b15b-abc2881d7762","savedPayload":{"position":{"x":32564.273547456643,"y":21759.428804952746},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"b92661d6-16ec-48a6-bb66-18c4ad4dd148","savedPayload":{"position":{"x":32510.502394996594,"y":21648.438471270518},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"c24a527a-db24-472d-8c3f-f0da838f8062","savedPayload":{"position":{"x":32471.223021400856,"y":21531.223430989532},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"b50fa760-b069-411f-b27e-6dd1d165e927","savedPayload":{"position":{"x":32446.884813326935,"y":21410.157476672706},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"d5d472fb-bf5a-40e7-ac92-7b03279022c3","savedPayload":{"position":{"x":32437.892237602555,"y":21286.790526124012},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7dc5d5fc-ff33-4652-bc9c-fad0566a3d9f","savedPayload":{"position":{"x":33419.92554176691,"y":21277.84812784399},"targetPosition":{"x":33533.245706658156,"y":20301.786596852995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"2a1d405b-2fbe-4ed4-a76a-d2c7be59d20e","savedPayload":{"position":{"x":31868.199079594502,"y":19570.812654768062},"targetPosition":{"x":32007.256727063228,"y":19142.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Limit Sell Orders","id":"fb243322-ec2a-4f03-bb77-e97e4699d1c6"}}}],"productDefinitionFolders":[],"id":"cb9c928a-1a5d-441c-b369-0a72f98f2407","savedPayload":{"position":{"x":32007.256727063228,"y":19142.837222435242},"targetPosition":{"x":31742.753363531614,"y":18778.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Stages","project":"Superalgos","products":[{"type":"Product Definition","name":"Trigger Stages","config":"{\n \"codeName\": \"Trigger-Stages-Objects\",\n \"singularVariableName\": \"triggerStagesObject\",\n \"pluralVariableName\": \"triggerStagesObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyTriggerStage\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"e951c491-c864-4668-9d70-c48df90d8342","savedPayload":{"position":{"x":32396.577697514163,"y":19480.68282113175},"targetPosition":{"x":32173.502603705056,"y":19451.31442788224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"ace4518d-bfe1-49e2-af7b-4ff9559fe6a9","savedPayload":{"position":{"x":32368.358319556555,"y":19563.81442788224},"targetPosition":{"x":32173.502603705056,"y":19451.31442788224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"75d29f56-b520-43e9-af25-105a88b84f0f","savedPayload":{"position":{"x":32530.730553058987,"y":19583.86223354509},"targetPosition":{"x":32310.473925232018,"y":19629.818929447767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"08e2f14d-f121-48ed-b266-d78fe59ef437","savedPayload":{"position":{"x":32528.85815290903,"y":19683.979146414786},"targetPosition":{"x":32310.473925232018,"y":19629.818929447767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"675b3923-9fdb-4e08-abab-2ba83424c851","savedPayload":{"position":{"x":32483.73207816085,"y":19773.368964082692},"targetPosition":{"x":32310.473925232018,"y":19629.818929447767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"6a6f3698-8dfc-4368-9db6-e5ac251aefec","savedPayload":{"position":{"x":32404.290101353316,"y":19834.326936865513},"targetPosition":{"x":32310.473925232018,"y":19629.818929447767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"6db4ef3b-ea01-4765-a749-f9bee13fa2a3","savedPayload":{"position":{"x":32306.266680285065,"y":19854.779590653136},"targetPosition":{"x":32310.473925232018,"y":19629.818929447767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"8435db2d-1a90-4994-ba46-7d11618a65ab","savedPayload":{"position":{"x":32209.07655567703,"y":19830.67602652758},"targetPosition":{"x":32310.473925232018,"y":19629.818929447767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"167c8a3e-7c2a-488f-87f7-be3f6034d276","savedPayload":{"position":{"x":32310.473925232018,"y":19629.818929447767},"targetPosition":{"x":32173.502603705056,"y":19451.31442788224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"18cc2e79-7e57-418c-b635-6c68fc11d681","savedPayload":{"position":{"x":32173.502603705056,"y":19451.31442788224},"targetPosition":{"x":31783.791172002057,"y":19226.31442788224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Trigger Stage Objects","id":"6c6cddbc-cd78-445f-9498-8627ac99563d"}}},{"type":"Product Definition","name":"Open Stages","config":"{\n \"codeName\": \"Open-Stages-Objects\",\n \"singularVariableName\": \"openStagesObject\",\n \"pluralVariableName\": \"openStagesObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"613bf56d-986e-4a94-9b39-4f0ac3300b0c","savedPayload":{"position":{"x":34485.69404340611,"y":21628.05164015001},"targetPosition":{"x":33827.87767942718,"y":20680.827298018343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"44a0d895-2a7e-4f9a-b9a7-81dc32bf30e4","savedPayload":{"position":{"x":34073.128176286584,"y":21807.768787653884},"targetPosition":{"x":33827.87767942718,"y":20680.827298018343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"e36b3b00-b339-4ce5-9526-a2077f5e1138","savedPayload":{"position":{"x":34555.604982225945,"y":22491.801899304664},"targetPosition":{"x":33623.052623584095,"y":21815.731500468344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"73751c42-16ed-4a24-8586-d86c3c9a81be","savedPayload":{"position":{"x":34169.786617587786,"y":22829.58481850199},"targetPosition":{"x":33623.052623584095,"y":21815.731500468344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"d76fd073-ae0d-4af8-b729-5d94a1cf21ed","savedPayload":{"position":{"x":33675.73441235792,"y":22966.410885129648},"targetPosition":{"x":33623.052623584095,"y":21815.731500468344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"3db414d7-fb6f-4cce-be3b-342101e90246","savedPayload":{"position":{"x":33171.46661749282,"y":22875.414730233748},"targetPosition":{"x":33623.052623584095,"y":21815.731500468344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"340b1f7b-b041-4ee0-9327-0959de0d8d9a","savedPayload":{"position":{"x":32756.394909894196,"y":22574.448736463022},"targetPosition":{"x":33623.052623584095,"y":21815.731500468344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"6fa53271-06c2-48b1-a763-2926ce948fbc","savedPayload":{"position":{"x":32512.922779960903,"y":22123.241095374826},"targetPosition":{"x":33623.052623584095,"y":21815.731500468344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"517166b0-13ae-4f3d-bcb4-d3292dd9daf7","savedPayload":{"position":{"x":33623.052623584095,"y":21815.731500468344},"targetPosition":{"x":33827.87767942718,"y":20680.827298018343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"d5938c00-0849-466d-ae14-4ea91b571678","savedPayload":{"position":{"x":31966.822661386166,"y":19637.409883821412},"targetPosition":{"x":31783.791172002057,"y":19226.31442788224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Open Stage Objects","id":"8f7cad9f-153d-44e6-bdc2-812bc97e3929"}}},{"type":"Product Definition","name":"Manage Stages","config":"{\n \"codeName\": \"Manage-Stages-Objects\",\n \"singularVariableName\": \"manageStagesObject\",\n \"pluralVariableName\": \"manageStagesObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyManageStage\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"f6e10004-71dd-4ae9-8c1f-0b71de02d274","savedPayload":{"position":{"x":33751.26609635574,"y":21205.204657212795},"targetPosition":{"x":33256.487098986916,"y":20359.65265903028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"8f3984d8-e735-4dab-a9cc-51e97d704154","savedPayload":{"position":{"x":33389.92074569172,"y":21330.221544868058},"targetPosition":{"x":33256.487098986916,"y":20359.65265903028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"0a0419db-885a-4623-9ce3-ef4cd12d7a52","savedPayload":{"position":{"x":33753.65671221973,"y":21941.492403906817},"targetPosition":{"x":33008.300895639186,"y":21307.368906350435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"4478d5f4-808f-45b5-9197-c144e6c1d81f","savedPayload":{"position":{"x":33404.61820118441,"y":22202.141008109404},"targetPosition":{"x":33008.300895639186,"y":21307.368906350435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"abf359ac-dc22-4274-a00c-25c986836002","savedPayload":{"position":{"x":32977.391341761315,"y":22285.54083817896},"targetPosition":{"x":33008.300895639186,"y":21307.368906350435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"78333d72-e1e6-4a85-9e23-850a66e3ca71","savedPayload":{"position":{"x":32556.007685851993,"y":22175.196790657457},"targetPosition":{"x":33008.300895639186,"y":21307.368906350435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"ba45b561-33a9-4e8e-bf3c-a6b8ece1d0a3","savedPayload":{"position":{"x":32224.23112393739,"y":21892.955741534686},"targetPosition":{"x":33008.300895639186,"y":21307.368906350435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"45ef8759-341e-4e74-a374-035374659cc5","savedPayload":{"position":{"x":32047.777492800116,"y":21494.691107710994},"targetPosition":{"x":33008.300895639186,"y":21307.368906350435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d418fdcd-d800-4f99-8a67-05eb6a09d390","savedPayload":{"position":{"x":33008.300895639186,"y":21307.368906350435},"targetPosition":{"x":33256.487098986916,"y":20359.65265903028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"8fab86b3-db8d-4113-8418-1d256bd98cf2","savedPayload":{"position":{"x":31690.230911134066,"y":19666.480848212454},"targetPosition":{"x":31783.791172002057,"y":19226.31442788224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Manage Stage Objects","id":"768a5cc5-72db-4218-9a8b-706c51186b3d"}}},{"type":"Product Definition","name":"Close Stages","config":"{\n \"codeName\": \"Close-Stages-Objects\",\n \"singularVariableName\": \"closeStagesObject\",\n \"pluralVariableName\": \"closeStagesObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"ee0f2bab-26b6-44c6-af1c-efbca2c765cd","savedPayload":{"position":{"x":33434.99730055026,"y":21269.100702320855},"targetPosition":{"x":32999.08289583457,"y":20391.745863934164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"cbd3905d-fafc-47f3-8a61-20c9aab10d86","savedPayload":{"position":{"x":33065.95887600577,"y":21369.155010249768},"targetPosition":{"x":32999.08289583457,"y":20391.745863934164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"fb4236d5-0356-4226-bf11-8d119d361bf3","savedPayload":{"position":{"x":33387.112679051905,"y":22003.830483124155},"targetPosition":{"x":32686.737916365906,"y":21320.266999922107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"68f1a928-d89f-4d57-80d8-1e68b113bea5","savedPayload":{"position":{"x":33021.08454564645,"y":22240.06302483862},"targetPosition":{"x":32686.737916365906,"y":21320.266999922107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"cd79288d-539d-499f-a998-5770f3c5efab","savedPayload":{"position":{"x":32589.13559581537,"y":22294.097623017977},"targetPosition":{"x":32686.737916365906,"y":21320.266999922107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7afb54b6-807f-4452-9fd6-bb4bd32dd462","savedPayload":{"position":{"x":32176.24682785769,"y":22155.247415499172},"targetPosition":{"x":32686.737916365906,"y":21320.266999922107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"56d33c0a-1f4c-4721-b43d-976bbff00208","savedPayload":{"position":{"x":31864.491297241344,"y":21851.008208133026},"targetPosition":{"x":32686.737916365906,"y":21320.266999922107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"eae9d270-5193-46f6-abc8-c1c1eccc9661","savedPayload":{"position":{"x":31715.61863431892,"y":21441.6110967042},"targetPosition":{"x":32686.737916365906,"y":21320.266999922107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c4aaf6da-f1d9-4a88-8e7a-531135090572","savedPayload":{"position":{"x":32686.737916365906,"y":21320.266999922107},"targetPosition":{"x":32999.08289583457,"y":20391.745863934164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"ba911e61-f951-48cd-b547-9a70aa211100","savedPayload":{"position":{"x":31449.376000537228,"y":19527.423200743728},"targetPosition":{"x":31783.791172002057,"y":19226.31442788224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Close Stage Objects","id":"de84947f-ec29-4125-a2b3-a3da595d1653"}}}],"productDefinitionFolders":[],"id":"4ce02b43-0869-4bed-b021-a3b9f7c10451","savedPayload":{"position":{"x":31789.791172002057,"y":19226.31442788224},"targetPosition":{"x":31742.753363531614,"y":18778.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Position","project":"Superalgos","products":[{"type":"Product Definition","name":"Positions","config":"{\n \"codeName\": \"Position-Objects\",\n \"singularVariableName\": \"positionObject\",\n \"pluralVariableName\": \"positionObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"55df9376-2806-429d-b43d-b96700787f74","savedPayload":{"position":{"x":32010.06927465879,"y":19671.494855435503},"targetPosition":{"x":31818.22523767912,"y":19553.932678374415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"fd62b468-93fa-44e0-941f-fff7ea4b04ea","savedPayload":{"position":{"x":31950.476919444925,"y":19735.961502108777},"targetPosition":{"x":31818.22523767912,"y":19553.932678374415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"a8700d50-9286-4b62-a141-abd506386983","savedPayload":{"position":{"x":32920.626440385866,"y":20311.59203373428},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"6ce2fa31-04d9-4541-a793-569b668e6201","savedPayload":{"position":{"x":32928.01765762744,"y":20405.506353255238},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"0f5cf2f4-3c5b-4607-8635-c7310906b95c","savedPayload":{"position":{"x":32925.55166550925,"y":20499.678792887385},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"ba8a1af9-323f-4acb-a438-a61f232b4033","savedPayload":{"position":{"x":32913.25548195699,"y":20593.077579675257},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"85df8c0c-7d11-44c2-a7a9-928d4ac0ad06","savedPayload":{"position":{"x":32891.263826530805,"y":20684.679416965857},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"9c8b786e-23f6-4bf9-bf83-6fd03b494a66","savedPayload":{"position":{"x":32859.81764440959,"y":20773.480695860908},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b0719341-cda1-4503-bed5-f4e98d7e07db","savedPayload":{"position":{"x":32819.2614665452,"y":20858.508490965974},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"a052f724-c517-4032-85f7-96d3a29ba9ce","savedPayload":{"position":{"x":32770.03963490925,"y":20938.831219964675},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"a4dfa19d-51b8-4151-91e5-6031059f09f1","savedPayload":{"position":{"x":32712.691434189463,"y":21013.56885022949},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionCounters\"\n}","project":"Superalgos","id":"5309d28b-041a-4622-ade5-9349c19787da","savedPayload":{"position":{"x":32647.845183273814,"y":21081.902540643383},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"0853d6cc-4429-431e-82f0-e4d958f095ea","savedPayload":{"position":{"x":32576.211351257283,"y":21143.083612994436},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"925756d5-4662-44ac-bfa6-a326c5e61b23","savedPayload":{"position":{"x":32498.57477339379,"y":21196.44175465101},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"3d22802e-0b11-47e4-8c98-7c9830f166fb","savedPayload":{"position":{"x":32415.7860522769,"y":21241.3923626472},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Base Asset","config":"{ \n\"codeName\": \"profitLossInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"5cbdddf2-f50e-49c6-b995-c557a44adde5","savedPayload":{"position":{"x":32328.752238459827,"y":21277.442948715285},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Quoted Asset","config":"{ \n\"codeName\": \"profitLossInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"0e1b30a0-5408-4b8b-aa61-efd21d9ef1b1","savedPayload":{"position":{"x":32238.42689261975,"y":21304.198535090236},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Base Asset","config":"{ \n\"codeName\": \"ROIInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"d41d6380-be40-4823-a6d2-adc43038d514","savedPayload":{"position":{"x":32145.79963814748,"y":21321.365981968756},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Quoted Asset","config":"{ \n\"codeName\": \"ROIInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"5306784e-c744-49cd-962a-670d8e452ac7","savedPayload":{"position":{"x":32051.885318626522,"y":21328.757199210326},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Base Asset","config":"{ \n\"codeName\": \"hitFailInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"bf8e5f03-9c93-4b76-ae3d-4f2b3eeccab5","savedPayload":{"position":{"x":31957.712878994374,"y":21326.29120709214},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Quoted Asset","config":"{ \n\"codeName\": \"hitFailInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"43463fcd-ac98-4ae3-a148-d43d709ba86c","savedPayload":{"position":{"x":31864.314092206503,"y":21313.995023539883},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Base Asset","config":"{ \n\"codeName\": \"entryTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"e6b2213f-f108-428f-b93c-e58db1da49e2","savedPayload":{"position":{"x":31772.712254915903,"y":21292.0033681137},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Quoted Asset","config":"{ \n\"codeName\": \"entryTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2e419e2b-cb42-4067-a861-7ebf1804a903","savedPayload":{"position":{"x":31683.910976020856,"y":21260.557185992482},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Base Asset","config":"{ \n\"codeName\": \"exitTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"739818f5-d2e4-4fea-b818-a598ed4a9c21","savedPayload":{"position":{"x":31598.883180915785,"y":21220.001008128093},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Quoted Asset","config":"{ \n\"codeName\": \"exitTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"76337d8e-1242-4e84-96c4-7e93b218a1ab","savedPayload":{"position":{"x":31518.560451917085,"y":21170.77917649214},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Rate","config":"{ \n\"codeName\": \"entryTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"06eb81a4-5736-40f5-8248-9aeb8e9cc409","savedPayload":{"position":{"x":31443.82282165227,"y":21113.430975772353},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Rate","config":"{ \n\"codeName\": \"exitTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7c3162ae-a955-4c61-bd01-69a198893335","savedPayload":{"position":{"x":31375.489131238377,"y":21048.584724856704},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Profit Loss","config":"{ \n\"codeName\": \"profitLoss\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 10\n}","project":"Superalgos","id":"399ae646-1616-4fdd-9ce3-228ea91b7bfc","savedPayload":{"position":{"x":31314.308058887324,"y":20976.950892840174},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics ROI","config":"{ \n\"codeName\": \"ROI\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 10\n}","project":"Superalgos","id":"eaa127cc-7067-45a6-8268-463c659209d0","savedPayload":{"position":{"x":31260.94991723075,"y":20899.31431497668},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Hit Fail","config":"{ \n\"codeName\": \"hitFail\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\"\n}","project":"Superalgos","id":"2db6cdcd-128e-4bdd-9e9f-1d009c497a16","savedPayload":{"position":{"x":31215.99930923456,"y":20816.52559385979},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"42bb6a56-afc0-4c71-9b08-fd59959e8c88","savedPayload":{"position":{"x":31179.948723166475,"y":20729.49178004272},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"823244e2-6d28-4e3a-96ea-42f6a7981bca","savedPayload":{"position":{"x":32028.326065149435,"y":20429.065606732325},"targetPosition":{"x":31818.22523767912,"y":19553.932678374415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"1eabba24-cbd4-4cbf-95e0-c5135349d41d","savedPayload":{"position":{"x":31824.22523767912,"y":19553.932678374415},"targetPosition":{"x":31559.721874147504,"y":19189.87503090569},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Position Objects","id":"8854b5f8-8407-4a0d-9099-5456a8e4cced"}}},{"type":"Product Definition","name":"Position Base Asset","config":"{\n \"codeName\": \"Position-Base-Asset-Objects\",\n \"singularVariableName\": \"positionBaseAssetObject\",\n \"pluralVariableName\": \"positionBaseAssetObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a0ff2796-59dd-4aa4-93ed-ba4601b9de5d","savedPayload":{"position":{"x":31714.12040367636,"y":19835.143734170353},"targetPosition":{"x":31606.759682617947,"y":19637.409883821412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"9985d32d-c070-4593-8a2a-ec8bc1c78cbb","savedPayload":{"position":{"x":31630.27858685317,"y":19861.177310279272},"targetPosition":{"x":31606.759682617947,"y":19637.409883821412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"ab0b9bad-a26f-4bd2-9c8a-b54d8e18ba1f","savedPayload":{"position":{"x":31862.64085146052,"y":20304.003118634275},"targetPosition":{"x":31478.95277750118,"y":20068.878764512097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"c7ef2775-8664-4ad2-b1f7-75bcf27f30df","savedPayload":{"position":{"x":31788.71233656337,"y":20395.297231467626},"targetPosition":{"x":31478.95277750118,"y":20068.878764512097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"fab4ea05-53c0-4899-a319-9da3db9c650d","savedPayload":{"position":{"x":31693.674219618006,"y":20464.346465209983},"targetPosition":{"x":31478.95277750118,"y":20068.878764512097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Base Asset","config":"{ \n\"codeName\": \"profitLossInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"807ac077-7ed6-484b-883f-40590c678635","savedPayload":{"position":{"x":31584.003191236337,"y":20506.445228691053},"targetPosition":{"x":31478.95277750118,"y":20068.878764512097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Base Asset","config":"{ \n\"codeName\": \"ROIInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"686128cb-42c2-41c8-8953-461220b65741","savedPayload":{"position":{"x":31467.17315076264,"y":20518.7245607511},"targetPosition":{"x":31478.95277750118,"y":20068.878764512097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Base Asset","config":"{ \n\"codeName\": \"hitFailInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"3989fb34-a5da-416b-8f76-92476fba2d8b","savedPayload":{"position":{"x":31351.145872384415,"y":20500.347645202783},"targetPosition":{"x":31478.95277750118,"y":20068.878764512097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Base Asset","config":"{ \n\"codeName\": \"entryTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"fe6f9596-bc0c-44dc-b70e-f7ee436b9b59","savedPayload":{"position":{"x":31243.828423379004,"y":20452.566838471437},"targetPosition":{"x":31478.95277750118,"y":20068.878764512097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Base Asset","config":"{ \n\"codeName\": \"exitTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"b02b1740-a282-4407-93de-68a0f9aa91a4","savedPayload":{"position":{"x":31152.534310545652,"y":20378.638323574287},"targetPosition":{"x":31478.95277750118,"y":20068.878764512097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Rate","config":"{ \n\"codeName\": \"entryTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"1ed47645-109e-41f4-a570-80d8f45cef9f","savedPayload":{"position":{"x":31083.485076803296,"y":20283.600206628922},"targetPosition":{"x":31478.95277750118,"y":20068.878764512097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Rate","config":"{ \n\"codeName\": \"exitTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e408f858-f3b2-4eac-aff7-b8ff5fa5b12c","savedPayload":{"position":{"x":31041.386313322226,"y":20173.929178247254},"targetPosition":{"x":31478.95277750118,"y":20068.878764512097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Candle Close","config":"{ \n\"codeName\": \"candleClose\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\",\n \"childProperty\": \"close\",\n \"decimals\": 10\n}","project":"Superalgos","id":"6d2910e9-5d9a-4cd3-bbba-8e22fc554855","savedPayload":{"position":{"x":31029.10698126218,"y":20057.099137773555},"targetPosition":{"x":31478.95277750118,"y":20068.878764512097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2c81cbf8-d93e-4704-bab2-bc9c0efdb3a4","savedPayload":{"position":{"x":31478.95277750118,"y":20068.878764512097},"targetPosition":{"x":31606.759682617947,"y":19637.409883821412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"b371b039-f6c8-4f60-84cb-52f55c96c84d","savedPayload":{"position":{"x":31606.759682617947,"y":19637.409883821412},"targetPosition":{"x":31559.721874147504,"y":19189.87503090569},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Position Base Asset","id":"42a79594-bac8-40bf-a9eb-f13716e15465"}}},{"type":"Product Definition","name":"Position Quoted Asset","config":"{\n \"codeName\": \"Position-Quoted-Asset-Objects\",\n \"singularVariableName\": \"positionQuotedAssetObject\",\n \"pluralVariableName\": \"positionQuotedAssetObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"abab2ab2-3a9b-49bd-8935-9bb01c113761","savedPayload":{"position":{"x":31370.800571394124,"y":19825.89338496436},"targetPosition":{"x":31376.690384763395,"y":19600.97048684486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"40ac7181-100d-4b65-b7fd-a8103cda2300","savedPayload":{"position":{"x":31285.17464007134,"y":19806.518214814445},"targetPosition":{"x":31376.690384763395,"y":19600.97048684486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"07c757d3-bc46-4222-90da-d86cba491ebb","savedPayload":{"position":{"x":31264.99335992469,"y":20306.197746604936},"targetPosition":{"x":31050.271917807866,"y":19910.73004590705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"91d9db38-e2ef-4947-88f0-e2babea49598","savedPayload":{"position":{"x":31155.322331543022,"y":20348.296510086006},"targetPosition":{"x":31050.271917807866,"y":19910.73004590705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"d879d6c0-51b6-47db-a4c9-0ec0f69eefcd","savedPayload":{"position":{"x":31038.492291069324,"y":20360.575842146052},"targetPosition":{"x":31050.271917807866,"y":19910.73004590705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Quoted Asset","config":"{ \n\"codeName\": \"profitLossInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4d007dcc-ea53-474d-833b-d43580ea5a1d","savedPayload":{"position":{"x":30922.4650126911,"y":20342.198926597735},"targetPosition":{"x":31050.271917807866,"y":19910.73004590705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Quoted Asset","config":"{ \n\"codeName\": \"ROIInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"7dea3349-8f02-4ecf-8ab8-6a4ec6d0890e","savedPayload":{"position":{"x":30815.14756368569,"y":20294.41811986639},"targetPosition":{"x":31050.271917807866,"y":19910.73004590705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Quoted Asset","config":"{ \n\"codeName\": \"hitFailInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"093a203a-838d-49af-ad26-2feb6b808bdd","savedPayload":{"position":{"x":30723.853450852337,"y":20220.48960496924},"targetPosition":{"x":31050.271917807866,"y":19910.73004590705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Quoted Asset","config":"{ \n\"codeName\": \"entryTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"7fb1fb82-57c1-4c64-9613-e1938e99a8ab","savedPayload":{"position":{"x":30654.80421710998,"y":20125.451488023875},"targetPosition":{"x":31050.271917807866,"y":19910.73004590705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Quoted Asset","config":"{ \n\"codeName\": \"exitTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"a44876b4-75a0-4fd1-a623-eeba4decd42f","savedPayload":{"position":{"x":30612.70545362891,"y":20015.780459642207},"targetPosition":{"x":31050.271917807866,"y":19910.73004590705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Rate","config":"{ \n\"codeName\": \"entryTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"37888758-269e-48b2-9ca0-5d69d607dacf","savedPayload":{"position":{"x":30600.426121568864,"y":19898.95041916851},"targetPosition":{"x":31050.271917807866,"y":19910.73004590705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Rate","config":"{ \n\"codeName\": \"exitTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"1bd0adb3-e67c-49f2-831c-1fa0c74a85f5","savedPayload":{"position":{"x":30618.80303711718,"y":19782.923140790284},"targetPosition":{"x":31050.271917807866,"y":19910.73004590705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Candle Close","config":"{ \n\"codeName\": \"candleClose\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\",\n \"childProperty\": \"close\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4451d357-0968-462e-82d2-6321f0681397","savedPayload":{"position":{"x":30666.583843848526,"y":19675.605691784873},"targetPosition":{"x":31050.271917807866,"y":19910.73004590705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b46f9e1f-74e0-4858-bb93-d4d85e72c3a9","savedPayload":{"position":{"x":31050.271917807866,"y":19910.73004590705},"targetPosition":{"x":31376.690384763395,"y":19600.97048684486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"a376f02b-a5d2-4079-b5cd-ab7dc894b909","savedPayload":{"position":{"x":31376.690384763395,"y":19600.97048684486},"targetPosition":{"x":31559.721874147504,"y":19189.87503090569},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Position Quoted Asset","id":"baed45c2-228e-4679-876e-1867bbef5e9f"}}},{"type":"Product Definition","name":"Stop Loss","config":"{\n \"codeName\": \"Stop-Loss\",\n \"singularVariableName\": \"stopLoss\",\n \"pluralVariableName\": \"stopLosses\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAtCycle\": \"Second\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0ea22a69-e7cb-4fcf-b7ae-4b7233b196c4","savedPayload":{"position":{"x":31072.10204961769,"y":19646.222431416973},"targetPosition":{"x":31189.66422667878,"y":19454.378394437303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"75b13383-2771-4f58-b2c4-ffadad2e9519","savedPayload":{"position":{"x":31007.635402944416,"y":19586.63007620311},"targetPosition":{"x":31189.66422667878,"y":19454.378394437303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\",\n \"childProperty\": \"begin\"\n}","project":"Superalgos","id":"048960a1-1de4-4492-b214-37bfc59d661b","savedPayload":{"position":{"x":30839.300339081972,"y":19604.13110677903},"targetPosition":{"x":30967.434350044874,"y":19419.18063980325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\",\n \"childProperty\": \"end\"\n}","project":"Superalgos","id":"f44a0a9b-3abb-4323-be28-c14a677d2d5f","savedPayload":{"position":{"x":30771.74259508484,"y":19530.219988867728},"targetPosition":{"x":30967.434350044874,"y":19419.18063980325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stop Loss","config":"{\n \"codeName\": \"stopLoss\",\n \"isString\": false\n}","project":"Superalgos","id":"1152e12b-354a-49cf-bfe1-dbb54a5471bf","savedPayload":{"position":{"x":30742.94400315942,"y":19434.316166065957},"targetPosition":{"x":30967.434350044874,"y":19419.18063980325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stop Loss Phase","config":"{\n \"codeName\": \"stopLossPhase\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\"\n}","project":"Superalgos","id":"2dc164a2-1df6-40d4-861d-15b0cbc6c627","savedPayload":{"position":{"x":30758.60847762809,"y":19335.41456666281},"targetPosition":{"x":30967.434350044874,"y":19419.18063980325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Initial Value","config":"{\n \"codeName\": \"initialValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\"\n}","project":"Superalgos","id":"8f18d1a9-9ad9-4dff-8091-c419757a3e78","savedPayload":{"position":{"x":30815.633477210158,"y":19253.103865368597},"targetPosition":{"x":30967.434350044874,"y":19419.18063980325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Final Value","config":"{\n \"codeName\": \"finalValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\"\n}","project":"Superalgos","id":"5a762d29-97b5-4b34-87e2-6089dfb259be","savedPayload":{"position":{"x":30902.72450137267,"y":19203.68670604914},"targetPosition":{"x":30967.434350044874,"y":19419.18063980325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04d49dc8-b542-4700-8d07-99323b0f1f62","savedPayload":{"position":{"x":30967.434350044874,"y":19419.18063980325},"targetPosition":{"x":31189.66422667878,"y":19454.378394437303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c18bdc82-216a-4b1d-8850-5c3c9dc2000b","savedPayload":{"position":{"x":31195.66422667878,"y":19454.378394437303},"targetPosition":{"x":31559.721874147504,"y":19189.87503090569},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Stop Loss","id":"9b8e4fc2-b62a-4d47-ac5f-08818e463da2"}}},{"type":"Product Definition","name":"Take Profit","config":"{\n \"codeName\": \"Take-Profit\",\n \"singularVariableName\": \"takeProfit\",\n \"pluralVariableName\": \"takeProfits\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAtCycle\": \"Second\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"3cd59aa1-0590-43b6-9fb7-c85276ac132e","savedPayload":{"position":{"x":30914.45317088284,"y":19344.273560434543},"targetPosition":{"x":31112.18702123178,"y":19236.91283937613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"916d5610-87ae-47e7-9067-9a406141e3df","savedPayload":{"position":{"x":30888.41959477392,"y":19260.431743611352},"targetPosition":{"x":31112.18702123178,"y":19236.91283937613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\",\n \"childProperty\": \"begin\"\n}","project":"Superalgos","id":"3f8411d3-5a4f-4243-9f6f-d61cc4a28fb5","savedPayload":{"position":{"x":30733.886637833406,"y":19191.420548751285},"targetPosition":{"x":30937.32917990396,"y":19095.315751389917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\",\n \"childProperty\": \"end\"\n}","project":"Superalgos","id":"437e1ec6-c754-46bb-9942-e05eb056629c","savedPayload":{"position":{"x":30712.335474265175,"y":19093.632771019427},"targetPosition":{"x":30937.32917990396,"y":19095.315751389917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Take Profit","config":"{\n \"codeName\": \"takeProfit\",\n \"isString\": false\n}","project":"Superalgos","id":"81208625-05fb-4e89-bb88-ff16df25bdb7","savedPayload":{"position":{"x":30735.347073465426,"y":18996.178328190344},"targetPosition":{"x":30937.32917990396,"y":19095.315751389917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Take Profit Phase","config":"{\n \"codeName\": \"takeProfitPhase\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\"\n}","project":"Superalgos","id":"4ccb1152-df42-41ef-b8db-da8ee01c6f09","savedPayload":{"position":{"x":30798.363705993797,"y":18918.35926786664},"targetPosition":{"x":30937.32917990396,"y":19095.315751389917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Initial Value","config":"{\n \"codeName\": \"initialValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\"\n}","project":"Superalgos","id":"9fb3dde7-59a6-4149-b1a1-457d17e5bfbd","savedPayload":{"position":{"x":30888.904154929773,"y":18875.588609333572},"targetPosition":{"x":30937.32917990396,"y":19095.315751389917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Final Value","config":"{\n \"codeName\": \"finalValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\"\n}","project":"Superalgos","id":"d391644b-9fa2-4eb2-b5ad-0d5c8ec7efa2","savedPayload":{"position":{"x":30989.035773955842,"y":18876.337606061315},"targetPosition":{"x":30937.32917990396,"y":19095.315751389917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fe08bafa-9d05-4c76-9448-0d21bd36346c","savedPayload":{"position":{"x":30937.32917990396,"y":19095.315751389917},"targetPosition":{"x":31112.18702123178,"y":19236.91283937613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2542c7d0-fa26-4b52-a59a-a3630e52eb89","savedPayload":{"position":{"x":31112.18702123178,"y":19236.91283937613},"targetPosition":{"x":31559.721874147504,"y":19189.87503090569},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Take Profit","id":"78a2df79-8912-44d7-a8c7-4b6a0a7235c2"}}}],"productDefinitionFolders":[],"id":"5572f4e4-17f2-4037-b524-97d3cf582a64","savedPayload":{"position":{"x":31559.721874147504,"y":19189.87503090569},"targetPosition":{"x":31742.753363531614,"y":18778.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7e586bb9-0198-431d-83af-cb552d5f6e4e","savedPayload":{"position":{"x":31742.753363531614,"y":18778.779574966517},"targetPosition":{"x":31478.25,"y":18414.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8c7f3687-b5ae-4a45-bda1-751cb2c55995","savedPayload":{"position":{"x":31483.25,"y":18502.72192749779},"targetPosition":{"x":31033.25,"y":18502.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}}],"plotters":[{"type":"Plotter","name":"Trading Engine","config":"{ \n\"codeName\": \"Trading-Engine\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Trading Episode Counters","config":"{ \n\"codeName\": \"Trading-Episode-Counters\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Trading Episode Counters","config":"{ \n \"codeName\": \"Trading-Episode-Counters\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"a603cdac-43fd-4ed9-bc66-12c708158f4c","savedPayload":{"position":{"x":31481.46763171852,"y":17914.16444378209},"targetPosition":{"x":31633.077288488188,"y":18080.41579557865},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ed1e5a45-552b-4050-96b6-8f3b7e0e0e42","savedPayload":{"position":{"x":31633.077288488188,"y":18080.41579557865},"targetPosition":{"x":31784.686945257858,"y":18246.66714737521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Strategies","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.strategies","project":"Superalgos","id":"bd3377de-142c-4f1f-a9cd-1e3a92227fb9","savedPayload":{"position":{"x":31655.763299913855,"y":17815.530633413317},"targetPosition":{"x":31720.225122585856,"y":18031.098890394263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3445841f-c443-47ed-ab69-af44aafbd805","savedPayload":{"position":{"x":31720.225122585856,"y":18031.098890394263},"targetPosition":{"x":31784.686945257858,"y":18246.66714737521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Positions","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.positions","project":"Superalgos","id":"a4e07f20-da19-4745-932b-021844ede19f","savedPayload":{"position":{"x":31855.59387721431,"y":17802.288697177046},"targetPosition":{"x":31820.140411236083,"y":18024.477922276128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"960b035e-f799-4e83-81ab-4ce423d081d6","savedPayload":{"position":{"x":31820.140411236083,"y":18024.477922276128},"targetPosition":{"x":31784.686945257858,"y":18246.66714737521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Orders","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.orders","project":"Superalgos","id":"bb28084c-0e1e-4c27-a488-7d8417fb7794","savedPayload":{"position":{"x":32041.380467024344,"y":17877.061362946555},"targetPosition":{"x":31913.0337061411,"y":18061.864255160883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4ba9c931-98ec-4390-a68e-7392b7e2c0e4","savedPayload":{"position":{"x":31913.0337061411,"y":18061.864255160883},"targetPosition":{"x":31784.686945257858,"y":18246.66714737521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hits","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hits","project":"Superalgos","id":"4a2c6bca-66d4-4f1f-a2c9-a034f879032d","savedPayload":{"position":{"x":32176.325756709073,"y":18025.038987239637},"targetPosition":{"x":31980.506350983465,"y":18135.853067307424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"77748bc7-f305-46f7-a51d-4b07420f0174","savedPayload":{"position":{"x":31980.506350983465,"y":18135.853067307424},"targetPosition":{"x":31784.686945257858,"y":18246.66714737521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fails","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.fails","project":"Superalgos","id":"0b4b3713-a461-4a82-a014-496bf0a13a44","savedPayload":{"position":{"x":32233.702176651077,"y":18216.91278673858},"targetPosition":{"x":32009.194560954467,"y":18231.789967056895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8c96317c-9c59-4617-ac0d-80a4475b7044","savedPayload":{"position":{"x":32009.194560954467,"y":18231.789967056895},"targetPosition":{"x":31784.686945257858,"y":18246.66714737521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2a5783fe-af9a-443c-b4e7-32d8bdabff82","savedPayload":{"position":{"x":31784.686945257858,"y":18246.66714737521},"targetPosition":{"x":31700.68061780802,"y":18455.39648634889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"11308192-1761-4746-8567-50f5d50eee37","savedPayload":{"position":{"x":31812.06465470365,"y":18439.589958430566},"targetPosition":{"x":31700.68061780802,"y":18455.39648634889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"5e478e3f-e432-4364-8f2c-2f3b2849848b","savedPayload":{"position":{"x":31700.68061780802,"y":18455.39648634889},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Trading Episode Statistics","config":"{ \n\"codeName\": \"Trading-Episode-Statistics\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Trading Episode Statistics","config":"{ \n \"codeName\": \"Trading-Episode-Statistics\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"8ccceec4-4b55-4002-82fc-5eb003680884","savedPayload":{"position":{"x":31579.173261119828,"y":17936.40890543743},"targetPosition":{"x":31709.63812676052,"y":18119.722622418336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a656f547-17d4-48c8-8a30-110cb1cc8d54","savedPayload":{"position":{"x":31709.63812676052,"y":18119.722622418336},"targetPosition":{"x":31840.102992401215,"y":18303.03633939924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Profit Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.profitLoss","project":"Superalgos","id":"2c744dce-e9bc-4b52-ae5a-88153818efe8","savedPayload":{"position":{"x":31764.08710971697,"y":17859.50326782539},"targetPosition":{"x":31802.095051059092,"y":18081.269803612315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dac1e943-73af-419a-89d3-cf7413d0410d","savedPayload":{"position":{"x":31802.095051059092,"y":18081.269803612315},"targetPosition":{"x":31840.102992401215,"y":18303.03633939924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ROI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ROI","project":"Superalgos","id":"0262af09-67a3-4948-9f03-903b95f75754","savedPayload":{"position":{"x":31964.056836153348,"y":17870.4447946147},"targetPosition":{"x":31902.07991427728,"y":18086.74056700697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c5ddf4c7-c06c-48cb-b474-aa1049dda30f","savedPayload":{"position":{"x":31902.07991427728,"y":18086.74056700697},"targetPosition":{"x":31840.102992401215,"y":18303.03633939924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Ratio","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitRatio","project":"Superalgos","id":"2e63251f-fa85-44c1-a977-6ea9b1289de4","savedPayload":{"position":{"x":32139.47598364048,"y":17967.066382235727},"targetPosition":{"x":31989.789488020848,"y":18135.051360817484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f4dba581-f375-45b7-b3e9-8397b74c14f9","savedPayload":{"position":{"x":31989.789488020848,"y":18135.051360817484},"targetPosition":{"x":31840.102992401215,"y":18303.03633939924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Annualized Rate Of Return","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.annualizedRateOfReturn","project":"Superalgos","id":"3b65f366-e8c3-4298-9617-9d7cd121a0fc","savedPayload":{"position":{"x":32255.600638643886,"y":18130.230940274105},"targetPosition":{"x":32047.85181552255,"y":18216.633639836673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0ddc2941-7f32-43c4-a2ac-33933f7176ea","savedPayload":{"position":{"x":32047.85181552255,"y":18216.633639836673},"targetPosition":{"x":31840.102992401215,"y":18303.03633939924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFail","project":"Superalgos","id":"1fda27ad-cc5a-441a-8d2e-d0e820d994eb","savedPayload":{"position":{"x":32289.43088906471,"y":18327.621726928355},"targetPosition":{"x":32064.766940732963,"y":18315.329033163798},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aa06aaaa-c76e-4cb7-b2a4-752703cd91d8","savedPayload":{"position":{"x":32064.766940732963,"y":18315.329033163798},"targetPosition":{"x":31840.102992401215,"y":18303.03633939924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6ea43033-418d-4d87-b640-02010679aa8b","savedPayload":{"position":{"x":31840.102992401215,"y":18303.03633939924},"targetPosition":{"x":31731.549624069597,"y":18500.11796265179},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"a22754c1-aa31-4bef-8d7f-4b0df8b2c6e5","savedPayload":{"position":{"x":31844.026812330394,"y":18497.85254415943},"targetPosition":{"x":31731.549624069597,"y":18500.11796265179},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"6ce18a43-2e6a-452e-a72d-1c56a58d3f81","savedPayload":{"position":{"x":31731.549624069597,"y":18500.11796265179},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Candle","config":"{ \n\"codeName\": \"Current-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"db2a5867-c3c9-40ae-86f2-19845ca4bffe","savedPayload":{"position":{"x":31859.391714904497,"y":18502.06277596456},"targetPosition":{"x":31756.802982230387,"y":18548.234216577996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"31789d43-d608-4eeb-a3ff-338a99074045","savedPayload":{"position":{"x":31756.802982230387,"y":18548.234216577996},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Episode Balances","config":"{ \n\"codeName\": \"Current-Balance\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Current Balance","config":"{ \n \"codeName\": \"Current-Balance\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Balance Base Asset","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.balanceBaseAsset","project":"Superalgos","id":"fcc203c4-9d04-4ac2-8740-75deaee8e2a4","savedPayload":{"position":{"x":32198.23019929594,"y":18236.223676763253},"targetPosition":{"x":32231.318327366254,"y":18401.69795960141},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ab01ee28-2095-4f64-8162-173c6aa8d32b","savedPayload":{"position":{"x":32231.318327366254,"y":18401.69795960141},"targetPosition":{"x":32264.40645543657,"y":18567.172242439567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Balance Quoted Asset","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.balanceQuotedAsset","project":"Superalgos","id":"37fd5f0b-0bbf-419b-9d30-e54e0569937a","savedPayload":{"position":{"x":32405.395425766575,"y":18260.531801132023},"targetPosition":{"x":32334.900940601572,"y":18413.852021785795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"01cbacca-656b-4437-be3c-dcf8f10d7ac8","savedPayload":{"position":{"x":32334.900940601572,"y":18413.852021785795},"targetPosition":{"x":32264.40645543657,"y":18567.172242439567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Both Assets in Base Asset","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.balanceBaseAsset + (record.balanceQuotedAsset / candle.close)","project":"Superalgos","id":"d3dc0826-e399-4967-85c7-bc0fe04dbc4a","savedPayload":{"position":{"x":32558.70765761,"y":18401.96615175501},"targetPosition":{"x":32411.557056523285,"y":18484.569197097288},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"809c4813-6f76-4591-ac3a-b9a38d3012b4","savedPayload":{"position":{"x":32411.557056523285,"y":18484.569197097288},"targetPosition":{"x":32264.40645543657,"y":18567.172242439567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Both Assets in Quoted Asset","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.balanceQuotedAsset + (record.balanceBaseAsset * candle.close)","project":"Superalgos","id":"063de6a6-f51c-4531-9de5-1f6095e052ef","savedPayload":{"position":{"x":32599.606833153128,"y":18606.503613871002},"targetPosition":{"x":32432.00664429485,"y":18586.837928155284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32d1a407-2032-4c99-a96a-82ded9d663a3","savedPayload":{"position":{"x":32432.00664429485,"y":18586.837928155284},"targetPosition":{"x":32264.40645543657,"y":18567.172242439567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cb03ef16-522f-4189-ab3a-b410bf1f4176","savedPayload":{"position":{"x":32264.40645543657,"y":18567.172242439567},"targetPosition":{"x":32149.983662194187,"y":18691.204443446448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"27e334d8-0ec2-4047-a961-af4c5fcf8d32","savedPayload":{"position":{"x":32314.610095774635,"y":18728.281388662883},"targetPosition":{"x":32149.983662194187,"y":18691.204443446448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"e5d9e3e1-d1f4-4493-b452-33fe49c81228","savedPayload":{"position":{"x":31776.07244146279,"y":18599.043604796894},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Distance To Trading Event","config":"{ \n\"codeName\": \"Distance-To-Trading-Event\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"dc45b078-aeee-40bf-8f6d-f8b12a57494f","savedPayload":{"position":{"x":31899.73424919171,"y":18631.526520261414},"targetPosition":{"x":31789.07700966016,"y":18651.80521201548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"56eb7de2-0281-404a-bd4d-34ac113e2325","savedPayload":{"position":{"x":31789.07700966016,"y":18651.80521201548},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Strategy","config":"{ \n\"codeName\": \"Current-Strategy\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"97c36937-1cdc-42ce-b886-ca8220b14025","savedPayload":{"position":{"x":31907.921800784563,"y":18698.9570742317},"targetPosition":{"x":31795.62705093444,"y":18705.749655191707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"a3c31000-1b82-4fe9-ae56-6d5893582b16","savedPayload":{"position":{"x":31795.62705093444,"y":18705.749655191707},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Last Strategy","config":"{ \n\"codeName\": \"Last-Strategy\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"c242da84-b00b-4900-ad95-b25a57ef9603","savedPayload":{"position":{"x":31907.921800784563,"y":18766.88288383177},"targetPosition":{"x":31795.62705093444,"y":18760.090302871766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"028aaa23-630c-4aa6-a168-6b2a128b1a83","savedPayload":{"position":{"x":31795.62705093444,"y":18760.090302871766},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Position","config":"{ \n\"codeName\": \"Current-Position\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"daf7ee4e-434b-48df-af3b-b17489fe6a12","savedPayload":{"position":{"x":31899.73424919171,"y":18834.31343780206},"targetPosition":{"x":31789.07700966016,"y":18814.034746047993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"0d2212c7-07bb-4c41-94fb-00844415ba5e","savedPayload":{"position":{"x":31789.07700966016,"y":18814.034746047993},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Last Position","config":"{ \n\"codeName\": \"Last-Position\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"c4473b0f-99f8-4129-b8ee-1f6a988e9440","savedPayload":{"position":{"x":31883.478538945,"y":18900.265446825288},"targetPosition":{"x":31776.07244146279,"y":18866.796353266578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"08c88b9c-70f1-49ff-aa16-21f2bc1c0ba1","savedPayload":{"position":{"x":31776.07244146279,"y":18866.796353266578},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Previous Candle","config":"{ \n\"codeName\": \"Previous-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"559cabae-7e0e-4ff8-b1dd-8f822421fe6e","savedPayload":{"position":{"x":31859.391714904497,"y":18963.77718209891},"targetPosition":{"x":31756.802982230387,"y":18917.605741485477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"076dcee2-2923-4455-8697-263649515a3b","savedPayload":{"position":{"x":31756.802982230387,"y":18917.605741485477},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Market Buy Orders","config":"{ \n\"codeName\": \"Market-Buy-Orders\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"actualRate\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"8ed02a94-4fce-4314-ab0a-6642e85bdca3","savedPayload":{"position":{"x":31827.82501720351,"y":19023.92249950667},"targetPosition":{"x":31731.549624069597,"y":18965.72199541168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"50d624c9-9a6e-4d57-a147-29d5c004b3f2","savedPayload":{"position":{"x":31731.549624069597,"y":18965.72199541168},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Market Sell Orders","config":"{ \n\"codeName\": \"Market-Sell-Orders\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"actualRate\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"15dc7163-1703-4cad-9253-d48d7bb01800","savedPayload":{"position":{"x":31789.238759376538,"y":19079.82434488529},"targetPosition":{"x":31700.68061780802,"y":19010.44347171458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"4f84a1a5-f9cd-4b9d-9d91-661ba912e2ca","savedPayload":{"position":{"x":31700.68061780802,"y":19010.44347171458},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Limit Buy Orders","config":"{ \n\"codeName\": \"Limit-Buy-Orders\",\n \"useRateAtMousePosition\": true\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"b89ff555-961b-4190-b874-4968e26db1b4","savedPayload":{"position":{"x":31744.19561595138,"y":19130.66754344917},"targetPosition":{"x":31664.64610306789,"y":19051.11803056568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"17ec46bd-e5c0-48d5-a3b6-e108cc835f17","savedPayload":{"position":{"x":31664.64610306789,"y":19051.11803056568},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Limit Sell Orders","config":"{ \n\"codeName\": \"Limit-Sell-Orders\",\n \"useRateAtMousePosition\": true\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"fe4a4590-f68f-454e-84ba-96ae9cef3b70","savedPayload":{"position":{"x":31693.3524173875,"y":19175.71068687433},"targetPosition":{"x":31623.97154421679,"y":19087.15254530581},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"1ec8da3f-8749-430d-8ad9-35fffc0d61ec","savedPayload":{"position":{"x":31623.97154421679,"y":19087.15254530581},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Strategy Open Stage","config":"{ \n\"codeName\": \"Current-Strategy-Open-Stage\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"eca15627-7af5-4aef-9095-90c42831202c","savedPayload":{"position":{"x":31637.45057200888,"y":19214.296944701302},"targetPosition":{"x":31579.25006791389,"y":19118.021551567388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"f759a457-fc11-43a8-bf2c-6ebf1db0e78d","savedPayload":{"position":{"x":31579.25006791389,"y":19118.021551567388},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Strategy Close Stage","config":"{ \n\"codeName\": \"Current-Strategy-Close-Stage\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"59cb7431-a489-4ab2-ba79-78996e8630c8","savedPayload":{"position":{"x":31577.30525460112,"y":19245.863642402288},"targetPosition":{"x":31531.133813987686,"y":19143.274909728178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"6be13ce1-0fae-4355-99b2-dc8db000251f","savedPayload":{"position":{"x":31531.133813987686,"y":19143.274909728178},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Strategy Trigger Stage","config":"{ \n\"codeName\": \"Current-Strategy-Trigger-Stage\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"aec5592e-57b9-4256-88d8-861534624284","savedPayload":{"position":{"x":31513.793519327497,"y":19269.95046644279},"targetPosition":{"x":31480.324425768787,"y":19162.54436896058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"823fa15f-bf29-4784-a5f8-5b82d2ed7645","savedPayload":{"position":{"x":31480.324425768787,"y":19162.54436896058},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Strategy Manage Stage","config":"{ \n\"codeName\": \"Current-Strategy-Manage-Stage\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"c060b2bf-e594-4bb5-b0d6-d48f5c03d2e0","savedPayload":{"position":{"x":31447.841510304268,"y":19286.206176689502},"targetPosition":{"x":31427.562818550203,"y":19175.54893715795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"34a912c3-4b0f-4f21-9736-4ef47cd0544d","savedPayload":{"position":{"x":31427.562818550203,"y":19175.54893715795},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Episode","config":"{ \n\"codeName\": \"Current-Position\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"808e43e8-468e-4d37-b2c2-210b902f2d6b","savedPayload":{"position":{"x":31380.41095633398,"y":19294.393728282354},"targetPosition":{"x":31373.618375373975,"y":19182.09897843223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"bf241117-1c2c-470c-a172-b86b2befa9a2","savedPayload":{"position":{"x":31373.618375373975,"y":19182.09897843223},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Episode Base Asset","config":"{ \n\"codeName\": \"Previous-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"3e32e9c9-41c5-44c8-85ae-2ef6ee053135","savedPayload":{"position":{"x":31312.48514673391,"y":19294.393728282354},"targetPosition":{"x":31319.277727693916,"y":19182.09897843223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"a99b25e6-7aca-41a2-aacc-1911aac2ee3e","savedPayload":{"position":{"x":31319.277727693916,"y":19182.09897843223},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Episode Quoted Asset","config":"{ \n\"codeName\": \"Previous-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"82cc01b1-b354-4e30-a1a0-7bb378dc322c","savedPayload":{"position":{"x":31245.054592763623,"y":19286.206176689502},"targetPosition":{"x":31265.33328451769,"y":19175.54893715795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"ede92318-db13-4951-83b1-11fc0345d677","savedPayload":{"position":{"x":31265.33328451769,"y":19175.54893715795},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Last Market Order","config":"{ \n\"codeName\": \"Previous-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"0bbba556-73d6-43f9-bf55-17e83ea9ab40","savedPayload":{"position":{"x":31179.102583740394,"y":19269.95046644279},"targetPosition":{"x":31212.571677299104,"y":19162.54436896058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"05aa37c8-9f6d-4276-96a6-3123707e7686","savedPayload":{"position":{"x":31212.571677299104,"y":19162.54436896058},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Last Limit Order","config":"{ \n\"codeName\": \"Previous-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"c89abeeb-79ff-4f3f-a031-091b10f8037a","savedPayload":{"position":{"x":31115.59084846677,"y":19245.863642402288},"targetPosition":{"x":31161.762289080205,"y":19143.274909728178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"2284d48f-cf52-4277-b81e-c62afef88b71","savedPayload":{"position":{"x":31161.762289080205,"y":19143.274909728178},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Stop Loss","config":"{ \n\"codeName\": \"Stop-Loss\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"097b8ec2-54f5-4fca-8de3-1cd4ac9eb05e","savedPayload":{"position":{"x":31055.445531059013,"y":19214.296944701302},"targetPosition":{"x":31113.646035154,"y":19118.021551567388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"cdafbd38-ade8-4548-b951-b404c1bd7885","savedPayload":{"position":{"x":31113.646035154,"y":19118.021551567388},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Take Profit","config":"{ \n\"codeName\": \"Take-Profit\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"a480ca2f-187a-429a-915b-e8f6a1913bc0","savedPayload":{"position":{"x":30999.54368568039,"y":19175.71068687433},"targetPosition":{"x":31068.9245588511,"y":19087.15254530581},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"d06674eb-36cf-4048-bd99-31712b0523a0","savedPayload":{"position":{"x":31068.9245588511,"y":19087.15254530581},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ebb03c87-e87e-4f4b-8763-361854776287","savedPayload":{"position":{"x":31351.448051533946,"y":18820.919979031736},"targetPosition":{"x":31033.25,"y":18502.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Trading System","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Highlights","config":"{ \n\"codeName\": \"Highlights\",\n\"connectTo\": \"Trading System\"\n}","project":"Superalgos","panels":[],"nodesHighlights":{"type":"Nodes Highlights","name":"New Nodes Highlights","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"fa39a76d-1b97-41a2-ab18-f33c2f31fded","savedPayload":{"position":{"x":31884.20086466564,"y":19142.837222435242},"targetPosition":{"x":31456.22543233282,"y":19003.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d979c9f0-530a-41d3-a357-b57a3e4f2201","savedPayload":{"position":{"x":31456.22543233282,"y":19003.779574966517},"targetPosition":{"x":31028.25,"y":18864.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Values","config":"{ \n\"codeName\": \"Values\",\n\"connectTo\": \"Trading System\"\n}","project":"Superalgos","panels":[],"nodesValues":{"type":"Nodes Values","name":"New Nodes Values","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"f42e5006-d8ec-437a-8906-53d7ce68b79c","savedPayload":{"position":{"x":31756.365294937452,"y":19393.72865456102},"targetPosition":{"x":31392.307647468726,"y":19129.225291029405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"476925ed-e2ac-443d-82f3-501b64ca6c87","savedPayload":{"position":{"x":31392.307647468726,"y":19129.225291029405},"targetPosition":{"x":31028.25,"y":18864.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Errors","config":"{\n \"codeName\": \"Errors\",\n \"connectTo\": \"Trading System\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"errors\",\n \"rateInArrayAtIndex\": 3,\n \"rateOffset\": -100,\n \"rateOffsetBasedOnArrayIndex\": -50,\n \"rateRange\": 20\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"Errors","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Error #1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[0][3]","project":"Superalgos","id":"733b921d-8f51-4bca-b0b5-b0d9a1f9c734","savedPayload":{"position":{"x":31912.451076715093,"y":18352.40068157588},"targetPosition":{"x":31959.488885185536,"y":18799.935534491604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f189c006-3adb-4b21-8b9d-342f94e7640f","savedPayload":{"position":{"x":31959.488885185536,"y":18799.935534491604},"targetPosition":{"x":32006.52669365598,"y":19247.470387407328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Error #2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[1][3]","project":"Superalgos","id":"afb68973-461d-4a1a-a547-ccc2023bab56","savedPayload":{"position":{"x":32372.589672424197,"y":18425.279475528983},"targetPosition":{"x":32189.558183040088,"y":18836.374931468155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2dfd59cd-d4ef-4f71-8507-ff1d891ab697","savedPayload":{"position":{"x":32189.558183040088,"y":18836.374931468155},"targetPosition":{"x":32006.52669365598,"y":19247.470387407328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Error #3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[2][3]","project":"Superalgos","id":"130b37a1-572a-4370-95ea-a7faf7b546a6","savedPayload":{"position":{"x":32734.64198859343,"y":18718.4636603441},"targetPosition":{"x":32370.584341124704,"y":18982.967023875713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c78f507a-32d5-49b0-93c4-e433aaf32579","savedPayload":{"position":{"x":32370.584341124704,"y":18982.967023875713},"targetPosition":{"x":32006.52669365598,"y":19247.470387407328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Error #4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[3][3]","project":"Superalgos","id":"979f28e7-49cd-4467-87a8-e81244a74145","savedPayload":{"position":{"x":32901.596399487426,"y":19153.394770466442},"targetPosition":{"x":32454.061546571702,"y":19200.432578936885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"722460d3-2849-4008-9437-c59301966ea7","savedPayload":{"position":{"x":32454.061546571702,"y":19200.432578936885},"targetPosition":{"x":32006.52669365598,"y":19247.470387407328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Error #5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[4][3]","project":"Superalgos","id":"4ecd591e-aa20-44db-a853-49bd2eed52ee","savedPayload":{"position":{"x":32828.71760553432,"y":19613.533366175547},"targetPosition":{"x":32417.62214959515,"y":19430.501876791437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0d37d958-e01a-4082-8b7b-b97e807a4864","savedPayload":{"position":{"x":32417.62214959515,"y":19430.501876791437},"targetPosition":{"x":32006.52669365598,"y":19247.470387407328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e50625b6-8b4d-4ae2-960b-b45769639162","savedPayload":{"position":{"x":32006.52669365598,"y":19247.470387407328},"targetPosition":{"x":31642.469046187252,"y":19511.97375093894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[],"images":[{"type":"Image","name":"Error #1","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 30\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[0] !== undefined","project":"Superalgos","id":"956eb8d9-f297-4783-ac35-625b8d7b1c67","savedPayload":{"position":{"x":32204.177326097208,"y":19175.85033231574},"targetPosition":{"x":32062.580238110993,"y":19350.708173643558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": -100\n}","project":"Superalgos","id":"1da7aa3c-77fb-4d0d-8895-e1c231dcca90","savedPayload":{"position":{"x":32284.810114744898,"y":19385.90592827761},"targetPosition":{"x":32062.580238110993,"y":19350.708173643558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #1","id":"f189c006-3adb-4b21-8b9d-342f94e7640f"}}},"id":"bd5f7149-372f-4a70-94df-4727b3cd3b32","savedPayload":{"position":{"x":32062.580238110993,"y":19350.708173643558},"targetPosition":{"x":31642.469046187252,"y":19511.97375093894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Error #2","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 25\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[1] !== undefined","project":"Superalgos","id":"185083c8-855a-4ccb-ab50-7d4e2d3c3bb3","savedPayload":{"position":{"x":32272.03272283734,"y":19332.684260702692},"targetPosition":{"x":32090.003899102976,"y":19464.9359424685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": -150\n}","project":"Superalgos","id":"d774a55f-70f2-41f2-b6e7-18066a4118c6","savedPayload":{"position":{"x":32295.55162707256,"y":19556.451687160556},"targetPosition":{"x":32090.003899102976,"y":19464.9359424685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #2","id":"2dfd59cd-d4ef-4f71-8507-ff1d891ab697"}}},"id":"f34ea534-6d63-4839-aede-eaa2c3b19919","savedPayload":{"position":{"x":32090.003899102976,"y":19464.9359424685},"targetPosition":{"x":31642.469046187252,"y":19511.97375093894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Error #3","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[2] !== undefined","project":"Superalgos","id":"e1df910f-84e4-4a86-9d11-e17a135d1793","savedPayload":{"position":{"x":32296.984395416934,"y":19501.73647155935},"targetPosition":{"x":32086.928799455065,"y":19582.369260207044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": -200\n}","project":"Superalgos","id":"f7de0684-3ae0-4e31-b944-97b263adb8b7","savedPayload":{"position":{"x":32261.786640782884,"y":19723.96634819326},"targetPosition":{"x":32086.928799455065,"y":19582.369260207044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #3","id":"c78f507a-32d5-49b0-93c4-e433aaf32579"}}},"id":"c4c1bef4-cad9-4463-87b6-16c8f16be89b","savedPayload":{"position":{"x":32086.928799455065,"y":19582.369260207044},"targetPosition":{"x":31642.469046187252,"y":19511.97375093894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Error #4","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 15\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[3] !== undefined","project":"Superalgos","id":"a0c6bc59-9b12-479e-af28-4782b770d743","savedPayload":{"position":{"x":32277.331928584284,"y":19671.48633608783},"targetPosition":{"x":32053.564502126424,"y":19695.00524032305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": -250\n}","project":"Superalgos","id":"103d4ce2-29e7-4a0d-80b7-f9e0eeebebe3","savedPayload":{"position":{"x":32185.81618389223,"y":19877.034064057414},"targetPosition":{"x":32053.564502126424,"y":19695.00524032305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #4","id":"722460d3-2849-4008-9437-c59301966ea7"}}},"id":"3b62091e-13ad-4507-ade7-81f64d041f65","savedPayload":{"position":{"x":32053.564502126424,"y":19695.00524032305},"targetPosition":{"x":31642.469046187252,"y":19511.97375093894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Error #5","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[4] !== undefined","project":"Superalgos","id":"dc750665-001d-46c5-ac80-2441d3877226","savedPayload":{"position":{"x":32214.414605476795,"y":19830.365681545423},"targetPosition":{"x":31992.18472884289,"y":19795.16792691137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": -300\n}","project":"Superalgos","id":"6165f0a7-4b05-4077-84f4-9cbea0c09417","savedPayload":{"position":{"x":32072.817517490585,"y":20005.22352287324},"targetPosition":{"x":31992.18472884289,"y":19795.16792691137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #5","id":"0d37d958-e01a-4082-8b7b-b97e807a4864"}}},"id":"dbad1560-3694-46ee-9133-a3358489e5a0","savedPayload":{"position":{"x":31992.18472884289,"y":19795.16792691137},"targetPosition":{"x":31642.469046187252,"y":19511.97375093894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"Error #1","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[0] !== undefined","project":"Superalgos","id":"ac81077c-8c42-4c4c-b443-5faa1ad3b3b4","savedPayload":{"position":{"x":32131.972409718866,"y":19876.031398407667},"targetPosition":{"x":31906.972409718866,"y":19876.031398407667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": -135\n}","project":"Superalgos","id":"5d4e3be6-6a2b-4cca-8086-c2db9a75bd23","savedPayload":{"position":{"x":32089.00123345323,"y":20008.283080173474},"targetPosition":{"x":31906.972409718866,"y":19876.031398407667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #1","id":"f189c006-3adb-4b21-8b9d-342f94e7640f"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"1","project":"Superalgos","id":"adc6d425-cfa0-47e9-a67d-444a112ee3c2","savedPayload":{"position":{"x":31976.50123345323,"y":20090.019114574076},"targetPosition":{"x":31906.972409718866,"y":19876.031398407667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"0907179a-16cc-4682-83af-2e7e0ad4d7ba","savedPayload":{"position":{"x":31837.443585984503,"y":20090.019114574076},"targetPosition":{"x":31906.972409718866,"y":19876.031398407667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ead7ed8a-332d-4ab1-b53e-1e9e0f705a81","savedPayload":{"position":{"x":31906.972409718866,"y":19876.031398407667},"targetPosition":{"x":31642.469046187252,"y":19511.97375093894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Error #2","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[1] !== undefined","project":"Superalgos","id":"f92d815c-65a8-419a-b903-28db5e349bf1","savedPayload":{"position":{"x":32021.067934397677,"y":19990.31922801075},"targetPosition":{"x":31803.734623482636,"y":19932.084942862683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": -180\n}","project":"Superalgos","id":"c5f1d9c0-570a-4eb7-9316-72cabe1aa0ec","savedPayload":{"position":{"x":31945.33171146885,"y":20106.9427841905},"targetPosition":{"x":31803.734623482636,"y":19932.084942862683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #2","id":"2dfd59cd-d4ef-4f71-8507-ff1d891ab697"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"2","project":"Superalgos","id":"2d7c6286-5f78-4242-8a74-15b6d6ddb166","savedPayload":{"position":{"x":31815.5102136373,"y":20156.77658818246},"targetPosition":{"x":31803.734623482636,"y":19932.084942862683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"fa0f7605-abca-4c72-a67b-1677456c1997","savedPayload":{"position":{"x":31681.190840604257,"y":20120.785820650402},"targetPosition":{"x":31803.734623482636,"y":19932.084942862683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c37ea548-51b4-4645-8af2-cfe9b47b142c","savedPayload":{"position":{"x":31803.734623482636,"y":19932.084942862683},"targetPosition":{"x":31642.469046187252,"y":19511.97375093894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Error #3","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[2] !== undefined","project":"Superalgos","id":"6ddc9257-082c-464b-a636-f8ec81154254","savedPayload":{"position":{"x":31884.362570509194,"y":20072.008603854665},"targetPosition":{"x":31689.506854657695,"y":19959.508603854665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": -225\n}","project":"Superalgos","id":"d983d03f-834b-404d-95fe-fb7bf53345a3","savedPayload":{"position":{"x":31781.02259934975,"y":20165.05633182425},"targetPosition":{"x":31689.506854657695,"y":19959.508603854665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #3","id":"c78f507a-32d5-49b0-93c4-e433aaf32579"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"3","project":"Superalgos","id":"6ef28222-1bb6-4a4e-9062-20c11588dc72","savedPayload":{"position":{"x":31642.7267242237,"y":20179.591814019772},"targetPosition":{"x":31689.506854657695,"y":19959.508603854665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"16c8f58a-e6a8-4972-971f-8ff352207469","savedPayload":{"position":{"x":31522.299268925282,"y":20110.06299028541},"targetPosition":{"x":31689.506854657695,"y":19959.508603854665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0c3465cb-f509-4383-9730-f5d6b73a3014","savedPayload":{"position":{"x":31689.506854657695,"y":19959.508603854665},"targetPosition":{"x":31642.469046187252,"y":19511.97375093894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Error #4","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[3] !== undefined","project":"Superalgos","id":"1931c52d-52b2-4b5d-9f68-1116e9616d09","savedPayload":{"position":{"x":31731.172562686123,"y":20115.532529973727},"targetPosition":{"x":31572.07353691915,"y":19956.433504206754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": -270\n}","project":"Superalgos","id":"b097d5f5-4817-4d5b-b0e1-cd7859328d92","savedPayload":{"position":{"x":31607.271291553203,"y":20178.66338084066},"targetPosition":{"x":31572.07353691915,"y":19956.433504206754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #4","id":"722460d3-2849-4008-9437-c59301966ea7"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"4","project":"Superalgos","id":"2faaa1f5-ae11-49b3-9f9a-8c2388c99fd3","savedPayload":{"position":{"x":31469.925674477752,"y":20156.909972149137},"targetPosition":{"x":31572.07353691915,"y":19956.433504206754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"37c3a29e-eddb-40cb-a06c-704f998d5311","savedPayload":{"position":{"x":31371.597068976767,"y":20058.58136664815},"targetPosition":{"x":31572.07353691915,"y":19956.433504206754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"644168bf-4b65-4019-8308-1001c13b4f7a","savedPayload":{"position":{"x":31572.07353691915,"y":19956.433504206754},"targetPosition":{"x":31642.469046187252,"y":19511.97375093894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Error #5","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[4] !== undefined","project":"Superalgos","id":"6c6b8878-fc01-4280-b09d-a0dd2a9efee3","savedPayload":{"position":{"x":31571.937556803143,"y":20117.924922729613},"targetPosition":{"x":31459.437556803143,"y":19923.069206878114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": -315\n}","project":"Superalgos","id":"53be9549-3aed-4968-835b-ee0592d1fc3f","savedPayload":{"position":{"x":31435.91865256792,"y":20146.836633335974},"targetPosition":{"x":31459.437556803143,"y":19923.069206878114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #5","id":"0d37d958-e01a-4082-8b7b-b97e807a4864"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"5","project":"Superalgos","id":"1ff07e3a-4928-4e9f-b2d1-4ddc4487d462","savedPayload":{"position":{"x":31308.8831703724,"y":20090.276792610526},"targetPosition":{"x":31459.437556803143,"y":19923.069206878114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"9e594aea-79ee-4ca1-8bec-ba63b744ce89","savedPayload":{"position":{"x":31239.354346638036,"y":19969.84933731211},"targetPosition":{"x":31459.437556803143,"y":19923.069206878114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9d1ea8f6-dce7-44c6-ab1e-3b941ef3b095","savedPayload":{"position":{"x":31459.437556803143,"y":19923.069206878114},"targetPosition":{"x":31642.469046187252,"y":19511.97375093894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c2dcdcbc-31bf-4a44-b47f-a2e1bba10db9","savedPayload":{"position":{"x":31642.469046187252,"y":19511.97375093894},"targetPosition":{"x":31292.753363531614,"y":19228.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[],"nodesErrors":{"type":"Nodes Errors","name":"New Nodes Errors","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"c814ea79-0fa6-44bb-a636-d46d7b3720c4","savedPayload":{"position":{"x":31454.018940826998,"y":19648.890766890258},"targetPosition":{"x":31292.753363531614,"y":19228.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"64684730-d049-4d3c-8013-b48c5438417e","savedPayload":{"position":{"x":31292.753363531614,"y":19228.779574966517},"targetPosition":{"x":31028.25,"y":18864.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Status","config":"{ \n\"codeName\": \"Status\",\n\"connectTo\": \"Trading System\"\n}","project":"Superalgos","panels":[],"nodesStatus":{"type":"Nodes Status","name":"New Nodes Status","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"2b1290d8-41ff-48a3-a11b-45f1228e2a84","savedPayload":{"position":{"x":31306.365294937452,"y":19720.67279216343},"targetPosition":{"x":31167.307647468726,"y":19292.69735983061},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0437448d-8740-496b-8fce-d3804be81a2b","savedPayload":{"position":{"x":31167.307647468726,"y":19292.69735983061},"targetPosition":{"x":31028.25,"y":18864.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Progress","config":"{ \n\"codeName\": \"Progress\",\n\"connectTo\": \"Trading System\"\n}","project":"Superalgos","panels":[],"nodesProgress":{"type":"Nodes Progress","name":"New Nodes Progress","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"00c9d7bc-295f-48b6-81a0-71b6bc0b6299","savedPayload":{"position":{"x":31028.25,"y":19764.72192749779},"targetPosition":{"x":31028.25,"y":19314.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"99aecc8d-2bc4-4748-b642-78888c2d35eb","savedPayload":{"position":{"x":31028.25,"y":19314.72192749779},"targetPosition":{"x":31028.25,"y":18864.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Running","config":"{ \n\"codeName\": \"Running\",\n\"connectTo\": \"Trading System\"\n}","project":"Superalgos","panels":[],"nodesRunning":{"type":"Nodes Running","name":"New Nodes Running","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"3ef03483-8d69-452c-9f56-984574b79e32","savedPayload":{"position":{"x":30750.134705062548,"y":19720.67279216343},"targetPosition":{"x":30889.192352531274,"y":19292.69735983061},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ac1e8218-af24-491f-a552-736d83d68c01","savedPayload":{"position":{"x":30889.192352531274,"y":19292.69735983061},"targetPosition":{"x":31028.25,"y":18864.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Announcements","config":"{ \n\"codeName\": \"Announcements\",\n\"connectTo\": \"Trading System\"\n}","project":"Superalgos","panels":[],"nodesAnnouncements":{"type":"Nodes Announcements","name":"New Nodes Announcements","project":"Superalgos","id":"197785fc-72c7-46ef-83bf-a095b01cbfec","savedPayload":{"position":{"x":30499.243272936772,"y":19592.837222435242},"targetPosition":{"x":30763.746636468386,"y":19228.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0a3b8bea-749a-48ce-8b53-e4a731555b98","savedPayload":{"position":{"x":30763.746636468386,"y":19228.779574966517},"targetPosition":{"x":31028.25,"y":18864.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Warnings","config":"{\n \"codeName\": \"Warnings\",\n \"connectTo\": \"Trading System\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"warnings\",\n \"rateInArrayAtIndex\": 3,\n \"rateOffset\": 100,\n \"rateOffsetBasedOnArrayIndex\": 50,\n \"rateRange\": 20\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"Warnings","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Warning #1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[0][3]","project":"Superalgos","id":"955dbb62-9da0-474a-b938-10447c4a54ac","savedPayload":{"position":{"x":30950.14783820408,"y":19917.970780565356},"targetPosition":{"x":30690.340217068748,"y":19767.970780565356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c17d208d-1b72-4cd2-b134-ee8c259e314d","savedPayload":{"position":{"x":30690.340217068748,"y":19767.970780565356},"targetPosition":{"x":30430.532595933415,"y":19617.970780565356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Warning #2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[1][3]","project":"Superalgos","id":"4e8e1cf7-9418-4529-a7a5-e27d89caeb09","savedPayload":{"position":{"x":30730.532595933415,"y":20137.58602283602},"targetPosition":{"x":30580.532595933415,"y":19877.77840170069},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"03218a15-cf40-4310-923c-a31620f9a945","savedPayload":{"position":{"x":30580.532595933415,"y":19877.77840170069},"targetPosition":{"x":30430.532595933415,"y":19617.970780565356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Warning #3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[2][3]","project":"Superalgos","id":"66881529-631d-4246-a743-a307bc9d6aa2","savedPayload":{"position":{"x":30430.532595933415,"y":20217.970780565356},"targetPosition":{"x":30430.532595933415,"y":19917.970780565356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"249c359c-5ca3-4a9e-be87-b8794ae526f2","savedPayload":{"position":{"x":30430.532595933415,"y":19917.970780565356},"targetPosition":{"x":30430.532595933415,"y":19617.970780565356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Warning #4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[3][3]","project":"Superalgos","id":"ac67add0-20b7-4c03-b678-8178339c01d5","savedPayload":{"position":{"x":30130.532595933415,"y":20137.58602283602},"targetPosition":{"x":30280.532595933415,"y":19877.77840170069},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9c241c90-c546-4603-9859-4dc209b26395","savedPayload":{"position":{"x":30280.532595933415,"y":19877.77840170069},"targetPosition":{"x":30430.532595933415,"y":19617.970780565356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Warning #5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[4][3]","project":"Superalgos","id":"4c040bc8-f527-430e-a6c0-01c2313c2317","savedPayload":{"position":{"x":29910.91735366275,"y":19917.970780565356},"targetPosition":{"x":30170.724974798082,"y":19767.970780565356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"38f9f62f-61b4-48c2-800b-8655bbd9b3e0","savedPayload":{"position":{"x":30170.724974798082,"y":19767.970780565356},"targetPosition":{"x":30430.532595933415,"y":19617.970780565356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"772d90ad-328d-4c7f-92fc-a7d3bba27a3e","savedPayload":{"position":{"x":30645.501540090463,"y":19842.99862115377},"targetPosition":{"x":30380.99817655885,"y":19478.940973685043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[],"images":[{"type":"Image","name":"Warning #1","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 30\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[0] !== undefined","project":"Superalgos","id":"5f82b590-2e76-4916-8ffe-1c2cb9fa9bd0","savedPayload":{"position":{"x":30381.376669207402,"y":19751.590407898235},"targetPosition":{"x":30346.012828880986,"y":19605.818672649704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": 100\n}","project":"Superalgos","id":"79c89efc-0aab-42b4-85b1-e8c982810f05","savedPayload":{"position":{"x":30237.452723165225,"y":19709.33052437202},"targetPosition":{"x":30346.012828880986,"y":19605.818672649704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #1","id":"c17d208d-1b72-4cd2-b134-ee8c259e314d"}}},"id":"5b5ba2dc-28d0-4cd1-a0d3-726f7ddc452d","savedPayload":{"position":{"x":30542.263753854233,"y":19899.052165608784},"targetPosition":{"x":30380.99817655885,"y":19478.940973685043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Warning #2","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 25\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[1] !== undefined","project":"Superalgos","id":"0830de77-83ac-4d23-bbb5-e01000d0d67f","savedPayload":{"position":{"x":30261.203063323177,"y":19720.17694129216},"targetPosition":{"x":30268.340350696737,"y":19570.34684041471},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": 150\n}","project":"Superalgos","id":"a284cc7a-eb77-46d7-8550-62c2e49c7504","savedPayload":{"position":{"x":30135.0150333985,"y":19639.08081867382},"targetPosition":{"x":30268.340350696737,"y":19570.34684041471},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #2","id":"03218a15-cf40-4310-923c-a31620f9a945"}}},"id":"cea6948c-1672-43a0-9c26-24beed56de5e","savedPayload":{"position":{"x":30428.03598502929,"y":19926.475826600767},"targetPosition":{"x":30380.99817655885,"y":19478.940973685043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Warning #3","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[2] !== undefined","project":"Superalgos","id":"90f8693e-7eba-40b3-add2-199e5fa39d70","savedPayload":{"position":{"x":30154.747529129527,"y":19656.17912355614},"targetPosition":{"x":30203.80772362714,"y":19514.42900074894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": 200\n}","project":"Superalgos","id":"fe54cdf2-7470-4b9c-af53-d884d1e3fa66","savedPayload":{"position":{"x":30056.518419037733,"y":19542.816687403003},"targetPosition":{"x":30203.80772362714,"y":19514.42900074894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #3","id":"249c359c-5ca3-4a9e-be87-b8794ae526f2"}}},"id":"ff51bae6-767c-4f9f-a027-a4415d19b04a","savedPayload":{"position":{"x":30310.602667290746,"y":19923.400726952856},"targetPosition":{"x":30380.99817655885,"y":19478.940973685043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Warning #4","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 15\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[3] !== undefined","project":"Superalgos","id":"c012b2be-d48f-4fb5-b537-107cf4b81bf8","savedPayload":{"position":{"x":30070.634460891382,"y":19564.781677273473},"targetPosition":{"x":30157.64299732706,"y":19442.595284465922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": 250\n}","project":"Superalgos","id":"c092f2a0-9773-434a-a61b-3cd50b800127","savedPayload":{"position":{"x":30008.3222089411,"y":19428.336877970294},"targetPosition":{"x":30157.64299732706,"y":19442.595284465922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #4","id":"9c241c90-c546-4603-9859-4dc209b26395"}}},"id":"ba893ce4-7c1d-488c-a935-99c6bc2552e4","savedPayload":{"position":{"x":30197.96668717474,"y":19890.036429624215},"targetPosition":{"x":30380.99817655885,"y":19478.940973685043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Warning #5","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[4] !== undefined","project":"Superalgos","id":"09107391-78e3-4e1a-8aec-8d8b8ddd0180","savedPayload":{"position":{"x":30015.678199157715,"y":19453.389079980432},"targetPosition":{"x":30133.586163369135,"y":19360.66523204734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": 300\n}","project":"Superalgos","id":"d2b36499-fdf2-42c6-bbb2-53ce8516285f","savedPayload":{"position":{"x":29994.330973416723,"y":19304.91586369829},"targetPosition":{"x":30133.586163369135,"y":19360.66523204734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #5","id":"38f9f62f-61b4-48c2-800b-8655bbd9b3e0"}}},"id":"7d5dcf4d-e2bd-4245-890e-059e71f9d7ff","savedPayload":{"position":{"x":30097.804000586424,"y":19828.65665634068},"targetPosition":{"x":30380.99817655885,"y":19478.940973685043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"Warning #1","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[0] !== undefined","project":"Superalgos","id":"5128e16d-0369-4b46-99cd-ac16ea8567f4","savedPayload":{"position":{"x":30029.04552807084,"y":19382.846099797218},"targetPosition":{"x":30133.586163369135,"y":19275.276329083372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": 125\n}","project":"Superalgos","id":"bf0aef48-38f2-434b-8e0f-c34522053ca1","savedPayload":{"position":{"x":29985.783087991982,"y":19300.854657978267},"targetPosition":{"x":30133.586163369135,"y":19275.276329083372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #1","id":"c17d208d-1b72-4cd2-b134-ee8c259e314d"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"1","project":"Superalgos","id":"1b4304d4-4b7d-4e90-9db3-e51608ecf545","savedPayload":{"position":{"x":29998.976399065432,"y":19209.093163896887},"targetPosition":{"x":30133.586163369135,"y":19275.276329083372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"4b6fabc8-c8f4-49c4-b83e-516887736c87","savedPayload":{"position":{"x":30063.586064885283,"y":19142.6113894337},"targetPosition":{"x":30133.586163369135,"y":19275.276329083372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9ae006e7-8db3-4812-87e1-9afb4aa67ee2","savedPayload":{"position":{"x":30016.940529090123,"y":19743.444337216657},"targetPosition":{"x":30380.99817655885,"y":19478.940973685043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Warning #2","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[1] !== undefined","project":"Superalgos","id":"d677605f-0593-4375-a13e-3b3b0e50d432","savedPayload":{"position":{"x":30027.031085759096,"y":19267.10621536163},"targetPosition":{"x":30157.64299732706,"y":19193.34627666479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": 170\n}","project":"Superalgos","id":"b2e1a54f-b276-4fd7-8a92-c1921180ee65","savedPayload":{"position":{"x":30008.62073702478,"y":19176.24756518121},"targetPosition":{"x":30157.64299732706,"y":19193.34627666479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #2","id":"03218a15-cf40-4310-923c-a31620f9a945"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"2","project":"Superalgos","id":"0550bd63-2049-4bb2-91f8-72b9a4d4e871","savedPayload":{"position":{"x":30047.1318266456,"y":19091.920041623685},"targetPosition":{"x":30157.64299732706,"y":19193.34627666479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"a3f44ed2-fa6f-421f-af49-5c37d1bb9e3c","savedPayload":{"position":{"x":30127.8544273302,"y":19046.33389250093},"targetPosition":{"x":30157.64299732706,"y":19193.34627666479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1148e259-3f9c-4716-a289-5a6d3392508a","savedPayload":{"position":{"x":29960.886984635108,"y":19640.206550980427},"targetPosition":{"x":30380.99817655885,"y":19478.940973685043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Warning #3","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[2] !== undefined","project":"Superalgos","id":"db2b9481-384d-4779-9edf-f76546c9b15c","savedPayload":{"position":{"x":30057.70593608579,"y":19155.487075495636},"targetPosition":{"x":30203.80772362714,"y":19121.512560381772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": 215\n}","project":"Superalgos","id":"61597646-ba59-44b7-83fb-4f8a4b2762a2","savedPayload":{"position":{"x":30065.63917565991,"y":19063.122044434163},"targetPosition":{"x":30203.80772362714,"y":19121.512560381772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #3","id":"249c359c-5ca3-4a9e-be87-b8794ae526f2"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"3","project":"Superalgos","id":"b8c449e0-2e5c-408c-a1e2-27dc6b686087","savedPayload":{"position":{"x":30126.348104381294,"y":18993.060205844034},"targetPosition":{"x":30203.80772362714,"y":19121.512560381772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"aa9124d9-7698-4d2c-abd7-cdf053296d1f","savedPayload":{"position":{"x":30216.643974898965,"y":18972.06280075237},"targetPosition":{"x":30203.80772362714,"y":19121.512560381772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"aa0cc626-62bb-41bd-b91a-995068ae86b4","savedPayload":{"position":{"x":29933.463323643125,"y":19525.978782155486},"targetPosition":{"x":30380.99817655885,"y":19478.940973685043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Warning #4","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[3] !== undefined","project":"Superalgos","id":"94c7add9-543a-481f-a623-2168ea59738b","savedPayload":{"position":{"x":30118.584985107816,"y":19057.031399086587},"targetPosition":{"x":30268.340350696737,"y":19065.594720716002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": 260\n}","project":"Superalgos","id":"ef077928-67be-44d9-9e7d-65204293dd62","savedPayload":{"position":{"x":30152.219109100875,"y":18970.642852644673},"targetPosition":{"x":30268.340350696737,"y":19065.594720716002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #4","id":"9c241c90-c546-4603-9859-4dc209b26395"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"4","project":"Superalgos","id":"c8f68edf-2dd4-4e65-9a5a-0a7bce80ebb9","savedPayload":{"position":{"x":30230.207600567715,"y":18920.52269251071},"targetPosition":{"x":30268.340350696737,"y":19065.594720716002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"5301fa6b-e176-427e-96f7-80c9cf051f27","savedPayload":{"position":{"x":30322.761506499333,"y":18925.815116334285},"targetPosition":{"x":30268.340350696737,"y":19065.594720716002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8a7ad74d-0efe-44dc-b737-820539545fb0","savedPayload":{"position":{"x":29936.538423291036,"y":19408.54546441694},"targetPosition":{"x":30380.99817655885,"y":19478.940973685043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Warning #5","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[4] !== undefined","project":"Superalgos","id":"e975c1a0-cb6c-42cd-bd47-fc8732816db1","savedPayload":{"position":{"x":30204.73617433506,"y":18979.715479498693},"targetPosition":{"x":30346.012828880986,"y":19030.122888481008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": 305\n}","project":"Superalgos","id":"9358e516-e4bb-472b-b791-078a6b641d80","savedPayload":{"position":{"x":30261.34634605097,"y":18906.302103936592},"targetPosition":{"x":30346.012828880986,"y":19030.122888481008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #5","id":"38f9f62f-61b4-48c2-800b-8655bbd9b3e0"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"5","project":"Superalgos","id":"7a35af35-d89d-439a-86aa-79ee7a8886b1","savedPayload":{"position":{"x":30350.296236500042,"y":18880.18405955678},"targetPosition":{"x":30346.012828880986,"y":19030.122888481008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"47a6b751-be7c-426b-a2a0-7a652953601a","savedPayload":{"position":{"x":30437.6100108263,"y":18911.337551592667},"targetPosition":{"x":30346.012828880986,"y":19030.122888481008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d19d350e-4fb5-445b-8452-25dbb58ee162","savedPayload":{"position":{"x":29969.902720619677,"y":19295.909484300933},"targetPosition":{"x":30380.99817655885,"y":19478.940973685043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1cb82596-da2f-4b0b-8a7e-b9bf0dfe310f","savedPayload":{"position":{"x":30380.99817655885,"y":19478.940973685043},"targetPosition":{"x":30664.192352531274,"y":19129.225291029405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[],"nodesWarnings":{"type":"Nodes Warnings","name":"New Nodes Warnings","project":"Superalgos","id":"3d3a4958-90dd-458e-b1c8-a31bc1ff864c","savedPayload":{"position":{"x":30244.081160607533,"y":19290.49086832479},"targetPosition":{"x":30664.192352531274,"y":19129.225291029405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a9709093-95c1-4b1b-aeb5-329c7505ab75","savedPayload":{"position":{"x":30664.192352531274,"y":19129.225291029405},"targetPosition":{"x":31028.25,"y":18864.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Infos","config":"{\n \"codeName\": \"Infos\",\n \"connectTo\": \"Trading System\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"infos\",\n \"rateInArrayAtIndex\": 3,\n \"rateOffset\": 100,\n \"rateOffsetBasedOnArrayIndex\": 50,\n \"rateRange\": 20\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"Infos","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Info #1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[0][3]","project":"Superalgos","id":"08639b58-1bf6-4310-87ca-7688bf02312c","savedPayload":{"position":{"x":30372.307257578646,"y":19725.396872275393},"targetPosition":{"x":30112.499636443314,"y":19575.396872275393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e2193d1d-3c3a-4ba3-a61a-a3fa3a205bdd","savedPayload":{"position":{"x":30112.499636443314,"y":19575.396872275393},"targetPosition":{"x":29852.69201530798,"y":19425.396872275393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Info #2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[1][3]","project":"Superalgos","id":"17f4a676-8076-4fe7-b713-62e85b8b18a7","savedPayload":{"position":{"x":30152.69201530798,"y":19945.012114546058},"targetPosition":{"x":30002.69201530798,"y":19685.204493410725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"524b9641-2eca-4919-9da2-a431cfd0a96e","savedPayload":{"position":{"x":30002.69201530798,"y":19685.204493410725},"targetPosition":{"x":29852.69201530798,"y":19425.396872275393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Info #3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[2][3]","project":"Superalgos","id":"bcc7365d-4b1d-4d79-bebb-28e12f838361","savedPayload":{"position":{"x":29852.69201530798,"y":20025.396872275393},"targetPosition":{"x":29852.69201530798,"y":19725.396872275393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5105f48d-9987-4475-932a-56f566d90159","savedPayload":{"position":{"x":29852.69201530798,"y":19725.396872275393},"targetPosition":{"x":29852.69201530798,"y":19425.396872275393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Info #4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[3][3]","project":"Superalgos","id":"4b84d3c5-eaa7-4555-b927-e02b7e081bfa","savedPayload":{"position":{"x":29552.69201530798,"y":19945.012114546058},"targetPosition":{"x":29702.69201530798,"y":19685.204493410725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b3fd79f9-cccf-44b0-bcb2-285a84993f9e","savedPayload":{"position":{"x":29702.69201530798,"y":19685.204493410725},"targetPosition":{"x":29852.69201530798,"y":19425.396872275393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Info #5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[4][3]","project":"Superalgos","id":"1f46c5e2-5bd9-4171-a01e-b8431ac88cce","savedPayload":{"position":{"x":29333.076773037315,"y":19725.396872275393},"targetPosition":{"x":29592.884394172648,"y":19575.396872275393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ea3f2d7c-cf4c-489d-bb84-c25f80267e41","savedPayload":{"position":{"x":29592.884394172648,"y":19575.396872275393},"targetPosition":{"x":29852.69201530798,"y":19425.396872275393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d0603f25-80ef-4d01-a970-3bb5325619a2","savedPayload":{"position":{"x":30361.930459560466,"y":19676.8425730561},"targetPosition":{"x":30222.87281209174,"y":19248.86714072328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[],"images":[{"type":"Image","name":"Info #1","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 30\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[0] !== undefined","project":"Superalgos","id":"52a6ed4f-284d-4a8a-b6c1-c2a37770be10","savedPayload":{"position":{"x":29803.53608858197,"y":19559.01649960827},"targetPosition":{"x":29768.172248255552,"y":19413.24476435974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": 100\n}","project":"Superalgos","id":"5eebc216-dd6a-4cfb-abc4-3a45415b43f4","savedPayload":{"position":{"x":29659.61214253979,"y":19516.756616082057},"targetPosition":{"x":29768.172248255552,"y":19413.24476435974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #1","id":"e2193d1d-3c3a-4ba3-a61a-a3fa3a205bdd"}}},"id":"4d8f74b6-9188-4a2d-b061-0e981bdb407e","savedPayload":{"position":{"x":30246.423992401065,"y":19698.250431362838},"targetPosition":{"x":30222.87281209174,"y":19248.86714072328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Info #2","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 25\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[1] !== undefined","project":"Superalgos","id":"736c7c5c-79f4-475e-ad62-3966450a0372","savedPayload":{"position":{"x":29683.362482697743,"y":19527.603033002197},"targetPosition":{"x":29690.499770071303,"y":19377.772932124746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": 150\n}","project":"Superalgos","id":"b1ee694d-674f-44c8-8e1d-b7e475dd8b9d","savedPayload":{"position":{"x":29557.174452773066,"y":19446.506910383858},"targetPosition":{"x":29690.499770071303,"y":19377.772932124746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #2","id":"524b9641-2eca-4919-9da2-a431cfd0a96e"}}},"id":"613d9590-7c63-42c9-908a-61e2cd3236a2","savedPayload":{"position":{"x":30129.31255122375,"y":19689.033561053493},"targetPosition":{"x":30222.87281209174,"y":19248.86714072328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Info #3","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[2] !== undefined","project":"Superalgos","id":"ee7c575a-cbec-42c1-9f3c-8357f4aaeb98","savedPayload":{"position":{"x":29576.906948504093,"y":19463.605215266176},"targetPosition":{"x":29625.967143001704,"y":19321.855092458976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": 200\n}","project":"Superalgos","id":"e38affc9-b5ae-4e74-987f-f342645df6b5","savedPayload":{"position":{"x":29478.6778384123,"y":19350.24277911304},"targetPosition":{"x":29625.967143001704,"y":19321.855092458976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #3","id":"5105f48d-9987-4475-932a-56f566d90159"}}},"id":"1a26570e-ed10-49d7-abae-a57d64ab4e82","savedPayload":{"position":{"x":30018.577087208945,"y":19649.820076608044},"targetPosition":{"x":30222.87281209174,"y":19248.86714072328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Info #4","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 15\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[3] !== undefined","project":"Superalgos","id":"1adc9384-761c-48a0-8cef-bb4fd232400c","savedPayload":{"position":{"x":29492.79388026595,"y":19372.20776898351},"targetPosition":{"x":29579.802416701626,"y":19250.02137617596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": 250\n}","project":"Superalgos","id":"efcfc0b3-de68-4a0c-bb17-266afd8b27d2","savedPayload":{"position":{"x":29430.481628315665,"y":19235.76296968033},"targetPosition":{"x":29579.802416701626,"y":19250.02137617596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #4","id":"b3fd79f9-cccf-44b0-bcb2-285a84993f9e"}}},"id":"776b6da6-3d96-476a-b3a0-7d1727300f87","savedPayload":{"position":{"x":29921.764039230253,"y":19583.28231218811},"targetPosition":{"x":30222.87281209174,"y":19248.86714072328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Info #5","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[4] !== undefined","project":"Superalgos","id":"0127c787-6b41-434f-a0c3-31e53243fdf6","savedPayload":{"position":{"x":29437.83761853228,"y":19260.81517169047},"targetPosition":{"x":29555.7455827437,"y":19168.091323757377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": 300\n}","project":"Superalgos","id":"8065fedd-6175-447e-9273-3bd2fdd402f0","savedPayload":{"position":{"x":29416.49039279129,"y":19112.341955408327},"targetPosition":{"x":29555.7455827437,"y":19168.091323757377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #5","id":"ea3f2d7c-cf4c-489d-bb84-c25f80267e41"}}},"id":"b8a1d9ec-72e8-47d0-b246-66cda5e3eba0","savedPayload":{"position":{"x":29845.4710565163,"y":19493.954706480043},"targetPosition":{"x":30222.87281209174,"y":19248.86714072328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"Info #1","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[0] !== undefined","project":"Superalgos","id":"e057eb81-cde9-404d-82dc-adba53400eb9","savedPayload":{"position":{"x":29451.204947445407,"y":19190.272191507254},"targetPosition":{"x":29555.7455827437,"y":19082.70242079341},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": 125\n}","project":"Superalgos","id":"7a769245-01b3-4ca1-a79f-7a7dfe8bdf95","savedPayload":{"position":{"x":29407.942507366548,"y":19108.280749688303},"targetPosition":{"x":29555.7455827437,"y":19082.70242079341},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #1","id":"e2193d1d-3c3a-4ba3-a61a-a3fa3a205bdd"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"1","project":"Superalgos","id":"5c8dcf05-4b67-4c99-92cb-d626785152fb","savedPayload":{"position":{"x":29421.135818439998,"y":19016.519255606923},"targetPosition":{"x":29555.7455827437,"y":19082.70242079341},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"bea86183-5b1a-4c88-80c2-55fae38d18a4","savedPayload":{"position":{"x":29485.74548425985,"y":18950.037481143736},"targetPosition":{"x":29555.7455827437,"y":19082.70242079341},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8ff5465c-3513-4d38-8600-51e17c271e6a","savedPayload":{"position":{"x":29794.89737975892,"y":19387.924788192006},"targetPosition":{"x":30222.87281209174,"y":19248.86714072328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Info #2","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[1] !== undefined","project":"Superalgos","id":"90df78b4-860c-4fa4-b478-985976a16676","savedPayload":{"position":{"x":29449.19050513366,"y":19074.532307071666},"targetPosition":{"x":29579.802416701626,"y":19000.772368374826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": 170\n}","project":"Superalgos","id":"4fdcb5fa-776b-4ab4-9f78-e744b048fa6f","savedPayload":{"position":{"x":29430.780156399345,"y":18983.673656891246},"targetPosition":{"x":29579.802416701626,"y":19000.772368374826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #2","id":"524b9641-2eca-4919-9da2-a431cfd0a96e"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"2","project":"Superalgos","id":"bea6405a-087b-4c15-9111-1f7076e1d663","savedPayload":{"position":{"x":29469.291246020166,"y":18899.34613333372},"targetPosition":{"x":29579.802416701626,"y":19000.772368374826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"234737f6-2027-486d-95d7-b18ac61eae29","savedPayload":{"position":{"x":29550.013846704765,"y":18853.759984210967},"targetPosition":{"x":29579.802416701626,"y":19000.772368374826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"dc117f92-a30d-453e-9712-d23022e4c399","savedPayload":{"position":{"x":29773.489521452182,"y":19272.418321032605},"targetPosition":{"x":30222.87281209174,"y":19248.86714072328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Info #3","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[2] !== undefined","project":"Superalgos","id":"34ad2326-b013-4ad9-856b-cda86dd930d5","savedPayload":{"position":{"x":29479.865355460355,"y":18962.913167205672},"targetPosition":{"x":29625.967143001704,"y":18928.93865209181},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": 215\n}","project":"Superalgos","id":"22a4a7b3-23ff-42cf-afc1-dd4e5cc362e8","savedPayload":{"position":{"x":29487.798595034477,"y":18870.5481361442},"targetPosition":{"x":29625.967143001704,"y":18928.93865209181},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #3","id":"5105f48d-9987-4475-932a-56f566d90159"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"3","project":"Superalgos","id":"719238f0-12c3-4fb0-8d93-15483f6e7069","savedPayload":{"position":{"x":29548.50752375586,"y":18800.48629755407},"targetPosition":{"x":29625.967143001704,"y":18928.93865209181},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"a21a51eb-fcf6-4201-b4bd-e8bd11b78bd7","savedPayload":{"position":{"x":29638.80339427353,"y":18779.488892462407},"targetPosition":{"x":29625.967143001704,"y":18928.93865209181},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"aa712bdc-ab7d-4c45-a6ae-575db9b1a81f","savedPayload":{"position":{"x":29782.706391761527,"y":19155.30687985529},"targetPosition":{"x":30222.87281209174,"y":19248.86714072328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Info #4","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[3] !== undefined","project":"Superalgos","id":"b5a9fb83-ab5e-495b-ad2f-a005736323ef","savedPayload":{"position":{"x":29540.744404482382,"y":18864.457490796623},"targetPosition":{"x":29690.499770071303,"y":18873.02081242604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": 260\n}","project":"Superalgos","id":"f8170e78-f163-440a-ab5b-f1108143eb0f","savedPayload":{"position":{"x":29574.37852847544,"y":18778.06894435471},"targetPosition":{"x":29690.499770071303,"y":18873.02081242604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #4","id":"b3fd79f9-cccf-44b0-bcb2-285a84993f9e"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"4","project":"Superalgos","id":"4c19a337-8230-418f-bd6d-efe65c97afb7","savedPayload":{"position":{"x":29652.36701994228,"y":18727.948784220745},"targetPosition":{"x":29690.499770071303,"y":18873.02081242604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"fbe44bab-92dc-46b6-9687-1724c5ca65a3","savedPayload":{"position":{"x":29744.9209258739,"y":18733.24120804432},"targetPosition":{"x":29690.499770071303,"y":18873.02081242604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"346a72da-fbae-4d20-9550-3d5fd226c690","savedPayload":{"position":{"x":29821.919876206975,"y":19044.571415840484},"targetPosition":{"x":30222.87281209174,"y":19248.86714072328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Info #5","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[4] !== undefined","project":"Superalgos","id":"4db5414e-8a5b-4ed2-a099-e563d78e9e17","savedPayload":{"position":{"x":29626.895593709625,"y":18787.14157120873},"targetPosition":{"x":29768.172248255552,"y":18837.548980191044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": 305\n}","project":"Superalgos","id":"7b01a503-8b74-4874-a606-b1c37162938e","savedPayload":{"position":{"x":29683.505765425536,"y":18713.72819564663},"targetPosition":{"x":29768.172248255552,"y":18837.548980191044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #5","id":"ea3f2d7c-cf4c-489d-bb84-c25f80267e41"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"5","project":"Superalgos","id":"90809b91-db58-4db5-8532-922e8eb94254","savedPayload":{"position":{"x":29772.455655874608,"y":18687.610151266817},"targetPosition":{"x":29768.172248255552,"y":18837.548980191044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"fb151664-60fb-45ec-99fe-1d1e46311fbe","savedPayload":{"position":{"x":29859.769430200868,"y":18718.763643302704},"targetPosition":{"x":29768.172248255552,"y":18837.548980191044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"427990de-8a0d-46f7-9514-5bab2a27bf0d","savedPayload":{"position":{"x":29888.45764062691,"y":18947.758367861792},"targetPosition":{"x":30222.87281209174,"y":19248.86714072328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"48f7bd71-fb8c-46e4-8310-f3ad897bdbe8","savedPayload":{"position":{"x":30222.87281209174,"y":19248.86714072328},"targetPosition":{"x":30600.27456766718,"y":19003.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[],"nodesInfos":{"type":"Nodes Infos","name":"New Nodes Infos","project":"Superalgos","id":"4183f03b-db5b-4ba7-8e4f-befc192cbe36","savedPayload":{"position":{"x":30150.891277027622,"y":19027.33075527584},"targetPosition":{"x":30600.27456766718,"y":19003.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f175df3b-a277-44bc-88db-dcf6b0e3fa38","savedPayload":{"position":{"x":30600.27456766718,"y":19003.779574966517},"targetPosition":{"x":31028.25,"y":18864.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"34f9d374-f4ae-4abf-96e3-978c6b8a879a","savedPayload":{"position":{"x":31033.25,"y":18952.72192749779},"targetPosition":{"x":31033.25,"y":18502.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Trading Episode","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Episode Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"76185b66-f987-453f-8c6a-922af52e1496","savedPayload":{"position":{"x":31556.1655666476,"y":19443.052576965914},"targetPosition":{"x":31337.382334558122,"y":19495.577783833494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d36cc3b7-cf35-4b2d-9e62-af77e624bd8a","savedPayload":{"position":{"x":31337.382334558122,"y":19495.577783833494},"targetPosition":{"x":30899.815870379167,"y":19600.62819756865},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"015889b5-8517-4d56-8335-b546931b7582","savedPayload":{"position":{"x":31572.73507064903,"y":19653.588087184948},"targetPosition":{"x":31348.428670559075,"y":19635.93479064618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d51a844a-acff-4717-b416-ac02113bcb84","savedPayload":{"position":{"x":31348.428670559075,"y":19635.93479064618},"targetPosition":{"x":30899.815870379167,"y":19600.62819756865},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"6da64a35-215f-4e20-a1a4-b715565c9ec5","savedPayload":{"position":{"x":31523.434554824285,"y":19858.939514415088},"targetPosition":{"x":31315.561660009247,"y":19772.835742132942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cdc081f1-7080-407e-a1d8-20e71c2903f5","savedPayload":{"position":{"x":31315.561660009247,"y":19772.835742132942},"targetPosition":{"x":30899.815870379167,"y":19600.62819756865},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"ef75589f-d40b-48f3-9d22-c3819d4362d6","savedPayload":{"position":{"x":31413.08989715919,"y":20039.005630191525},"targetPosition":{"x":31241.998554899183,"y":19892.879819317233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a53dfccb-7edd-4b83-84dc-56f62fb77e2e","savedPayload":{"position":{"x":31241.998554899183,"y":19892.879819317233},"targetPosition":{"x":30899.815870379167,"y":19600.62819756865},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"75792ba3-caac-448f-976a-2e0beaa5fb15","savedPayload":{"position":{"x":30899.815870379167,"y":19600.62819756865},"targetPosition":{"x":30462.24940620021,"y":19495.577783833494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"aab82eaa-0871-4f3c-a133-f211a2de6a5d","savedPayload":{"position":{"x":30333.01226745457,"y":19932.805279387496},"targetPosition":{"x":30165.81235826772,"y":20277.329572320676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 2,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 2,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"2eff63cf-253f-46a3-b434-2e793943f39a","savedPayload":{"position":{"x":30879.583191957227,"y":20447.034435947182},"targetPosition":{"x":30537.81645156922,"y":20365.989560512822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"4b53ad47-88ba-4e43-b0c6-da437e26469b","savedPayload":{"position":{"x":30537.81645156922,"y":20365.989560512822},"targetPosition":{"x":30165.81235826772,"y":20277.329572320676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"b06f7ce1-592a-46e1-99ae-6d5b728b7ce6","savedPayload":{"position":{"x":30196.945572876604,"y":20657.958495062176},"targetPosition":{"x":30165.81235826772,"y":20277.329572320676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"d36cc3b7-cf35-4b2d-9e62-af77e624bd8a"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"1d460f06-361e-4e8a-a119-02e7d1d40b14","savedPayload":{"position":{"x":29781.38164664382,"y":20414.41164802467},"targetPosition":{"x":30165.81235826772,"y":20277.329572320676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"cdc081f1-7080-407e-a1d8-20e71c2903f5"}}}],"id":"7237c558-a0e5-46c6-8cf5-ebc555e98efb","savedPayload":{"position":{"x":30826.307053668937,"y":19760.08114736511},"targetPosition":{"x":30462.24940620021,"y":19495.577783833494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"dac76f26-8574-413e-9a59-c3d22393f884","savedPayload":{"position":{"x":30212.382115550285,"y":20147.943205779073},"targetPosition":{"x":29926.729918759043,"y":20412.115065262453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 2,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 2,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"01979f43-b2d9-4efb-beae-be89986ad308","savedPayload":{"position":{"x":30521.613240524883,"y":20841.728670413067},"targetPosition":{"x":30236.523779375348,"y":20635.891743303902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"31d548c0-90ae-456a-80c1-f11da75d9203","savedPayload":{"position":{"x":30236.523779375348,"y":20635.891743303902},"targetPosition":{"x":29926.729918759043,"y":20412.115065262453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"7732c454-a983-4af6-aa1b-4ac89412c735","savedPayload":{"position":{"x":29810.137308186477,"y":20775.962109295877},"targetPosition":{"x":29926.729918759043,"y":20412.115065262453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"d36cc3b7-cf35-4b2d-9e62-af77e624bd8a"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"bdff1a41-c544-44ba-aafb-db30fa1ef9a1","savedPayload":{"position":{"x":29520.193537180432,"y":20391.82490331662},"targetPosition":{"x":29926.729918759043,"y":20412.115065262453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"cdc081f1-7080-407e-a1d8-20e71c2903f5"}}}],"id":"4958982a-b51a-40ef-8764-dd5451cf9837","savedPayload":{"position":{"x":30697.37376032239,"y":19879.265857792834},"targetPosition":{"x":30462.24940620021,"y":19495.577783833494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"7965d803-ccde-40ec-b09f-dc50b498257c","savedPayload":{"position":{"x":29624.064140406535,"y":15860.478944890612},"targetPosition":{"x":29852.949664088595,"y":16045.932870651202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"63e9bbd0-f235-4ec7-a6bc-9ab46db2d307","savedPayload":{"position":{"x":29852.949664088595,"y":16045.932870651202},"targetPosition":{"x":30120.423156791174,"y":16262.657341243605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"3bec1e67-abaf-428e-b443-dc27969767b5","savedPayload":{"position":{"x":30084.59385926244,"y":15920.245116220129},"targetPosition":{"x":30120.423156791174,"y":16262.657341243605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"d36cc3b7-cf35-4b2d-9e62-af77e624bd8a"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"471fc78f-4538-4834-bbed-a329d1e4601e","savedPayload":{"position":{"x":30337.19682824014,"y":15994.889234209159},"targetPosition":{"x":30120.423156791174,"y":16262.657341243605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"d51a844a-acff-4717-b416-ac02113bcb84"}}}],"id":"86fefa5e-8de8-4d00-a632-e1827ce60030","savedPayload":{"position":{"x":30532.644915468314,"y":19940.037537101307},"targetPosition":{"x":30462.24940620021,"y":19495.577783833494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"c4bb446c-e574-4e59-afed-3538eab694d5","savedPayload":{"position":{"x":29744.74822042315,"y":15822.187086513763},"targetPosition":{"x":29952.493134689397,"y":16030.109595647176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6f0d820a-fb29-48d7-89f1-d1ea5a74e653","savedPayload":{"position":{"x":29952.493134689397,"y":16030.109595647176},"targetPosition":{"x":30181.930506756144,"y":16259.767100000598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"ef071433-8fc9-4d59-a4c5-9bd2e7bc4fb0","savedPayload":{"position":{"x":30181.92871714458,"y":15934.084356437761},"targetPosition":{"x":30181.930506756144,"y":16259.767100000598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"cdc081f1-7080-407e-a1d8-20e71c2903f5"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"c4f97c3d-8990-4091-8ff0-638afe58c282","savedPayload":{"position":{"x":30412.493608545916,"y":16029.162817131004},"targetPosition":{"x":30181.930506756144,"y":16259.767100000598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"a53dfccb-7edd-4b83-84dc-56f62fb77e2e"}}}],"id":"79a3b846-3b23-4c01-9aa1-cedcebb5ca03","savedPayload":{"position":{"x":30357.198992465055,"y":19933.14424801245},"targetPosition":{"x":30462.24940620021,"y":19495.577783833494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{\n \"codeName\": \"trading-episode\",\n \"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"c03a6ea3-1555-4c1d-b268-d6e1032fd656","savedPayload":{"position":{"x":30065.49436090279,"y":20041.664255036583},"targetPosition":{"x":30197.746042668598,"y":19859.63543130222},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"d36cc3b7-cf35-4b2d-9e62-af77e624bd8a"}}},"id":"ad9be6ea-d6dd-4c5d-932a-8b34d322fa76","savedPayload":{"position":{"x":30197.746042668598,"y":19859.63543130222},"targetPosition":{"x":30462.24940620021,"y":19495.577783833494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{\n \"codeName\": \"trading-episode\",\n \"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"45d5d8a0-92e4-4e20-af13-8ea425c068cb","savedPayload":{"position":{"x":29886.7172952612,"y":19848.26431501676},"targetPosition":{"x":30078.56133224087,"y":19730.70213795567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"cdc081f1-7080-407e-a1d8-20e71c2903f5"}}},"id":"5bc2bd0b-c164-432b-abb6-269dbca0f627","savedPayload":{"position":{"x":30078.56133224087,"y":19730.70213795567},"targetPosition":{"x":30462.24940620021,"y":19495.577783833494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"0d8e669e-47fd-41f7-8108-8df3e7acd5ef","savedPayload":{"position":{"x":30462.24940620021,"y":19495.577783833494},"targetPosition":{"x":30391.85389693211,"y":19051.11803056568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Episode Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"b5d632ba-523a-401c-84db-1ce47efa7059","savedPayload":{"position":{"x":30625.935604672188,"y":19965.34499323047},"targetPosition":{"x":30479.809793797896,"y":19794.253650970462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0ccc88ff-cae0-46e6-8e91-36dd4b185d12","savedPayload":{"position":{"x":30479.809793797896,"y":19794.253650970462},"targetPosition":{"x":30187.558172049314,"y":19452.070966450447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"3292dd95-270f-490b-bba8-0eb82afa4b29","savedPayload":{"position":{"x":30396.144643252403,"y":20094.034114949674},"targetPosition":{"x":30326.61581951804,"y":19880.046398783266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f7b5fd21-8167-4949-be53-8de453a38904","savedPayload":{"position":{"x":30326.61581951804,"y":19880.046398783266},"targetPosition":{"x":30187.558172049314,"y":19452.070966450447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"7a945058-1f89-420d-94ea-6c01142e814a","savedPayload":{"position":{"x":30134.598282433017,"y":20124.99016672031},"targetPosition":{"x":30152.251578971784,"y":19900.683766630355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"03168102-4498-4cc9-a685-1fea8ec5d208","savedPayload":{"position":{"x":30152.251578971784,"y":19900.683766630355},"targetPosition":{"x":30187.558172049314,"y":19452.070966450447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Rate","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"15ec12a6-815c-4432-a16b-d2600297aa83","savedPayload":{"position":{"x":29881.11458472512,"y":20053.500370277594},"targetPosition":{"x":29983.26244716652,"y":19853.02390233521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"534c09c7-1812-4266-ba81-b9fc8cf3d070","savedPayload":{"position":{"x":29983.26244716652,"y":19853.02390233521},"targetPosition":{"x":30187.558172049314,"y":19452.070966450447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Rate","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"bf1f2748-56f4-451a-87dc-8cd385d649de","savedPayload":{"position":{"x":29674.284145269296,"y":19890.44839907332},"targetPosition":{"x":29845.3754875293,"y":19744.32258819903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"54b9bfa4-3d94-4a39-b7ae-e5c882022fcf","savedPayload":{"position":{"x":29845.3754875293,"y":19744.32258819903},"targetPosition":{"x":30187.558172049314,"y":19452.070966450447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin","config":"{\n }","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"UI.projects.superalgos.utilities.dates.formatDate(record.begin)","project":"Superalgos","id":"6ad056b5-bcf6-4e6a-88d6-9435c67765e5","savedPayload":{"position":{"x":29545.595023550086,"y":19660.657437653535},"targetPosition":{"x":29759.582739716494,"y":19591.128613919172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"70bc2470-d0e3-48a0-97c2-67189f3aaa9c","savedPayload":{"position":{"x":29759.582739716494,"y":19591.128613919172},"targetPosition":{"x":30187.558172049314,"y":19452.070966450447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End","config":"{\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"UI.projects.superalgos.utilities.dates.formatDate(record.end)","project":"Superalgos","id":"81c41360-308d-4609-9a3b-b234a65fa49a","savedPayload":{"position":{"x":29514.638971779452,"y":19399.11107683415},"targetPosition":{"x":29738.945371869406,"y":19416.764373372916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4daad4f7-a1db-40d1-a88e-fe4669b422f5","savedPayload":{"position":{"x":29738.945371869406,"y":19416.764373372916},"targetPosition":{"x":30187.558172049314,"y":19452.070966450447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bcbb3368-ea4c-466b-8423-8f0517ad35da","savedPayload":{"position":{"x":30187.558172049314,"y":19452.070966450447},"targetPosition":{"x":30391.85389693211,"y":19051.11803056568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Episode Base Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Hits","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitsInBaseAsset","project":"Superalgos","id":"178cea7f-657c-47b5-bf08-783fccf30abd","savedPayload":{"position":{"x":30131.69197958355,"y":20144.333261984102},"targetPosition":{"x":30061.296470315447,"y":19699.87350871629},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d06bfec8-344e-4d09-ad45-5d881051c86d","savedPayload":{"position":{"x":30061.296470315447,"y":19699.87350871629},"targetPosition":{"x":29990.900961047344,"y":19255.413755448477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fails","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.failsInBaseAsset","project":"Superalgos","id":"9b2e4688-d344-4aaf-a819-fb37e2d7f01f","savedPayload":{"position":{"x":29850.10994251114,"y":20144.333261984102},"targetPosition":{"x":29920.50545177924,"y":19699.87350871629},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3456d30c-437f-475a-b6d4-86c56c5c5875","savedPayload":{"position":{"x":29920.50545177924,"y":19699.87350871629},"targetPosition":{"x":29990.900961047344,"y":19255.413755448477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Ratio","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitRatioInBaseAsset","project":"Superalgos","id":"43ffaa8c-1678-40bc-8b89-1d3613b0bf80","savedPayload":{"position":{"x":29582.309511281754,"y":20057.319627218007},"targetPosition":{"x":29786.60523616455,"y":19656.36669133324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c9328b65-a3e0-4c81-9e7f-321d02566f6a","savedPayload":{"position":{"x":29786.60523616455,"y":19656.36669133324},"targetPosition":{"x":29990.900961047344,"y":19255.413755448477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Profit Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.profitLossInBaseAsset","project":"Superalgos","id":"b1750d80-b1a6-4e57-b575-176c5c63cc85","savedPayload":{"position":{"x":29354.504857979453,"y":19891.809858516368},"targetPosition":{"x":29672.7029095134,"y":19573.611806982422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"91a729d3-1a8d-44c6-89f6-548456b1e300","savedPayload":{"position":{"x":29672.7029095134,"y":19573.611806982422},"targetPosition":{"x":29990.900961047344,"y":19255.413755448477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ROI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ROIInBaseAsset","project":"Superalgos","id":"57eb486f-3069-4df2-a095-7ae86f3c849e","savedPayload":{"position":{"x":29188.995089277814,"y":19664.005205214067},"targetPosition":{"x":29589.94802516258,"y":19459.709480331272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8c0532fa-8338-4659-acdb-4429c00c69f5","savedPayload":{"position":{"x":29589.94802516258,"y":19459.709480331272},"targetPosition":{"x":29990.900961047344,"y":19255.413755448477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Annualized Rate Of Return","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.annualizedRateOfReturnInBaseAsset","project":"Superalgos","id":"9668524f-81b7-4805-a095-729344436bdc","savedPayload":{"position":{"x":29101.98145451172,"y":19396.204773984682},"targetPosition":{"x":29546.44120777953,"y":19325.80926471658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"01f3e8f9-42bd-477d-a073-ece04b3462c3","savedPayload":{"position":{"x":29546.44120777953,"y":19325.80926471658},"targetPosition":{"x":29990.900961047344,"y":19255.413755448477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFailInBaseAsset","project":"Superalgos","id":"5530bf09-a7d7-4721-b6c9-35959c6ef57f","savedPayload":{"position":{"x":29101.98145451172,"y":19114.62273691227},"targetPosition":{"x":29546.44120777953,"y":19185.018246180374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e6a87a47-eb70-41c8-9b56-37bb3c1cff42","savedPayload":{"position":{"x":29546.44120777953,"y":19185.018246180374},"targetPosition":{"x":29990.900961047344,"y":19255.413755448477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Balance","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginBalanceInBaseAsset","project":"Superalgos","id":"bdcfb0ac-dd92-47c6-b1ce-2052125a69d3","savedPayload":{"position":{"x":29188.995089277814,"y":18846.822305682887},"targetPosition":{"x":29589.94802516258,"y":19051.11803056568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"05d8cc70-c3e8-416e-9976-94aabb6fb850","savedPayload":{"position":{"x":29589.94802516258,"y":19051.11803056568},"targetPosition":{"x":29990.900961047344,"y":19255.413755448477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Balance","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endBalanceInBaseAsset","project":"Superalgos","id":"e93cb7de-6d1a-496d-8adc-23e546ccae20","savedPayload":{"position":{"x":29354.504857979453,"y":18619.017652380586},"targetPosition":{"x":29672.7029095134,"y":18937.21570391453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5f28fda1-332a-4052-abac-3586386868df","savedPayload":{"position":{"x":29672.7029095134,"y":18937.21570391453},"targetPosition":{"x":29990.900961047344,"y":19255.413755448477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b18a5300-448b-4165-9b36-dc5ee37e58cd","savedPayload":{"position":{"x":29990.900961047344,"y":19255.413755448477},"targetPosition":{"x":30391.85389693211,"y":19051.11803056568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Episode Quoted Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Hits","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitsInQuotedAsset","project":"Superalgos","id":"68babd3f-d90c-4df0-9050-746d17ab3ea1","savedPayload":{"position":{"x":29538.802693898706,"y":19782.62839306711},"targetPosition":{"x":29743.0984187815,"y":19381.675457182344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"962215d1-1e67-43c7-9a7c-01f5e6f9e6e8","savedPayload":{"position":{"x":29743.0984187815,"y":19381.675457182344},"targetPosition":{"x":29947.394143664296,"y":18980.72252129758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fails","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.failsInQuotedAsset","project":"Superalgos","id":"9040394b-4c9c-4873-914c-31073717f3d7","savedPayload":{"position":{"x":29310.998040596405,"y":19617.11862436547},"targetPosition":{"x":29629.19609213035,"y":19298.920572831525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fe5a306c-7f59-43aa-bf1e-62ad7639a87f","savedPayload":{"position":{"x":29629.19609213035,"y":19298.920572831525},"targetPosition":{"x":29947.394143664296,"y":18980.72252129758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Ratio","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitRatioInQuotedAsset","project":"Superalgos","id":"c30aadb6-44a2-400d-96b2-a51c2eaccacf","savedPayload":{"position":{"x":29145.488271894767,"y":19389.31397106317},"targetPosition":{"x":29546.44120777953,"y":19185.018246180374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"19fb6789-7b00-4e86-bfde-775bcd813300","savedPayload":{"position":{"x":29546.44120777953,"y":19185.018246180374},"targetPosition":{"x":29947.394143664296,"y":18980.72252129758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Profit Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.profitLossInQuotedAsset","project":"Superalgos","id":"b296257d-c3fd-406f-85de-b89121b332f6","savedPayload":{"position":{"x":29058.47463712867,"y":19121.513539833784},"targetPosition":{"x":29502.934390396484,"y":19051.11803056568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dad82788-bdb3-4df2-9cfd-2a8d22a2278f","savedPayload":{"position":{"x":29502.934390396484,"y":19051.11803056568},"targetPosition":{"x":29947.394143664296,"y":18980.72252129758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ROI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ROIInQuotedAsset","project":"Superalgos","id":"88e43d30-c26b-4d43-ba1a-e2a318154b95","savedPayload":{"position":{"x":29058.47463712867,"y":18839.931502761374},"targetPosition":{"x":29502.934390396484,"y":18910.327012029476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"54f32b24-0657-4be3-a24c-ea988797f93a","savedPayload":{"position":{"x":29502.934390396484,"y":18910.327012029476},"targetPosition":{"x":29947.394143664296,"y":18980.72252129758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Annualized Rate Of Return","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.annualizedRateOfReturnInQuotedAsset","project":"Superalgos","id":"e30aa4c9-50ef-40a6-bf65-ae8674eddd3f","savedPayload":{"position":{"x":29145.488271894767,"y":18572.13107153199},"targetPosition":{"x":29546.44120777953,"y":18776.426796414784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b94cbb0-ec78-4a85-b815-06533aaa7ea9","savedPayload":{"position":{"x":29546.44120777953,"y":18776.426796414784},"targetPosition":{"x":29947.394143664296,"y":18980.72252129758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFailInQuotedAsset","project":"Superalgos","id":"38b3d1b7-f954-4042-abfb-1fd9167e0e35","savedPayload":{"position":{"x":29310.998040596405,"y":18344.326418229688},"targetPosition":{"x":29629.19609213035,"y":18662.524469763634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"524a686a-eadf-4652-a2ca-f73f40dc10f1","savedPayload":{"position":{"x":29629.19609213035,"y":18662.524469763634},"targetPosition":{"x":29947.394143664296,"y":18980.72252129758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Balance","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginBalanceInQuotedAsset","project":"Superalgos","id":"78d24874-e442-4b7d-9602-b434fa246640","savedPayload":{"position":{"x":29538.802693898706,"y":18178.81664952805},"targetPosition":{"x":29743.0984187815,"y":18579.769585412814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"480cfd81-87e5-4022-ac2b-9adb7f04c105","savedPayload":{"position":{"x":29743.0984187815,"y":18579.769585412814},"targetPosition":{"x":29947.394143664296,"y":18980.72252129758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Balance","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endBalanceInQuotedAsset","project":"Superalgos","id":"abe4d95f-ae51-4237-8bda-0d2ec08ef13c","savedPayload":{"position":{"x":29806.60312512809,"y":18091.803014761954},"targetPosition":{"x":29876.998634396194,"y":18536.262768029766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0245f0f4-59c6-4f14-8ec9-5a80ab0cd05e","savedPayload":{"position":{"x":29876.998634396194,"y":18536.262768029766},"targetPosition":{"x":29947.394143664296,"y":18980.72252129758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dbdd55de-9279-48ef-a0b1-e50024f284e9","savedPayload":{"position":{"x":29947.394143664296,"y":18980.72252129758},"targetPosition":{"x":30391.85389693211,"y":19051.11803056568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b7320c91-b8aa-4642-bd11-a1efb2a88d39","savedPayload":{"position":{"x":30391.85389693211,"y":19051.11803056568},"targetPosition":{"x":30710.051948466054,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"12f444b2-b8e7-48ef-9ea1-9cbe5489f942","savedPayload":{"position":{"x":30715.051948466054,"y":18820.919979031736},"targetPosition":{"x":31033.25,"y":18502.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Trading Strategy","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Strategy Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"458c8a52-4191-4fa5-b4f7-a0eb2edfcdc8","savedPayload":{"position":{"x":29760.064199055472,"y":19270.81117936762},"targetPosition":{"x":29657.08012851361,"y":19142.802382613736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a464e820-57a7-4233-b23b-e802fc9b3a33","savedPayload":{"position":{"x":29657.08012851361,"y":19142.802382613736},"targetPosition":{"x":29439.46441790837,"y":18872.07459723221},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"3abb7e03-f8f3-4956-9729-756e7974c5a0","savedPayload":{"position":{"x":29621.048404721925,"y":19350.580120625633},"targetPosition":{"x":29562.723713908406,"y":19196.946791712257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d2e900e2-444c-4268-b07a-fc41811c82d8","savedPayload":{"position":{"x":29562.723713908406,"y":19196.946791712257},"targetPosition":{"x":29439.46441790837,"y":18872.07459723221},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"5ef24a29-2154-4304-ae0d-e046db069042","savedPayload":{"position":{"x":29463.840135326434,"y":19382.588135096037},"targetPosition":{"x":29456.089350137914,"y":19219.09595063912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e960d99e-f263-4ee8-9801-9b97f534bd5e","savedPayload":{"position":{"x":29456.089350137914,"y":19219.09595063912},"targetPosition":{"x":29439.46441790837,"y":18872.07459723221},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"6d7f55b1-11df-4598-bab9-32a02ae6fa33","savedPayload":{"position":{"x":29304.466274815495,"y":19366.155449549165},"targetPosition":{"x":29348.22130464109,"y":19206.449328213388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3a8be5c7-aff5-4283-bd17-dadd6dddda4d","savedPayload":{"position":{"x":29348.22130464109,"y":19206.449328213388},"targetPosition":{"x":29439.46441790837,"y":18872.07459723221},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"87bdc7ca-4228-48a3-ab2d-4eba01abfa2e","savedPayload":{"position":{"x":30177.192643053924,"y":19161.442362331847},"targetPosition":{"x":29903.25,"y":18804.43335920079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"3d4e39c7-4178-4557-95b9-0bb94a15135c","savedPayload":{"position":{"x":29545.067512181307,"y":18795.725515755446},"targetPosition":{"x":29183.363429522287,"y":18875.059449411172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 4,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 4,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"83329324-581e-42e2-948e-7d06a3d9066c","savedPayload":{"position":{"x":29482.346765525508,"y":19510.856735574136},"targetPosition":{"x":29342.33182955007,"y":19213.34307549251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"4a04b54a-70b9-4e92-a474-d6ef03a97f26","savedPayload":{"position":{"x":29342.33182955007,"y":19213.34307549251},"targetPosition":{"x":29183.363429522287,"y":18875.059449411172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"b3a7f670-c86e-4382-93ee-bb6dbabfd159","savedPayload":{"position":{"x":28910.93940806736,"y":19131.51291083886},"targetPosition":{"x":29183.363429522287,"y":18875.059449411172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"a464e820-57a7-4233-b23b-e802fc9b3a33"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"0e17c75c-09f4-49ae-8e6a-55fdfd89f428","savedPayload":{"position":{"x":28847.004110744176,"y":18667.835793932267},"targetPosition":{"x":29183.363429522287,"y":18875.059449411172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"e960d99e-f263-4ee8-9801-9b97f534bd5e"}}}],"id":"9ae59a68-71fd-4ec8-9a70-da743f33baee","savedPayload":{"position":{"x":30019.718570296136,"y":19239.09998103087},"targetPosition":{"x":29903.25,"y":18804.43335920079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"5eb17be1-910b-4da5-959b-e7cf21dfa896","savedPayload":{"position":{"x":29319.617069909073,"y":18824.94429076345},"targetPosition":{"x":28946.214045470773,"y":18779.395385930704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 4,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 4,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"f790de9e-e87a-4f2a-86d5-c8f69d4b9525","savedPayload":{"position":{"x":28979.284226806616,"y":19480.95299827213},"targetPosition":{"x":28963.789546707696,"y":19152.936255292465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"a4e077b1-7bc7-4d90-b796-b4e808985b89","savedPayload":{"position":{"x":28963.789546707696,"y":19152.936255292465},"targetPosition":{"x":28946.214045470773,"y":18779.395385930704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"b158074f-5013-4899-b61b-232eb519370c","savedPayload":{"position":{"x":28596.63755933227,"y":18912.045738409826},"targetPosition":{"x":28946.214045470773,"y":18779.395385930704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"a464e820-57a7-4233-b23b-e802fc9b3a33"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"365ee7e7-0529-4acc-a77f-d596c195399f","savedPayload":{"position":{"x":28714.956060883713,"y":18459.358568053936},"targetPosition":{"x":28946.214045470773,"y":18779.395385930704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"e960d99e-f263-4ee8-9801-9b97f534bd5e"}}}],"id":"504f327c-a08d-4c3d-8e77-850299cc30ed","savedPayload":{"position":{"x":29844.513213500977,"y":19250.583546819005},"targetPosition":{"x":29903.25,"y":18804.43335920079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"e2422730-fb47-4014-a707-8c346d6bc327","savedPayload":{"position":{"x":29951.723339216227,"y":15965.429670134195},"targetPosition":{"x":30180.608862898287,"y":16150.883595894786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bbd7ee22-fb16-4b59-9e0c-04018e9dd3fa","savedPayload":{"position":{"x":30180.608862898287,"y":16150.883595894786},"targetPosition":{"x":30448.082355600865,"y":16367.608066487188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"a3a9eca0-36f3-4058-b8d7-872ce77209cd","savedPayload":{"position":{"x":30412.253058072132,"y":16025.195841463712},"targetPosition":{"x":30448.082355600865,"y":16367.608066487188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"a464e820-57a7-4233-b23b-e802fc9b3a33"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"d480fdc6-89e5-4547-a2ae-17ff5e4fc917","savedPayload":{"position":{"x":30664.85602704983,"y":16099.83995945274},"targetPosition":{"x":30448.082355600865,"y":16367.608066487188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"d2e900e2-444c-4268-b07a-fc41811c82d8"}}}],"id":"f9500afd-e0f4-45d3-9647-45ec778554e8","savedPayload":{"position":{"x":29678.25,"y":19194.14479090379},"targetPosition":{"x":29903.25,"y":18804.43335920079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"03ebe379-fb32-47fc-bfd6-b9ccc73bfd16","savedPayload":{"position":{"x":30072.40741923284,"y":15927.137811757346},"targetPosition":{"x":30280.15233349909,"y":16135.06032089076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"054fcea5-2f72-4439-be45-c289a3bdab14","savedPayload":{"position":{"x":30280.15233349909,"y":16135.06032089076},"targetPosition":{"x":30509.589705565835,"y":16364.71782524418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"a0b737cf-ec7b-4026-870c-cebec148464f","savedPayload":{"position":{"x":30509.58791595427,"y":16039.035081681344},"targetPosition":{"x":30509.589705565835,"y":16364.71782524418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"e960d99e-f263-4ee8-9801-9b97f534bd5e"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"fceb54ef-473e-4062-9407-ec64e9040504","savedPayload":{"position":{"x":30740.152807355607,"y":16134.113542374587},"targetPosition":{"x":30509.589705565835,"y":16364.71782524418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"3a8be5c7-aff5-4283-bd17-dadd6dddda4d"}}}],"id":"354102dd-fd58-4f84-8e90-0d891defa0c8","savedPayload":{"position":{"x":29546.240996868943,"y":19078.376002254714},"targetPosition":{"x":29903.25,"y":18804.43335920079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"strategy\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"64c0d038-c401-4317-84fd-b73e1b210d00","savedPayload":{"position":{"x":29251.250067254878,"y":18979.136214644994},"targetPosition":{"x":29468.58337816992,"y":18920.901929496926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"a464e820-57a7-4233-b23b-e802fc9b3a33"}}},"id":"01f6ebd3-e14f-4434-a0fb-1d8167122ce3","savedPayload":{"position":{"x":29468.58337816992,"y":18920.901929496926},"targetPosition":{"x":29903.25,"y":18804.43335920079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"strategy\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"56f86edf-c2cc-491b-8cea-4bae0f03ebfd","savedPayload":{"position":{"x":29234.024718572677,"y":18716.328179452255},"targetPosition":{"x":29457.099812381784,"y":18745.696572701767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"e960d99e-f263-4ee8-9801-9b97f534bd5e"}}},"id":"df6a3044-b207-4564-8c28-8d64c679ee9a","savedPayload":{"position":{"x":29457.099812381784,"y":18745.696572701767},"targetPosition":{"x":29903.25,"y":18804.43335920079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"b02b7fee-30b0-41f0-ae06-a073c57289d9","savedPayload":{"position":{"x":29903.25,"y":18804.43335920079},"targetPosition":{"x":30128.25,"y":18414.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Strategy Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"b037ec89-e05b-432c-9b61-da05bda134cc","savedPayload":{"position":{"x":29566.69371845135,"y":18050.23190238021},"targetPosition":{"x":29678.879145634233,"y":18041.824766851736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0316c81d-7b05-42cb-876e-19d25eb1896a","savedPayload":{"position":{"x":29678.879145634233,"y":18041.824766851736},"targetPosition":{"x":29903.25,"y":18025.01049579479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"ed7a2560-35b9-4142-bd68-77347bf66b89","savedPayload":{"position":{"x":29589.08010983258,"y":17901.70790007113},"targetPosition":{"x":29693.803406555053,"y":17942.80876531235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5d9060d4-50fb-4cda-8037-85f7ffae5c27","savedPayload":{"position":{"x":29693.803406555053,"y":17942.80876531235},"targetPosition":{"x":29903.25,"y":18025.01049579479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.strategyName","project":"Superalgos","id":"925d79c1-efdd-4555-baba-72e686294057","savedPayload":{"position":{"x":29673.691701002313,"y":17777.605489052225},"targetPosition":{"x":29750.211134001544,"y":17860.07382463308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1a4951ef-23ae-4228-8479-a0fe687c2d82","savedPayload":{"position":{"x":29750.211134001544,"y":17860.07382463308},"targetPosition":{"x":29903.25,"y":18025.01049579479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Triggered By Situation","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.situationName","project":"Superalgos","id":"24317532-e6bf-4827-9196-e052fe28bcb3","savedPayload":{"position":{"x":29803.77012863632,"y":17702.50467384197},"targetPosition":{"x":29836.930085757547,"y":17810.00661449291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6c79326f-b90c-4155-8f61-8ee2322b9b09","savedPayload":{"position":{"x":29836.930085757547,"y":17810.00661449291},"targetPosition":{"x":29903.25,"y":18025.01049579479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"2a35de7b-ad59-439b-aa6c-0668ffd92816","savedPayload":{"position":{"x":29953.551764834458,"y":17691.28009194381},"targetPosition":{"x":29936.78450988964,"y":17802.523559894136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6a34a5de-3b89-4f07-a947-5b94c8926dc1","savedPayload":{"position":{"x":29936.78450988964,"y":17802.523559894136},"targetPosition":{"x":29903.25,"y":18025.01049579479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"33bd5e59-f2bf-4b5c-bd74-6975e07b3056","savedPayload":{"position":{"x":30093.370519596472,"y":17746.154909463145},"targetPosition":{"x":30029.997013064316,"y":17839.106771573694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a0c5053d-5b1e-4f7e-8edb-58baaaa8a45a","savedPayload":{"position":{"x":30029.997013064316,"y":17839.106771573694},"targetPosition":{"x":29903.25,"y":18025.01049579479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b256b76c-3834-4d62-aa56-f42cce9f47e9","savedPayload":{"position":{"x":29903.25,"y":18025.01049579479},"targetPosition":{"x":30128.25,"y":18414.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d54a124c-6029-41a6-9bbd-bb3fe8b1a318","savedPayload":{"position":{"x":30128.25,"y":18414.72192749779},"targetPosition":{"x":30578.25,"y":18414.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"62890699-eabf-4ea8-8ca0-cac07cc06dea","savedPayload":{"position":{"x":30583.25,"y":18502.72192749779},"targetPosition":{"x":31033.25,"y":18502.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Trading Position","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Position Objects","config":"{ \n \"codeName\": \"Position-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Left Exit Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.exitTargetRate","project":"Superalgos","id":"594bc655-cbf0-4e81-8fcc-b0f001e71fc4","savedPayload":{"position":{"x":29459.923914243944,"y":19293.995460344053},"targetPosition":{"x":29345.32182254897,"y":19152.4188247597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3b122c9b-56d5-4cb6-86ba-12d1919aeeba","savedPayload":{"position":{"x":29345.32182254897,"y":19152.4188247597},"targetPosition":{"x":29115.509091781994,"y":18868.71176648017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Right Exit Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.exitTargetRate","project":"Superalgos","id":"ef80ea85-cfba-4fa6-9646-3688f54f33ba","savedPayload":{"position":{"x":29143.825272338232,"y":19414.605727282127},"targetPosition":{"x":29134.49015894449,"y":19233.56984520854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"eb3dd27b-831c-47ae-8a19-1b01626add98","savedPayload":{"position":{"x":29134.49015894449,"y":19233.56984520854},"targetPosition":{"x":29115.509091781994,"y":18868.71176648017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Left Entry Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.entryTargetRate","project":"Superalgos","id":"cdc9f3f0-3bca-4c9c-901f-1371aad3dcfe","savedPayload":{"position":{"x":28817.702044909962,"y":19327.25575092216},"targetPosition":{"x":28916.76474907811,"y":19174.70856110335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b61fa42b-45d1-416b-b06b-734d33223a80","savedPayload":{"position":{"x":28916.76474907811,"y":19174.70856110335},"targetPosition":{"x":29115.509091781994,"y":18868.71176648017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Right Entry Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.entryTargetRate","project":"Superalgos","id":"c450be56-8c02-4039-9b4a-8e0bde52fcc6","savedPayload":{"position":{"x":28604.93190945682,"y":19064.36219306031},"targetPosition":{"x":28774.33747801218,"y":18999.46434787224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"467129cb-1aa4-4639-ab0f-74d14146f721","savedPayload":{"position":{"x":28774.33747801218,"y":18999.46434787224},"targetPosition":{"x":29115.509091781994,"y":18868.71176648017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"774f0a60-aa67-408f-9768-8a24f5b9c033","savedPayload":{"position":{"x":30166.85389693211,"y":19037.37049979306},"targetPosition":{"x":30050.385326635973,"y":18602.70387796298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Entry Target Rate Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 2,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 3,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"bc128809-8c93-4f5d-9de9-4e0b28c1132e","savedPayload":{"position":{"x":27549.118116458314,"y":19194.249218841793},"targetPosition":{"x":28062.542583076556,"y":18680.882365452173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"cbd2cb8e-ca62-4b68-9bca-11ad55e50fb1","savedPayload":{"position":{"x":28062.542583076556,"y":18680.882365452173},"targetPosition":{"x":28576.06385337395,"y":18167.545006917226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"e1fc573d-a98e-4801-af1f-08f56d98a78a","savedPayload":{"position":{"x":27849.91550987586,"y":18167.544886830474},"targetPosition":{"x":28576.06385337395,"y":18167.545006917226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"b61fa42b-45d1-416b-b06b-734d33223a80"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"72aece06-d0ac-4068-8310-7037f0ba4943","savedPayload":{"position":{"x":28062.633179506294,"y":17654.126169320924},"targetPosition":{"x":28576.06385337395,"y":18167.545006917226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"467129cb-1aa4-4639-ab0f-74d14146f721"}}}],"id":"543ebae2-5624-49ad-a00f-df63335e92a9","savedPayload":{"position":{"x":29825.385326635973,"y":18992.41530966598},"targetPosition":{"x":30050.385326635973,"y":18602.70387796298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Exit Target Rate Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 2,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 3,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"8737606b-fbf1-4e8e-a124-930ec555d3d6","savedPayload":{"position":{"x":27343.321879670235,"y":18705.382654802153},"targetPosition":{"x":27972.156525306615,"y":18342.397709357025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"477ff931-5b51-4d4f-acff-3a14c7028a52","savedPayload":{"position":{"x":27972.156525306615,"y":18342.397709357025},"targetPosition":{"x":28601.028589968366,"y":17979.394808253663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Exit Target Rate","project":"Superalgos","id":"b849d38a-644a-470a-a110-d250b5e9d5f3","savedPayload":{"position":{"x":27899.60233254589,"y":17791.520907652786},"targetPosition":{"x":28601.028589968366,"y":17979.394808253663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Exit Target Rate","id":"3b122c9b-56d5-4cb6-86ba-12d1919aeeba"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"dc283f46-e843-40b1-ab59-6d38ab0b7741","savedPayload":{"position":{"x":28237.975738164623,"y":17350.539708987562},"targetPosition":{"x":28601.028589968366,"y":17979.394808253663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"eb3dd27b-831c-47ae-8a19-1b01626add98"}}}],"id":"b066c240-8552-4622-9597-77e812491910","savedPayload":{"position":{"x":29615.71870480589,"y":18719.172448259116},"targetPosition":{"x":30050.385326635973,"y":18602.70387796298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"d99cb56a-d182-4672-9e89-54bb809eff30","savedPayload":{"position":{"x":30050.385326635973,"y":18602.70387796298},"targetPosition":{"x":30275.385326635973,"y":18212.99244625998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Position Object","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"482e894d-68a1-499f-b55e-97827c1df506","savedPayload":{"position":{"x":29389.988637132188,"y":19120.73842327011},"targetPosition":{"x":29395.343119080062,"y":18895.802144464156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5a612794-8d2e-4689-82ce-f6bdcba13755","savedPayload":{"position":{"x":29395.343119080062,"y":18895.802144464156},"targetPosition":{"x":29406.05208297581,"y":18445.92958685225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"d1f7c811-2a35-44a0-8908-2076f59ab2ad","savedPayload":{"position":{"x":29200.523700693622,"y":19088.878328258954},"targetPosition":{"x":29269.03316145435,"y":18874.562081123386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"32444aa5-bc40-4905-97e7-f795118fc229","savedPayload":{"position":{"x":29269.03316145435,"y":18874.562081123386},"targetPosition":{"x":29406.05208297581,"y":18445.92958685225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Situation Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.situationName","project":"Superalgos","id":"8ae3f86b-d0f8-4851-a477-02d0960fb4e5","savedPayload":{"position":{"x":29027.709451463204,"y":19004.930349982424},"targetPosition":{"x":29153.823661967406,"y":18818.596762272366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8fd749c8-cdc1-4a20-8901-d22fdd70612d","savedPayload":{"position":{"x":29153.823661967406,"y":18818.596762272366},"targetPosition":{"x":29406.05208297581,"y":18445.92958685225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Entry Target Rate","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.entryTargetRate","project":"Superalgos","id":"b97f9930-22b1-4e18-9d12-f2adc9de796d","savedPayload":{"position":{"x":28885.546272147672,"y":18875.695454382636},"targetPosition":{"x":29059.048209090386,"y":18732.44016520584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"08193c38-6100-40cf-84e9-533cd29ca463","savedPayload":{"position":{"x":29059.048209090386,"y":18732.44016520584},"targetPosition":{"x":29406.05208297581,"y":18445.92958685225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Target Rate","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitTargetRate","project":"Superalgos","id":"305c84ca-413b-462a-b908-8be894e80197","savedPayload":{"position":{"x":28785.551378058186,"y":18711.643484111562},"targetPosition":{"x":28992.38494636406,"y":18623.072185025125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"87fcd4c7-8315-4b89-8c6a-ca8d6ede7a25","savedPayload":{"position":{"x":28992.38494636406,"y":18623.072185025125},"targetPosition":{"x":29406.05208297581,"y":18445.92958685225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Position Begin Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"c7d06e13-042f-4e12-8093-b9f27dc8e655","savedPayload":{"position":{"x":28735.82576082134,"y":18526.06495414593},"targetPosition":{"x":28959.23453487283,"y":18499.353165048036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"67fb7b91-c601-48dd-9d79-5188dc43a921","savedPayload":{"position":{"x":28959.23453487283,"y":18499.353165048036},"targetPosition":{"x":29406.05208297581,"y":18445.92958685225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Position End Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"4f114564-7657-4037-9f5e-43e2fcfb75a5","savedPayload":{"position":{"x":28740.397894216032,"y":18333.994333305545},"targetPosition":{"x":28962.282623802625,"y":18371.30608448778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a0921f86-e8f0-40d9-99ee-0a316dd6ad67","savedPayload":{"position":{"x":28962.282623802625,"y":18371.30608448778},"targetPosition":{"x":29406.05208297581,"y":18445.92958685225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"48b097fa-bc1f-4cd9-bcf4-284bd77c5055","savedPayload":{"position":{"x":28798.89737118615,"y":18150.992041002934},"targetPosition":{"x":29001.28227511604,"y":18249.30455628604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5e243e8e-1909-4a9d-a605-984e530846c3","savedPayload":{"position":{"x":29001.28227511604,"y":18249.30455628604},"targetPosition":{"x":29406.05208297581,"y":18445.92958685225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"0cea2f32-e0b8-4011-8389-eb24536ec638","savedPayload":{"position":{"x":28906.584912017363,"y":17991.883834603905},"targetPosition":{"x":29073.07396900351,"y":18143.232418686686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b98c147d-3f4d-41d6-b821-df00d7eeab29","savedPayload":{"position":{"x":29073.07396900351,"y":18143.232418686686},"targetPosition":{"x":29406.05208297581,"y":18445.92958685225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"95d9e4b7-2951-4dac-b0e6-c9cdb77cd0b9","savedPayload":{"position":{"x":29054.73631259399,"y":17869.559714737974},"targetPosition":{"x":29171.84156938793,"y":18061.683005442734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"298d34c8-3b72-4c1f-92bd-b3e2c2f3e73e","savedPayload":{"position":{"x":29171.84156938793,"y":18061.683005442734},"targetPosition":{"x":29406.05208297581,"y":18445.92958685225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3d274e02-8896-4311-a0c8-9041b6507090","savedPayload":{"position":{"x":29406.05208297581,"y":18445.92958685225},"targetPosition":{"x":30275.385326635973,"y":18212.99244625998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"a"}}},{"type":"Plotter Panel","name":"Position Combined Statistics","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Profit Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.profitLoss","project":"Superalgos","id":"96dd9046-7942-489e-8960-2de57321551b","savedPayload":{"position":{"x":29169.962496857417,"y":17850.34387398208},"targetPosition":{"x":29278.629152314938,"y":17821.22673140805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e226898a-74c0-4e4e-95e2-b2435c464dd5","savedPayload":{"position":{"x":29278.629152314938,"y":17821.22673140805},"targetPosition":{"x":29495.96246322998,"y":17762.99244625998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ROI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ROI","project":"Superalgos","id":"b7079949-8602-4b96-97f3-bc704e9e77e7","savedPayload":{"position":{"x":29203.67888945273,"y":17594.24244625998},"targetPosition":{"x":29301.10674737848,"y":17650.49244625998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"06a9c88b-3edb-4a5e-a239-c2cad3cbad17","savedPayload":{"position":{"x":29301.10674737848,"y":17650.49244625998},"targetPosition":{"x":29495.96246322998,"y":17762.99244625998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFail","project":"Superalgos","id":"7dc1c993-470e-4c7b-b879-9a91361859a4","savedPayload":{"position":{"x":29408.611035507878,"y":17436.99247988742},"targetPosition":{"x":29437.72817808191,"y":17545.65913534494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2102dc89-6799-4287-8c4d-d3591c9fd17e","savedPayload":{"position":{"x":29437.72817808191,"y":17545.65913534494},"targetPosition":{"x":29495.96246322998,"y":17762.99244625998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"05d6bb3e-f975-471f-be1f-3215025ce6fe","savedPayload":{"position":{"x":29495.96246322998,"y":17762.99244625998},"targetPosition":{"x":30275.385326635973,"y":18212.99244625998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"a"}}}],"id":"8854b5f8-8407-4a0d-9099-5456a8e4cced","savedPayload":{"position":{"x":30280.385326635973,"y":18300.99244625998},"targetPosition":{"x":30715.051948466054,"y":18184.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Position Base Asset","config":"{ \n \"codeName\": \"Position-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Left Entry Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.entryTargetRate","project":"Superalgos","id":"2d03dfa3-bce6-478b-8f65-a50344ae4601","savedPayload":{"position":{"x":29821.726744548592,"y":18912.956659841962},"targetPosition":{"x":29775.968872202564,"y":18810.18279585717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1c279ac2-347d-453f-9b5e-436216cebd7d","savedPayload":{"position":{"x":29775.968872202564,"y":18810.18279585717},"targetPosition":{"x":29684.453127510507,"y":18604.635067887586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Right Entry Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.entryTargetRate","project":"Superalgos","id":"174cdc36-dc92-4e69-aecb-3418b9863d4e","savedPayload":{"position":{"x":29563.503944538967,"y":18919.71846183039},"targetPosition":{"x":29603.820338862814,"y":18814.690663849455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"609e9ed3-5503-4a3e-949b-d2ab2cf10f10","savedPayload":{"position":{"x":29603.820338862814,"y":18814.690663849455},"targetPosition":{"x":29684.453127510507,"y":18604.635067887586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Right Exit Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\n\nif (record.exitTargetRate > 0) {\n y = record.exitTargetRate\n} else {\n y = record.candleClose\n}","project":"Superalgos","id":"ce2f05dc-daa2-472f-89e4-66d37b7eb0ae","savedPayload":{"position":{"x":29376.13153555613,"y":18741.90868492567},"targetPosition":{"x":29478.905399540923,"y":18696.150812579643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"93ba04d2-21ec-41a2-9a2e-eb47a8d39149","savedPayload":{"position":{"x":29478.905399540923,"y":18696.150812579643},"targetPosition":{"x":29684.453127510507,"y":18604.635067887586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0ac578ec-3648-4413-82ea-944a6fc7db1d","savedPayload":{"position":{"x":29684.453127510507,"y":18604.635067887586},"targetPosition":{"x":29845.71870480589,"y":18184.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Profit Triangle","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.ROIInBaseAsset > 0 && record.exitTargetRate > 0","project":"Superalgos","id":"35ca8e2f-58a1-49dc-ab7a-a40eb53483a5","savedPayload":{"position":{"x":29525.384731028676,"y":18875.97818362756},"targetPosition":{"x":29468.31694923045,"y":18429.611441720608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"3dba4bdb-c7ff-44ff-897b-a7b98a253585","savedPayload":{"position":{"x":29183.80699675873,"y":19283.458083070527},"targetPosition":{"x":29326.06197299459,"y":18856.534762395568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"b672a718-2e17-4659-aff7-63a98fab5c1f","savedPayload":{"position":{"x":29326.06197299459,"y":18856.534762395568},"targetPosition":{"x":29468.31694923045,"y":18429.611441720608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"33837834-ffbd-46c0-8d62-2d6122bcff17","savedPayload":{"position":{"x":28841.512166063163,"y":19075.45644154534},"targetPosition":{"x":29154.914557646807,"y":18752.533941632973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2bdd5fe6-32ba-4120-a4f7-bd4e4099a206","savedPayload":{"position":{"x":29154.914557646807,"y":18752.533941632973},"targetPosition":{"x":29468.31694923045,"y":18429.611441720608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"8b93b7e7-30ed-46a5-ba59-95cb38ba87fa","savedPayload":{"position":{"x":29045.840329580256,"y":18584.574359378174},"targetPosition":{"x":29468.31694923045,"y":18429.611441720608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"1c279ac2-347d-453f-9b5e-436216cebd7d"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"bcc031f8-556b-4d6f-b438-4f9b14804d0f","savedPayload":{"position":{"x":29020.442777371143,"y":18385.92247078583},"targetPosition":{"x":29468.31694923045,"y":18429.611441720608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"609e9ed3-5503-4a3e-949b-d2ab2cf10f10"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"fa6bc1ba-8d7c-4c08-8dfc-5cca7451113f","savedPayload":{"position":{"x":29083.752197715017,"y":18195.923718697184},"targetPosition":{"x":29468.31694923045,"y":18429.611441720608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"93ba04d2-21ec-41a2-9a2e-eb47a8d39149"}}}],"id":"2628b290-a09a-4807-8a45-7ff5a880d195","savedPayload":{"position":{"x":29468.31694923045,"y":18429.611441720608},"targetPosition":{"x":29845.71870480589,"y":18184.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Loss Triangle","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.ROIInBaseAsset < 0 && record.exitTargetRate > 0","project":"Superalgos","id":"9aba703c-bd76-446b-9017-0fc1e03d5ae2","savedPayload":{"position":{"x":29180.13643146563,"y":18555.634576103064},"targetPosition":{"x":29396.335414166333,"y":18160.97269565452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"a7260cb4-6c92-42da-9a63-bc05e0cc0451","savedPayload":{"position":{"x":28664.28356404296,"y":18684.518384903262},"targetPosition":{"x":29030.309489104646,"y":18422.74554027889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ec365a09-3739-47f0-8068-1c88d4d815c3","savedPayload":{"position":{"x":29030.309489104646,"y":18422.74554027889},"targetPosition":{"x":29396.335414166333,"y":18160.97269565452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"6c71aefb-c41b-4fe1-b0cc-25827fd91a9e","savedPayload":{"position":{"x":28509.621526264677,"y":18315.0456686327},"targetPosition":{"x":28952.978470215505,"y":18238.00918214361},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"a2f74418-ca41-437e-b377-414a234acf1b","savedPayload":{"position":{"x":28952.978470215505,"y":18238.00918214361},"targetPosition":{"x":29396.335414166333,"y":18160.97269565452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"1b7b3265-d7ca-43fb-9dc7-4703eb918db5","savedPayload":{"position":{"x":28963.459731491916,"y":18038.014803068654},"targetPosition":{"x":29396.335414166333,"y":18160.97269565452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"1c279ac2-347d-453f-9b5e-436216cebd7d"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"36b61d3e-013b-483f-a3ec-d88d6c4693aa","savedPayload":{"position":{"x":29059.677330593844,"y":17862.373742599924},"targetPosition":{"x":29396.335414166333,"y":18160.97269565452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"609e9ed3-5503-4a3e-949b-d2ab2cf10f10"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"10f40dfc-bf39-41dc-b2ca-3e93c13aa1a5","savedPayload":{"position":{"x":29222.574191987747,"y":17745.873866859492},"targetPosition":{"x":29396.335414166333,"y":18160.97269565452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"93ba04d2-21ec-41a2-9a2e-eb47a8d39149"}}}],"id":"e37cfbb4-fe54-49ad-9525-29b0d77e082b","savedPayload":{"position":{"x":29396.335414166333,"y":18160.97269565452},"targetPosition":{"x":29845.71870480589,"y":18184.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Empty Triangle","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.ROIInBaseAsset === 0 && record.exitTargetRate > 0","project":"Superalgos","id":"19cb9968-c1eb-451c-913b-807689e76acc","savedPayload":{"position":{"x":29075.891830226512,"y":18062.5952772868},"targetPosition":{"x":29496.003022150253,"y":17901.329699991416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"c4823f51-eef8-488c-8b2f-a3eccff5a2ae","savedPayload":{"position":{"x":28607.083515614628,"y":17760.53868145521},"targetPosition":{"x":29051.54326888244,"y":17830.934190723314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c2a0e17f-1ee8-4132-84d3-59a06a3b122d","savedPayload":{"position":{"x":29051.54326888244,"y":17830.934190723314},"targetPosition":{"x":29496.003022150253,"y":17901.329699991416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"b7295cca-db57-485e-94e4-e8770da6bb6b","savedPayload":{"position":{"x":29146.287339494615,"y":17618.135524018988},"targetPosition":{"x":29496.003022150253,"y":17901.329699991416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"1c279ac2-347d-453f-9b5e-436216cebd7d"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"f60220b1-c42c-4160-807d-eb7563c58e50","savedPayload":{"position":{"x":29334.73744485487,"y":17481.218508067675},"targetPosition":{"x":29496.003022150253,"y":17901.329699991416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"609e9ed3-5503-4a3e-949b-d2ab2cf10f10"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"8ec2c8d2-ed4a-4927-9208-4acde0721ac9","savedPayload":{"position":{"x":29566.398531418356,"y":17456.869946723604},"targetPosition":{"x":29496.003022150253,"y":17901.329699991416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"93ba04d2-21ec-41a2-9a2e-eb47a8d39149"}}}],"id":"23c30ca5-95ec-47b2-a65f-01969b1a5a78","savedPayload":{"position":{"x":29496.003022150253,"y":17901.329699991416},"targetPosition":{"x":29845.71870480589,"y":18184.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"a1635ebb-9528-4f34-8729-4812e12a850f","savedPayload":{"position":{"x":29845.71870480589,"y":18184.523875963845},"targetPosition":{"x":30280.385326635973,"y":18068.05530566771},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Position Base Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Entry Target Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.entryTargetSizeInBaseAsset","project":"Superalgos","id":"31a77b72-a21e-4f05-acc9-2235fe404434","savedPayload":{"position":{"x":29314.088299776213,"y":17459.73108678364},"targetPosition":{"x":29477.088282962493,"y":17503.40680064469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c9bd8ca1-e2be-4ae1-b026-d80853994004","savedPayload":{"position":{"x":29477.088282962493,"y":17503.40680064469},"targetPosition":{"x":29803.088249335055,"y":17590.75822836679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Target Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitTargetSizeInBaseAsset","project":"Superalgos","id":"1ab726ad-0192-49ad-94c2-f931a565257f","savedPayload":{"position":{"x":29364.662888669183,"y":17337.63322836679},"targetPosition":{"x":29510.804675557807,"y":17422.00822836679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"917b6343-ae61-4086-b3d2-c03831ae6833","savedPayload":{"position":{"x":29510.804675557807,"y":17422.00822836679},"targetPosition":{"x":29803.088249335055,"y":17590.75822836679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Profit Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.profitLossInBaseAsset","project":"Superalgos","id":"d1dc5d27-95f5-480d-bd36-4c1291ae2b24","savedPayload":{"position":{"x":29445.115441359365,"y":17232.7854203911},"targetPosition":{"x":29564.439710684594,"y":17352.10968971633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"232bfbcc-1e50-40b0-84cf-d4bcebadfe2f","savedPayload":{"position":{"x":29564.439710684594,"y":17352.10968971633},"targetPosition":{"x":29803.088249335055,"y":17590.75822836679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ROI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ROIInBaseAsset + ' %'","project":"Superalgos","id":"6e6fe2c8-e8ca-4b85-b19c-25aad68a9485","savedPayload":{"position":{"x":29549.963249335055,"y":17152.33286770092},"targetPosition":{"x":29634.338249335055,"y":17298.474654589543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"dd5a890c-5c35-4b61-a80f-7e6d5fa1315f","savedPayload":{"position":{"x":29634.338249335055,"y":17298.474654589543},"targetPosition":{"x":29803.088249335055,"y":17590.75822836679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFailInBaseAsset","project":"Superalgos","id":"67b4e235-40db-4a56-8f55-64922adcbc02","savedPayload":{"position":{"x":29672.061107751902,"y":17101.75827880795},"targetPosition":{"x":29715.736821612954,"y":17264.75826199423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"24a6f905-7d60-4543-a3ff-98d142797358","savedPayload":{"position":{"x":29715.736821612954,"y":17264.75826199423},"targetPosition":{"x":29803.088249335055,"y":17590.75822836679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b4298480-8922-4c40-ac79-b4484f8558bd","savedPayload":{"position":{"x":29803.088249335055,"y":17590.75822836679},"targetPosition":{"x":30280.385326635973,"y":18068.05530566771},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"42a79594-bac8-40bf-a9eb-f13716e15465","savedPayload":{"position":{"x":30280.385326635973,"y":18068.05530566771},"targetPosition":{"x":30715.051948466054,"y":18184.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Position Quoted Asset","config":"{ \n \"codeName\": \"Position-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Left Entry Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.entryTargetRate","project":"Superalgos","id":"800c7bf9-3d8d-46ae-88ac-c168b80cbc78","savedPayload":{"position":{"x":29577.193236093557,"y":18368.702569792982},"targetPosition":{"x":29588.952688211168,"y":18256.818856564052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"17cf1421-4fc5-4cff-83d5-394cfcb4a88e","savedPayload":{"position":{"x":29588.952688211168,"y":18256.818856564052},"targetPosition":{"x":29612.47159244639,"y":18033.051430106192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Right Entry Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.entryTargetRate","project":"Superalgos","id":"4dbc8252-a487-41d9-9f3a-b054398acc8b","savedPayload":{"position":{"x":29350.184830454662,"y":18245.447062085514},"targetPosition":{"x":29437.61375111857,"y":18174.648518092406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a00d0039-31a4-4033-8ad5-b0e0d9d13e4e","savedPayload":{"position":{"x":29437.61375111857,"y":18174.648518092406},"targetPosition":{"x":29612.47159244639,"y":18033.051430106192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Right Exit Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\n\nif (record.exitTargetRate > 0) {\n y = record.exitTargetRate\n} else {\n y = record.candleClose\n}","project":"Superalgos","id":"8aab882e-d77b-4fcb-8eb0-1d4f6381c86d","savedPayload":{"position":{"x":29276.8204527596,"y":17997.77307375336},"targetPosition":{"x":29388.70416598853,"y":18009.53252587097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2af047d2-b4f1-4395-8d35-67c70c582c0e","savedPayload":{"position":{"x":29388.70416598853,"y":18009.53252587097},"targetPosition":{"x":29612.47159244639,"y":18033.051430106192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2d8c4071-9ea0-45cf-9b0d-e73fd57a9928","savedPayload":{"position":{"x":29612.47159244639,"y":18033.051430106192},"targetPosition":{"x":29962.187275102027,"y":17749.857254133763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Profit Triangle","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.ROIInQuotedAsset > 0 && record.exitTargetRate > 0","project":"Superalgos","id":"264f839b-e67b-4629-8465-cb404eb93754","savedPayload":{"position":{"x":29339.042762283883,"y":18188.507263238116},"targetPosition":{"x":29512.80398446247,"y":17773.40843444309},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"07f5de9d-d271-4377-95d5-7ca4b1ffee19","savedPayload":{"position":{"x":28839.487817317495,"y":18370.60634055228},"targetPosition":{"x":29176.145900889984,"y":18072.007387497684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"90188cf7-8395-4899-addc-0499321cff14","savedPayload":{"position":{"x":29176.145900889984,"y":18072.007387497684},"targetPosition":{"x":29512.80398446247,"y":17773.40843444309},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"916fb502-a39c-4203-83fc-32d41c4c5755","savedPayload":{"position":{"x":28647.052619113634,"y":18019.32421961482},"targetPosition":{"x":29079.92830178805,"y":17896.366327028954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"88d51449-8118-4d83-b768-112f9e212cc7","savedPayload":{"position":{"x":29079.92830178805,"y":17896.366327028954},"targetPosition":{"x":29512.80398446247,"y":17773.40843444309},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"b4c2062a-382b-43bc-a281-9df152bc8a49","savedPayload":{"position":{"x":29069.44704051164,"y":17696.371947953998},"targetPosition":{"x":29512.80398446247,"y":17773.40843444309},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"17cf1421-4fc5-4cff-83d5-394cfcb4a88e"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"4d43870a-1769-43e3-a927-641900ff72c0","savedPayload":{"position":{"x":29146.77805940078,"y":17511.635589818718},"targetPosition":{"x":29512.80398446247,"y":17773.40843444309},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"a00d0039-31a4-4033-8ad5-b0e0d9d13e4e"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"6347f1dc-7ab3-4570-877b-df9e04058758","savedPayload":{"position":{"x":29296.605001761767,"y":17378.746553994544},"targetPosition":{"x":29512.80398446247,"y":17773.40843444309},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"2af047d2-b4f1-4395-8d35-67c70c582c0e"}}}],"id":"9cf82ef4-557e-498e-b121-ff28235b3a25","savedPayload":{"position":{"x":29512.80398446247,"y":17773.40843444309},"targetPosition":{"x":29962.187275102027,"y":17749.857254133763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Loss Triangle","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.ROIInQuotedAsset < 0 && record.exitTargetRate > 0","project":"Superalgos","id":"ba9c6218-12de-4eeb-80ad-a5c949ea925d","savedPayload":{"position":{"x":29200.220768011153,"y":17738.457411400428},"targetPosition":{"x":29584.785519526587,"y":17504.769688377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"dd6fee79-df88-4f2c-8526-f364a1343f83","savedPayload":{"position":{"x":28689.03717580797,"y":17592.147630246556},"targetPosition":{"x":29136.91134766728,"y":17548.45865931178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"196adfa2-00ad-48a4-8eb3-c82256e91031","savedPayload":{"position":{"x":29136.91134766728,"y":17548.45865931178},"targetPosition":{"x":29584.785519526587,"y":17504.769688377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"a04ad71d-d9f8-4122-913e-19892b51689b","savedPayload":{"position":{"x":28739.832280226197,"y":17194.84385306187},"targetPosition":{"x":29162.308899876392,"y":17349.806770719435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1fe378dc-3deb-4825-9401-83f963060acd","savedPayload":{"position":{"x":29162.308899876392,"y":17349.806770719435},"targetPosition":{"x":29584.785519526587,"y":17504.769688377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"78ee45ea-40df-4cb4-9e16-0b07d9e298fd","savedPayload":{"position":{"x":29271.383127942943,"y":17181.847188464635},"targetPosition":{"x":29584.785519526587,"y":17504.769688377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"17cf1421-4fc5-4cff-83d5-394cfcb4a88e"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"b719aa97-15aa-4d6c-a08e-451314cb604a","savedPayload":{"position":{"x":29442.530543290726,"y":17077.84636770204},"targetPosition":{"x":29584.785519526587,"y":17504.769688377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"a00d0039-31a4-4033-8ad5-b0e0d9d13e4e"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"508f7dd3-087d-4952-9140-29936aac5aa4","savedPayload":{"position":{"x":29641.853301324812,"y":17058.402946470047},"targetPosition":{"x":29584.785519526587,"y":17504.769688377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"2af047d2-b4f1-4395-8d35-67c70c582c0e"}}}],"id":"61faa796-9697-48b0-a582-613e1b351931","savedPayload":{"position":{"x":29584.785519526587,"y":17504.769688377},"targetPosition":{"x":29962.187275102027,"y":17749.857254133763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Empty Triangle","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.ROIInQuotedAsset === 0 && record.exitTargetRate > 0","project":"Superalgos","id":"9b162bfd-0d6a-4ca2-ae2a-36b9b25d8180","savedPayload":{"position":{"x":29356.46194453883,"y":17259.35055294192},"targetPosition":{"x":29800.921697806643,"y":17329.746062210023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"93ec6c1e-fe4c-4857-b9e7-6914e626423a","savedPayload":{"position":{"x":29101.490332495367,"y":16763.357710265165},"targetPosition":{"x":29451.206015151005,"y":17046.551886237594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"29555fd1-c64d-4237-88f3-32fee8ae4c2c","savedPayload":{"position":{"x":29451.206015151005,"y":17046.551886237594},"targetPosition":{"x":29800.921697806643,"y":17329.746062210023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"c4b528b7-667e-4aa1-b397-0f5bb15abd95","savedPayload":{"position":{"x":29639.65612051126,"y":16909.63487028628},"targetPosition":{"x":29800.921697806643,"y":17329.746062210023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"17cf1421-4fc5-4cff-83d5-394cfcb4a88e"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"48fe8782-73d1-46d8-aa7d-55a843996fb3","savedPayload":{"position":{"x":29871.317207074746,"y":16885.28630894221},"targetPosition":{"x":29800.921697806643,"y":17329.746062210023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"a00d0039-31a4-4033-8ad5-b0e0d9d13e4e"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"339258b7-534f-41b7-b0ea-9f958bb982ab","savedPayload":{"position":{"x":30084.115873779072,"y":16980.030379554384},"targetPosition":{"x":29800.921697806643,"y":17329.746062210023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"2af047d2-b4f1-4395-8d35-67c70c582c0e"}}}],"id":"58c807a3-8443-43d9-82e9-81c3d0545399","savedPayload":{"position":{"x":29800.921697806643,"y":17329.746062210023},"targetPosition":{"x":29962.187275102027,"y":17749.857254133763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"d2ad64d7-e463-4f5f-9f3d-05c98a5e8101","savedPayload":{"position":{"x":29962.187275102027,"y":17749.857254133763},"targetPosition":{"x":30396.85389693211,"y":17866.3258244299},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Position Quoted Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Entry Target Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.entryTargetSizeInQuotedAsset","project":"Superalgos","id":"8a47d5d4-b86c-40cb-a4f1-a64244e80bfd","savedPayload":{"position":{"x":29864.17823351222,"y":16856.353083709088},"targetPosition":{"x":29983.502502837448,"y":16975.677353034316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"38cae0a2-4954-4cbc-a178-3e665885c393","savedPayload":{"position":{"x":29983.502502837448,"y":16975.677353034316},"targetPosition":{"x":30222.15104148791,"y":17214.325891684777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Target Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitTargetSizeInQuotedAsset","project":"Superalgos","id":"4ece6618-31a7-4e14-86b6-d1aecf9d0494","savedPayload":{"position":{"x":29969.02604148791,"y":16775.900531018906},"targetPosition":{"x":30053.40104148791,"y":16922.04231790753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"821330e4-19c2-4267-a189-a2d28087850a","savedPayload":{"position":{"x":30053.40104148791,"y":16922.04231790753},"targetPosition":{"x":30222.15104148791,"y":17214.325891684777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Profit Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.profitLossInQuotedAsset","project":"Superalgos","id":"ec9c4116-3155-41cf-8e01-fbe6c8428c28","savedPayload":{"position":{"x":30091.123899904756,"y":16725.325942125935},"targetPosition":{"x":30134.79961376581,"y":16888.325925312216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"83330178-d79b-4709-bdee-5c3875214e06","savedPayload":{"position":{"x":30134.79961376581,"y":16888.325925312216},"targetPosition":{"x":30222.15104148791,"y":17214.325891684777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ROI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ROIInQuotedAsset + ' %'","project":"Superalgos","id":"7ad9a57d-8322-4677-8a2a-d108ea01fdca","savedPayload":{"position":{"x":30222.15104148791,"y":16708.075891684777},"targetPosition":{"x":30222.15104148791,"y":16876.825891684777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b5e39cc4-9b95-4e92-9814-41c34c2ea4a8","savedPayload":{"position":{"x":30222.15104148791,"y":16876.825891684777},"targetPosition":{"x":30222.15104148791,"y":17214.325891684777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFailInQuotedAsset","project":"Superalgos","id":"56c8470e-20fb-40c1-8224-37240bcad860","savedPayload":{"position":{"x":30353.17818307106,"y":16725.325942125935},"targetPosition":{"x":30309.50246921001,"y":16888.325925312216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"09ec6e2f-ad57-4127-94af-0046a7b0d400","savedPayload":{"position":{"x":30309.50246921001,"y":16888.325925312216},"targetPosition":{"x":30222.15104148791,"y":17214.325891684777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f15d0a31-30bd-49a6-8c45-1bcd1a9cc5a8","savedPayload":{"position":{"x":30222.15104148791,"y":17214.325891684777},"targetPosition":{"x":30396.85389693211,"y":17866.3258244299},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"baed45c2-228e-4679-876e-1867bbef5e9f","savedPayload":{"position":{"x":30396.85389693211,"y":17866.3258244299},"targetPosition":{"x":30715.051948466054,"y":18184.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Stop Loss","config":"{ \n \"codeName\": \"Module-Name\", \n \"icon\": \"histogram|band|moving-average|oscillator|trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.stopLoss","project":"Superalgos","id":"eeef1100-0dcc-4367-99f1-b23a5e98b2ff","savedPayload":{"position":{"x":29750.292784720466,"y":17624.110307829793},"targetPosition":{"x":29790.609179044313,"y":17519.082509848857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7d0349ba-640b-43f2-b500-d62c06fecd81","savedPayload":{"position":{"x":29790.609179044313,"y":17519.082509848857},"targetPosition":{"x":29830.92557336816,"y":17414.05471186792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.stopLoss","project":"Superalgos","id":"79f690f8-360a-49a8-9df0-bc42d1975099","savedPayload":{"position":{"x":29689.328485381946,"y":17239.196870540105},"targetPosition":{"x":29760.127029375053,"y":17326.625791204013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a4c015cf-419c-44f6-9816-6828e5fbc3c3","savedPayload":{"position":{"x":29760.127029375053,"y":17326.625791204013},"targetPosition":{"x":29830.92557336816,"y":17414.05471186792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fdf923e9-1d23-41c0-9210-38d35313c4ab","savedPayload":{"position":{"x":29830.92557336816,"y":17414.05471186792},"targetPosition":{"x":30275.385326635973,"y":17343.659202599818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"New Polygon","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.stopLoss > 0","project":"Superalgos","id":"b8677c90-5e19-402b-b494-d2cce015c167","savedPayload":{"position":{"x":29473.479454866443,"y":17343.659202599818},"targetPosition":{"x":29874.432390751208,"y":17139.363477717023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.5,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.8,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"1eee2eba-1af0-4cc0-ad50-22ac23a10dac","savedPayload":{"position":{"x":28985.512884215583,"y":16998.572459180818},"targetPosition":{"x":29429.972637483395,"y":17068.96796844892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"83ae727f-2dc3-4153-9b7f-2bee0748e134","savedPayload":{"position":{"x":29429.972637483395,"y":17068.96796844892},"targetPosition":{"x":29874.432390751208,"y":17139.363477717023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"ac7ed016-4516-4ebc-a902-95e97ace1f55","savedPayload":{"position":{"x":29556.234339217262,"y":16821.165426183077},"targetPosition":{"x":29874.432390751208,"y":17139.363477717023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"7d0349ba-640b-43f2-b500-d62c06fecd81"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"6f873316-c57a-48b4-80c7-362f823d37b4","savedPayload":{"position":{"x":29804.036881483105,"y":16694.90372444921},"targetPosition":{"x":29874.432390751208,"y":17139.363477717023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"a4c015cf-419c-44f6-9816-6828e5fbc3c3"}}}],"id":"9d351f29-6a3e-4c2b-b008-ebe1414d2aa8","savedPayload":{"position":{"x":29874.432390751208,"y":17139.363477717023},"targetPosition":{"x":30275.385326635973,"y":17343.659202599818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"phase\", \n\"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"(record.positions !== record.previous.positions && record.stopLossPhase >= 0 ) || \n(record.stopLossPhase !== record.previous.stopLossPhase && record.stopLossPhase >= 0 ) ","project":"Superalgos","id":"ef8dedb9-454b-423b-94e7-1a522047aa12","savedPayload":{"position":{"x":29882.388723965458,"y":16820.162483836673},"targetPosition":{"x":30071.089601753178,"y":16942.706266715053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Begin","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 10\n }","project":"Superalgos","id":"860a9f6e-cc9d-46fb-83d6-fb908e12a30f","savedPayload":{"position":{"x":30082.86519190784,"y":16718.014621395276},"targetPosition":{"x":30071.089601753178,"y":16942.706266715053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"7d0349ba-640b-43f2-b500-d62c06fecd81"}}},"id":"d4a99750-dd06-453f-a126-ac48c25372ab","savedPayload":{"position":{"x":30071.089601753178,"y":16942.706266715053},"targetPosition":{"x":30275.385326635973,"y":17343.659202599818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"New Text","config":"{ \n\"codeName\": \"\", \n\"fontSize\": 10\n}","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"(record.positions !== record.previous.positions && record.stopLossPhase >= 0 ) || \n(record.stopLossPhase !== record.previous.stopLossPhase && record.stopLossPhase >= 0 ) ","project":"Superalgos","id":"8e0eb7c3-171a-4fc3-a3e4-3c67bb772343","savedPayload":{"position":{"x":30186.681810137103,"y":16740.100423565033},"targetPosition":{"x":30345.780835904076,"y":16899.199449332005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Begin","config":"{ \n\"offsetX\": -3,\n \"offsetY\": -15\n }","project":"Superalgos","id":"817671c1-fd3f-43ff-9670-9c3bcb94b8fb","savedPayload":{"position":{"x":30310.583081270022,"y":16676.9695726981},"targetPosition":{"x":30345.780835904076,"y":16899.199449332005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"7d0349ba-640b-43f2-b500-d62c06fecd81"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"record.stopLossPhase","project":"Superalgos","id":"ccafd036-b292-48b1-847e-6735a3eb8253","savedPayload":{"position":{"x":30447.928698345473,"y":16698.722981389623},"targetPosition":{"x":30345.780835904076,"y":16899.199449332005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"42f9061a-9d2a-4d3f-9f7a-c47c9e6e0601","savedPayload":{"position":{"x":30546.257303846458,"y":16797.051586890608},"targetPosition":{"x":30345.780835904076,"y":16899.199449332005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7e69ccc1-a9f7-4a64-aeaa-344eb46f63f7","savedPayload":{"position":{"x":30345.780835904076,"y":16899.199449332005},"targetPosition":{"x":30275.385326635973,"y":17343.659202599818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"41dd1d86-998c-46d7-a37e-1a1508fd8b51","savedPayload":{"position":{"x":30275.385326635973,"y":17343.659202599818},"targetPosition":{"x":30593.58337816992,"y":17661.857254133763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Stop Loss Panel","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Stop Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.stopLoss","project":"Superalgos","id":"1a5679d8-426b-4789-ac5b-c8d9c3a18fd8","savedPayload":{"position":{"x":30426.857772493622,"y":16877.474949648044},"targetPosition":{"x":30568.454860479836,"y":17052.332790975863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f590d585-66dd-47b9-99e8-38d081a1d1a0","savedPayload":{"position":{"x":30568.454860479836,"y":17052.332790975863},"targetPosition":{"x":30710.05194846605,"y":17227.190632303682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Stop Loss Phase","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.stopLossPhase","project":"Superalgos","id":"9067e496-6c73-4ada-b403-6a097667f8a2","savedPayload":{"position":{"x":30692.388563234057,"y":16890.153164324016},"targetPosition":{"x":30698.27635831139,"y":17002.498986983905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e78ebe16-bfdc-4814-b334-5aad14fbf307","savedPayload":{"position":{"x":30698.27635831139,"y":17002.498986983905},"targetPosition":{"x":30710.05194846605,"y":17227.190632303682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Initial Value","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.initialValue","project":"Superalgos","id":"cf99addf-c741-4b6a-b145-e06091ac92ea","savedPayload":{"position":{"x":30893.867622783622,"y":16944.139315622102},"targetPosition":{"x":30832.59573134443,"y":17038.489754515962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"216ff270-5de0-42df-8bde-2530f1e7e120","savedPayload":{"position":{"x":30832.59573134443,"y":17038.489754515962},"targetPosition":{"x":30710.05194846605,"y":17227.190632303682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Final Value","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.finalValue","project":"Superalgos","id":"8e9018c1-228b-41c2-8e5d-ea35b5f547d9","savedPayload":{"position":{"x":31025.135342408856,"y":17106.24144933214},"targetPosition":{"x":30920.10754442792,"y":17146.557843655988},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1d498821-6624-4450-b9cf-4ca95c4a00c7","savedPayload":{"position":{"x":30920.10754442792,"y":17146.557843655988},"targetPosition":{"x":30710.05194846605,"y":17227.190632303682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1b6d3bd0-e594-4b09-9f1c-021177676d84","savedPayload":{"position":{"x":30710.05194846605,"y":17227.190632303682},"targetPosition":{"x":30593.58337816992,"y":17661.857254133763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9b8e4fc2-b62a-4d47-ac5f-08818e463da2","savedPayload":{"position":{"x":30598.58337816992,"y":17749.857254133763},"targetPosition":{"x":30715.051948466054,"y":18184.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Take Profit","config":"{ \n \"codeName\": \"Module-Name\", \n \"icon\": \"histogram|band|moving-average|oscillator|trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.takeProfit","project":"Superalgos","id":"4e73522f-8830-4026-8aa9-aa20558e6bb0","savedPayload":{"position":{"x":30115.082915214494,"y":17207.522142994512},"targetPosition":{"x":30202.511835878402,"y":17136.723599001405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9baaa58e-af64-4348-9320-fad9823153a9","savedPayload":{"position":{"x":30202.511835878402,"y":17136.723599001405},"targetPosition":{"x":30289.94075654231,"y":17065.925055008298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.takeProfit","project":"Superalgos","id":"f7740d4c-0742-4f8b-8ad3-b7fec1e92066","savedPayload":{"position":{"x":30254.74300190826,"y":16843.69517837439},"targetPosition":{"x":30272.341879225285,"y":16954.810116691344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bcbd8777-10f8-46a6-ba09-4d635570057d","savedPayload":{"position":{"x":30272.341879225285,"y":16954.810116691344},"targetPosition":{"x":30289.94075654231,"y":17065.925055008298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fc2dda29-1eb7-4f6f-8527-2e54ba32bb8b","savedPayload":{"position":{"x":30289.94075654231,"y":17065.925055008298},"targetPosition":{"x":30710.05194846605,"y":17227.190632303682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"New Polygon","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.takeProfit > 0","project":"Superalgos","id":"b96a45dc-f0db-4c23-8f66-081302ea7bbf","savedPayload":{"position":{"x":32656.14459837961,"y":16375.939371440309},"targetPosition":{"x":32233.937927398958,"y":16480.804651897506},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.5,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.8,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"5033856c-d71d-4608-a6f2-347ef82d8591","savedPayload":{"position":{"x":32171.093524444434,"y":15270.848248586371},"targetPosition":{"x":32202.60007402855,"y":15875.731493800155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1e3604e1-777b-4344-a47a-d3fefa10014b","savedPayload":{"position":{"x":32202.60007402855,"y":15875.731493800155},"targetPosition":{"x":32233.937927398958,"y":16480.804651897506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"74cef8d6-de4c-464d-8c00-97a88227f626","savedPayload":{"position":{"x":32563.89005125502,"y":15972.679047701366},"targetPosition":{"x":32233.937927398958,"y":16480.804651897506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"9baaa58e-af64-4348-9320-fad9823153a9"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"e3c98070-e46c-4d6d-9079-2b9d556722cc","savedPayload":{"position":{"x":32799.66047391608,"y":16263.472601378264},"targetPosition":{"x":32233.937927398958,"y":16480.804651897506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"bcbd8777-10f8-46a6-ba09-4d635570057d"}}}],"id":"a0b598d2-cdb6-4ce7-96c5-ef3317ae1768","savedPayload":{"position":{"x":30464.964382709288,"y":16849.788876728242},"targetPosition":{"x":30710.05194846605,"y":17227.190632303682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"phase\", \n\"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"(record.positions !== record.previous.positions && record.takeProfitPhase >= 0 ) || \n(record.takeProfitPhase !== record.previous.takeProfitPhase && record.takeProfitPhase >= 0 ) ","project":"Superalgos","id":"a404c20d-5c4d-4505-81f0-263987496ba0","savedPayload":{"position":{"x":30631.45526633398,"y":16577.33087372174},"targetPosition":{"x":30733.603128775376,"y":16777.807341664124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Begin","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 10\n }","project":"Superalgos","id":"c1ed6b36-4dd8-4ff5-ae66-6c6878b4edc1","savedPayload":{"position":{"x":30856.146911653756,"y":16589.106463876404},"targetPosition":{"x":30733.603128775376,"y":16777.807341664124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"9baaa58e-af64-4348-9320-fad9823153a9"}}},"id":"0da5f29a-4847-460d-b982-68b8d5cc7fe5","savedPayload":{"position":{"x":30733.603128775376,"y":16777.807341664124},"targetPosition":{"x":30710.05194846605,"y":17227.190632303682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"New Text","config":"{ \n\"codeName\": \"\", \n\"fontSize\": 10\n}","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"(record.positions !== record.previous.positions && record.takeProfitPhase >= 0 ) || \n(record.takeProfitPhase !== record.previous.takeProfitPhase && record.takeProfitPhase >= 0 ) ","project":"Superalgos","id":"81c4f7bc-db04-4c61-a8e8-5a4a6308dda0","savedPayload":{"position":{"x":30935.01183929041,"y":16660.141638733003},"targetPosition":{"x":30993.24612443848,"y":16877.474949648044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Begin","config":"{ \n\"offsetX\": -3,\n \"offsetY\": -15\n }","project":"Superalgos","id":"5833e42f-c848-4271-9e20-f48d5a98929a","savedPayload":{"position":{"x":31073.878913086173,"y":16667.419353686175},"targetPosition":{"x":30993.24612443848,"y":16877.474949648044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"9baaa58e-af64-4348-9320-fad9823153a9"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"record.takeProfitPhase","project":"Superalgos","id":"00f3fb76-f50d-4879-b1d2-49c51824aef9","savedPayload":{"position":{"x":31181.9470022262,"y":16754.931166769664},"targetPosition":{"x":30993.24612443848,"y":16877.474949648044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"e4d1b248-ee99-42e0-9c77-18b9792b6631","savedPayload":{"position":{"x":31217.937769758257,"y":16889.250539802706},"targetPosition":{"x":30993.24612443848,"y":16877.474949648044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f26f4f43-95e1-406d-94e8-7c818e363777","savedPayload":{"position":{"x":30993.24612443848,"y":16877.474949648044},"targetPosition":{"x":30710.05194846605,"y":17227.190632303682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"95465ef6-b26a-4ca3-817c-26b50e9ef8e0","savedPayload":{"position":{"x":30710.05194846605,"y":17227.190632303682},"targetPosition":{"x":30826.520518762187,"y":17661.857254133763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Take Profit Panel","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Take Profit","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.takeProfit","project":"Superalgos","id":"64f4a076-de71-444a-a543-f62da7701e6f","savedPayload":{"position":{"x":31074.323061028026,"y":16899.19944933201},"targetPosition":{"x":31109.52081566208,"y":17121.429325965913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"321eb006-13d4-4f66-aeab-f6fd2aa4758b","savedPayload":{"position":{"x":31109.52081566208,"y":17121.429325965913},"targetPosition":{"x":31144.718570296132,"y":17343.659202599818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Take Profit Phase","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.takeProfitPhase","project":"Superalgos","id":"0e3f0594-6a97-4e2e-a261-84be8b4ef02c","savedPayload":{"position":{"x":31297.94036395823,"y":17042.944500686244},"targetPosition":{"x":31246.86643273753,"y":17143.182734657436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"eccb236b-4d20-4df2-9810-543bfbb3fc25","savedPayload":{"position":{"x":31246.86643273753,"y":17143.182734657436},"targetPosition":{"x":31144.718570296132,"y":17343.659202599818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Initial Value","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.initialValue","project":"Superalgos","id":"9c72c8d4-8b90-42ff-9ffc-a247ecf7f8cb","savedPayload":{"position":{"x":31445.433272209706,"y":17190.43740893772},"targetPosition":{"x":31345.195038238515,"y":17241.51134015842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"59c28a01-9fc1-45f7-b0c0-2fd02035298e","savedPayload":{"position":{"x":31345.195038238515,"y":17241.51134015842},"targetPosition":{"x":31144.718570296132,"y":17343.659202599818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Final Value","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.finalValue","project":"Superalgos","id":"79ac8b14-7f99-4d31-872a-bf6d3ab7248c","savedPayload":{"position":{"x":31478.06338524699,"y":17396.455834550896},"targetPosition":{"x":31366.948446930037,"y":17378.85695723387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"653490ef-1b6d-4fdc-b1f0-0f8bfc1ad7a7","savedPayload":{"position":{"x":31366.948446930037,"y":17378.85695723387},"targetPosition":{"x":31144.718570296132,"y":17343.659202599818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"33aa2293-7958-4cc3-bb41-fc97c17ccd67","savedPayload":{"position":{"x":31144.718570296132,"y":17343.659202599818},"targetPosition":{"x":30826.520518762187,"y":17661.857254133763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"78a2df79-8912-44d7-a8c7-4b6a0a7235c2","savedPayload":{"position":{"x":30831.520518762187,"y":17749.857254133763},"targetPosition":{"x":30715.051948466054,"y":18184.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cd6f9452-2cce-424d-8059-e3b312f627c4","savedPayload":{"position":{"x":30715.051948466054,"y":18184.523875963845},"targetPosition":{"x":31033.25,"y":18502.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Trading Stages","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Trigger Stage Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate * 0.90","project":"Superalgos","id":"11876454-5f52-49ff-b29f-a5ddbd44e55f","savedPayload":{"position":{"x":30040.66735770847,"y":18683.47074979695},"targetPosition":{"x":30045.438125550707,"y":18483.22185819154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ee6913fa-364d-4b80-bad5-35de44ca43fd","savedPayload":{"position":{"x":30045.438125550707,"y":18483.22185819154},"targetPosition":{"x":30054.717116062133,"y":18083.493493109447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"f064b6c0-7eaf-4341-997a-8655f56c4ca8","savedPayload":{"position":{"x":29854.975128400496,"y":18649.775970733306},"targetPosition":{"x":29921.463146361555,"y":18460.91676660472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"38094e81-9ae7-449d-bc9c-125f756b9f04","savedPayload":{"position":{"x":29921.463146361555,"y":18460.91676660472},"targetPosition":{"x":30054.717116062133,"y":18083.493493109447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.beginRate * 0.90","project":"Superalgos","id":"2a99561e-32d8-430f-9f67-44ce7b3dbdb7","savedPayload":{"position":{"x":29689.239229374765,"y":18560.086383256352},"targetPosition":{"x":29810.855962544778,"y":18401.225685985857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"18c413f8-8acc-4172-91a6-d90a0762118c","savedPayload":{"position":{"x":29810.855962544778,"y":18401.225685985857},"targetPosition":{"x":30054.717116062133,"y":18083.493493109447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"7ab18100-017d-4aef-b48d-32f69b294062","savedPayload":{"position":{"x":29558.267268940603,"y":18420.886156888828},"targetPosition":{"x":29723.043042454166,"y":18307.696500482944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"185d7e04-fa68-401d-b666-9152e57c3378","savedPayload":{"position":{"x":29723.043042454166,"y":18307.696500482944},"targetPosition":{"x":30054.717116062133,"y":18083.493493109447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a14053c2-6a61-4f8c-be0d-585e226b6bca","savedPayload":{"position":{"x":30054.717116062133,"y":18083.493493109447},"targetPosition":{"x":30245.242973630047,"y":17732.225787838146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"6b0d0c65-790f-4123-85da-5eeaae17e347","savedPayload":{"position":{"x":30111.351531567536,"y":17330.314257825175},"targetPosition":{"x":29892.487988033405,"y":17040.025182761274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"37f505da-f3f9-4eb2-b57e-4364f4c7557c","savedPayload":{"position":{"x":29464.822248441527,"y":17567.641729478226},"targetPosition":{"x":29660.72742164514,"y":17325.94171509387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"debc9932-c238-4867-9bf3-51bbe419e2ff","savedPayload":{"position":{"x":29660.72742164514,"y":17325.94171509387},"targetPosition":{"x":29892.487988033405,"y":17040.025182761274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"172928bb-91a1-471b-8dc0-86069d7c02a0","savedPayload":{"position":{"x":29548.69239407828,"y":16908.213364691303},"targetPosition":{"x":29892.487988033405,"y":17040.025182761274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"ee6913fa-364d-4b80-bad5-35de44ca43fd"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"a1267ac2-8258-49cb-95fd-05af04277e88","savedPayload":{"position":{"x":29928.425065823696,"y":16665.583487840482},"targetPosition":{"x":29892.487988033405,"y":17040.025182761274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"18c413f8-8acc-4172-91a6-d90a0762118c"}}}],"id":"9e88f3a0-09ad-44fd-a84e-731228860e66","savedPayload":{"position":{"x":29934.243443579646,"y":17983.906884764332},"targetPosition":{"x":30245.242973630047,"y":17732.225787838146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"d567e677-4217-4379-b873-1afc6fd52f11","savedPayload":{"position":{"x":29997.246031998944,"y":17143.888948078922},"targetPosition":{"x":29876.606558385436,"y":16798.52311935893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"592cc0ee-978d-4030-8fde-4ec503294f15","savedPayload":{"position":{"x":29279.84564115954,"y":17121.981770121994},"targetPosition":{"x":29552.700518739668,"y":16974.065083187754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"07121085-90a5-4b16-a2b5-6dbb11c3d08c","savedPayload":{"position":{"x":29552.700518739668,"y":16974.065083187754},"targetPosition":{"x":29876.606558385436,"y":16798.52311935893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"8591ccfd-d6ec-495e-859d-29894c061971","savedPayload":{"position":{"x":29609.281230270284,"y":16545.044237990136},"targetPosition":{"x":29876.606558385436,"y":16798.52311935893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"ee6913fa-364d-4b80-bad5-35de44ca43fd"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"72ad8b4e-d393-453d-8b57-527f63c248f2","savedPayload":{"position":{"x":30052.913808668385,"y":16466.74713918238},"targetPosition":{"x":29876.606558385436,"y":16798.52311935893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"18c413f8-8acc-4172-91a6-d90a0762118c"}}}],"id":"e2e18af7-af5f-4634-b8a4-4fabd2ddd7a5","savedPayload":{"position":{"x":29861.35310330976,"y":17845.656354352366},"targetPosition":{"x":30245.242973630047,"y":17732.225787838146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"e75c26a6-3516-4eeb-98c7-dcde0cd36ac9","savedPayload":{"position":{"x":30098.08918532047,"y":13041.78930627917},"targetPosition":{"x":30326.97470900253,"y":13227.24323203976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"460b5169-b17a-4c63-a789-44dd11736441","savedPayload":{"position":{"x":30326.97470900253,"y":13227.24323203976},"targetPosition":{"x":30594.44820170511,"y":13443.967702632162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"bb8d8af7-3a7e-4bbd-b4a3-2f254e8a7288","savedPayload":{"position":{"x":30558.618904176376,"y":13101.555477608686},"targetPosition":{"x":30594.44820170511,"y":13443.967702632162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"ee6913fa-364d-4b80-bad5-35de44ca43fd"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"a146b387-51f1-41c0-8528-99088c6f22f8","savedPayload":{"position":{"x":30811.221873154074,"y":13176.199595597716},"targetPosition":{"x":30594.44820170511,"y":13443.967702632162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"38094e81-9ae7-449d-bc9c-125f756b9f04"}}}],"id":"08d916aa-6d2d-497b-8738-9b0966e3901e","savedPayload":{"position":{"x":29847.031819787615,"y":17690.445290983374},"targetPosition":{"x":30245.242973630047,"y":17732.225787838146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"2ecdf0cb-d87f-41cf-8317-d14776d5dda1","savedPayload":{"position":{"x":30218.773265337084,"y":13003.49744790232},"targetPosition":{"x":30426.518179603332,"y":13211.419957035734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"a7ba9639-8238-467d-b0be-b9b2e51311f0","savedPayload":{"position":{"x":30426.518179603332,"y":13211.419957035734},"targetPosition":{"x":30655.95555167008,"y":13441.077461389155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"354df2e6-8fd8-4beb-83ba-0bdcb67d613e","savedPayload":{"position":{"x":30655.953762058514,"y":13115.394717826319},"targetPosition":{"x":30655.95555167008,"y":13441.077461389155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"18c413f8-8acc-4172-91a6-d90a0762118c"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"6babbbfe-f55b-424e-90a3-a7e0bf17b8a1","savedPayload":{"position":{"x":30886.51865345985,"y":13210.473178519562},"targetPosition":{"x":30655.95555167008,"y":13441.077461389155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"185d7e04-fa68-401d-b666-9152e57c3378"}}}],"id":"70de0f73-5a2d-4a5a-a5f7-1863f192a14d","savedPayload":{"position":{"x":29893.32812824937,"y":17541.351989195355},"targetPosition":{"x":30245.242973630047,"y":17732.225787838146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"trigger-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"4a525c63-9096-4b33-980f-926bb7c16783","savedPayload":{"position":{"x":29866.550021549578,"y":17265.49618024856},"targetPosition":{"x":29993.2023314699,"y":17421.317736683384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"ee6913fa-364d-4b80-bad5-35de44ca43fd"}}},"id":"c5fd3ce1-b24e-455c-9557-b43a68d6e942","savedPayload":{"position":{"x":29993.2023314699,"y":17421.317736683384},"targetPosition":{"x":30245.242973630047,"y":17732.225787838146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"trigger-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"3433cd26-6fad-49b0-a789-6e12a9a8aad0","savedPayload":{"position":{"x":30072.739931700507,"y":17156.647479380685},"targetPosition":{"x":30129.955575932217,"y":17349.12764126681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"18c413f8-8acc-4172-91a6-d90a0762118c"}}},"id":"9657d954-28e9-496d-a8e6-6f4c9974796d","savedPayload":{"position":{"x":30129.955575932217,"y":17349.12764126681},"targetPosition":{"x":30245.242973630047,"y":17732.225787838146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"09119fa5-53de-4885-af93-32aacf6445bb","savedPayload":{"position":{"x":30245.242973630047,"y":17732.225787838146},"targetPosition":{"x":30700.006147926553,"y":17779.90281745717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Trigger Stage Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"d6725ef3-05e1-4146-89e6-4e0bd9581a57","savedPayload":{"position":{"x":30223.174084491748,"y":17303.776906793784},"targetPosition":{"x":30347.733792571533,"y":17330.414199627707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"983b2057-a7ec-42a8-914a-4dc778bf71a2","savedPayload":{"position":{"x":30347.733792571533,"y":17330.414199627707},"targetPosition":{"x":30514.473479214936,"y":17362.166088705428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"4f0e461a-fc1c-4340-b9a0-9a59b068e8e9","savedPayload":{"position":{"x":30308.253841051875,"y":17137.295429487585},"targetPosition":{"x":30394.63228728648,"y":17229.62052930633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cbb7504c-0db6-47e8-9d75-d197d5d23bfe","savedPayload":{"position":{"x":30394.63228728648,"y":17229.62052930633},"targetPosition":{"x":30514.473479214936,"y":17362.166088705428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"67721b90-f4f5-4ea0-ba40-cf5364f48ba6","savedPayload":{"position":{"x":30480.662792984713,"y":17057.21085146165},"targetPosition":{"x":30496.28165826919,"y":17182.556277757514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6408eb74-1535-45b9-be83-9c0841bdb019","savedPayload":{"position":{"x":30496.28165826919,"y":17182.556277757514},"targetPosition":{"x":30514.473479214936,"y":17362.166088705428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"8bfbb311-c3cf-4c53-a42d-dc30c5336d17","savedPayload":{"position":{"x":30674.437352561694,"y":17101.573089484085},"targetPosition":{"x":30610.278069994045,"y":17212.907570835636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4837a800-f016-4f60-836b-0fc7acc7d489","savedPayload":{"position":{"x":30610.278069994045,"y":17212.907570835636},"targetPosition":{"x":30514.473479214936,"y":17362.166088705428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c10b9b7b-04d8-460b-9dcc-2eaed24e17df","savedPayload":{"position":{"x":30514.473479214936,"y":17362.166088705428},"targetPosition":{"x":30700.006147926553,"y":17779.90281745717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6c6cddbc-cd78-445f-9498-8627ac99563d","savedPayload":{"position":{"x":30668.72150968149,"y":17757.404713246724},"targetPosition":{"x":31023.244560915467,"y":18014.854058173667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Open Stage Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate * 1.05","project":"Superalgos","id":"c6d764f4-ffbe-4b62-8807-ff40e314f047","savedPayload":{"position":{"x":29835.201355897298,"y":17977.763233166217},"targetPosition":{"x":29956.956822577242,"y":17818.84785310644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3f1ad539-6b21-4cbb-9623-daf242df45bc","savedPayload":{"position":{"x":29956.956822577242,"y":17818.84785310644},"targetPosition":{"x":30199.36345270157,"y":17500.90441284372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"ee137d40-fd2c-4754-a18f-2d5c5c564c4c","savedPayload":{"position":{"x":29704.73588109502,"y":17841.367203903363},"targetPosition":{"x":29869.762569828672,"y":17727.9510749502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c4b7fef3-79e2-45a6-96d6-4c9b6abf1514","savedPayload":{"position":{"x":29869.762569828672,"y":17727.9510749502},"targetPosition":{"x":30199.36345270157,"y":17500.90441284372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.beginRate * 1.05","project":"Superalgos","id":"c7026d19-1d0a-499c-8bd2-2aa847d0d17b","savedPayload":{"position":{"x":29623.279360286157,"y":17671.41440129507},"targetPosition":{"x":29815.30627125961,"y":17614.66809011531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"04304653-9361-433e-8e34-ca08c38ddb21","savedPayload":{"position":{"x":29815.30627125961,"y":17614.66809011531},"targetPosition":{"x":30199.36345270157,"y":17500.90441284372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"5c87a7ab-9f96-495f-9073-95fcc251ed95","savedPayload":{"position":{"x":29599.115635316168,"y":17482.128356812642},"targetPosition":{"x":29799.22534802104,"y":17487.41770441487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"bfe5be37-4f1d-4b6b-be9b-1ed24bf51056","savedPayload":{"position":{"x":29799.22534802104,"y":17487.41770441487},"targetPosition":{"x":30199.36345270157,"y":17500.90441284372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6977ed19-0d15-49df-adec-e0b6beec8296","savedPayload":{"position":{"x":30199.36345270157,"y":17500.90441284372},"targetPosition":{"x":30559.894905812656,"y":17328.61327415081},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"fbe73700-5914-4750-853f-f205da0e00d5","savedPayload":{"position":{"x":29910.545258453138,"y":17166.330054517493},"targetPosition":{"x":29756.585082517544,"y":16837.26104233026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"c845a7dc-a73e-4bc2-92f5-a9f9e76963e1","savedPayload":{"position":{"x":29229.08779312501,"y":17263.919063731053},"targetPosition":{"x":29469.908423454635,"y":17069.11942752157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"f2e9bf45-007e-434e-b977-07a4ba08bd7e","savedPayload":{"position":{"x":29469.908423454635,"y":17069.11942752157},"targetPosition":{"x":29756.585082517544,"y":16837.26104233026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"64879334-0c33-40de-b993-bbccaebc1ce5","savedPayload":{"position":{"x":29447.45892118335,"y":16636.70653938226},"targetPosition":{"x":29756.585082517544,"y":16837.26104233026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"3f1ad539-6b21-4cbb-9623-daf242df45bc"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"f3e5ca2b-9766-47fc-87b5-a8d400f073fb","savedPayload":{"position":{"x":29869.307222055562,"y":16478.665352181164},"targetPosition":{"x":29756.585082517544,"y":16837.26104233026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"04304653-9361-433e-8e34-ca08c38ddb21"}}}],"id":"21db891e-4c47-4a5a-88a5-036297086138","savedPayload":{"position":{"x":30160.438692534957,"y":17349.494875560216},"targetPosition":{"x":30559.894905812656,"y":17328.61327415081},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"de754019-110e-46e7-8991-969f82d7027f","savedPayload":{"position":{"x":29837.65418629762,"y":16960.72153455824},"targetPosition":{"x":29791.283556599756,"y":16597.751110270772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"8f03ebb4-360c-430d-adef-13b574d53d80","savedPayload":{"position":{"x":29140.168489868196,"y":16790.240989372716},"targetPosition":{"x":29437.974313239803,"y":16702.058475354253},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"e34a2ef9-0533-40a7-901f-a07b503ca847","savedPayload":{"position":{"x":29437.974313239803,"y":16702.058475354253},"targetPosition":{"x":29791.283556599756,"y":16597.751110270772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"eaf26e8a-cd01-450f-b939-af89c22a5746","savedPayload":{"position":{"x":29582.558022947767,"y":16294.042324336653},"targetPosition":{"x":29791.283556599756,"y":16597.751110270772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"3f1ad539-6b21-4cbb-9623-daf242df45bc"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"3f4a9c46-b76a-4e07-b012-e447bbbabd11","savedPayload":{"position":{"x":30032.625106837073,"y":16309.878836800319},"targetPosition":{"x":29791.283556599756,"y":16597.751110270772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"04304653-9361-433e-8e34-ca08c38ddb21"}}}],"id":"2a3d0d93-13d9-4a9e-8d32-c0aa5d7ab1e3","savedPayload":{"position":{"x":30182.731938530025,"y":17195.06326563915},"targetPosition":{"x":30559.894905812656,"y":17328.61327415081},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"86f26dcc-e45b-4313-8182-e5f715a7ea2b","savedPayload":{"position":{"x":30537.210548393665,"y":13235.805610298441},"targetPosition":{"x":30766.096072075725,"y":13421.259536059031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"67e63d56-1a05-414e-a99b-a3003e3483c5","savedPayload":{"position":{"x":30766.096072075725,"y":13421.259536059031},"targetPosition":{"x":31033.569564778303,"y":13637.984006651433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"a4c6c33d-682a-418b-9dff-24a739838aeb","savedPayload":{"position":{"x":30997.74026724957,"y":13295.571781627958},"targetPosition":{"x":31033.569564778303,"y":13637.984006651433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"3f1ad539-6b21-4cbb-9623-daf242df45bc"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"499e2a85-9ef8-4ca7-9f87-5a01fe2a5ca3","savedPayload":{"position":{"x":31250.34323622727,"y":13370.215899616987},"targetPosition":{"x":31033.569564778303,"y":13637.984006651433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"c4b7fef3-79e2-45a6-96d6-4c9b6abf1514"}}}],"id":"616f49d0-daaa-4b82-be0d-56504b402616","savedPayload":{"position":{"x":30262.53626682461,"y":17060.85084401958},"targetPosition":{"x":30559.894905812656,"y":17328.61327415081},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"feff4d08-a0de-4e2e-bafa-896613af0a14","savedPayload":{"position":{"x":30657.89462841028,"y":13197.513751921591},"targetPosition":{"x":30865.639542676527,"y":13405.436261055005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"f9c6d40c-a3fa-4f02-83c5-c2c39d478c42","savedPayload":{"position":{"x":30865.639542676527,"y":13405.436261055005},"targetPosition":{"x":31095.076914743273,"y":13635.093765408426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"680845ab-7423-4022-820b-a2d05b1ae32d","savedPayload":{"position":{"x":31095.07512513171,"y":13309.41102184559},"targetPosition":{"x":31095.076914743273,"y":13635.093765408426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"04304653-9361-433e-8e34-ca08c38ddb21"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"b5abef98-275f-4c3c-9704-bc17e83f4f9b","savedPayload":{"position":{"x":31325.640016533045,"y":13404.489482538833},"targetPosition":{"x":31095.076914743273,"y":13635.093765408426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"bfe5be37-4f1d-4b6b-be9b-1ed24bf51056"}}}],"id":"0fab39ff-8caf-45f8-8650-33d7a65fa6e1","savedPayload":{"position":{"x":30387.621947553085,"y":16967.438120013507},"targetPosition":{"x":30559.894905812656,"y":17328.61327415081},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"open-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"cbb69a21-082e-4364-a069-c33f92f0a07c","savedPayload":{"position":{"x":30528.225164278258,"y":16728.528916324503},"targetPosition":{"x":30538.973803822457,"y":16929.034839642605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"3f1ad539-6b21-4cbb-9623-daf242df45bc"}}},"id":"472dcf1a-f045-4d96-8a97-f11011bc667a","savedPayload":{"position":{"x":30538.973803822457,"y":16929.034839642605},"targetPosition":{"x":30559.894905812656,"y":17328.61327415081},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"open-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"f0a4c47e-a1e4-436f-a470-1adb11c80b7a","savedPayload":{"position":{"x":30758.4086038935,"y":16761.66025689621},"targetPosition":{"x":30691.84690677564,"y":16951.05120177229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"04304653-9361-433e-8e34-ca08c38ddb21"}}},"id":"7c64940b-d01e-47e5-902c-ece8262864cc","savedPayload":{"position":{"x":30691.84690677564,"y":16951.05120177229},"targetPosition":{"x":30559.894905812656,"y":17328.61327415081},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"d953dd4d-5603-4042-b15b-1e293988be14","savedPayload":{"position":{"x":30559.894905812656,"y":17328.61327415081},"targetPosition":{"x":30899.898144518073,"y":17634.679084627667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Open Stage Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"908c9dfe-fb97-457a-93e6-711df1e89436","savedPayload":{"position":{"x":30793.977208223354,"y":16968.68616553455},"targetPosition":{"x":30878.64900913943,"y":17064.152097193706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"13d4c685-4b50-4ce8-aba9-1075b89e4d79","savedPayload":{"position":{"x":30878.64900913943,"y":17064.152097193706},"targetPosition":{"x":30995.179891801246,"y":17187.343024165446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"428c5592-0629-49e4-a929-91ed47cdd1d3","savedPayload":{"position":{"x":30960.882579034725,"y":16884.32487656314},"targetPosition":{"x":30975.850193160746,"y":17010.05889465703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"74b0dbe2-935f-40f0-bd3b-812b925aa887","savedPayload":{"position":{"x":30975.850193160746,"y":17010.05889465703},"targetPosition":{"x":30995.179891801246,"y":17187.343024165446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"a862e1ab-2bd4-4627-8bc0-ca68102525bb","savedPayload":{"position":{"x":31147.05092142841,"y":16921.16941747388},"targetPosition":{"x":31085.808298463216,"y":17031.750386657422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"83bfb9e8-3774-4740-ba7b-635fb0088b59","savedPayload":{"position":{"x":31085.808298463216,"y":17031.750386657422},"targetPosition":{"x":30995.179891801246,"y":17187.343024165446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"be46adeb-8308-4ff1-9cc4-5939c3e040dd","savedPayload":{"position":{"x":31277.580090991843,"y":17071.259623523576},"targetPosition":{"x":31160.20558431537,"y":17123.27549117869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ccae74f6-9331-4c03-a44f-9176cb815ce2","savedPayload":{"position":{"x":31160.20558431537,"y":17123.27549117869},"targetPosition":{"x":30995.179891801246,"y":17187.343024165446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"be56e169-d089-4aea-a18a-c01cf16a3485","savedPayload":{"position":{"x":30995.179891801246,"y":17187.343024165446},"targetPosition":{"x":30899.898144518073,"y":17634.679084627667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8f7cad9f-153d-44e6-bdc2-812bc97e3929","savedPayload":{"position":{"x":30887.82409953432,"y":17598.254150363322},"targetPosition":{"x":31023.244560915467,"y":18014.854058173667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Manage Stage Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate * 0.95","project":"Superalgos","id":"0c5c0deb-9d9f-4849-ac44-711f24c60962","savedPayload":{"position":{"x":30076.645569752334,"y":17297.408655242496},"targetPosition":{"x":30268.602476035925,"y":17240.46888457365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"51020863-6f89-4c73-97fd-fbc7fc03348f","savedPayload":{"position":{"x":30268.602476035925,"y":17240.46888457365},"targetPosition":{"x":30651.790445976178,"y":17125.515341073842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"a2fd6f13-b771-40c1-9c7a-55d1bb965ae8","savedPayload":{"position":{"x":30051.20539682134,"y":17110.645376598197},"targetPosition":{"x":30251.448841679285,"y":17115.69225045596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"38ed128c-3053-45dd-a069-24e21b798603","savedPayload":{"position":{"x":30251.448841679285,"y":17115.69225045596},"targetPosition":{"x":30651.790445976178,"y":17125.515341073842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.beginRate * 0.95","project":"Superalgos","id":"26bade31-216a-498d-961d-f5f5aeb03075","savedPayload":{"position":{"x":30085.2285966756,"y":16925.29390631918},"targetPosition":{"x":30274.03556826291,"y":16992.072619327904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d1bf6c44-0b02-4e8a-8877-20210246d2d0","savedPayload":{"position":{"x":30274.03556826291,"y":16992.072619327904},"targetPosition":{"x":30651.790445976178,"y":17125.515341073842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"d6044513-956e-4ba9-994b-cce2f42e9cb1","savedPayload":{"position":{"x":30176.867280152754,"y":16757.861198202343},"targetPosition":{"x":30335.659847917934,"y":16879.8330942428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f23b14cc-df91-40a6-b1b2-9876aa8690c9","savedPayload":{"position":{"x":30335.659847917934,"y":16879.8330942428},"targetPosition":{"x":30651.790445976178,"y":17125.515341073842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7bff6698-f9c9-4b44-a4ee-193ffd703e40","savedPayload":{"position":{"x":30651.790445976178,"y":17125.515341073842},"targetPosition":{"x":31048.766519103454,"y":17189.125784566386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"4b05add4-cf40-4168-9cc8-7aa79d81e819","savedPayload":{"position":{"x":30502.79571893496,"y":16631.973497807743},"targetPosition":{"x":30571.529706263354,"y":16275.292430638343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"a60fc3c0-051e-4063-99b9-b0be3fc7b3f0","savedPayload":{"position":{"x":29893.813215163682,"y":16310.177335959186},"targetPosition":{"x":30203.266675898973,"y":16294.242743845782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"81182574-694d-43b5-a55b-f380bef4e226","savedPayload":{"position":{"x":30203.266675898973,"y":16294.242743845782},"targetPosition":{"x":30571.529706263354,"y":16275.292430638343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"270cce8d-9e8c-4b61-9f31-df178eb3dae1","savedPayload":{"position":{"x":30439.421994929184,"y":15931.286917133357},"targetPosition":{"x":30571.529706263354,"y":16275.292430638343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"51020863-6f89-4c73-97fd-fbc7fc03348f"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"2b20e9f7-72c4-4a93-b278-c77295400bc9","savedPayload":{"position":{"x":30873.689260250107,"y":16051.391943982562},"targetPosition":{"x":30571.529706263354,"y":16275.292430638343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"d1bf6c44-0b02-4e8a-8877-20210246d2d0"}}}],"id":"43435aed-68cb-4a56-88c4-2574d91f5b32","savedPayload":{"position":{"x":30719.710318937297,"y":16941.637816962822},"targetPosition":{"x":31048.766519103454,"y":17189.125784566386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"28c153db-44db-466c-83c7-a47c56152c4b","savedPayload":{"position":{"x":30691.456735428696,"y":17068.513509823057},"targetPosition":{"x":30822.43467794465,"y":16859.424511644538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"1ea48dcf-f651-4b4d-a218-d13fceaa4d33","savedPayload":{"position":{"x":30445.131175768773,"y":16724.79155012291},"targetPosition":{"x":30633.68540329151,"y":16791.933946753034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"8ad430dd-933a-4cf2-9f2d-b3189a57fae4","savedPayload":{"position":{"x":30633.68540329151,"y":16791.933946753034},"targetPosition":{"x":30822.43467794465,"y":16859.424511644538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"e9ebc5af-2940-47d8-a067-26b70105b4e9","savedPayload":{"position":{"x":30827.221754737417,"y":16658.421562904394},"targetPosition":{"x":30822.43467794465,"y":16859.424511644538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"51020863-6f89-4c73-97fd-fbc7fc03348f"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"b5d31d62-415f-4437-a011-9d89d3dd4d61","savedPayload":{"position":{"x":31018.882590869474,"y":16816.464643056108},"targetPosition":{"x":30822.43467794465,"y":16859.424511644538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"d1bf6c44-0b02-4e8a-8877-20210246d2d0"}}}],"id":"904be022-f1e2-475e-9115-88224353cfa2","savedPayload":{"position":{"x":30822.43467794465,"y":16859.424511644538},"targetPosition":{"x":31048.766519103454,"y":17189.125784566386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"4f68d1c6-26e0-4c28-837d-fa6b137c48b6","savedPayload":{"position":{"x":30648.9634686733,"y":13585.59058303493},"targetPosition":{"x":30877.84899235536,"y":13771.04450879552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2cf632ed-a72b-4a59-817f-32a1160217cd","savedPayload":{"position":{"x":30877.84899235536,"y":13771.04450879552},"targetPosition":{"x":31145.32248505794,"y":13987.768979387922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"420cb596-82bf-40f0-9097-b6ac41d35b13","savedPayload":{"position":{"x":31109.493187529206,"y":13645.356754364446},"targetPosition":{"x":31145.32248505794,"y":13987.768979387922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"51020863-6f89-4c73-97fd-fbc7fc03348f"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"1b42a439-3e00-444b-ab69-5f4e6af4f0f3","savedPayload":{"position":{"x":31362.096156506905,"y":13720.000872353476},"targetPosition":{"x":31145.32248505794,"y":13987.768979387922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"38ed128c-3053-45dd-a069-24e21b798603"}}}],"id":"4c74d4d8-d0a4-4581-bee7-36485d7a91a5","savedPayload":{"position":{"x":30938.879817074234,"y":16795.253518230395},"targetPosition":{"x":31048.766519103454,"y":17189.125784566386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"d11795b4-f398-4b0d-b028-f0b9aadb3fa7","savedPayload":{"position":{"x":30769.647548689914,"y":13547.29872465808},"targetPosition":{"x":30977.392462956162,"y":13755.221233791493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1a75e942-11f7-4b82-8dce-8383521d48e4","savedPayload":{"position":{"x":30977.392462956162,"y":13755.221233791493},"targetPosition":{"x":31206.82983502291,"y":13984.878738144915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"9a6a4625-a7b7-47f6-8460-47f5899d7431","savedPayload":{"position":{"x":31206.828045411345,"y":13659.195994582078},"targetPosition":{"x":31206.82983502291,"y":13984.878738144915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"d1bf6c44-0b02-4e8a-8877-20210246d2d0"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"2ed6c5e7-fc8c-45e6-acb1-fdcb81fdee7b","savedPayload":{"position":{"x":31437.39293681268,"y":13754.274455275321},"targetPosition":{"x":31206.82983502291,"y":13984.878738144915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"f23b14cc-df91-40a6-b1b2-9876aa8690c9"}}}],"id":"9fc6d2c4-a67b-42e8-841b-7523f7ab4962","savedPayload":{"position":{"x":31146.386938788954,"y":16790.602596554214},"targetPosition":{"x":31048.766519103454,"y":17189.125784566386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"manage-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"d806311b-133d-423b-9026-7a418da2b5e3","savedPayload":{"position":{"x":31375.902116466412,"y":16684.99589839525},"targetPosition":{"x":31266.793134241736,"y":16853.605760711584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"51020863-6f89-4c73-97fd-fbc7fc03348f"}}},"id":"61fd08ac-8bd8-4539-a116-22c4469a2b2e","savedPayload":{"position":{"x":31266.793134241736,"y":16853.605760711584},"targetPosition":{"x":31048.766519103454,"y":17189.125784566386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"manage-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"608a821f-bdff-4ec0-abd9-251c7c085a34","savedPayload":{"position":{"x":31542.883615074654,"y":16847.36605071432},"targetPosition":{"x":31377.58670479244,"y":16961.340641605933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"d1bf6c44-0b02-4e8a-8877-20210246d2d0"}}},"id":"4a257e17-128c-4c00-9e2b-a76049e30657","savedPayload":{"position":{"x":31377.58670479244,"y":16961.340641605933},"targetPosition":{"x":31048.766519103454,"y":17189.125784566386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"dd3a2274-3986-4c89-bab9-265f6fa6b1d1","savedPayload":{"position":{"x":31048.766519103454,"y":17189.125784566386},"targetPosition":{"x":31143.813869907728,"y":17636.82501634663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Manage Stage Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"d386f88a-6d4d-4606-992c-e19df72e7f29","savedPayload":{"position":{"x":31450.031043810905,"y":17035.955976178022},"targetPosition":{"x":31462.030554090452,"y":17162.889029119622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"434bbab3-b2a1-47b5-8c5a-55ac7a2a2674","savedPayload":{"position":{"x":31462.030554090452,"y":17162.889029119622},"targetPosition":{"x":31483.96351328209,"y":17331.008629478278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"5123b469-2376-4f03-a995-82df2842cde3","savedPayload":{"position":{"x":31634.38193944318,"y":17065.707045028612},"targetPosition":{"x":31572.491704463067,"y":17176.21509726392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7b7fa67c-cdfd-41c5-83a2-3362fe2cef3c","savedPayload":{"position":{"x":31572.491704463067,"y":17176.21509726392},"targetPosition":{"x":31483.96351328209,"y":17331.008629478278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"e172032f-6c23-4267-b1a5-80c4fa2f7571","savedPayload":{"position":{"x":31763.307142160833,"y":17205.044183501148},"targetPosition":{"x":31648.72373435564,"y":17258.433101510524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c3473f91-b229-43d5-a1d4-79d535b5ac64","savedPayload":{"position":{"x":31648.72373435564,"y":17258.433101510524},"targetPosition":{"x":31483.96351328209,"y":17331.008629478278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"2df876ce-61ff-4a24-a34a-03126c0e02a6","savedPayload":{"position":{"x":31780.808015931747,"y":17402.86026714796},"targetPosition":{"x":31655.15604060808,"y":17376.24779669401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"16af0d06-b721-48e5-8ed2-7072f25e8fc3","savedPayload":{"position":{"x":31655.15604060808,"y":17376.24779669401},"targetPosition":{"x":31483.96351328209,"y":17331.008629478278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3db5604f-cacf-4c87-b1ea-5aa364bf9f48","savedPayload":{"position":{"x":31483.96351328209,"y":17331.008629478278},"targetPosition":{"x":31143.813869907728,"y":17636.82501634663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"768a5cc5-72db-4218-9a8b-706c51186b3d","savedPayload":{"position":{"x":31158.181105910466,"y":17598.23904001398},"targetPosition":{"x":31023.244560915467,"y":18014.854058173667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Close Stage Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate * 1.05","project":"Superalgos","id":"bb2edfb7-4b27-4023-937f-87edcefa4b36","savedPayload":{"position":{"x":30691.0143925978,"y":16873.622187739253},"targetPosition":{"x":30879.911528923672,"y":16940.114775725953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"064c3de1-dd16-4010-9267-f588f070aa32","savedPayload":{"position":{"x":30879.911528923672,"y":16940.114775725953},"targetPosition":{"x":31257.26040212413,"y":17072.340549339497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"52da9824-848c-4ef6-ac1d-4c1a52baf9c2","savedPayload":{"position":{"x":30780.471843839387,"y":16707.405156833593},"targetPosition":{"x":30939.456044410614,"y":16829.137278452374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ce4b9d0e-3e46-4cf2-9ea6-a108f962ba9b","savedPayload":{"position":{"x":30939.456044410614,"y":16829.137278452374},"targetPosition":{"x":31257.26040212413,"y":17072.340549339497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.beginRate * 1.05","project":"Superalgos","id":"ec40fffd-d0b2-410e-b8a0-346fd3975c13","savedPayload":{"position":{"x":30916.9651677896,"y":16577.444371865357},"targetPosition":{"x":31030.384174219012,"y":16742.382102488944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9ad19ea8-8df3-4601-bfb9-0e858dad9140","savedPayload":{"position":{"x":31030.384174219012,"y":16742.382102488944},"targetPosition":{"x":31257.26040212413,"y":17072.340549339497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"d9ac4f25-f9aa-4de6-8f05-b43a159248be","savedPayload":{"position":{"x":31089.780433874268,"y":16495.855759174607},"targetPosition":{"x":31146.426786872864,"y":16687.74563062247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"92930f08-af27-4807-a1eb-98fb82c58fb2","savedPayload":{"position":{"x":31146.426786872864,"y":16687.74563062247},"targetPosition":{"x":31257.26040212413,"y":17072.340549339497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ebdc8337-0d63-48c8-940e-83f14c7de8f3","savedPayload":{"position":{"x":31257.26040212413,"y":17072.340549339497},"targetPosition":{"x":31532.521819013513,"y":17362.12787780102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"17f11af6-9a1b-4df5-93ad-52acea4e9ccb","savedPayload":{"position":{"x":31295.039743576566,"y":16548.20300465818},"targetPosition":{"x":31560.61635849915,"y":16299.924976474394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"272091f5-637f-4389-ae00-8806170ec5fe","savedPayload":{"position":{"x":30991.976111884855,"y":15930.507335847147},"targetPosition":{"x":31251.25330290456,"y":16098.921937712996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"92bb2d8c-cbd9-4a46-ba6e-10ec3c04afbe","savedPayload":{"position":{"x":31251.25330290456,"y":16098.921937712996},"targetPosition":{"x":31560.61635849915,"y":16299.924976474394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"67a714b2-66d1-4c20-afc6-4985557c8924","savedPayload":{"position":{"x":31655.653082221448,"y":15944.195581380209},"targetPosition":{"x":31560.61635849915,"y":16299.924976474394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"064c3de1-dd16-4010-9267-f588f070aa32"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"9e1c1d76-9d74-4812-b79a-176890c35d64","savedPayload":{"position":{"x":31935.929184686152,"y":16296.129517488196},"targetPosition":{"x":31560.61635849915,"y":16299.924976474394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"9ad19ea8-8df3-4601-bfb9-0e858dad9140"}}}],"id":"9463d512-21f5-48c1-8cd6-b14747b338cf","savedPayload":{"position":{"x":31389.242337548774,"y":16988.503452158457},"targetPosition":{"x":31532.521819013513,"y":17362.12787780102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"cb0d72ee-ae97-4482-94d0-6be4fa885ca3","savedPayload":{"position":{"x":31467.22612235593,"y":16414.28606034982},"targetPosition":{"x":31799.11679890427,"y":16258.768644173193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"4c30f5b9-b06f-4ed0-b8b8-6672347063e0","savedPayload":{"position":{"x":31414.875838561788,"y":15699.152504754755},"targetPosition":{"x":31590.471218600786,"y":15955.052129140537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"90ab3a19-e778-46ce-8aad-05799a66cc36","savedPayload":{"position":{"x":31590.471218600786,"y":15955.052129140537},"targetPosition":{"x":31799.11679890427,"y":16258.768644173193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"f0ed2d50-c494-4fae-863a-752ecad0fd1d","savedPayload":{"position":{"x":32023.012614417745,"y":15966.534709532285},"targetPosition":{"x":31799.11679890427,"y":16258.768644173193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"064c3de1-dd16-4010-9267-f588f070aa32"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"68c67883-1f21-4a00-9537-a794638a4d07","savedPayload":{"position":{"x":32147.50066314878,"y":16399.040043899222},"targetPosition":{"x":31799.11679890427,"y":16258.768644173193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"9ad19ea8-8df3-4601-bfb9-0e858dad9140"}}}],"id":"c3249cad-9f26-4ff2-ab0d-968c66bb7f2d","savedPayload":{"position":{"x":31542.996217122352,"y":16961.886562674525},"targetPosition":{"x":31532.521819013513,"y":17362.12787780102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"15a2eeab-c29f-45e9-b407-30f99dfb2b3a","savedPayload":{"position":{"x":31793.14563444265,"y":15677.598370481623},"targetPosition":{"x":31904.18732620869,"y":15967.553751687574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ef752c53-dc77-4be4-80ec-f24b3ae0bf6d","savedPayload":{"position":{"x":31904.18732620869,"y":15967.553751687574},"targetPosition":{"x":32036.02447075721,"y":16311.661880690852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"b6002088-f077-44c3-bdac-1e310ef78e32","savedPayload":{"position":{"x":32185.76859922711,"y":15975.053750304573},"targetPosition":{"x":32036.02447075721,"y":16311.661880690852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"064c3de1-dd16-4010-9267-f588f070aa32"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"210bad6f-d160-4d55-80f4-5a441a79cea1","savedPayload":{"position":{"x":32380.028919602577,"y":16179.494071175981},"targetPosition":{"x":32036.02447075721,"y":16311.661880690852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"ce4b9d0e-3e46-4cf2-9ea6-a108f962ba9b"}}}],"id":"dbd9d421-d90c-4ab8-a26b-c2254d7abec1","savedPayload":{"position":{"x":31695.311102003765,"y":16996.305766052268},"targetPosition":{"x":31532.521819013513,"y":17362.12787780102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"50698494-7f90-4d92-a87e-452567bce9b3","savedPayload":{"position":{"x":32251.564620207726,"y":15772.531742438206},"targetPosition":{"x":32243.561561872666,"y":16082.856543705942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"58d29c18-d22b-4294-97a0-3a9fae711b6c","savedPayload":{"position":{"x":32243.561561872666,"y":16082.856543705942},"targetPosition":{"x":32234.02589295308,"y":16451.392862524994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"4617c7b4-acc4-4122-a714-bc2b38b4566f","savedPayload":{"position":{"x":32501.06359320497,"y":16197.798203508617},"targetPosition":{"x":32234.02589295308,"y":16451.392862524994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"9ad19ea8-8df3-4601-bfb9-0e858dad9140"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"d0589ad1-0f35-4e0f-ab38-8de7a56f04b6","savedPayload":{"position":{"x":32602.003509496164,"y":16460.67763807758},"targetPosition":{"x":32234.02589295308,"y":16451.392862524994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"92930f08-af27-4807-a1eb-98fb82c58fb2"}}}],"id":"a5e40c24-183d-4896-97b0-f9f0f104c240","savedPayload":{"position":{"x":31822.81427325774,"y":17086.39883563557},"targetPosition":{"x":31532.521819013513,"y":17362.12787780102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"close-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"8c6238d9-007c-48b6-9d95-df4a6aa5c14b","savedPayload":{"position":{"x":32093.432197891318,"y":17146.27204271995},"targetPosition":{"x":31906.116986769994,"y":17218.471097720154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"064c3de1-dd16-4010-9267-f588f070aa32"}}},"id":"21f90d1d-d464-4bf4-9435-87afdc4daf19","savedPayload":{"position":{"x":31906.116986769994,"y":17218.471097720154},"targetPosition":{"x":31532.521819013513,"y":17362.12787780102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"close-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"cae4a4f0-e26b-40ab-8a29-04d1dfde4633","savedPayload":{"position":{"x":32133.234581987075,"y":17375.558011470242},"targetPosition":{"x":31932.497831801193,"y":17370.720106689612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"9ad19ea8-8df3-4601-bfb9-0e858dad9140"}}},"id":"63d17b18-3750-42c2-b785-9bfb4c2f7bfc","savedPayload":{"position":{"x":31932.497831801193,"y":17370.720106689612},"targetPosition":{"x":31532.521819013513,"y":17362.12787780102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"2236ae6a-63a0-4031-a6aa-95fd8dbd1e6d","savedPayload":{"position":{"x":31532.521819013513,"y":17362.12787780102},"targetPosition":{"x":31346.682612786382,"y":17779.971750829023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Close Stage Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"7ff88a72-886f-4417-980f-29ec65270b3b","savedPayload":{"position":{"x":31947.38361421089,"y":17473.526650914733},"targetPosition":{"x":31882.913614334582,"y":17583.532960443878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"30d603e4-521d-464e-9f80-a22f99d43bc4","savedPayload":{"position":{"x":31882.913614334582,"y":17583.532960443878},"targetPosition":{"x":31801.46272814609,"y":17732.522282134534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"b1f57c8d-346f-4c8f-8bf1-4d0e9f9cec6f","savedPayload":{"position":{"x":32079.211102041594,"y":17606.033488616227},"targetPosition":{"x":31964.325506906596,"y":17659.335947743773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1ccd3f25-5841-4563-98ef-f97f82b6da66","savedPayload":{"position":{"x":31964.325506906596,"y":17659.335947743773},"targetPosition":{"x":31801.46272814609,"y":17732.522282134534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"6e1dc213-47ad-407a-b993-c9ed20d0db14","savedPayload":{"position":{"x":32101.91553864277,"y":17794.48046020156},"targetPosition":{"x":31977.72762980769,"y":17770.598257350895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d6912158-6634-4cce-82e1-be1f3f8c0211","savedPayload":{"position":{"x":31977.72762980769,"y":17770.598257350895},"targetPosition":{"x":31801.46272814609,"y":17732.522282134534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"0ecdc927-ff01-4f77-87ff-47be6ad314d6","savedPayload":{"position":{"x":31999.72000989406,"y":17964.935205511083},"targetPosition":{"x":31913.71085580276,"y":17869.553989143365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f63619e4-c005-4a60-883e-ea24a36c04e6","savedPayload":{"position":{"x":31913.71085580276,"y":17869.553989143365},"targetPosition":{"x":31801.46272814609,"y":17732.522282134534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"069885e7-351f-45dc-8423-113db65b9592","savedPayload":{"position":{"x":31801.46272814609,"y":17732.522282134534},"targetPosition":{"x":31346.682612786382,"y":17779.971750829023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"de84947f-ec29-4125-a2b3-a3da595d1653","savedPayload":{"position":{"x":31377.486051895896,"y":17757.46807103634},"targetPosition":{"x":31023.244560915467,"y":18014.854058173667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"23f6d360-b2ec-462d-ba57-9226d0fc0c5b","savedPayload":{"position":{"x":31033.25,"y":18052.72192749779},"targetPosition":{"x":31033.25,"y":18502.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Exchange Orders","config":"{ \n \"codeName\": \"Exchange-Orders\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Market Buy Orders","config":"{ \n \"codeName\": \"Market-Buy-Orders\", \n \"icon\": \"trend\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"actualRate\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}\n","project":"Superalgos","id":"bc2c1fb7-af45-4444-b883-7523eb94bcc0","savedPayload":{"position":{"x":30385.890258840904,"y":17946.37193756143},"targetPosition":{"x":30518.14194060671,"y":17764.343113827068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5d2c59a6-72ce-4f42-8d14-62e4a7d11d73","savedPayload":{"position":{"x":30518.14194060671,"y":17764.343113827068},"targetPosition":{"x":30650.393622372518,"y":17582.314290092705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"76027de9-5f42-494b-be42-7b24e7663fb4","savedPayload":{"position":{"x":30202.858769456798,"y":17535.276481622263},"targetPosition":{"x":30426.626195914658,"y":17558.795385857484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0e224c82-a863-4953-8e38-42ff372df6cd","savedPayload":{"position":{"x":30426.626195914658,"y":17558.795385857484},"targetPosition":{"x":30650.393622372518,"y":17582.314290092705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c8f9bc68-22a9-47a7-8b54-f8e1ee93760a","savedPayload":{"position":{"x":30650.393622372518,"y":17582.314290092705},"targetPosition":{"x":30855.941350342102,"y":17490.79854540065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"New Polygon","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"a307230c-ee14-4b3a-8430-5993da0e1b7e","savedPayload":{"position":{"x":30234.790298441065,"y":17593.197246137068},"targetPosition":{"x":30440.33802641065,"y":17501.68150144501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2c437c94-96f4-4b5b-9241-45636f73356e","savedPayload":{"position":{"x":30440.33802641065,"y":17501.68150144501},"targetPosition":{"x":30645.885754380233,"y":17410.165756752955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"7d4ca25c-5454-4d6a-8ead-a4ecee6709b8","savedPayload":{"position":{"x":30435.830158418365,"y":17329.53296810526},"targetPosition":{"x":30645.885754380233,"y":17410.165756752955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"5d2c59a6-72ce-4f42-8d14-62e4a7d11d73"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"cefe7159-5b2f-4036-9aad-1d72358cbf81","savedPayload":{"position":{"x":30554.370009688177,"y":17204.61802878337},"targetPosition":{"x":30645.885754380233,"y":17410.165756752955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"0e224c82-a863-4953-8e38-42ff372df6cd"}}}],"id":"6217d021-ea5b-4b20-b093-758a2d2fb5d4","savedPayload":{"position":{"x":30645.885754380233,"y":17410.165756752955},"targetPosition":{"x":30855.941350342102,"y":17490.79854540065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"bullet-market-buy-order\", \n\"size\": 20\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin","config":"{ \n\"offsetX\": 10,\n \"offsetY\": 0\n }","project":"Superalgos","id":"48799848-30ad-4ef3-914e-45c3299168da","savedPayload":{"position":{"x":30718.667733304017,"y":17182.476953446272},"targetPosition":{"x":30764.425605650045,"y":17285.250817431064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"5d2c59a6-72ce-4f42-8d14-62e4a7d11d73"}}},"id":"c988d815-94cf-48e3-9447-2e81b97271b2","savedPayload":{"position":{"x":30764.425605650045,"y":17285.250817431064},"targetPosition":{"x":30855.941350342102,"y":17490.79854540065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"486a0f30-691f-4c40-a18e-a1b0ac336ac1","savedPayload":{"position":{"x":30855.941350342102,"y":17490.79854540065},"targetPosition":{"x":31276.052542265843,"y":17652.064122696032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Market Buy Order","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"6c10223a-aec1-485d-a731-2122a2485359","savedPayload":{"position":{"x":29949.43168889086,"y":16870.79051683165},"targetPosition":{"x":30289.21622339604,"y":16733.578503110773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6edbd7e7-a5ef-4ec0-ae1d-41c6a7cec5e1","savedPayload":{"position":{"x":30289.21622339604,"y":16733.578503110773},"targetPosition":{"x":30629.000411499663,"y":16596.126036347945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.rate","project":"Superalgos","id":"706b3e18-b354-4b2d-ad94-8a1e06aa3d6a","savedPayload":{"position":{"x":29896.32784924105,"y":16621.569069166915},"targetPosition":{"x":30262.623777079018,"y":16608.89478065573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"312fc9a8-af5d-428b-b1b9-9207bf4def4d","savedPayload":{"position":{"x":30262.623777079018,"y":16608.89478065573},"targetPosition":{"x":30629.000411499663,"y":16596.126036347945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"6823da7b-b937-44ec-a748-6544810c5e4d","savedPayload":{"position":{"x":29931.71863830144,"y":16369.746261438151},"targetPosition":{"x":30280.313836598332,"y":16482.94962397141},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bdc187a2-01a2-4d5e-a3b6-e03a3aa83337","savedPayload":{"position":{"x":30280.313836598332,"y":16482.94962397141},"targetPosition":{"x":30629.000411499663,"y":16596.126036347945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"df586a2e-5e92-4719-b43a-b66e92d54cfb","savedPayload":{"position":{"x":30051.249031127456,"y":16144.866531776082},"targetPosition":{"x":30340.084967452578,"y":16370.486348179358},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8c832572-6989-49fe-af66-337113d833bd","savedPayload":{"position":{"x":30340.084967452578,"y":16370.486348179358},"targetPosition":{"x":30629.000411499663,"y":16596.126036347945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Order Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.orderName","project":"Superalgos","id":"ccaa9e2b-3d64-40fc-85e3-db8852ffe835","savedPayload":{"position":{"x":30240.483214308824,"y":15974.451048843557},"targetPosition":{"x":30434.7178074004,"y":16285.266191435287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"008d9794-b703-4e95-90a5-4be6541257b5","savedPayload":{"position":{"x":30434.7178074004,"y":16285.266191435287},"targetPosition":{"x":30629.000411499663,"y":16596.126036347945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Algorithm Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.algorithmName","project":"Superalgos","id":"cb7fe638-c8c1-4017-91c5-332f2a42d411","savedPayload":{"position":{"x":30476.58081757693,"y":15879.056511468467},"targetPosition":{"x":30552.793091137486,"y":16237.570480881343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"233fcc31-94fb-4a83-8010-a47b06aa0175","savedPayload":{"position":{"x":30552.793091137486,"y":16237.570480881343},"targetPosition":{"x":30629.000411499663,"y":16596.126036347945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Situation Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.situationName","project":"Superalgos","id":"b205501c-00a5-42a5-bfb1-e1d766474e9b","savedPayload":{"position":{"x":30730.62622988803,"y":15870.191245963144},"targetPosition":{"x":30679.86599606262,"y":16233.163591374232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ef885584-c0ad-42ab-af01-1507c16da1c1","savedPayload":{"position":{"x":30679.86599606262,"y":16233.163591374232},"targetPosition":{"x":30629.000411499663,"y":16596.126036347945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"43a37c5e-0519-4920-9c61-1c8e7ee35308","savedPayload":{"position":{"x":30942.79066174514,"y":15952.1506381209},"targetPosition":{"x":30801.04862179204,"y":16272.653462232083},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"64741d06-09d2-497f-ab50-f1a0d1eba4bd","savedPayload":{"position":{"x":30801.04862179204,"y":16272.653462232083},"targetPosition":{"x":30629.000411499663,"y":16596.126036347945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"12929733-5964-4948-877b-b1edda37162a","savedPayload":{"position":{"x":30992.858366293414,"y":17302.348440040394},"targetPosition":{"x":31276.052542265843,"y":17652.064122696032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Market Buy Order Stats","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Percentage Filled","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.percentageFilled","project":"Superalgos","id":"14e3004b-320d-4791-aa6e-3f0d872ec7ec","savedPayload":{"position":{"x":30705.128297557436,"y":16139.795108693856},"targetPosition":{"x":30847.788815595533,"y":16255.17339447765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0d50ad49-9842-4e0e-86fd-12c026ada170","savedPayload":{"position":{"x":30847.788815595533,"y":16255.17339447765},"targetPosition":{"x":31041.73658950063,"y":16411.920667398954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Actual Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.actualRate","project":"Superalgos","id":"8a56fba9-5ffc-4adf-8d6e-021fd4e5a43c","savedPayload":{"position":{"x":30986.064073732417,"y":15991.833594025653},"targetPosition":{"x":31015.463491405724,"y":16164.264696158949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d6c7e18a-79da-4aed-8fae-298e604e05d0","savedPayload":{"position":{"x":31015.463491405724,"y":16164.264696158949},"targetPosition":{"x":31041.73658950063,"y":16411.920667398954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"d7dd0006-3d9f-49c8-984a-07b9d5f0dc48","savedPayload":{"position":{"x":31292.19817873345,"y":16076.951138555823},"targetPosition":{"x":31177.285277384442,"y":16219.92856778971},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d411dc1c-83d7-4d2d-948e-c90f9e29121b","savedPayload":{"position":{"x":31177.285277384442,"y":16219.92856778971},"targetPosition":{"x":31041.73658950063,"y":16411.920667398954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"81a88e44-189c-44ec-9607-cb1e4de8baa1","savedPayload":{"position":{"x":31205.65703299774,"y":17207.60436942822},"targetPosition":{"x":31276.052542265843,"y":17652.064122696032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Market Buy Order Base Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInBaseAsset","project":"Superalgos","id":"d304ece3-18dc-4e5a-bc0e-1249258b184e","savedPayload":{"position":{"x":31254.286630177114,"y":16820.857474833123},"targetPosition":{"x":31345.80237486917,"y":17026.405202802707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8313aeb6-6167-45ca-a3ca-4dc22b7fa33a","savedPayload":{"position":{"x":31345.80237486917,"y":17026.405202802707},"targetPosition":{"x":31437.318119561227,"y":17231.95293077229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInBaseAsset","project":"Superalgos","id":"461ae1a5-1d20-451a-8852-13d56b5268fb","savedPayload":{"position":{"x":31598.583696856615,"y":16811.841738848554},"targetPosition":{"x":31517.95090820892,"y":17021.897334810423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"83d46c3b-27cb-4aa9-a358-2e156aeece00","savedPayload":{"position":{"x":31517.95090820892,"y":17021.897334810423},"targetPosition":{"x":31437.318119561227,"y":17231.95293077229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInBaseAsset","project":"Superalgos","id":"88cf9464-968d-4222-ac52-b8e4dc151e69","savedPayload":{"position":{"x":31848.413575500395,"y":17048.92144138818},"targetPosition":{"x":31642.86584753081,"y":17140.437186080235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"38227d86-ab39-4e74-8eb0-0cd44edf49eb","savedPayload":{"position":{"x":31642.86584753081,"y":17140.437186080235},"targetPosition":{"x":31437.318119561227,"y":17231.95293077229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"608a9068-7324-4f4c-8fdd-d9d8e42e26c6","savedPayload":{"position":{"x":31437.318119561227,"y":17231.95293077229},"targetPosition":{"x":31276.052542265843,"y":17652.064122696032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Market Buy Order Quoted Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInQuotedAsset","project":"Superalgos","id":"1b8818af-996e-4d6b-8a97-f4606714ee91","savedPayload":{"position":{"x":31672.806033391924,"y":16921.335093807884},"targetPosition":{"x":31649.287129156703,"y":17145.102520265744},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"56ca8980-8ba9-4e01-a040-cdf19c9ae7f5","savedPayload":{"position":{"x":31649.287129156703,"y":17145.102520265744},"targetPosition":{"x":31625.76822492148,"y":17368.869946723604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInQuotedAsset","project":"Superalgos","id":"82c2ea84-a616-47e6-920b-1e0804dd20ed","savedPayload":{"position":{"x":31975.48390757712,"y":17085.675770751175},"targetPosition":{"x":31800.6260662493,"y":17227.27285873739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"913a187b-5504-4b85-a382-8f74726a54f4","savedPayload":{"position":{"x":31800.6260662493,"y":17227.27285873739},"targetPosition":{"x":31625.76822492148,"y":17368.869946723604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInQuotedAsset","project":"Superalgos","id":"a337b247-237b-41f8-93a3-3f5a964ae63a","savedPayload":{"position":{"x":32073.3030778372,"y":17415.907755194046},"targetPosition":{"x":31849.53565137934,"y":17392.388850958825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"040ea111-a7a0-453c-9c65-d731c846324f","savedPayload":{"position":{"x":31849.53565137934,"y":17392.388850958825},"targetPosition":{"x":31625.76822492148,"y":17368.869946723604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1a55af5e-821d-4421-80d2-2c543d25ea1a","savedPayload":{"position":{"x":31625.76822492148,"y":17368.869946723604},"targetPosition":{"x":31276.052542265843,"y":17652.064122696032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e00fe7d4-894d-4483-a73a-3cd77943ea80","savedPayload":{"position":{"x":31276.052542265843,"y":17652.064122696032},"targetPosition":{"x":31346.448051533946,"y":18096.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Market Sell Orders","config":"{ \n \"codeName\": \"Market-Sell-Orders\", \n \"icon\": \"trend\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"actualRate\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"df7ab0aa-4814-411b-a2f6-9594f67c7b41","savedPayload":{"position":{"x":30657.597568162055,"y":17410.44670153837},"targetPosition":{"x":30871.585284328463,"y":17340.917877804008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"788a8d38-a7f8-4e9f-aa91-0d73d83967ba","savedPayload":{"position":{"x":30871.585284328463,"y":17340.917877804008},"targetPosition":{"x":31085.57300049487,"y":17271.389054069645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"464d3c72-0056-48b0-b044-9131f136797f","savedPayload":{"position":{"x":30751.157829030046,"y":16970.280281208157},"targetPosition":{"x":30918.36541476246,"y":17120.8346676389},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5c7415c1-6a1d-4838-8587-6883c11724b4","savedPayload":{"position":{"x":30918.36541476246,"y":17120.8346676389},"targetPosition":{"x":31085.57300049487,"y":17271.389054069645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2e23d19b-466f-485b-b61d-ded90fa7b221","savedPayload":{"position":{"x":31085.57300049487,"y":17271.389054069645},"targetPosition":{"x":31305.656210659978,"y":17318.16918450364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"New Polygon","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"fc7ced4a-bcf0-4c18-9e3b-959e7cac59f6","savedPayload":{"position":{"x":30742.946007451385,"y":17035.90804584793},"targetPosition":{"x":30963.02921761649,"y":17082.688176281925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"10637dce-3cba-4c02-9561-da3ec43bdf0c","savedPayload":{"position":{"x":30963.02921761649,"y":17082.688176281925},"targetPosition":{"x":31183.112427781598,"y":17129.46830671592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"210399d5-7817-4136-b2bf-59bc5b5c4eb6","savedPayload":{"position":{"x":31060.56864490322,"y":16940.7674289282},"targetPosition":{"x":31183.112427781598,"y":17129.46830671592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"788a8d38-a7f8-4e9f-aa91-0d73d83967ba"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"912ac4dc-6acb-4097-84e9-cf3d72060597","savedPayload":{"position":{"x":31229.892558215593,"y":16909.385096550814},"targetPosition":{"x":31183.112427781598,"y":17129.46830671592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"5c7415c1-6a1d-4838-8587-6883c11724b4"}}}],"id":"5b8dcb5c-6b20-4edf-aae5-1c526cdca536","savedPayload":{"position":{"x":31183.112427781598,"y":17129.46830671592},"targetPosition":{"x":31305.656210659978,"y":17318.16918450364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"bullet-market-sell-order\", \n\"size\": 20\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin","config":"{ \n\"offsetX\": 10,\n \"offsetY\": 0\n }","project":"Superalgos","id":"5321e00c-41b9-42a6-8e9a-e84067288a6a","savedPayload":{"position":{"x":31375.82640631097,"y":16988.044369255982},"targetPosition":{"x":31352.436341093973,"y":17098.085974338534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"788a8d38-a7f8-4e9f-aa91-0d73d83967ba"}}},"id":"8ad2d152-57e7-4db6-b810-44bb870c46e2","savedPayload":{"position":{"x":31352.436341093973,"y":17098.085974338534},"targetPosition":{"x":31305.656210659978,"y":17318.16918450364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"c24bfe41-ef93-4f0a-8c96-843536c85a2f","savedPayload":{"position":{"x":31305.656210659978,"y":17318.16918450364},"targetPosition":{"x":31550.74377641674,"y":17695.57094007908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Market Sell Order","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"3beb54d7-d0a4-499e-becc-22691e15a292","savedPayload":{"position":{"x":31351.345931743894,"y":17079.73185565667},"targetPosition":{"x":31691.130466249073,"y":16942.519841935795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b1093c73-8eac-4291-a67f-7e4d546a914b","savedPayload":{"position":{"x":31691.130466249073,"y":16942.519841935795},"targetPosition":{"x":32030.914654352695,"y":16805.067375172966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.rate","project":"Superalgos","id":"08be12d1-b8cd-4ab1-affe-008e4a6c2c17","savedPayload":{"position":{"x":31298.242092094082,"y":16830.510407991937},"targetPosition":{"x":31664.53801993205,"y":16817.83611948075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"18550807-aa68-4b52-83c6-e16a44beb9f6","savedPayload":{"position":{"x":31664.53801993205,"y":16817.83611948075},"targetPosition":{"x":32030.914654352695,"y":16805.067375172966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"917325b0-e9a2-428c-b291-34f6a4a462ed","savedPayload":{"position":{"x":31333.632881154474,"y":16578.687600263172},"targetPosition":{"x":31682.228079451364,"y":16691.89096279643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f6b71a6b-982d-4b61-9693-bbda2cb5abac","savedPayload":{"position":{"x":31682.228079451364,"y":16691.89096279643},"targetPosition":{"x":32030.914654352695,"y":16805.067375172966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"71213f89-f5d2-4946-a100-dd141090ea0c","savedPayload":{"position":{"x":31453.163273980488,"y":16353.807870601104},"targetPosition":{"x":31741.99921030561,"y":16579.42768700438},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9dca5f8f-c6c8-475f-ad85-96975552fb12","savedPayload":{"position":{"x":31741.99921030561,"y":16579.42768700438},"targetPosition":{"x":32030.914654352695,"y":16805.067375172966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Order Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.orderName","project":"Superalgos","id":"24ab5826-f6bb-4ca7-b720-2fbd7a7a142c","savedPayload":{"position":{"x":31642.397457161856,"y":16183.39238766858},"targetPosition":{"x":31836.632050253433,"y":16494.207530260308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2af2f91f-8198-4be6-9ff6-f2fa525573b8","savedPayload":{"position":{"x":31836.632050253433,"y":16494.207530260308},"targetPosition":{"x":32030.914654352695,"y":16805.067375172966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Algorithm Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.algorithmName","project":"Superalgos","id":"a48449db-1def-49af-8210-c06704e34cc9","savedPayload":{"position":{"x":31878.495060429963,"y":16087.997850293486},"targetPosition":{"x":31954.70733399052,"y":16446.511819706364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9b58e3d6-c336-4193-adf4-305640812adf","savedPayload":{"position":{"x":31954.70733399052,"y":16446.511819706364},"targetPosition":{"x":32030.914654352695,"y":16805.067375172966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Situation Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.situationName","project":"Superalgos","id":"e0490e8b-a1f0-463e-808e-d5d4e34b6880","savedPayload":{"position":{"x":32132.54047274106,"y":16079.132584788165},"targetPosition":{"x":32081.780238915653,"y":16442.104930199253},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e865f45c-813d-43c6-861d-bacdf4b90b7d","savedPayload":{"position":{"x":32081.780238915653,"y":16442.104930199253},"targetPosition":{"x":32030.914654352695,"y":16805.067375172966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"f43b14f3-f74f-44fc-9901-a3928fc38cdf","savedPayload":{"position":{"x":32344.704904598173,"y":16161.091976945921},"targetPosition":{"x":32202.962864645073,"y":16481.594801057105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7b13f0e5-8cd7-48e7-b743-2fbf89ae2029","savedPayload":{"position":{"x":32202.962864645073,"y":16481.594801057105},"targetPosition":{"x":32030.914654352695,"y":16805.067375172966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a5856620-e9ce-4ee1-830c-5b5dc45e9139","savedPayload":{"position":{"x":31527.192596107416,"y":17246.187649439522},"targetPosition":{"x":31550.74377641674,"y":17695.57094007908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Market Sell Order Stats","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Percentage Filled","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.percentageFilled","project":"Superalgos","id":"f5522236-9f5c-4fdb-b08d-2e4946abc2e3","savedPayload":{"position":{"x":31773.731959275552,"y":16673.049006504796},"targetPosition":{"x":31916.39247731365,"y":16788.42729228859},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2c7e8609-e799-4098-adfe-0a7b75ccb263","savedPayload":{"position":{"x":31916.39247731365,"y":16788.42729228859},"targetPosition":{"x":32110.340251218746,"y":16945.174565209894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Actual Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.actualRate","project":"Superalgos","id":"c6fe3736-eb2b-4750-b7f0-72ae5ff7d713","savedPayload":{"position":{"x":32054.667735450534,"y":16525.087491836595},"targetPosition":{"x":32084.06715312384,"y":16697.51859396989},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ffc9a08a-8c74-4c50-a441-3f59296079b3","savedPayload":{"position":{"x":32084.06715312384,"y":16697.51859396989},"targetPosition":{"x":32110.340251218746,"y":16945.174565209894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"8636289b-9bd2-4026-a816-e1f75abf64bb","savedPayload":{"position":{"x":32360.801840451568,"y":16610.205036366766},"targetPosition":{"x":32245.88893910256,"y":16753.18246560065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c54f0f59-b80f-4f72-bd85-ac1fd7a15b19","savedPayload":{"position":{"x":32245.88893910256,"y":16753.18246560065},"targetPosition":{"x":32110.340251218746,"y":16945.174565209894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fb23f6bb-8383-4276-8a77-5180e622653a","savedPayload":{"position":{"x":31755.039501299536,"y":17294.618004194315},"targetPosition":{"x":31550.74377641674,"y":17695.57094007908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Market Sell Order Base Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInBaseAsset","project":"Superalgos","id":"44fa5bfe-9b0b-48a9-a894-ddec881a6ad4","savedPayload":{"position":{"x":32021.70579286017,"y":17010.316953992104},"targetPosition":{"x":31974.925662426176,"y":17230.40016415721},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4498020e-77ee-4e27-9e10-9e463b1af7e6","savedPayload":{"position":{"x":31974.925662426176,"y":17230.40016415721},"targetPosition":{"x":31928.14553199218,"y":17450.483374322317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInBaseAsset","project":"Superalgos","id":"6e97ae4f-f7e2-4391-bae7-87ae36c4abd0","savedPayload":{"position":{"x":32305.54728756762,"y":17205.395808565558},"targetPosition":{"x":32116.8464097799,"y":17327.939591443937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dc0870d0-d0f2-42d2-aaef-5d7dda44618d","savedPayload":{"position":{"x":32116.8464097799,"y":17327.939591443937},"targetPosition":{"x":31928.14553199218,"y":17450.483374322317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInBaseAsset","project":"Superalgos","id":"05ae1a21-206b-4e53-b52d-b00917748c2a","savedPayload":{"position":{"x":32368.311952322394,"y":17544.043635190308},"targetPosition":{"x":32148.228742157287,"y":17497.263504756313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"93694e2d-8e12-4bd3-9497-2489aa33caca","savedPayload":{"position":{"x":32148.228742157287,"y":17497.263504756313},"targetPosition":{"x":31928.14553199218,"y":17450.483374322317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3e9e4e57-bd41-41f5-8d52-c92d3a707e80","savedPayload":{"position":{"x":31928.14553199218,"y":17450.483374322317},"targetPosition":{"x":31550.74377641674,"y":17695.57094007908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Market Sell Order Quoted Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInQuotedAsset","project":"Superalgos","id":"394b6e9b-ee43-4cb9-8b7d-fef145bd8846","savedPayload":{"position":{"x":32301.235839917787,"y":17337.60458830493},"targetPosition":{"x":32150.681453487043,"y":17504.812174037343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"50b03be9-48dc-42db-8f6c-b9bac7d96276","savedPayload":{"position":{"x":32150.681453487043,"y":17504.812174037343},"targetPosition":{"x":32000.1270670563,"y":17672.019759769755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInQuotedAsset","project":"Superalgos","id":"34bd06ab-2d1e-4c03-9279-2fef1663d0a3","savedPayload":{"position":{"x":32449.510357695854,"y":17648.46857946043},"targetPosition":{"x":32224.818712376076,"y":17660.244169615093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5685f2bc-a91c-4e84-92ee-8dfe2bacd4a2","savedPayload":{"position":{"x":32224.818712376076,"y":17660.244169615093},"targetPosition":{"x":32000.1270670563,"y":17672.019759769755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInQuotedAsset","project":"Superalgos","id":"b63f1a7f-cbf8-4060-a74f-a2c624f3673f","savedPayload":{"position":{"x":32334.542238521124,"y":17973.128532631243},"targetPosition":{"x":32167.33465278871,"y":17822.5741462005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"28b9cc5b-898f-4cd6-87e9-5a8233362e88","savedPayload":{"position":{"x":32167.33465278871,"y":17822.5741462005},"targetPosition":{"x":32000.1270670563,"y":17672.019759769755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51d59c30-3a02-4d74-aa62-f1524ea544ee","savedPayload":{"position":{"x":32000.1270670563,"y":17672.019759769755},"targetPosition":{"x":31550.74377641674,"y":17695.57094007908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a9811005-1b7d-45bb-8003-0e60caab5f09","savedPayload":{"position":{"x":31550.74377641674,"y":17695.57094007908},"targetPosition":{"x":31346.448051533946,"y":18096.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Limit Buy Orders","config":"{\n \"codeName\": \"Market-Buy-Orders\",\n \"icon\": \"trend\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"actualRate\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"94f80738-6b21-4e8d-8bdf-aa8ef6f8ad4f","savedPayload":{"position":{"x":30814.408161808948,"y":16949.846740241715},"targetPosition":{"x":31146.256693111784,"y":17011.351230095315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"491e71de-b648-48aa-b493-67ed00359e73","savedPayload":{"position":{"x":31146.256693111784,"y":17011.351230095315},"targetPosition":{"x":31478.10522441462,"y":17072.855719948915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"57bd54ae-96c8-4d10-bd6d-adf3d705e47e","savedPayload":{"position":{"x":30964.8311976346,"y":16634.47828732604},"targetPosition":{"x":31221.46821102461,"y":16853.667003637478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"38fccc9b-d822-4598-a156-95c734ec3d6b","savedPayload":{"position":{"x":31221.46821102461,"y":16853.667003637478},"targetPosition":{"x":31478.10522441462,"y":17072.855719948915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8901df44-b813-47f3-8ded-4e1f6c68ae8b","savedPayload":{"position":{"x":31478.10522441462,"y":17072.855719948915},"targetPosition":{"x":31782.727757882698,"y":17218.153215121714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Status Open","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"bbbba1d8-fbf6-4e15-a4e7-edb6683dd74f","savedPayload":{"position":{"x":31241.81278429378,"y":16846.392653551553},"targetPosition":{"x":31556.896178236584,"y":16967.341836523094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [2,2]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"fa856a62-67b2-45b5-a186-a6538b220858","savedPayload":{"position":{"x":31032.32265425313,"y":16542.55057256445},"targetPosition":{"x":31294.609416244857,"y":16754.946204543772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bb28a0e6-1cb3-4138-95f0-069745242288","savedPayload":{"position":{"x":31294.609416244857,"y":16754.946204543772},"targetPosition":{"x":31556.896178236584,"y":16967.341836523094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"c4de49da-cd9d-4687-b08b-93f8bba1d454","savedPayload":{"position":{"x":31373.080503919013,"y":16684.290519841514},"targetPosition":{"x":31556.896178236584,"y":16967.341836523094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"491e71de-b648-48aa-b493-67ed00359e73"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"7b269f5c-62d2-4f58-a010-71f1179a3312","savedPayload":{"position":{"x":31469.544750514484,"y":16641.341870150532},"targetPosition":{"x":31556.896178236584,"y":16967.341836523094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"38fccc9b-d822-4598-a156-95c734ec3d6b"}}}],"id":"7be8ba85-07e7-4800-8988-ce76d2105b73","savedPayload":{"position":{"x":31556.896178236584,"y":16967.341836523094},"targetPosition":{"x":31782.727757882698,"y":17218.153215121714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Status Closed Cancel Event","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed' && record.exitType === 'Cancel Event'","project":"Superalgos","id":"754cb109-361e-4b50-964a-0b5ef0ba4b70","savedPayload":{"position":{"x":31425.25409267465,"y":16667.692042581464},"targetPosition":{"x":31670.0679428913,"y":16900.011711878105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [4,4]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"6cae8828-961f-4184-b324-453570bf247e","savedPayload":{"position":{"x":31347.985779716066,"y":16306.810160831279},"targetPosition":{"x":31509.026861303682,"y":16603.410936354692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bd024ea0-0641-43fe-8d01-63f23a7326cb","savedPayload":{"position":{"x":31509.026861303682,"y":16603.410936354692},"targetPosition":{"x":31670.0679428913,"y":16900.011711878105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"f05d7b53-3fba-4da7-91c2-154f4f2f92a2","savedPayload":{"position":{"x":31608.5634530377,"y":16568.16318057527},"targetPosition":{"x":31670.0679428913,"y":16900.011711878105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"491e71de-b648-48aa-b493-67ed00359e73"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"bc515a2b-68af-43a1-b0cb-036129122c87","savedPayload":{"position":{"x":31714.120532765566,"y":16565.399071164444},"targetPosition":{"x":31670.0679428913,"y":16900.011711878105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"38fccc9b-d822-4598-a156-95c734ec3d6b"}}}],"id":"ab881143-5631-4b27-a97a-94138dbd370d","savedPayload":{"position":{"x":31670.0679428913,"y":16900.011711878105},"targetPosition":{"x":31782.727757882698,"y":17218.153215121714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Status Closed Filled","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed' && record.exitType === 'Filled'","project":"Superalgos","id":"c206ef6f-d846-4744-b49d-c1261977a591","savedPayload":{"position":{"x":31663.11752607661,"y":16572.79415518767},"targetPosition":{"x":31800.39114311469,"y":16881.115747142045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"be3d2e3c-c973-421a-87d7-720472b42080","savedPayload":{"position":{"x":31729.834430409028,"y":16209.813467768457},"targetPosition":{"x":31765.11278676186,"y":16545.46460745525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"daebbf6b-f45b-40f5-8182-bd95d1a657e9","savedPayload":{"position":{"x":31765.11278676186,"y":16545.46460745525},"targetPosition":{"x":31800.39114311469,"y":16881.115747142045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"72d869ee-aa3b-4995-9832-7ab1b06579bf","savedPayload":{"position":{"x":31870.561338765685,"y":16550.990931894386},"targetPosition":{"x":31800.39114311469,"y":16881.115747142045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"491e71de-b648-48aa-b493-67ed00359e73"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"da73c5dc-926a-4368-9229-98574af7fec4","savedPayload":{"position":{"x":31969.14114311469,"y":16588.832173364797},"targetPosition":{"x":31800.39114311469,"y":16881.115747142045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"38fccc9b-d822-4598-a156-95c734ec3d6b"}}}],"id":"a54693cf-8ec1-469d-afb9-2a724e4f6af7","savedPayload":{"position":{"x":31800.39114311469,"y":16881.115747142045},"targetPosition":{"x":31782.727757882698,"y":17218.153215121714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"Status Closed Cancel Event","config":"{ \n\"codeName\": \"bullet-cancelled-order\", \n\"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.status === 'Closed' && record.exitType === 'Cancel Event'","project":"Superalgos","id":"9c3cb413-e20e-499b-ad72-de3ba1fc6543","savedPayload":{"position":{"x":31958.777497982297,"y":16747.606416002218},"targetPosition":{"x":31928.025253055497,"y":16913.530681653636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"End","config":"{ \n\"offsetX\": -5,\n \"offsetY\": 0\n }","project":"Superalgos","id":"b8016af3-22de-4a1b-b4cb-45a23b2928d5","savedPayload":{"position":{"x":32037.619611211216,"y":16785.21217495863},"targetPosition":{"x":31928.025253055497,"y":16913.530681653636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End","id":"38fccc9b-d822-4598-a156-95c734ec3d6b"}}},"id":"d562a270-c953-4ebe-9985-9f724e0e7eb6","savedPayload":{"position":{"x":31928.025253055497,"y":16913.530681653636},"targetPosition":{"x":31782.727757882698,"y":17218.153215121714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Starting Point","config":"{ \n\"codeName\": \"bullet-limit-buy-order\", \n\"size\": 20\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin","config":"{ \n\"offsetX\": 10,\n \"offsetY\": 0\n }","project":"Superalgos","id":"324aa438-7134-4918-b13e-082f3b3078dc","savedPayload":{"position":{"x":32158.94482578063,"y":16879.40584565254},"targetPosition":{"x":32033.53913648132,"y":16992.3216354756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"491e71de-b648-48aa-b493-67ed00359e73"}}},"id":"89fe166c-e48e-4a0c-b357-149ffa17f2c2","savedPayload":{"position":{"x":32033.53913648132,"y":16992.3216354756},"targetPosition":{"x":31782.727757882698,"y":17218.153215121714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Status Closed Filled","config":"{ \n\"codeName\": \"bullet-limit-buy-order-filled\", \n\"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.status === 'Closed' && record.exitType === 'Filled'","project":"Superalgos","id":"09ebd654-f653-467c-91f3-e8b9ec95feeb","savedPayload":{"position":{"x":32239.940555456273,"y":17009.91234764925},"targetPosition":{"x":32100.869261126307,"y":17105.493400130315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"End","config":"{ \n\"offsetX\": -10,\n \"offsetY\": 0\n }","project":"Superalgos","id":"a22c8598-870b-4d86-bb42-938cb21a5d28","savedPayload":{"position":{"x":32269.09906119377,"y":17092.253427726242},"targetPosition":{"x":32100.869261126307,"y":17105.493400130315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End","id":"38fccc9b-d822-4598-a156-95c734ec3d6b"}}},"id":"7c9a0ee3-b3f4-44c7-b51b-0efc830fd8d5","savedPayload":{"position":{"x":32100.869261126307,"y":17105.493400130315},"targetPosition":{"x":31782.727757882698,"y":17218.153215121714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"3ea3861e-f37d-4d78-a45e-9b5fa738aefd","savedPayload":{"position":{"x":31782.727757882698,"y":17218.153215121714},"targetPosition":{"x":31747.40098741871,"y":17892.22815108105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Limit Buy Order","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"5cec4759-6b80-42b0-9443-1b831b5b7d09","savedPayload":{"position":{"x":31920.5533705816,"y":16544.5586290509},"targetPosition":{"x":32111.81180915914,"y":16798.21833406556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b09e6f5e-9273-4e1c-a54a-43ce45bc6dd8","savedPayload":{"position":{"x":32111.81180915914,"y":16798.21833406556},"targetPosition":{"x":32391.95941348044,"y":17160.534866173944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.rate","project":"Superalgos","id":"f26cae34-697d-4ad2-a143-1693300d3311","savedPayload":{"position":{"x":32162.181824821913,"y":16418.314683063083},"targetPosition":{"x":32255.057319369153,"y":16722.353249834872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"387d66c8-900b-4e9d-8bc9-ea37b257256a","savedPayload":{"position":{"x":32255.057319369153,"y":16722.353249834872},"targetPosition":{"x":32391.95941348044,"y":17160.534866173944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"b6443228-7052-4e44-8338-44a3d2498ae0","savedPayload":{"position":{"x":32431.163990668363,"y":16383.990833913042},"targetPosition":{"x":32414.608118754695,"y":16701.597796862836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d6f79efe-1f80-4033-92a1-6869a7e9fb06","savedPayload":{"position":{"x":32414.608118754695,"y":16701.597796862836},"targetPosition":{"x":32391.95941348044,"y":17160.534866173944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"c448c5dc-5941-4bca-9328-79703fa9cabf","savedPayload":{"position":{"x":32695.423447324552,"y":16444.08584015999},"targetPosition":{"x":32570.975989428807,"y":16737.104568892166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5bdddc9e-d08c-4944-8add-a1c1753489b1","savedPayload":{"position":{"x":32570.975989428807,"y":16737.104568892166},"targetPosition":{"x":32391.95941348044,"y":17160.534866173944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Order Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.orderName","project":"Superalgos","id":"482dca74-9ba2-4a76-8101-fc24179e9299","savedPayload":{"position":{"x":32922.53567150205,"y":16591.42587379178},"targetPosition":{"x":32705.595611604607,"y":16823.871874208617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bc07d18f-6016-4959-ae36-efd2b9bd44f8","savedPayload":{"position":{"x":32705.595611604607,"y":16823.871874208617},"targetPosition":{"x":32391.95941348044,"y":17160.534866173944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Algorithm Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.algorithmName","project":"Superalgos","id":"7a0ad104-5485-4807-891e-2aa1b970020c","savedPayload":{"position":{"x":33085.68030574931,"y":16807.40342576631},"targetPosition":{"x":32801.95804840979,"y":16951.61825266136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b04fe3cd-9003-4a69-a49d-ad6eface3203","savedPayload":{"position":{"x":32801.95804840979,"y":16951.61825266136},"targetPosition":{"x":32391.95941348044,"y":17160.534866173944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Situation Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.situationName","project":"Superalgos","id":"cadd0d45-e81e-40fe-ac32-76bb35061bf2","savedPayload":{"position":{"x":33164.45408996675,"y":17066.24637666119},"targetPosition":{"x":32849.10159043561,"y":17104.547010601204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7239341a-6c4b-468a-bee8-21b27c2fa9d9","savedPayload":{"position":{"x":32849.10159043561,"y":17104.547010601204},"targetPosition":{"x":32391.95941348044,"y":17160.534866173944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"d62047f4-7a35-4249-8b91-ffcc53228417","savedPayload":{"position":{"x":33146.1307131645,"y":17346.53271587168},"targetPosition":{"x":32835.87627846659,"y":17274.127281557387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a34576ad-99d8-469e-8b78-1bacb5aa7ee2","savedPayload":{"position":{"x":32835.87627846659,"y":17274.127281557387},"targetPosition":{"x":32391.95941348044,"y":17160.534866173944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"48ec80a7-6f68-4284-9bb5-f04ce3c1052b","savedPayload":{"position":{"x":31992.488553175473,"y":17514.82639550561},"targetPosition":{"x":31747.40098741871,"y":17892.22815108105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Limit Buy Order Stats","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Percentage Filled","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.percentageFilled","project":"Superalgos","id":"bf5f428c-4b90-47d1-b001-8a3478e74522","savedPayload":{"position":{"x":32296.77696618509,"y":17093.242421542098},"targetPosition":{"x":32439.43748422319,"y":17208.620707325892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"94b4e199-d798-4ba3-8fc7-3d739ae55cb1","savedPayload":{"position":{"x":32439.43748422319,"y":17208.620707325892},"targetPosition":{"x":32633.385258128284,"y":17365.367980247196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Actual Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.actualRate","project":"Superalgos","id":"cf967a95-e485-4fbe-9647-4b86624511f3","savedPayload":{"position":{"x":32577.712742360072,"y":16945.280906873893},"targetPosition":{"x":32607.11216003338,"y":17117.71200900719},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bd576bff-fa79-4ea3-87b7-565a2877a7b7","savedPayload":{"position":{"x":32607.11216003338,"y":17117.71200900719},"targetPosition":{"x":32633.385258128284,"y":17365.367980247196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"c523a647-b720-4932-ae18-771cb70e3145","savedPayload":{"position":{"x":32883.84684736111,"y":17030.398451404064},"targetPosition":{"x":32768.9339460121,"y":17173.375880637952},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32b22d53-13c5-44db-941c-e29a4c1f05f7","savedPayload":{"position":{"x":32768.9339460121,"y":17173.375880637952},"targetPosition":{"x":32633.385258128284,"y":17365.367980247196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"90bd6690-de93-4158-a17f-728c28defc38","savedPayload":{"position":{"x":32148.353923303475,"y":17687.932426198255},"targetPosition":{"x":31747.40098741871,"y":17892.22815108105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Limit Buy Order Base Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInBaseAsset","project":"Superalgos","id":"50c5c78c-49ba-43c1-9000-dfb7a2890db5","savedPayload":{"position":{"x":33255.46000154309,"y":17207.91672763814},"targetPosition":{"x":33019.96086640919,"y":17419.928152854445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e60271d1-8ce8-47e1-9776-42b583c9f2d6","savedPayload":{"position":{"x":33019.96086640919,"y":17419.928152854445},"targetPosition":{"x":32680.633595377858,"y":17725.690992404077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInBaseAsset","project":"Superalgos","id":"65c1b916-6c36-4818-901a-7b6411c523b2","savedPayload":{"position":{"x":33453.53956549737,"y":17765.853164702963},"targetPosition":{"x":33135.79253272138,"y":17749.426002314525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"63d19192-c46d-4e53-bf40-c229089d93b6","savedPayload":{"position":{"x":33135.79253272138,"y":17749.426002314525},"targetPosition":{"x":32680.633595377858,"y":17725.690992404077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInBaseAsset","project":"Superalgos","id":"7a32b13c-7e88-48d1-9ef7-dee529f39c95","savedPayload":{"position":{"x":33198.61139160002,"y":18300.772028432173},"targetPosition":{"x":32986.08663743286,"y":18064.87803997692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b1a42210-66b9-4e3a-aef5-4b0f385bcfc8","savedPayload":{"position":{"x":32986.08663743286,"y":18064.87803997692},"targetPosition":{"x":32680.633595377858,"y":17725.690992404077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8504b6e3-83c8-45ea-959a-41303f9d4274","savedPayload":{"position":{"x":32196.78427805827,"y":17915.779331390375},"targetPosition":{"x":31747.40098741871,"y":17892.22815108105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Limit Buy Order Quoted Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInQuotedAsset","project":"Superalgos","id":"0b1e5b50-51c0-4753-b11f-37fe4179f81f","savedPayload":{"position":{"x":33336.93824453015,"y":17877.26518188183},"targetPosition":{"x":33025.116395845704,"y":17943.53411386934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d30de7e2-c899-49da-b015-95ca5ca26133","savedPayload":{"position":{"x":33025.116395845704,"y":17943.53411386934},"targetPosition":{"x":32579.20668510896,"y":18038.49153843837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInQuotedAsset","project":"Superalgos","id":"d6a5ced0-9c91-4d52-ad4a-ac544a917496","savedPayload":{"position":{"x":33228.56028241059,"y":18460.00324140938},"targetPosition":{"x":32961.9610168685,"y":18286.98127433638},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3c7ad592-3802-479f-9f03-c7f5d90aa827","savedPayload":{"position":{"x":32961.9610168685,"y":18286.98127433638},"targetPosition":{"x":32579.20668510896,"y":18038.49153843837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInQuotedAsset","project":"Superalgos","id":"7b5c11c3-8e14-4de1-9f05-46d958bac220","savedPayload":{"position":{"x":32740.15648243612,"y":18795.844543351202},"targetPosition":{"x":32673.9904869121,"y":18484.54402879816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d0862104-b7d8-42da-bc28-b4218d1cad2e","savedPayload":{"position":{"x":32673.9904869121,"y":18484.54402879816},"targetPosition":{"x":32579.20668510896,"y":18038.49153843837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b60e7e48-8ae7-4701-848b-8faa9ba58c11","savedPayload":{"position":{"x":32124.80274299415,"y":18137.315716837813},"targetPosition":{"x":31747.40098741871,"y":17892.22815108105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7e3120c7-a0c9-483c-ada9-8c53deb10f33","savedPayload":{"position":{"x":31747.40098741871,"y":17892.22815108105},"targetPosition":{"x":31346.448051533946,"y":18096.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Limit Sell Orders","config":"{ \n \"codeName\": \"Market-Sell-Orders\", \n \"icon\": \"trend\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"actualRate\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"7f75a437-7e83-43b8-8353-459cec82a3da","savedPayload":{"position":{"x":31590.0186485795,"y":16856.117385291785},"targetPosition":{"x":31822.33831787614,"y":17100.931235508433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d8a8ba4d-ceac-43f7-9cac-b15d3c577e0a","savedPayload":{"position":{"x":31822.33831787614,"y":17100.931235508433},"targetPosition":{"x":32054.65798717278,"y":17345.74508572508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"d69fedc3-dcb6-4b3a-a8a5-7db14d37f8da","savedPayload":{"position":{"x":31897.082366570045,"y":16689.39538945665},"targetPosition":{"x":31975.870176871413,"y":17017.570237590866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a7c33161-bd93-4a7d-9d79-d6e6c3f3b292","savedPayload":{"position":{"x":31975.870176871413,"y":17017.570237590866},"targetPosition":{"x":32054.65798717278,"y":17345.74508572508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"045c78e6-ddff-4981-b497-31d6d19f9ef1","savedPayload":{"position":{"x":32054.65798717278,"y":17345.74508572508},"targetPosition":{"x":32215.699068760397,"y":17642.345861248494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Status Open","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"5aeb9711-2374-4a99-b757-f037eb05db27","savedPayload":{"position":{"x":31996.605038089994,"y":17023.64340488012},"targetPosition":{"x":32180.420712407566,"y":17306.6947215617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [2,2]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"f829eef3-dc45-4244-934b-8955baa9a363","savedPayload":{"position":{"x":32005.717856963365,"y":16654.694788816578},"targetPosition":{"x":32093.069284685465,"y":16980.69475518914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"f24f885d-8cb5-4519-a209-9dccea0d7b32","savedPayload":{"position":{"x":32093.069284685465,"y":16980.69475518914},"targetPosition":{"x":32180.420712407566,"y":17306.6947215617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"4f668994-11ef-4a59-a41c-b238fb22c449","savedPayload":{"position":{"x":32198.08409763956,"y":16969.65725358203},"targetPosition":{"x":32180.420712407566,"y":17306.6947215617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"d8a8ba4d-ceac-43f7-9cac-b15d3c577e0a"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"95434555-e691-495e-ba26-d489c6356590","savedPayload":{"position":{"x":32301.369895379103,"y":16991.611327618895},"targetPosition":{"x":32180.420712407566,"y":17306.6947215617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"a7c33161-bd93-4a7d-9d79-d6e6c3f3b292"}}}],"id":"186d1b59-7d04-4b40-83c9-acc361b8a12a","savedPayload":{"position":{"x":32180.420712407566,"y":17306.6947215617},"targetPosition":{"x":32215.699068760397,"y":17642.345861248494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Status Closed Cancel Event","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed' && record.exitType === 'Cancel Event'","project":"Superalgos","id":"831bf4d8-74d0-4451-9ac1-74129aed4035","savedPayload":{"position":{"x":32250.04975774437,"y":16986.895669427642},"targetPosition":{"x":32311.55424759797,"y":17318.744200730478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [4,4]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"1981c910-838a-472d-bef0-df163a5ba786","savedPayload":{"position":{"x":32399.659427346505,"y":16649.518919303155},"targetPosition":{"x":32355.606837472238,"y":16984.131560016816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"34016ca1-5c63-4cad-8f9e-5f042f3ff604","savedPayload":{"position":{"x":32355.606837472238,"y":16984.131560016816},"targetPosition":{"x":32311.55424759797,"y":17318.744200730478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"bf1708a8-16c7-45fc-88c4-1ad7aace15ea","savedPayload":{"position":{"x":32456.85174277077,"y":17014.1216672624},"targetPosition":{"x":32311.55424759797,"y":17318.744200730478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"d8a8ba4d-ceac-43f7-9cac-b15d3c577e0a"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"db93470c-9f50-465c-b5f1-e222beb27f6c","savedPayload":{"position":{"x":32543.873916894612,"y":17073.93035051383},"targetPosition":{"x":32311.55424759797,"y":17318.744200730478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"a7c33161-bd93-4a7d-9d79-d6e6c3f3b292"}}}],"id":"8e993263-dbfc-4d41-864a-9470e70d7e4f","savedPayload":{"position":{"x":32311.55424759797,"y":17318.744200730478},"targetPosition":{"x":32215.699068760397,"y":17642.345861248494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Status Closed Filled","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed' && record.exitType === 'Filled'","project":"Superalgos","id":"efdea12d-4ac6-4fa1-819f-1de25267d9bc","savedPayload":{"position":{"x":32498.264896390712,"y":17049.93428400911},"targetPosition":{"x":32428.09470073972,"y":17380.059099256767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"753d66c8-8384-4ae0-bdae-8cfa0a3564b6","savedPayload":{"position":{"x":32765.59470073972,"y":16795.49195170227},"targetPosition":{"x":32596.84470073972,"y":17087.77552547952},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"decddc18-331d-4a58-bf36-02808c215d87","savedPayload":{"position":{"x":32596.84470073972,"y":17087.77552547952},"targetPosition":{"x":32428.09470073972,"y":17380.059099256767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"373ba1e5-fa16-405f-b4f2-4d2d3cea3acb","savedPayload":{"position":{"x":32678.90607933834,"y":17154.227519610653},"targetPosition":{"x":32428.09470073972,"y":17380.059099256767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"d8a8ba4d-ceac-43f7-9cac-b15d3c577e0a"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"b67222e6-6186-4e69-ad67-a3a6c5a89201","savedPayload":{"position":{"x":32736.416292694095,"y":17242.785482218686},"targetPosition":{"x":32428.09470073972,"y":17380.059099256767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"a7c33161-bd93-4a7d-9d79-d6e6c3f3b292"}}}],"id":"bf0751d6-fdb2-4e66-a39c-2bd99252bd60","savedPayload":{"position":{"x":32428.09470073972,"y":17380.059099256767},"targetPosition":{"x":32215.699068760397,"y":17642.345861248494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"Status Closed Cancel Event","config":"{ \n\"codeName\": \"bullet-cancelled-order\", \n\"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.status === 'Closed' && record.exitType === 'Cancel Event'","project":"Superalgos","id":"191dc665-7aaf-4aa6-8c8e-966ded042b38","savedPayload":{"position":{"x":32634.706769392134,"y":17365.144945012555},"targetPosition":{"x":32512.29984428381,"y":17481.304779660877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"End","config":"{ \n\"offsetX\": -5,\n \"offsetY\": 0\n }","project":"Superalgos","id":"ed6c3f2f-fa06-45f6-af44-7038503f9c5c","savedPayload":{"position":{"x":32676.387268350918,"y":17441.910874510195},"targetPosition":{"x":32512.29984428381,"y":17481.304779660877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End","id":"a7c33161-bd93-4a7d-9d79-d6e6c3f3b292"}}},"id":"5533709c-4ba8-4b2e-af48-827be2e1fe75","savedPayload":{"position":{"x":32512.29984428381,"y":17481.304779660877},"targetPosition":{"x":32215.699068760397,"y":17642.345861248494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Starting Point","config":"{ \n\"codeName\": \"bullet-limit-sell-order\", \n\"size\": 20\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin","config":"{ \n\"offsetX\": 10,\n \"offsetY\": 0\n }","project":"Superalgos","id":"8a78cf69-decb-4ab7-b182-f96676867972","savedPayload":{"position":{"x":32719.175778290588,"y":17589.428326719244},"targetPosition":{"x":32551.35020844719,"y":17607.067504895662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"d8a8ba4d-ceac-43f7-9cac-b15d3c577e0a"}}},"id":"5c00fd53-4ca0-4903-9b02-ccb5afd7df12","savedPayload":{"position":{"x":32551.35020844719,"y":17607.067504895662},"targetPosition":{"x":32215.699068760397,"y":17642.345861248494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Status Closed Filled","config":"{ \n\"codeName\": \"bullet-limit-sell-order-filled\", \n\"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.status === 'Closed' && record.exitType === 'Filled'","project":"Superalgos","id":"510f3cbf-b1ba-4a5f-9db3-b90c91c6c38b","savedPayload":{"position":{"x":32707.992902868038,"y":17742.61840011302},"targetPosition":{"x":32539.300729278413,"y":17738.201040086067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"End","config":"{ \n\"offsetX\": -10,\n \"offsetY\": 0\n }","project":"Superalgos","id":"5feb84a7-3898-4c30-87c9-40b3d141eb5e","savedPayload":{"position":{"x":32683.183757013165,"y":17826.372672881884},"targetPosition":{"x":32539.300729278413,"y":17738.201040086067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End","id":"a7c33161-bd93-4a7d-9d79-d6e6c3f3b292"}}},"id":"8564bc89-fb34-453f-8c5c-75459681cd7d","savedPayload":{"position":{"x":32539.300729278413,"y":17738.201040086067},"targetPosition":{"x":32215.699068760397,"y":17642.345861248494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"42719bff-262a-4401-9611-761f0db1e790","savedPayload":{"position":{"x":32215.699068760397,"y":17642.345861248494},"targetPosition":{"x":31790.907804801758,"y":18166.919385231948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Limit Sell Order","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"c5062c3f-117f-4c7f-8baf-1181e07c1f44","savedPayload":{"position":{"x":31690.91278864097,"y":18970.472226121125},"targetPosition":{"x":32030.69732314615,"y":18833.260212400248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2775824-cc6b-415a-a9a1-083a6f143c28","savedPayload":{"position":{"x":32030.69732314615,"y":18833.260212400248},"targetPosition":{"x":32370.48151124977,"y":18695.80774563742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.rate","project":"Superalgos","id":"f1a1e227-ac94-4216-a73a-8e1499532932","savedPayload":{"position":{"x":31637.808948991158,"y":18721.25077845639},"targetPosition":{"x":32004.104876829126,"y":18708.576489945204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9714ab0d-e1c1-4556-9467-d08f7cde214c","savedPayload":{"position":{"x":32004.104876829126,"y":18708.576489945204},"targetPosition":{"x":32370.48151124977,"y":18695.80774563742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"5a83a8c5-a25c-4489-8659-a2de66406218","savedPayload":{"position":{"x":31673.19973805155,"y":18469.427970727626},"targetPosition":{"x":32021.79493634844,"y":18582.631333260884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"86407d60-10e5-43bf-ab20-ef5aadee9b29","savedPayload":{"position":{"x":32021.79493634844,"y":18582.631333260884},"targetPosition":{"x":32370.48151124977,"y":18695.80774563742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"4471f450-8aa3-428e-a2d7-11ea1f32fbce","savedPayload":{"position":{"x":31792.730130877564,"y":18244.548241065557},"targetPosition":{"x":32081.566067202686,"y":18470.168057468833},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5d944f70-0ef5-423a-88da-ee0d5cdf73ee","savedPayload":{"position":{"x":32081.566067202686,"y":18470.168057468833},"targetPosition":{"x":32370.48151124977,"y":18695.80774563742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Order Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.orderName","project":"Superalgos","id":"dbf9a292-37f8-424e-800e-b479ae70f3de","savedPayload":{"position":{"x":31981.964314058932,"y":18074.13275813303},"targetPosition":{"x":32176.19890715051,"y":18384.94790072476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a268a651-1823-4ae5-b1d3-8bb325ca0ad7","savedPayload":{"position":{"x":32176.19890715051,"y":18384.94790072476},"targetPosition":{"x":32370.48151124977,"y":18695.80774563742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Algorithm Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.algorithmName","project":"Superalgos","id":"fc31dc8f-c014-43a2-b0e9-5885f0456011","savedPayload":{"position":{"x":32218.06191732704,"y":17978.73822075794},"targetPosition":{"x":32294.274190887594,"y":18337.252190170817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"09a1d252-4dd5-42f2-841a-0f9db2b2c1d4","savedPayload":{"position":{"x":32294.274190887594,"y":18337.252190170817},"targetPosition":{"x":32370.48151124977,"y":18695.80774563742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Situation Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.situationName","project":"Superalgos","id":"ec99ec3d-02cc-445e-9281-f17347a84fc9","savedPayload":{"position":{"x":32472.107329638136,"y":17969.872955252617},"targetPosition":{"x":32421.34709581273,"y":18332.845300663706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d9cee878-f71a-4829-8ce4-0debdc3833fa","savedPayload":{"position":{"x":32421.34709581273,"y":18332.845300663706},"targetPosition":{"x":32370.48151124977,"y":18695.80774563742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"55e5a5ee-fcbc-4ac0-ae44-4fc4ef2ca64f","savedPayload":{"position":{"x":32684.27176149525,"y":18051.832347410374},"targetPosition":{"x":32542.52972154215,"y":18372.335171521558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a08ab071-656a-4f19-8d63-694d32f88b83","savedPayload":{"position":{"x":32542.52972154215,"y":18372.335171521558},"targetPosition":{"x":32370.48151124977,"y":18695.80774563742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5d485d15-9919-42cc-9399-54c679d7085d","savedPayload":{"position":{"x":32211.0189967255,"y":18005.653807936564},"targetPosition":{"x":31790.907804801758,"y":18166.919385231948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Limit Sell Order Stats","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Percentage Filled","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.percentageFilled","project":"Superalgos","id":"e34fb8e5-a23a-461f-86b1-ee87aed3c3cf","savedPayload":{"position":{"x":33073.10499219001,"y":17931.97259335336},"targetPosition":{"x":32945.46223542257,"y":18025.374452328397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cc61478e-bfdb-439b-a55c-4238c8ba920a","savedPayload":{"position":{"x":32945.46223542257,"y":18025.374452328397},"targetPosition":{"x":32733.828223471788,"y":18180.500416925912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Actual Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.actualRate","project":"Superalgos","id":"ae5c666b-5001-479a-8d1f-2f00079e5585","savedPayload":{"position":{"x":33149.11346621645,"y":18245.449552689322},"targetPosition":{"x":32992.62401500721,"y":18221.246473435265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"172b26d5-66ca-4bcc-b453-e97fe8b0d06f","savedPayload":{"position":{"x":32992.62401500721,"y":18221.246473435265},"targetPosition":{"x":32733.828223471788,"y":18180.500416925912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"c119f6cb-3354-4c7f-9d75-a4027adbdc2d","savedPayload":{"position":{"x":32978.9136476797,"y":18522.04384345168},"targetPosition":{"x":32886.95898764985,"y":18393.098987131878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"906f7f52-dedc-4c67-a18c-e1be9e753c5b","savedPayload":{"position":{"x":32886.95898764985,"y":18393.098987131878},"targetPosition":{"x":32733.828223471788,"y":18180.500416925912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"db2f6e9c-ce79-4465-a0dc-8ea02fac26b7","savedPayload":{"position":{"x":32235.36755806957,"y":18237.31489450005},"targetPosition":{"x":31790.907804801758,"y":18166.919385231948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Limit Sell Order Base Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInBaseAsset","project":"Superalgos","id":"ace027c0-94cc-4f43-b7bc-5c845840b58f","savedPayload":{"position":{"x":33371.15123860251,"y":18400.79353605574},"targetPosition":{"x":33054.72651201669,"y":18433.650517706945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7bf8afbb-b802-4355-812c-2b9c2bf10a71","savedPayload":{"position":{"x":33054.72651201669,"y":18433.650517706945},"targetPosition":{"x":32601.394596310205,"y":18481.092724012575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInBaseAsset","project":"Superalgos","id":"2e2c5d6c-3539-498f-b2ca-a720877aa5a3","savedPayload":{"position":{"x":33202.78973831288,"y":18968.400270421607},"targetPosition":{"x":32955.84200843616,"y":18768.2998421176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a75fbc3b-400f-4246-8946-22b17df79b7e","savedPayload":{"position":{"x":32955.84200843616,"y":18768.2998421176},"targetPosition":{"x":32601.394596310205,"y":18481.092724012575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInBaseAsset","project":"Superalgos","id":"5d54cc4b-46d5-4931-a687-d62dc4764ca1","savedPayload":{"position":{"x":32682.207799075146,"y":19251.20813994384},"targetPosition":{"x":32649.073641529256,"y":18935.093685350803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a22de527-1426-4575-a7bc-cce1aaf9c28c","savedPayload":{"position":{"x":32649.073641529256,"y":18935.093685350803},"targetPosition":{"x":32601.394596310205,"y":18481.092724012575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3e34000e-ad8c-4049-9eee-89e8ea362a0f","savedPayload":{"position":{"x":32140.623487457397,"y":18450.113561204376},"targetPosition":{"x":31790.907804801758,"y":18166.919385231948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Limit Sell Order Quoted Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInQuotedAsset","project":"Superalgos","id":"8b27eaa0-3c2b-42ea-830a-dbec2b2ddf21","savedPayload":{"position":{"x":33042.62893512548,"y":18988.974268641305},"targetPosition":{"x":32752.423758498175,"y":18859.793800519237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ea964346-031e-4c3e-9e72-c644659cc7e0","savedPayload":{"position":{"x":32752.423758498175,"y":18859.793800519237},"targetPosition":{"x":32335.56384376706,"y":18674.334824247828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInQuotedAsset","project":"Superalgos","id":"b9d28a73-c3a6-4da6-b86b-19f524a02b8a","savedPayload":{"position":{"x":32612.91143510878,"y":19396.84008516096},"targetPosition":{"x":32498.818094031732,"y":19099.809387566285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b65033c3-ee30-48c1-9ce5-a517f4ec24f5","savedPayload":{"position":{"x":32498.818094031732,"y":19099.809387566285},"targetPosition":{"x":32335.56384376706,"y":18674.334824247828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInQuotedAsset","project":"Superalgos","id":"3b945002-5861-43c5-8cdd-835c6639acd6","savedPayload":{"position":{"x":32020.94711050992,"y":19381.978589746384},"targetPosition":{"x":32150.215056079014,"y":19091.10383845276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b57e89db-a5bc-4d67-86ab-acee68676d5f","savedPayload":{"position":{"x":32150.215056079014,"y":19091.10383845276},"targetPosition":{"x":32335.56384376706,"y":18674.334824247828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ae18b041-f16e-4d96-8a83-56845dddf64a","savedPayload":{"position":{"x":31952.173382097142,"y":18587.03057715569},"targetPosition":{"x":31790.907804801758,"y":18166.919385231948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fb243322-ec2a-4f03-bb77-e97e4699d1c6","savedPayload":{"position":{"x":31790.907804801758,"y":18166.919385231948},"targetPosition":{"x":31346.448051533946,"y":18096.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"93c15cbf-185a-4b59-b55f-847f437bb841","savedPayload":{"position":{"x":31351.448051533946,"y":18184.523875963845},"targetPosition":{"x":31033.25,"y":18502.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6a54eece-4582-4cda-a854-1cd805e00fed","savedPayload":{"position":{"x":31033.25,"y":18502.72192749779},"targetPosition":{"x":31033.25,"y":18502.72192749779},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Tutorial","name":"Hello World Tutorial","config":"{\n \"icon\": {\n \"name\": \"tutorial\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Welcome\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Look Around","config":"{\n \"icon\": {\n \"name\": \"layer\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Look around\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"0152006e-4690-4e9f-b7bc-c21ac94e3dfb","savedPayload":{"position":{"x":25271,"y":38541.94237886467},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Network","name":"My Network","id":"3c165071-7558-4708-9999-8ffe71d346b1"}}},{"type":"Tutorial Step","name":"Custom Data Mine ","config":"{\n \"icon\": {\n \"name\": \"data-mine\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Custom Data Mine\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"20739207-d5e6-4565-b23a-95f20f6b2cd1","savedPayload":{"position":{"x":25250.741668821305,"y":38650.31487872081},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Tutorial","name":"Hello World Tutorial","id":"eb530129-1a7c-4c52-881c-fbf2909cf174"}}},{"type":"Tutorial Step","name":"The Strategy","config":"{\n \"icon\": {\n \"name\": \"strategy\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Strategy\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"a2607fd9-54da-427e-b18a-5be361aef825","savedPayload":{"position":{"x":25192.702675166198,"y":38744.05107195863},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Tutorial","name":"Hello World Tutorial","id":"eb530129-1a7c-4c52-881c-fbf2909cf174"}}},{"type":"Tutorial Step","name":"Move to Trading System","config":"{\n \"icon\": {\n \"name\": \"trading-system-reference\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Trading System\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"efafbbda-10f1-4554-8621-b4e0d16064ac","savedPayload":{"position":{"x":25104.72150673296,"y":38810.491366271184},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Trading System","name":"Hello World Trading System","id":"828f4dd3-7564-4022-96e2-bb3ec5b52ede"}}},{"type":"Tutorial Step","name":"Trigger Stage","config":"{\n \"icon\": {\n \"name\": \"trigger-stage\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Trigger Stage\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"7de1fc71-3d58-4abc-a5d4-281e06b4c69d","savedPayload":{"position":{"x":24998.68050783899,"y":38840.66263175318},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Tutorial","name":"Hello World Tutorial","id":"eb530129-1a7c-4c52-881c-fbf2909cf174"}}},{"type":"Tutorial Step","name":"Trigger On","config":"{\n \"icon\": {\n \"name\": \"trigger-on\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Trigger On\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"6f185b22-2d68-44bb-a0b1-0b15dea873f8","savedPayload":{"position":{"x":24888.901102978376,"y":38830.490071816515},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Trigger On Event","name":"New Trigger On Event","id":"1daea4f0-6f2f-4aa3-bc75-39b86e70f63b"}}},{"type":"Tutorial Step","name":"Trigger Off","config":"{\n \"icon\": {\n \"name\": \"trigger-off\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Trigger Off\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"1c8ec144-21a9-412b-b791-2f092dadf967","savedPayload":{"position":{"x":24790.20960908622,"y":38781.34754704874},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Trigger Off Event","name":"New Trigger Off Event","id":"8cd9345d-9d26-4baa-900b-fef145444218"}}},{"type":"Tutorial Step","name":"Take Position","config":"{\n \"icon\": {\n \"name\": \"take-position\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Take Position\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"82b54ca9-5f89-4a13-93c5-5a6beefb6da2","savedPayload":{"position":{"x":24715.934859281115,"y":38699.87202772788},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Take Position Event","name":"New Take Position Event","id":"e6b6fbce-70b3-4aa8-bcc7-245330ee2c6c"}}},{"type":"Tutorial Step","name":"Open Stage","config":"{\n \"icon\": {\n \"name\": \"open-stage\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Open Stage\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"ecd5eda3-5a12-4725-b038-ba0bb350732b","savedPayload":{"position":{"x":24676.10807009483,"y":38597.06723420964},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Open Stage","name":"New Open Stage","id":"ec88dd85-34a0-41c9-8554-6f200951e6b1"}}},{"type":"Tutorial Step","name":"Manage Stage","config":"{\n \"icon\": {\n \"name\": \"manage-stage\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Manage Stage\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"64cca147-3c5e-4dde-a172-365e5fb3ab95","savedPayload":{"position":{"x":24676.10807009483,"y":38486.8175235197},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Manage Stage","name":"New Manage Stage","id":"e2fae940-f3da-47a6-bf76-b37c8d5e321e"}}},{"type":"Tutorial Step","name":"Close Stage","config":"{\n \"icon\": {\n \"name\": \"close-stage\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Close Stage\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"2993cf05-3ecb-45d7-9f43-b84cf93c5b02","savedPayload":{"position":{"x":24715.934859281115,"y":38384.01273000146},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Close Stage","name":"New Close Stage","id":"24a530bd-b539-4544-b159-ddd92c428220"}}},{"type":"Tutorial Step","name":"That's it","config":"{\n \"icon\": {\n \"name\": \"announcement\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - That's it\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"bd1438ec-d4e2-448a-b4a4-81f4e980227f","savedPayload":{"position":{"x":24790.20960908622,"y":38302.537210680595},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Tutorial","name":"Hello World Tutorial","id":"eb530129-1a7c-4c52-881c-fbf2909cf174"}}},{"type":"Tutorial Step","name":"Update Data Mines","config":"{\n \"icon\": {\n \"name\": \"data-tasks\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Update Data Mines\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"e6a225f4-b35a-4c68-bb51-db00b8b2f8f4","savedPayload":{"position":{"x":24888.901102978376,"y":38253.39468591282},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Market Data Tasks","name":"Binance BTC/USDT","id":"bb408449-c0d0-4ee3-96e4-2efd2018def7"}}},{"type":"Tutorial Step","name":"Backtest!","config":"{\n \"icon\": {\n \"name\": \"backtesting-session\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Backtest\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"39e4cfbf-8f3e-43a5-98e0-e0e61549c521","savedPayload":{"position":{"x":24998.68050783899,"y":38243.22212597616},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Trading Parameters","name":"New Trading Parameters","id":"85d5b9da-c460-4524-9559-e672af19d0e7"}}},{"type":"Tutorial Step","name":"Final Step","config":"{\n \"icon\": {\n \"name\": \"stop\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Final Step\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"b4a37231-8083-435a-95b2-8bd8227b3cf5","savedPayload":{"position":{"x":25104.72150673296,"y":38273.39339145815},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Testing Trading Tasks","name":"New Testing Trading Tasks","id":"8117db0a-e418-4f56-8fe4-fda2ddac1cbb"}}},{"type":"Tutorial Step","name":"The Chart","config":"{\n \"icon\": {\n \"name\": \"charting-space\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"repositionAtTimeMachineReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Chart\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"fe36de15-dc1c-46d4-a7a6-f9f9979be215","savedPayload":{"position":{"x":25192.702675166198,"y":38339.833685770696},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Time Machine","name":"Hello World Trading System Backtesting Session My Computer Binance BTC/USDT","id":"ae3cca29-d5d8-4869-9203-0ad91dd0cba9"}}},{"type":"Tutorial Step","name":"The End","config":"{\n \"icon\": {\n \"name\": \"hits\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The End\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"a50f45d4-340b-430d-977a-526f12aa5908","savedPayload":{"position":{"x":25250.741668821305,"y":38433.56987900852},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Network","name":"My Network","id":"3c165071-7558-4708-9999-8ffe71d346b1"}}}],"tutorialTopics":[],"id":"eb530129-1a7c-4c52-881c-fbf2909cf174","savedPayload":{"position":{"x":24971,"y":38541.94237886467},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isPlaying":false,"isRunning":false},"tutorial":{"status":"Done"}}}]} \ No newline at end of file +{"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-Period-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-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"Simple Moving Average (SMA) Multi-Period-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-Period-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":"fa7991b3-e23e-4c27-9baa-d51662826715","savedPayload":{"position":{"x":24564.356993272086,"y":29557.784483506297},"targetPosition":{"x":24639.356993272086,"y":29687.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Volumes","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"1e73261c-222e-4d46-8b5d-fb4443f8a9b9","savedPayload":{"position":{"x":24828.179850037464,"y":29282.99179899527},"targetPosition":{"x":24789.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":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"54027558-ce8c-41d1-a70f-42b13f7b8e0c","savedPayload":{"position":{"x":24895.423010450068,"y":29321.81465576065},"targetPosition":{"x":24789.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":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"c3f094c3-15ee-4546-983f-04503e987e86","savedPayload":{"position":{"x":24789.356993272086,"y":29427.88067293863},"targetPosition":{"x":24714.356993272086,"y":29557.784483506297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d5c7b9ba-a877-45bc-b642-cc881f87923a","savedPayload":{"position":{"x":24714.356993272086,"y":29557.784483506297},"targetPosition":{"x":24639.356993272086,"y":29687.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cc7a33e2-3e1e-4a4c-904e-3de0b123c0e4","savedPayload":{"position":{"x":24639.356993272086,"y":29687.688294073963},"targetPosition":{"x":24639.356993272086,"y":29837.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"822b2f4b-03a5-4d6b-9912-e24c250fe0fb","savedPayload":{"position":{"x":24639.356993272086,"y":29837.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":"Masters","id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959"}}}],"id":"bb408449-c0d0-4ee3-96e4-2efd2018def7","savedPayload":{"position":{"x":24639.356993272086,"y":29987.688294073963},"targetPosition":{"x":24789.356993272086,"y":30247.495915209296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"0668fe30-3275-4214-b03a-2cf839663a58","savedPayload":{"position":{"x":24789.356993272086,"y":30247.495915209296},"targetPosition":{"x":24939.356993272086,"y":30507.30353634463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"d7dbe5ba-e336-40e3-8020-16259555c674","savedPayload":{"position":{"x":24939.356993272086,"y":30507.30353634463},"targetPosition":{"x":25089.356993272086,"y":30767.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"40af91d9-431c-4b7d-addc-aed37bc2f3fe","savedPayload":{"position":{"x":25089.356993272086,"y":30767.11115747996},"targetPosition":{"x":25239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningTasks":{"type":"Learning Tasks","name":"New Learning Tasks","project":"Superalgos","projectLearningTasks":[{"type":"Project Learning Tasks","name":"Superalgos","project":"Superalgos","exchangeLearningTasks":[{"type":"Exchange Learning Tasks","name":"Binance","project":"Superalgos","marketLearningTasks":[{"type":"Market Learning Tasks","name":"Binance BTC/USDT","project":"Superalgos","learningMineTasks":[],"id":"99674aeb-c2be-4f0a-9730-a92d5e374042","savedPayload":{"position":{"x":25209.356993272086,"y":30823.11115747996},"targetPosition":{"x":25267.356993272086,"y":30739.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"f49b24c7-22b3-4ed8-b2cb-7e59c371a25b","savedPayload":{"position":{"x":25267.356993272086,"y":30739.11115747996},"targetPosition":{"x":25361.356993272086,"y":30800.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"ce5aa7fc-f28d-4b06-9183-59fcc8919004","savedPayload":{"position":{"x":25361.356993272086,"y":30800.11115747996},"targetPosition":{"x":25389.356993272086,"y":30767.11115747996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"0818dfbe-61ea-40b8-8544-bee25d7f45be","savedPayload":{"position":{"x":25389.356993272086,"y":30767.11115747996},"targetPosition":{"x":25239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"testingTradingTasks":{"type":"Testing Trading Tasks","name":"New Testing Trading Tasks","project":"Superalgos","projectTradingTasks":[{"type":"Project Trading Tasks","name":"Superalgos","project":"Superalgos","exchangeTradingTasks":[{"type":"Exchange Trading Tasks","name":"Binance","project":"Superalgos","marketTradingTasks":[{"type":"Market Trading Tasks","name":"Binance BTC/USDT","project":"Superalgos","tradingMineTasks":[{"type":"Trading Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Hello World Trading System","project":"Superalgos","bot":{"type":"Trading Bot Instance","name":"Low Frequency","project":"Superalgos","processes":[{"type":"Trading Process Instance","name":"Low Frequency Trading","project":"Superalgos","session":{"type":"Backtesting Session","name":"Hello World Trading System","config":"{\"folderName\":\"Hello-World-Trading-System\"}","project":"Superalgos","tradingParameters":{"type":"Trading Parameters","name":"New Trading Parameters","project":"Superalgos","sessionBaseAsset":{"type":"Session Base Asset","name":"","config":"{\n \"initialBalance\": 0\n}","project":"Superalgos","id":"7e2973d6-2d6c-4826-9835-82853d8d10bf","savedPayload":{"position":{"x":28315.291877706186,"y":30547.48478700282},"targetPosition":{"x":28451.48902762805,"y":30814.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sessionQuotedAsset":{"type":"Session Quoted Asset","name":"","config":"{\n \"initialBalance\": 1000\n}","project":"Superalgos","id":"69058658-5514-43e2-994a-268374d529a9","savedPayload":{"position":{"x":28404.55868811598,"y":30518.48024208079},"targetPosition":{"x":28451.48902762805,"y":30814.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"New Time Range","config":"{\n \"initialDatetime\": \"2020-02-01\",\n \"finalDatetime\": \"2099-12-31\"\n}","project":"Superalgos","id":"cfe24af2-2708-455c-b89c-d87179b3498a","savedPayload":{"position":{"x":28498.41936714012,"y":30518.48024208079},"targetPosition":{"x":28451.48902762805,"y":30814.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","config":"{\n \"label\": \"04-hs\"\n}","project":"Superalgos","id":"ab2d96a9-316a-4c12-9e7f-fc5d6d19b5d2","savedPayload":{"position":{"x":28587.686177549913,"y":30547.48478700282},"targetPosition":{"x":28451.48902762805,"y":30814.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","config":"{\n \"marketOrderRate\": 0,\n \"stopLoss\": 0,\n \"takeProfit\": 0\n}","project":"Superalgos","id":"f8929f3f-f478-4e07-acd9-aa10c082b78a","savedPayload":{"position":{"x":28663.621061984013,"y":30602.654709903367},"targetPosition":{"x":28451.48902762805,"y":30814.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","config":"{\n \"maker\": 0.1,\n \"taker\": 0.1\n}","project":"Superalgos","id":"853efa3c-1c68-4252-9a41-629ef26c4d77","savedPayload":{"position":{"x":28718.79098488456,"y":30678.589594337467},"targetPosition":{"x":28451.48902762805,"y":30814.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"snapshots":{"type":"Snapshots","name":"New Snapshots","config":"{ \n\"strategy\": true,\n\"position\": true\n}","project":"Superalgos","id":"e63e43c2-d90a-415a-828b-0004e29a8e12","savedPayload":{"position":{"x":28747.79552980659,"y":30767.85640474726},"targetPosition":{"x":28451.48902762805,"y":30814.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"heartbeats":{"type":"Heartbeats","name":"New Heartbeats","config":"{ \n\"date\": true,\n\"candleIndex\": false\n}","project":"Superalgos","id":"dcfe6570-0e02-4dc6-a009-db319bcaa363","savedPayload":{"position":{"x":28747.79552980659,"y":30861.7170837714},"targetPosition":{"x":28451.48902762805,"y":30814.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedParameters":{"type":"User Defined Parameters","name":"New User Defined Parameters","config":"{ \n\"param1Name\": \"A text string value example\",\n\"param2Name\": 0\n}","project":"Superalgos","id":"9c799ece-6fbd-4123-8fed-ce8652c17872","savedPayload":{"position":{"x":28718.79098488456,"y":30950.983894181194},"targetPosition":{"x":28451.48902762805,"y":30814.78674425933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"85d5b9da-c460-4524-9559-e672af19d0e7","savedPayload":{"position":{"x":28451.48902762805,"y":30814.78674425933},"targetPosition":{"x":28239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingSystemReference":{"type":"Trading System Reference","name":"Hello World Trading System","project":"Superalgos","id":"ba65703e-5f8e-4b73-a1cb-9868642c7381","savedPayload":{"position":{"x":28539.356993272086,"y":31026.918778615294},"targetPosition":{"x":28239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Hello World Trading System","id":"828f4dd3-7564-4022-96e2-bb3ec5b52ede"}}},"tradingEngineReference":{"type":"Trading Engine Reference","name":"Low-Frequency","project":"Superalgos","id":"779046ca-123c-435b-bc70-5c09cf238f3a","savedPayload":{"position":{"x":28451.48902762805,"y":31239.050812971258},"targetPosition":{"x":28239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Trading Engine","name":"Low-Frequency","id":"eb20f622-71bf-4479-a574-d2320e1d4bd1"}}},"id":"a81c54d1-e345-46f4-9dd4-07ec436bd1e5","savedPayload":{"position":{"x":28239.356993272086,"y":31026.918778615294},"targetPosition":{"x":27939.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6d2f25b6-da2c-4d68-856c-fab8f3df801f","savedPayload":{"position":{"x":27939.356993272086,"y":31026.918778615294},"targetPosition":{"x":27639.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Trading","id":"a8c8d761-96e5-4a86-9285-6c3881d61442"}}}],"id":"dbfa05e0-5d2a-479d-9b31-a497d6a95097","savedPayload":{"position":{"x":27639.356993272086,"y":31026.918778615294},"targetPosition":{"x":27339.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"34922933-f3e6-41e6-8267-89e400f4a3c8","savedPayload":{"position":{"x":27339.356993272086,"y":31026.918778615294},"targetPosition":{"x":27039.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aabdf9ff-7fcb-46de-9519-daa0b81a378e","savedPayload":{"position":{"x":27039.356993272086,"y":31026.918778615294},"targetPosition":{"x":26739.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"70445c02-6c39-4a07-a172-c3ee57e803a6","savedPayload":{"position":{"x":26739.356993272086,"y":31026.918778615294},"targetPosition":{"x":26439.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"0fea5f8f-ad4d-479c-b9a2-1ce6b18ae73b","savedPayload":{"position":{"x":26439.356993272086,"y":31026.918778615294},"targetPosition":{"x":26139.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"1b38e134-d6ae-458e-b196-8c0807d21718","savedPayload":{"position":{"x":26139.356993272086,"y":31026.918778615294},"targetPosition":{"x":25839.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"16431e3b-fa41-4143-a5f8-933dd206aafe","savedPayload":{"position":{"x":25839.356993272086,"y":31026.918778615294},"targetPosition":{"x":25539.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"8117db0a-e418-4f56-8fe4-fda2ddac1cbb","savedPayload":{"position":{"x":25539.356993272086,"y":31026.918778615294},"targetPosition":{"x":25239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"productionTradingTasks":{"type":"Production Trading Tasks","name":"New Production Trading Tasks","project":"Superalgos","projectTradingTasks":[{"type":"Project Trading Tasks","name":"Superalgos","project":"Superalgos","exchangeTradingTasks":[],"id":"ef199104-f999-4bf3-987f-fc59b5b8ac98","savedPayload":{"position":{"x":25539.356993272086,"y":31546.53402088596},"targetPosition":{"x":25389.356993272086,"y":31286.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"673caa5f-511d-4688-9305-e5f0f0f780cd","savedPayload":{"position":{"x":25389.356993272086,"y":31286.726399750627},"targetPosition":{"x":25239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataStorage":{"type":"Data Storage","name":"New Data Storage","project":"Superalgos","dataMinesData":{"type":"Data Mines Data","name":"New Data Mines Data","project":"Superalgos","projectDataProducts":[{"type":"Project Data Products","name":"Superalgos","project":"Superalgos","exchangeDataProducts":[{"type":"Exchange Data Products","name":"Binance","project":"Superalgos","marketDataProducts":[{"type":"Market Data Products","name":"Binance BTC/USDT","project":"Superalgos","dataProducts":[],"dataMineProducts":[{"type":"Data Mine Products","name":"Sparta","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"Simple Moving Average (SMA)","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Popular SMAs","project":"Superalgos","id":"6ddb2ba7-5caf-43c0-989f-9ce1bebd2cfd","savedPayload":{"position":{"x":25181.19913560607,"y":31757.15985816277},"targetPosition":{"x":25138.19913560607,"y":31663.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular SMAs","id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34"}}},{"type":"Data Product","name":"Base7 SMAs","project":"Superalgos","id":"baf7de68-a10f-4a20-b6cf-d087b8ac1f4c","savedPayload":{"position":{"x":25069.19913560607,"y":31636.15985816277},"targetPosition":{"x":25138.19913560607,"y":31663.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 SMAs","id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6"}}},{"type":"Data Product","name":"Base11 SMAs","project":"Superalgos","id":"f65cacd5-38dd-4027-9afe-474e702562b0","savedPayload":{"position":{"x":25104.19913560607,"y":31673.15985816277},"targetPosition":{"x":25138.19913560607,"y":31663.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 SMAs","id":"05fabbf9-7798-4a53-995e-53ae74bef3de"}}},{"type":"Data Product","name":"Base5 SMAs","project":"Superalgos","id":"24f5e2e3-80e6-4235-827a-df806c29de60","savedPayload":{"position":{"x":25157.19913560607,"y":31643.15985816277},"targetPosition":{"x":25138.19913560607,"y":31663.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base5 SMAs","id":"2dcb55de-1673-409e-aa52-f51e7c7f8fa3"}}},{"type":"Data Product","name":"Base6 SMAs","project":"Superalgos","id":"7a8425c8-21b3-419d-b4c9-da45bf7310f1","savedPayload":{"position":{"x":25170.19913560607,"y":31596.15985816277},"targetPosition":{"x":25138.19913560607,"y":31663.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base6 SMAs","id":"4ae22e54-cd02-4e2e-b638-1c5ea9a171ac"}}},{"type":"Data Product","name":"Base12 SMAs","project":"Superalgos","id":"9569a7a7-6d46-4750-9399-1f5fe236de6a","savedPayload":{"position":{"x":25215.19913560607,"y":31740.15985816277},"targetPosition":{"x":25138.19913560607,"y":31663.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base12 SMAs","id":"723d28e9-a010-48c5-bda0-43a4c2343ddf"}}},{"type":"Data Product","name":"Base30 SMAs","project":"Superalgos","id":"04fbe4ba-f1eb-47ee-a6af-6134aee51719","savedPayload":{"position":{"x":25038.19913560607,"y":31642.15985816277},"targetPosition":{"x":25138.19913560607,"y":31663.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base30 SMAs","id":"607ebabd-9602-4e5c-803d-d4207dbd6794"}}}],"dataProductFolders":[],"id":"c95a8960-ac28-4cde-a167-fc63ae2d95bd","savedPayload":{"position":{"x":25138.19913560607,"y":31663.15985816277},"targetPosition":{"x":25159.19913560607,"y":31695.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c7be79d8-0871-44d4-8445-c02b602b399a","savedPayload":{"position":{"x":25159.19913560607,"y":31695.15985816277},"targetPosition":{"x":25250.19913560607,"y":31632.15985816277},"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 Products","name":"Masters","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"Exchange Raw Data","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Candles","project":"Superalgos","id":"916ca8d7-52f6-43da-aae6-6dcf94744dfb","savedPayload":{"position":{"x":25307.19913560607,"y":31513.15985816277},"targetPosition":{"x":25300.19913560607,"y":31562.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles","id":"2443883b-6959-42a3-ae3b-ef3102ffcdcc"}}},{"type":"Data Product","name":"Volumes","project":"Superalgos","id":"388fb5e4-41bf-4903-a67d-6a82c7f7a879","savedPayload":{"position":{"x":25368.19913560607,"y":31523.15985816277},"targetPosition":{"x":25300.19913560607,"y":31562.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"3a43c6f3-bac0-404e-865f-822eb48c8660"}}}],"dataProductFolders":[],"id":"34f9c4fd-97e2-4ed6-8b24-da3b265f960b","savedPayload":{"position":{"x":25300.19913560607,"y":31562.15985816277},"targetPosition":{"x":25328.19913560607,"y":31608.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Products","name":"Webhooks","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"External Signals","project":"Superalgos","id":"2ebe28e3-c2a4-4b93-a4d0-727dbc729b75","savedPayload":{"position":{"x":25295.19913560607,"y":31621.15985816277},"targetPosition":{"x":25380.19913560607,"y":31544.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"External Signals","id":"29196db8-4c41-47ea-be7e-952cd9be9a0b"}}}],"dataProductFolders":[],"id":"2906fb77-54fb-4d4e-8ca7-7219b74aef5b","savedPayload":{"position":{"x":25380.19913560607,"y":31544.15985816277},"targetPosition":{"x":25328.19913560607,"y":31608.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Products","name":"Candles Volumes","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Candles","project":"Superalgos","id":"d90925c5-c2be-4437-b337-e9353d57669b","savedPayload":{"position":{"x":25279.19913560607,"y":31697.15985816277},"targetPosition":{"x":25280.19913560607,"y":31614.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","project":"Superalgos","id":"bde169a8-e0a3-44dd-adba-853c89295bde","savedPayload":{"position":{"x":25264.19913560607,"y":31641.15985816277},"targetPosition":{"x":25280.19913560607,"y":31614.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}}],"dataProductFolders":[],"id":"82182ba1-362a-4229-8b8c-7cf208c97f51","savedPayload":{"position":{"x":25280.19913560607,"y":31614.15985816277},"targetPosition":{"x":25328.19913560607,"y":31608.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"45f36208-7796-446e-8e2e-4f4ba67ff697","savedPayload":{"position":{"x":25328.19913560607,"y":31608.15985816277},"targetPosition":{"x":25250.19913560607,"y":31632.15985816277},"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"}}}],"id":"d6acdb4a-dcdd-46b9-aa8e-b7a831f5d896","savedPayload":{"position":{"x":24932.72556260803,"y":32476.460233399197},"targetPosition":{"x":24971.883420274044,"y":32179.026774987055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"4a08ed54-2985-456d-aeb2-ec608b15a065","savedPayload":{"position":{"x":24971.883420274044,"y":32179.026774987055},"targetPosition":{"x":25011.041277940058,"y":31881.593316574912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"e3de3b84-5782-4936-9440-a6063ba7bbc2","savedPayload":{"position":{"x":25011.041277940058,"y":31881.593316574912},"targetPosition":{"x":25050.19913560607,"y":31584.15985816277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"32e7c122-fa5a-4d00-9d71-d54e890e32de","savedPayload":{"position":{"x":25050.19913560607,"y":31584.15985816277},"targetPosition":{"x":25089.356993272086,"y":31286.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingMinesData":{"type":"Trading Mines Data","name":"New Trading Mines Data","project":"Superalgos","projectTradingProducts":[{"type":"Project Trading Products","name":"Superalgos","project":"Superalgos","exchangeTradingProducts":[{"type":"Exchange Trading Products","name":"Binance","project":"Superalgos","marketTradingProducts":[{"type":"Market Trading Products","name":"Binance BTC/USDT","project":"Superalgos","tradingSessionReferences":[{"type":"Trading Session Reference","name":"Hello World Trading System Backtesting Session","project":"Superalgos","dataProducts":[],"tradingMineProducts":[{"type":"Trading Mine Products","name":"Masters","project":"Superalgos","botProducts":[{"type":"Bot Products","name":"Low Frequency","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Trading Engine","project":"Superalgos","dataProducts":[],"dataProductFolders":[{"type":"Data Product Folder","name":"Trading Episode","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trading Episode Counters","project":"Superalgos","id":"9a2a56d3-0e17-44fb-8ae5-aba6c8dc5522","savedPayload":{"position":{"x":24987.356993272086,"y":31570.53402088596},"targetPosition":{"x":24896.356993272086,"y":31538.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading Episode Counters","id":"d81c6019-864e-42f5-94ba-2f249b865f85"}}},{"type":"Data Product","name":"Trading Episode Statistics","project":"Superalgos","id":"dac15491-5d83-4f1f-9bed-1ea7b649dba2","savedPayload":{"position":{"x":24934.356993272086,"y":31513.53402088596},"targetPosition":{"x":24896.356993272086,"y":31538.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading Episode Statistics","id":"400c7f49-37da-41fb-b83d-879960aa74ff"}}},{"type":"Data Product","name":"Episode Candle","project":"Superalgos","id":"ad4a94e4-cdd4-43d6-9a5f-e655050203a2","savedPayload":{"position":{"x":24866.356993272086,"y":31597.53402088596},"targetPosition":{"x":24896.356993272086,"y":31538.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Candle","id":"b9a58113-cf27-4d57-9810-87a2cc158804"}}},{"type":"Data Product","name":"Episode Balances","project":"Superalgos","id":"ed269260-9cdd-4ed6-98aa-a9e63bd189be","savedPayload":{"position":{"x":24871.356993272086,"y":31497.53402088596},"targetPosition":{"x":24896.356993272086,"y":31538.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Balances","id":"a9a53d82-133b-4417-b639-f9a56d338233"}}},{"type":"Data Product","name":"Distance To Trading Event","project":"Superalgos","id":"9412328a-0a81-4d00-ad12-5eeae841aea4","savedPayload":{"position":{"x":24907.356993272086,"y":31440.53402088596},"targetPosition":{"x":24896.356993272086,"y":31538.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Distance To Trading Event","id":"8ea88d6c-7d7f-4152-b781-ea108df52c63"}}},{"type":"Data Product","name":"Episode Base Asset","project":"Superalgos","id":"238d6406-1337-4402-a1a8-b396bc7183a8","savedPayload":{"position":{"x":24987.356993272086,"y":31541.53402088596},"targetPosition":{"x":24896.356993272086,"y":31538.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Base Asset","id":"234969ff-eab1-4d59-b6fa-79433c9a20e9"}}},{"type":"Data Product","name":"Episode Quoted Asset","project":"Superalgos","id":"7a260e63-61a3-4567-ba4e-cc2d67be6ee0","savedPayload":{"position":{"x":24849.356993272086,"y":31569.53402088596},"targetPosition":{"x":24896.356993272086,"y":31538.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episode Quoted Asset","id":"ae525e31-d6a8-47d2-9021-3f2ddb9615b0"}}},{"type":"Data Product","name":"Current Episode","project":"Superalgos","id":"9005ef6f-f6ea-4e49-baeb-9e93acf181cd","savedPayload":{"position":{"x":24861.356993272086,"y":31460.53402088596},"targetPosition":{"x":24896.356993272086,"y":31538.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Episode","id":"b8da0132-ba28-46ec-aa54-eb9eaac56ce7"}}}],"dataProductFolders":[],"id":"31604c9a-3ba0-4925-bd10-01a3cf039776","savedPayload":{"position":{"x":24896.356993272086,"y":31538.53402088596},"targetPosition":{"x":24955.356993272086,"y":31519.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Strategy","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Strategy","project":"Superalgos","id":"e12d72f5-0a2a-4e63-9f2a-f026e933abda","savedPayload":{"position":{"x":25078.356993272086,"y":31506.53402088596},"targetPosition":{"x":25039.356993272086,"y":31471.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Strategy","id":"895d8a04-ef45-41a7-909a-ba31013ffb90"}}},{"type":"Data Product","name":"Last Strategy","project":"Superalgos","id":"3a46e1b6-063b-4955-93f2-c01f8015aa37","savedPayload":{"position":{"x":24959.356993272086,"y":31444.53402088596},"targetPosition":{"x":25039.356993272086,"y":31471.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Strategy","id":"0625f524-2b97-4b4d-8a90-590ffc62ecd3"}}}],"dataProductFolders":[],"id":"2d056c15-aa01-4a86-8d44-92e443d19ce3","savedPayload":{"position":{"x":25039.356993272086,"y":31471.53402088596},"targetPosition":{"x":24955.356993272086,"y":31519.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Current Position","project":"Superalgos","id":"8dc7fc2d-e7a2-4ea3-a015-49f0c54b4771","savedPayload":{"position":{"x":25010.356993272086,"y":31536.53402088596},"targetPosition":{"x":25023.356993272086,"y":31475.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Current Position","id":"832ecada-8da3-4ba6-b6e9-be34dd5f7ce9"}}},{"type":"Data Product","name":"Last Position","project":"Superalgos","id":"2eef9228-f520-4955-9585-fcb948680973","savedPayload":{"position":{"x":24963.356993272086,"y":31573.53402088596},"targetPosition":{"x":25023.356993272086,"y":31475.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Position","id":"477cd6d5-862a-44d0-9313-786a4e63a602"}}},{"type":"Data Product","name":"Stop Loss","project":"Superalgos","id":"4f04f670-2101-47e4-a331-c586d04f4149","savedPayload":{"position":{"x":25095.356993272086,"y":31417.53402088596},"targetPosition":{"x":25023.356993272086,"y":31475.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Stop Loss","id":"a1c047bd-e95e-469a-aac9-3d45c4157440"}}},{"type":"Data Product","name":"Take Profit","project":"Superalgos","id":"f65f4843-b0d7-41c2-a072-3e8f1d9dfb20","savedPayload":{"position":{"x":24973.356993272086,"y":31390.53402088596},"targetPosition":{"x":25023.356993272086,"y":31475.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Take Profit","id":"11513bf1-0f23-4d79-b760-83ccebc4e1c5"}}}],"dataProductFolders":[],"id":"ec63a7ca-41bb-40c3-bfee-27034a2f80ad","savedPayload":{"position":{"x":25023.356993272086,"y":31475.53402088596},"targetPosition":{"x":24955.356993272086,"y":31519.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Open Stage","project":"Superalgos","id":"41a3db28-b2f8-4721-8b02-195067276ee7","savedPayload":{"position":{"x":25048.356993272086,"y":31419.53402088596},"targetPosition":{"x":24962.356993272086,"y":31494.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stage","id":"73c3c041-ba2a-4798-a362-a453409b518a"}}},{"type":"Data Product","name":"Close Stage","project":"Superalgos","id":"9367b628-1fa8-49b3-abb2-fee833568ff9","savedPayload":{"position":{"x":24892.356993272086,"y":31505.53402088596},"targetPosition":{"x":24962.356993272086,"y":31494.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stage","id":"2bb9bb41-1ff5-4f83-aa5b-bfc4c9f06a9a"}}},{"type":"Data Product","name":"Trigger Stage","project":"Superalgos","id":"fb71c26a-5145-491e-a638-927b06eebcc1","savedPayload":{"position":{"x":24956.356993272086,"y":31414.53402088596},"targetPosition":{"x":24962.356993272086,"y":31494.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stage","id":"b6cff826-9056-4fbd-8eca-cbd6cceec962"}}},{"type":"Data Product","name":"Manage Stage","project":"Superalgos","id":"4c58969f-8f1b-43fa-97a7-42a4fdead527","savedPayload":{"position":{"x":24869.356993272086,"y":31496.53402088596},"targetPosition":{"x":24962.356993272086,"y":31494.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stage","id":"bd691611-e7a6-49a8-b07d-c15360b55e40"}}}],"dataProductFolders":[],"id":"4eafb662-7d11-4093-a6b7-0ce0e434c1f7","savedPayload":{"position":{"x":24962.356993272086,"y":31494.53402088596},"targetPosition":{"x":24955.356993272086,"y":31519.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"f0cbbb32-53fa-473a-8c4a-535c1d267060","savedPayload":{"position":{"x":24910.356993272086,"y":31417.53402088596},"targetPosition":{"x":24975.356993272086,"y":31443.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"7c769317-2639-4460-8b88-9dc92f7b0585"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"7893f1aa-0976-4150-954c-aa6dc4b0206b","savedPayload":{"position":{"x":24928.356993272086,"y":31505.53402088596},"targetPosition":{"x":24975.356993272086,"y":31443.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"9cc7645a-54fe-40d6-9896-9278167011fb"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"b7cfe3e7-e5b4-437c-b3d1-65d6100290b6","savedPayload":{"position":{"x":24897.356993272086,"y":31454.53402088596},"targetPosition":{"x":24975.356993272086,"y":31443.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"4c827ee0-a29b-4b65-8438-03e2ea98b410"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"d791e38c-a2bc-4aa8-9aec-508145c47df2","savedPayload":{"position":{"x":24995.356993272086,"y":31356.53402088596},"targetPosition":{"x":24975.356993272086,"y":31443.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2c753cd8-36d8-466c-bd80-1ebfa8e314dc"}}},{"type":"Data Product","name":"Last Market Order","project":"Superalgos","id":"85b9356c-8c5f-4774-8536-0cd18c05d752","savedPayload":{"position":{"x":24951.356993272086,"y":31532.53402088596},"targetPosition":{"x":24975.356993272086,"y":31443.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Market Order","id":"6df1ac87-92d5-4788-b0bc-f3543b283ef0"}}},{"type":"Data Product","name":"Last Limit Order","project":"Superalgos","id":"efff2729-03f0-445b-941a-863dfd37a208","savedPayload":{"position":{"x":24944.356993272086,"y":31448.53402088596},"targetPosition":{"x":24975.356993272086,"y":31443.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Last Limit Order","id":"c24ec6a1-e937-4d20-93eb-4faf2a0becc3"}}}],"dataProductFolders":[],"id":"e1aee47c-c3dc-4465-9af5-384c9661f5d4","savedPayload":{"position":{"x":24975.356993272086,"y":31443.53402088596},"targetPosition":{"x":24955.356993272086,"y":31519.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f1323629-4ee7-41a8-86a8-4e88d60c634a","savedPayload":{"position":{"x":24955.356993272086,"y":31519.53402088596},"targetPosition":{"x":25016.356993272086,"y":31487.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Trading System","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trading System Errors","project":"Superalgos","id":"0f891e49-d7fd-4415-b099-ea80dcf5c321","savedPayload":{"position":{"x":24915.356993272086,"y":31482.53402088596},"targetPosition":{"x":24974.356993272086,"y":31573.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Errors","id":"1d9c570d-77c7-40ac-a61e-c5a57a411de8"}}},{"type":"Data Product","name":"Trading System Highlights","project":"Superalgos","id":"16448d2a-d2d1-4f77-8bd8-2230ac32ec28","savedPayload":{"position":{"x":24902.356993272086,"y":31512.53402088596},"targetPosition":{"x":24974.356993272086,"y":31573.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Highlights","id":"319f660a-78be-4cf4-8052-877837cad806"}}},{"type":"Data Product","name":"Trading System Values","project":"Superalgos","id":"3dcbdc27-4611-41a4-a0c5-aa62b34afee0","savedPayload":{"position":{"x":24924.356993272086,"y":31549.53402088596},"targetPosition":{"x":24974.356993272086,"y":31573.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Values","id":"c90c009b-588d-45d4-aff1-05e375181dfa"}}},{"type":"Data Product","name":"Trading System Status","project":"Superalgos","id":"425b1e48-7a1f-421e-bdea-8801fcbf96c7","savedPayload":{"position":{"x":24953.356993272086,"y":31627.53402088596},"targetPosition":{"x":24974.356993272086,"y":31573.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Status","id":"eed48c80-35c5-49fa-b12d-18e7280ffb8f"}}},{"type":"Data Product","name":"Trading System Progress","project":"Superalgos","id":"2e8c8e09-9c00-44b0-94b9-30314ef11cd4","savedPayload":{"position":{"x":25063.356993272086,"y":31590.53402088596},"targetPosition":{"x":24974.356993272086,"y":31573.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Progress","id":"04c8606b-5e59-4e7d-b3ac-387bfffcd300"}}},{"type":"Data Product","name":"Trading System Running","project":"Superalgos","id":"2fd7020d-cf50-4090-8589-c36c5adae270","savedPayload":{"position":{"x":25046.356993272086,"y":31641.53402088596},"targetPosition":{"x":24974.356993272086,"y":31573.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Running","id":"17236f59-6ef2-4cc3-913c-1ff6db052236"}}},{"type":"Data Product","name":"Trading System Announcements","project":"Superalgos","id":"d8897a38-b8e6-4cb7-8dbc-292f97e2a49b","savedPayload":{"position":{"x":25049.356993272086,"y":31657.53402088596},"targetPosition":{"x":24974.356993272086,"y":31573.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Announcements","id":"4a6f828a-9671-431e-8257-fc920943581e"}}},{"type":"Data Product","name":"Trading System Warnings","project":"Superalgos","id":"70c1fb7b-bfff-4ff3-8713-a7ce552c8107","savedPayload":{"position":{"x":25067.356993272086,"y":31621.53402088596},"targetPosition":{"x":24974.356993272086,"y":31573.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Warnings","id":"34310596-466a-4e9a-a5a2-256b0fe3e339"}}},{"type":"Data Product","name":"Trading System Infos","project":"Superalgos","id":"a0c0c574-780e-4023-83cd-201c526e9a76","savedPayload":{"position":{"x":25034.356993272086,"y":31661.53402088596},"targetPosition":{"x":24974.356993272086,"y":31573.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trading System Infos","id":"020ad519-0fc6-4f2f-9f26-b2c7de118fb8"}}}],"dataProductFolders":[],"id":"68cff154-8b4d-4021-bee5-163383b1b0fb","savedPayload":{"position":{"x":24974.356993272086,"y":31573.53402088596},"targetPosition":{"x":25016.356993272086,"y":31487.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Simulation Objects","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Episodes","project":"Superalgos","id":"383bb471-7325-48f7-86a2-b034f96e6aec","savedPayload":{"position":{"x":25141.356993272086,"y":31594.53402088596},"targetPosition":{"x":25100.356993272086,"y":31529.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Episodes","id":"aeec080e-8caf-4976-8187-ba4e725b73b0"}}},{"type":"Data Product","name":"Strategies","project":"Superalgos","id":"1f92d8ed-a3fe-4e70-9e0b-ae9bdd66d8b5","savedPayload":{"position":{"x":25179.356993272086,"y":31627.53402088596},"targetPosition":{"x":25100.356993272086,"y":31529.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"21db6fce-8450-4b07-9015-d81a339fd030"}}}],"dataProductFolders":[{"type":"Data Product Folder","name":"Orders","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Market Buy Orders","project":"Superalgos","id":"483a11f5-ce67-493e-969b-57a5585b1c64","savedPayload":{"position":{"x":25187.356993272086,"y":31562.53402088596},"targetPosition":{"x":25173.356993272086,"y":31481.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Buy Orders","id":"db256083-9aa2-48e1-8fd6-3425a5085302"}}},{"type":"Data Product","name":"Market Sell Orders","project":"Superalgos","id":"2b2ce4ec-96b1-425e-8510-450c02a2c6f2","savedPayload":{"position":{"x":25090.356993272086,"y":31441.53402088596},"targetPosition":{"x":25173.356993272086,"y":31481.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Market Sell Orders","id":"1958f79b-5c6c-4874-9154-98c314822ed7"}}},{"type":"Data Product","name":"Limit Buy Orders","project":"Superalgos","id":"d425f47e-b69f-467d-b3de-12b563c1fd94","savedPayload":{"position":{"x":25215.356993272086,"y":31423.53402088596},"targetPosition":{"x":25173.356993272086,"y":31481.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Buy Orders","id":"5deceb32-c7ab-4560-818a-0f0b9d6632fb"}}},{"type":"Data Product","name":"Limit Sell Orders","project":"Superalgos","id":"b750b34d-3a85-4571-a145-7e8580d5b252","savedPayload":{"position":{"x":25119.356993272086,"y":31473.53402088596},"targetPosition":{"x":25173.356993272086,"y":31481.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Limit Sell Orders","id":"2a1d405b-2fbe-4ed4-a76a-d2c7be59d20e"}}}],"dataProductFolders":[],"id":"3febbb44-efec-4c94-a130-2b5fbbb1d242","savedPayload":{"position":{"x":25173.356993272086,"y":31481.53402088596},"targetPosition":{"x":25100.356993272086,"y":31529.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Stages","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Trigger Stages","project":"Superalgos","id":"4a23f371-b655-40eb-8e7a-c7e87c1ad276","savedPayload":{"position":{"x":24935.356993272086,"y":31638.53402088596},"targetPosition":{"x":25013.356993272086,"y":31606.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trigger Stages","id":"18cc2e79-7e57-418c-b635-6c68fc11d681"}}},{"type":"Data Product","name":"Open Stages","project":"Superalgos","id":"b30d6665-4e7e-4e43-959a-c33b09e1cddb","savedPayload":{"position":{"x":25086.356993272086,"y":31569.53402088596},"targetPosition":{"x":25013.356993272086,"y":31606.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Open Stages","id":"d5938c00-0849-466d-ae14-4ea91b571678"}}},{"type":"Data Product","name":"Manage Stages","project":"Superalgos","id":"aaeccd9c-0981-4431-b89c-f67eaa1e305c","savedPayload":{"position":{"x":24923.356993272086,"y":31643.53402088596},"targetPosition":{"x":25013.356993272086,"y":31606.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Manage Stages","id":"8fab86b3-db8d-4113-8418-1d256bd98cf2"}}},{"type":"Data Product","name":"Close Stages","project":"Superalgos","id":"730f6f4d-d48b-4107-9b31-8c6a01f1e660","savedPayload":{"position":{"x":25040.356993272086,"y":31581.53402088596},"targetPosition":{"x":25013.356993272086,"y":31606.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Close Stages","id":"ba911e61-f951-48cd-b547-9a70aa211100"}}}],"dataProductFolders":[],"id":"f59be03a-1758-4890-8448-11c510a5fade","savedPayload":{"position":{"x":25013.356993272086,"y":31606.53402088596},"targetPosition":{"x":25100.356993272086,"y":31529.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Product Folder","name":"Position","project":"Superalgos","dataProducts":[{"type":"Data Product","name":"Positions","project":"Superalgos","id":"840b95d5-ecb4-4a92-891a-cbc271781279","savedPayload":{"position":{"x":25175.356993272086,"y":31499.53402088596},"targetPosition":{"x":25124.356993272086,"y":31521.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Positions","id":"1eabba24-cbd4-4cbf-95e0-c5135349d41d"}}},{"type":"Data Product","name":"Position Base Asset","project":"Superalgos","id":"e3d24ef0-be0f-496a-bb5f-093e588aaae0","savedPayload":{"position":{"x":25130.356993272086,"y":31519.53402088596},"targetPosition":{"x":25124.356993272086,"y":31521.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Base Asset","id":"b371b039-f6c8-4f60-84cb-52f55c96c84d"}}},{"type":"Data Product","name":"Position Quoted Asset","project":"Superalgos","id":"b5bcd589-1515-47c4-9c8b-2286cb5626f8","savedPayload":{"position":{"x":25025.356993272086,"y":31422.53402088596},"targetPosition":{"x":25124.356993272086,"y":31521.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Position Quoted Asset","id":"a376f02b-a5d2-4079-b5cd-ab7dc894b909"}}},{"type":"Data Product","name":"Stop Loss","project":"Superalgos","id":"e063d9a1-b8d1-4461-954f-dbf5104e9305","savedPayload":{"position":{"x":25025.356993272086,"y":31457.53402088596},"targetPosition":{"x":25124.356993272086,"y":31521.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Stop Loss","id":"c18bdc82-216a-4b1d-8850-5c3c9dc2000b"}}},{"type":"Data Product","name":"Take Profit","project":"Superalgos","id":"6a117f86-984f-48f6-8156-1c95bf0b3cb8","savedPayload":{"position":{"x":25177.356993272086,"y":31461.53402088596},"targetPosition":{"x":25124.356993272086,"y":31521.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Take Profit","id":"2542c7d0-fa26-4b52-a59a-a3630e52eb89"}}}],"dataProductFolders":[],"id":"3b85a07a-8793-4355-a044-e80c9451f3e0","savedPayload":{"position":{"x":25124.356993272086,"y":31521.53402088596},"targetPosition":{"x":25100.356993272086,"y":31529.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f81054f2-4dd8-4973-9cc3-d03704f2c3b4","savedPayload":{"position":{"x":25100.356993272086,"y":31529.53402088596},"targetPosition":{"x":25016.356993272086,"y":31487.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7aff23c3-f3fe-4c04-b614-7a0cb755f488","savedPayload":{"position":{"x":25016.356993272086,"y":31487.53402088596},"targetPosition":{"x":24986.356993272086,"y":31508.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4135dfad-bc00-4d2b-b3d9-ff8b0c97180f","savedPayload":{"position":{"x":24986.356993272086,"y":31508.53402088596},"targetPosition":{"x":24953.356993272086,"y":31425.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading Mine","name":"Masters","id":"6a54eece-4582-4cda-a854-1cd805e00fed"}}}],"id":"a61c1367-3045-49aa-b85e-ef03d127da71","savedPayload":{"position":{"x":24339.356993272086,"y":32585.76450542729},"targetPosition":{"x":24489.356993272086,"y":32325.956884291958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Backtesting Session","name":"Hello World Trading System","id":"a81c54d1-e345-46f4-9dd4-07ec436bd1e5"}}}],"id":"36af123f-9ca8-484e-bbf2-0d3db0f701b7","savedPayload":{"position":{"x":24489.356993272086,"y":32325.956884291958},"targetPosition":{"x":24639.356993272086,"y":32066.149263156625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"49fa803f-7bbc-4705-b3fa-8bc3ab081f77","savedPayload":{"position":{"x":24639.356993272086,"y":32066.149263156625},"targetPosition":{"x":24789.356993272086,"y":31806.341642021293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"1dc9472c-80a2-4515-bb8a-91f801c925a9","savedPayload":{"position":{"x":24789.356993272086,"y":31806.341642021293},"targetPosition":{"x":24939.356993272086,"y":31546.53402088596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"e4e268f3-a677-4f90-90a1-d87244e647e5","savedPayload":{"position":{"x":24939.356993272086,"y":31546.53402088596},"targetPosition":{"x":25089.356993272086,"y":31286.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningMinesData":{"type":"Learning Mines Data","name":"New Learning Mines Data","project":"Superalgos","projectLearningProducts":[{"type":"Project Learning Products","name":"Superalgos","project":"Superalgos","exchangeLearningProducts":[{"type":"Exchange Learning Products","name":"Binance","project":"Superalgos","marketLearningProducts":[{"type":"Market Learning Products","name":"Binance BTC/USDT","project":"Superalgos","learningSessionReferences":[],"id":"bb4ef77d-a231-4396-997d-04230f472eeb","savedPayload":{"position":{"x":24137.3329849226,"y":32017.240114561097},"targetPosition":{"x":24375.33898700997,"y":31834.61168585848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"9a867bf0-a71d-445c-b99a-75b60bbdce09"}}}],"id":"fe03bedb-5a5c-4ea9-ab7a-746d7e9ce198","savedPayload":{"position":{"x":24375.33898700997,"y":31834.61168585848},"targetPosition":{"x":24613.344989097342,"y":31651.98325715586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b"}}}],"id":"0a0e6de1-dade-4d87-aa29-a70e6b0f8e0b","savedPayload":{"position":{"x":24613.344989097342,"y":31651.98325715586},"targetPosition":{"x":24851.350991184714,"y":31469.354828453244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"2845a687-becc-4c3b-bc79-b2293ba876ba","savedPayload":{"position":{"x":24851.350991184714,"y":31469.354828453244},"targetPosition":{"x":25089.356993272086,"y":31286.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e2697759-6038-4943-b90c-5a68651ff9a8","savedPayload":{"position":{"x":25089.356993272086,"y":31286.726399750627},"targetPosition":{"x":25239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"d"}}},"id":"e452cf65-2b2b-44f2-9e67-bdd9d3c008e4","savedPayload":{"position":{"x":25239.356993272086,"y":31026.918778615294},"targetPosition":{"x":24939.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"3c165071-7558-4708-9999-8ffe71d346b1","savedPayload":{"position":{"x":24939.356993272086,"y":31026.918778615294},"targetPosition":{"x":24939.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},{"type":"Crypto Ecosystem","name":"My Crypto Ecosystem","project":"Superalgos","cryptoExchanges":[{"type":"Crypto Exchanges","name":"Tested","project":"Superalgos","exchanges":[{"type":"Crypto Exchange","name":"Binance","config":"{\n \"codeName\": \"binance\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"fetchType\": \"by Id\",\n \"fetchTradesMethod\": \"publicGetHistoricalTrades\",\n \"firstId\": \"f\"\n }\n ]\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"EUR\"} \n}","project":"Superalgos","assets":[{"type":"Asset","name":"Bitcoin","config":"{ \n\"codeName\": \"BTC\"\n}","project":"Superalgos","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa","savedPayload":{"position":{"x":19793.079365950267,"y":30513.325102172115},"targetPosition":{"x":19715.43365241951,"y":30803.102850058836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Asset","name":"Tether","config":"{ \n\"codeName\": \"USDT\"\n}","project":"Superalgos","id":"f110bfa0-bd5b-469b-a940-4524c8688136","savedPayload":{"position":{"x":20005.21140030623,"y":30725.45713652808},"targetPosition":{"x":19715.43365241951,"y":30803.102850058836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"95d2c30f-215b-486e-8119-f4eac0279575","savedPayload":{"position":{"x":19715.43365241951,"y":30803.102850058836},"targetPosition":{"x":19503.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"E"}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","project":"Superalgos","markets":[{"type":"Market","name":"BTC/USDT","config":"{ \n\"codeName\": \"BTC/USDT\"\n}","project":"Superalgos","baseAsset":{"type":"Market Base Asset","name":"Bitcoin","project":"Superalgos","id":"1017b30d-de1b-4212-991e-9fd0a5b6c814","savedPayload":{"position":{"x":20393.079365950267,"y":30937.589170884043},"targetPosition":{"x":20103.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","project":"Superalgos","id":"705c4a67-787a-48cd-a3dc-3a557438bf0b","savedPayload":{"position":{"x":20393.079365950267,"y":31092.880597945557},"targetPosition":{"x":20103.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"f110bfa0-bd5b-469b-a940-4524c8688136"}}},"id":"9a867bf0-a71d-445c-b99a-75b60bbdce09","savedPayload":{"position":{"x":20103.301618063546,"y":31015.2348844148},"targetPosition":{"x":19803.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2fd80894-900e-44ac-a1a7-56c14124f7a1","savedPayload":{"position":{"x":19803.301618063546,"y":31015.2348844148},"targetPosition":{"x":19503.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[{"type":"Exchange Account Asset","name":"Bitcoin","project":"Superalgos","id":"ba6f3d5c-b36b-49d9-947f-392068109169","savedPayload":{"position":{"x":20507.121182548915,"y":31439.498953126727},"targetPosition":{"x":20217.343434662194,"y":31517.144666657485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"5f5e4a94-5090-47d4-8883-cc2325d20bfa"}}},{"type":"Exchange Account Asset","name":"Tether","project":"Superalgos","id":"c90be267-90f9-45ae-b225-0578adb4aad9","savedPayload":{"position":{"x":20429.475469018158,"y":31729.27670101345},"targetPosition":{"x":20217.343434662194,"y":31517.144666657485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"f110bfa0-bd5b-469b-a940-4524c8688136"}}}],"id":"8ac5c2a9-a238-48ae-ab43-0a0a95a37464","savedPayload":{"position":{"x":20217.343434662194,"y":31517.144666657485},"targetPosition":{"x":19927.565686775473,"y":31439.498953126727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"Key for Lighting Strike","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e85bbbd6-aca8-450f-9237-788062de5761","savedPayload":{"position":{"x":20082.857113836988,"y":32019.05444890017},"targetPosition":{"x":20005.21140030623,"y":31729.27670101345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"id":"48925cc9-f3cd-4499-8466-1338fed28a0d","savedPayload":{"position":{"x":20005.21140030623,"y":31729.27670101345},"targetPosition":{"x":19927.565686775473,"y":31439.498953126727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"63794496-c94b-42f9-81cc-c588708617a6","savedPayload":{"position":{"x":19927.565686775473,"y":31439.498953126727},"targetPosition":{"x":19715.43365241951,"y":31227.366918770764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4b0c1ac5-515f-44a9-b9b9-e698a9c51eac","savedPayload":{"position":{"x":19715.43365241951,"y":31227.366918770764},"targetPosition":{"x":19503.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61ef0b8d-de6e-4e76-bdd5-996836760a4b","savedPayload":{"position":{"x":19503.301618063546,"y":31015.2348844148},"targetPosition":{"x":19203.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"tutorial":{"status":"Done"}}}],"id":"e3879d63-6f8f-41a3-8ac3-0349c4361722","savedPayload":{"position":{"x":19203.301618063546,"y":31015.2348844148},"targetPosition":{"x":18903.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchanges","name":"Untested","project":"Superalgos","exchanges":[{"type":"Crypto Exchange","name":"ACX","config":"{ \n\"codeName\": \"acx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"ebcb522b-ae58-46d2-9d82-a9b0beec3976","savedPayload":{"position":{"x":17935.64382962515,"y":31014.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b2649588-27c6-442c-b179-f6d8817188b3","savedPayload":{"position":{"x":17954.64382962515,"y":31004.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9b2051d5-7ee7-4e94-8c8d-306674889339","savedPayload":{"position":{"x":17838.64382962515,"y":30896.23747069523},"targetPosition":{"x":17766.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"1d5461aa-d26c-4df5-b383-8c83e311b8ca","savedPayload":{"position":{"x":17643.64382962515,"y":30952.23747069523},"targetPosition":{"x":17698.64382962515,"y":30973.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c6372400-de52-4b63-97f3-f748aac9c63f","savedPayload":{"position":{"x":17698.64382962515,"y":30973.23747069523},"targetPosition":{"x":17766.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c948314e-2247-4234-b83d-cc2c1b152665","savedPayload":{"position":{"x":17766.64382962515,"y":30905.23747069523},"targetPosition":{"x":17837.64382962515,"y":30978.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04ccb742-ef1b-4138-b38d-a6b0d92f2f8e","savedPayload":{"position":{"x":17837.64382962515,"y":30978.23747069523},"targetPosition":{"x":17912.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e9c21b2d-de21-43b5-8b48-51367a8c981c","savedPayload":{"position":{"x":19313.14497226101,"y":30565.583066825377},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"AOFEX","config":"{ \n\"codeName\": \"aofex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"623ef91b-04c0-4bd5-ac0d-b32c809be3ea","savedPayload":{"position":{"x":17973.64382962515,"y":30923.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"9d0b5855-59a6-4dda-9a4b-33d7a44d582e","savedPayload":{"position":{"x":17901.64382962515,"y":30994.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"e898e569-0dd3-4a22-baa5-caaace66d4ed","savedPayload":{"position":{"x":18062.64382962515,"y":30838.23747069523},"targetPosition":{"x":17982.64382962515,"y":30899.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"64a69d3d-15ff-41c3-a926-5ec93c932ab1","savedPayload":{"position":{"x":17822.64382962515,"y":31052.23747069523},"targetPosition":{"x":17893.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae2785c5-75a1-44fc-a71b-363d88cb5dac","savedPayload":{"position":{"x":17893.64382962515,"y":30981.23747069523},"targetPosition":{"x":17982.64382962515,"y":30899.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07ea69aa-7357-43b1-b548-a4c4fab70c55","savedPayload":{"position":{"x":17982.64382962515,"y":30899.23747069523},"targetPosition":{"x":17971.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2146b410-fc4e-452d-ae57-5d58c9a29706","savedPayload":{"position":{"x":17971.64382962515,"y":30962.23747069523},"targetPosition":{"x":17950.64382962515,"y":30994.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c2e9bb45-97c7-47e8-b13c-56946e673c53","savedPayload":{"position":{"x":19413.67778623216,"y":30647.89853748846},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bequant","config":"{ \n\"codeName\": \"bequant\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"b23c8adf-c880-48fd-b4af-4b4be86cf0e5","savedPayload":{"position":{"x":18059.64382962515,"y":31101.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"523bd94f-68f9-457e-91fd-806c1b95e98d","savedPayload":{"position":{"x":18006.64382962515,"y":31117.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9d914bb1-a68b-41ae-8666-0fcc755358c1","savedPayload":{"position":{"x":17859.64382962515,"y":30964.23747069523},"targetPosition":{"x":17936.64382962515,"y":31059.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"15d903b5-113c-465e-8120-7c46a9a85565","savedPayload":{"position":{"x":17976.64382962515,"y":31146.23747069523},"targetPosition":{"x":17943.64382962515,"y":31134.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2d1c0bc3-abe2-4340-91bf-2eef5b98a2f0","savedPayload":{"position":{"x":17943.64382962515,"y":31134.23747069523},"targetPosition":{"x":17936.64382962515,"y":31059.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5a50d459-914c-4bfc-91e8-f15c383280eb","savedPayload":{"position":{"x":17936.64382962515,"y":31059.23747069523},"targetPosition":{"x":17931.64382962515,"y":31071.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b2f2b69f-3bef-4edc-9950-5261d9f36382","savedPayload":{"position":{"x":17931.64382962515,"y":31071.23747069523},"targetPosition":{"x":17960.64382962515,"y":31060.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8e928d3e-a2c2-4341-aa2f-b753551c9479","savedPayload":{"position":{"x":19504.72140465123,"y":30740.600980501622},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bibox","config":"{ \n\"codeName\": \"bibox\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"13c1f22c-9a35-4d3f-b000-c96984fd6a2b","savedPayload":{"position":{"x":17995.64382962515,"y":31047.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3c6df49d-70c3-468a-bdd8-6768ce6d3a9d","savedPayload":{"position":{"x":17916.64382962515,"y":31018.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5a54ef39-8fba-4a5f-ac24-5f27e763e28f","savedPayload":{"position":{"x":18050.64382962515,"y":31174.23747069523},"targetPosition":{"x":17956.64382962515,"y":31128.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"08df1f45-dab0-463a-8758-359973f2620d","savedPayload":{"position":{"x":17899.64382962515,"y":31242.23747069523},"targetPosition":{"x":17959.64382962515,"y":31180.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"105b52c2-90ad-4fa1-b690-d8fab14209b4","savedPayload":{"position":{"x":17959.64382962515,"y":31180.23747069523},"targetPosition":{"x":17956.64382962515,"y":31128.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"68c1ef42-1b7b-4cc6-981f-80b20dabcd89","savedPayload":{"position":{"x":17956.64382962515,"y":31128.23747069523},"targetPosition":{"x":17907.64382962515,"y":31057.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fc35e5d0-ea61-42b6-979a-859f19c5ac6c","savedPayload":{"position":{"x":17907.64382962515,"y":31057.23747069523},"targetPosition":{"x":17929.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e5f9ee4d-77a3-48ae-b354-b2f6a97d5e47","savedPayload":{"position":{"x":19585.208424334218,"y":30842.603544479174},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BigONE","config":"{ \n\"codeName\": \"bigone\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"3f289513-c1c8-457c-b65a-8cf62b5f5eb5","savedPayload":{"position":{"x":17778.64382962515,"y":31071.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8b365e73-1cee-496a-921f-121cb628a130","savedPayload":{"position":{"x":17798.64382962515,"y":31121.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"447a4f6f-cfa0-443e-9339-d7c1153ada31","savedPayload":{"position":{"x":17921.64382962515,"y":31046.23747069523},"targetPosition":{"x":17891.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0d234c53-c121-471e-bce1-a258c13cd148","savedPayload":{"position":{"x":17848.64382962515,"y":31175.23747069523},"targetPosition":{"x":17944.64382962515,"y":31086.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"816e1b6a-d790-4abd-9ae1-e203fa737af2","savedPayload":{"position":{"x":17944.64382962515,"y":31086.23747069523},"targetPosition":{"x":17891.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"561a57f7-8c22-4e50-840d-d983ed6bb864","savedPayload":{"position":{"x":17891.64382962515,"y":31102.23747069523},"targetPosition":{"x":17813.64382962515,"y":31064.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e243bd5d-ade7-46c8-876b-6ad8c6eb5e0a","savedPayload":{"position":{"x":17813.64382962515,"y":31064.23747069523},"targetPosition":{"x":17839.64382962515,"y":31063.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fb9ee540-bf12-4dda-bf87-cb6b58fce649","savedPayload":{"position":{"x":19654.195208565325,"y":30952.710342620318},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Binance Jersey","config":"{ \n\"codeName\": \"binanceje\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"0b979ea9-7a2d-4744-9517-2dfa632dfafc","savedPayload":{"position":{"x":17852.64382962515,"y":30989.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b9a4497d-20f1-4c61-9a79-444e0fe0ddf4","savedPayload":{"position":{"x":17924.64382962515,"y":30952.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1b24d8a4-ec70-4501-838c-7633f6f7288e","savedPayload":{"position":{"x":17882.64382962515,"y":31051.23747069523},"targetPosition":{"x":17942.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"627472e3-638f-4d68-a917-d0844d6a227b","savedPayload":{"position":{"x":17991.64382962515,"y":31190.23747069523},"targetPosition":{"x":17986.64382962515,"y":31110.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"b8ce75fb-93c9-4ca2-9b2b-9f8ed8af34f3","savedPayload":{"position":{"x":17986.64382962515,"y":31110.23747069523},"targetPosition":{"x":17942.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"08b226e4-14ee-4ad3-8d96-efe77cc38489","savedPayload":{"position":{"x":17942.64382962515,"y":31066.23747069523},"targetPosition":{"x":17949.64382962515,"y":31009.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2771eb11-bc72-4273-9e1b-9ac5410c6354","savedPayload":{"position":{"x":17949.64382962515,"y":31009.23747069523},"targetPosition":{"x":17933.64382962515,"y":30992.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2782350a-84a2-40ec-87c6-3c8043376a18","savedPayload":{"position":{"x":19710.872950374665,"y":31069.630473388454},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Binance US","config":"{ \n\"codeName\": \"binanceus\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"817ee1cf-b44c-4458-a9c4-a05a17ea0510","savedPayload":{"position":{"x":17943.64382962515,"y":30999.23747069523},"targetPosition":{"x":17898.64382962515,"y":31020.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c6694e9e-74dc-4c2e-9151-90f1d6631b45","savedPayload":{"position":{"x":17937.64382962515,"y":30989.23747069523},"targetPosition":{"x":17898.64382962515,"y":31020.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"00144904-5363-49eb-b445-8c8283d92b0d","savedPayload":{"position":{"x":17838.64382962515,"y":31193.23747069523},"targetPosition":{"x":17781.64382962515,"y":31156.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2e71aa3c-03d4-4dbd-bc50-43b30f59e655","savedPayload":{"position":{"x":17783.64382962515,"y":31148.23747069523},"targetPosition":{"x":17703.64382962515,"y":31182.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"a4d0df32-c600-4421-b893-2a05f0442ed6","savedPayload":{"position":{"x":17703.64382962515,"y":31182.23747069523},"targetPosition":{"x":17781.64382962515,"y":31156.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7a39543a-00e1-452b-8aba-36c2b240f9fc","savedPayload":{"position":{"x":17781.64382962515,"y":31156.23747069523},"targetPosition":{"x":17799.64382962515,"y":31119.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2543c4e5-8233-4348-b6dc-e47aed1ff381","savedPayload":{"position":{"x":17799.64382962515,"y":31119.23747069523},"targetPosition":{"x":17898.64382962515,"y":31020.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0b2b67d2-853b-470e-8b13-925956ad5621","savedPayload":{"position":{"x":19754.577155060477,"y":31191.993155151424},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"bitbank","config":"{ \n\"codeName\": \"bitbank\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"eb6b6842-9bf7-450e-baa3-7a87541a1cf6","savedPayload":{"position":{"x":17955.64382962515,"y":31107.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"6353ff56-759f-457d-81f3-fdb8ae5b3e83","savedPayload":{"position":{"x":17942.64382962515,"y":31183.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a2b297c7-f33b-48b9-98fa-d339c7b0ff67","savedPayload":{"position":{"x":17999.64382962515,"y":31016.23747069523},"targetPosition":{"x":17945.64382962515,"y":31116.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"9ce6c354-b294-4062-b763-421e5edb69de","savedPayload":{"position":{"x":17883.64382962515,"y":31186.23747069523},"targetPosition":{"x":17845.64382962515,"y":31202.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"547dbf6c-a292-46c0-a628-62856858121e","savedPayload":{"position":{"x":17845.64382962515,"y":31202.23747069523},"targetPosition":{"x":17945.64382962515,"y":31116.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"097055b3-37e5-4100-a24b-91e404fe49a6","savedPayload":{"position":{"x":17945.64382962515,"y":31116.23747069523},"targetPosition":{"x":17897.64382962515,"y":31142.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51aed4ce-0303-431e-a15f-e6f133f7a2cf","savedPayload":{"position":{"x":17897.64382962515,"y":31142.23747069523},"targetPosition":{"x":17941.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c9a96a7-ed12-4b3e-bb51-306a8da131f5","savedPayload":{"position":{"x":19784.79543078195,"y":31318.363797342816},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitBay","config":"{ \n\"codeName\": \"bitbay\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"83b4e523-72a7-41ce-9363-fe0c799dcac1","savedPayload":{"position":{"x":17861.64382962515,"y":30965.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"966698f7-8a28-42d7-bb80-f7cd0601e44f","savedPayload":{"position":{"x":17823.64382962515,"y":31026.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"554829eb-3d40-4b95-a1cd-9de943763e2c","savedPayload":{"position":{"x":17914.64382962515,"y":30924.23747069523},"targetPosition":{"x":17876.64382962515,"y":30921.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2f534989-7ca7-4c3d-b14a-3b1071543c8c","savedPayload":{"position":{"x":17845.64382962515,"y":30853.23747069523},"targetPosition":{"x":17832.64382962515,"y":30821.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2f6b76b4-51d4-434f-8aa1-ed86b0e26bd2","savedPayload":{"position":{"x":17832.64382962515,"y":30821.23747069523},"targetPosition":{"x":17876.64382962515,"y":30921.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cbcc3ab6-9758-4273-99d2-9d05fdd392b5","savedPayload":{"position":{"x":17876.64382962515,"y":30921.23747069523},"targetPosition":{"x":17805.64382962515,"y":31015.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dada6c12-7c41-4ab8-9922-908233829f58","savedPayload":{"position":{"x":17805.64382962515,"y":31015.23747069523},"targetPosition":{"x":17855.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8778eee5-97a2-4f9d-bd25-cd5a64ec6663","savedPayload":{"position":{"x":19801.173495885087,"y":31447.26081972472},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitfinex","config":"{ \n\"codeName\": \"bitfinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"33508b53-2769-4f3d-8c98-9fa37e5cbf5b","savedPayload":{"position":{"x":17888.64382962515,"y":31043.23747069523},"targetPosition":{"x":17965.64382962515,"y":30956.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4d4ad5a1-81a7-4f92-83db-99f57ce261bb","savedPayload":{"position":{"x":17975.64382962515,"y":30868.23747069523},"targetPosition":{"x":17965.64382962515,"y":30956.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"29d52baf-645c-4d8f-9631-ebd391b4c815","savedPayload":{"position":{"x":18034.64382962515,"y":31066.23747069523},"targetPosition":{"x":18037.64382962515,"y":31012.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d615c33d-c6cf-4572-ac32-8e9ddeb5bb52","savedPayload":{"position":{"x":18023.64382962515,"y":30916.23747069523},"targetPosition":{"x":18106.64382962515,"y":30982.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"0c189040-6318-483c-b6d7-982370a3298d","savedPayload":{"position":{"x":18106.64382962515,"y":30982.23747069523},"targetPosition":{"x":18037.64382962515,"y":31012.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cd60de4a-d17c-4ba7-936a-cbf2305fe3bb","savedPayload":{"position":{"x":18037.64382962515,"y":31012.23747069523},"targetPosition":{"x":18039.64382962515,"y":30964.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d247f4f5-6f16-4a59-a4a5-6d1554b43562","savedPayload":{"position":{"x":18039.64382962515,"y":30964.23747069523},"targetPosition":{"x":17965.64382962515,"y":30956.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6c076027-683d-4778-8a6a-e60984980fdf","savedPayload":{"position":{"x":19803.51933253116,"y":31577.173022561386},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitfinex","config":"{ \n\"codeName\": \"bitfinex2\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"8fc7f955-5c81-446c-bbeb-205988bf1fc0","savedPayload":{"position":{"x":17830.64382962515,"y":31051.23747069523},"targetPosition":{"x":17863.64382962515,"y":31062.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d5ba38e9-3282-4634-b922-16532c71f426","savedPayload":{"position":{"x":17819.64382962515,"y":31118.23747069523},"targetPosition":{"x":17863.64382962515,"y":31062.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1cebbed5-28f7-4ccd-afce-9e7634d90fb6","savedPayload":{"position":{"x":17892.64382962515,"y":30997.23747069523},"targetPosition":{"x":17855.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0d109aa9-c80c-4a64-96f0-1d8fda0a70a4","savedPayload":{"position":{"x":17888.64382962515,"y":30805.23747069523},"targetPosition":{"x":17942.64382962515,"y":30905.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5459ab1e-a1ce-4dae-ae72-61c1f7f37ce0","savedPayload":{"position":{"x":17942.64382962515,"y":30905.23747069523},"targetPosition":{"x":17855.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a4615f7a-000d-4ff9-b5ac-109bc9a3a849","savedPayload":{"position":{"x":17855.64382962515,"y":30970.23747069523},"targetPosition":{"x":17919.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e10d303e-ea21-4625-bae1-c32ad7a44e8a","savedPayload":{"position":{"x":17919.64382962515,"y":31043.23747069523},"targetPosition":{"x":17863.64382962515,"y":31062.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f3114102-a73c-4086-9594-5888ef1ab4ec","savedPayload":{"position":{"x":19791.80543793031,"y":31706.577304054405},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bitforex","config":"{ \n\"codeName\": \"bitforex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"698e5e38-ad73-4cb6-b7f6-2b69913faff9","savedPayload":{"position":{"x":17897.64382962515,"y":30956.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"f0142bd4-1b63-4d12-a4b7-e150d0da197f","savedPayload":{"position":{"x":18020.64382962515,"y":31021.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"7164fb28-405b-461a-a7d4-59d438ecf1ce","savedPayload":{"position":{"x":17821.64382962515,"y":30984.23747069523},"targetPosition":{"x":17901.64382962515,"y":30907.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"ce8a00c9-f090-4ec2-84ed-c6661f8bf7b0","savedPayload":{"position":{"x":17825.64382962515,"y":30965.23747069523},"targetPosition":{"x":17818.64382962515,"y":30913.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"579cd74b-98f6-4000-990b-25ae1456c94b","savedPayload":{"position":{"x":17818.64382962515,"y":30913.23747069523},"targetPosition":{"x":17901.64382962515,"y":30907.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"dbac6eef-25d2-4cda-86a6-59ce8a9a26bc","savedPayload":{"position":{"x":17901.64382962515,"y":30907.23747069523},"targetPosition":{"x":17909.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a1da9dd3-22ec-4536-bb5a-4d0bb8a56b81","savedPayload":{"position":{"x":17909.64382962515,"y":30970.23747069523},"targetPosition":{"x":17937.64382962515,"y":30945.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"499a5a3b-7871-4c95-9b2e-d58d4d9e2392","savedPayload":{"position":{"x":19766.169146786622,"y":31833.956517318737},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"bitkk","config":"{ \n\"codeName\": \"bitkk\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"efbb916c-780b-447f-a4c2-df68570d4ee1","savedPayload":{"position":{"x":17931.64382962515,"y":30937.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0d829516-81d9-46a5-9861-7d94cc89455d","savedPayload":{"position":{"x":17951.64382962515,"y":30912.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"fc174aa3-c485-4b9b-ba19-444b0189ccb1","savedPayload":{"position":{"x":17788.64382962515,"y":30980.23747069523},"targetPosition":{"x":17834.64382962515,"y":30983.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"15921d8a-4b45-481c-9165-79969ed3fd27","savedPayload":{"position":{"x":17796.64382962515,"y":30936.23747069523},"targetPosition":{"x":17891.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"927d5c8a-85df-48bb-b097-c36abb76ca0e","savedPayload":{"position":{"x":17891.64382962515,"y":30922.23747069523},"targetPosition":{"x":17834.64382962515,"y":30983.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"43d218c2-e633-47d5-8dd8-60bc7f7c0b9e","savedPayload":{"position":{"x":17834.64382962515,"y":30983.23747069523},"targetPosition":{"x":17853.64382962515,"y":30925.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2d310d61-cbc7-4306-af02-be3888939545","savedPayload":{"position":{"x":17853.64382962515,"y":30925.23747069523},"targetPosition":{"x":17951.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ded39740-3c93-4fda-bb9c-6ac75d2109f4","savedPayload":{"position":{"x":19726.911021174266,"y":31957.817257542785},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMart","config":"{ \n\"codeName\": \"bitmart\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"10374855-6b4a-460b-9c95-70072ac00315","savedPayload":{"position":{"x":17907.64382962515,"y":30901.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3aded60c-4061-48ff-ad33-212c965b5c43","savedPayload":{"position":{"x":17829.64382962515,"y":30925.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"1789a3ca-d948-497d-8d1b-1eefd25d16a3","savedPayload":{"position":{"x":17886.64382962515,"y":30937.23747069523},"targetPosition":{"x":17895.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"038170bc-0ca7-4a92-8219-61b7bc8431b0","savedPayload":{"position":{"x":17893.64382962515,"y":31034.23747069523},"targetPosition":{"x":17835.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"55f79ede-ef02-405f-92bd-11902ab3cc7a","savedPayload":{"position":{"x":17835.64382962515,"y":30962.23747069523},"targetPosition":{"x":17895.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8185c660-4af3-4a62-bfa9-8922861101b5","savedPayload":{"position":{"x":17895.64382962515,"y":30988.23747069523},"targetPosition":{"x":17819.64382962515,"y":30909.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"546d48c3-df31-495c-b3b4-cb35109c5542","savedPayload":{"position":{"x":17819.64382962515,"y":30909.23747069523},"targetPosition":{"x":17834.64382962515,"y":30915.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c7ed52a7-895b-46f1-a745-35954d8bcfc6","savedPayload":{"position":{"x":19674.491326722004,"y":32076.707370794375},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMax","config":"{ \n\"codeName\": \"bitmax\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"8a042d0d-7a7a-4a76-889e-42d8642404f4","savedPayload":{"position":{"x":17944.64382962515,"y":31046.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0c4fcc48-51e6-4ff2-925f-405cda6d1122","savedPayload":{"position":{"x":17898.64382962515,"y":31024.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"ef9d5381-d9e3-47f5-9069-6fc14eda0fa3","savedPayload":{"position":{"x":17879.64382962515,"y":31096.23747069523},"targetPosition":{"x":17977.64382962515,"y":31041.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c66fe606-9705-45b0-a196-7ea3efb0221e","savedPayload":{"position":{"x":17982.64382962515,"y":31053.23747069523},"targetPosition":{"x":17943.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"80a5f68e-776a-44de-8797-d2eb806c306e","savedPayload":{"position":{"x":17943.64382962515,"y":31083.23747069523},"targetPosition":{"x":17977.64382962515,"y":31041.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"011fcf1c-1c94-4c36-a246-d6c400aa39dc","savedPayload":{"position":{"x":17977.64382962515,"y":31041.23747069523},"targetPosition":{"x":17942.64382962515,"y":31103.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4a87b8c5-e009-427f-afb7-21afe5594b59","savedPayload":{"position":{"x":17942.64382962515,"y":31103.23747069523},"targetPosition":{"x":17944.64382962515,"y":31109.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fc6a9048-ab8c-48f9-91ae-6c95c28714b0","savedPayload":{"position":{"x":19609.524636419505,"y":32189.2329791979},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BitMEX","config":"{ \n\"codeName\": \"bitmex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f7636e2b-354a-4217-894b-5e26eddc0c2a","savedPayload":{"position":{"x":17894.64382962515,"y":30934.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"6eb2ddd1-6d06-456c-b4e0-7df56ba182e6","savedPayload":{"position":{"x":17823.64382962515,"y":30834.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"b4a4b8fe-d923-4eb0-a066-171b83d1540d","savedPayload":{"position":{"x":17902.64382962515,"y":31064.23747069523},"targetPosition":{"x":17815.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"918ed585-ce46-4d51-a07a-9beee51f70eb","savedPayload":{"position":{"x":17711.64382962515,"y":31036.23747069523},"targetPosition":{"x":17805.64382962515,"y":31078.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"9efef4d8-5be3-4d17-a645-6edffd9535cf","savedPayload":{"position":{"x":17805.64382962515,"y":31078.23747069523},"targetPosition":{"x":17815.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6ad31a6e-f27b-45c3-9996-a41fb39aa154","savedPayload":{"position":{"x":17815.64382962515,"y":30988.23747069523},"targetPosition":{"x":17844.64382962515,"y":30896.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"82887393-cb1c-4b01-8581-4b3dabc86584","savedPayload":{"position":{"x":17844.64382962515,"y":30896.23747069523},"targetPosition":{"x":17910.64382962515,"y":30922.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1e2f1dd0-ebf1-4485-83d8-7723a9e3e714","savedPayload":{"position":{"x":19532.77262531095,"y":32294.07482287797},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bittrex","config":"{ \n\"codeName\": \"bittrex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"88d4ef94-f030-42df-9115-69d9611317b1","savedPayload":{"position":{"x":17839.64382962515,"y":31009.23747069523},"targetPosition":{"x":17893.64382962515,"y":30968.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"7fe8234d-9a39-4b28-bf98-43b4fdb57ee5","savedPayload":{"position":{"x":17878.64382962515,"y":31045.23747069523},"targetPosition":{"x":17893.64382962515,"y":30968.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5ba7fe13-1e0f-403a-8f4b-8e3968d2e5e2","savedPayload":{"position":{"x":17841.64382962515,"y":30890.23747069523},"targetPosition":{"x":17742.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e926fbb8-d2ac-4e3d-aa59-a0a828d202fd","savedPayload":{"position":{"x":17707.64382962515,"y":30983.23747069523},"targetPosition":{"x":17782.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"4fbe41e1-cb15-4bc2-a3de-681c5b22cc97","savedPayload":{"position":{"x":17782.64382962515,"y":31052.23747069523},"targetPosition":{"x":17742.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ab9fe180-1c07-44de-a0a1-863761ac52d6","savedPayload":{"position":{"x":17742.64382962515,"y":30961.23747069523},"targetPosition":{"x":17796.64382962515,"y":30903.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"584f29ca-9b3c-4b7f-a2b0-aab4180ecefd","savedPayload":{"position":{"x":17796.64382962515,"y":30903.23747069523},"targetPosition":{"x":17893.64382962515,"y":30968.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f598f002-8fc5-491f-888e-07d017ea83c6","savedPayload":{"position":{"x":19445.135140551556,"y":32390.003727075255},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bit-Z","config":"{ \n\"codeName\": \"bitz\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"0a22e02b-7d2e-4955-9cfc-ed7d95f0c9a0","savedPayload":{"position":{"x":17751.64382962515,"y":31083.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"298b45af-b73d-4cd5-848a-97de7b857569","savedPayload":{"position":{"x":17944.64382962515,"y":31083.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6ede807b-b1ab-42b5-bfd7-3b12a942447e","savedPayload":{"position":{"x":17871.64382962515,"y":31049.23747069523},"targetPosition":{"x":17772.64382962515,"y":31098.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"dc172858-3241-4487-950a-e5cae03ac376","savedPayload":{"position":{"x":17751.64382962515,"y":31081.23747069523},"targetPosition":{"x":17753.64382962515,"y":31028.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"19c07cee-1fdf-4e02-ac9f-d110b64ee033","savedPayload":{"position":{"x":17753.64382962515,"y":31028.23747069523},"targetPosition":{"x":17772.64382962515,"y":31098.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b4ef5048-ac4c-410e-bd6d-3338e33ab108","savedPayload":{"position":{"x":17772.64382962515,"y":31098.23747069523},"targetPosition":{"x":17788.64382962515,"y":31134.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e7e96c41-c839-4eec-9bcf-1c60d60fa3f5","savedPayload":{"position":{"x":17788.64382962515,"y":31134.23747069523},"targetPosition":{"x":17850.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6cc10926-fe41-43be-887b-fa8aba1c7377","savedPayload":{"position":{"x":19347.639651522415,"y":32475.89501309667},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BTC-Alpha","config":"{ \n\"codeName\": \"btcalpha\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"263e3b9c-8fdd-4376-b53b-87f32d0f5898","savedPayload":{"position":{"x":17904.64382962515,"y":30922.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"804603e1-3e0f-4219-a9b7-ee27810d4f07","savedPayload":{"position":{"x":17829.64382962515,"y":30977.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"83b25fff-e448-483f-9bee-cb85fa592c6e","savedPayload":{"position":{"x":17734.64382962515,"y":30862.23747069523},"targetPosition":{"x":17829.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"efcfa3ca-0f82-4eb7-9b04-ed5eb4e1c3cf","savedPayload":{"position":{"x":17799.64382962515,"y":30864.23747069523},"targetPosition":{"x":17837.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"9ca8d728-ee11-4905-9a3a-5ca4ed50f3df","savedPayload":{"position":{"x":17837.64382962515,"y":30919.23747069523},"targetPosition":{"x":17829.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2cfde277-afa6-4ad3-bb5b-8a32b89e2037","savedPayload":{"position":{"x":17829.64382962515,"y":30960.23747069523},"targetPosition":{"x":17903.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"297a0ea2-f6d7-47fd-9fb7-0d99d00a87d8","savedPayload":{"position":{"x":17903.64382962515,"y":30969.23747069523},"targetPosition":{"x":17883.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"30e5485f-213b-435b-a670-07b76cfe5cae","savedPayload":{"position":{"x":19241.429203691412,"y":32550.741684144767},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BTC Markets","config":"{ \n\"codeName\": \"btcmarkets\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"fcb3b880-0852-4d93-8714-67373f9dca16","savedPayload":{"position":{"x":17911.64382962515,"y":31036.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"953d8eff-0b2e-4b07-8635-393fddae0c9d","savedPayload":{"position":{"x":18025.64382962515,"y":31127.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c08873f6-9120-4764-8b06-c8110468b423","savedPayload":{"position":{"x":17935.64382962515,"y":30927.23747069523},"targetPosition":{"x":18027.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"beaa2557-4976-4e53-8a24-7ea00fc3afd5","savedPayload":{"position":{"x":18054.64382962515,"y":30851.23747069523},"targetPosition":{"x":18125.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"445158a2-91b4-4ad8-8380-036cbba6ad7e","savedPayload":{"position":{"x":18125.64382962515,"y":30951.23747069523},"targetPosition":{"x":18027.64382962515,"y":31003.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cd00e08c-a26d-4b11-93a3-b0e8f35bec4b","savedPayload":{"position":{"x":18027.64382962515,"y":31003.23747069523},"targetPosition":{"x":18016.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"35cb55c1-ceb3-4093-98af-8a1c2411fe0f","savedPayload":{"position":{"x":18016.64382962515,"y":31075.23747069523},"targetPosition":{"x":17994.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ac2fda42-95ca-404a-8dd2-72bff0ff5a0f","savedPayload":{"position":{"x":19127.749017450227,"y":32613.66623143447},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Buda","config":"{ \n\"codeName\": \"buda\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"27f3573d-e1f0-473f-9bfd-f9198e7240a0","savedPayload":{"position":{"x":17945.64382962515,"y":30937.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4ddc0981-4e45-42f3-ae11-f5b136b2bc3d","savedPayload":{"position":{"x":17783.64382962515,"y":31008.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5a325d59-e6a6-4f76-a311-5e67c5f5a8a2","savedPayload":{"position":{"x":17980.64382962515,"y":30843.23747069523},"targetPosition":{"x":17956.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"fb985ab9-7759-4780-a052-8ee9be0b712a","savedPayload":{"position":{"x":17907.64382962515,"y":30968.23747069523},"targetPosition":{"x":17958.64382962515,"y":30884.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fdf7665a-2974-467b-9280-4077a888733f","savedPayload":{"position":{"x":17958.64382962515,"y":30884.23747069523},"targetPosition":{"x":17956.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a3105cfc-f80e-4bcb-b399-6ea9c0f7edf0","savedPayload":{"position":{"x":17956.64382962515,"y":30936.23747069523},"targetPosition":{"x":17872.64382962515,"y":30941.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5d69a76f-e7bc-4538-950e-2e2353eccea3","savedPayload":{"position":{"x":17872.64382962515,"y":30941.23747069523},"targetPosition":{"x":17853.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"90fe3d74-662e-4fac-aff3-f41990b61ccf","savedPayload":{"position":{"x":19007.931889043757,"y":32663.930922181273},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"BW","config":"{ \n\"codeName\": \"bw\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"457616cd-25f9-4ad3-8c18-6331859dd42e","savedPayload":{"position":{"x":17890.64382962515,"y":31014.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8c1f9aa2-4253-4129-a533-e515644ddb38","savedPayload":{"position":{"x":17909.64382962515,"y":30970.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"24314a5b-85ca-4036-adc6-618120496f1d","savedPayload":{"position":{"x":17773.64382962515,"y":30945.23747069523},"targetPosition":{"x":17860.64382962515,"y":30865.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"f7c593f6-bd7a-41f7-a5e7-b2e1ea9a528f","savedPayload":{"position":{"x":17820.64382962515,"y":30885.23747069523},"targetPosition":{"x":17828.64382962515,"y":30802.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"60dfc799-f863-4895-8d17-568aa2303ef5","savedPayload":{"position":{"x":17828.64382962515,"y":30802.23747069523},"targetPosition":{"x":17860.64382962515,"y":30865.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"223e466d-d750-4e38-91ce-8a59c15242ba","savedPayload":{"position":{"x":17860.64382962515,"y":30865.23747069523},"targetPosition":{"x":17818.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cfff1310-5220-4978-9553-8514be141d14","savedPayload":{"position":{"x":17818.64382962515,"y":30919.23747069523},"targetPosition":{"x":17900.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d72db90c-d572-4cbb-8348-e3cc485d8e86","savedPayload":{"position":{"x":18883.38256475272,"y":32700.94644884361},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Bybit","config":"{ \n\"codeName\": \"bybit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"18fdf7c8-03c4-4f81-a88e-de97589765e1","savedPayload":{"position":{"x":17803.64382962515,"y":31059.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"a62b2603-ac6f-4b6e-9541-86daf32027b1","savedPayload":{"position":{"x":17847.64382962515,"y":31104.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"66ecff99-7102-4f4a-9ce8-4d55fb22dfbc","savedPayload":{"position":{"x":17851.64382962515,"y":31165.23747069523},"targetPosition":{"x":17916.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"625e127c-0ebb-4f57-af9f-9dfb57b262a1","savedPayload":{"position":{"x":18004.64382962515,"y":31091.23747069523},"targetPosition":{"x":18008.64382962515,"y":31027.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"8174bb53-66b8-4575-b206-74f9b6352a80","savedPayload":{"position":{"x":18008.64382962515,"y":31027.23747069523},"targetPosition":{"x":17916.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ee16357e-abde-4800-b089-f43f4b696a35","savedPayload":{"position":{"x":17916.64382962515,"y":31077.23747069523},"targetPosition":{"x":17944.64382962515,"y":31101.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c9e9473b-aff9-43c8-a6be-5cd30330bee2","savedPayload":{"position":{"x":17944.64382962515,"y":31101.23747069523},"targetPosition":{"x":17855.64382962515,"y":31007.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"516c3831-456b-4d17-b0a0-6a363ba2ddb2","savedPayload":{"position":{"x":18755.561271527895,"y":32724.27883821499},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"ByteTrade","config":"{ \n\"codeName\": \"bytetrade\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e7a1e531-5a9e-466e-b98d-672de39eed3a","savedPayload":{"position":{"x":18088.64382962515,"y":31024.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"edafaba7-fd82-4d9f-b3f7-5d1c01c56599","savedPayload":{"position":{"x":17941.64382962515,"y":30943.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"50fa78b8-3aea-4e43-adcf-1e31820bf97f","savedPayload":{"position":{"x":17886.64382962515,"y":31008.23747069523},"targetPosition":{"x":17858.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"b9c39b04-e86e-4ebb-9aba-39c375f2960c","savedPayload":{"position":{"x":17865.64382962515,"y":30941.23747069523},"targetPosition":{"x":17953.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5965d9cc-1d68-47a7-b838-e6dd81da6ea9","savedPayload":{"position":{"x":17953.64382962515,"y":31023.23747069523},"targetPosition":{"x":17858.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f51a08be-ee3f-4d3b-a75e-d783d63092a7","savedPayload":{"position":{"x":17858.64382962515,"y":30967.23747069523},"targetPosition":{"x":17898.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d395efd0-691b-4a68-a7f1-9bce95b2f687","savedPayload":{"position":{"x":17898.64382962515,"y":30965.23747069523},"targetPosition":{"x":17991.64382962515,"y":30981.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45e2306f-03e8-4d17-a73a-72c11dd14e78","savedPayload":{"position":{"x":18625.966597164217,"y":32733.65453936303},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CEX.IO","config":"{ \n\"codeName\": \"cex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9de19f0a-5824-4e42-af00-484b64421dc3","savedPayload":{"position":{"x":17890.64382962515,"y":31049.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"39db01bc-0cea-422f-b9e9-7d84e3f5446d","savedPayload":{"position":{"x":17918.64382962515,"y":31105.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"93833d3c-42c9-4e4d-bf0f-5b80a90d10c2","savedPayload":{"position":{"x":17978.64382962515,"y":31126.23747069523},"targetPosition":{"x":17953.64382962515,"y":31167.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"42863a52-30f4-4322-9c20-99a45d6dc3d6","savedPayload":{"position":{"x":17884.64382962515,"y":31149.23747069523},"targetPosition":{"x":17895.64382962515,"y":31148.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fcff471d-29be-4176-8ff8-12088361f9fc","savedPayload":{"position":{"x":17895.64382962515,"y":31148.23747069523},"targetPosition":{"x":17953.64382962515,"y":31167.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f7975a18-b3ab-49bc-ae45-eb02c99aff8c","savedPayload":{"position":{"x":17953.64382962515,"y":31167.23747069523},"targetPosition":{"x":17881.64382962515,"y":31096.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ec432123-43fe-4171-8c41-b797d3161edb","savedPayload":{"position":{"x":17881.64382962515,"y":31096.23747069523},"targetPosition":{"x":17896.64382962515,"y":31076.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"346bfc30-e32a-453a-bdc6-0ead48221581","savedPayload":{"position":{"x":18496.117920729066,"y":32728.96363076407},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Coinbase Prime","config":"{ \n\"codeName\": \"coinbaseprime\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"73cabd8d-9308-49ed-b544-44f785ee7d38","savedPayload":{"position":{"x":17867.64382962515,"y":30962.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"31bd1360-f0c5-4d70-876a-b152f7cedfd7","savedPayload":{"position":{"x":17960.64382962515,"y":30864.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9b75fcfa-fe75-48a8-9d28-2ff19c58c041","savedPayload":{"position":{"x":17792.64382962515,"y":30841.23747069523},"targetPosition":{"x":17809.64382962515,"y":30934.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c900b14a-c728-45af-90f8-29b3e5f29f46","savedPayload":{"position":{"x":17801.64382962515,"y":30986.23747069523},"targetPosition":{"x":17793.64382962515,"y":31006.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"eaf72df3-b66f-4b83-83f9-91e22ec0c300","savedPayload":{"position":{"x":17793.64382962515,"y":31006.23747069523},"targetPosition":{"x":17809.64382962515,"y":30934.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9da95675-2071-41bf-b5ac-4f2af602994f","savedPayload":{"position":{"x":17809.64382962515,"y":30934.23747069523},"targetPosition":{"x":17862.64382962515,"y":31021.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4fc49ad4-57cc-43b0-b14b-15f26af994aa","savedPayload":{"position":{"x":17862.64382962515,"y":31021.23747069523},"targetPosition":{"x":17922.64382962515,"y":30960.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5a8281db-6ace-4186-8cfb-cd249c4af48b","savedPayload":{"position":{"x":18367.537599231866,"y":32710.26110903248},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Coinbase Pro","config":"{ \n\"codeName\": \"coinbasepro\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"a29d6e1a-a94e-4b6b-8741-e9af6e4762f4","savedPayload":{"position":{"x":17788.64382962515,"y":30897.23747069523},"targetPosition":{"x":17841.64382962515,"y":30932.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"10cd9004-0088-4bc0-8fe6-b937f1bb311b","savedPayload":{"position":{"x":17865.64382962515,"y":30918.23747069523},"targetPosition":{"x":17841.64382962515,"y":30932.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"004397e6-ae73-46a6-9ed7-b4ba1930f77b","savedPayload":{"position":{"x":17945.64382962515,"y":30899.23747069523},"targetPosition":{"x":17850.64382962515,"y":30889.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"a81a7021-2228-4386-a773-9ac80c9e723a","savedPayload":{"position":{"x":17738.64382962515,"y":30761.23747069523},"targetPosition":{"x":17792.64382962515,"y":30789.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"482d82f2-364e-483c-b51a-a3fbe8a91577","savedPayload":{"position":{"x":17792.64382962515,"y":30789.23747069523},"targetPosition":{"x":17850.64382962515,"y":30889.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d823ad8e-0452-40f0-bad9-c2cb3ad29a21","savedPayload":{"position":{"x":17850.64382962515,"y":30889.23747069523},"targetPosition":{"x":17772.64382962515,"y":30894.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0c965322-fdd2-4e67-aaf3-dfc4b9dffc59","savedPayload":{"position":{"x":17772.64382962515,"y":30894.23747069523},"targetPosition":{"x":17841.64382962515,"y":30932.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4242da4b-a67e-44d8-8a19-b1c2f078c94c","savedPayload":{"position":{"x":18241.733119380056,"y":32677.766244135688},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CoinEx","config":"{ \n\"codeName\": \"coinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"af78f796-60e5-4794-87b8-772c7bc74be1","savedPayload":{"position":{"x":18043.64382962515,"y":31069.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d351e6d9-36eb-4d0e-aca5-94429bbb23a3","savedPayload":{"position":{"x":18094.64382962515,"y":31090.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"438f74c6-15e0-4553-af2a-febd5290c269","savedPayload":{"position":{"x":17908.64382962515,"y":31088.23747069523},"targetPosition":{"x":17986.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"bfb22430-77c7-41a7-8083-771f7d7f3634","savedPayload":{"position":{"x":17927.64382962515,"y":30953.23747069523},"targetPosition":{"x":17947.64382962515,"y":30990.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"51daaa12-1c60-4cef-96d8-a445b4b32296","savedPayload":{"position":{"x":17947.64382962515,"y":30990.23747069523},"targetPosition":{"x":17986.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"726b8c33-9873-4be1-b9ef-d6b4483f23b1","savedPayload":{"position":{"x":17986.64382962515,"y":31075.23747069523},"targetPosition":{"x":17919.64382962515,"y":31016.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"30469514-b983-4f6f-9d74-6d6ceef25eb6","savedPayload":{"position":{"x":17919.64382962515,"y":31016.23747069523},"targetPosition":{"x":18000.64382962515,"y":31106.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"62ad0961-6bdf-4a4a-a340-610816742d0a","savedPayload":{"position":{"x":18120.179423675774,"y":32631.860008654276},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"COSS","config":"{ \n\"codeName\": \"coss\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e6315232-c6b1-4e25-aade-7bc7ba9ba6ac","savedPayload":{"position":{"x":17787.64382962515,"y":30984.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b1e8451f-09a2-47b0-add3-cf9c35c487bb","savedPayload":{"position":{"x":17829.64382962515,"y":31095.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d1c9b795-0434-4ce1-9cb7-cc61fac7396d","savedPayload":{"position":{"x":17950.64382962515,"y":31149.23747069523},"targetPosition":{"x":17882.64382962515,"y":31131.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"22be64f9-4b08-4ac3-ae89-6726743a7d5a","savedPayload":{"position":{"x":17890.64382962515,"y":31165.23747069523},"targetPosition":{"x":17956.64382962515,"y":31156.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c7462500-ba74-4bf3-ad81-35fa232bede3","savedPayload":{"position":{"x":17956.64382962515,"y":31156.23747069523},"targetPosition":{"x":17882.64382962515,"y":31131.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5cd41ced-981a-4075-af43-3a0497eb0fcb","savedPayload":{"position":{"x":17882.64382962515,"y":31131.23747069523},"targetPosition":{"x":17856.64382962515,"y":31148.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b5937899-c6ee-4d7a-b259-1ee23d721f60","savedPayload":{"position":{"x":17856.64382962515,"y":31148.23747069523},"targetPosition":{"x":17874.64382962515,"y":31049.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"695029de-7f61-45bb-aa4c-c6d51e6369ed","savedPayload":{"position":{"x":18004.301618063546,"y":32573.08061122679},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"CREX24","config":"{ \n\"codeName\": \"crex24\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c5e12f4a-fb26-40d3-9e70-751b55018e74","savedPayload":{"position":{"x":17910.64382962515,"y":31024.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"00cb629e-bad4-4c6e-8abb-499cad3992f4","savedPayload":{"position":{"x":17938.64382962515,"y":31054.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"4909d182-e0d5-49a9-8ad2-a553c8aaaf88","savedPayload":{"position":{"x":17912.64382962515,"y":31301.23747069523},"targetPosition":{"x":17920.64382962515,"y":31249.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"075eb2a2-299b-4a0f-9f6d-76c385521dc4","savedPayload":{"position":{"x":17800.64382962515,"y":31332.23747069523},"targetPosition":{"x":17883.64382962515,"y":31289.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"e062ef2e-b252-4a66-8f58-d9aa8031f526","savedPayload":{"position":{"x":17883.64382962515,"y":31289.23747069523},"targetPosition":{"x":17920.64382962515,"y":31249.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8e75be98-f874-486d-b749-536e364934dc","savedPayload":{"position":{"x":17920.64382962515,"y":31249.23747069523},"targetPosition":{"x":17845.64382962515,"y":31164.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"052f73cd-7ed7-4537-8b01-840b5b892fea","savedPayload":{"position":{"x":17845.64382962515,"y":31164.23747069523},"targetPosition":{"x":17860.64382962515,"y":31075.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07a7ec7c-273e-4675-8d8d-21ab8514a1f0","savedPayload":{"position":{"x":17895.458263866083,"y":32502.117186545547},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Deribit","config":"{ \n\"codeName\": \"deribit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f0b2354b-89e3-4eca-b051-664a3b8283f6","savedPayload":{"position":{"x":17862.64382962515,"y":30844.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"4ae1f824-82a8-4796-a2d5-3d2358d8089f","savedPayload":{"position":{"x":17912.64382962515,"y":31024.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2013fe7a-d52c-4c9d-ba53-d281d014a8fc","savedPayload":{"position":{"x":17873.64382962515,"y":30926.23747069523},"targetPosition":{"x":17855.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"706d5778-ed21-49bd-9277-1840ec52708d","savedPayload":{"position":{"x":17729.64382962515,"y":31033.23747069523},"targetPosition":{"x":17813.64382962515,"y":31053.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"2e76bc02-6e10-4f14-9bf1-a11dc4268466","savedPayload":{"position":{"x":17813.64382962515,"y":31053.23747069523},"targetPosition":{"x":17855.64382962515,"y":30967.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"89a3ccc7-20ab-4e2d-929b-52d9286179b7","savedPayload":{"position":{"x":17855.64382962515,"y":30967.23747069523},"targetPosition":{"x":17818.64382962515,"y":30920.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5c8219e3-4509-4b8b-941b-b88ac2c12237","savedPayload":{"position":{"x":17818.64382962515,"y":30920.23747069523},"targetPosition":{"x":17906.64382962515,"y":30929.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"21971815-4248-45df-8e04-20b9a5a83f06","savedPayload":{"position":{"x":17794.92544989493,"y":32419.801715882462},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"DigiFinex","config":"{ \n\"codeName\": \"digifinex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"e583c93e-9a44-4e0d-acb7-56d7e00a555a","savedPayload":{"position":{"x":17954.64382962515,"y":30992.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8917c7c0-b420-4d4f-a35a-c0fc6870f0de","savedPayload":{"position":{"x":18052.64382962515,"y":30972.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a00b5bb0-5ab9-42e2-91fe-b450c7eb66d2","savedPayload":{"position":{"x":18220.64382962515,"y":31090.23747069523},"targetPosition":{"x":18123.64382962515,"y":30998.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2aafc473-339b-4d23-9b74-06fa7574c293","savedPayload":{"position":{"x":18144.64382962515,"y":31123.23747069523},"targetPosition":{"x":18203.64382962515,"y":31084.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"99e9e136-1ac7-4400-a100-0a2d37f0882d","savedPayload":{"position":{"x":18203.64382962515,"y":31084.23747069523},"targetPosition":{"x":18123.64382962515,"y":30998.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b7cee21b-ddcb-4fd7-b610-43aabb2d1766","savedPayload":{"position":{"x":18123.64382962515,"y":30998.23747069523},"targetPosition":{"x":18032.64382962515,"y":30976.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"08e84a25-4368-4ad6-939f-5a16cece62cc","savedPayload":{"position":{"x":18032.64382962515,"y":30976.23747069523},"targetPosition":{"x":17996.64382962515,"y":31033.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b7d56781-0c51-4ec1-95fd-bf4dc8c00352","savedPayload":{"position":{"x":17703.88183147586,"y":32327.0992728693},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"DSX","config":"{ \n\"codeName\": \"dsx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"d672ab56-cd32-4ff5-8fc5-3733262aeccb","savedPayload":{"position":{"x":17916.64382962515,"y":31106.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"3731a7b5-ba9d-483e-bb41-abf3ae0232c6","savedPayload":{"position":{"x":17878.64382962515,"y":30946.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"9ef7e0ac-dc27-4b47-a06e-0cb7e80ee3d7","savedPayload":{"position":{"x":18124.64382962515,"y":31136.23747069523},"targetPosition":{"x":18093.64382962515,"y":31072.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"77491a3c-3db7-446f-aa67-9b5a1a3be7b3","savedPayload":{"position":{"x":18109.64382962515,"y":31081.23747069523},"targetPosition":{"x":18188.64382962515,"y":31137.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"bd1bd0b7-4943-4aeb-bf90-d3192dcabbb1","savedPayload":{"position":{"x":18188.64382962515,"y":31137.23747069523},"targetPosition":{"x":18093.64382962515,"y":31072.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45747fef-f30e-4fae-b02d-5768ae7dbe68","savedPayload":{"position":{"x":18093.64382962515,"y":31072.23747069523},"targetPosition":{"x":18018.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa2e1c9b-428c-4bb0-9e75-ceb8c9043d4b","savedPayload":{"position":{"x":18018.64382962515,"y":31005.23747069523},"targetPosition":{"x":17955.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4c543abc-7372-4701-bc58-107578d45c25","savedPayload":{"position":{"x":17623.394811792878,"y":32225.09670889175},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FCoin","config":"{ \n\"codeName\": \"fcoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"a97d578c-6d7f-403c-8294-18aacf14abd8","savedPayload":{"position":{"x":17893.64382962515,"y":30953.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"442c3834-482e-4928-9255-8ac859ae012e","savedPayload":{"position":{"x":17905.64382962515,"y":30896.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"79754959-1219-4c4d-be63-22766158beb5","savedPayload":{"position":{"x":18106.64382962515,"y":30976.23747069523},"targetPosition":{"x":18069.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"1c3ae096-5024-43c3-abca-24498254e363","savedPayload":{"position":{"x":18112.64382962515,"y":30919.23747069523},"targetPosition":{"x":18126.64382962515,"y":30965.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"59db5bfd-e413-48a7-af63-237ad56adc82","savedPayload":{"position":{"x":18126.64382962515,"y":30965.23747069523},"targetPosition":{"x":18069.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"833c4e54-08f4-48ec-b90a-2767eb55f244","savedPayload":{"position":{"x":18069.64382962515,"y":31056.23747069523},"targetPosition":{"x":17996.64382962515,"y":30970.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a8cf17b3-0ea7-4a14-8c76-f655344b58a3","savedPayload":{"position":{"x":17996.64382962515,"y":30970.23747069523},"targetPosition":{"x":17919.64382962515,"y":30948.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6ddedcbd-07cb-4928-91b3-348f47118391","savedPayload":{"position":{"x":17554.408027561767,"y":32114.989910750606},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FCoinJP","config":"{ \n\"codeName\": \"fcoinjp\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"4a8a9810-6df6-451a-ab26-22bd7e7be85a","savedPayload":{"position":{"x":17930.64382962515,"y":31129.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"138ab40c-18ca-4a11-9709-0baa040873e6","savedPayload":{"position":{"x":18007.64382962515,"y":31122.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"258cdf92-8ed0-4133-ae2a-b9f086f56a13","savedPayload":{"position":{"x":17897.64382962515,"y":30887.23747069523},"targetPosition":{"x":17903.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"537e8f0c-05ca-4403-bc96-da6c2f4678ae","savedPayload":{"position":{"x":17825.64382962515,"y":30842.23747069523},"targetPosition":{"x":17836.64382962515,"y":30926.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"62519e63-8f4e-4b72-a341-0a6eea01ac3f","savedPayload":{"position":{"x":17836.64382962515,"y":30926.23747069523},"targetPosition":{"x":17903.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b4974cc1-f594-436b-8aa4-aff2733b8e3c","savedPayload":{"position":{"x":17903.64382962515,"y":30977.23747069523},"targetPosition":{"x":17873.64382962515,"y":31061.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d84b404f-75e2-4eb5-b34a-b45af8a57ca7","savedPayload":{"position":{"x":17873.64382962515,"y":31061.23747069523},"targetPosition":{"x":17942.64382962515,"y":31052.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"982627ea-df84-4ba9-9219-612fbe1e4276","savedPayload":{"position":{"x":17497.730285752426,"y":31998.069779982467},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"FTX","config":"{ \n\"codeName\": \"ftx\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"20c0a4f5-bdb9-46cc-af7e-2111964551e3","savedPayload":{"position":{"x":17886.64382962515,"y":30940.23747069523},"targetPosition":{"x":17960.64382962515,"y":31019.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"75c99a0b-d3c9-4073-9283-d33e539c36bb","savedPayload":{"position":{"x":17992.64382962515,"y":31061.23747069523},"targetPosition":{"x":17960.64382962515,"y":31019.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2e037470-549e-4aa8-bbe7-95cdeaef88ea","savedPayload":{"position":{"x":17964.64382962515,"y":31027.23747069523},"targetPosition":{"x":17970.64382962515,"y":31008.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"3b6f5b7b-9c61-4b71-b29a-ca1bc027e55f","savedPayload":{"position":{"x":17817.64382962515,"y":30943.23747069523},"targetPosition":{"x":17890.64382962515,"y":30978.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"a84010f0-04b5-4eab-a3a6-a5944b80a373","savedPayload":{"position":{"x":17890.64382962515,"y":30978.23747069523},"targetPosition":{"x":17970.64382962515,"y":31008.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5cdc51a3-6136-4e03-9e2c-26a752140d17","savedPayload":{"position":{"x":17970.64382962515,"y":31008.23747069523},"targetPosition":{"x":18010.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"55258a2b-3199-4070-beed-d34a8496870c","savedPayload":{"position":{"x":18010.64382962515,"y":30986.23747069523},"targetPosition":{"x":17960.64382962515,"y":31019.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0c0bcf5c-2774-423e-9fcf-c512b38dd06d","savedPayload":{"position":{"x":17454.026081066615,"y":31875.707098219504},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Gate.io","config":"{ \n\"codeName\": \"gateio\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"71a15089-9d40-4726-9a41-37d406064164","savedPayload":{"position":{"x":17930.64382962515,"y":30993.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c025e976-c2c6-49de-81ec-48e2f737b412","savedPayload":{"position":{"x":17925.64382962515,"y":31053.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"876f964a-e12d-4438-87fb-a84be22f86d1","savedPayload":{"position":{"x":17914.64382962515,"y":30833.23747069523},"targetPosition":{"x":17827.64382962515,"y":30882.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"0c5d34c4-467f-4e98-bd39-1b2d9afb834e","savedPayload":{"position":{"x":17852.64382962515,"y":30831.23747069523},"targetPosition":{"x":17870.64382962515,"y":30847.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"89316d8c-893a-46ae-b147-948b4b8a5292","savedPayload":{"position":{"x":17870.64382962515,"y":30847.23747069523},"targetPosition":{"x":17827.64382962515,"y":30882.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a2a5de53-bd45-4904-8bae-0cf5ed66d2af","savedPayload":{"position":{"x":17827.64382962515,"y":30882.23747069523},"targetPosition":{"x":17800.64382962515,"y":30936.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f6f4072d-8cf6-4e47-8b4e-a21cd553348a","savedPayload":{"position":{"x":17800.64382962515,"y":30936.23747069523},"targetPosition":{"x":17880.64382962515,"y":31031.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c4028289-4cdb-4da0-90e6-5f93328b8e03","savedPayload":{"position":{"x":17423.807805345143,"y":31749.336456028108},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Gemini","config":"{ \n\"codeName\": \"gemini\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9eb15872-8d15-4086-9920-46909eb5f9e7","savedPayload":{"position":{"x":17951.64382962515,"y":30901.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"a84dcf06-57c6-47d7-97a0-9f03f3af8b34","savedPayload":{"position":{"x":18045.64382962515,"y":30891.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"5da1ba65-3839-4664-8105-2ccb11652767","savedPayload":{"position":{"x":18028.64382962515,"y":31112.23747069523},"targetPosition":{"x":17941.64382962515,"y":31044.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"337fe5e2-b9fd-40eb-9f42-44fc5057d981","savedPayload":{"position":{"x":17957.64382962515,"y":31129.23747069523},"targetPosition":{"x":17875.64382962515,"y":31086.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"17a3f4a3-8914-4995-afb0-7e8115791b17","savedPayload":{"position":{"x":17875.64382962515,"y":31086.23747069523},"targetPosition":{"x":17941.64382962515,"y":31044.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"32e4a3f1-40d8-421f-9634-7ab339858286","savedPayload":{"position":{"x":17941.64382962515,"y":31044.23747069523},"targetPosition":{"x":17877.64382962515,"y":30977.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"365f6865-e707-415d-a168-b67c66ca9553","savedPayload":{"position":{"x":17877.64382962515,"y":30977.23747069523},"targetPosition":{"x":17971.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"58bf8247-baef-4ea6-a483-7ed8f0ba5043","savedPayload":{"position":{"x":17407.429740242005,"y":31620.439433646203},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"HitBTC","config":"{ \n\"codeName\": \"hitbtc\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"1632c520-fa79-442f-b33b-430cb1356de6","savedPayload":{"position":{"x":17809.64382962515,"y":31086.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"576d1666-dbd3-4914-9fe2-fa05bdf72eea","savedPayload":{"position":{"x":17840.64382962515,"y":31148.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"41317aae-08ce-48cf-a47b-c2d2cc3920ec","savedPayload":{"position":{"x":18096.64382962515,"y":30975.23747069523},"targetPosition":{"x":18026.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"23d7e4ba-8432-4214-bd94-0db5046e39cd","savedPayload":{"position":{"x":18039.64382962515,"y":31075.23747069523},"targetPosition":{"x":17981.64382962515,"y":31126.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ab200349-5ba5-44d2-ad5c-fa826303cfcd","savedPayload":{"position":{"x":17981.64382962515,"y":31126.23747069523},"targetPosition":{"x":18026.64382962515,"y":31066.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a5f24785-5b2c-429b-a2e4-07063e2de904","savedPayload":{"position":{"x":18026.64382962515,"y":31066.23747069523},"targetPosition":{"x":17972.64382962515,"y":31093.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"13f275ca-06a6-4a72-8b4d-a9c079b9cef4","savedPayload":{"position":{"x":17972.64382962515,"y":31093.23747069523},"targetPosition":{"x":17880.64382962515,"y":31069.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8384fa0b-854c-4c23-846e-a5da0179a738","savedPayload":{"position":{"x":17405.083903595932,"y":31490.527230809537},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"HitBTC","config":"{ \n\"codeName\": \"hitbtc2\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9a29cb9e-ee8d-4315-8532-eef82224b84a","savedPayload":{"position":{"x":17838.64382962515,"y":30922.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"badd79e7-1e21-4dc3-bfa7-8dfb4a6c6267","savedPayload":{"position":{"x":17920.64382962515,"y":30944.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"ffdda0b7-af50-4010-84da-2bc0d562af2b","savedPayload":{"position":{"x":17887.64382962515,"y":30982.23747069523},"targetPosition":{"x":17836.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"24816eed-adf7-453e-9b38-42ea4758dbaa","savedPayload":{"position":{"x":18021.64382962515,"y":30979.23747069523},"targetPosition":{"x":17931.64382962515,"y":30923.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"1dd16858-5641-4454-88a3-e5d7446e12a3","savedPayload":{"position":{"x":17931.64382962515,"y":30923.23747069523},"targetPosition":{"x":17836.64382962515,"y":31023.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"457d75ed-ad21-4ee5-b36b-88cdc444008e","savedPayload":{"position":{"x":17836.64382962515,"y":31023.23747069523},"targetPosition":{"x":17808.64382962515,"y":31039.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b29ded7e-e2d5-4c7f-89af-b0816c32c743","savedPayload":{"position":{"x":17808.64382962515,"y":31039.23747069523},"targetPosition":{"x":17829.64382962515,"y":30949.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"09c634c2-5aba-49c5-80bc-4fd4175e7f0c","savedPayload":{"position":{"x":17416.79779819678,"y":31361.12294931652},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Huobi Pro","config":"{ \n\"codeName\": \"huobipro\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"86caa38c-5bdf-40e4-b27b-8d8b64319575","savedPayload":{"position":{"x":18071.64382962515,"y":31171.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"001225af-c715-4566-9502-f8f0ac1c4531","savedPayload":{"position":{"x":18040.64382962515,"y":31019.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"b4bf5ccb-b529-4500-a192-d9c3a0613389","savedPayload":{"position":{"x":18129.64382962515,"y":31073.23747069523},"targetPosition":{"x":18033.64382962515,"y":31090.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2e58c6d1-cfa7-4dc7-a322-e9356596ea1e","savedPayload":{"position":{"x":17976.64382962515,"y":31132.23747069523},"targetPosition":{"x":17953.64382962515,"y":31093.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae04ddf4-ae3e-4bdc-9393-41acc38ef818","savedPayload":{"position":{"x":17953.64382962515,"y":31093.23747069523},"targetPosition":{"x":18033.64382962515,"y":31090.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2428e8ef-6a09-48fa-8ae4-ebfb28420be8","savedPayload":{"position":{"x":18033.64382962515,"y":31090.23747069523},"targetPosition":{"x":18085.64382962515,"y":31157.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"55c71c8b-f21f-4d16-ae93-e29362c39bf5","savedPayload":{"position":{"x":18085.64382962515,"y":31157.23747069523},"targetPosition":{"x":17996.64382962515,"y":31077.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"967c3914-a76d-4389-9c7e-9c258ae683bd","savedPayload":{"position":{"x":17442.43408934047,"y":31233.743736052187},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Huobi Russia","config":"{ \n\"codeName\": \"huobiru\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"9b7b32d6-a42e-44bb-8065-5aa32b1e844b","savedPayload":{"position":{"x":17980.64382962515,"y":31034.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8d74201c-33cd-4e12-8920-b08d0ef97572","savedPayload":{"position":{"x":17992.64382962515,"y":31105.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c6e289d7-074b-4837-96e3-687988886fcc","savedPayload":{"position":{"x":18078.64382962515,"y":30954.23747069523},"targetPosition":{"x":18008.64382962515,"y":31029.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d72f81ba-6b41-414d-9cf0-d5f9c0c25403","savedPayload":{"position":{"x":18026.64382962515,"y":31021.23747069523},"targetPosition":{"x":18083.64382962515,"y":31117.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"5354f66c-6e73-4fe5-80ca-2c25b761ef51","savedPayload":{"position":{"x":18083.64382962515,"y":31117.23747069523},"targetPosition":{"x":18008.64382962515,"y":31029.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"81f5adbb-054c-47f2-b019-52585f5d7417","savedPayload":{"position":{"x":18008.64382962515,"y":31029.23747069523},"targetPosition":{"x":18018.64382962515,"y":31009.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ecd8645b-4bb6-4641-a20f-cee51bf33f1a","savedPayload":{"position":{"x":18018.64382962515,"y":31009.23747069523},"targetPosition":{"x":17957.64382962515,"y":31088.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6f97bb5c-8d85-43ee-86a1-33e22cdfbb5e","savedPayload":{"position":{"x":17481.692214952825,"y":31109.882995828142},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"KKEX","config":"{ \n\"codeName\": \"kkex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"daa4e07a-1cd8-4d92-8004-2eabfaa62f77","savedPayload":{"position":{"x":17924.64382962515,"y":31038.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"cb64951f-d984-4f51-a751-166a316084f3","savedPayload":{"position":{"x":17945.64382962515,"y":31156.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6915bf12-9271-47e2-8b49-924ae9f5c65f","savedPayload":{"position":{"x":17958.64382962515,"y":31297.23747069523},"targetPosition":{"x":17875.64382962515,"y":31252.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"ff53381f-c6dd-4d17-a477-11396f60663f","savedPayload":{"position":{"x":17805.64382962515,"y":31141.23747069523},"targetPosition":{"x":17861.64382962515,"y":31223.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ae05bfc4-6ac8-408c-a90b-263830b2a71e","savedPayload":{"position":{"x":17861.64382962515,"y":31223.23747069523},"targetPosition":{"x":17875.64382962515,"y":31252.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"61c85f1a-a2a6-45c9-bb1e-3c76110f5d1e","savedPayload":{"position":{"x":17875.64382962515,"y":31252.23747069523},"targetPosition":{"x":17911.64382962515,"y":31154.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9fafb114-37d2-4d04-9c42-83d04ff62fc7","savedPayload":{"position":{"x":17911.64382962515,"y":31154.23747069523},"targetPosition":{"x":17987.64382962515,"y":31073.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"16ae95ce-796f-4f2b-942c-f98dcbf9cf4b","savedPayload":{"position":{"x":17534.11190940509,"y":30990.99288257655},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Kraken","config":"{ \n\"codeName\": \"kraken\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"747af60f-c8b9-4377-aa6c-172d4137ea23","savedPayload":{"position":{"x":17854.64382962515,"y":31008.23747069523},"targetPosition":{"x":17946.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c75f7d97-9dc2-4d3e-89eb-f8a3d5f16368","savedPayload":{"position":{"x":17916.64382962515,"y":30872.23747069523},"targetPosition":{"x":17946.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"0093e946-03f4-4aec-942d-c76aed12ab1a","savedPayload":{"position":{"x":17780.64382962515,"y":31091.23747069523},"targetPosition":{"x":17836.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"2a4235ac-e5ea-4484-bccd-f06c8a7275ec","savedPayload":{"position":{"x":17930.64382962515,"y":30869.23747069523},"targetPosition":{"x":17883.64382962515,"y":30953.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"737dec0a-23ab-4044-94ba-95c8bc50c0eb","savedPayload":{"position":{"x":17883.64382962515,"y":30953.23747069523},"targetPosition":{"x":17836.64382962515,"y":31011.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"457b045e-dae5-4f53-a8b7-cab4757e5286","savedPayload":{"position":{"x":17836.64382962515,"y":31011.23747069523},"targetPosition":{"x":17926.64382962515,"y":31005.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6eff12db-8e7c-402a-9e06-ae2618f506a0","savedPayload":{"position":{"x":17926.64382962515,"y":31005.23747069523},"targetPosition":{"x":17946.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"644efe9c-597a-4ddf-9e28-b33fb3b62d3e","savedPayload":{"position":{"x":17599.078599707587,"y":30878.467274173025},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"KuCoin","config":"{ \n\"codeName\": \"kucoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"01ca3037-4ed3-499e-ad6b-e14ca1d4a51f","savedPayload":{"position":{"x":17919.64382962515,"y":30949.23747069523},"targetPosition":{"x":17920.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"8b3c4ce0-98b1-4d46-bd02-6cf44c3dd686","savedPayload":{"position":{"x":17998.64382962515,"y":30978.23747069523},"targetPosition":{"x":17920.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d6c7c0ef-670d-4ed6-9246-6eb7d6bfc359","savedPayload":{"position":{"x":17927.64382962515,"y":30962.23747069523},"targetPosition":{"x":17953.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"e8c2c454-b246-4f63-b51b-74d9cbb01ac2","savedPayload":{"position":{"x":17927.64382962515,"y":30924.23747069523},"targetPosition":{"x":17912.64382962515,"y":30869.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"d2bb2603-3b52-443c-8923-86fefafc0b14","savedPayload":{"position":{"x":17912.64382962515,"y":30869.23747069523},"targetPosition":{"x":17953.64382962515,"y":30954.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fa83b0b9-1039-4406-907c-f809a5af40f5","savedPayload":{"position":{"x":17953.64382962515,"y":30954.23747069523},"targetPosition":{"x":17966.64382962515,"y":30962.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"471161d3-201e-40c6-b433-49643cf7e43b","savedPayload":{"position":{"x":17966.64382962515,"y":30962.23747069523},"targetPosition":{"x":17920.64382962515,"y":30924.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d79bc720-68e1-4771-a66a-bcffa30639d3","savedPayload":{"position":{"x":17675.830610816145,"y":30773.625430492953},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"LBank","config":"{ \n\"codeName\": \"lbank\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"def3f9d0-f09e-4e09-8b6d-a4c322a4384b","savedPayload":{"position":{"x":17877.64382962515,"y":31024.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"53eac3c1-96d6-4cb1-b54d-f3f174eaf733","savedPayload":{"position":{"x":17764.64382962515,"y":31036.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"c6c00704-1357-4426-910e-8134d6f87017","savedPayload":{"position":{"x":18030.64382962515,"y":31212.23747069523},"targetPosition":{"x":17951.64382962515,"y":31172.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"13990604-2192-4be1-b21b-53cf2bafc002","savedPayload":{"position":{"x":17893.64382962515,"y":31189.23747069523},"targetPosition":{"x":17964.64382962515,"y":31122.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"ed2c483e-d412-406d-b6f3-cfb1112a3a05","savedPayload":{"position":{"x":17964.64382962515,"y":31122.23747069523},"targetPosition":{"x":17951.64382962515,"y":31172.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6033b63c-c7fe-4a5d-8cf6-82128e2cfb41","savedPayload":{"position":{"x":17951.64382962515,"y":31172.23747069523},"targetPosition":{"x":17891.64382962515,"y":31096.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"20ece5c4-dbfa-4f4a-a9ee-8c8d9c38943b","savedPayload":{"position":{"x":17891.64382962515,"y":31096.23747069523},"targetPosition":{"x":17838.64382962515,"y":31032.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cb2558d6-dab0-4f35-b83f-7cfc161b3d4f","savedPayload":{"position":{"x":17763.468095575536,"y":30677.69652629567},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Mercado Bitcoin","config":"{ \n\"codeName\": \"mercado\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"83ab2c39-e844-496f-bebb-7b8607428902","savedPayload":{"position":{"x":17849.64382962515,"y":31081.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"d69e722e-c71a-462a-8bbd-d3482d0eab21","savedPayload":{"position":{"x":17771.64382962515,"y":30887.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"18438709-83cf-49a3-96b8-888ab5adbcc5","savedPayload":{"position":{"x":17937.64382962515,"y":31080.23747069523},"targetPosition":{"x":17866.64382962515,"y":31013.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"6b9d4ed4-af81-462a-aace-fac0afd4687a","savedPayload":{"position":{"x":17787.64382962515,"y":30841.23747069523},"targetPosition":{"x":17873.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"802a4c53-8617-4257-95a5-45bfaa60ad0e","savedPayload":{"position":{"x":17873.64382962515,"y":30935.23747069523},"targetPosition":{"x":17866.64382962515,"y":31013.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"87936a4a-aac5-4aca-8f3e-2051611932c4","savedPayload":{"position":{"x":17866.64382962515,"y":31013.23747069523},"targetPosition":{"x":17829.64382962515,"y":30919.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"48f3a793-bb97-447b-8f1a-1d6965219747","savedPayload":{"position":{"x":17829.64382962515,"y":30919.23747069523},"targetPosition":{"x":17849.64382962515,"y":30986.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5002072e-145c-4aeb-a611-3e0e4c60ee5d","savedPayload":{"position":{"x":17860.963584604677,"y":30591.805240274254},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"OKCoin","config":"{ \n\"codeName\": \"okcoin\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"1e4dd5c8-0545-4698-8695-c985880243a3","savedPayload":{"position":{"x":17921.64382962515,"y":31043.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"0e188cae-9764-4963-a78b-e5d7ef272522","savedPayload":{"position":{"x":18005.64382962515,"y":30891.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"6d82bfd7-b4e1-4f93-a0f8-18f62cee944e","savedPayload":{"position":{"x":18047.64382962515,"y":30877.23747069523},"targetPosition":{"x":17963.64382962515,"y":30898.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"d815409c-1dd4-4e89-b844-5b96104509b4","savedPayload":{"position":{"x":17958.64382962515,"y":30988.23747069523},"targetPosition":{"x":17945.64382962515,"y":30961.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"238b9d2c-e2c0-4a77-945e-8e28604c0a2d","savedPayload":{"position":{"x":17945.64382962515,"y":30961.23747069523},"targetPosition":{"x":17963.64382962515,"y":30898.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8416c29a-5d73-4b2a-9463-511f400deafb","savedPayload":{"position":{"x":17963.64382962515,"y":30898.23747069523},"targetPosition":{"x":18047.64382962515,"y":30885.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04abf32b-084e-4784-aa84-8c5612d3b7b9","savedPayload":{"position":{"x":18047.64382962515,"y":30885.23747069523},"targetPosition":{"x":17967.64382962515,"y":30969.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1f860b4b-2893-4a51-8649-19c47d494a37","savedPayload":{"position":{"x":17967.17403243568,"y":30516.958569226157},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"OKEX","config":"{ \n\"codeName\": \"okex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"7f618566-3d10-4c3c-90b2-7541a5146eeb","savedPayload":{"position":{"x":17770.64382962515,"y":31094.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"21205576-5d12-452c-814f-eb56182162ae","savedPayload":{"position":{"x":17794.64382962515,"y":31173.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"46456247-ae9c-41ea-8395-a5e4a78007d4","savedPayload":{"position":{"x":17724.64382962515,"y":31147.23747069523},"targetPosition":{"x":17795.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"706bf601-eaad-48bd-b0a7-8dad59066171","savedPayload":{"position":{"x":17715.64382962515,"y":31182.23747069523},"targetPosition":{"x":17706.64382962515,"y":31162.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"f9c7071c-2e5b-4c90-b482-dfc7ee001244","savedPayload":{"position":{"x":17706.64382962515,"y":31162.23747069523},"targetPosition":{"x":17795.64382962515,"y":31083.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e87e1e10-3404-48b9-8629-5df92ffa1979","savedPayload":{"position":{"x":17795.64382962515,"y":31083.23747069523},"targetPosition":{"x":17789.64382962515,"y":31181.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"08e8fd6a-6b23-4d65-8b8e-d966f845c07f","savedPayload":{"position":{"x":17789.64382962515,"y":31181.23747069523},"targetPosition":{"x":17847.64382962515,"y":31102.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"aa0edec0-8b27-4f94-abce-1e437ce5aba6","savedPayload":{"position":{"x":18080.854218676865,"y":30454.034021936455},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"RightBTC","config":"{ \n\"codeName\": \"rightbtc\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"ade372e9-5070-4fa9-843e-57732c4106c3","savedPayload":{"position":{"x":17999.64382962515,"y":30964.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"b63d440e-4501-475c-b8a6-2b9a144e32a1","savedPayload":{"position":{"x":17984.64382962515,"y":30901.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"81d77477-4f2e-43c0-b284-dde54f91c37f","savedPayload":{"position":{"x":17864.64382962515,"y":31036.23747069523},"targetPosition":{"x":17861.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"9ce3cc34-1ba4-4155-96a5-c946b1bcc5ab","savedPayload":{"position":{"x":17819.64382962515,"y":31127.23747069523},"targetPosition":{"x":17810.64382962515,"y":31080.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"c7df4af7-37c1-403d-ada1-b6a527821bdd","savedPayload":{"position":{"x":17810.64382962515,"y":31080.23747069523},"targetPosition":{"x":17861.64382962515,"y":31043.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6de19501-5ce7-4944-b9dd-25b149acbb38","savedPayload":{"position":{"x":17861.64382962515,"y":31043.23747069523},"targetPosition":{"x":17946.64382962515,"y":30988.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa87ace4-a976-401c-93f9-24a498261742","savedPayload":{"position":{"x":17946.64382962515,"y":30988.23747069523},"targetPosition":{"x":17991.64382962515,"y":30935.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c20cd9e1-52a0-4d17-b90c-e9d5b63315ce","savedPayload":{"position":{"x":18200.67134708334,"y":30403.76933118965},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"STEX","config":"{ \n\"codeName\": \"stex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f1d65161-4922-4a1e-ac98-df1a842347a7","savedPayload":{"position":{"x":17872.64382962515,"y":31001.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"c313b2c6-6154-4a9a-b826-fd99cc500cd9","savedPayload":{"position":{"x":17888.64382962515,"y":31186.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"d0a1259b-1c37-4d39-836e-3c434c3b3687","savedPayload":{"position":{"x":17778.64382962515,"y":31076.23747069523},"targetPosition":{"x":17858.64382962515,"y":31091.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"4a1e5627-459c-4dec-be13-c20d4a9ea58f","savedPayload":{"position":{"x":17841.64382962515,"y":31179.23747069523},"targetPosition":{"x":17795.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"6981eb0d-0f0e-4f8e-9781-4a03e22e93fd","savedPayload":{"position":{"x":17795.64382962515,"y":31105.23747069523},"targetPosition":{"x":17858.64382962515,"y":31091.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7704478a-9717-43a8-bd2e-88daa6f84bd0","savedPayload":{"position":{"x":17858.64382962515,"y":31091.23747069523},"targetPosition":{"x":17941.64382962515,"y":31173.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"262aad86-f430-49ea-a636-e8bd816a9636","savedPayload":{"position":{"x":17941.64382962515,"y":31173.23747069523},"targetPosition":{"x":17892.64382962515,"y":31092.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0ea23137-3c65-4de1-9772-6ac1b65196e8","savedPayload":{"position":{"x":18325.220671374373,"y":30366.753804527314},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TideBit","config":"{ \n\"codeName\": \"tidebit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c92318bd-8b2d-489b-b8e8-cf30fb63286e","savedPayload":{"position":{"x":17981.64382962515,"y":31021.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"83bca3ec-fc1c-435c-b5fe-b1cf92463fd1","savedPayload":{"position":{"x":18051.64382962515,"y":31072.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"2f3ee9b2-cd41-458c-84da-edac3155028a","savedPayload":{"position":{"x":18075.64382962515,"y":31059.23747069523},"targetPosition":{"x":17987.64382962515,"y":31047.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"009ae4b6-adbc-4900-9fc0-f18936eeed9b","savedPayload":{"position":{"x":18030.64382962515,"y":31058.23747069523},"targetPosition":{"x":18009.64382962515,"y":31028.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"3ee88180-fe10-41df-8251-b1ed0a526e7a","savedPayload":{"position":{"x":18009.64382962515,"y":31028.23747069523},"targetPosition":{"x":17987.64382962515,"y":31047.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bb88e6e8-a99a-4c4e-9ca5-ffed49aa8b54","savedPayload":{"position":{"x":17987.64382962515,"y":31047.23747069523},"targetPosition":{"x":17925.64382962515,"y":31135.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"13a4a95e-4333-4455-9f7c-90bc839d174a","savedPayload":{"position":{"x":17925.64382962515,"y":31135.23747069523},"targetPosition":{"x":17978.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5563c310-701a-4c1e-8155-87c08c927ce3","savedPayload":{"position":{"x":18453.041964599197,"y":30343.421415155935},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TimeX","config":"{ \n\"codeName\": \"timex\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"5c004b5f-eec4-414f-8d01-d9b3fddeee9e","savedPayload":{"position":{"x":17892.64382962515,"y":30973.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"59a33add-d0e9-4ae1-8a01-f1e0ed09cb61","savedPayload":{"position":{"x":17911.64382962515,"y":30878.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"a4189ba1-d1d4-4ff8-91dd-a8696ca493e3","savedPayload":{"position":{"x":17953.64382962515,"y":30880.23747069523},"targetPosition":{"x":17924.64382962515,"y":30871.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"3d34eb9d-e7cb-42fe-8785-c327b2bbc529","savedPayload":{"position":{"x":17839.64382962515,"y":30875.23747069523},"targetPosition":{"x":17930.64382962515,"y":30877.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"773de01f-0999-4a59-91f0-642148cd58d0","savedPayload":{"position":{"x":17930.64382962515,"y":30877.23747069523},"targetPosition":{"x":17924.64382962515,"y":30871.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fe33a596-4f98-4843-a5b1-26e7e0fcf1c8","savedPayload":{"position":{"x":17924.64382962515,"y":30871.23747069523},"targetPosition":{"x":18018.64382962515,"y":30832.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d078b9a3-cdc6-458e-a511-dc4f5bef38ba","savedPayload":{"position":{"x":18018.64382962515,"y":30832.23747069523},"targetPosition":{"x":17949.64382962515,"y":30914.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"27d69fa7-b561-4986-8c0d-1b374e7e1bf1","savedPayload":{"position":{"x":18582.63663896287,"y":30334.045714007894},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"TOP.Q","config":"{ \n\"codeName\": \"topq\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"eafef6a3-eed2-470e-a15c-aa4c10001cd2","savedPayload":{"position":{"x":17818.64382962515,"y":31115.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"2d5eb813-ceb6-40cd-8682-7205596bb8b5","savedPayload":{"position":{"x":17759.64382962515,"y":31188.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"61f7832c-c1f0-40bc-b1f2-ba947c58309d","savedPayload":{"position":{"x":17741.64382962515,"y":31288.23747069523},"targetPosition":{"x":17788.64382962515,"y":31228.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"63b973da-30a7-467a-b954-c57537aab18d","savedPayload":{"position":{"x":17677.64382962515,"y":31206.23747069523},"targetPosition":{"x":17756.64382962515,"y":31146.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"722dcf44-de3f-4d1a-8655-80561e1e4d55","savedPayload":{"position":{"x":17756.64382962515,"y":31146.23747069523},"targetPosition":{"x":17788.64382962515,"y":31228.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"45d5e04a-4a53-4f32-b4c0-d882456cb263","savedPayload":{"position":{"x":17788.64382962515,"y":31228.23747069523},"targetPosition":{"x":17806.64382962515,"y":31163.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c66e8dfc-4847-4180-b82c-36458f9b405d","savedPayload":{"position":{"x":17806.64382962515,"y":31163.23747069523},"targetPosition":{"x":17847.64382962515,"y":31105.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8fdf13d8-e8d2-4ef4-8b34-f492a25d753a","savedPayload":{"position":{"x":18712.485315398026,"y":30338.736622606855},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"Upbit","config":"{ \n\"codeName\": \"upbit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"f456fec2-cee6-4f0c-b865-1188088879c9","savedPayload":{"position":{"x":17919.64382962515,"y":30973.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"947c1ca0-bff9-4372-b153-40054e29b705","savedPayload":{"position":{"x":17921.64382962515,"y":31014.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"34ffbe12-5a26-446a-8bf6-7395c0370ba2","savedPayload":{"position":{"x":17874.64382962515,"y":30900.23747069523},"targetPosition":{"x":17945.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"8f00f19d-74a8-48d8-b951-79f35e87b110","savedPayload":{"position":{"x":17906.64382962515,"y":30902.23747069523},"targetPosition":{"x":17896.64382962515,"y":30896.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"64e1bede-aabf-4831-83a6-fe1cea435613","savedPayload":{"position":{"x":17896.64382962515,"y":30896.23747069523},"targetPosition":{"x":17945.64382962515,"y":30971.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7c80b956-f2ca-4a6f-a661-f17546288d3e","savedPayload":{"position":{"x":17945.64382962515,"y":30971.23747069523},"targetPosition":{"x":18027.64382962515,"y":31048.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e3686b02-4ecc-4dcb-a311-b7ef542a3c37","savedPayload":{"position":{"x":18027.64382962515,"y":31048.23747069523},"targetPosition":{"x":17991.64382962515,"y":30980.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"74e57ecd-3394-42b4-b2c4-6f216f7e41db","savedPayload":{"position":{"x":18841.065636895226,"y":30357.439144338445},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"WhiteBit","config":"{ \n\"codeName\": \"whitebit\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"c16eae45-a568-4b2e-b064-4431bdf34c24","savedPayload":{"position":{"x":17767.64382962515,"y":30899.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"dfdf793f-4ba6-4215-a325-323c0f223553","savedPayload":{"position":{"x":17920.64382962515,"y":31004.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"fd749d13-dbac-493f-9af6-c521eddf909f","savedPayload":{"position":{"x":17815.64382962515,"y":30973.23747069523},"targetPosition":{"x":17720.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"79f7d2d0-77a5-4f38-ac68-fd11f18e5e6b","savedPayload":{"position":{"x":17761.64382962515,"y":31182.23747069523},"targetPosition":{"x":17680.64382962515,"y":31153.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"fd0506f4-58b7-431e-bc9d-69bce63c3379","savedPayload":{"position":{"x":17680.64382962515,"y":31153.23747069523},"targetPosition":{"x":17720.64382962515,"y":31056.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"47e8a4b1-9a6c-4555-a881-f7524183d72e","savedPayload":{"position":{"x":17720.64382962515,"y":31056.23747069523},"targetPosition":{"x":17817.64382962515,"y":31010.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7fa08b91-55ab-477d-a097-88ea7f25fb76","savedPayload":{"position":{"x":17817.64382962515,"y":31010.23747069523},"targetPosition":{"x":17834.64382962515,"y":30950.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"467ece1e-d1d0-4a11-ae7a-d0e22cd4eba5","savedPayload":{"position":{"x":18966.87011674703,"y":30389.934009235236},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchange","name":"ZB","config":"{ \n\"codeName\": \"zb\"\n}","project":"Superalgos","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","config":"{ \n\"addMissingAssetsFilter\": { \"quotedAsset\": \"USDT\"} \n}","project":"Superalgos","assets":[],"id":"db206cbd-a587-4e8e-acbe-6581ad3b5cc4","savedPayload":{"position":{"x":17855.64382962515,"y":31027.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","project":"Superalgos","markets":[],"id":"1dd658c5-7755-44b7-85f0-9bcd787762a0","savedPayload":{"position":{"x":17789.64382962515,"y":31044.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeAccounts":{"type":"Exchange Accounts","name":"New Exchange Accounts","project":"Superalgos","userAccounts":[{"type":"User Account","name":"New User Account","project":"Superalgos","userAssets":{"type":"User Assets","name":"New User Assets","project":"Superalgos","assets":[],"id":"0de82bbe-7909-4b65-b304-f59b41f618ae","savedPayload":{"position":{"x":17830.64382962515,"y":30696.23747069523},"targetPosition":{"x":17846.64382962515,"y":30793.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"userKeys":{"type":"User Keys","name":"New User Keys","project":"Superalgos","keys":[{"type":"Exchange Account Key","name":"New Exchange Account Key","config":"{ \n\"codeName\": \"Paste your exchange API name or label\",\n\"secret\": \"Paste your exchange API secret key\"\n}","project":"Superalgos","id":"c89819d0-8880-4b36-a9b3-0b284d266e3b","savedPayload":{"position":{"x":17891.64382962515,"y":30748.23747069523},"targetPosition":{"x":17865.64382962515,"y":30772.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{}}}],"id":"7a55f503-17fa-45c4-880b-1a9a11a0a555","savedPayload":{"position":{"x":17865.64382962515,"y":30772.23747069523},"targetPosition":{"x":17846.64382962515,"y":30793.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e640fca2-8bab-45ff-9a47-8e7b9650c277","savedPayload":{"position":{"x":17846.64382962515,"y":30793.23747069523},"targetPosition":{"x":17909.64382962515,"y":30886.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"421a99cd-3d9a-46a5-8654-08d6336e75be","savedPayload":{"position":{"x":17909.64382962515,"y":30886.23747069523},"targetPosition":{"x":17861.64382962515,"y":30951.23747069523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07df07e8-39a8-4fbc-a0c8-150f20b6ac59","savedPayload":{"position":{"x":19088.423812451314,"y":30435.840244716648},"targetPosition":{"x":18604.301618063546,"y":31533.850126685462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51f64e29-e3ab-4683-a5de-f397fbf94260","savedPayload":{"position":{"x":18603.301618063546,"y":31534.850126685462},"targetPosition":{"x":18903.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchanges","name":"Testing Queue","project":"Superalgos","exchanges":[],"id":"895ce4b1-4890-4216-89ba-a012181d2546","savedPayload":{"position":{"x":18753.301618063546,"y":30755.427263279467},"targetPosition":{"x":18903.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"signalsProviders":[],"id":"7217b56c-e854-4c06-8b8a-d5d3c05a153d","savedPayload":{"position":{"x":18903.301618063546,"y":31015.2348844148},"targetPosition":{"x":18903.301618063546,"y":31015.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Charting Space","name":"New Charting Space","project":"Superalgos","viewport":{"type":"Viewport","name":"New Viewport","config":"{\"zoom\":\"1.60\"}","project":"Superalgos","id":"01713f1d-91b8-44f9-9c5d-a0c12fd09037","savedPayload":{"position":{"x":19200.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"frame":{"position":{"x":-100,"y":-2390.4375}}}},"projectDashboards":[{"type":"Project Dashboards","name":"Superalgos","project":"Superalgos","dashboards":[{"type":"Dashboard","name":"Learning Tasks My Computer","project":"Superalgos","timeMachines":[],"id":"4941166c-ceba-4e29-ae4b-06c68f375f5f","savedPayload":{"position":{"x":18340.99861599605,"y":25133.35640053908},"targetPosition":{"x":18600.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Learning Tasks","name":"New Learning Tasks","id":"0818dfbe-61ea-40b8-8544-bee25d7f45be"}}},{"type":"Dashboard","name":"Testing Trading Tasks My Computer","project":"Superalgos","timeMachines":[{"type":"Time Machine","name":"Hello World Trading System Backtesting Session My Computer Binance BTC/USDT","project":"Superalgos","timeScale":{"type":"Time Scale","name":"New Time Scale","config":"{\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"fromDate\": \"2019-10-16T11:32:25.439Z\",\n \"toDate\": \"2021-06-15T03:51:37.436Z\"\n}","project":"Superalgos","id":"1ca0182e-7a92-4e58-8f30-88ced63cdbf8","savedPayload":{"position":{"x":17851.377661925024,"y":24876.192683445042},"targetPosition":{"x":18081.190994860717,"y":24683.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","config":"{\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": -23193.21972411363,\n \"maxValue\": 91252.95149636637\n}","project":"Superalgos","id":"5e85a00e-877a-4c36-b94d-96de432599ed","savedPayload":{"position":{"x":17799.283208624944,"y":24785.96244353678},"targetPosition":{"x":18081.190994860717,"y":24683.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","config":"{\"value\":\"04-hs\"}","project":"Superalgos","id":"2a0a415a-0920-4e9c-8e89-f8fbfc27d7fa","savedPayload":{"position":{"x":17781.190994860717,"y":24683.35640053908},"targetPosition":{"x":18081.190994860717,"y":24683.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Trading Engine","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading Engine","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading Episode","project":"Superalgos","layers":[{"type":"Layer","name":"Trading Episode Counters","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Trading Episode Counters","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ff7aee6f-1ca2-42f5-a8aa-68603843e897","savedPayload":{"position":{"x":18407.806237131383,"y":24769.35640053908},"targetPosition":{"x":18498.806237131383,"y":24795.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Trading Episode Counters","id":"2a5783fe-af9a-443c-b4e7-32d8bdabff82"}}}],"id":"2654e1af-908b-4723-9cab-ff9ab033a3d4","savedPayload":{"position":{"x":18498.806237131383,"y":24795.35640053908},"targetPosition":{"x":18597.806237131383,"y":24782.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"f38ec36e-c67d-4683-a44e-929b314b582e","savedPayload":{"position":{"x":18534.806237131383,"y":24830.35640053908},"targetPosition":{"x":18597.806237131383,"y":24782.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"34f6e5b3-f0db-48be-b5d3-a11f80ed41a3","savedPayload":{"position":{"x":18597.806237131383,"y":24782.35640053908},"targetPosition":{"x":18662.806237131383,"y":24846.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading Episode Counters","id":"9a2a56d3-0e17-44fb-8ae5-aba6c8dc5522"}}},{"type":"Layer","name":"Trading Episode Statistics","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Trading Episode Statistics","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"12b8fa70-38be-47a9-9e7d-700b61dedaad","savedPayload":{"position":{"x":18529.806237131383,"y":24640.35640053908},"targetPosition":{"x":18542.806237131383,"y":24693.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Trading Episode Statistics","id":"6ea43033-418d-4d87-b640-02010679aa8b"}}}],"id":"47ebcd9b-2f38-4f4c-a0b4-14045c6ca082","savedPayload":{"position":{"x":18542.806237131383,"y":24693.35640053908},"targetPosition":{"x":18635.806237131383,"y":24767.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"fe5e5846-656e-4cd0-ab9f-637aab6509dc","savedPayload":{"position":{"x":18548.806237131383,"y":24794.35640053908},"targetPosition":{"x":18635.806237131383,"y":24767.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a241fae6-720f-4506-bfe7-ff99b483585b","savedPayload":{"position":{"x":18635.806237131383,"y":24767.35640053908},"targetPosition":{"x":18662.806237131383,"y":24846.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading Episode Statistics","id":"dac15491-5d83-4f1f-9bed-1ea7b649dba2"}}},{"type":"Layer","name":"Episode Candle","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"f4779f8f-d666-4456-833b-3a7206f9c4ef","savedPayload":{"position":{"x":18719.806237131383,"y":24954.35640053908},"targetPosition":{"x":18732.806237131383,"y":24942.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"25945a15-8ea8-4d08-b99a-449fce19f143","savedPayload":{"position":{"x":18824.806237131383,"y":24961.35640053908},"targetPosition":{"x":18732.806237131383,"y":24942.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4a2c8e77-6b03-4866-af7a-1616c25c6b54","savedPayload":{"position":{"x":18732.806237131383,"y":24942.35640053908},"targetPosition":{"x":18662.806237131383,"y":24846.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Candle","id":"ad4a94e4-cdd4-43d6-9a5f-e655050203a2"}}},{"type":"Layer","name":"Episode Balances","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Current Balance","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"65b792a2-d980-4780-a4bc-02b584ef6a8d","savedPayload":{"position":{"x":18813.806237131383,"y":24905.35640053908},"targetPosition":{"x":18779.806237131383,"y":24856.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Current Balance","id":"cb03ef16-522f-4189-ab3a-b410bf1f4176"}}}],"id":"516362d5-b798-4f65-9265-ecc16fd78e74","savedPayload":{"position":{"x":18779.806237131383,"y":24856.35640053908},"targetPosition":{"x":18722.806237131383,"y":24779.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"b6a85912-1a80-4cc8-b443-523a01c6585c","savedPayload":{"position":{"x":18718.806237131383,"y":24872.35640053908},"targetPosition":{"x":18722.806237131383,"y":24779.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"468245ae-5711-424d-9f0e-6bf65fe48bb1","savedPayload":{"position":{"x":18722.806237131383,"y":24779.35640053908},"targetPosition":{"x":18662.806237131383,"y":24846.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Balances","id":"ed269260-9cdd-4ed6-98aa-a9e63bd189be"}}},{"type":"Layer","name":"Distance To Trading Event","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"57b72753-b5ff-48e1-b441-a9906ea79971","savedPayload":{"position":{"x":18653.806237131383,"y":24850.35640053908},"targetPosition":{"x":18595.806237131383,"y":24945.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"abe6c423-e6f4-483b-a3c6-7156a89475d4","savedPayload":{"position":{"x":18584.806237131383,"y":24856.35640053908},"targetPosition":{"x":18595.806237131383,"y":24945.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2e887ec5-cfee-4fd8-9cf1-f034b8eebd8d","savedPayload":{"position":{"x":18595.806237131383,"y":24945.35640053908},"targetPosition":{"x":18662.806237131383,"y":24846.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Distance To Trading Event","id":"9412328a-0a81-4d00-ad12-5eeae841aea4"}}},{"type":"Layer","name":"Episode Base Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"8c352597-1ecd-4162-98d3-daf05346d8eb","savedPayload":{"position":{"x":18782.806237131383,"y":24910.35640053908},"targetPosition":{"x":18693.806237131383,"y":24839.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"391f3adc-9ae3-437b-aae0-9298d604f6de","savedPayload":{"position":{"x":18620.806237131383,"y":24742.35640053908},"targetPosition":{"x":18693.806237131383,"y":24839.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e3e46058-c643-4f8b-972e-e3a6f199751f","savedPayload":{"position":{"x":18693.806237131383,"y":24839.35640053908},"targetPosition":{"x":18662.806237131383,"y":24846.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Base Asset","id":"238d6406-1337-4402-a1a8-b396bc7183a8"}}},{"type":"Layer","name":"Episode Quoted Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"601cca16-c7c0-4787-b28e-9e02d0f76b69","savedPayload":{"position":{"x":18483.806237131383,"y":24863.35640053908},"targetPosition":{"x":18573.806237131383,"y":24859.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"63482d85-a633-4cdd-977b-0d74cbc52a90","savedPayload":{"position":{"x":18480.806237131383,"y":24946.35640053908},"targetPosition":{"x":18573.806237131383,"y":24859.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8640499c-9e42-410c-93e7-5fb6be147755","savedPayload":{"position":{"x":18573.806237131383,"y":24859.35640053908},"targetPosition":{"x":18662.806237131383,"y":24846.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episode Quoted Asset","id":"7a260e63-61a3-4567-ba4e-cc2d67be6ee0"}}},{"type":"Layer","name":"Current Episode","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"f2a08e9e-a461-48b9-b451-6c3c3ce09105","savedPayload":{"position":{"x":18563.806237131383,"y":24908.35640053908},"targetPosition":{"x":18662.806237131383,"y":24871.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"e33450eb-cfb5-4cf2-be49-ecd76ba9b5b5","savedPayload":{"position":{"x":18737.806237131383,"y":24885.35640053908},"targetPosition":{"x":18662.806237131383,"y":24871.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c99c6ae3-a6c3-4fec-98fc-495da06b7a40","savedPayload":{"position":{"x":18662.806237131383,"y":24871.35640053908},"targetPosition":{"x":18662.806237131383,"y":24846.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Episode","id":"9005ef6f-f6ea-4e49-baeb-9e93acf181cd"}}}],"layerFolders":[],"id":"4cb6da1a-1cd5-42da-a07f-37f46ab8c90a","savedPayload":{"position":{"x":18662.806237131383,"y":24846.35640053908},"targetPosition":{"x":18665.806237131383,"y":24767.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Strategy","project":"Superalgos","layers":[{"type":"Layer","name":"Current Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"11f189e1-c516-4420-a801-36df5ff060b4","savedPayload":{"position":{"x":18628.806237131383,"y":24841.35640053908},"targetPosition":{"x":18637.806237131383,"y":24817.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"e90ccaf2-8edc-450c-b9a2-fc0bf7a0874e","savedPayload":{"position":{"x":18540.806237131383,"y":24776.35640053908},"targetPosition":{"x":18637.806237131383,"y":24817.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f59f5ba6-56aa-46fa-a4ae-34774dd7430b","savedPayload":{"position":{"x":18637.806237131383,"y":24817.35640053908},"targetPosition":{"x":18651.806237131383,"y":24812.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Strategy","id":"e12d72f5-0a2a-4e63-9f2a-f026e933abda"}}},{"type":"Layer","name":"Last Strategy","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"8e56a258-a11f-4cd2-83ea-e401f7c69040","savedPayload":{"position":{"x":18682.806237131383,"y":24876.35640053908},"targetPosition":{"x":18691.806237131383,"y":24811.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"5f57d97d-8d3f-4809-ad91-d2bf90e7af5c","savedPayload":{"position":{"x":18709.806237131383,"y":24841.35640053908},"targetPosition":{"x":18691.806237131383,"y":24811.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b2cd51b2-5203-49d6-88f8-59cacbf905de","savedPayload":{"position":{"x":18691.806237131383,"y":24811.35640053908},"targetPosition":{"x":18651.806237131383,"y":24812.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Strategy","id":"3a46e1b6-063b-4955-93f2-c01f8015aa37"}}}],"layerFolders":[],"id":"e597dee5-167e-495d-9347-24e921d25346","savedPayload":{"position":{"x":18651.806237131383,"y":24812.35640053908},"targetPosition":{"x":18665.806237131383,"y":24767.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Current Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"e420b35b-8a62-49d4-a2f6-11b42c3ef466","savedPayload":{"position":{"x":18650.806237131383,"y":24626.35640053908},"targetPosition":{"x":18598.806237131383,"y":24657.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"410c59e9-887e-43e4-9f27-b25349b2c729","savedPayload":{"position":{"x":18577.806237131383,"y":24725.35640053908},"targetPosition":{"x":18598.806237131383,"y":24657.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f9eb1b36-3b87-4e8c-b99c-9fe653153418","savedPayload":{"position":{"x":18598.806237131383,"y":24657.35640053908},"targetPosition":{"x":18692.806237131383,"y":24690.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Current Position","id":"8dc7fc2d-e7a2-4ea3-a015-49f0c54b4771"}}},{"type":"Layer","name":"Last Position","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"e1857aad-aae9-4b3a-b9a1-364148cfcbae","savedPayload":{"position":{"x":18638.806237131383,"y":24564.35640053908},"targetPosition":{"x":18695.806237131383,"y":24655.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"d418f529-4243-494c-9b0a-2f14624f0cc0","savedPayload":{"position":{"x":18761.806237131383,"y":24702.35640053908},"targetPosition":{"x":18695.806237131383,"y":24655.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"be29c674-a085-4d27-b7e8-9a3cd8d20f26","savedPayload":{"position":{"x":18695.806237131383,"y":24655.35640053908},"targetPosition":{"x":18692.806237131383,"y":24690.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Position","id":"2eef9228-f520-4955-9585-fcb948680973"}}},{"type":"Layer","name":"Stop Loss","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"9297dd6c-e1d3-40b8-9456-72e75ae61fd9","savedPayload":{"position":{"x":18620.806237131383,"y":24702.35640053908},"targetPosition":{"x":18645.806237131383,"y":24642.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"5c7cef5d-5ab9-4c81-a105-a1ba6e4c954c","savedPayload":{"position":{"x":18596.806237131383,"y":24726.35640053908},"targetPosition":{"x":18645.806237131383,"y":24642.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b38be3f1-2636-4118-9c29-6c4e3983d344","savedPayload":{"position":{"x":18645.806237131383,"y":24642.35640053908},"targetPosition":{"x":18692.806237131383,"y":24690.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Stop Loss","id":"4f04f670-2101-47e4-a331-c586d04f4149"}}},{"type":"Layer","name":"Take Profit","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"e0cc4138-1a5d-443b-b80f-16f94c002dbb","savedPayload":{"position":{"x":18646.806237131383,"y":24832.35640053908},"targetPosition":{"x":18721.806237131383,"y":24775.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"718a2ed1-f05a-48d9-b1c4-d12644ccb68f","savedPayload":{"position":{"x":18709.806237131383,"y":24860.35640053908},"targetPosition":{"x":18721.806237131383,"y":24775.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c7a72cc2-d95d-4368-844c-d910af7d36f9","savedPayload":{"position":{"x":18721.806237131383,"y":24775.35640053908},"targetPosition":{"x":18692.806237131383,"y":24690.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Take Profit","id":"f65f4843-b0d7-41c2-a072-3e8f1d9dfb20"}}}],"layerFolders":[],"id":"98664721-cdb2-48e1-ae5c-8625d2c1de14","savedPayload":{"position":{"x":18692.806237131383,"y":24690.35640053908},"targetPosition":{"x":18665.806237131383,"y":24767.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Open Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"8fdf8b60-0107-4e35-8341-6202520ffe41","savedPayload":{"position":{"x":18729.806237131383,"y":24779.35640053908},"targetPosition":{"x":18661.806237131383,"y":24747.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"9185d086-54f8-48e2-8761-ed7e51f65603","savedPayload":{"position":{"x":18707.806237131383,"y":24744.35640053908},"targetPosition":{"x":18661.806237131383,"y":24747.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"83b0600e-b0d0-42cb-a8c8-87fd51ac269c","savedPayload":{"position":{"x":18661.806237131383,"y":24747.35640053908},"targetPosition":{"x":18577.806237131383,"y":24830.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stage","id":"41a3db28-b2f8-4721-8b02-195067276ee7"}}},{"type":"Layer","name":"Close Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"b6ca30e9-44d1-403e-9b19-2d479dd0942b","savedPayload":{"position":{"x":18515.806237131383,"y":24881.35640053908},"targetPosition":{"x":18516.806237131383,"y":24900.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"6e8f9ee2-3255-47b5-a048-d8418cbda554","savedPayload":{"position":{"x":18513.806237131383,"y":24842.35640053908},"targetPosition":{"x":18516.806237131383,"y":24900.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"41ec96cd-65e0-4ab6-a3d5-3c1f852e3b3e","savedPayload":{"position":{"x":18516.806237131383,"y":24900.35640053908},"targetPosition":{"x":18577.806237131383,"y":24830.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stage","id":"9367b628-1fa8-49b3-abb2-fee833568ff9"}}},{"type":"Layer","name":"Trigger Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"e7361a5c-f5b3-4bb0-a1c7-037504481cd3","savedPayload":{"position":{"x":18517.806237131383,"y":24835.35640053908},"targetPosition":{"x":18525.806237131383,"y":24769.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"34f7e6cc-de2b-43ca-915b-56a0d4048e85","savedPayload":{"position":{"x":18549.806237131383,"y":24792.35640053908},"targetPosition":{"x":18525.806237131383,"y":24769.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0f9a8b84-f36b-436e-bbc8-f99b24ba3b30","savedPayload":{"position":{"x":18525.806237131383,"y":24769.35640053908},"targetPosition":{"x":18577.806237131383,"y":24830.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stage","id":"fb71c26a-5145-491e-a638-927b06eebcc1"}}},{"type":"Layer","name":"Manage Stage","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"5aef5106-dc08-41cd-bc5d-77a29ed175df","savedPayload":{"position":{"x":18549.806237131383,"y":24672.35640053908},"targetPosition":{"x":18533.806237131383,"y":24759.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"f0a478d3-d4bd-47d9-94b4-e5d8afe5490c","savedPayload":{"position":{"x":18472.806237131383,"y":24669.35640053908},"targetPosition":{"x":18533.806237131383,"y":24759.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1b2051ab-8567-4fe4-99ed-4b01c5d95469","savedPayload":{"position":{"x":18533.806237131383,"y":24759.35640053908},"targetPosition":{"x":18577.806237131383,"y":24830.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stage","id":"4c58969f-8f1b-43fa-97a7-42a4fdead527"}}}],"layerFolders":[],"id":"3fc775e2-6fd5-4a78-9451-455b6dbd2e9d","savedPayload":{"position":{"x":18577.806237131383,"y":24830.35640053908},"targetPosition":{"x":18665.806237131383,"y":24767.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"360bb611-9f26-4209-aedf-6df1e279654d","savedPayload":{"position":{"x":18632.806237131383,"y":24797.35640053908},"targetPosition":{"x":18576.806237131383,"y":24698.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"ed832a3f-7384-4e32-9f6e-aa2cb23b5d0e","savedPayload":{"position":{"x":18658.806237131383,"y":24687.35640053908},"targetPosition":{"x":18576.806237131383,"y":24698.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"49dc2a1b-65a7-45ca-b01a-c791a686636d","savedPayload":{"position":{"x":18576.806237131383,"y":24698.35640053908},"targetPosition":{"x":18584.806237131383,"y":24776.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"f0cbbb32-53fa-473a-8c4a-535c1d267060"}}},{"type":"Layer","name":"Market Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"4dba7c2c-dce4-4d0a-999d-db8cc3b076b8","savedPayload":{"position":{"x":18599.806237131383,"y":24926.35640053908},"targetPosition":{"x":18519.806237131383,"y":24827.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"0803cd06-9f60-43c1-b35d-1f531ec54a2e","savedPayload":{"position":{"x":18597.806237131383,"y":24880.35640053908},"targetPosition":{"x":18519.806237131383,"y":24827.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fcd156f6-c612-4cea-920c-a13863ee18ae","savedPayload":{"position":{"x":18519.806237131383,"y":24827.35640053908},"targetPosition":{"x":18584.806237131383,"y":24776.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"7893f1aa-0976-4150-954c-aa6dc4b0206b"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"1516e02b-a9e7-4467-bf74-07d13174f0ad","savedPayload":{"position":{"x":18723.806237131383,"y":24648.35640053908},"targetPosition":{"x":18639.806237131383,"y":24677.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"342e21e5-3617-428a-be5e-62034bb531e2","savedPayload":{"position":{"x":18559.806237131383,"y":24620.35640053908},"targetPosition":{"x":18639.806237131383,"y":24677.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f34faa77-4326-49e6-a555-4a285a983857","savedPayload":{"position":{"x":18639.806237131383,"y":24677.35640053908},"targetPosition":{"x":18584.806237131383,"y":24776.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"b7cfe3e7-e5b4-437c-b3d1-65d6100290b6"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"cdb5c643-5c3e-4ac7-a866-1b5beec581ba","savedPayload":{"position":{"x":18527.806237131383,"y":24885.35640053908},"targetPosition":{"x":18626.806237131383,"y":24791.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"c05890d1-8abd-43c3-aa3d-34a043d213b1","savedPayload":{"position":{"x":18643.806237131383,"y":24709.35640053908},"targetPosition":{"x":18626.806237131383,"y":24791.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"168d789d-ff10-4e08-bafa-9f5f8544f210","savedPayload":{"position":{"x":18626.806237131383,"y":24791.35640053908},"targetPosition":{"x":18584.806237131383,"y":24776.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"d791e38c-a2bc-4aa8-9aec-508145c47df2"}}},{"type":"Layer","name":"Last Market Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"e94a1276-43e0-4587-82a0-87706ca78987","savedPayload":{"position":{"x":18519.806237131383,"y":24776.35640053908},"targetPosition":{"x":18596.806237131383,"y":24736.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"ddfea099-09f5-4b78-9afa-1d7b1b3b5fe2","savedPayload":{"position":{"x":18617.806237131383,"y":24753.35640053908},"targetPosition":{"x":18596.806237131383,"y":24736.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3ddbaa49-41bd-463b-a5d4-737d87cd2dc6","savedPayload":{"position":{"x":18596.806237131383,"y":24736.35640053908},"targetPosition":{"x":18584.806237131383,"y":24776.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Market Order","id":"85b9356c-8c5f-4774-8536-0cd18c05d752"}}},{"type":"Layer","name":"Last Limit Order","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"339ec6ae-b9c0-4074-bf30-37be23529175","savedPayload":{"position":{"x":18544.806237131383,"y":24773.35640053908},"targetPosition":{"x":18608.806237131383,"y":24785.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"ec9d405e-222d-473b-86c9-9ba2cebeacac","savedPayload":{"position":{"x":18703.806237131383,"y":24770.35640053908},"targetPosition":{"x":18608.806237131383,"y":24785.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"393d8dd5-9fb0-42a7-94cf-f33e26acf02e","savedPayload":{"position":{"x":18608.806237131383,"y":24785.35640053908},"targetPosition":{"x":18584.806237131383,"y":24776.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Last Limit Order","id":"efff2729-03f0-445b-941a-863dfd37a208"}}}],"layerFolders":[],"id":"61999979-3554-44da-8714-2ac90f7e0801","savedPayload":{"position":{"x":18584.806237131383,"y":24776.35640053908},"targetPosition":{"x":18665.806237131383,"y":24767.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d009ce95-8509-4995-ae27-6845106b205b","savedPayload":{"position":{"x":18665.806237131383,"y":24767.35640053908},"targetPosition":{"x":18693.806237131383,"y":24796.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"70628710-8b5f-48aa-9a40-d29ccdca6314","savedPayload":{"position":{"x":18693.806237131383,"y":24796.35640053908},"targetPosition":{"x":18793.806237131383,"y":24870.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fdac1efe-2b59-4eac-802a-7397bf26309c","savedPayload":{"position":{"x":18793.806237131383,"y":24870.35640053908},"targetPosition":{"x":18843.806237131383,"y":24885.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1450,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"4135dfad-bc00-4d2b-b3d9-ff8b0c97180f"}}},"id":"1f6e5169-2f7a-42e0-b28d-9f838314d40b","savedPayload":{"position":{"x":17799.283208624944,"y":24580.75035754138},"targetPosition":{"x":18081.190994860717,"y":24683.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Trading System","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Trading System","project":"Superalgos","layers":[{"type":"Layer","name":"Trading System Errors","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"64489655-c390-42ce-9fd0-047f44bb0889","savedPayload":{"position":{"x":18770.806237131383,"y":24947.35640053908},"targetPosition":{"x":18689.806237131383,"y":25008.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"f71db0c4-9223-40b3-981d-1851fd289849","savedPayload":{"position":{"x":18675.806237131383,"y":24943.35640053908},"targetPosition":{"x":18689.806237131383,"y":25008.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1cac1c8e-ed51-4d38-881f-190e8e1c3909","savedPayload":{"position":{"x":18689.806237131383,"y":25008.35640053908},"targetPosition":{"x":18778.806237131383,"y":24939.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Errors","id":"0f891e49-d7fd-4415-b099-ea80dcf5c321"}}},{"type":"Layer","name":"Trading System Highlights","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"a3279bd5-313a-49d8-b8e0-90cd31c3abdf","savedPayload":{"position":{"x":18729.806237131383,"y":24927.35640053908},"targetPosition":{"x":18708.806237131383,"y":24947.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"6fafc2ab-d556-4b88-a29d-c31ad61d32af","savedPayload":{"position":{"x":18746.806237131383,"y":24950.35640053908},"targetPosition":{"x":18708.806237131383,"y":24947.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2a2ad727-4ff7-4760-b4c4-3a6e4aaee73a","savedPayload":{"position":{"x":18708.806237131383,"y":24947.35640053908},"targetPosition":{"x":18778.806237131383,"y":24939.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Highlights","id":"16448d2a-d2d1-4f77-8bd8-2230ac32ec28"}}},{"type":"Layer","name":"Trading System Values","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"d755e785-43ac-4f93-8759-2e629e1dca12","savedPayload":{"position":{"x":18714.806237131383,"y":25014.35640053908},"targetPosition":{"x":18755.806237131383,"y":24944.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"04261468-25d9-4609-ae04-535f9ae859c6","savedPayload":{"position":{"x":18720.806237131383,"y":24928.35640053908},"targetPosition":{"x":18755.806237131383,"y":24944.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"27b5455e-990e-426d-aaf6-f6ea8038d0fc","savedPayload":{"position":{"x":18755.806237131383,"y":24944.35640053908},"targetPosition":{"x":18778.806237131383,"y":24939.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Values","id":"3dcbdc27-4611-41a4-a0c5-aa62b34afee0"}}},{"type":"Layer","name":"Trading System Status","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"9dfb99de-0ff5-4eb1-8265-ac06c943ac2f","savedPayload":{"position":{"x":18776.806237131383,"y":24852.35640053908},"targetPosition":{"x":18703.806237131383,"y":24869.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"b56d9ec1-e56e-4c2d-97c8-2f3a18f0be20","savedPayload":{"position":{"x":18641.806237131383,"y":24848.35640053908},"targetPosition":{"x":18703.806237131383,"y":24869.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"35a0263f-208a-45f4-91e4-44446a06a0b3","savedPayload":{"position":{"x":18703.806237131383,"y":24869.35640053908},"targetPosition":{"x":18778.806237131383,"y":24939.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Status","id":"425b1e48-7a1f-421e-bdea-8801fcbf96c7"}}},{"type":"Layer","name":"Trading System Progress","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"e5c178b0-b09b-49c6-840d-b886e137c99d","savedPayload":{"position":{"x":18659.806237131383,"y":24949.35640053908},"targetPosition":{"x":18706.806237131383,"y":24970.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"be84d087-9024-481b-a5e3-2140978556a9","savedPayload":{"position":{"x":18679.806237131383,"y":24939.35640053908},"targetPosition":{"x":18706.806237131383,"y":24970.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"79c97037-0a1a-4fab-bcd8-a8654db6914c","savedPayload":{"position":{"x":18706.806237131383,"y":24970.35640053908},"targetPosition":{"x":18778.806237131383,"y":24939.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Progress","id":"2e8c8e09-9c00-44b0-94b9-30314ef11cd4"}}},{"type":"Layer","name":"Trading System Running","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"c76e8940-fb0b-4425-a1b1-f9fa09946816","savedPayload":{"position":{"x":18729.806237131383,"y":25044.35640053908},"targetPosition":{"x":18790.806237131383,"y":25036.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"af53bc88-19cc-4533-91a8-65e7db71db8b","savedPayload":{"position":{"x":18771.806237131383,"y":25050.35640053908},"targetPosition":{"x":18790.806237131383,"y":25036.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"08f1f9c1-2070-4981-80b0-11f8d7a0cfd1","savedPayload":{"position":{"x":18790.806237131383,"y":25036.35640053908},"targetPosition":{"x":18778.806237131383,"y":24939.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Running","id":"2fd7020d-cf50-4090-8589-c36c5adae270"}}},{"type":"Layer","name":"Trading System Announcements","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"c498a787-0ed1-4280-8e05-793124cf155c","savedPayload":{"position":{"x":18687.806237131383,"y":24855.35640053908},"targetPosition":{"x":18715.806237131383,"y":24861.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"a08e4f54-2af1-4106-9a11-c2e1ae10de30","savedPayload":{"position":{"x":18633.806237131383,"y":24890.35640053908},"targetPosition":{"x":18715.806237131383,"y":24861.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4a4a1c0e-ff7e-4652-87d3-b4b560cca2fe","savedPayload":{"position":{"x":18715.806237131383,"y":24861.35640053908},"targetPosition":{"x":18778.806237131383,"y":24939.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Announcements","id":"d8897a38-b8e6-4cb7-8dbc-292f97e2a49b"}}},{"type":"Layer","name":"Trading System Warnings","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"5a278835-f21c-4317-ac77-3078845104a7","savedPayload":{"position":{"x":18793.806237131383,"y":24941.35640053908},"targetPosition":{"x":18875.806237131383,"y":25012.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"4b8429fa-56ad-4493-817b-36491a806c54","savedPayload":{"position":{"x":18929.806237131383,"y":25103.35640053908},"targetPosition":{"x":18875.806237131383,"y":25012.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b96663f5-ddd9-4459-98d5-ddb05021df81","savedPayload":{"position":{"x":18875.806237131383,"y":25012.35640053908},"targetPosition":{"x":18778.806237131383,"y":24939.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Warnings","id":"70c1fb7b-bfff-4ff3-8713-a7ce552c8107"}}},{"type":"Layer","name":"Trading System Infos","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[],"id":"59a2f5f0-b91a-4e67-a828-0cedd6d1220d","savedPayload":{"position":{"x":18688.806237131383,"y":25051.35640053908},"targetPosition":{"x":18778.806237131383,"y":24978.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"2c22197a-0ac3-4fe5-993f-1403d6b6c9a9","savedPayload":{"position":{"x":18855.806237131383,"y":25002.35640053908},"targetPosition":{"x":18778.806237131383,"y":24978.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d014d6e8-5c03-4be7-a0c3-cd995bb444fc","savedPayload":{"position":{"x":18778.806237131383,"y":24978.35640053908},"targetPosition":{"x":18778.806237131383,"y":24939.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trading System Infos","id":"a0c0c574-780e-4023-83cd-201c526e9a76"}}}],"layerFolders":[],"id":"dd05b75d-7e41-43c5-a359-2efac0658360","savedPayload":{"position":{"x":18778.806237131383,"y":24939.35640053908},"targetPosition":{"x":18683.806237131383,"y":24970.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d748a835-a823-4bee-8eba-e0fbde14a0fc","savedPayload":{"position":{"x":18683.806237131383,"y":24970.35640053908},"targetPosition":{"x":18765.806237131383,"y":24895.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"64af5d2f-b289-42a4-8449-a989cabafec1","savedPayload":{"position":{"x":18765.806237131383,"y":24895.35640053908},"targetPosition":{"x":18809.806237131383,"y":24940.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1300,"y":80},"width":150,"height":40,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"4135dfad-bc00-4d2b-b3d9-ff8b0c97180f"}}},"id":"0b73bfce-19a3-4a79-9e90-1c158f06c658","savedPayload":{"position":{"x":17851.377661925024,"y":24490.520117633117},"targetPosition":{"x":18081.190994860717,"y":24683.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Simulation Objects","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 1,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Low Frequency","project":"Superalgos","layers":[],"layerFolders":[{"type":"Layer Folder","name":"Simulation Objects","project":"Superalgos","layers":[{"type":"Layer","name":"Episodes","config":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Episode Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"f794c0a4-e246-4894-8889-1d95797e1dde","savedPayload":{"position":{"x":18962.806237131383,"y":24579.35640053908},"targetPosition":{"x":18864.806237131383,"y":24648.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Object","id":"bcbb3368-ea4c-466b-8423-8f0517ad35da"}}},{"type":"Layer Panel","name":"Episode Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"151963bb-404c-49f9-8000-9d04019a9c41","savedPayload":{"position":{"x":18846.806237131383,"y":24647.35640053908},"targetPosition":{"x":18864.806237131383,"y":24648.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Base Asset","id":"b18a5300-448b-4165-9b36-dc5ee37e58cd"}}},{"type":"Layer Panel","name":"Episode Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ba47301d-35be-4df7-b8fb-815517e2a407","savedPayload":{"position":{"x":18955.806237131383,"y":24574.35640053908},"targetPosition":{"x":18864.806237131383,"y":24648.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Episode Quoted Asset","id":"dbdd55de-9279-48ef-a0b1-e50024f284e9"}}}],"id":"5efda7a9-bc8f-4782-9e98-0100a2fe906e","savedPayload":{"position":{"x":18864.806237131383,"y":24648.35640053908},"targetPosition":{"x":18866.806237131383,"y":24745.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5513e365-5c0c-4c33-a658-84f37acd5fc3","savedPayload":{"position":{"x":18877.806237131383,"y":24726.35640053908},"targetPosition":{"x":18927.806237131383,"y":24732.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"7237c558-a0e5-46c6-8cf5-ebc555e98efb"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"d8289909-cdaa-4cb4-94f5-8ed1e1438e9d","savedPayload":{"position":{"x":18980.806237131383,"y":24806.35640053908},"targetPosition":{"x":18927.806237131383,"y":24732.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"4958982a-b51a-40ef-8764-dd5451cf9837"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"71e90c76-ec25-4516-a9e3-1031c630042c","savedPayload":{"position":{"x":19005.806237131383,"y":24762.35640053908},"targetPosition":{"x":18927.806237131383,"y":24732.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"86fefa5e-8de8-4d00-a632-e1827ce60030"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ce608ac6-a7f9-4180-bc69-eb1f2136bbed","savedPayload":{"position":{"x":19002.806237131383,"y":24821.35640053908},"targetPosition":{"x":18927.806237131383,"y":24732.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"79a3b846-3b23-4c01-9aa1-cedcebb5ca03"}}}],"id":"393aeeea-b6d3-4f1c-b417-11dd631379b0","savedPayload":{"position":{"x":18927.806237131383,"y":24732.35640053908},"targetPosition":{"x":18866.806237131383,"y":24745.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"41da7ed1-461e-44c6-a77f-bbab553380ab","savedPayload":{"position":{"x":18866.806237131383,"y":24745.35640053908},"targetPosition":{"x":18883.806237131383,"y":24664.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Episodes","id":"383bb471-7325-48f7-86a2-b034f96e6aec"}}},{"type":"Layer","name":"Strategies","config":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Strategy Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"3a5a7924-cc1c-4a27-b0ce-7a6c8ec4f322","savedPayload":{"position":{"x":18892.806237131383,"y":24590.35640053908},"targetPosition":{"x":18841.806237131383,"y":24631.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Strategy Object","id":"b256b76c-3834-4d62-aa56-f42cce9f47e9"}}}],"id":"49602cb7-2695-495c-ab0d-f5325cbea42c","savedPayload":{"position":{"x":18841.806237131383,"y":24631.35640053908},"targetPosition":{"x":18870.806237131383,"y":24664.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2e09fc50-ace3-4b93-a5e4-bf6338e83626","savedPayload":{"position":{"x":18909.806237131383,"y":24775.35640053908},"targetPosition":{"x":18955.806237131383,"y":24734.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"9ae59a68-71fd-4ec8-9a70-da743f33baee"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"0ed362ec-9e5c-4e44-ad39-e71775791ac6","savedPayload":{"position":{"x":18933.806237131383,"y":24813.35640053908},"targetPosition":{"x":18955.806237131383,"y":24734.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"504f327c-a08d-4c3d-8e77-850299cc30ed"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"922acfb8-3e04-495b-bdef-7d047389348c","savedPayload":{"position":{"x":19001.806237131383,"y":24697.35640053908},"targetPosition":{"x":18955.806237131383,"y":24734.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"f9500afd-e0f4-45d3-9647-45ec778554e8"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"f7402786-3019-4a99-8f78-3d77cae20e3b","savedPayload":{"position":{"x":18942.806237131383,"y":24724.35640053908},"targetPosition":{"x":18955.806237131383,"y":24734.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"354102dd-fd58-4f84-8e90-0d891defa0c8"}}}],"id":"30ccff30-1676-4f4a-89c1-739377c080f7","savedPayload":{"position":{"x":18955.806237131383,"y":24734.35640053908},"targetPosition":{"x":18870.806237131383,"y":24664.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9055e501-b8aa-4ca7-9d46-339b608660ab","savedPayload":{"position":{"x":18870.806237131383,"y":24664.35640053908},"targetPosition":{"x":18883.806237131383,"y":24664.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"1f92d8ed-a3fe-4e70-9e0b-ae9bdd66d8b5"}}}],"layerFolders":[{"type":"Layer Folder","name":"Orders","project":"Superalgos","layers":[{"type":"Layer","name":"Market Buy Orders","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Market Buy Order","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2ed216a9-5847-4743-924b-6f9404bacb24","savedPayload":{"position":{"x":18687.806237131383,"y":24765.35640053908},"targetPosition":{"x":18711.806237131383,"y":24831.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Buy Order","id":"12929733-5964-4948-877b-b1edda37162a"}}},{"type":"Layer Panel","name":"Market Buy Order Stats","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"c31b1cc6-14e1-4734-abd2-760e37955a6d","savedPayload":{"position":{"x":18802.806237131383,"y":24750.35640053908},"targetPosition":{"x":18711.806237131383,"y":24831.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Buy Order Stats","id":"81a88e44-189c-44ec-9607-cb1e4de8baa1"}}},{"type":"Layer Panel","name":"Market Buy Order Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"80f76e1e-c7d5-4fab-baea-4f4bd9ca859b","savedPayload":{"position":{"x":18722.806237131383,"y":24735.35640053908},"targetPosition":{"x":18711.806237131383,"y":24831.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Buy Order Base Asset","id":"608a9068-7324-4f4c-8fdd-d9d8e42e26c6"}}},{"type":"Layer Panel","name":"Market Buy Order Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"6a577c87-6b19-4641-a7c1-fb000426ac24","savedPayload":{"position":{"x":18665.806237131383,"y":24808.35640053908},"targetPosition":{"x":18711.806237131383,"y":24831.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Buy Order Quoted Asset","id":"1a55af5e-821d-4421-80d2-2c543d25ea1a"}}}],"id":"e1b9fc51-6724-4a6a-b635-ba0fb34cac88","savedPayload":{"position":{"x":18711.806237131383,"y":24831.35640053908},"targetPosition":{"x":18811.806237131383,"y":24777.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"83639e7b-ccbe-41d2-a4b5-7bd34d1106fe","savedPayload":{"position":{"x":18931.806237131383,"y":24788.35640053908},"targetPosition":{"x":18903.806237131383,"y":24837.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"6217d021-ea5b-4b20-b093-758a2d2fb5d4"}}}],"id":"350a73ff-1ac1-46bb-b7e3-220b450339d0","savedPayload":{"position":{"x":18903.806237131383,"y":24837.35640053908},"targetPosition":{"x":18811.806237131383,"y":24777.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d3889a48-e6c7-41eb-a703-4043ba1c1de1","savedPayload":{"position":{"x":18811.806237131383,"y":24777.35640053908},"targetPosition":{"x":18806.806237131383,"y":24737.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Buy Orders","id":"483a11f5-ce67-493e-969b-57a5585b1c64"}}},{"type":"Layer","name":"Market Sell Orders","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Market Sell Order","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"96c6a9ff-2fc8-4bc5-ad0b-40d0708bfcc1","savedPayload":{"position":{"x":18641.806237131383,"y":24758.35640053908},"targetPosition":{"x":18695.806237131383,"y":24714.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Sell Order","id":"a5856620-e9ce-4ee1-830c-5b5dc45e9139"}}},{"type":"Layer Panel","name":"Market Sell Order Stats","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"c766a676-907b-412d-8e14-6c6c25972fc3","savedPayload":{"position":{"x":18667.806237131383,"y":24641.35640053908},"targetPosition":{"x":18695.806237131383,"y":24714.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Sell Order Stats","id":"fb23f6bb-8383-4276-8a77-5180e622653a"}}},{"type":"Layer Panel","name":"Market Sell Order Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a71d6e4d-1e3f-4ef2-a0cf-f4203d563941","savedPayload":{"position":{"x":18631.806237131383,"y":24809.35640053908},"targetPosition":{"x":18695.806237131383,"y":24714.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Sell Order Base Asset","id":"3e9e4e57-bd41-41f5-8d52-c92d3a707e80"}}},{"type":"Layer Panel","name":"Market Sell Order Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"e8e526c1-6d1b-4ab2-bcf6-e123c64833ff","savedPayload":{"position":{"x":18764.806237131383,"y":24649.35640053908},"targetPosition":{"x":18695.806237131383,"y":24714.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Market Sell Order Quoted Asset","id":"51d59c30-3a02-4d74-aa62-f1524ea544ee"}}}],"id":"aab2fc72-b246-4d08-9411-3cfbcb43bed1","savedPayload":{"position":{"x":18695.806237131383,"y":24714.35640053908},"targetPosition":{"x":18720.806237131383,"y":24805.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"4768e5d4-a813-4c8d-9d75-c31f4ec71eb5","savedPayload":{"position":{"x":18638.806237131383,"y":24831.35640053908},"targetPosition":{"x":18665.806237131383,"y":24743.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"5b8dcb5c-6b20-4edf-aae5-1c526cdca536"}}}],"id":"8149bbab-4555-4618-a0b3-1b57aef54556","savedPayload":{"position":{"x":18665.806237131383,"y":24743.35640053908},"targetPosition":{"x":18720.806237131383,"y":24805.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bdaef0cf-278f-4a1a-bd46-5fcbd61ea697","savedPayload":{"position":{"x":18720.806237131383,"y":24805.35640053908},"targetPosition":{"x":18806.806237131383,"y":24737.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Market Sell Orders","id":"2b2ce4ec-96b1-425e-8510-450c02a2c6f2"}}},{"type":"Layer","name":"Limit Buy Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Limit Buy Order","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"75d06d6c-b2b0-42f2-b7b8-e286ed1535a7","savedPayload":{"position":{"x":18644.806237131383,"y":24684.35640053908},"targetPosition":{"x":18712.806237131383,"y":24598.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Buy Order","id":"48ec80a7-6f68-4284-9bb5-f04ce3c1052b"}}},{"type":"Layer Panel","name":"Limit Buy Order Stats","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5590c0c1-931e-4869-9f03-68413255ebc8","savedPayload":{"position":{"x":18795.806237131383,"y":24634.35640053908},"targetPosition":{"x":18712.806237131383,"y":24598.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Buy Order Stats","id":"90bd6690-de93-4158-a17f-728c28defc38"}}},{"type":"Layer Panel","name":"Limit Buy Order Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ce398a0c-ed06-4704-80b2-226c156b3b1b","savedPayload":{"position":{"x":18683.806237131383,"y":24655.35640053908},"targetPosition":{"x":18712.806237131383,"y":24598.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Buy Order Base Asset","id":"8504b6e3-83c8-45ea-959a-41303f9d4274"}}},{"type":"Layer Panel","name":"Limit Buy Order Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"f7bb6e8c-b47b-4610-9914-0488313ff393","savedPayload":{"position":{"x":18715.806237131383,"y":24588.35640053908},"targetPosition":{"x":18712.806237131383,"y":24598.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Buy Order Quoted Asset","id":"b60e7e48-8ae7-4701-848b-8faa9ba58c11"}}}],"id":"16ff1f65-5038-49f6-96c3-1a96209cbb81","savedPayload":{"position":{"x":18712.806237131383,"y":24598.35640053908},"targetPosition":{"x":18716.806237131383,"y":24655.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Status Open","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2988fc9c-9095-4598-83fd-143d6cef6895","savedPayload":{"position":{"x":18759.806237131383,"y":24640.35640053908},"targetPosition":{"x":18765.806237131383,"y":24668.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Open","id":"7be8ba85-07e7-4800-8988-ce76d2105b73"}}},{"type":"Layer Polygon","name":"Status Closed Cancel Event","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"b664c2b4-3159-4c93-833f-26ce1d322704","savedPayload":{"position":{"x":18697.806237131383,"y":24666.35640053908},"targetPosition":{"x":18765.806237131383,"y":24668.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Closed Cancel Event","id":"ab881143-5631-4b27-a97a-94138dbd370d"}}},{"type":"Layer Polygon","name":"Status Closed Filled","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"748735ef-a11e-4d75-92f4-4760530b78b4","savedPayload":{"position":{"x":18764.806237131383,"y":24737.35640053908},"targetPosition":{"x":18765.806237131383,"y":24668.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Closed Filled","id":"a54693cf-8ec1-469d-afb9-2a724e4f6af7"}}}],"id":"e2d257a1-815f-4ae6-aee2-a6c4303add78","savedPayload":{"position":{"x":18765.806237131383,"y":24668.35640053908},"targetPosition":{"x":18716.806237131383,"y":24655.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9ce52e75-3009-46fd-9e8a-b5ad739becd9","savedPayload":{"position":{"x":18716.806237131383,"y":24655.35640053908},"targetPosition":{"x":18806.806237131383,"y":24737.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Buy Orders","id":"d425f47e-b69f-467d-b3de-12b563c1fd94"}}},{"type":"Layer","name":"Limit Sell Orders","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Limit Sell Order","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"9c8020fe-54fc-4e7a-a540-350fe1632aab","savedPayload":{"position":{"x":18846.806237131383,"y":24896.35640053908},"targetPosition":{"x":18809.806237131383,"y":24837.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Sell Order","id":"5d485d15-9919-42cc-9399-54c679d7085d"}}},{"type":"Layer Panel","name":"Limit Sell Order Stats","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"9fa665b8-43ed-4410-84da-3f3a2637d5a2","savedPayload":{"position":{"x":18724.806237131383,"y":24832.35640053908},"targetPosition":{"x":18809.806237131383,"y":24837.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Sell Order Stats","id":"db2f6e9c-ce79-4465-a0dc-8ea02fac26b7"}}},{"type":"Layer Panel","name":"Limit Sell Order Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"7dbf755b-c250-42c6-a861-f0acea8a4268","savedPayload":{"position":{"x":18854.806237131383,"y":24775.35640053908},"targetPosition":{"x":18809.806237131383,"y":24837.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Sell Order Base Asset","id":"3e34000e-ad8c-4049-9eee-89e8ea362a0f"}}},{"type":"Layer Panel","name":"Limit Sell Order Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"afd34b5c-dd59-4604-8521-539dd492099f","savedPayload":{"position":{"x":18814.806237131383,"y":24854.35640053908},"targetPosition":{"x":18809.806237131383,"y":24837.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Limit Sell Order Quoted Asset","id":"ae18b041-f16e-4d96-8a83-56845dddf64a"}}}],"id":"2030074b-dee7-4e76-8ad8-6a842b5047ce","savedPayload":{"position":{"x":18809.806237131383,"y":24837.35640053908},"targetPosition":{"x":18744.806237131383,"y":24772.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Status Open","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"35b45c51-401f-4c47-ac4d-46a78d7fb16b","savedPayload":{"position":{"x":18930.806237131383,"y":24718.35640053908},"targetPosition":{"x":18839.806237131383,"y":24712.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Open","id":"186d1b59-7d04-4b40-83c9-acc361b8a12a"}}},{"type":"Layer Polygon","name":"Status Closed Cancel Event","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"81a1970a-47c2-4975-9fc5-10f66580d92d","savedPayload":{"position":{"x":18866.806237131383,"y":24629.35640053908},"targetPosition":{"x":18839.806237131383,"y":24712.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Closed Cancel Event","id":"8e993263-dbfc-4d41-864a-9470e70d7e4f"}}},{"type":"Layer Polygon","name":"Status Closed Filled","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"c6e884d7-bcac-4b98-99b3-5beb01e3dff1","savedPayload":{"position":{"x":18912.806237131383,"y":24631.35640053908},"targetPosition":{"x":18839.806237131383,"y":24712.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Status Closed Filled","id":"bf0751d6-fdb2-4e66-a39c-2bd99252bd60"}}}],"id":"b5177eed-7143-4b29-9410-1c9d09e2c723","savedPayload":{"position":{"x":18839.806237131383,"y":24712.35640053908},"targetPosition":{"x":18744.806237131383,"y":24772.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4c5598b3-91bb-403b-9033-03e45d862dae","savedPayload":{"position":{"x":18744.806237131383,"y":24772.35640053908},"targetPosition":{"x":18806.806237131383,"y":24737.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Limit Sell Orders","id":"b750b34d-3a85-4571-a145-7e8580d5b252"}}}],"layerFolders":[],"id":"1a4bb5f3-7f85-4679-9e44-4e0b24d28cba","savedPayload":{"position":{"x":18806.806237131383,"y":24737.35640053908},"targetPosition":{"x":18883.806237131383,"y":24664.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Stages","project":"Superalgos","layers":[{"type":"Layer","name":"Trigger Stages","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Trigger Stage Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"c2e2fd4b-f865-41b0-acc6-e00fe8d955bc","savedPayload":{"position":{"x":18818.806237131383,"y":24637.35640053908},"targetPosition":{"x":18814.806237131383,"y":24547.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Trigger Stage Object","id":"c10b9b7b-04d8-460b-9dcc-2eaed24e17df"}}}],"id":"3ff840e4-893c-4ae3-8737-8f8e12d77401","savedPayload":{"position":{"x":18814.806237131383,"y":24547.35640053908},"targetPosition":{"x":18850.806237131383,"y":24588.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"4629992c-5b73-4062-aa2f-4bd7567baf40","savedPayload":{"position":{"x":18835.806237131383,"y":24723.35640053908},"targetPosition":{"x":18806.806237131383,"y":24656.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"9e88f3a0-09ad-44fd-a84e-731228860e66"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"1ad93c9b-686a-49bb-ab07-a252b302ad31","savedPayload":{"position":{"x":18861.806237131383,"y":24726.35640053908},"targetPosition":{"x":18806.806237131383,"y":24656.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"e2e18af7-af5f-4634-b8a4-4fabd2ddd7a5"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"7f11eaf1-c8c2-4c9c-9b89-d28fdcdd5c0c","savedPayload":{"position":{"x":18817.806237131383,"y":24737.35640053908},"targetPosition":{"x":18806.806237131383,"y":24656.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"08d916aa-6d2d-497b-8738-9b0966e3901e"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"71173d89-5e02-4464-a542-e843f695c190","savedPayload":{"position":{"x":18709.806237131383,"y":24686.35640053908},"targetPosition":{"x":18806.806237131383,"y":24656.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"70de0f73-5a2d-4a5a-a5f7-1863f192a14d"}}}],"id":"e08622cd-270d-4c0d-bf83-13826e9aee38","savedPayload":{"position":{"x":18806.806237131383,"y":24656.35640053908},"targetPosition":{"x":18850.806237131383,"y":24588.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ba2dedb1-6655-4200-8048-c4d700f2928f","savedPayload":{"position":{"x":18850.806237131383,"y":24588.35640053908},"targetPosition":{"x":18822.806237131383,"y":24671.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trigger Stages","id":"4a23f371-b655-40eb-8e7a-c7e87c1ad276"}}},{"type":"Layer","name":"Open Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Open Stage Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"866fed12-2a56-47d3-bd0d-bda517b99717","savedPayload":{"position":{"x":18959.806237131383,"y":24809.35640053908},"targetPosition":{"x":18960.806237131383,"y":24791.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Open Stage Object","id":"be56e169-d089-4aea-a18a-c01cf16a3485"}}}],"id":"5fef251c-513d-4185-b097-def68bde8068","savedPayload":{"position":{"x":18960.806237131383,"y":24791.35640053908},"targetPosition":{"x":18893.806237131383,"y":24712.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"b6ab7999-1530-4383-ba76-97cf406bac5d","savedPayload":{"position":{"x":18743.806237131383,"y":24620.35640053908},"targetPosition":{"x":18831.806237131383,"y":24688.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"21db891e-4c47-4a5a-88a5-036297086138"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"80a4df99-e2b8-4a29-9f63-dc7d4a6bdcf8","savedPayload":{"position":{"x":18849.806237131383,"y":24660.35640053908},"targetPosition":{"x":18831.806237131383,"y":24688.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"2a3d0d93-13d9-4a9e-8d32-c0aa5d7ab1e3"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"f73cc1a4-0e95-46da-abb0-fb232934db3d","savedPayload":{"position":{"x":18741.806237131383,"y":24685.35640053908},"targetPosition":{"x":18831.806237131383,"y":24688.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"616f49d0-daaa-4b82-be0d-56504b402616"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"18c9f6d0-ffe7-48fa-b665-6a8a050d79e5","savedPayload":{"position":{"x":18881.806237131383,"y":24762.35640053908},"targetPosition":{"x":18831.806237131383,"y":24688.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"0fab39ff-8caf-45f8-8650-33d7a65fa6e1"}}}],"id":"0953779f-e278-4f5f-b012-c6dabfd4208c","savedPayload":{"position":{"x":18831.806237131383,"y":24688.35640053908},"targetPosition":{"x":18893.806237131383,"y":24712.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5c97e662-4ff2-44ab-b615-c31a133ed735","savedPayload":{"position":{"x":18893.806237131383,"y":24712.35640053908},"targetPosition":{"x":18822.806237131383,"y":24671.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Open Stages","id":"b30d6665-4e7e-4e43-959a-c33b09e1cddb"}}},{"type":"Layer","name":"Manage Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Manage Stage Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"487f979d-c9bd-4650-8bb9-16d26df59433","savedPayload":{"position":{"x":18796.806237131383,"y":24666.35640053908},"targetPosition":{"x":18745.806237131383,"y":24666.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Manage Stage Object","id":"3db5604f-cacf-4c87-b1ea-5aa364bf9f48"}}}],"id":"a5723b94-72ff-4cb1-a586-1d5541b68ff0","savedPayload":{"position":{"x":18745.806237131383,"y":24666.35640053908},"targetPosition":{"x":18727.806237131383,"y":24665.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"80936735-9788-48ad-a55a-272b599abd9a","savedPayload":{"position":{"x":18655.806237131383,"y":24696.35640053908},"targetPosition":{"x":18734.806237131383,"y":24601.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"43435aed-68cb-4a56-88c4-2574d91f5b32"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"96609107-9883-46fe-b95c-f91ece213274","savedPayload":{"position":{"x":18743.806237131383,"y":24648.35640053908},"targetPosition":{"x":18734.806237131383,"y":24601.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"904be022-f1e2-475e-9115-88224353cfa2"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5ef2c797-dfd0-4541-91dc-031d7d27113f","savedPayload":{"position":{"x":18734.806237131383,"y":24695.35640053908},"targetPosition":{"x":18734.806237131383,"y":24601.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"4c74d4d8-d0a4-4581-bee7-36485d7a91a5"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"5a13db96-76c2-4550-9c96-f9e8fe584618","savedPayload":{"position":{"x":18778.806237131383,"y":24639.35640053908},"targetPosition":{"x":18734.806237131383,"y":24601.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"9fc6d2c4-a67b-42e8-841b-7523f7ab4962"}}}],"id":"f084177f-b0f6-427a-966a-3090aa9c9770","savedPayload":{"position":{"x":18734.806237131383,"y":24601.35640053908},"targetPosition":{"x":18727.806237131383,"y":24665.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"099a307b-e89f-4e18-a2ac-725b6331b417","savedPayload":{"position":{"x":18727.806237131383,"y":24665.35640053908},"targetPosition":{"x":18822.806237131383,"y":24671.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Manage Stages","id":"aaeccd9c-0981-4431-b89c-f67eaa1e305c"}}},{"type":"Layer","name":"Close Stages","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Close Stage Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"49b740df-9731-418d-88f4-eada104d2bed","savedPayload":{"position":{"x":18665.806237131383,"y":24800.35640053908},"targetPosition":{"x":18728.806237131383,"y":24730.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Close Stage Object","id":"069885e7-351f-45dc-8423-113db65b9592"}}}],"id":"37e06387-5f0c-4acd-9262-ea40874e13ee","savedPayload":{"position":{"x":18728.806237131383,"y":24730.35640053908},"targetPosition":{"x":18757.806237131383,"y":24736.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Closed Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"e02c5fc1-844c-42fe-a203-6025ab762433","savedPayload":{"position":{"x":18799.806237131383,"y":24811.35640053908},"targetPosition":{"x":18788.806237131383,"y":24806.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Closed Base","id":"9463d512-21f5-48c1-8cd6-b14747b338cf"}}},{"type":"Layer Polygon","name":"Open Base","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a9600276-2750-4dd8-b0ef-92a637bd14d8","savedPayload":{"position":{"x":18856.806237131383,"y":24770.35640053908},"targetPosition":{"x":18788.806237131383,"y":24806.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Open Base","id":"c3249cad-9f26-4ff2-ab0d-968c66bb7f2d"}}},{"type":"Layer Polygon","name":"Left Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"e8826a13-4c6a-4d3a-8a6e-58584e3dcaa6","savedPayload":{"position":{"x":18716.806237131383,"y":24712.35640053908},"targetPosition":{"x":18788.806237131383,"y":24806.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Left Line","id":"dbd9d421-d90c-4ab8-a26b-c2254d7abec1"}}},{"type":"Layer Polygon","name":"Right Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"c76bcf44-9244-4f2e-8ecd-49212cbea7f0","savedPayload":{"position":{"x":18856.806237131383,"y":24746.35640053908},"targetPosition":{"x":18788.806237131383,"y":24806.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Right Line","id":"a5e40c24-183d-4896-97b0-f9f0f104c240"}}}],"id":"2ac8c06b-ffaa-4890-9556-511e17d9edd1","savedPayload":{"position":{"x":18788.806237131383,"y":24806.35640053908},"targetPosition":{"x":18757.806237131383,"y":24736.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"86b6f771-c9b9-49b8-ad1e-9d8620a0e067","savedPayload":{"position":{"x":18757.806237131383,"y":24736.35640053908},"targetPosition":{"x":18822.806237131383,"y":24671.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Close Stages","id":"730f6f4d-d48b-4107-9b31-8c6a01f1e660"}}}],"layerFolders":[],"id":"b42f3752-b6c3-4f75-b447-19cdea568c6b","savedPayload":{"position":{"x":18822.806237131383,"y":24671.35640053908},"targetPosition":{"x":18883.806237131383,"y":24664.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer Folder","name":"Position","project":"Superalgos","layers":[{"type":"Layer","name":"Positions","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Position Object","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"51a2a58c-7801-4390-b6b6-bdbdfdd28e9f","savedPayload":{"position":{"x":18888.806237131383,"y":24673.35640053908},"targetPosition":{"x":18939.806237131383,"y":24645.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Position Object","id":"3d274e02-8896-4311-a0c8-9041b6507090"}}},{"type":"Layer Panel","name":"Position Combined Statistics","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"77b9f968-1105-4d30-963f-f213f3e054a9","savedPayload":{"position":{"x":18991.806237131383,"y":24603.35640053908},"targetPosition":{"x":18939.806237131383,"y":24645.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Position Combined Statistics","id":"05d6bb3e-f975-471f-be1f-3215025ce6fe"}}}],"id":"49358e69-8888-4bc9-b151-44520fb5584b","savedPayload":{"position":{"x":18939.806237131383,"y":24645.35640053908},"targetPosition":{"x":18930.806237131383,"y":24724.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Entry Target Rate Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a81da9ee-f6c6-4470-a35f-754ca5734a8e","savedPayload":{"position":{"x":18957.806237131383,"y":24573.35640053908},"targetPosition":{"x":18911.806237131383,"y":24671.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Entry Target Rate Line","id":"543ebae2-5624-49ad-a00f-df63335e92a9"}}},{"type":"Layer Polygon","name":"Exit Target Rate Line","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"e515cb4f-8293-4e7f-85ec-5c992f143465","savedPayload":{"position":{"x":18849.806237131383,"y":24753.35640053908},"targetPosition":{"x":18911.806237131383,"y":24671.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Exit Target Rate Line","id":"b066c240-8552-4622-9597-77e812491910"}}}],"id":"f5130917-f42c-47af-8e47-48ea8b1dd95c","savedPayload":{"position":{"x":18911.806237131383,"y":24671.35640053908},"targetPosition":{"x":18930.806237131383,"y":24724.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"019c44a8-609c-4e66-88cf-024a8b7a834e","savedPayload":{"position":{"x":18930.806237131383,"y":24724.35640053908},"targetPosition":{"x":18909.806237131383,"y":24657.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Positions","id":"840b95d5-ecb4-4a92-891a-cbc271781279"}}},{"type":"Layer","name":"Position Base Asset","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Position Base Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"982e1bad-4937-4403-82ff-ffb9af932fad","savedPayload":{"position":{"x":18805.806237131383,"y":24805.35640053908},"targetPosition":{"x":18851.806237131383,"y":24797.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Position Base Asset","id":"b4298480-8922-4c40-ac79-b4484f8558bd"}}}],"id":"759771f4-c340-4304-af9d-2bc2740d9826","savedPayload":{"position":{"x":18851.806237131383,"y":24797.35640053908},"targetPosition":{"x":18945.806237131383,"y":24713.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Profit Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"4806d19a-ab3c-475a-8d4b-20a9629fbc97","savedPayload":{"position":{"x":18993.806237131383,"y":24756.35640053908},"targetPosition":{"x":18950.806237131383,"y":24658.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Profit Triangle","id":"2628b290-a09a-4807-8a45-7ff5a880d195"}}},{"type":"Layer Polygon","name":"Loss Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"6d3dba40-f262-4100-8995-b6f4cbbc04e2","savedPayload":{"position":{"x":18854.806237131383,"y":24726.35640053908},"targetPosition":{"x":18950.806237131383,"y":24658.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Loss Triangle","id":"e37cfbb4-fe54-49ad-9525-29b0d77e082b"}}},{"type":"Layer Polygon","name":"Empty Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"dffc4add-a0db-4fba-8577-f9adc16a4985","savedPayload":{"position":{"x":18890.806237131383,"y":24646.35640053908},"targetPosition":{"x":18950.806237131383,"y":24658.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Empty Triangle","id":"23c30ca5-95ec-47b2-a65f-01969b1a5a78"}}}],"id":"e7f4e3ab-26e3-4fe9-9f6a-33a9616094d9","savedPayload":{"position":{"x":18950.806237131383,"y":24658.35640053908},"targetPosition":{"x":18945.806237131383,"y":24713.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e3f84108-196e-4ce9-8adf-ec3acb1d9903","savedPayload":{"position":{"x":18945.806237131383,"y":24713.35640053908},"targetPosition":{"x":18909.806237131383,"y":24657.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Base Asset","id":"e3d24ef0-be0f-496a-bb5f-093e588aaae0"}}},{"type":"Layer","name":"Position Quoted Asset","config":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Position Quoted Asset","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"c66693d0-31a8-4611-ba13-015a2c5fabd6","savedPayload":{"position":{"x":19025.806237131383,"y":24745.35640053908},"targetPosition":{"x":18955.806237131383,"y":24661.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Position Quoted Asset","id":"f15d0a31-30bd-49a6-8c45-1bcd1a9cc5a8"}}}],"id":"c012a837-969b-4084-ac0e-dc2b23ac095e","savedPayload":{"position":{"x":18955.806237131383,"y":24661.35640053908},"targetPosition":{"x":18992.806237131383,"y":24595.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"Profit Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2ff0143e-3cac-46a4-b05b-98abf7ba2c4a","savedPayload":{"position":{"x":18963.806237131383,"y":24592.35640053908},"targetPosition":{"x":19017.806237131383,"y":24624.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Profit Triangle","id":"9cf82ef4-557e-498e-b121-ff28235b3a25"}}},{"type":"Layer Polygon","name":"Loss Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"8cf8c087-db65-4b73-acef-fdb86899c428","savedPayload":{"position":{"x":19020.806237131383,"y":24687.35640053908},"targetPosition":{"x":19017.806237131383,"y":24624.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Loss Triangle","id":"61faa796-9697-48b0-a582-613e1b351931"}}},{"type":"Layer Polygon","name":"Empty Triangle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"21692958-b0f7-45d5-af94-ecc87713e8f8","savedPayload":{"position":{"x":19082.806237131383,"y":24595.35640053908},"targetPosition":{"x":19017.806237131383,"y":24624.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"Empty Triangle","id":"58c807a3-8443-43d9-82e9-81c3d0545399"}}}],"id":"f6bf1af5-4047-4516-968f-95ca18a05f17","savedPayload":{"position":{"x":19017.806237131383,"y":24624.35640053908},"targetPosition":{"x":18992.806237131383,"y":24595.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1c40ca28-b2a3-48b7-b2ea-157fa0c91c6d","savedPayload":{"position":{"x":18992.806237131383,"y":24595.35640053908},"targetPosition":{"x":18909.806237131383,"y":24657.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Position Quoted Asset","id":"b5bcd589-1515-47c4-9c8b-2286cb5626f8"}}},{"type":"Layer","name":"Stop Loss","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Stop Loss Panel","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"4b032447-9932-4411-9118-8e8e70dc6dc4","savedPayload":{"position":{"x":18876.806237131383,"y":24526.35640053908},"targetPosition":{"x":18927.806237131383,"y":24590.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Stop Loss Panel","id":"1b6d3bd0-e594-4b09-9f1c-021177676d84"}}}],"id":"d1b3ac6a-67e9-4209-baff-7dcb81bb19b1","savedPayload":{"position":{"x":18927.806237131383,"y":24590.35640053908},"targetPosition":{"x":18835.806237131383,"y":24570.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"775fdebc-875d-476f-9a85-8c2497b6ed7d","savedPayload":{"position":{"x":18977.806237131383,"y":24472.35640053908},"targetPosition":{"x":18880.806237131383,"y":24477.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"9d351f29-6a3e-4c2b-b008-ebe1414d2aa8"}}}],"id":"c40a18af-9e7d-4040-9d25-079dba7144ac","savedPayload":{"position":{"x":18880.806237131383,"y":24477.35640053908},"targetPosition":{"x":18835.806237131383,"y":24570.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b963f6b5-2197-41c3-a62d-389fdce992ec","savedPayload":{"position":{"x":18835.806237131383,"y":24570.35640053908},"targetPosition":{"x":18909.806237131383,"y":24657.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Stop Loss","id":"e063d9a1-b8d1-4461-954f-dbf5104e9305"}}},{"type":"Layer","name":"Take Profit","config":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Take Profit Panel","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"23a740a2-3837-4161-afb0-823546384f6a","savedPayload":{"position":{"x":19049.806237131383,"y":24572.35640053908},"targetPosition":{"x":19017.806237131383,"y":24658.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Take Profit Panel","id":"33aa2293-7958-4cc3-bb41-fc97c17ccd67"}}}],"id":"67025480-fc65-4a1c-96ca-ed2364750dd7","savedPayload":{"position":{"x":19017.806237131383,"y":24658.35640053908},"targetPosition":{"x":18976.806237131383,"y":24705.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"New Polygon","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"abf36b3d-e877-4cd7-b4b7-637289e7b40d","savedPayload":{"position":{"x":19098.806237131383,"y":24794.35640053908},"targetPosition":{"x":19073.806237131383,"y":24734.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"New Polygon","id":"a0b598d2-cdb6-4ce7-96c5-ef3317ae1768"}}}],"id":"f1690285-5457-4a6e-ad98-7c422c744fa5","savedPayload":{"position":{"x":19073.806237131383,"y":24734.35640053908},"targetPosition":{"x":18976.806237131383,"y":24705.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"163bfd9f-ac81-4807-b979-b47fd1e810d8","savedPayload":{"position":{"x":18976.806237131383,"y":24705.35640053908},"targetPosition":{"x":18909.806237131383,"y":24657.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Take Profit","id":"6a117f86-984f-48f6-8156-1c95bf0b3cb8"}}}],"layerFolders":[],"id":"422871c8-3c2c-4423-b4b8-3fa0d664bc57","savedPayload":{"position":{"x":18909.806237131383,"y":24657.35640053908},"targetPosition":{"x":18883.806237131383,"y":24664.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3e9af2f0-5d6c-435b-9349-96096b52345e","savedPayload":{"position":{"x":18883.806237131383,"y":24664.35640053908},"targetPosition":{"x":18894.806237131383,"y":24762.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3ad5cf45-8ed2-4ffd-b2c4-0351374e33c9","savedPayload":{"position":{"x":18894.806237131383,"y":24762.35640053908},"targetPosition":{"x":18895.806237131383,"y":24681.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8a421f71-713e-478a-913c-a84a8ab22b9f","savedPayload":{"position":{"x":18895.806237131383,"y":24681.35640053908},"targetPosition":{"x":18934.806237131383,"y":24763.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1150,"y":80},"width":150,"height":120,"radius":0},"referenceParent":{"type":"Trading Mine Products","name":"Masters","id":"4135dfad-bc00-4d2b-b3d9-ff8b0c97180f"}}},"id":"23b66d99-cb5d-4c02-80d4-14737c1b4203","savedPayload":{"position":{"x":17931.190994860717,"y":24423.548779403747},"targetPosition":{"x":18081.190994860717,"y":24683.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Sparta Data","project":"Superalgos","layerManager":{"type":"Layer Manager","name":"Sparta","config":"{\n \"visibleLayers\": 1,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Simple Moving Average (SMA)","project":"Superalgos","layers":[{"type":"Layer","name":"Popular SMAs","config":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Popular SMA","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"42a78f84-af5e-4969-9ef5-936f78a3954c","savedPayload":{"position":{"x":18968.806237131383,"y":24877.35640053908},"targetPosition":{"x":18950.806237131383,"y":24782.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Popular SMA","id":"7fc74763-c245-4b23-8121-7fe0d1e8e1db"}}}],"id":"9ee0d55c-5af9-422f-a03a-e0c60d112447","savedPayload":{"position":{"x":18950.806237131383,"y":24782.35640053908},"targetPosition":{"x":18930.806237131383,"y":24848.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"SMA 20","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"8f51823d-0dc8-4361-8811-b74063f0796b","savedPayload":{"position":{"x":19006.806237131383,"y":24964.35640053908},"targetPosition":{"x":18928.806237131383,"y":24946.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 20","id":"ffe11ebb-d04f-4bf6-b6ff-43382be7c347"}}},{"type":"Layer Polygon","name":"SMA 50","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"488c897f-dc66-453a-b659-fdf70bcb6cc8","savedPayload":{"position":{"x":18909.806237131383,"y":24959.35640053908},"targetPosition":{"x":18928.806237131383,"y":24946.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 50","id":"c867bef2-aa91-4753-9b27-68f88d42370e"}}},{"type":"Layer Polygon","name":"SMA 100","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"4a0f8be6-a5b7-4fb0-a78d-427ce250617b","savedPayload":{"position":{"x":19008.806237131383,"y":24961.35640053908},"targetPosition":{"x":18928.806237131383,"y":24946.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 100","id":"7473f9b9-7737-4ee1-8418-39b96d8365c3"}}},{"type":"Layer Polygon","name":"SMA 200","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"0035bd78-3ea7-427f-81f7-ab4db3b31155","savedPayload":{"position":{"x":19027.806237131383,"y":25007.35640053908},"targetPosition":{"x":18928.806237131383,"y":24946.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 200","id":"5dbe47bb-9414-4edd-be08-5ab50755a852"}}}],"id":"e20b0c07-fd72-42b5-80d8-7125972b5714","savedPayload":{"position":{"x":18928.806237131383,"y":24946.35640053908},"targetPosition":{"x":18930.806237131383,"y":24848.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5033221e-0a98-4a6e-8caf-9f81f907d802","savedPayload":{"position":{"x":18930.806237131383,"y":24848.35640053908},"targetPosition":{"x":19026.806237131383,"y":24936.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"6ddb2ba7-5caf-43c0-989f-9ce1bebd2cfd"}}},{"type":"Layer","name":"Base7 SMAs","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"SMA Base 7","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"803f2ad0-225a-4064-a904-d8f4b6d3f6d0","savedPayload":{"position":{"x":19003.806237131383,"y":24897.35640053908},"targetPosition":{"x":18987.806237131383,"y":24931.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"SMA Base 7","id":"b73ac725-eea1-4aa2-974c-937de300b456"}}}],"id":"5af02e15-2c45-495c-8fc0-27d99f865fad","savedPayload":{"position":{"x":18987.806237131383,"y":24931.35640053908},"targetPosition":{"x":18959.806237131383,"y":25010.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"SMA 7","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2cb61b60-950f-418b-a405-4a28a385cc3d","savedPayload":{"position":{"x":19142.806237131383,"y":25079.35640053908},"targetPosition":{"x":19058.806237131383,"y":25054.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 7","id":"62ad882d-f16d-4476-8c17-0f6e2d6e2b76"}}},{"type":"Layer Polygon","name":"SMA 14","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"0b6cffd1-9d0a-473b-a868-8eab36c71dac","savedPayload":{"position":{"x":19031.806237131383,"y":25123.35640053908},"targetPosition":{"x":19058.806237131383,"y":25054.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 14","id":"ab179cef-53c3-46f7-a83b-af29ccd8bc90"}}},{"type":"Layer Polygon","name":"SMA 21","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a1d8b984-87b6-4578-980a-5f9ec2d00f4d","savedPayload":{"position":{"x":19134.806237131383,"y":25089.35640053908},"targetPosition":{"x":19058.806237131383,"y":25054.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 21","id":"9a17429f-8213-4a7e-8167-dc36d761973e"}}},{"type":"Layer Polygon","name":"SMA 28","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"008f8dff-3acd-4334-8daa-3917400a15a6","savedPayload":{"position":{"x":19148.806237131383,"y":25066.35640053908},"targetPosition":{"x":19058.806237131383,"y":25054.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 28","id":"4f6e0c60-00a8-4a76-b1b1-4eaa25c5824c"}}},{"type":"Layer Polygon","name":"SMA 35","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"4f30894c-12c2-467b-8847-d530b4eff925","savedPayload":{"position":{"x":19012.806237131383,"y":25096.35640053908},"targetPosition":{"x":19058.806237131383,"y":25054.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 35","id":"a8a09eca-7bee-4f17-b7db-1f43f419441c"}}},{"type":"Layer Polygon","name":"SMA 70","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"8245ca0a-9442-456f-877d-104adf25e7e4","savedPayload":{"position":{"x":19094.806237131383,"y":24954.35640053908},"targetPosition":{"x":19058.806237131383,"y":25054.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 70","id":"31cf093b-6de4-4e4a-a8f4-f3ff989dd374"}}},{"type":"Layer Polygon","name":"SMA 140","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"bd82d497-5586-40e0-9503-7847e6a0f6f0","savedPayload":{"position":{"x":19009.806237131383,"y":25060.35640053908},"targetPosition":{"x":19058.806237131383,"y":25054.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 140","id":"41a149aa-efdf-4f53-82cf-cce9e904a000"}}},{"type":"Layer Polygon","name":"SMA 210","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a6800eed-f574-4a06-ad1c-90ef3cf14dc7","savedPayload":{"position":{"x":19085.806237131383,"y":24992.35640053908},"targetPosition":{"x":19058.806237131383,"y":25054.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 210","id":"c3ee15c5-a5b3-4318-bc09-a9fd03592d83"}}},{"type":"Layer Polygon","name":"SMA 280","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a9379e80-b2eb-445d-99fa-a5f7295913b0","savedPayload":{"position":{"x":18966.806237131383,"y":25036.35640053908},"targetPosition":{"x":19058.806237131383,"y":25054.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 280","id":"3bbf5574-e89c-4538-a95c-2da58e5a74d7"}}},{"type":"Layer Polygon","name":"SMA 350","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"48541783-740e-416c-a774-bf9212726fb8","savedPayload":{"position":{"x":19130.806237131383,"y":25106.35640053908},"targetPosition":{"x":19058.806237131383,"y":25054.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 350","id":"046240f2-f70b-471d-b07b-0e7490222f0d"}}}],"id":"67fa0696-ae4f-4fb9-9727-dce8fc0c3ae3","savedPayload":{"position":{"x":19058.806237131383,"y":25054.35640053908},"targetPosition":{"x":18959.806237131383,"y":25010.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e30601b1-eb9f-4d4f-9e9a-0b331dd17cb4","savedPayload":{"position":{"x":18959.806237131383,"y":25010.35640053908},"targetPosition":{"x":19026.806237131383,"y":24936.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"baf7de68-a10f-4a20-b6cf-d087b8ac1f4c"}}},{"type":"Layer","name":"Base11 SMAs","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"SMA Base 11","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2dcd7def-e08d-4b8f-adb5-201b49dbff56","savedPayload":{"position":{"x":19163.806237131383,"y":24910.35640053908},"targetPosition":{"x":19064.806237131383,"y":25006.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"SMA Base 11","id":"fc702308-8514-4e8d-85d3-5d052aad782c"}}}],"id":"265cac0b-ffe1-4a36-87ae-0abc025304fd","savedPayload":{"position":{"x":19064.806237131383,"y":25006.35640053908},"targetPosition":{"x":19058.806237131383,"y":24936.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"SMA 11","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"0391169d-a5b6-48cb-860f-ba79a3d54311","savedPayload":{"position":{"x":19012.806237131383,"y":24904.35640053908},"targetPosition":{"x":19024.806237131383,"y":24869.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 11","id":"82eff706-25ff-45ba-b066-0f20b64e26e1"}}},{"type":"Layer Polygon","name":"SMA 22","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"bc051bff-8e76-4039-8833-97dbc06fd70c","savedPayload":{"position":{"x":18983.806237131383,"y":24892.35640053908},"targetPosition":{"x":19024.806237131383,"y":24869.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 22","id":"b7186c69-0a02-4820-bb58-1e2cee5790b3"}}},{"type":"Layer Polygon","name":"SMA 33","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"2ad17e13-3232-4aba-9b9a-11b9ad5d6cf3","savedPayload":{"position":{"x":18955.806237131383,"y":24942.35640053908},"targetPosition":{"x":19024.806237131383,"y":24869.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 33","id":"53f19bad-dcb0-476f-8b32-0d332d1ad130"}}},{"type":"Layer Polygon","name":"SMA 55","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"8cff3a39-7c95-471c-926c-bfacf752dab2","savedPayload":{"position":{"x":18946.806237131383,"y":24861.35640053908},"targetPosition":{"x":19024.806237131383,"y":24869.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 55","id":"8341d899-4df1-47f8-8e0d-bb87b76ed622"}}},{"type":"Layer Polygon","name":"SMA 111","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"e59d3153-b5f8-4e41-9128-1bc2f52ffd8d","savedPayload":{"position":{"x":19046.806237131383,"y":24917.35640053908},"targetPosition":{"x":19024.806237131383,"y":24869.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 111","id":"5745a180-5f94-4109-b8e5-41b2c21e9f1a"}}}],"id":"2ccaecec-bf08-4551-b372-dfb0d1697513","savedPayload":{"position":{"x":19024.806237131383,"y":24869.35640053908},"targetPosition":{"x":19058.806237131383,"y":24936.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ad5e81e6-012c-4512-9d43-4bb83436d3e2","savedPayload":{"position":{"x":19058.806237131383,"y":24936.35640053908},"targetPosition":{"x":19026.806237131383,"y":24936.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"f65cacd5-38dd-4027-9afe-474e702562b0"}}},{"type":"Layer","name":"Base5 SMAs","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"SMA Base 5","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"dec3d199-2996-418a-9662-41138a884487","savedPayload":{"position":{"x":18951.806237131383,"y":24885.35640053908},"targetPosition":{"x":18985.806237131383,"y":24905.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"SMA Base 5","id":"aa2c0f1e-8a0e-4da1-97df-6815890e5770"}}}],"id":"1e95e405-c3d8-48ca-afb3-234a594188d3","savedPayload":{"position":{"x":18985.806237131383,"y":24905.35640053908},"targetPosition":{"x":19062.806237131383,"y":24975.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"SMA 5","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"9f7a7b0a-6a40-482d-943e-dedeff04760d","savedPayload":{"position":{"x":19232.806237131383,"y":25132.35640053908},"targetPosition":{"x":19148.806237131383,"y":25040.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 5","id":"9de00c59-ad47-414f-93f4-976d1a798e33"}}},{"type":"Layer Polygon","name":"SMA 10","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"1326abb7-43c1-42b9-89eb-998998aad946","savedPayload":{"position":{"x":19188.806237131383,"y":24955.35640053908},"targetPosition":{"x":19148.806237131383,"y":25040.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 10","id":"0c387d26-20c4-4a66-aac4-599d98b8300e"}}},{"type":"Layer Polygon","name":"SMA 15","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"37ee8517-fb46-4cdf-bd07-e93847ec56fc","savedPayload":{"position":{"x":19198.806237131383,"y":25117.35640053908},"targetPosition":{"x":19148.806237131383,"y":25040.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 15","id":"9f49d18a-dfd7-4d55-8a1e-c186dbfc043e"}}},{"type":"Layer Polygon","name":"SMA 20","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"049625c6-9ce2-48bf-9eb7-613008132b83","savedPayload":{"position":{"x":19210.806237131383,"y":24964.35640053908},"targetPosition":{"x":19148.806237131383,"y":25040.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 20","id":"39db09d1-e5b2-4e83-80b5-41b5af443e3f"}}},{"type":"Layer Polygon","name":"SMA 25","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"ac893a29-aa96-4e79-98cf-b9d707bbee7c","savedPayload":{"position":{"x":19111.806237131383,"y":25089.35640053908},"targetPosition":{"x":19148.806237131383,"y":25040.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 25","id":"9b80c90a-521b-4d8e-ba2b-781f3aee1fb2"}}},{"type":"Layer Polygon","name":"SMA 50","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"38598677-2196-47f9-9258-07b474911649","savedPayload":{"position":{"x":19048.806237131383,"y":25036.35640053908},"targetPosition":{"x":19148.806237131383,"y":25040.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 50","id":"39d6a3fc-1380-4e2d-8de6-13d0b9e7a8e3"}}},{"type":"Layer Polygon","name":"SMA 100","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"24a6fd8a-fe99-49c7-9161-7c412221374c","savedPayload":{"position":{"x":19105.806237131383,"y":24944.35640053908},"targetPosition":{"x":19148.806237131383,"y":25040.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 100","id":"c7c55c53-c6ee-4edc-8b4e-eab2ece17db9"}}},{"type":"Layer Polygon","name":"SMA 150","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"a41b1b61-f6fc-4941-bec0-eebded58f8d3","savedPayload":{"position":{"x":19241.806237131383,"y":25101.35640053908},"targetPosition":{"x":19148.806237131383,"y":25040.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 150","id":"5c7935c9-6393-4e0f-8561-742533c1ebcf"}}},{"type":"Layer Polygon","name":"SMA 200","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"936c20af-7131-48cf-850a-1758c7430c70","savedPayload":{"position":{"x":19141.806237131383,"y":25036.35640053908},"targetPosition":{"x":19148.806237131383,"y":25040.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 200","id":"796fa379-26a6-4443-b515-1be86217f891"}}},{"type":"Layer Polygon","name":"SMA 250","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"1bcd8d06-7207-444f-a804-1043017f0c5a","savedPayload":{"position":{"x":19166.806237131383,"y":25137.35640053908},"targetPosition":{"x":19148.806237131383,"y":25040.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 250","id":"3ec27802-69a6-4c76-8bf5-ba92335ff928"}}},{"type":"Layer Polygon","name":"SMA 500","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"920b101b-5f48-463c-8c84-635d124e4d53","savedPayload":{"position":{"x":19063.806237131383,"y":25036.35640053908},"targetPosition":{"x":19148.806237131383,"y":25040.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 500","id":"d638a3eb-6f91-4c41-9f65-981ba269343a"}}},{"type":"Layer Polygon","name":"SMA 1000","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"931914cc-e96b-483d-bfeb-44dbbacdedd2","savedPayload":{"position":{"x":19151.806237131383,"y":25056.35640053908},"targetPosition":{"x":19148.806237131383,"y":25040.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 1000","id":"8042e9e4-b3be-4d8b-94bc-558b8b97a3f0"}}}],"id":"42492ae7-3697-435d-9e45-31bd1d9b428e","savedPayload":{"position":{"x":19148.806237131383,"y":25040.35640053908},"targetPosition":{"x":19062.806237131383,"y":24975.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"70c9fb67-f27a-4f05-8edb-e05ffb57cee5","savedPayload":{"position":{"x":19062.806237131383,"y":24975.35640053908},"targetPosition":{"x":19026.806237131383,"y":24936.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base5 SMAs","id":"24f5e2e3-80e6-4235-827a-df806c29de60"}}},{"type":"Layer","name":"Base6 SMAs","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"SMA Base 6","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"0e051c5a-c076-4aa8-96bd-c1ae6afe3626","savedPayload":{"position":{"x":18924.806237131383,"y":25006.35640053908},"targetPosition":{"x":18917.806237131383,"y":24979.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"SMA Base 6","id":"40313dff-6c5d-4650-bd51-8767bba6f6ad"}}}],"id":"c81e2539-14dc-4a23-98cb-48b6c4c44e08","savedPayload":{"position":{"x":18917.806237131383,"y":24979.35640053908},"targetPosition":{"x":18969.806237131383,"y":24884.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[{"type":"Layer Polygon","name":"SMA 6","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"58334fda-6935-4bf7-afb4-1a05b1055390","savedPayload":{"position":{"x":19047.806237131383,"y":24891.35640053908},"targetPosition":{"x":19040.806237131383,"y":24960.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 6","id":"12470549-c8b6-453f-a87a-396921a0a871"}}},{"type":"Layer Polygon","name":"SMA 12","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"34239b6b-7b3a-41b4-9988-68d66e52be74","savedPayload":{"position":{"x":19022.806237131383,"y":24918.35640053908},"targetPosition":{"x":19040.806237131383,"y":24960.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 12","id":"986a8bf8-3b7a-4421-80bd-940fa3bfe496"}}},{"type":"Layer Polygon","name":"SMA 18","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"adf39206-0b86-4895-8284-9dd574523d51","savedPayload":{"position":{"x":19036.806237131383,"y":25028.35640053908},"targetPosition":{"x":19040.806237131383,"y":24960.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 18","id":"9f9eeee3-ebd5-4f65-9079-cd0ac3c373da"}}},{"type":"Layer Polygon","name":"SMA 24","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"0bbd0c15-5cb6-4c55-94f3-600122a68dca","savedPayload":{"position":{"x":19043.806237131383,"y":25048.35640053908},"targetPosition":{"x":19040.806237131383,"y":24960.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 24","id":"5cde1b9e-eed8-4e90-9f31-9d0f38d4aef9"}}},{"type":"Layer Polygon","name":"SMA 30","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"255469da-4363-4d98-baf1-fc506e50b6fd","savedPayload":{"position":{"x":19022.806237131383,"y":24970.35640053908},"targetPosition":{"x":19040.806237131383,"y":24960.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 30","id":"ba9cdf50-c1e0-42c5-a81c-dbc068c3b10e"}}},{"type":"Layer Polygon","name":"SMA 60","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"e86fd20c-ded1-470d-8b2e-9362fd5c1b77","savedPayload":{"position":{"x":18991.806237131383,"y":24900.35640053908},"targetPosition":{"x":19040.806237131383,"y":24960.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 60","id":"8170049e-056a-4818-8f0a-1a23f9c51bff"}}},{"type":"Layer Polygon","name":"SMA 120","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"09f0b2f9-f270-4db6-9d4f-09d74f4d76ef","savedPayload":{"position":{"x":19103.806237131383,"y":24982.35640053908},"targetPosition":{"x":19040.806237131383,"y":24960.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 120","id":"7da9bd30-a7f8-410b-93a5-6b76ac57708b"}}},{"type":"Layer Polygon","name":"SMA 240","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"aab7e22b-2332-488b-8377-b2d47d34d13f","savedPayload":{"position":{"x":18964.806237131383,"y":24946.35640053908},"targetPosition":{"x":19040.806237131383,"y":24960.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 240","id":"adf40814-2b9a-4ee8-a154-364bfca32f7a"}}},{"type":"Layer Polygon","name":"SMA 300","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"9520b565-9ba3-4538-a3d8-b3b5a52af3a8","savedPayload":{"position":{"x":18975.806237131383,"y":25049.35640053908},"targetPosition":{"x":19040.806237131383,"y":24960.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 300","id":"60c00cdc-dbf4-460b-b021-7339dd7bbec8"}}},{"type":"Layer Polygon","name":"SMA 600","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"02eb9bdc-70f2-43b9-9ab5-f7170247087b","savedPayload":{"position":{"x":19065.806237131383,"y":24961.35640053908},"targetPosition":{"x":19040.806237131383,"y":24960.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 600","id":"93c1746c-2470-4032-84e1-c16a2d4e3921"}}},{"type":"Layer Polygon","name":"SMA 1200","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"295e7cce-d99f-4923-b1d9-d24b88fad5ba","savedPayload":{"position":{"x":19000.806237131383,"y":24889.35640053908},"targetPosition":{"x":19040.806237131383,"y":24960.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Polygon","name":"SMA 1200","id":"790efcb9-f3af-4e01-86f2-adbfcda6a356"}}}],"id":"a074aa20-60d0-4ab1-b59b-feb83830a6cc","savedPayload":{"position":{"x":19040.806237131383,"y":24960.35640053908},"targetPosition":{"x":18969.806237131383,"y":24884.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"17dc084c-cabd-4cc4-9ddf-5b2695e81ee5","savedPayload":{"position":{"x":18969.806237131383,"y":24884.35640053908},"targetPosition":{"x":19026.806237131383,"y":24936.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base6 SMAs","id":"7a8425c8-21b3-419d-b4c9-da45bf7310f1"}}}],"layerFolders":[],"id":"4ddb1717-1b1a-49dc-9775-712cc0564f71","savedPayload":{"position":{"x":19026.806237131383,"y":24936.35640053908},"targetPosition":{"x":18938.806237131383,"y":24958.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c32b13c1-427c-494e-9021-fd30d124608b","savedPayload":{"position":{"x":18938.806237131383,"y":24958.35640053908},"targetPosition":{"x":18847.806237131383,"y":24926.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":120,"radius":0},"referenceParent":{"type":"Data Mine Products","name":"Sparta","id":"c7be79d8-0871-44d4-8445-c02b602b399a"}}},"id":"9956f226-3b76-4c8c-9dae-c61e174b4b61","savedPayload":{"position":{"x":18029.096541560637,"y":24387.914074635417},"targetPosition":{"x":18081.190994860717,"y":24683.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Masters Data","project":"Superalgos","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","config":"{\"value\":\"24-hs\"}","project":"Superalgos","id":"31a5497d-36a3-4df0-8eff-4c3b12366667","savedPayload":{"position":{"x":17799.200194133682,"y":24796.448614303306},"targetPosition":{"x":17898.200194133682,"y":24701.448614303306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"layerManager":{"type":"Layer Manager","name":"Masters","config":"{\n \"visibleLayers\": 1,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","project":"Superalgos","layers":[],"botLayers":[{"type":"Bot Layers","name":"Exchange Raw Data","project":"Superalgos","layers":[],"layerFolders":[],"id":"86761dff-564d-4963-af79-f2e60293e9b4","savedPayload":{"position":{"x":19032.806237131383,"y":24930.35640053908},"targetPosition":{"x":18967.806237131383,"y":24894.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Webhooks","project":"Superalgos","layers":[],"layerFolders":[],"id":"cd06dc88-2a31-4cbc-a734-f64caf67dd15","savedPayload":{"position":{"x":18987.806237131383,"y":24954.35640053908},"targetPosition":{"x":18967.806237131383,"y":24894.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Layers","name":"Candles Volumes","project":"Superalgos","layers":[{"type":"Layer","name":"Candles","config":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Candle","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"1c959534-eb84-424b-98b1-77af810c6fd5","savedPayload":{"position":{"x":18821.806237131383,"y":24923.35640053908},"targetPosition":{"x":18855.806237131383,"y":24949.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Candle","id":"9336f4e6-d56b-4ed4-819d-0bb762ba1fdd"}}}],"id":"8bae6852-f7aa-4648-9911-2b0d2b324ba6","savedPayload":{"position":{"x":18855.806237131383,"y":24949.35640053908},"targetPosition":{"x":18914.806237131383,"y":24865.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"8414c545-7cb3-4f00-97b6-28e86d881431","savedPayload":{"position":{"x":18822.806237131383,"y":24774.35640053908},"targetPosition":{"x":18914.806237131383,"y":24865.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"76cb7ce7-fae7-441b-8da6-f014248660b8","savedPayload":{"position":{"x":18914.806237131383,"y":24865.35640053908},"targetPosition":{"x":18933.806237131383,"y":24955.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"d90925c5-c2be-4437-b337-e9353d57669b"}}},{"type":"Layer","name":"Volumes","config":"{ \n\"status\": \"off\"\n}","project":"Superalgos","layerPanels":{"type":"Layer Panels","name":"New Layer Panels","project":"Superalgos","layerPanels":[{"type":"Layer Panel","name":"Volume","config":"{ \n\"status\": \"on\"\n}","project":"Superalgos","id":"f312fd29-ff58-4fc3-bebe-4169cbf05141","savedPayload":{"position":{"x":18903.806237131383,"y":24857.35640053908},"targetPosition":{"x":18946.806237131383,"y":24920.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Panel","name":"Volume","id":"42dbd098-4550-44a0-987f-54a28dd5f40b"}}}],"id":"9a53fff6-c810-40c1-9e29-6c52919cadfb","savedPayload":{"position":{"x":18946.806237131383,"y":24920.35640053908},"targetPosition":{"x":18915.806237131383,"y":24877.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"layerPolygons":{"type":"Layer Polygons","name":"New Layer Polygons","project":"Superalgos","layerPolygons":[],"id":"becb8325-e03c-4eef-9296-c04f5517e496","savedPayload":{"position":{"x":18950.806237131383,"y":24964.35640053908},"targetPosition":{"x":18915.806237131383,"y":24877.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5d964055-30fe-4e46-aa28-6152ab710e47","savedPayload":{"position":{"x":18915.806237131383,"y":24877.35640053908},"targetPosition":{"x":18933.806237131383,"y":24955.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"bde169a8-e0a3-44dd-adba-853c89295bde"}}}],"layerFolders":[],"id":"3b9308dd-08a7-47c0-860f-2450a7fff9ca","savedPayload":{"position":{"x":18933.806237131383,"y":24955.35640053908},"targetPosition":{"x":18967.806237131383,"y":24894.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6c933816-a23b-4d14-815e-0262e657e74d","savedPayload":{"position":{"x":18967.806237131383,"y":24894.35640053908},"targetPosition":{"x":18877.806237131383,"y":24911.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":120,"radius":0},"referenceParent":{"type":"Data Mine Products","name":"Masters","id":"45f36208-7796-446e-8e2e-4f4ba67ff697"}}},"id":"b1054f56-fd37-4ac5-8cb1-043e308ab5ee","savedPayload":{"position":{"x":18133.285448160797,"y":24387.914074635417},"targetPosition":{"x":18081.190994860717,"y":24683.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ae3cca29-d5d8-4869-9203-0ad91dd0cba9","savedPayload":{"position":{"x":18081.190994860717,"y":24683.35640053908},"targetPosition":{"x":18340.99861599605,"y":24833.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":262.75},"width":200,"height":131.375,"radius":0},"referenceParent":{"type":"Backtesting Session","name":"Hello World Trading System","id":"a81c54d1-e345-46f4-9dd4-07ec436bd1e5"}}}],"id":"910237bf-29cd-4467-816e-675938bf5702","savedPayload":{"position":{"x":18340.99861599605,"y":24833.35640053908},"targetPosition":{"x":18600.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Testing Trading Tasks","name":"New Testing Trading Tasks","id":"8117db0a-e418-4f56-8fe4-fda2ddac1cbb"}}}],"id":"bae7d4bd-0d10-41d3-bcdd-50e1ff65d419","savedPayload":{"position":{"x":18600.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Project Definition","name":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb"}}}],"id":"21d2ec55-9e56-4652-8e96-c7e451262c36","savedPayload":{"position":{"x":18900.806237131383,"y":24983.35640053908},"targetPosition":{"x":18900.806237131383,"y":24983.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"c"}}},{"type":"Design Space","name":"My Design Space","project":"Superalgos","spaceStyle":{"type":"Space Style","name":"My Space Style","config":" {\n \"backgroundColor\": \"UI_COLOR.BLACK\",\n \"node\": {\n \"fontSize\": 16,\n \"imageSize\": 60,\n \"type\": {\n \"fontColor\": \"UI_COLOR.WHITE\"\n },\n \"name\": {\n \"fontColor\": \"UI_COLOR.WHITE\"\n },\n \"menuItem\": {\n \"backgroundColor\": \"UI_COLOR.BLACK\",\n \"fontColor\": \"UI_COLOR.WHITE\",\n \"fontSize\": 14,\n \"imageSize\": 14\n }\n }\n }","project":"Superalgos","id":"fad0e429-f7a7-4b62-a2a5-2ead29b8f695","savedPayload":{"position":{"x":25236.875,"y":8701.347826086958},"targetPosition":{"x":24936.875,"y":8701.347826086958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"spaceSettings":{"type":"Space Settings","name":"New Space Settings","config":"{\n \"node\": {\n \"distancePercentage\": 60,\n \"radiusPercentage\": 85,\n \"massPercentage\": 100,\n \"animationSteps\": 2, \n \"menuItem\": {\n \"widthPercentage\": 100,\n \"heightPercentage\": 60,\n \"radiusPercentage\": 90\n }\n },\n \"physics\": false\n}","project":"Superalgos","id":"05c9d6d5-24c4-4eec-9aca-9668d6486fdd","savedPayload":{"position":{"x":24636.875,"y":8701.347826086958},"targetPosition":{"x":24936.875,"y":8701.347826086958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8485ce5-67f3-4476-b9e2-80994e49c318","savedPayload":{"position":{"x":24940.875,"y":10717.347826086958},"targetPosition":{"x":24940.875,"y":10717.347826086958},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":255,"y":588.3125}}}},{"type":"Superalgos Project","name":"New Superalgos Project","project":"Superalgos","projectDefinition":{"type":"Project Definition","name":"Superalgos","config":"{ \n \"codeName\": \"Superalgos\"\n}","project":"Superalgos","id":"a2a04e12-604e-43f8-a986-1b8ca3b043cb","savedPayload":{"position":{"x":19203,"y":10733.5},"targetPosition":{"x":18903,"y":10733.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"spaces":{"type":"Spaces","name":"New Spaces","project":"Superalgos","id":"4d0ee814-4e48-4688-9cc5-7ee03de5192b","savedPayload":{"position":{"x":19053,"y":10993.307621135331},"targetPosition":{"x":18903,"y":10733.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"mines":{"type":"Mines","name":"New Mines","project":"Superalgos","id":"b979e3a3-9316-4e5a-831b-c503b4b0e507","savedPayload":{"position":{"x":18753,"y":10993.307621135331},"targetPosition":{"x":18903,"y":10733.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"trading":{"type":"Trading","name":"New Trading","project":"Superalgos","id":"9f98de79-8504-46b3-b725-ce3eee04b743","savedPayload":{"position":{"x":18603,"y":10733.5},"targetPosition":{"x":18903,"y":10733.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"learning":{"type":"Learning","name":"New Learning","project":"Superalgos","id":"a24dfd5f-6a7f-4a90-9a92-3194efc928f3","savedPayload":{"position":{"x":18753,"y":10473.692378864669},"targetPosition":{"x":18903,"y":10733.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"otherHierarchies":{"type":"Other Hierarchies","name":"New Other Hierarchies","project":"Superalgos","id":"0a1ff755-8e0b-4f62-976e-df76c8139c6f","savedPayload":{"position":{"x":19053,"y":10473.692378864669},"targetPosition":{"x":18903,"y":10733.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cf9f8b3b-77c6-43c6-b01f-95cf366a91f6","savedPayload":{"position":{"x":18903,"y":10733.5},"targetPosition":{"x":18903,"y":10733.5},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"APIs","name":"New APIs","project":"Superalgos","githubAPI":{"type":"Github API","name":"New Github API","config":"{\n \"username\": \"\",\n \"token\": \"\"\n}","project":"Superalgos","id":"9ea7bee2-c4db-4cee-a05f-63fcf3a86a4a","savedPayload":{"position":{"x":31349.208333333332,"y":10755.819458631257},"targetPosition":{"x":31049.208333333332,"y":10755.819458631257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"23021bb7-9997-4fe6-8199-71ebf70aef76","savedPayload":{"position":{"x":31049.208333333332,"y":10755.819458631257},"targetPosition":{"x":31049.208333333332,"y":10755.819458631257},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Mine","name":"Sparta","config":"{\n\"codeName\": \"Sparta\"\n}","project":"Superalgos","sensorBots":[],"indicatorBots":[{"type":"Indicator Bot","name":"Simple Moving Average (SMA)","config":"{\n\"codeName\": \"SMA\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates SMAs for Time Frames of 01-hs and above.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Popular SMAs","project":"Superalgos","id":"5302effb-1f09-4a30-9f71-6956b8b9ca88","savedPayload":{"position":{"x":24671.371468763104,"y":24071.92024540907},"targetPosition":{"x":25058.217086662786,"y":24183.34432246387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"3b21f9d7-2cbc-4c23-80c8-cc5e5b06a22c"}}},{"type":"Output Dataset","name":"Multi-Period-Market Base11 SMAs","project":"Superalgos","id":"8221593c-6298-4b4c-bfc2-cffbc9e5cd0f","savedPayload":{"position":{"x":24714.84194250997,"y":23967.97901251651},"targetPosition":{"x":25058.217086662786,"y":24183.34432246387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"af9b9cef-2a74-486f-b79e-047d68669a1f"}}},{"type":"Output Dataset","name":"Multi-Period-Market Base7 SMAs","project":"Superalgos","id":"aabd0857-b4fc-404a-8967-967475ed3993","savedPayload":{"position":{"x":24784.001840433328,"y":23883.08845694898},"targetPosition":{"x":25058.217086662786,"y":24183.34432246387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"78a6ef37-4df8-4ac8-83a0-c9a732467c59"}}},{"type":"Output Dataset","name":"Multi-Period-Market Base6 SMAs","project":"Superalgos","id":"dd00a77a-761e-404b-9e44-627335668112","savedPayload":{"position":{"x":24872.283222552593,"y":23821.04622118853},"targetPosition":{"x":25058.217086662786,"y":24183.34432246387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"c0862b3d-d35a-4d3e-8d80-258b8a01c37c"}}},{"type":"Output Dataset","name":"Muti-Period-Market Base5 SMAs","project":"Superalgos","id":"b6426833-d2c7-4300-b610-801e12a7edfd","savedPayload":{"position":{"x":24998.911695677707,"y":23784.421187779055},"targetPosition":{"x":25058.217086662786,"y":24183.34432246387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Muti-Period-Market","id":"a5d28568-fb58-469a-9820-b9f0e8eab705"}}}],"outputDatasetFolders":[],"id":"85a56739-9351-444b-95e9-a57470dca38a","savedPayload":{"position":{"x":25058.217086662786,"y":24183.34432246387},"targetPosition":{"x":25364.88217354886,"y":24523.973993901145},"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":"Simple Moving Average (SMA) Multi-Period-Market","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"d49d1e94-1960-4121-8e40-be8af52947ee","savedPayload":{"position":{"x":25129.94571338478,"y":23910.493602719045},"targetPosition":{"x":25268.034784614065,"y":24065.25979471781},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"81346f2f-13f2-46f4-85f5-a04b4d80f455"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"f7cf0949-06fc-4c98-a399-61fac1671c6e","savedPayload":{"position":{"x":25213.428603742737,"y":23851.716728912677},"targetPosition":{"x":25268.034784614065,"y":24065.25979471781},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"4228fdf3-e992-46b2-a91e-de95108a753d","savedPayload":{"position":{"x":25343.676786048763,"y":23875.230104349135},"targetPosition":{"x":25268.034784614065,"y":24065.25979471781},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"dataMineDataDependencies":[],"id":"f404e748-b631-4cc5-975c-2a0736e55c0d","savedPayload":{"position":{"x":25268.034784614065,"y":24065.25979471781},"targetPosition":{"x":25364.88217354886,"y":24523.973993901145},"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":"81346f2f-13f2-46f4-85f5-a04b4d80f455","savedPayload":{"position":{"x":25510.322667507062,"y":24077.993199978442},"targetPosition":{"x":25364.88217354886,"y":24523.973993901145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"2bce272e-2712-4f28-9736-03b51929aba2","savedPayload":{"position":{"x":25713.756054234233,"y":24210.188469555913},"targetPosition":{"x":25364.88217354886,"y":24523.973993901145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"b569db86-9ab5-4ba2-be41-357a9bce84b4","savedPayload":{"position":{"x":25824.25822188407,"y":24426.461534374983},"targetPosition":{"x":25364.88217354886,"y":24523.973993901145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297","savedPayload":{"position":{"x":25438.057647468726,"y":24470.52456766718},"targetPosition":{"x":25299,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Describe what the process does.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period-Daily\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Popular SMAs","project":"Superalgos","id":"417d3141-1e22-4ee6-b2d6-531a55b95c88","savedPayload":{"position":{"x":24970.32775962989,"y":23932.631927113478},"targetPosition":{"x":25303.81333347287,"y":24158.370577963422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2c338fe0-385f-45ab-b210-b98ef013228d"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Base11 SMAs","project":"Superalgos","id":"022edfeb-ec62-4cd9-85bf-20e9f444e3c1","savedPayload":{"position":{"x":25043.600807907624,"y":23846.76849820857},"targetPosition":{"x":25303.81333347287,"y":24158.370577963422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"de5cfa30-edbf-4d5b-8d7f-facfb69a0f3e"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Base7 SMAs","project":"Superalgos","id":"42e89cd9-acbe-49cd-b6f6-7671317796d6","savedPayload":{"position":{"x":25135.842958014407,"y":23787.71679232221},"targetPosition":{"x":25303.81333347287,"y":24158.370577963422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f155e2ed-7082-4021-a4ff-a6f3cfd5683d"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Base6 SMAs","project":"Superalgos","id":"a270e81a-4d70-4293-8a37-19191cf2ec23","savedPayload":{"position":{"x":25239.00458584356,"y":23755.999552329973},"targetPosition":{"x":25303.81333347287,"y":24158.370577963422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f5050eb2-0a99-464e-b5e2-2d8f40453e9a"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Base5 SMAs","project":"Superalgos","id":"d3d1bc15-201c-4d00-ba2e-6401e5392c14","savedPayload":{"position":{"x":25370.722346471546,"y":23760.53610279574},"targetPosition":{"x":25303.81333347287,"y":24158.370577963422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"01f32aa3-55e9-4f8c-80c7-997b52073274"}}}],"outputDatasetFolders":[],"id":"ad03dff7-56b2-4980-bc14-1b6c41fdf6cf","savedPayload":{"position":{"x":25303.81333347287,"y":24158.370577963422},"targetPosition":{"x":25490.250708854466,"y":24577.146289765482},"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":"Simple Moving Average (SMA) Multi-Period-Daily","config":"{\"mainUtility\": \"Self Reference\"}","project":"Superalgos","id":"d674a833-b9c8-4bdb-84de-e007ab243860","savedPayload":{"position":{"x":25434.718724640446,"y":23930.044070251213},"targetPosition":{"x":25539.922662089608,"y":24111.59791952444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"d2727d60-b26b-4e8b-a635-fbe78bc81240"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\"mainUtility\": \"Market Ending Point\"}","project":"Superalgos","id":"ba857809-2273-4280-aa19-4b50837abccb","savedPayload":{"position":{"x":25520.028601447855,"y":23879.618842893065},"targetPosition":{"x":25539.922662089608,"y":24111.59791952444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"40e12ba8-59dc-4eaf-a30d-07bb8192e0a6","savedPayload":{"position":{"x":25578.567682627516,"y":23928.95373523229},"targetPosition":{"x":25539.922662089608,"y":24111.59791952444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"5f5e40cb-841e-4b18-a249-a04d541d31a0","savedPayload":{"position":{"x":25708.894626297544,"y":23954.02923390195},"targetPosition":{"x":25539.922662089608,"y":24111.59791952444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"dataMineDataDependencies":[],"id":"b6aae3c7-2d70-4ffd-a5e5-951f0a565b13","savedPayload":{"position":{"x":25539.922662089608,"y":24111.59791952444},"targetPosition":{"x":25490.250708854466,"y":24577.146289765482},"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":"d2727d60-b26b-4e8b-a635-fbe78bc81240","savedPayload":{"position":{"x":25743.17555611438,"y":24231.057198877606},"targetPosition":{"x":25490.250708854466,"y":24577.146289765482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"8b753072-e4c9-4671-a5ce-eea9e1c1ba0f","savedPayload":{"position":{"x":25882.81678206937,"y":24403.02193975894},"targetPosition":{"x":25490.250708854466,"y":24577.146289765482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"87c9e783-adc5-40e3-b1fb-fdb2994c1217","savedPayload":{"position":{"x":25916.607934369258,"y":24621.969917282815},"targetPosition":{"x":25490.250708854466,"y":24577.146289765482},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f","savedPayload":{"position":{"x":25563.503363531614,"y":24534.442352531274},"targetPosition":{"x":25299,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Popular SMAs","config":"{\n \"codeName\": \"Popular-SMAs\",\n \"singularVariableName\": \"popularSMA\",\n \"pluralVariableName\": \"popularSMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"3b21f9d7-2cbc-4c23-80c8-cc5e5b06a22c","savedPayload":{"position":{"x":25663.057647468726,"y":24183.996636468386},"targetPosition":{"x":25663.057647468726,"y":24633.996636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@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 }","project":"Superalgos","id":"2c338fe0-385f-45ab-b210-b98ef013228d","savedPayload":{"position":{"x":25927.56101100034,"y":24269.93898899966},"targetPosition":{"x":25663.057647468726,"y":24633.996636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"673a7fbf-1a73-4220-a561-84cf8b11c3a7","savedPayload":{"position":{"x":26532.771288375385,"y":23840.93402285877},"targetPosition":{"x":26745.89962081193,"y":23983.442353872528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"305fc918-e6df-48d7-a7b5-726e3fa8f958","savedPayload":{"position":{"x":26745.89962081193,"y":23983.442353872528},"targetPosition":{"x":27053.626419754422,"y":24186.64948079018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"002ffd5e-583c-4af5-87eb-a886fd3bc50e","savedPayload":{"position":{"x":26998.450288363627,"y":23563.370460688333},"targetPosition":{"x":27021.17784094006,"y":23818.40455080531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a305a94d-3af9-430a-8642-5ffb1229710f","savedPayload":{"position":{"x":27021.17784094006,"y":23818.40455080531},"targetPosition":{"x":27053.626419754422,"y":24186.64948079018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA20","config":"{\n \"codeName\": \"sma20\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma20","project":"Superalgos","id":"5adb676d-35a8-47b2-aa47-dc0e6edf8a81","savedPayload":{"position":{"x":27505.66359508799,"y":23754.62460206831},"targetPosition":{"x":27321.472749506538,"y":23930.75061006852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1657736e-6bc4-4279-9e65-5b0b0cf737cb","savedPayload":{"position":{"x":27321.472749506538,"y":23930.75061006852},"targetPosition":{"x":27053.626419754422,"y":24186.64948079018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA50","config":"{\n \"codeName\": \"sma50\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma50","project":"Superalgos","id":"85033109-c11c-43d2-84cc-4510dae276ca","savedPayload":{"position":{"x":27673.632532494357,"y":24270.05672258096},"targetPosition":{"x":27419.57838062802,"y":24236.346314853974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e7f1f78d-3a6d-49a2-b522-4423bd8d6a82","savedPayload":{"position":{"x":27419.57838062802,"y":24236.346314853974},"targetPosition":{"x":27053.626419754422,"y":24186.64948079018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA100","config":"{\n \"codeName\": \"sma100\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma100","project":"Superalgos","id":"43eebecb-65db-4e64-902a-582515e06daa","savedPayload":{"position":{"x":27375.574408280783,"y":24722.449076137586},"targetPosition":{"x":27243.581643268375,"y":24503.99161393099},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"090fa9ea-f050-4315-9360-3958ce5debaa","savedPayload":{"position":{"x":27243.581643268375,"y":24503.99161393099},"targetPosition":{"x":27053.626419754422,"y":24186.64948079018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA200","config":"{\n \"codeName\": \"sma200\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma200","project":"Superalgos","id":"5bdf982c-5480-4f90-9ec2-7708bf2d4943","savedPayload":{"position":{"x":26835.997377703778,"y":24771.12196991587},"targetPosition":{"x":26924.497450650604,"y":24533.26898953952},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8146fe70-3592-4f27-af4a-d3d8e93268d1","savedPayload":{"position":{"x":26924.497450650604,"y":24533.26898953952},"targetPosition":{"x":27053.626419754422,"y":24186.64948079018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1b29d760-f7fe-48a5-928c-212a6f9a2486","savedPayload":{"position":{"x":26305.020795967954,"y":24425.410165265297},"targetPosition":{"x":25663.057647468726,"y":24633.996636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last200.push(candle.close) // Add the current close value to the last 200 array.\n\nif (variable.last200.length > 200) {\n variable.last200.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 200 elements.\n}\n\nvariable.sma20 = calculateSMA(20)\nvariable.sma50 = calculateSMA(50)\nvariable.sma100 = calculateSMA(100)\nvariable.sma200 = calculateSMA(200)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last200.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last200.length - periods; i < variable.last200.length; i++) { // Iterate through the last periods\n sum = sum + variable.last200[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last200.length=\" + variable.last200.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last200[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"a9904080-6677-45e0-bcac-f336e882380a","savedPayload":{"position":{"x":26531.19950013176,"y":24679.49402306912},"targetPosition":{"x":26311.116289966652,"y":24726.274153503116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"shortcutKey":"f"}}},"id":"52a2ea69-6420-40f6-90f0-3330d33e6f67","savedPayload":{"position":{"x":26311.116289966652,"y":24726.274153503116},"targetPosition":{"x":26091.033079801546,"y":24773.054283937112},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 200 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last200 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"2790fd06-6fe8-4175-bbfc-854d9909aeb4","savedPayload":{"position":{"x":26392.141852663033,"y":25107.469455401937},"targetPosition":{"x":26241.58746623229,"y":24940.261869669524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6d5772df-819e-4968-9e27-61981c08f0e2","savedPayload":{"position":{"x":26241.58746623229,"y":24940.261869669524},"targetPosition":{"x":26091.033079801546,"y":24773.054283937112},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f1f881ff-a04f-4663-9747-2042d4581953","savedPayload":{"position":{"x":26091.033079801546,"y":24773.054283937112},"targetPosition":{"x":25663.057647468726,"y":24633.996636468386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34","savedPayload":{"position":{"x":25663.057647468726,"y":24633.996636468386},"targetPosition":{"x":25299,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"SMA Popular","id":"ddf21e96-c312-4ebe-9e2b-f56e8ea072aa"}}},{"type":"Product Definition","name":"Base7 SMAs","config":"{\n \"codeName\": \"Base7-SMAs\",\n \"singularVariableName\": \"base7SMA\",\n \"pluralVariableName\": \"base7SMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"78a6ef37-4df8-4ac8-83a0-c9a732467c59","savedPayload":{"position":{"x":25866.033079801546,"y":24331.466920198454},"targetPosition":{"x":25726.97543233282,"y":24759.442352531274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@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 }","project":"Superalgos","id":"f155e2ed-7082-4021-a4ff-a6f3cfd5683d","savedPayload":{"position":{"x":26091.033079801546,"y":24494.93898899966},"targetPosition":{"x":25726.97543233282,"y":24759.442352531274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"6d7e37c5-d80e-44a3-8484-f532bcfc7819","savedPayload":{"position":{"x":27129.74441664885,"y":24566.131001771104},"targetPosition":{"x":27360.66041037627,"y":24669.492211147335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"87203f0b-0fb8-4875-8127-d715198bf01b","savedPayload":{"position":{"x":27360.66041037627,"y":24669.492211147335},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"bf74ad1e-a569-4428-a387-b0f39bb63759","savedPayload":{"position":{"x":27282.7520534474,"y":24355.475731719413},"targetPosition":{"x":27452.157506799085,"y":24544.705540656538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0bc477f0-8b7d-4c75-8613-0cc63a25a79d","savedPayload":{"position":{"x":27452.157506799085,"y":24544.705540656538},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA7","config":"{\n \"codeName\": \"sma7\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma7","project":"Superalgos","id":"1a89def9-4270-4584-93c3-86ca30cb184c","savedPayload":{"position":{"x":27507.304614296558,"y":24224.558732332884},"targetPosition":{"x":27585.869993111435,"y":24468.54014223534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a87dddd8-9806-45be-b9a9-0e3196da48a7","savedPayload":{"position":{"x":27585.869993111435,"y":24468.54014223534},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA14","config":"{\n \"codeName\": \"sma14\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma14","project":"Superalgos","id":"c0b78d39-a652-4d13-9fce-1b56d4e6ffbb","savedPayload":{"position":{"x":27765.462938951838,"y":24196.706544090746},"targetPosition":{"x":27738.47180768098,"y":24451.901074653655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"114a04b9-e5b6-4f60-ad99-760c10275f9e","savedPayload":{"position":{"x":27738.47180768098,"y":24451.901074653655},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA21","config":"{\n \"codeName\": \"sma21\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma21","project":"Superalgos","id":"4740139a-d2d7-4050-a0f6-145eef002bed","savedPayload":{"position":{"x":28013.39773994293,"y":24276.915530608872},"targetPosition":{"x":27885.179872535056,"y":24498.779692003718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ac8182cd-7f7b-44e9-a91c-b470be594ef0","savedPayload":{"position":{"x":27885.179872535056,"y":24498.779692003718},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA28","config":"{\n \"codeName\": \"sma28\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma28","project":"Superalgos","id":"0a2f17a1-2663-477a-8c28-015592a67a7e","savedPayload":{"position":{"x":28204.500660958274,"y":24453.408472173087},"targetPosition":{"x":28000.925719846677,"y":24601.145448971423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"81c852eb-9b3e-4505-b81a-f236b39d770d","savedPayload":{"position":{"x":28000.925719846677,"y":24601.145448971423},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA35","config":"{\n \"codeName\": \"sma35\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma35","project":"Superalgos","id":"1a30763f-6398-475f-b232-ff0da4ad41fa","savedPayload":{"position":{"x":28311.639171088067,"y":24690.144622317323},"targetPosition":{"x":28060.69305021573,"y":24743.332521507702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a8a4dd40-6286-46b0-8f4d-61893d2d9234","savedPayload":{"position":{"x":28060.69305021573,"y":24743.332521507702},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA70","config":"{\n \"codeName\": \"sma70\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma70","project":"Superalgos","id":"07471d43-2432-4961-81b5-4aa1bb399df4","savedPayload":{"position":{"x":28312.91643890426,"y":24949.79399894941},"targetPosition":{"x":28060.92652147673,"y":24896.470735937753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9dbc330c-e654-4591-92d0-c3e92262436e","savedPayload":{"position":{"x":28060.92652147673,"y":24896.470735937753},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA140","config":"{\n \"codeName\": \"sma140\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma140","project":"Superalgos","id":"0ef6719d-cfa8-458e-a137-6bd2e77aa6fd","savedPayload":{"position":{"x":28206.53199652118,"y":25187.57118220277},"targetPosition":{"x":27999.788971107857,"y":25037.689026866727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"93814c2c-8fff-4415-9934-1356bf555015","savedPayload":{"position":{"x":27999.788971107857,"y":25037.689026866727},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA210","config":"{\n \"codeName\": \"sma210\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma210","project":"Superalgos","id":"037c98d5-1eef-4928-ade0-a70021337aa5","savedPayload":{"position":{"x":28012.73944784886,"y":25361.29757704196},"targetPosition":{"x":27885.249220726248,"y":25140.926166472495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"efbcaa0c-2bf3-44e6-aae3-4f73c6255c69","savedPayload":{"position":{"x":27885.249220726248,"y":25140.926166472495},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA280","config":"{\n \"codeName\": \"sma280\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma280","project":"Superalgos","id":"2bdc1e1e-b6a3-4e68-90b5-e88e64684804","savedPayload":{"position":{"x":27765.70266342922,"y":25441.968628350212},"targetPosition":{"x":27738.597242579614,"y":25187.795387040416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6b302071-d15f-43b3-9ab2-4b970a379ebc","savedPayload":{"position":{"x":27738.597242579614,"y":25187.795387040416},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA350","config":"{\n \"codeName\": \"sma350\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma350","project":"Superalgos","id":"18baf5c6-5aa5-4f66-8637-9966fdf4acf4","savedPayload":{"position":{"x":27507.499095863688,"y":25415.61956530881},"targetPosition":{"x":27585.91971988994,"y":25171.690551140535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f1de76b8-1665-4142-b8fc-712203bad655","savedPayload":{"position":{"x":27585.91971988994,"y":25171.690551140535},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA700","config":"{\n \"codeName\": \"sma700\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma700","project":"Superalgos","id":"c8f08ae8-f608-40f1-8df3-e4eb537a89ed","savedPayload":{"position":{"x":27282.249986716535,"y":25285.674296928475},"targetPosition":{"x":27452.181962748462,"y":25095.186548407437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"83b3c070-c0cb-4a4b-86ea-0b6292f57c13","savedPayload":{"position":{"x":27452.181962748462,"y":25095.186548407437},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA1400","config":"{\n \"codeName\": \"sma1400\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma1400","project":"Superalgos","id":"ca4c686e-61d0-4dc0-96f9-9ee80d856422","savedPayload":{"position":{"x":27128.27345492926,"y":25073.16319766951},"targetPosition":{"x":27360.93226808578,"y":24969.922926810006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e07922ab-0abb-4216-a534-07db74399c2a","savedPayload":{"position":{"x":27360.93226808578,"y":24969.922926810006},"targetPosition":{"x":27699.534489688653,"y":24819.977239162054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f3c4fe44-c417-4c98-9547-4b0c062f7bd7","savedPayload":{"position":{"x":26401.97543233282,"y":24759.442352531274},"targetPosition":{"x":25726.97543233282,"y":24759.442352531274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1400.push(candle.close) // Add the current close value to the last 1400 array.\n\nif (variable.last1400.length > 1400) {\n variable.last1400.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1400 elements.\n}\n\nvariable.sma7 = calculateSMA(7)\nvariable.sma14 = calculateSMA(14)\nvariable.sma21 = calculateSMA(21)\nvariable.sma28 = calculateSMA(28)\nvariable.sma35 = calculateSMA(35)\nvariable.sma70 = calculateSMA(70)\nvariable.sma140 = calculateSMA(140)\nvariable.sma210 = calculateSMA(210)\nvariable.sma280 = calculateSMA(280)\nvariable.sma350 = calculateSMA(350)\nvariable.sma700 = calculateSMA(700)\nvariable.sma1400 = calculateSMA(1400)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1400.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1400.length - periods; i < variable.last1400.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1400[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1400.length=\" + variable.last1400.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1400[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"27796e5a-2553-47c6-bddd-c8deaed05c2f","savedPayload":{"position":{"x":26538.56793271727,"y":25070.98352453333},"targetPosition":{"x":26314.80050625941,"y":25047.46462029811},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e5d799ba-3a4f-45fb-8533-4c3de5d7886f","savedPayload":{"position":{"x":26314.80050625941,"y":25047.46462029811},"targetPosition":{"x":26091.033079801546,"y":25023.945716062888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1400 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1400 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"17ee3425-2a07-4523-b005-bac9dbf75184","savedPayload":{"position":{"x":26274.064569185655,"y":25435.041172002057},"targetPosition":{"x":26182.5488244936,"y":25229.493444032472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9e9e5c8c-98e2-4bbf-884a-071449177692","savedPayload":{"position":{"x":26182.5488244936,"y":25229.493444032472},"targetPosition":{"x":26091.033079801546,"y":25023.945716062888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6bd8fef6-49f7-45c5-9f9f-944785f8578e","savedPayload":{"position":{"x":26091.033079801546,"y":25023.945716062888},"targetPosition":{"x":25726.97543233282,"y":24759.442352531274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6","savedPayload":{"position":{"x":25726.97543233282,"y":24759.442352531274},"targetPosition":{"x":25299,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"SMA Base 7","id":"515565ff-dee2-4adf-adaf-b4cfea5f5dbd"}}},{"type":"Product Definition","name":"Base11 SMAs","config":"{\n \"codeName\": \"Base11-SMAs\",\n \"singularVariableName\": \"base11SMA\",\n \"pluralVariableName\": \"base11SMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"af9b9cef-2a74-486f-b79e-047d68669a1f","savedPayload":{"position":{"x":26013.503363531614,"y":24534.442352531274},"targetPosition":{"x":25749,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@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 }","project":"Superalgos","id":"de5cfa30-edbf-4d5b-8d7f-facfb69a0f3e","savedPayload":{"position":{"x":26176.97543233282,"y":24759.442352531274},"targetPosition":{"x":25749,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"a6c93c64-52da-4dad-bff9-9f6d9b4606b9","savedPayload":{"position":{"x":26878.166751041266,"y":24451.125700771026},"targetPosition":{"x":26993.196121135574,"y":24678.825584954808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5e8f3d9c-8284-4b92-b7f5-ad7498e5ef3d","savedPayload":{"position":{"x":26993.196121135574,"y":24678.825584954808},"targetPosition":{"x":27160.183546149707,"y":25008.708285617977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"ac16b3d1-e3b0-4b79-9047-cd137c6eeafc","savedPayload":{"position":{"x":27355.934344312845,"y":24408.76092774048},"targetPosition":{"x":27276.3713905735,"y":24652.620266807262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"43337725-24dd-4c1a-ae8d-2562a028d02d","savedPayload":{"position":{"x":27276.3713905735,"y":24652.620266807262},"targetPosition":{"x":27160.183546149707,"y":25008.708285617977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA11","config":"{\n \"codeName\": \"sma11\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma11","project":"Superalgos","id":"87a1e288-0966-46e9-8a4f-1ddbb3f8976c","savedPayload":{"position":{"x":27718.41187956599,"y":24724.68848935428},"targetPosition":{"x":27490.137694387457,"y":24840.809115750926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6a67dbd9-1e8e-4100-849f-5ea77ea67985","savedPayload":{"position":{"x":27490.137694387457,"y":24840.809115750926},"targetPosition":{"x":27160.183546149707,"y":25008.708285617977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA22","config":"{\n \"codeName\": \"sma22\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma22","project":"Superalgos","id":"8652042b-c373-4024-9fbf-c582a55134e0","savedPayload":{"position":{"x":27755.329865279484,"y":25201.403468266686},"targetPosition":{"x":27512.468902313612,"y":25122.788542084487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a5665ca1-e399-4e8a-8e04-8c0b153702e4","savedPayload":{"position":{"x":27512.468902313612,"y":25122.788542084487},"targetPosition":{"x":27160.183546149707,"y":25008.708285617977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA33","config":"{\n \"codeName\": \"sma33\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma33","project":"Superalgos","id":"738317b6-dcb4-4699-a48c-170491515eb5","savedPayload":{"position":{"x":27445.153120122683,"y":25565.51962044071},"targetPosition":{"x":27328.420993342283,"y":25337.491899531724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f35c54ed-6469-4cfa-94cf-f94f1c916e91","savedPayload":{"position":{"x":27328.420993342283,"y":25337.491899531724},"targetPosition":{"x":27160.183546149707,"y":25008.708285617977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA55","config":"{\n \"codeName\": \"sma55\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma55","project":"Superalgos","id":"675e9f6c-1e0d-4d09-ab69-88252ef60fe2","savedPayload":{"position":{"x":26968.411807983153,"y":25602.113369516912},"targetPosition":{"x":27047.017193328826,"y":25360.4276901231},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c17d77b3-4d80-462d-88ba-ef421928dde1","savedPayload":{"position":{"x":27047.017193328826,"y":25360.4276901231},"targetPosition":{"x":27160.183546149707,"y":25008.708285617977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA111","config":"{\n \"codeName\": \"sma111\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma111","project":"Superalgos","id":"b32a4356-312c-4536-b30b-63bad302e857","savedPayload":{"position":{"x":26605.99712763428,"y":25293.188530603868},"targetPosition":{"x":26831.783854530866,"y":25176.47641278737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f49152b4-5306-41d2-966b-dba92eef2590","savedPayload":{"position":{"x":26831.783854530866,"y":25176.47641278737},"targetPosition":{"x":27160.183546149707,"y":25008.708285617977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a099f207-16db-4f66-adfb-1529fa350385","savedPayload":{"position":{"x":26390.963148499228,"y":25107.08647120309},"targetPosition":{"x":25749,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last200.push(candle.close) // Add the current close value to the last 200 array.\n\nif (variable.last200.length > 200) {\n variable.last200.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 200 elements.\n}\n\nvariable.sma11 = calculateSMA(11)\nvariable.sma22 = calculateSMA(22)\nvariable.sma33 = calculateSMA(33)\nvariable.sma55 = calculateSMA(55)\nvariable.sma111 = calculateSMA(111)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last200.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last200.length - periods; i < variable.last200.length; i++) { // Iterate through the last periods\n sum = sum + variable.last200[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last200.length=\" + variable.last200.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last200[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"317788d5-11f5-48a6-ab0c-252cdcef7728","savedPayload":{"position":{"x":26424.598819470782,"y":25445.58913685284},"targetPosition":{"x":26219.0510915012,"y":25354.073392160783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cce46065-5c04-428f-823f-4cb5e67b212a","savedPayload":{"position":{"x":26219.0510915012,"y":25354.073392160783},"targetPosition":{"x":26013.503363531614,"y":25262.557647468726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 200 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last200 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"70d5537e-f682-4322-992b-99a55edb2582","savedPayload":{"position":{"x":26060.541172002057,"y":25710.092500384446},"targetPosition":{"x":26037.022267766835,"y":25486.325073926586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f0707196-a2ac-4aee-99df-48a7fe77c365","savedPayload":{"position":{"x":26037.022267766835,"y":25486.325073926586},"targetPosition":{"x":26013.503363531614,"y":25262.557647468726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"663d58c6-e03e-4923-8cc7-03cc860aa318","savedPayload":{"position":{"x":26013.503363531614,"y":25262.557647468726},"targetPosition":{"x":25749,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"05fabbf9-7798-4a53-995e-53ae74bef3de","savedPayload":{"position":{"x":25749,"y":24898.5},"targetPosition":{"x":25299,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"SMA Base 11","id":"4a61ac35-a1ae-40f4-b3da-f81ae796ee00"}}},{"type":"Product Definition","name":"Base5 SMAs","config":"{\n \"codeName\": \"Base5-SMAs\",\n \"singularVariableName\": \"base5SMA\",\n \"pluralVariableName\": \"base5SMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Muti-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"a5d28568-fb58-469a-9820-b9f0e8eab705","savedPayload":{"position":{"x":26091.033079801546,"y":24773.054283937112},"targetPosition":{"x":25726.97543233282,"y":25037.557647468726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@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 }","project":"Superalgos","id":"01f32aa3-55e9-4f8c-80c7-997b52073274","savedPayload":{"position":{"x":26176.97543233282,"y":25037.557647468726},"targetPosition":{"x":25726.97543233282,"y":25037.557647468726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"949a2e58-5d07-475e-92b9-e0ef4b9fd9e7","savedPayload":{"position":{"x":26693.757557571444,"y":25170.209995376288},"targetPosition":{"x":26820.318750597926,"y":25391.90237078319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"65545f82-9022-4d4c-bd09-b900182bae75","savedPayload":{"position":{"x":26820.318750597926,"y":25391.90237078319},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"551c49da-26d4-438e-aff4-2a0ecc18ce7f","savedPayload":{"position":{"x":26940.709277123213,"y":25089.091662279785},"targetPosition":{"x":26966.796179292796,"y":25344.570895624045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"74445dab-2c42-4c71-b179-04b98b5a8e27","savedPayload":{"position":{"x":26966.796179292796,"y":25344.570895624045},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA5","config":"{\n \"codeName\": \"sma5\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma5","project":"Superalgos","id":"1c996969-c249-4b55-845c-62205e91fc68","savedPayload":{"position":{"x":27198.98274241963,"y":25117.33832759403},"targetPosition":{"x":27119.400078968432,"y":25360.08237896318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3b9f6fbf-20d8-4952-b5e8-34937746fef7","savedPayload":{"position":{"x":27119.400078968432,"y":25360.08237896318},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA10","config":"{\n \"codeName\": \"sma10\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma10","project":"Superalgos","id":"d16592d7-2f02-49ae-8857-dd7098990f20","savedPayload":{"position":{"x":27424.60229599898,"y":25246.55174694657},"targetPosition":{"x":27251.724949640433,"y":25437.6790494972},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"73cb2d83-d59b-457e-af00-68a8d0e2b016","savedPayload":{"position":{"x":27251.724949640433,"y":25437.6790494972},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA15","config":"{\n \"codeName\": \"sma15\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma15","project":"Superalgos","id":"147ea31e-2735-4bae-b6a9-99072ed3d7a5","savedPayload":{"position":{"x":27577.186115229386,"y":25457.26484807912},"targetPosition":{"x":27342.92040370257,"y":25561.240716231754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"666f82ef-a002-4067-9edb-6ddbe2861056","savedPayload":{"position":{"x":27342.92040370257,"y":25561.240716231754},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA20","config":"{\n \"codeName\": \"sma20\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma20","project":"Superalgos","id":"f2507a4f-7f65-4d22-b062-1834c9269285","savedPayload":{"position":{"x":27631.23349143082,"y":25711.700541402974},"targetPosition":{"x":27374.829516342168,"y":25711.67208564486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a6a82705-0a6c-425e-afab-099a63570ada","savedPayload":{"position":{"x":27374.829516342168,"y":25711.67208564486},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA25","config":"{\n \"codeName\": \"sma25\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma25","project":"Superalgos","id":"53aead0b-0c80-4e74-b19b-7290672f7444","savedPayload":{"position":{"x":27577.046266963323,"y":25966.056438585874},"targetPosition":{"x":27343.150142806066,"y":25861.986288922308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cbc6da93-d064-4762-a32f-ae1071a1ebe2","savedPayload":{"position":{"x":27343.150142806066,"y":25861.986288922308},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA50","config":"{\n \"codeName\": \"sma50\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma50","project":"Superalgos","id":"0c126131-e3bd-4d43-a037-53e54e268300","savedPayload":{"position":{"x":27424.69931470147,"y":26177.276663949266},"targetPosition":{"x":27252.302650218604,"y":25986.198480646537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1cda317e-4b82-4bd9-8b07-71ad7365e524","savedPayload":{"position":{"x":27252.302650218604,"y":25986.198480646537},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA100","config":"{\n \"codeName\": \"sma100\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma100","project":"Superalgos","id":"77c897e8-ab38-4c88-a215-e67d53401196","savedPayload":{"position":{"x":27198.804443850073,"y":26306.437274885426},"targetPosition":{"x":27119.615085200563,"y":26064.04709509539},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7a66586-158d-40e2-be75-1077a91b0d7e","savedPayload":{"position":{"x":27119.615085200563,"y":26064.04709509539},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA150","config":"{\n \"codeName\": \"sma150\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma150","project":"Superalgos","id":"1e5d6df6-a1af-49f0-a06e-08c362b1cd34","savedPayload":{"position":{"x":26941.023664465196,"y":26334.438683765406},"targetPosition":{"x":26966.812144167317,"y":26079.394167114657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"83260971-1089-4349-9019-29ea469a9d24","savedPayload":{"position":{"x":26966.812144167317,"y":26079.394167114657},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA200","config":"{\n \"codeName\": \"sma200\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma200","project":"Superalgos","id":"bc63f986-17dd-48fb-892b-7f2d2b033cc5","savedPayload":{"position":{"x":26693.05817446698,"y":26256.351045160845},"targetPosition":{"x":26822.038204570687,"y":26032.21874887651},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"07a55760-46cf-44e8-b2f9-f55a6bb5a81c","savedPayload":{"position":{"x":26822.038204570687,"y":26032.21874887651},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA250","config":"{\n \"codeName\": \"sma250\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma250","project":"Superalgos","id":"1bdc84fd-9eac-4b07-9ff6-56f80ec08553","savedPayload":{"position":{"x":26498.39661365437,"y":26081.125863056033},"targetPosition":{"x":26705.727798844153,"y":25929.283263271645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8b672a62-1ae1-4e92-819e-597fa42da35b","savedPayload":{"position":{"x":26705.727798844153,"y":25929.283263271645},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA 500","config":"{\n \"codeName\": \"sma500\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma500","project":"Superalgos","id":"0d17399e-97d1-459d-8864-6c72967f0fd4","savedPayload":{"position":{"x":26394.003285572806,"y":25843.188160713427},"targetPosition":{"x":26642.281171850507,"y":25789.007769403357},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"92405f1d-9adf-4a70-af18-f2537ba2b0a0","savedPayload":{"position":{"x":26642.281171850507,"y":25789.007769403357},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA 1000","config":"{\n \"codeName\": \"sma1000\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma1000","project":"Superalgos","id":"e2364abc-b940-4b52-a506-587c1a5941e3","savedPayload":{"position":{"x":26402.39893996769,"y":25584.394258364482},"targetPosition":{"x":26651.038311478438,"y":25636.105257822055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5318bf3f-6e8a-46c8-8b04-3769bde03438","savedPayload":{"position":{"x":26651.038311478438,"y":25636.105257822055},"targetPosition":{"x":27004.470393910713,"y":25711.66723664044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"69298c3e-479d-4eb6-a972-35f8f079ce86","savedPayload":{"position":{"x":26273.06190353591,"y":25434.312692766147},"targetPosition":{"x":25726.97543233282,"y":25037.557647468726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1000.push(candle.close) // Add the current close value to the last 1000 array.\n\nif (variable.last1000.length > 1000) {\n variable.last1000.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1000 elements.\n}\n\nvariable.sma5 = calculateSMA(5)\nvariable.sma10 = calculateSMA(10)\nvariable.sma15 = calculateSMA(15)\nvariable.sma20 = calculateSMA(20)\nvariable.sma25 = calculateSMA(25)\nvariable.sma50 = calculateSMA(50)\nvariable.sma100 = calculateSMA(100)\nvariable.sma150 = calculateSMA(150)\nvariable.sma200 = calculateSMA(200)\nvariable.sma250 = calculateSMA(250)\nvariable.sma500 = calculateSMA(500)\nvariable.sma1000 = calculateSMA(1000)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1000.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1000.length - periods; i < variable.last1000.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1000[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1000.length=\" + variable.last1000.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1000[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"45ebc09e-bada-4bcd-8780-a2f56f23f037","savedPayload":{"position":{"x":26200.448251266374,"y":25766.641852663033},"targetPosition":{"x":26033.24066553396,"y":25616.08746623229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f65693cf-81ef-497e-86d2-a7ad9b74a1ca","savedPayload":{"position":{"x":26033.24066553396,"y":25616.08746623229},"targetPosition":{"x":25866.033079801546,"y":25465.533079801546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1000 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1000 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"22db43d3-db5d-43b6-80fc-1faa358bfadb","savedPayload":{"position":{"x":25772.472818933555,"y":25905.69950013176},"targetPosition":{"x":25819.25294936755,"y":25685.616289966652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"12255c95-c680-43af-be1b-61ee37e0e827","savedPayload":{"position":{"x":25819.25294936755,"y":25685.616289966652},"targetPosition":{"x":25866.033079801546,"y":25465.533079801546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"cd8c13e4-2b9e-4a42-a576-539d412f239a","savedPayload":{"position":{"x":25866.033079801546,"y":25465.533079801546},"targetPosition":{"x":25726.97543233282,"y":25037.557647468726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2dcb55de-1673-409e-aa52-f51e7c7f8fa3","savedPayload":{"position":{"x":25726.97543233282,"y":25037.557647468726},"targetPosition":{"x":25299,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"SMA Base 5","id":"888c381d-457d-4421-8401-a7475b42ff03"}}},{"type":"Product Definition","name":"Base6 SMAs","config":"{\n \"codeName\": \"Base6-SMAs\",\n \"singularVariableName\": \"base6SMA\",\n \"pluralVariableName\": \"base6SMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"c0862b3d-d35a-4d3e-8d80-258b8a01c37c","savedPayload":{"position":{"x":26091.033079801546,"y":25023.945716062888},"targetPosition":{"x":25663.057647468726,"y":25163.003363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@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 }","project":"Superalgos","id":"f5050eb2-0a99-464e-b5e2-2d8f40453e9a","savedPayload":{"position":{"x":26091.033079801546,"y":25302.06101100034},"targetPosition":{"x":25663.057647468726,"y":25163.003363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Being","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"fc90c194-682d-4d5c-923b-89b19e49f234","savedPayload":{"position":{"x":26580.45065942521,"y":25439.757245160832},"targetPosition":{"x":26670.90254641409,"y":25677.64462787122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"37fc0238-a202-4c33-89ca-6a4e24d4e1ac","savedPayload":{"position":{"x":26670.90254641409,"y":25677.64462787122},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"c1b3c2c1-68aa-443a-8c69-c50dcd34998f","savedPayload":{"position":{"x":26837.46721303958,"y":25399.62434273565},"targetPosition":{"x":26823.55452911504,"y":25653.41228041602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7757e0dd-c3b4-48b4-bdf7-e517ce8df601","savedPayload":{"position":{"x":26823.55452911504,"y":25653.41228041602},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA6","config":"{\n \"codeName\": \"sma6\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma6","project":"Superalgos","id":"8a633674-750f-492d-8bfc-ac6f2e79793a","savedPayload":{"position":{"x":27087.889457268022,"y":25467.432199042523},"targetPosition":{"x":26972.087279648666,"y":25694.1101545314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"12d5b8f1-c83c-43a3-bf45-6f85e85a6df9","savedPayload":{"position":{"x":26972.087279648666,"y":25694.1101545314},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA12","config":"{\n \"codeName\": \"sma12\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma12","project":"Superalgos","id":"11e2a0cd-851a-425e-b2bd-f3cff1b00c77","savedPayload":{"position":{"x":27292.290495798108,"y":25629.300101397443},"targetPosition":{"x":27090.973174870796,"y":25791.80516430045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6c1f3e32-9310-4ece-a796-cf9225172978","savedPayload":{"position":{"x":27090.973174870796,"y":25791.80516430045},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA18","config":"{\n \"codeName\": \"sma18\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma18","project":"Superalgos","id":"0cbf493f-fa5f-41a8-a928-754ec9720fe0","savedPayload":{"position":{"x":27409.699616252605,"y":25862.306801182465},"targetPosition":{"x":27162.847071944903,"y":25928.071602991335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"12bf3180-d354-451d-ba14-81cdd9d95c19","savedPayload":{"position":{"x":27162.847071944903,"y":25928.071602991335},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA24","config":"{\n \"codeName\": \"sma24\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma24","project":"Superalgos","id":"4d677df1-74ec-417e-a518-2b8946c84542","savedPayload":{"position":{"x":27422.46879273162,"y":26121.685361586304},"targetPosition":{"x":27170.720717204124,"y":26081.88837045724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3e3a6434-aaa4-4170-8cdc-cca21c8d0863","savedPayload":{"position":{"x":27170.720717204124,"y":26081.88837045724},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA30","config":"{\n \"codeName\": \"sma30\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma30","project":"Superalgos","id":"3a92b258-6c21-4747-ba08-16cf9ba814ec","savedPayload":{"position":{"x":27329.333711952157,"y":26364.932090293034},"targetPosition":{"x":27114.50518599369,"y":26225.48960234487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"22bc84a6-f431-464c-a7e0-b9249b32abdf","savedPayload":{"position":{"x":27114.50518599369,"y":26225.48960234487},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA60","config":"{\n \"codeName\": \"sma60\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma60","project":"Superalgos","id":"d9a44db6-45eb-47f8-975b-ee8dccd0659d","savedPayload":{"position":{"x":27145.431874006845,"y":26549.40218658989},"targetPosition":{"x":27005.43515778987,"y":26334.0729836336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c3d4d569-0b7e-44b9-b2f0-84d9a91ee6b0","savedPayload":{"position":{"x":27005.43515778987,"y":26334.0729836336},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA120","config":"{\n \"codeName\": \"sma120\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma120","project":"Superalgos","id":"90fee0af-0e23-44de-aa16-d446857485f4","savedPayload":{"position":{"x":26902.02295017135,"y":26643.121620367918},"targetPosition":{"x":26861.69016122162,"y":26389.42902917456},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4f572d61-ff96-4ccb-90ca-7a26d5cc8322","savedPayload":{"position":{"x":26861.69016122162,"y":26389.42902917456},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA180","config":"{\n \"codeName\": \"sma180\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma180","project":"Superalgos","id":"031e5277-e225-4307-a247-f49dae98ac26","savedPayload":{"position":{"x":26642.39917682824,"y":26629.754253330866},"targetPosition":{"x":26708.32280917821,"y":26381.4618363008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9e3eb2e1-3cb4-4f0b-9a5a-5196bb4af3af","savedPayload":{"position":{"x":26708.32280917821,"y":26381.4618363008},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA240","config":"{\n \"codeName\": \"sma240\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma240","project":"Superalgos","id":"cb9604b0-3004-48d5-84fe-680747edb943","savedPayload":{"position":{"x":26410.670456260723,"y":26511.498034269385},"targetPosition":{"x":26571.347088301416,"y":26311.829888639608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"83c2137c-676d-4a43-88c1-e9a5f69cafeb","savedPayload":{"position":{"x":26571.347088301416,"y":26311.829888639608},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA300","config":"{\n \"codeName\": \"sma300\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma300","project":"Superalgos","id":"8c3259f1-e88b-40a2-9af2-a0e554affbd2","savedPayload":{"position":{"x":26246.541152629918,"y":26308.515665877218},"targetPosition":{"x":26474.4900026532,"y":26192.022276476648},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"829bfd3a-8c69-4e51-8951-a1d7cb0b8c6f","savedPayload":{"position":{"x":26474.4900026532,"y":26192.022276476648},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA600","config":"{\n \"codeName\": \"sma600\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma600","project":"Superalgos","id":"501b1e82-840a-4288-801d-38a5e5c7f7cb","savedPayload":{"position":{"x":26179.047493474805,"y":26057.85981030042},"targetPosition":{"x":26434.890329149977,"y":26043.32586054153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7174f99-231c-4188-8f4a-95a34c0c35f8","savedPayload":{"position":{"x":26434.890329149977,"y":26043.32586054153},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA1200","config":"{\n \"codeName\": \"sma1200\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma1200","project":"Superalgos","id":"0554601a-009b-47a2-8e0c-c7d6f3901a9e","savedPayload":{"position":{"x":26219.67796759663,"y":25812.260886235843},"targetPosition":{"x":26459.12369765294,"y":25890.957780577293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f6f0c544-4054-4cb4-9be1-14ffa23c5251","savedPayload":{"position":{"x":26459.12369765294,"y":25890.957780577293},"targetPosition":{"x":26803.64584483427,"y":26023.792382523872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a84f4438-cabc-4c9a-bd9c-0338e55a6e15","savedPayload":{"position":{"x":26140.354724769648,"y":25640.300440832532},"targetPosition":{"x":25663.057647468726,"y":25163.003363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1200.push(candle.close) // Add the current close value to the last 1200 array.\n\nif (variable.last1200.length > 1200) {\n variable.last1200.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1200 elements.\n}\n\nvariable.sma6 = calculateSMA(6)\nvariable.sma12 = calculateSMA(12)\nvariable.sma18 = calculateSMA(18)\nvariable.sma24 = calculateSMA(24)\nvariable.sma30 = calculateSMA(30)\nvariable.sma60 = calculateSMA(60)\nvariable.sma120 = calculateSMA(120)\nvariable.sma180 = calculateSMA(180)\nvariable.sma240 = calculateSMA(240)\nvariable.sma300 = calculateSMA(300)\nvariable.sma600 = calculateSMA(600)\nvariable.sma1200 = calculateSMA(1200)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1200.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1200.length - periods; i < variable.last1200.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1200[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1200.length=\" + variable.last1200.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1200[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"f2c97b70-717a-4f98-be7c-d76dd94b8227","savedPayload":{"position":{"x":25888.057647468726,"y":26002.714795234613},"targetPosition":{"x":25775.557647468726,"y":25807.859079383114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96841e7b-90d9-4508-8933-4f0f9769800e","savedPayload":{"position":{"x":25775.557647468726,"y":25807.859079383114},"targetPosition":{"x":25663.057647468726,"y":25613.003363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1200 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1200 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"14dcff53-0599-4529-8a5d-5cf92a5c33c8","savedPayload":{"position":{"x":25438.057647468726,"y":26002.714795234613},"targetPosition":{"x":25550.557647468726,"y":25807.859079383114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2863a8f-8f38-4c47-9f48-0bd45b628fa0","savedPayload":{"position":{"x":25550.557647468726,"y":25807.859079383114},"targetPosition":{"x":25663.057647468726,"y":25613.003363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"948be5d9-da96-488a-bb15-f8cd94777231","savedPayload":{"position":{"x":25663.057647468726,"y":25613.003363531614},"targetPosition":{"x":25663.057647468726,"y":25163.003363531614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4ae22e54-cd02-4e2e-b638-1c5ea9a171ac","savedPayload":{"position":{"x":25663.057647468726,"y":25163.003363531614},"targetPosition":{"x":25299,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"SMA Base 6","id":"6ace920a-3a4b-4d28-8f04-4c2ecd3dfeb8"}}},{"type":"Product Definition","name":"Base12 SMAs","config":"{\n \"codeName\": \"Base12-SMAs\",\n \"singularVariableName\": \"base12SMA\",\n \"pluralVariableName\": \"base12SMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"6ba76363-0f50-4e67-8678-3eb4fd6d07d6","savedPayload":{"position":{"x":26013.503363531614,"y":25262.557647468726},"targetPosition":{"x":25563.503363531614,"y":25262.557647468726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@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 }","project":"Superalgos","id":"92d92b3e-6870-499b-bfec-33bab220bf62","savedPayload":{"position":{"x":25927.56101100034,"y":25527.06101100034},"targetPosition":{"x":25563.503363531614,"y":25262.557647468726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"d44292f3-8960-448b-8339-32147b8bb1c3","savedPayload":{"position":{"x":26330.864656950424,"y":25803.68236782766},"targetPosition":{"x":26295.885929981134,"y":26057.01970786639},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bcec1860-262e-4125-bdf4-a8f798d9d4ff","savedPayload":{"position":{"x":26295.885929981134,"y":26057.01970786639},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"91264df6-db08-498e-a039-fec9b0cd09a5","savedPayload":{"position":{"x":26590.79572201999,"y":25903.597980776238},"targetPosition":{"x":26451.121212743594,"y":26114.143680184552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0ef8d741-e876-446e-86ac-146b4f33d8e8","savedPayload":{"position":{"x":26451.121212743594,"y":26114.143680184552},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA12","config":"{\n \"codeName\": \"sma12\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma12","project":"Superalgos","id":"c694dcde-b622-4d71-b2cf-e42e1b4934ec","savedPayload":{"position":{"x":26783.950036903243,"y":26103.529063491693},"targetPosition":{"x":26563.17837734536,"y":26235.00237583355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"daf8aa00-f032-412e-b319-e7c581611db0","savedPayload":{"position":{"x":26563.17837734536,"y":26235.00237583355},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA24","config":"{\n \"codeName\": \"sma24\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma24","project":"Superalgos","id":"445b00ba-46a1-4e79-b762-72c521223b5f","savedPayload":{"position":{"x":26870.84879602414,"y":26368.361991746904},"targetPosition":{"x":26614.31662520227,"y":26390.994936109477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"255fdffa-cdbb-428b-a54e-14448f7cda29","savedPayload":{"position":{"x":26614.31662520227,"y":26390.994936109477},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA36","config":"{\n \"codeName\": \"sma36\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma36","project":"Superalgos","id":"c9c11106-98b6-4fcb-b30b-d49263a05d95","savedPayload":{"position":{"x":26833.51912081144,"y":26644.258338373496},"targetPosition":{"x":26593.111462972716,"y":26553.910768081667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"628c3c4f-7ef7-4008-bada-76e4edf6de42","savedPayload":{"position":{"x":26593.111462972716,"y":26553.910768081667},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA48","config":"{\n \"codeName\": \"sma48\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma48","project":"Superalgos","id":"8e1cfb60-cb51-4625-a36b-75d64381840d","savedPayload":{"position":{"x":26678.33964468265,"y":26875.524264476328},"targetPosition":{"x":26503.084692976285,"y":26692.248933913033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1aa9fd38-51e5-4158-9bb2-31dbc8f933d0","savedPayload":{"position":{"x":26503.084692976285,"y":26692.248933913033},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA60","config":"{\n \"codeName\": \"sma60\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma60","project":"Superalgos","id":"6fe04671-6298-4ef4-9ef8-779eafc1645d","savedPayload":{"position":{"x":26439.866554332657,"y":27018.761967586313},"targetPosition":{"x":26360.62276009851,"y":26774.981290360556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d76d7819-b542-4ee8-98fd-539ec3325e2c","savedPayload":{"position":{"x":26360.62276009851,"y":26774.981290360556},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA120","config":"{\n \"codeName\": \"sma120\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma120","project":"Superalgos","id":"f8abde07-3312-4983-bff2-65ed4f475a3f","savedPayload":{"position":{"x":26162.92542546256,"y":27045.027461839687},"targetPosition":{"x":26197.210639542558,"y":26789.605237258893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0e696147-e020-4056-8ad4-40ad79cba391","savedPayload":{"position":{"x":26197.210639542558,"y":26789.605237258893},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA240","config":"{\n \"codeName\": \"sma240\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma240","project":"Superalgos","id":"1ea2c145-6dcf-4e8a-908a-b12e08a8d658","savedPayload":{"position":{"x":25901.8727177444,"y":26946.929502386163},"targetPosition":{"x":26042.69652080181,"y":26732.805369345573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e02938c9-f5b1-49f7-8e63-f8637f6d1d4d","savedPayload":{"position":{"x":26042.69652080181,"y":26732.805369345573},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA360","config":"{\n \"codeName\": \"sma360\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma360","project":"Superalgos","id":"16ab9e8b-cb14-4a59-b7b3-0a1d13dbea5b","savedPayload":{"position":{"x":25709.695662901617,"y":26745.65837655285},"targetPosition":{"x":25928.77331852476,"y":26613.963791232814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fe671bcf-1d71-4081-a100-f4bbc59203c7","savedPayload":{"position":{"x":25928.77331852476,"y":26613.963791232814},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA480","config":"{\n \"codeName\": \"sma480\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma480","project":"Superalgos","id":"135a34fc-3cc8-4555-b1b9-c8ea03150aff","savedPayload":{"position":{"x":25623.23873031277,"y":26479.807551480884},"targetPosition":{"x":25878.273128137385,"y":26457.120563987803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"85a59bf2-d419-43c9-a287-68902b8cb199","savedPayload":{"position":{"x":25878.273128137385,"y":26457.120563987803},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA600","config":"{\n \"codeName\": \"sma600\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma600","project":"Superalgos","id":"cacf8e3b-77d3-4697-9ca5-51cff50afb6c","savedPayload":{"position":{"x":25660.338142885914,"y":26205.1301723162},"targetPosition":{"x":25900.514030915383,"y":26294.302886283534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"608a2a98-bd6e-49e0-b202-afff3553337d","savedPayload":{"position":{"x":25900.514030915383,"y":26294.302886283534},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA1200","config":"{\n \"codeName\": \"sma1200\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma1200","project":"Superalgos","id":"2e1c84ea-2cb3-4936-8106-623dcdff8782","savedPayload":{"position":{"x":25803.588502917133,"y":25980.78310813766},"targetPosition":{"x":25991.9094558216,"y":26156.74940405144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dda31bad-8835-446a-9015-4e15ae4cb845","savedPayload":{"position":{"x":25991.9094558216,"y":26156.74940405144},"targetPosition":{"x":26246.31918214754,"y":26423.665024058686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f46175dc-dfd2-4e1e-a60c-554867b5f0a5","savedPayload":{"position":{"x":25772.089834734703,"y":25904.520795967954},"targetPosition":{"x":25563.503363531614,"y":25262.557647468726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1200.push(candle.close) // Add the current close value to the last 1200 array.\n\nif (variable.last1200.length > 1200) {\n variable.last1200.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1200 elements.\n}\n\nvariable.sma12 = calculateSMA(12)\nvariable.sma24 = calculateSMA(24)\nvariable.sma36 = calculateSMA(36)\nvariable.sma48 = calculateSMA(48)\nvariable.sma60 = calculateSMA(60)\nvariable.sma120 = calculateSMA(120)\nvariable.sma240 = calculateSMA(240)\nvariable.sma360 = calculateSMA(360)\nvariable.sma480 = calculateSMA(480)\nvariable.sma600 = calculateSMA(600)\nvariable.sma1200 = calculateSMA(1200)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1200.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1200.length - periods; i < variable.last1200.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1200[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1200.length=\" + variable.last1200.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1200[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"fba7176b-58ff-4bd6-95de-ad6f88de4cda","savedPayload":{"position":{"x":25518.00597693088,"y":26130.69950013176},"targetPosition":{"x":25471.225846496884,"y":25910.616289966652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"daf2fb19-bfda-4248-a0c6-8e364fe863ee","savedPayload":{"position":{"x":25471.225846496884,"y":25910.616289966652},"targetPosition":{"x":25424.445716062888,"y":25690.533079801546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1200 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1200 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"4d3f1fee-e71d-46cd-a50b-69176de5e1e8","savedPayload":{"position":{"x":25090.030544598056,"y":25991.641852663033},"targetPosition":{"x":25257.238130330472,"y":25841.08746623229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"08365c70-c9ba-481d-abb8-62dc21067754","savedPayload":{"position":{"x":25257.238130330472,"y":25841.08746623229},"targetPosition":{"x":25424.445716062888,"y":25690.533079801546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4aa28d66-d2c5-40d1-9b42-b6adb1e94d1c","savedPayload":{"position":{"x":25424.445716062888,"y":25690.533079801546},"targetPosition":{"x":25563.503363531614,"y":25262.557647468726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"723d28e9-a010-48c5-bda0-43a4c2343ddf","savedPayload":{"position":{"x":25563.503363531614,"y":25262.557647468726},"targetPosition":{"x":25299,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition","name":"Base30 SMAs","config":"{\n \"codeName\": \"Base30-SMAs\",\n \"singularVariableName\": \"base30SMA\",\n \"pluralVariableName\": \"base30SMAs\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\"\n }","project":"Superalgos","id":"4c486321-22e0-4991-9a1c-571bada649ad","savedPayload":{"position":{"x":25866.033079801546,"y":25465.533079801546},"targetPosition":{"x":25438.057647468726,"y":25326.47543233282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@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 }","project":"Superalgos","id":"819688c9-c7bd-444b-9658-2a4379125c72","savedPayload":{"position":{"x":25702.56101100034,"y":25690.533079801546},"targetPosition":{"x":25438.057647468726,"y":25326.47543233282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.begin","project":"Superalgos","id":"16806650-2bfb-4709-acbd-aca1549c16e8","savedPayload":{"position":{"x":26030.90400930897,"y":26017.31604072213},"targetPosition":{"x":25911.89770679035,"y":26243.056297037474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"265d3765-cd1d-4652-a0ed-01931674a151","savedPayload":{"position":{"x":25911.89770679035,"y":26243.056297037474},"targetPosition":{"x":25740.44916648633,"y":26570.238642454664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"record.current.end","project":"Superalgos","id":"d0b81562-348b-433f-8524-f9bc909de69e","savedPayload":{"position":{"x":26255.577738587894,"y":26215.626812211078},"targetPosition":{"x":26044.072058856214,"y":26361.027979843693},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fe6074be-18c6-46c0-abd4-5d31bc067798","savedPayload":{"position":{"x":26044.072058856214,"y":26361.027979843693},"targetPosition":{"x":25740.44916648633,"y":26570.238642454664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA30","config":"{\n \"codeName\": \"sma30\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma30","project":"Superalgos","id":"2ef589ba-7f7d-4df5-91fd-9107d67a7792","savedPayload":{"position":{"x":26363.30040167155,"y":26495.377017762694},"targetPosition":{"x":26106.229616497607,"y":26526.19954067295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"72debf77-1c4b-4e8d-9a99-96951bd6d24c","savedPayload":{"position":{"x":26106.229616497607,"y":26526.19954067295},"targetPosition":{"x":25740.44916648633,"y":26570.238642454664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA60","config":"{\n \"codeName\": \"sma60\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma60","project":"Superalgos","id":"d51798bf-2373-4f5e-b6e4-56aad8117820","savedPayload":{"position":{"x":26325.516806669068,"y":26792.244479789046},"targetPosition":{"x":26086.836415970378,"y":26701.68319021127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78e59381-fcda-4204-a70a-4113eebdbba7","savedPayload":{"position":{"x":26086.836415970378,"y":26701.68319021127},"targetPosition":{"x":25740.44916648633,"y":26570.238642454664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA90","config":"{\n \"codeName\": \"sma90\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma90","project":"Superalgos","id":"a35a40dd-e5b4-4444-a8da-14eeb79e76b3","savedPayload":{"position":{"x":26154.797522434423,"y":27038.142274489528},"targetPosition":{"x":25985.587418220497,"y":26847.060054174686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"90b3598c-8f08-4dc1-ad41-a64caf0cab39","savedPayload":{"position":{"x":25985.587418220497,"y":26847.060054174686},"targetPosition":{"x":25740.44916648633,"y":26570.238642454664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA120","config":"{\n \"codeName\": \"sma120\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma120","project":"Superalgos","id":"046bdfe3-d838-425e-8cc0-e117151bdbf8","savedPayload":{"position":{"x":25889.895812373386,"y":27177.35393800552},"targetPosition":{"x":25828.61505747102,"y":26928.34442929303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aa9f7095-66e7-4e42-b6b2-d3a51e3b35d9","savedPayload":{"position":{"x":25828.61505747102,"y":26928.34442929303},"targetPosition":{"x":25740.44916648633,"y":26570.238642454664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA150","config":"{\n \"codeName\": \"sma150\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma150","project":"Superalgos","id":"8129644d-2b0a-4936-8255-22dc2aada9e7","savedPayload":{"position":{"x":25590.73872500813,"y":27179.308695991604},"targetPosition":{"x":25652.515419417003,"y":26927.859065981917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b0c06b10-549c-4280-aac9-0b649ede898c","savedPayload":{"position":{"x":25652.515419417003,"y":26927.859065981917},"targetPosition":{"x":25740.44916648633,"y":26570.238642454664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA300","config":"{\n \"codeName\": \"sma300\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma300","project":"Superalgos","id":"23ddb87c-8211-4032-8273-222af79863b5","savedPayload":{"position":{"x":25325.903506463797,"y":27038.66537936643},"targetPosition":{"x":25494.876517479395,"y":26847.71278744529},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"38b8e859-eda7-4cd9-afc2-ee0e3ed297b7","savedPayload":{"position":{"x":25494.876517479395,"y":26847.71278744529},"targetPosition":{"x":25740.44916648633,"y":26570.238642454664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA600","config":"{\n \"codeName\": \"sma600\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma600","project":"Superalgos","id":"8f07691b-ccdc-47cc-9c07-3701b61322f9","savedPayload":{"position":{"x":25156.455506369046,"y":26792.05190959552},"targetPosition":{"x":25394.67909700991,"y":26701.54922124756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cebd7a57-eebb-4e4f-9315-6f1411970e55","savedPayload":{"position":{"x":25394.67909700991,"y":26701.54922124756},"targetPosition":{"x":25740.44916648633,"y":26570.238642454664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA900","config":"{\n \"codeName\": \"sma900\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma900","project":"Superalgos","id":"ed66265d-f971-448f-b395-e0c12c178173","savedPayload":{"position":{"x":25119.442065541138,"y":26495.802595265683},"targetPosition":{"x":25374.357304183537,"y":26526.248865516933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fcbefbb9-2a6d-459a-8d3b-595d71caaa88","savedPayload":{"position":{"x":25374.357304183537,"y":26526.248865516933},"targetPosition":{"x":25740.44916648633,"y":26570.238642454664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA1200","config":"{\n \"codeName\": \"sma1200\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma1200","project":"Superalgos","id":"3e936d3b-8f40-49da-830c-f73ea5bf271a","savedPayload":{"position":{"x":25225.119514939674,"y":26215.702597180116},"targetPosition":{"x":25436.425450842544,"y":26360.785584011013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"311d2e2d-163e-4b8e-ae99-2b2d0fbbb2aa","savedPayload":{"position":{"x":25436.425450842544,"y":26360.785584011013},"targetPosition":{"x":25740.44916648633,"y":26570.238642454664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"SMA1500","config":"{\n \"codeName\": \"sma1500\",\n \"isString\": false\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.sma1500","project":"Superalgos","id":"d4db0dc9-12a2-41c6-8511-43cbfdcfb136","savedPayload":{"position":{"x":25445.697294997783,"y":26018.895855737155},"targetPosition":{"x":25569.292901210018,"y":26243.123694786802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b71b603d-38de-401d-b1df-ca20710dba64","savedPayload":{"position":{"x":25569.292901210018,"y":26243.123694786802},"targetPosition":{"x":25740.44916648633,"y":26570.238642454664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"229b4129-39f9-4f46-bbb5-a86a714023f8","savedPayload":{"position":{"x":25438.057647468726,"y":26001.47543233282},"targetPosition":{"x":25438.057647468726,"y":25326.47543233282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Loop Code. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1500.push(candle.close) // Add the current close value to the last 1500 array.\n\nif (variable.last1500.length > 1500) {\n variable.last1500.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1500 elements.\n}\n\nvariable.sma30 = calculateSMA(30)\nvariable.sma60 = calculateSMA(60)\nvariable.sma90 = calculateSMA(90)\nvariable.sma120 = calculateSMA(120)\nvariable.sma150 = calculateSMA(150)\nvariable.sma300 = calculateSMA(300)\nvariable.sma600 = calculateSMA(600)\nvariable.sma900 = calculateSMA(900)\nvariable.sma1200 = calculateSMA(1200)\nvariable.sma1500 = calculateSMA(1500)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1500.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1500.length - periods; i < variable.last1500.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1500[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1500.length=\" + variable.last1500.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1500[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","project":"Superalgos","id":"382c5abf-a91a-40c0-88c2-7e230e93ed44","savedPayload":{"position":{"x":25126.51647546667,"y":26138.067932717266},"targetPosition":{"x":25150.03537970189,"y":25914.300506259406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d3dab655-2db2-4d4c-a776-91a6ae116304","savedPayload":{"position":{"x":25150.03537970189,"y":25914.300506259406},"targetPosition":{"x":25173.554283937112,"y":25690.533079801546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1500 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1500 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","project":"Superalgos","id":"41af43f4-4f30-404d-8d9e-3ad5e752688c","savedPayload":{"position":{"x":24762.458827997943,"y":25873.56456918566},"targetPosition":{"x":24968.006555967528,"y":25782.048824493602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f8611aff-7f4f-4df8-a2ac-b92ef5633ad4","savedPayload":{"position":{"x":24968.006555967528,"y":25782.048824493602},"targetPosition":{"x":25173.554283937112,"y":25690.533079801546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e8bebfde-97db-42d7-93a2-972366bc002c","savedPayload":{"position":{"x":25173.554283937112,"y":25690.533079801546},"targetPosition":{"x":25438.057647468726,"y":25326.47543233282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"607ebabd-9602-4e5c-803d-d4207dbd6794","savedPayload":{"position":{"x":25438.057647468726,"y":25326.47543233282},"targetPosition":{"x":25299,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c1c6f0e0-49f7-4723-bf22-dd24dfee6102","savedPayload":{"position":{"x":19350,"y":18707},"targetPosition":{"x":18900,"y":18707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"plotters":[{"type":"Plotter","name":"Simple Moving Average (SMA)","config":"{\n\"codeName\": \"Plotter SMA\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"SMA Popular","config":"{\n\t\"codeName\": \"SMA-Popular\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"SMA 20 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma20","project":"Superalgos","id":"81557791-d18b-472c-b152-612294f281cc","savedPayload":{"position":{"x":22297.26894015578,"y":26124.70861021199},"targetPosition":{"x":23356.339746074842,"y":26032.051920822807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b932c738-3b05-4b1f-a822-2ba7bae30252","savedPayload":{"position":{"x":23356.339746074842,"y":26032.051920822807},"targetPosition":{"x":24415.410551993904,"y":25939.395231433624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 20 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma20","project":"Superalgos","id":"dd573845-585b-4a89-8518-425173e02916","savedPayload":{"position":{"x":22673.702796718353,"y":24719.838331831368},"targetPosition":{"x":23544.55667435613,"y":25329.616781632496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"44ba79ce-2ad1-4bb7-87db-df0aa58e6440","savedPayload":{"position":{"x":23544.55667435613,"y":25329.616781632496},"targetPosition":{"x":24415.410551993904,"y":25939.395231433624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 50 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma50","project":"Superalgos","id":"054b7477-497f-46f9-b33e-de27dc3d494f","savedPayload":{"position":{"x":23865.1010688999,"y":23885.61228063983},"targetPosition":{"x":24140.255810446903,"y":24912.503756036727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"00efabf8-701d-44b1-a590-b8399149dfbb","savedPayload":{"position":{"x":24140.255810446903,"y":24912.503756036727},"targetPosition":{"x":24415.410551993904,"y":25939.395231433624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 50 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma50","project":"Superalgos","id":"2e18404b-0350-4720-95d1-77533ced3986","savedPayload":{"position":{"x":25313.995264229772,"y":24012.374097379707},"targetPosition":{"x":24864.702908111838,"y":24975.884664406665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"084b4468-49d2-4ad2-a716-ebc338c34248","savedPayload":{"position":{"x":24864.702908111838,"y":24975.884664406665},"targetPosition":{"x":24415.410551993904,"y":25939.395231433624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 100 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma100","project":"Superalgos","id":"9e730b8b-7f20-41df-9126-9d9aae2f8ca6","savedPayload":{"position":{"x":26342.43168604782,"y":25040.810519197756},"targetPosition":{"x":25378.921119020863,"y":25490.10287531569},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bbacba1b-6b2d-48b7-a440-986a04c61858","savedPayload":{"position":{"x":25378.921119020863,"y":25490.10287531569},"targetPosition":{"x":24415.410551993904,"y":25939.395231433624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 100 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma100","project":"Superalgos","id":"922d462b-1e9f-4766-859d-330041428bc0","savedPayload":{"position":{"x":26469.193502787697,"y":26489.704714527626},"targetPosition":{"x":25442.3020273908,"y":26214.549972980625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"270a8be8-ad51-4061-abe1-a4c7234eb88a","savedPayload":{"position":{"x":25442.3020273908,"y":26214.549972980625},"targetPosition":{"x":24415.410551993904,"y":25939.395231433624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 200 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma200","project":"Superalgos","id":"4278cffb-da8c-458e-b014-449f8487204b","savedPayload":{"position":{"x":25634.96745159616,"y":27681.102986709175},"targetPosition":{"x":25025.18900179503,"y":26810.2491090714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cd242031-8d7a-4cee-a680-156b0be7c7c7","savedPayload":{"position":{"x":25025.18900179503,"y":26810.2491090714},"targetPosition":{"x":24415.410551993904,"y":25939.395231433624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 200 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma200","project":"Superalgos","id":"a3b73c57-a9b2-4a55-9232-9bacf741a933","savedPayload":{"position":{"x":24230.097173215538,"y":28057.536843271748},"targetPosition":{"x":24322.75386260472,"y":26998.466037352686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"328b048e-eb4a-4a02-ad95-a17cd170c4a7","savedPayload":{"position":{"x":24322.75386260472,"y":26998.466037352686},"targetPosition":{"x":24415.410551993904,"y":25939.395231433624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6755d98f-e1de-4ae9-b688-d06ab9cc543e","savedPayload":{"position":{"x":24415.410551993904,"y":25939.395231433624},"targetPosition":{"x":23663.67381814401,"y":26691.13196528352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"6368c66e-47fc-486d-8c03-e2ed303de825","savedPayload":{"position":{"x":25240.874776634908,"y":24912.503756036727},"targetPosition":{"x":24965.720035087907,"y":25939.395231433624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"b0d22693-8100-49e9-b92e-11a8a55a5480","savedPayload":{"position":{"x":24965.720035087907,"y":25939.395231433624},"targetPosition":{"x":24690.565293540905,"y":26966.28670683052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 20 End","project":"Superalgos","id":"d9dae274-33d5-403d-a5ff-5514104df62e","savedPayload":{"position":{"x":24148.3214966583,"y":27905.480513120252},"targetPosition":{"x":24690.565293540905,"y":26966.28670683052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 20 End","id":"44ba79ce-2ad1-4bb7-87db-df0aa58e6440"}}},{"type":"Polygon Vertex","name":"SMA 20 Begin","project":"Superalgos","id":"45823ead-7d67-409c-8160-ea36496c412e","savedPayload":{"position":{"x":24163.8283806018,"y":26053.951611398006},"targetPosition":{"x":24690.565293540905,"y":26966.28670683052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 20 Begin","id":"b932c738-3b05-4b1f-a822-2ba7bae30252"}}}],"id":"ffe11ebb-d04f-4bf6-b6ff-43382be7c347","savedPayload":{"position":{"x":24690.565293540905,"y":26966.28670683052},"targetPosition":{"x":23663.67381814401,"y":26691.13196528352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 50","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b0de67a4-9a26-40ce-aa19-f5336145f871","savedPayload":{"position":{"x":25992.611510484803,"y":27167.713957586413},"targetPosition":{"x":24965.720035087907,"y":27442.868699133414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"f06c2d68-11d4-40e0-99df-43a758ca0123","savedPayload":{"position":{"x":24965.720035087907,"y":27442.868699133414},"targetPosition":{"x":23938.82855969101,"y":27718.023440680416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 50 End","project":"Superalgos","id":"baf11fde-1f46-4e77-a8fe-d19a3ee8a4b2","savedPayload":{"position":{"x":23418.503308810636,"y":28619.253211666248},"targetPosition":{"x":23938.82855969101,"y":27718.023440680416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 50 End","id":"084b4468-49d2-4ad2-a716-ebc338c34248"}}},{"type":"Polygon Vertex","name":"SMA 50 Begin","project":"Superalgos","id":"bb6ef8cd-1473-4200-9c0e-35b5eab40259","savedPayload":{"position":{"x":23413.58172579006,"y":26808.269237849283},"targetPosition":{"x":23938.82855969101,"y":27718.023440680416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 50 Begin","id":"00efabf8-701d-44b1-a590-b8399149dfbb"}}}],"id":"c867bef2-aa91-4753-9b27-68f88d42370e","savedPayload":{"position":{"x":23938.82855969101,"y":27718.023440680416},"targetPosition":{"x":23663.67381814401,"y":26691.13196528352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 100","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b03ef9cb-fef3-4a54-bf5a-a85528fa2699","savedPayload":{"position":{"x":24726.790102488583,"y":28194.60543298331},"targetPosition":{"x":23663.67381814401,"y":28194.60543298331},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"baf25122-e7de-4283-b638-cfe2766220ac","savedPayload":{"position":{"x":23663.67381814401,"y":28194.60543298331},"targetPosition":{"x":22911.937084294113,"y":27442.868699133414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 100 Begin","project":"Superalgos","id":"8657980b-1796-4291-bba6-87520122b302","savedPayload":{"position":{"x":22376.411864886526,"y":28370.425587881826},"targetPosition":{"x":22911.937084294113,"y":27442.868699133414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 100 Begin","id":"bbacba1b-6b2d-48b7-a440-986a04c61858"}}},{"type":"Polygon Vertex","name":"SMA 100 End","project":"Superalgos","id":"45403abf-a4b1-4f8a-9d18-8ee72fef1792","savedPayload":{"position":{"x":22385.834818586787,"y":26531.632844951226},"targetPosition":{"x":22911.937084294113,"y":27442.868699133414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 100 End","id":"270a8be8-ad51-4061-abe1-a4c7234eb88a"}}}],"id":"7473f9b9-7737-4ee1-8418-39b96d8365c3","savedPayload":{"position":{"x":22911.937084294113,"y":27442.868699133414},"targetPosition":{"x":23663.67381814401,"y":26691.13196528352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 200","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"9475aa23-1561-45f6-8129-9d7ffaf0bb22","savedPayload":{"position":{"x":22086.47285965311,"y":28469.76017453031},"targetPosition":{"x":22361.62760120011,"y":27442.868699133414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9007d9ad-f2b5-45fb-a7b3-b9579c74866d","savedPayload":{"position":{"x":22361.62760120011,"y":27442.868699133414},"targetPosition":{"x":22636.782342747112,"y":26415.977223736518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 200 Begin","project":"Superalgos","id":"0b3d001b-060a-4d72-94e7-d8e9f76ef1ae","savedPayload":{"position":{"x":22111.590881013457,"y":27325.635519160573},"targetPosition":{"x":22636.782342747112,"y":26415.977223736518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 200 Begin","id":"cd242031-8d7a-4cee-a680-156b0be7c7c7"}}},{"type":"Polygon Vertex","name":"SMA 200 End","project":"Superalgos","id":"178f2776-a5db-4cb9-b8c7-11ecb471bf12","savedPayload":{"position":{"x":22104.664988823704,"y":25494.322931152066},"targetPosition":{"x":22636.782342747112,"y":26415.977223736518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 200 End","id":"328b048e-eb4a-4a02-ad95-a17cd170c4a7"}}}],"id":"5dbe47bb-9414-4edd-be08-5ab50755a852","savedPayload":{"position":{"x":22636.782342747112,"y":26415.977223736518},"targetPosition":{"x":23663.67381814401,"y":26691.13196528352},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"340dc986-ccc9-4b47-ac54-294187daa2e0","savedPayload":{"position":{"x":24174,"y":25738.211431703},"targetPosition":{"x":24174,"y":25288.211431703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Popular SMA","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"SMA 20","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma20","project":"Superalgos","id":"4f901876-b274-426e-9755-529b6241890d","savedPayload":{"position":{"x":24453.11891122666,"y":26115.428977425974},"targetPosition":{"x":24118.70373976183,"y":25814.320204564487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"57d75985-febe-441b-be12-31f5eb10881b","savedPayload":{"position":{"x":24118.70373976183,"y":25814.320204564487},"targetPosition":{"x":23784.288568297,"y":25513.211431703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 50","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma50","project":"Superalgos","id":"dc2d66e9-8dc1-4092-bfa8-e147c7cf7226","savedPayload":{"position":{"x":23418.22558952878,"y":26335.402343581343},"targetPosition":{"x":23601.257078912895,"y":25924.30688764217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"74e3faab-246a-4c05-ae0a-b68f2095aa73","savedPayload":{"position":{"x":23601.257078912895,"y":25924.30688764217},"targetPosition":{"x":23784.288568297,"y":25513.211431703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 100","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma100","project":"Superalgos","id":"1b045b3c-13a9-4091-a804-0040340cf1be","savedPayload":{"position":{"x":22889.218862465554,"y":25419.135814762114},"targetPosition":{"x":23336.75371538128,"y":25466.173623232557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f46c7caf-8907-4cc4-b048-efe691a24049","savedPayload":{"position":{"x":23336.75371538128,"y":25466.173623232557},"targetPosition":{"x":23784.288568297,"y":25513.211431703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 200","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma200","project":"Superalgos","id":"ef7a7e7d-dec3-4da6-9646-d087e03b7a71","savedPayload":{"position":{"x":23597.16804656102,"y":24632.878591042572},"targetPosition":{"x":23690.72830742901,"y":25073.045011372786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e1108c8-e8a4-4ae8-b6b1-765c4292580a","savedPayload":{"position":{"x":23690.72830742901,"y":25073.045011372786},"targetPosition":{"x":23784.288568297,"y":25513.211431703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7fc74763-c245-4b23-8121-7fe0d1e8e1db","savedPayload":{"position":{"x":23784.288568297,"y":25513.211431703},"targetPosition":{"x":24174,"y":25288.211431703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ddf21e96-c312-4ebe-9e2b-f56e8ea072aa","savedPayload":{"position":{"x":24174,"y":25288.211431703},"targetPosition":{"x":24399,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"SMA Base 11","config":"{\n\t\"codeName\": \"SMA-Base11\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"SMA 11 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma11","project":"Superalgos","id":"ab8c79b6-26ed-436e-a9ed-5581e48403a9","savedPayload":{"position":{"x":23445.5083098748,"y":25450.360296932613},"targetPosition":{"x":23606.67371348075,"y":25567.923348870663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"77d02772-853e-4e30-9efe-7bea8e829d51","savedPayload":{"position":{"x":23606.67371348075,"y":25567.923348870663},"targetPosition":{"x":23768.069252136396,"y":25685.304503096788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 11 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma11","project":"Superalgos","id":"e7f8c6de-4085-4886-ad93-c207274eb90c","savedPayload":{"position":{"x":23624.079356183567,"y":25313.034435657217},"targetPosition":{"x":23696.045383916804,"y":25499.22032217218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"185ca2e7-b561-4ce4-b219-bd54496885b5","savedPayload":{"position":{"x":23696.045383916804,"y":25499.22032217218},"targetPosition":{"x":23768.069252136396,"y":25685.304503096788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 22 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma22","project":"Superalgos","id":"0c62dd54-916a-4187-be47-0715604a0632","savedPayload":{"position":{"x":23848.007725926338,"y":25294.37553961372},"targetPosition":{"x":23808.053786176108,"y":25489.866137276316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"08b23cb2-cf78-48ae-bd9a-efe0e8df4578","savedPayload":{"position":{"x":23808.053786176108,"y":25489.866137276316},"targetPosition":{"x":23768.069252136396,"y":25685.304503096788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 22 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma22","project":"Superalgos","id":"f1d537b7-09a0-4031-8565-02ea33b66261","savedPayload":{"position":{"x":24046.907072875485,"y":25400.097771339548},"targetPosition":{"x":23907.503965761352,"y":25542.69500258446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3871971f-7f4b-49a0-a0d7-b1d08a4db951","savedPayload":{"position":{"x":23907.503965761352,"y":25542.69500258446},"targetPosition":{"x":23768.069252136396,"y":25685.304503096788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 33 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma33","project":"Superalgos","id":"5cbdb800-4b2b-49e6-a8ef-678587ecd626","savedPayload":{"position":{"x":24157.173875543605,"y":25596.58591677463},"targetPosition":{"x":23962.63757892078,"y":25640.93085089134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2734c9f2-1347-4b5b-8dbf-f7f42eb2c810","savedPayload":{"position":{"x":23962.63757892078,"y":25640.93085089134},"targetPosition":{"x":23768.069252136396,"y":25685.304503096788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 33 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma33","project":"Superalgos","id":"d7051dab-455d-4d02-8e0b-59139c3546d3","savedPayload":{"position":{"x":24237.33632428876,"y":25854.61300971745},"targetPosition":{"x":23955.953365227422,"y":25753.121812939717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"id":"ce242fe6-2b52-4b89-a203-ce398b3545fd","savedPayload":{"position":{"x":23955.953365227422,"y":25753.121812939717},"targetPosition":{"x":23768.069252136396,"y":25685.304503096788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 55 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma55","project":"Superalgos","id":"2c8a5860-2c8c-4a04-b0aa-d353817d3dab","savedPayload":{"position":{"x":24010.940652631223,"y":26002.736362537966},"targetPosition":{"x":23889.50565223263,"y":25844.011539800696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bdc5f0cf-2c2f-466c-963b-19d81a13b532","savedPayload":{"position":{"x":23889.50565223263,"y":25844.011539800696},"targetPosition":{"x":23768.069252136396,"y":25685.304503096788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 55 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma55","project":"Superalgos","id":"62dfcbf0-e773-41db-80e0-bf46d47d977f","savedPayload":{"position":{"x":23800.894030995943,"y":26083.862713210103},"targetPosition":{"x":23784.469476249214,"y":25884.563824285586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2e58c59-c5d7-4b42-bb66-f012da23c12a","savedPayload":{"position":{"x":23784.469476249214,"y":25884.563824285586},"targetPosition":{"x":23768.069252136396,"y":25685.304503096788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 111 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma111","project":"Superalgos","id":"b496251d-8005-4d21-9be0-1dec58cb58ba","savedPayload":{"position":{"x":23580.73971773342,"y":26038.449581388668},"targetPosition":{"x":23674.365303451275,"y":25861.843930618154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"62ed1060-3233-4175-a4cc-8ad04a123105","savedPayload":{"position":{"x":23674.365303451275,"y":25861.843930618154},"targetPosition":{"x":23768.069252136396,"y":25685.304503096788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 11 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma111","project":"Superalgos","id":"3e765b91-17a0-4b30-bcfb-d7491afa9635","savedPayload":{"position":{"x":23419.740156004467,"y":25880.754186477632},"targetPosition":{"x":23593.802148028837,"y":25782.93547409018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bdee0fe7-c635-483d-b547-6271410cc35a","savedPayload":{"position":{"x":23593.802148028837,"y":25782.93547409018},"targetPosition":{"x":23768.069252136396,"y":25685.304503096788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"853ae08f-85ed-48e9-82d9-7f00184ff7e7","savedPayload":{"position":{"x":23768.069252136396,"y":25685.304503096788},"targetPosition":{"x":22774.661212586474,"y":25632.78900029543},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 11","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"a36a0be4-c3be-4e17-8459-ce24d08c60d4","savedPayload":{"position":{"x":22890.48775306603,"y":26275.999175299065},"targetPosition":{"x":22846.928225986412,"y":26149.822365615928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bc76dbe0-28fe-4811-b396-583cc810ad8c","savedPayload":{"position":{"x":22846.928225986412,"y":26149.822365615928},"targetPosition":{"x":22759.65953923653,"y":25898.339825148945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 11 Begin","project":"Superalgos","id":"007b0aa7-d129-4b66-97b1-a223b61465a9","savedPayload":{"position":{"x":22744.1477828529,"y":26164.291555392167},"targetPosition":{"x":22759.65953923653,"y":25898.339825148945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 11 Begin","id":"77d02772-853e-4e30-9efe-7bea8e829d51"}}},{"type":"Polygon Vertex","name":"SMA 11 End","project":"Superalgos","id":"8bf6c449-35d6-44c0-ac25-0da059e0c7d0","savedPayload":{"position":{"x":22677.171121517895,"y":26147.95400637928},"targetPosition":{"x":22759.65953923653,"y":25898.339825148945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 11 End","id":"185ca2e7-b561-4ce4-b219-bd54496885b5"}}}],"id":"82eff706-25ff-45ba-b066-0f20b64e26e1","savedPayload":{"position":{"x":22759.65953923653,"y":25898.339825148945},"targetPosition":{"x":22774.661212586474,"y":25632.78900029543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 22","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"48b5e69c-d187-40f8-aee9-89f02ac7b442","savedPayload":{"position":{"x":22580.132009350342,"y":26257.65744555869},"targetPosition":{"x":22595.698838350872,"y":26124.749422563986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"13b6ae03-77c1-473a-9cd9-eee42cab5005","savedPayload":{"position":{"x":22595.698838350872,"y":26124.749422563986},"targetPosition":{"x":22645.41945391903,"y":25865.21200088052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 22 End","project":"Superalgos","id":"5101118b-d0b2-46b3-b752-c1e8f3e09842","savedPayload":{"position":{"x":22504.34914560704,"y":26096.5372002741},"targetPosition":{"x":22645.41945391903,"y":25865.21200088052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 22 End","id":"3871971f-7f4b-49a0-a0d7-b1d08a4db951"}}},{"type":"Polygon Vertex","name":"SMA 22 Begin","project":"Superalgos","id":"5d1290b9-98c2-4925-9da4-fcdf50d13c5b","savedPayload":{"position":{"x":22460.689016380984,"y":26052.185106619963},"targetPosition":{"x":22645.41945391903,"y":25865.21200088052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 22 Begin","id":"08b23cb2-cf78-48ae-bd9a-efe0e8df4578"}}}],"id":"b7186c69-0a02-4820-bb58-1e2cee5790b3","savedPayload":{"position":{"x":22645.41945391903,"y":25865.21200088052},"targetPosition":{"x":22774.661212586474,"y":25632.78900029543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 33","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"a8183072-9dc8-4f7c-b72b-742477e4c8fd","savedPayload":{"position":{"x":22326.75121693219,"y":26110.098926388553},"targetPosition":{"x":22398.562563740925,"y":25997.128959494486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"98a87528-cb66-4e15-a3b0-aadb8d25fcec","savedPayload":{"position":{"x":22398.562563740925,"y":25997.128959494486},"targetPosition":{"x":22557.19830749089,"y":25785.84705202662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 33 End","project":"Superalgos","id":"242e470b-2971-40b2-9f06-a95bf95e23fc","savedPayload":{"position":{"x":22329.0028165134,"y":25932.598216798764},"targetPosition":{"x":22557.19830749089,"y":25785.84705202662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 33 End","id":"ce242fe6-2b52-4b89-a203-ce398b3545fd"}}},{"type":"Polygon Vertex","name":"SMA 33 Begin","project":"Superalgos","id":"106e4253-deab-440c-828a-ea55aea78c97","savedPayload":{"position":{"x":22309.435476663653,"y":25873.900214021392},"targetPosition":{"x":22557.19830749089,"y":25785.84705202662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 33 Begin","id":"2734c9f2-1347-4b5b-8dbf-f7f42eb2c810"}}}],"id":"53f19bad-dcb0-476f-8b32-0d332d1ad130","savedPayload":{"position":{"x":22557.19830749089,"y":25785.84705202662},"targetPosition":{"x":22774.661212586474,"y":25632.78900029543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 55","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"ea853676-6bdc-4723-a515-1a4c683fa1fa","savedPayload":{"position":{"x":22164.037404208662,"y":25867.926312386917},"targetPosition":{"x":22277.775655847134,"y":25797.36704582367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1fd3b244-b5ae-4a96-add5-50b228eac931","savedPayload":{"position":{"x":22277.775655847134,"y":25797.36704582367},"targetPosition":{"x":22512.249882299642,"y":25676.013162289895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 55 End","project":"Superalgos","id":"c0102a15-8594-4582-9714-75e555e3f2ac","savedPayload":{"position":{"x":22242.84484018818,"y":25709.197144070848},"targetPosition":{"x":22512.249882299642,"y":25676.013162289895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 55 End","id":"d2e58c59-c5d7-4b42-bb66-f012da23c12a"}}},{"type":"Polygon Vertex","name":"SMA 55 Begin","project":"Superalgos","id":"aa781190-aa71-4407-bc72-db67ffd67c7e","savedPayload":{"position":{"x":22250.774928253602,"y":25647.827061636737},"targetPosition":{"x":22512.249882299642,"y":25676.013162289895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 55 Begin","id":"bdc5f0cf-2c2f-466c-963b-19d81a13b532"}}}],"id":"8341d899-4df1-47f8-8e0d-bb87b76ed622","savedPayload":{"position":{"x":22512.249882299642,"y":25676.013162289895},"targetPosition":{"x":22774.661212586474,"y":25632.78900029543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 111","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"85056d46-5dd2-4dc2-9c40-55ef936aeea8","savedPayload":{"position":{"x":22123.07726353102,"y":25579.33438479624},"targetPosition":{"x":22256.04302955145,"y":25565.183762782923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bd5b197d-7425-461d-a2ab-5ad6446d00ee","savedPayload":{"position":{"x":22256.04302955145,"y":25565.183762782923},"targetPosition":{"x":22519.60724327549,"y":25557.472874616582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 11 End","project":"Superalgos","id":"fbd2d02d-d58e-4d04-a5a6-9bbc6e877244","savedPayload":{"position":{"x":22262.362041083237,"y":25470.52413326329},"targetPosition":{"x":22519.60724327549,"y":25557.472874616582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 11 End","id":"bdee0fe7-c635-483d-b547-6271410cc35a"}}},{"type":"Polygon Vertex","name":"SMA 111 Begin","project":"Superalgos","id":"e79d988b-7d4a-4201-839a-a95f99dc26fe","savedPayload":{"position":{"x":22315.883201443183,"y":25384.882411733917},"targetPosition":{"x":22519.60724327549,"y":25557.472874616582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 111 Begin","id":"62ed1060-3233-4175-a4cc-8ad04a123105"}}}],"id":"5745a180-5f94-4109-b8e5-41b2c21e9f1a","savedPayload":{"position":{"x":22519.60724327549,"y":25557.472874616582},"targetPosition":{"x":22774.661212586474,"y":25632.78900029543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"ade8af76-e9e6-4dda-8921-c3c5cc8a0ecc","savedPayload":{"position":{"x":22774.661212586474,"y":25632.78900029543},"targetPosition":{"x":23129.470722161208,"y":25238.599780812794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"SMA Base 11","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"SMA 11","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma11","project":"Superalgos","id":"bce6e5ba-e93b-4c0f-9013-db467727e721","savedPayload":{"position":{"x":21753.153980629722,"y":25341.535805839143},"targetPosition":{"x":21931.295278037138,"y":25144.02691207743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f4794965-6a35-4289-9e0e-718b931028de","savedPayload":{"position":{"x":21931.295278037138,"y":25144.02691207743},"targetPosition":{"x":22109.21905775678,"y":24946.434334556972},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 22","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma22","project":"Superalgos","id":"e8837d50-025b-4bbc-8199-328df7afbdda","savedPayload":{"position":{"x":21603.055463046094,"y":25110.598837456517},"targetPosition":{"x":21856.1762857388,"y":25028.52622810222},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2b4712d6-5952-4bd0-bcac-7d396d95f842","savedPayload":{"position":{"x":21856.1762857388,"y":25028.52622810222},"targetPosition":{"x":22109.21905775678,"y":24946.434334556972},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 33","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma33","project":"Superalgos","id":"825bc681-cb31-4d26-85af-4f692538fc9d","savedPayload":{"position":{"x":21588.646167340787,"y":24836.008015086445},"targetPosition":{"x":21848.967106822984,"y":24891.211467813333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"377ff3cb-9d7b-45aa-a2c1-3cabf3540c8e","savedPayload":{"position":{"x":21848.967106822984,"y":24891.211467813333},"targetPosition":{"x":22109.21905775678,"y":24946.434334556972},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 55","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma55","project":"Superalgos","id":"24c4a804-6686-43ab-a664-db08d860034c","savedPayload":{"position":{"x":21713.735836870415,"y":24590.641283971185},"targetPosition":{"x":21911.53145760585,"y":24768.51299335729},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4b0485d9-4d37-4402-939b-eb878c6750ec","savedPayload":{"position":{"x":21911.53145760585,"y":24768.51299335729},"targetPosition":{"x":22109.21905775678,"y":24946.434334556972},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 111","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma111","project":"Superalgos","id":"3d21e771-7edd-4460-aa23-da3c7880a629","savedPayload":{"position":{"x":21944.909788750796,"y":24440.82162801966},"targetPosition":{"x":22027.20082305592,"y":24693.5591871556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"738b01bd-a4da-4f90-a816-c021eeb81030","savedPayload":{"position":{"x":22027.20082305592,"y":24693.5591871556},"targetPosition":{"x":22109.21905775678,"y":24946.434334556972},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fc702308-8514-4e8d-85d3-5d052aad782c","savedPayload":{"position":{"x":22109.21905775678,"y":24946.434334556972},"targetPosition":{"x":23129.470722161208,"y":25238.599780812794},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4a61ac35-a1ae-40f4-b3da-f81ae796ee00","savedPayload":{"position":{"x":23814.432852445505,"y":25236},"targetPosition":{"x":24399,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"SMA Base 7","config":"{\n\t\"codeName\": \"SMA-Base7\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"SMA 7 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma7","project":"Superalgos","id":"b459dee1-24d0-4794-9c4d-d9c58972f6e6","savedPayload":{"position":{"x":21986.784924702,"y":26397.24938048172},"targetPosition":{"x":22337.75557148565,"y":26795.63924213095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8d6e2d59-fe23-4ba5-ad87-d9d15ad60340","savedPayload":{"position":{"x":22337.75557148565,"y":26795.63924213095},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 7 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma7","project":"Superalgos","id":"3994ef79-ab0b-4552-bbde-f754a86f2e04","savedPayload":{"position":{"x":22228.156051004677,"y":26237.484612712058},"targetPosition":{"x":22458.481546853964,"y":26715.656312869425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a95fee99-4a06-44d7-a6c4-0eea9ccec4d9","savedPayload":{"position":{"x":22458.481546853964,"y":26715.656312869425},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 14 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma14","project":"Superalgos","id":"40d386cb-84a9-49b0-b28e-3d39e9e274cb","savedPayload":{"position":{"x":22503.750355453365,"y":26148.698561797813},"targetPosition":{"x":22596.25520186743,"y":26671.235071593208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c6d631e7-8cd0-4ccd-b7b4-90b8dda615d8","savedPayload":{"position":{"x":22596.25520186743,"y":26671.235071593208},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 21 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma21","project":"Superalgos","id":"6d2cd604-9a38-4ab7-b19d-9e9e3ae8ad25","savedPayload":{"position":{"x":22792.569855147005,"y":26137.36575595188},"targetPosition":{"x":22740.69260748118,"y":26665.617129828435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4f1044fa-67dd-42dc-ba74-61e299e1f1e1","savedPayload":{"position":{"x":22740.69260748118,"y":26665.617129828435},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 21 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma21","project":"Superalgos","id":"1de80488-5eeb-491c-bd5f-e5bd7569dc59","savedPayload":{"position":{"x":23074.024877046373,"y":26204.5080221996},"targetPosition":{"x":22881.463135209062,"y":26699.22754928417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"df7e58c1-c042-443b-bfd3-69d57894d358","savedPayload":{"position":{"x":22881.463135209062,"y":26699.22754928417},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 28 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma28","project":"Superalgos","id":"93b50d69-b003-4590-b098-ff59dc226e22","savedPayload":{"position":{"x":23326.89577994574,"y":26345.123075993764},"targetPosition":{"x":23007.937642873218,"y":26769.561116692617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7bd742dd-7c4c-4dfe-9415-e655a5e1cc88","savedPayload":{"position":{"x":23007.937642873218,"y":26769.561116692617},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 28 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma28","project":"Superalgos","id":"36ddca01-d7c2-44e4-bac6-1efd92721b56","savedPayload":{"position":{"x":23532.44160627121,"y":26548.77853408365},"targetPosition":{"x":23110.73773651831,"y":26871.414500421215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7678774b-b068-4757-962b-8e126342898a","savedPayload":{"position":{"x":23110.73773651831,"y":26871.414500421215},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 35 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma35","project":"Superalgos","id":"e631b84b-646b-41f7-b87b-7cb4fbf8ac76","savedPayload":{"position":{"x":23675.409092560716,"y":26800.3478895262},"targetPosition":{"x":23182.232270195756,"y":26997.22515916036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"93613bd9-2dbb-493c-a72e-414b0398733e","savedPayload":{"position":{"x":23182.232270195756,"y":26997.22515916036},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 35 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma35","project":"Superalgos","id":"89e3900f-eeaf-47cb-97f6-9093b2f39811","savedPayload":{"position":{"x":23745.209120500065,"y":27081.173218773085},"targetPosition":{"x":23217.140663345843,"y":27137.668428304984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f620fdbe-48b5-4831-995d-b3c721738d1b","savedPayload":{"position":{"x":23217.140663345843,"y":27137.668428304984},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 70 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma70","project":"Superalgos","id":"cacaceaf-b19d-4b2a-81b3-5ac6b44877b7","savedPayload":{"position":{"x":23736.65384852964,"y":27370.010721047118},"targetPosition":{"x":23212.86362405315,"y":27282.113460395904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9e506a85-5f72-4a3f-a773-cd85d8b15f21","savedPayload":{"position":{"x":23212.856629087782,"y":27282.109735730493},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 70 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma70","project":"Superalgos","id":"8658d660-52c4-41f8-b423-db569ff19941","savedPayload":{"position":{"x":23650.359553141967,"y":27646.21443226562},"targetPosition":{"x":23169.7079698243,"y":27420.241610673074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8392e1ff-33a6-4b95-baad-3f146bd3c121","savedPayload":{"position":{"x":23169.711877845704,"y":27420.248441146625},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 140 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma140","project":"Superalgos","id":"a56e674e-ec4f-4448-a8bc-bfbc3a02eea4","savedPayload":{"position":{"x":23492.738418912675,"y":27888.902299087855},"targetPosition":{"x":23090.88086641848,"y":27541.608039642528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"39e65adb-6125-4e9a-8f15-5403b21aac40","savedPayload":{"position":{"x":23090.89307466219,"y":27541.610397587378},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 140 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma140","project":"Superalgos","id":"9aeb4594-c7e0-41e1-83b3-8df31b0d44b0","savedPayload":{"position":{"x":23275.495274506862,"y":28080.0779385582},"targetPosition":{"x":22982.244481526268,"y":27637.21960086305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7559cbf5-acba-4a60-91b4-d95f90293f22","savedPayload":{"position":{"x":22982.236997047443,"y":27637.22593443824},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 210 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma210","project":"Superalgos","id":"8856ee41-b264-4468-9dac-eb808b483df3","savedPayload":{"position":{"x":23014.69945096927,"y":28205.53561513008},"targetPosition":{"x":22851.82079692318,"y":27699.966535776955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"479df802-576f-45f1-8322-6b2e493c5ecc","savedPayload":{"position":{"x":22851.83319501053,"y":27699.96607819945},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 210 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma210","project":"Superalgos","id":"f4fa8a22-fe87-4174-bf51-cb574381ca0d","savedPayload":{"position":{"x":22729.73606976784,"y":28255.99064094411},"targetPosition":{"x":22709.310573768165,"y":27725.196962221653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"45a926f2-4bb2-4562-b40f-bd2532ff1d10","savedPayload":{"position":{"x":22709.31406092312,"y":27725.18565872822},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 280 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma280","project":"Superalgos","id":"49f183b2-f8d1-4055-947d-291b7787d846","savedPayload":{"position":{"x":22442.131612099245,"y":28227.708010731636},"targetPosition":{"x":22565.480715422385,"y":27711.05519458715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d5e455bf-bb27-41fa-ba41-c8e7d0aa4d5e","savedPayload":{"position":{"x":22565.491735764223,"y":27711.05762227205},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 280 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma280","project":"Superalgos","id":"012f6580-f9e9-47f6-b6f4-82598b8e8aa7","savedPayload":{"position":{"x":22172.421872262126,"y":28122.77467288487},"targetPosition":{"x":22430.60214945525,"y":27658.572071176033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"298d0ca9-1b4a-48d8-8efe-fda6b2fc2c34","savedPayload":{"position":{"x":22430.61579953118,"y":27658.575922160864},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 350 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma350","project":"Superalgos","id":"4a3f6588-26e3-446b-ac4e-54ad3bc9ef3c","savedPayload":{"position":{"x":21941.031361206067,"y":27948.96770217476},"targetPosition":{"x":22314.888061803547,"y":27571.65269237189},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f3c05d30-da2e-449e-8471-dcc216f4e630","savedPayload":{"position":{"x":22314.902229464,"y":27571.651041020235},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 350 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma350","project":"Superalgos","id":"1157762f-1236-43b1-a399-06d59a992d55","savedPayload":{"position":{"x":21765.123025965684,"y":27719.179326611753},"targetPosition":{"x":22226.92413500168,"y":27456.734954953154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d6598381-9b15-4cb3-afba-b85ed6770ce3","savedPayload":{"position":{"x":22226.92861677674,"y":27456.722849063673},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"New Point","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.propertyA","project":"Superalgos","id":"24151ce9-3ecb-4c6b-97e5-41a8a95b45a8","savedPayload":{"position":{"x":21657.733064158605,"y":27450.441143718384},"targetPosition":{"x":22173.2216946555,"y":27322.333259857547},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"30f77a0a-81fd-4498-8510-cfca20b6b1d8","savedPayload":{"position":{"x":22173.218801722323,"y":27322.339963511884},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"New Point","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.propertyA","project":"Superalgos","id":"0da81a21-3169-44c7-a896-17eb32bdfa17","savedPayload":{"position":{"x":21626.831093229186,"y":27163.10497180119},"targetPosition":{"x":22157.773189916683,"y":27178.62722120268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6fd2e88e-f5e1-45d5-8baf-4bc724bf2bae","savedPayload":{"position":{"x":22157.773189916683,"y":27178.62722120268},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 14 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma14","project":"Superalgos","id":"78e7fbfb-c210-44b6-8399-1567f81c73c9","savedPayload":{"position":{"x":21674.748283832396,"y":26877.622563948233},"targetPosition":{"x":22181.75425740549,"y":27035.815157661258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d5f823d6-8b99-44b5-99dc-04724a531323","savedPayload":{"position":{"x":22181.75425740549,"y":27035.815157661258},"targetPosition":{"x":22688.887077774216,"y":27194.183794825934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e561ee2d-8458-4001-8904-61cd2a3a815e","savedPayload":{"position":{"x":22688.887077774216,"y":27194.183794825934},"targetPosition":{"x":22725.068857629147,"y":25075.79453123554},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 7","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"38522e0c-85c4-49ae-93ac-9a04470855e0","savedPayload":{"position":{"x":22314.770617055005,"y":25906.55589651838},"targetPosition":{"x":22363.923905599433,"y":25782.56489748551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"fcc0c4b0-28ea-4482-8da8-16a0c88c1e52","savedPayload":{"position":{"x":22363.923905599433,"y":25782.56489748551},"targetPosition":{"x":22436.34268778964,"y":25521.989015152198},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 7 End","project":"Superalgos","id":"f11dbba2-2bd3-4d0a-a182-2ef78a492d32","savedPayload":{"position":{"x":22288.962375009774,"y":25761.908436867274},"targetPosition":{"x":22436.34268778964,"y":25521.989015152198},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 7 End","id":"a95fee99-4a06-44d7-a6c4-0eea9ccec4d9"}}},{"type":"Polygon Vertex","name":"SMA 7 Begin","project":"Superalgos","id":"c50700bc-305d-4cb6-b1bf-1c03c7459d2b","savedPayload":{"position":{"x":22241.007843766678,"y":25691.69360185358},"targetPosition":{"x":22436.34268778964,"y":25521.989015152198},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 7 Begin","id":"8d6e2d59-fe23-4ba5-ad87-d9d15ad60340"}}}],"id":"62ad882d-f16d-4476-8c17-0f6e2d6e2b76","savedPayload":{"position":{"x":22436.34268778964,"y":25521.989015152198},"targetPosition":{"x":22725.068857629147,"y":25075.79453123554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 14","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"14a21030-fa6b-44ef-8cb2-e4f3cb79126e","savedPayload":{"position":{"x":22099.70274280228,"y":25766.271272998692},"targetPosition":{"x":22179.69029389717,"y":25659.083630631703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ca2fa8f2-f6a1-4084-8606-a35495dfd596","savedPayload":{"position":{"x":22179.69029389717,"y":25659.083630631703},"targetPosition":{"x":22330.410272503934,"y":25431.696434957837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 14 Begin","project":"Superalgos","id":"e7d170e8-3d4f-4a55-883a-3a3394fef2af","savedPayload":{"position":{"x":22126.676180587598,"y":25622.772664444954},"targetPosition":{"x":22330.410272503934,"y":25431.696434957837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 14 Begin","id":"d5f823d6-8b99-44b5-99dc-04724a531323"}}},{"type":"Polygon Vertex","name":"SMA 14 End","project":"Superalgos","id":"2383789a-4600-4b8b-a49b-51cbeb46d4f1","savedPayload":{"position":{"x":22096.544921537843,"y":25544.76560295121},"targetPosition":{"x":22330.410272503934,"y":25431.696434957837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 14 End","id":"c6d631e7-8cd0-4ccd-b7b4-90b8dda615d8"}}}],"id":"ab179cef-53c3-46f7-a83b-af29ccd8bc90","savedPayload":{"position":{"x":22330.410272503934,"y":25431.696434957837},"targetPosition":{"x":22725.068857629147,"y":25075.79453123554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 21","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"f8f0733e-0890-4d54-8d77-1b1fc8b8c92b","savedPayload":{"position":{"x":21941.318695654227,"y":25580.287180549756},"targetPosition":{"x":22046.49271687942,"y":25497.470772313536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"a0f2de63-1abd-4945-9c8c-84e21fd121e0","savedPayload":{"position":{"x":22046.49271687942,"y":25497.470772313536},"targetPosition":{"x":22251.643563601778,"y":25317.248869543433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 21 End","project":"Superalgos","id":"69c3f249-07bf-4a03-b8a1-9d74d0255f23","savedPayload":{"position":{"x":22004.89006699828,"y":25448.775446559903},"targetPosition":{"x":22251.643563601778,"y":25317.248869543433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 21 End","id":"df7e58c1-c042-443b-bfd3-69d57894d358"}}},{"type":"Polygon Vertex","name":"SMA 21 Begin","project":"Superalgos","id":"959961b9-9bf9-48ce-9ee0-08d2d6a62b8e","savedPayload":{"position":{"x":21996.78006835395,"y":25365.6278349347},"targetPosition":{"x":22251.643563601778,"y":25317.248869543433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 21 Begin","id":"4f1044fa-67dd-42dc-ba74-61e299e1f1e1"}}}],"id":"9a17429f-8213-4a7e-8167-dc36d761973e","savedPayload":{"position":{"x":22251.643563601778,"y":25317.248869543433},"targetPosition":{"x":22725.068857629147,"y":25075.79453123554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 28","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"713c60e9-ee11-4551-ab62-58ce9c16e066","savedPayload":{"position":{"x":21836.885595729367,"y":25360.04600690659},"targetPosition":{"x":21959.969313954585,"y":25307.323855475737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"725a4d2f-0838-4d78-a8fa-a2b129feda2f","savedPayload":{"position":{"x":21959.969313954585,"y":25307.323855475737},"targetPosition":{"x":22205.209141498788,"y":25186.35660182873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 28 Begin","project":"Superalgos","id":"f4c161f4-6510-47a2-97f7-3f9f848d9892","savedPayload":{"position":{"x":21932.87253669335,"y":25249.452641088472},"targetPosition":{"x":22205.209141498788,"y":25186.35660182873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 28 Begin","id":"7bd742dd-7c4c-4dfe-9415-e655a5e1cc88"}}},{"type":"Polygon Vertex","name":"SMA 28 End","project":"Superalgos","id":"b1b22a6f-0a69-401f-90ea-2306baee0ea2","savedPayload":{"position":{"x":21946.388856141577,"y":25167.197793860338},"targetPosition":{"x":22205.209141498788,"y":25186.35660182873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 28 End","id":"7678774b-b068-4757-962b-8e126342898a"}}}],"id":"4f6e0c60-00a8-4a76-b1b1-4eaa25c5824c","savedPayload":{"position":{"x":22205.209141498788,"y":25186.35660182873},"targetPosition":{"x":22725.068857629147,"y":25075.79453123554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 35","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"73f591c5-286b-4441-aa59-f647f738e40e","savedPayload":{"position":{"x":21662.04680464002,"y":25139.51994537515},"targetPosition":{"x":21925.75239294638,"y":25101.402748852826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2c56cb10-43c9-447b-8b8a-30dae8e7fab8","savedPayload":{"position":{"x":21925.75239294638,"y":25101.402748852826},"targetPosition":{"x":22194.294676208432,"y":25048.12585987751},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 35 End","project":"Superalgos","id":"3ad24108-1339-4c6d-abc6-27a9aa5bc046","savedPayload":{"position":{"x":21915.170778647116,"y":25038.635441699207},"targetPosition":{"x":22194.294676208432,"y":25048.12585987751},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 35 End","id":"f620fdbe-48b5-4831-995d-b3c721738d1b"}}},{"type":"Polygon Vertex","name":"SMA 35 Begin","project":"Superalgos","id":"abfdefe3-b9d4-4816-b2cc-7aa64bb69734","savedPayload":{"position":{"x":21949.020686022537,"y":24962.516093387832},"targetPosition":{"x":22194.294676208432,"y":25048.12585987751},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 35 Begin","id":"93613bd9-2dbb-493c-a72e-414b0398733e"}}}],"id":"a8a09eca-7bee-4f17-b7db-1f43f419441c","savedPayload":{"position":{"x":22194.294676208432,"y":25048.12585987751},"targetPosition":{"x":22725.068857629147,"y":25075.79453123554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 70","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"9ac33f9d-bce7-407a-8de9-3334bb263b69","savedPayload":{"position":{"x":21682.027916077735,"y":24862.457674107376},"targetPosition":{"x":21946.610044076828,"y":24893.698384931788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ea184e1f-5a0f-4ed3-b3ed-6ba18e7237f9","savedPayload":{"position":{"x":21946.610044076828,"y":24893.698384931788},"targetPosition":{"x":22219.581842827207,"y":24911.646243849904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 70 Begin","project":"Superalgos","id":"5505dd50-5ad7-48fc-9256-14cab581d92f","savedPayload":{"position":{"x":21952.44719472421,"y":24830.29108547712},"targetPosition":{"x":22219.581842827207,"y":24911.646243849904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 70 Begin","id":"9e506a85-5f72-4a3f-a773-cd85d8b15f21"}}},{"type":"Polygon Vertex","name":"SMA 70 End","project":"Superalgos","id":"b255b251-b73a-469c-a41f-e273d2909af2","savedPayload":{"position":{"x":22004.75809763867,"y":24765.43902550588},"targetPosition":{"x":22219.581842827207,"y":24911.646243849904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 70 End","id":"8392e1ff-33a6-4b95-baad-3f146bd3c121"}}}],"id":"31cf093b-6de4-4e4a-a8f4-f3ff989dd374","savedPayload":{"position":{"x":22219.581842827207,"y":24911.646243849904},"targetPosition":{"x":22725.068857629147,"y":25075.79453123554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 140","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"e9088da2-eb17-4e48-9fba-5bd00fba6a2b","savedPayload":{"position":{"x":21773.182835169137,"y":24599.88600225311},"targetPosition":{"x":22020.607787785142,"y":24698.504874568745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"b93ae9ca-6c4e-47db-a998-045e845ab9cd","savedPayload":{"position":{"x":22020.607787785142,"y":24698.504874568745},"targetPosition":{"x":22279.39421301658,"y":24786.345507099315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 140 Begin","project":"Superalgos","id":"e1bdea5b-664c-4146-adf6-858405354f8c","savedPayload":{"position":{"x":22042.368440660026,"y":24638.540856984164},"targetPosition":{"x":22279.39421301658,"y":24786.345507099315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 140 Begin","id":"39e65adb-6125-4e9a-8f15-5403b21aac40"}}},{"type":"Polygon Vertex","name":"SMA 140 End","project":"Superalgos","id":"3d994072-d0b7-4065-a8be-3c718de28086","savedPayload":{"position":{"x":22109.890061107737,"y":24589.5712241843},"targetPosition":{"x":22279.39421301658,"y":24786.345507099315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 140 End","id":"7559cbf5-acba-4a60-91b4-d95f90293f22"}}}],"id":"41a149aa-efdf-4f53-82cf-cce9e904a000","savedPayload":{"position":{"x":22279.39421301658,"y":24786.345507099315},"targetPosition":{"x":22725.068857629147,"y":25075.79453123554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 210","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"08949257-633e-4013-b770-bbb798972d2d","savedPayload":{"position":{"x":21929.135300406288,"y":24369.802138276933},"targetPosition":{"x":22142.49810910978,"y":24528.99191337216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"53e088d8-8ec5-4dbe-b732-c65f31005105","savedPayload":{"position":{"x":22142.49810910978,"y":24528.99191337216},"targetPosition":{"x":22369.631775502356,"y":24680.75370447642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 210 Begin","project":"Superalgos","id":"15882e16-4782-48e8-9cac-fbb1d07ae51d","savedPayload":{"position":{"x":22179.01490195371,"y":24476.676902185165},"targetPosition":{"x":22369.631775502356,"y":24680.75370447642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 210 Begin","id":"479df802-576f-45f1-8322-6b2e493c5ecc"}}},{"type":"Polygon Vertex","name":"SMA 210 End","project":"Superalgos","id":"a6f51174-ea46-4282-a476-4e809f456682","savedPayload":{"position":{"x":22256.950865664392,"y":24446.786234545198},"targetPosition":{"x":22369.631775502356,"y":24680.75370447642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 210 End","id":"45a926f2-4bb2-4562-b40f-bd2532ff1d10"}}}],"id":"c3ee15c5-a5b3-4318-bc09-a9fd03592d83","savedPayload":{"position":{"x":22369.631775502356,"y":24680.75370447642},"targetPosition":{"x":22725.068857629147,"y":25075.79453123554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 280","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"942d9600-7935-4ca6-81d8-9bd014df736f","savedPayload":{"position":{"x":22139.67233010465,"y":24187.882750608092},"targetPosition":{"x":22304.214057938145,"y":24396.817346951713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1c6e0c3f-8ac7-4b0b-9da8-0f7faf9befd1","savedPayload":{"position":{"x":22304.214057938145,"y":24396.817346951713},"targetPosition":{"x":22484.20682019741,"y":24602.101962418466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 280 Begin","project":"Superalgos","id":"cc54382b-cf2b-42c7-8958-8816809dd7ba","savedPayload":{"position":{"x":22352.912218616813,"y":24355.28081625431},"targetPosition":{"x":22484.20682019741,"y":24602.101962418466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 280 Begin","id":"d5e455bf-bb27-41fa-ba41-c8e7d0aa4d5e"}}},{"type":"Polygon Vertex","name":"SMA 280 End","project":"Superalgos","id":"3629786a-8eed-4cff-9780-0e685aeed577","savedPayload":{"position":{"x":22436.238225743462,"y":24347.341362095358},"targetPosition":{"x":22484.20682019741,"y":24602.101962418466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 280 End","id":"298d0ca9-1b4a-48d8-8efe-fda6b2fc2c34"}}}],"id":"3bbf5574-e89c-4538-a95c-2da58e5a74d7","savedPayload":{"position":{"x":22484.20682019741,"y":24602.101962418466},"targetPosition":{"x":22725.068857629147,"y":25075.79453123554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 350","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.BLACK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"8142bd21-31e4-4edd-97d5-217e30321e0a","savedPayload":{"position":{"x":22389.89949406125,"y":24066.100660631204},"targetPosition":{"x":22494.61557554617,"y":24310.625649982434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6eade211-19cf-48a7-87ac-faf30e387e10","savedPayload":{"position":{"x":22494.61557554617,"y":24310.625649982434},"targetPosition":{"x":22615.433981652863,"y":24555.758455366147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 350 End","project":"Superalgos","id":"f16d8eac-9e78-4167-b087-9803637412a6","savedPayload":{"position":{"x":22547.578962862553,"y":24282.036625520668},"targetPosition":{"x":22615.433981652863,"y":24555.758455366147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 350 End","id":"d6598381-9b15-4cb3-afba-b85ed6770ce3"}}},{"type":"Polygon Vertex","name":"SMA 350 Begin","project":"Superalgos","id":"b94a339d-5abf-4563-a693-edb5d812c24e","savedPayload":{"position":{"x":22658.0150582385,"y":24295.19733050896},"targetPosition":{"x":22615.433981652863,"y":24555.758455366147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 350 Begin","id":"f3c05d30-da2e-449e-8471-dcc216f4e630"}}}],"id":"046240f2-f70b-471d-b07b-0e7490222f0d","savedPayload":{"position":{"x":22615.433981652863,"y":24555.758455366147},"targetPosition":{"x":22725.068857629147,"y":25075.79453123554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"391b803a-4b4e-4c0b-bb6b-b4d68e989c9c","savedPayload":{"position":{"x":22725.068857629147,"y":25075.79453123554},"targetPosition":{"x":23129.77365704174,"y":24582.01109640315},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"SMA Base 7","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"SMA 7","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma7","project":"Superalgos","id":"1c683838-c882-49bd-997a-2f4255347854","savedPayload":{"position":{"x":21994.09305482482,"y":24131.280483425966},"targetPosition":{"x":21951.73309101315,"y":23869.39925858442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c26c14bd-b9ab-4121-89b2-eb3044534cf2","savedPayload":{"position":{"x":21951.73309101315,"y":23869.39925858442},"targetPosition":{"x":21909.006834193595,"y":23607.20884610875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 14","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma14","project":"Superalgos","id":"1060ea54-bb29-4c3b-8db0-522893543a36","savedPayload":{"position":{"x":21696.923793695147,"y":24094.6835873632},"targetPosition":{"x":21803.01769521118,"y":23851.001926237765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"94b29f18-cad5-49df-8b87-d6ef10f5ae61","savedPayload":{"position":{"x":21803.01769521118,"y":23851.001926237765},"targetPosition":{"x":21909.006834193595,"y":23607.20884610875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 21","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma21","project":"Superalgos","id":"c0287e9c-4b88-4b92-b6ac-f17474649958","savedPayload":{"position":{"x":21466.68178906986,"y":23902.83237290405},"targetPosition":{"x":21687.83710608927,"y":23755.027857024797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ffcb7173-b2bf-4d5d-90e5-6f8b26af4b86","savedPayload":{"position":{"x":21687.83710608927,"y":23755.027857024797},"targetPosition":{"x":21909.006834193595,"y":23607.20884610875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 28","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma28","project":"Superalgos","id":"9f1615e0-e437-4221-8e9a-a6dcb4556022","savedPayload":{"position":{"x":21376.792670130042,"y":23616.819213402912},"targetPosition":{"x":21642.8656383077,"y":23611.996786317733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"186d8c1a-5eef-44a1-aa09-b28e4f5b6b0e","savedPayload":{"position":{"x":21642.8656383077,"y":23611.996786317733},"targetPosition":{"x":21909.006834193595,"y":23607.20884610875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 35","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma35","project":"Superalgos","id":"423f3069-d5a3-4d29-bb35-68802f367c50","savedPayload":{"position":{"x":21455.828122363557,"y":23327.945698970558},"targetPosition":{"x":21682.380143842558,"y":23467.545452782673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6b047d8e-451d-4267-adc4-6e9496aa0025","savedPayload":{"position":{"x":21682.380143842558,"y":23467.545452782673},"targetPosition":{"x":21909.006834193595,"y":23607.20884610875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 70","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma70","project":"Superalgos","id":"62ed074e-5b1a-4306-b411-cd436680147d","savedPayload":{"position":{"x":21678.721680207032,"y":23127.267674136383},"targetPosition":{"x":21793.84351797554,"y":23367.191579921946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9676685c-f20e-4d65-a0fe-8551e80132ee","savedPayload":{"position":{"x":21793.84351797554,"y":23367.191579921946},"targetPosition":{"x":21909.006834193595,"y":23607.20884610875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 140","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma140","project":"Superalgos","id":"2200abd2-2897-4eff-9804-f599c0e18f42","savedPayload":{"position":{"x":21974.30139110037,"y":23078.924587402915},"targetPosition":{"x":21941.65441897204,"y":23343.020533978433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a44d3c89-8463-4493-b195-70ee4146bbdb","savedPayload":{"position":{"x":21941.65441897204,"y":23343.020533978433},"targetPosition":{"x":21909.006834193595,"y":23607.20884610875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 210","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma210","project":"Superalgos","id":"38e3066f-1951-4c96-8a36-3bcf778328bd","savedPayload":{"position":{"x":22249.38919464797,"y":23198.26402394615},"targetPosition":{"x":22079.21972262748,"y":23402.70664886277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"44198c4d-4d98-43a2-9c03-2d8794b9edac","savedPayload":{"position":{"x":22079.21972262748,"y":23402.70664886277},"targetPosition":{"x":21909.006834193595,"y":23607.20884610875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 280","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma280","project":"Superalgos","id":"eca55243-4492-4983-9e03-04694437c8ae","savedPayload":{"position":{"x":22416.260689595394,"y":23447.38025236584},"targetPosition":{"x":22162.665325912985,"y":23527.291681449435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"96706885-fa55-4fad-82bd-fb43a2f331d7","savedPayload":{"position":{"x":22162.665325912985,"y":23527.291681449435},"targetPosition":{"x":21909.006834193595,"y":23607.20884610875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 350","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma350","project":"Superalgos","id":"64ea1867-2fb1-4191-a4c7-b5ac37f7be7a","savedPayload":{"position":{"x":22421.873811152673,"y":23746.73343926736},"targetPosition":{"x":22165.4477614576,"y":23677.075369169434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9f208b33-3d80-4d2e-ad88-13139a8e93f8","savedPayload":{"position":{"x":22165.4477614576,"y":23677.075369169434},"targetPosition":{"x":21909.006834193595,"y":23607.20884610875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b73ac725-eea1-4aa2-974c-937de300b456","savedPayload":{"position":{"x":21909.006834193595,"y":23607.20884610875},"targetPosition":{"x":23129.77365704174,"y":24582.01109640315},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"515565ff-dee2-4adf-adaf-b4cfea5f5dbd","savedPayload":{"position":{"x":23724,"y":24898.5},"targetPosition":{"x":24399,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"SMA Base 6","config":"{\n\t\"codeName\": \"SMA-Base6\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"SMA 6 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma6","project":"Superalgos","id":"28dce892-9996-45ac-af68-55d0056b6af2","savedPayload":{"position":{"x":22847.252853622394,"y":24261.66295404803},"targetPosition":{"x":22545.845444310344,"y":24998.353782913044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dece94e6-77de-4d21-9376-c2efc825b567","savedPayload":{"position":{"x":22545.845444310344,"y":24998.353782913044},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 6 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma6","project":"Superalgos","id":"f878b59a-0787-4c44-a341-02db47b15aad","savedPayload":{"position":{"x":23194.879757751947,"y":24457.379776429225},"targetPosition":{"x":22719.599441047554,"y":25096.466329805535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32025fb3-9ec4-4f50-b4c9-9a73100ce864","savedPayload":{"position":{"x":22719.599441047554,"y":25096.466329805535},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 12 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma12","project":"Superalgos","id":"d3c24df7-68df-4d50-92d6-9f722ee8816a","savedPayload":{"position":{"x":23482.26558017704,"y":24734.402676417936},"targetPosition":{"x":22863.400813758944,"y":25234.728088800202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8662f4a4-41a4-4992-a333-017cd8764cd1","savedPayload":{"position":{"x":22863.400813758944,"y":25234.728088800202},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 18 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma18","project":"Superalgos","id":"fc0e1a4a-8966-4340-83bc-2c43992486ed","savedPayload":{"position":{"x":23692.165229559894,"y":25073.998055276148},"targetPosition":{"x":22968.422035068033,"y":25404.580881431433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3260182a-83b5-4362-8962-84ec488b69cb","savedPayload":{"position":{"x":22968.422035068033,"y":25404.580881431433},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 18 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma18","project":"Superalgos","id":"53ce5612-9c75-4a89-98cd-7dd278f67df3","savedPayload":{"position":{"x":23811.358051138654,"y":25454.94175303005},"targetPosition":{"x":23028.070961922793,"y":25594.982955003303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"942b73d2-241e-43dd-b83b-0d3724f331a4","savedPayload":{"position":{"x":23028.070961922793,"y":25594.982955003303},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 24 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma24","project":"Superalgos","id":"9c2d5563-016b-40e7-a45f-973a874ee6e3","savedPayload":{"position":{"x":23831.984329459472,"y":25853.033720043626},"targetPosition":{"x":23038.37012128921,"y":25794.028398193783},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c0b2d03c-3cec-4ca2-b344-cdd99cb28362","savedPayload":{"position":{"x":23038.37012128921,"y":25794.028398193783},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 24 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma24","project":"Superalgos","id":"3b3a0b5b-0290-47a3-8bef-d5b289e4f7b6","savedPayload":{"position":{"x":23752.82937730334,"y":26244.140423801062},"targetPosition":{"x":22998.77450348666,"y":25989.599665252023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4b33b779-8111-415c-a1e5-893ed5f49527","savedPayload":{"position":{"x":22998.77450348666,"y":25989.599665252023},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 30 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma30","project":"Superalgos","id":"876a382a-7632-4dcf-b0d5-b36d8df8b92c","savedPayload":{"position":{"x":23578.87216459151,"y":26603.278375456004},"targetPosition":{"x":22911.778537858627,"y":26169.188440823516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fef118ef-22cb-4ff5-b971-c90c2a01265a","savedPayload":{"position":{"x":22911.778537858627,"y":26169.188440823516},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 30 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma30","project":"Superalgos","id":"59c1198f-77ea-4780-b25b-e17b11bd0a0e","savedPayload":{"position":{"x":23321.043963769127,"y":26907.8759576423},"targetPosition":{"x":22782.85049495522,"y":26321.504840703845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e2f5657-06b0-4e46-aa7e-8676683ffb77","savedPayload":{"position":{"x":22782.85049495522,"y":26321.504840703845},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 60 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma60","project":"Superalgos","id":"deea8750-3324-4bdc-bc4d-7fc9db32ceca","savedPayload":{"position":{"x":22995.553122362788,"y":27138.790193943532},"targetPosition":{"x":22620.093412812806,"y":26436.974363409896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8e7fb950-9b88-4aaf-95a1-982abf35b9f3","savedPayload":{"position":{"x":22620.093412812806,"y":26436.974363409896},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 60 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma60","project":"Superalgos","id":"4c4c6ec2-0ae2-4c37-bf9e-a2753f2b6ac5","savedPayload":{"position":{"x":22622.85109295329,"y":27281.514896251025},"targetPosition":{"x":22433.73139575098,"y":26508.349302892464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"173b07f4-37d0-4831-8d6b-1b989d9e3213","savedPayload":{"position":{"x":22433.73139575098,"y":26508.349302892464},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 120 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma120","project":"Superalgos","id":"4fae8019-4feb-4608-b26e-1b84bfa92eca","savedPayload":{"position":{"x":22226.751344094842,"y":27327.059144873732},"targetPosition":{"x":22235.67231693421,"y":26531.12978531879},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2fb358ff-8b9f-4b95-95f8-8be509b5b3a1","savedPayload":{"position":{"x":22235.67231693421,"y":26531.12978531879},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 120 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma120","project":"Superalgos","id":"94a5dfc2-27fa-48e5-8d60-125c185ee02c","savedPayload":{"position":{"x":21728.429529655685,"y":27655.631341193617},"targetPosition":{"x":22037.975632603993,"y":26503.896905168036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"id":"682e079f-319c-43dc-91a2-5732c3fb28c8","savedPayload":{"position":{"x":22037.975632603993,"y":26503.896905168036},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 180 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma180","project":"Superalgos","id":"c2b1772b-a983-4ecd-baec-c3ca0c346515","savedPayload":{"position":{"x":21462.005747243904,"y":27121.51780952574},"targetPosition":{"x":21853.260026600896,"y":26428.35981047775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5a2a1087-3910-4dd5-90d6-2370dc8949fa","savedPayload":{"position":{"x":21853.260026600896,"y":26428.35981047775},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 180 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma180","project":"Superalgos","id":"b7886b86-1f12-4645-b2fb-ecb4182dbec2","savedPayload":{"position":{"x":21141.7522985992,"y":26883.333498922417},"targetPosition":{"x":21693.119939179094,"y":26309.26659507801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1b5a66be-de8e-40c3-b3f2-e193e5deaeed","savedPayload":{"position":{"x":21693.119939179094,"y":26309.26659507801},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 240 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma240","project":"Superalgos","id":"219f9e45-38cc-4c5f-a396-f7a0788f973e","savedPayload":{"position":{"x":20890.820426783434,"y":26573.030040865022},"targetPosition":{"x":21567.64803411656,"y":26154.120927252916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"854a73e9-f8d2-4b85-a0dd-65284e175ca0","savedPayload":{"position":{"x":21567.64803411656,"y":26154.120927252916},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 240 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma240","project":"Superalgos","id":"57299592-e72a-4e7e-ac7a-e055ac925792","savedPayload":{"position":{"x":20724.917134843487,"y":26210.104557350052},"targetPosition":{"x":21484.678553482827,"y":25972.671550977444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"13eca50c-c1fb-4baa-8618-1f7eafde66c9","savedPayload":{"position":{"x":21484.678553482827,"y":25972.671550977444},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 300 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma300","project":"Superalgos","id":"fc7307b3-aeb1-49c0-bac9-ac2d27ad5d05","savedPayload":{"position":{"x":20643.040959684327,"y":25821.758764384387},"targetPosition":{"x":21438.02779496154,"y":25780.689713181695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"45ae2073-5312-48dc-b4ed-61326a2ce947","savedPayload":{"position":{"x":21438.02779496154,"y":25780.689713181695},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 300 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma300","project":"Superalgos","id":"9754f895-ef8d-4165-ae3b-efd97f52f9ce","savedPayload":{"position":{"x":20683.8748318002,"y":25419.839212802617},"targetPosition":{"x":21464.053433941306,"y":25577.55617093522},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"31514c9e-d4f7-4c54-94ca-4e04e5f1df5c","savedPayload":{"position":{"x":21464.053433941306,"y":25577.55617093522},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 12 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma12","project":"Superalgos","id":"cb472a55-eacc-4dec-b337-087a1116e39f","savedPayload":{"position":{"x":20825.742379243755,"y":25020.682926372156},"targetPosition":{"x":21542.361108298857,"y":25367.406402650202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48fe3ebc-6bbf-4a33-9068-2766eaf1599a","savedPayload":{"position":{"x":21542.361108298857,"y":25367.406402650202},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 600 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma600","project":"Superalgos","id":"a22c9eff-f7ff-4867-ba2e-c123b4036f99","savedPayload":{"position":{"x":21029.423852030628,"y":24706.774032797177},"targetPosition":{"x":21636.946130128676,"y":25220.909956788582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3ecee44a-2a84-41ac-b579-f6f48acc590a","savedPayload":{"position":{"x":21636.946130128676,"y":25220.909956788582},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 600 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma600","project":"Superalgos","id":"2197c8c8-f750-4adf-a521-b1e4b347663c","savedPayload":{"position":{"x":21315.376610904892,"y":24444.59238248166},"targetPosition":{"x":21776.375067191973,"y":25093.43757947955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9bd8a9e7-09cf-4989-a9fa-c2f73d361134","savedPayload":{"position":{"x":21776.375067191973,"y":25093.43757947955},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 1200 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma1200","project":"Superalgos","id":"17399e4a-5716-4e7b-9348-995fef5766eb","savedPayload":{"position":{"x":21676.086657262586,"y":24248.227344212926},"targetPosition":{"x":21960.46747247007,"y":24991.46616047113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0481ec1e-ae49-4c99-a5ad-16c427db6e45","savedPayload":{"position":{"x":21960.46747247007,"y":24991.46616047113},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 1200 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma1200","project":"Superalgos","id":"5df49dd0-4b42-4be0-8493-2d762fa6b9c2","savedPayload":{"position":{"x":22063.26561573637,"y":24153.40953859813},"targetPosition":{"x":22154.131326421535,"y":24944.13658513155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eacd5f37-bdf2-4756-b7db-46db919b08a7","savedPayload":{"position":{"x":22154.131326421535,"y":24944.13658513155},"targetPosition":{"x":22244.57631742045,"y":25735.041710699283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ddf91804-9a1f-44db-aea2-11db8bcd6aa1","savedPayload":{"position":{"x":22244.46290678159,"y":25735.087283273737},"targetPosition":{"x":22461.097284810985,"y":24161.387283153348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 6","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"34040727-f963-4459-9d11-6dfe71da067f","savedPayload":{"position":{"x":21932.797709168026,"y":25934.265850095413},"targetPosition":{"x":21980.85956678695,"y":25672.79279300407},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ec04ffcd-829f-41db-9aa0-c3807ff916ef","savedPayload":{"position":{"x":21980.85956678695,"y":25672.79279300407},"targetPosition":{"x":22068.85626347877,"y":25148.22672770251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 6 End","project":"Superalgos","id":"143eac37-51eb-4384-9455-94a62c781a28","savedPayload":{"position":{"x":21875.696135225426,"y":25645.32487198983},"targetPosition":{"x":22068.85626347877,"y":25148.22672770251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 6 End","id":"32025fb3-9ec4-4f50-b4c9-9a73100ce864"}}},{"type":"Polygon Vertex","name":"SMA 6 Begin","project":"Superalgos","id":"ffabc963-65ea-44af-9d15-d8bf6896a781","savedPayload":{"position":{"x":21769.179090762387,"y":25588.121753736792},"targetPosition":{"x":22068.85626347877,"y":25148.22672770251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 6 Begin","id":"dece94e6-77de-4d21-9376-c2efc825b567"}}}],"id":"12470549-c8b6-453f-a87a-396921a0a871","savedPayload":{"position":{"x":22068.85626347877,"y":25148.22672770251},"targetPosition":{"x":22461.097284810985,"y":24161.387283153348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 12","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"065e548b-05c8-4419-9bd1-0ef305c8b868","savedPayload":{"position":{"x":21516.383223116038,"y":25752.113465574632},"targetPosition":{"x":21625.715973416933,"y":25509.731908374295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bb849209-1786-43ce-b2cc-cb1d43252144","savedPayload":{"position":{"x":21625.715973416933,"y":25509.731908374295},"targetPosition":{"x":21843.92443939878,"y":25025.54049781639},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 12 Begin","project":"Superalgos","id":"9af3283c-bb60-4843-beae-89f1d065c8ba","savedPayload":{"position":{"x":21535.245929319142,"y":25457.748655530948},"targetPosition":{"x":21843.92443939878,"y":25025.54049781639},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 12 Begin","id":"48fe3ebc-6bbf-4a33-9068-2766eaf1599a"}}},{"type":"Polygon Vertex","name":"SMA 12 End","project":"Superalgos","id":"fee1b2e2-fdd0-4a53-b277-b7549e08aaf8","savedPayload":{"position":{"x":21456.740366250633,"y":25389.050040831105},"targetPosition":{"x":21843.92443939878,"y":25025.54049781639},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 12 End","id":"8662f4a4-41a4-4992-a333-017cd8764cd1"}}}],"id":"986a8bf8-3b7a-4421-80bd-940fa3bfe496","savedPayload":{"position":{"x":21843.92443939878,"y":25025.54049781639},"targetPosition":{"x":22461.097284810985,"y":24161.387283153348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 18","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"4ee42ccb-7981-4865-990b-09a84732f649","savedPayload":{"position":{"x":21162.948748821666,"y":25479.57370995394},"targetPosition":{"x":21327.14797441278,"y":25270.4406849237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"557e774e-833c-4373-a833-24a2b8e1c98b","savedPayload":{"position":{"x":21327.14797441278,"y":25270.4406849237},"targetPosition":{"x":21654.93531720089,"y":24852.585885847195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 18 End","project":"Superalgos","id":"b73a1590-a667-4c62-b1b0-319bc1c35264","savedPayload":{"position":{"x":21251.74942270536,"y":25198.31476347592},"targetPosition":{"x":21654.93531720089,"y":24852.585885847195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 18 End","id":"942b73d2-241e-43dd-b83b-0d3724f331a4"}}},{"type":"Polygon Vertex","name":"SMA 18 Begin","project":"Superalgos","id":"370a951b-b7cb-47fe-8e09-799f7da546a6","savedPayload":{"position":{"x":21191.939672016168,"y":25112.787349146405},"targetPosition":{"x":21654.93531720089,"y":24852.585885847195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 18 Begin","id":"3260182a-83b5-4362-8962-84ec488b69cb"}}}],"id":"9f9eeee3-ebd5-4f65-9079-cd0ac3c373da","savedPayload":{"position":{"x":21654.93531720089,"y":24852.585885847195},"targetPosition":{"x":22461.097284810985,"y":24161.387283153348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 24","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b30aa3da-65ea-4e03-88d0-d452114f94bc","savedPayload":{"position":{"x":20098.903544806744,"y":25614.09537483412},"targetPosition":{"x":20412.783284430294,"y":25368.714593956327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"42bded2a-28e5-457d-b8de-a71218db1630","savedPayload":{"position":{"x":20412.783284430294,"y":25368.714593956327},"targetPosition":{"x":21039.760435621352,"y":24878.370757201516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 24 Begin","project":"Superalgos","id":"a7a1b3d2-2c0a-47d0-8177-991c5b860ed4","savedPayload":{"position":{"x":20329.069098804448,"y":25236.82151614764},"targetPosition":{"x":21039.760435621352,"y":24878.370757201516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 24 Begin","id":"c0b2d03c-3cec-4ca2-b344-cdd99cb28362"}}},{"type":"Polygon Vertex","name":"SMA 24 End","project":"Superalgos","id":"8aac2b0b-8089-4adc-93d2-1544e0113105","savedPayload":{"position":{"x":20272.728802830552,"y":25091.149422811206},"targetPosition":{"x":21039.760435621352,"y":24878.370757201516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 24 End","id":"4b33b779-8111-415c-a1e5-893ed5f49527"}}}],"id":"5cde1b9e-eed8-4e90-9f31-9d0f38d4aef9","savedPayload":{"position":{"x":21039.760435621352,"y":24878.370757201516},"targetPosition":{"x":22461.097284810985,"y":24161.387283153348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 30","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"682c040c-2367-4838-92d2-5c14e6d65e0a","savedPayload":{"position":{"x":20457.08297146014,"y":24833.9586788288},"targetPosition":{"x":20941.60651376762,"y":24616.60733235544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"e80caa85-ac79-4b2b-ab2d-04f54c46b24b","savedPayload":{"position":{"x":20941.60651376762,"y":24616.60733235544},"targetPosition":{"x":21426.07753239444,"y":24398.952377362442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 30 End","project":"Superalgos","id":"985225d1-7a9d-45f7-93d2-59fe91c4450c","savedPayload":{"position":{"x":20908.34121799696,"y":24517.65184543693},"targetPosition":{"x":21426.07753239444,"y":24398.952377362442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 30 End","id":"8e2f5657-06b0-4e46-aa7e-8676683ffb77"}}},{"type":"Polygon Vertex","name":"SMA 30 Begin","project":"Superalgos","id":"0e1a912e-34be-4976-8d43-141b0f89a8ee","savedPayload":{"position":{"x":20895.131656169102,"y":24414.172964191614},"targetPosition":{"x":21426.07753239444,"y":24398.952377362442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 30 Begin","id":"fef118ef-22cb-4ff5-b971-c90c2a01265a"}}}],"id":"ba9cdf50-c1e0-42c5-a81c-dbc068c3b10e","savedPayload":{"position":{"x":21426.07753239444,"y":24398.952377362442},"targetPosition":{"x":22461.097284810985,"y":24161.387283153348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 60","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"85247bae-4a81-4247-affa-a8889f32987c","savedPayload":{"position":{"x":20354.2114104577,"y":24334.80979413967},"targetPosition":{"x":20876.730758026428,"y":24239.727910071277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9a153786-a0a0-4686-b83d-f55fb7513c56","savedPayload":{"position":{"x":20876.730758026428,"y":24239.727910071277},"targetPosition":{"x":21399.270068335903,"y":24144.418987519493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 60 Begin","project":"Superalgos","id":"389d9bf7-3844-4b65-9607-17dec104368f","savedPayload":{"position":{"x":20868.124605259276,"y":24135.937819202747},"targetPosition":{"x":21399.270068335903,"y":24144.418987519493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 60 Begin","id":"8e7fb950-9b88-4aaf-95a1-982abf35b9f3"}}},{"type":"Polygon Vertex","name":"SMA 60 End","project":"Superalgos","id":"0386e3c3-f9a3-442c-b2e4-c9d069621958","savedPayload":{"position":{"x":20880.06783174921,"y":24032.301630370297},"targetPosition":{"x":21399.270068335903,"y":24144.418987519493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 60 End","id":"173b07f4-37d0-4831-8d6b-1b989d9e3213"}}}],"id":"8170049e-056a-4818-8f0a-1a23f9c51bff","savedPayload":{"position":{"x":21399.270068335903,"y":24144.418987519493},"targetPosition":{"x":22461.097284810985,"y":24161.387283153348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 120","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"613b4c9b-b002-4c65-87b7-8b9d41eda4df","savedPayload":{"position":{"x":20373.90080432382,"y":23825.834404363035},"targetPosition":{"x":20904.02054181274,"y":23858.386689258576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"27a6e346-8da3-4900-83c4-41680d2168f4","savedPayload":{"position":{"x":20904.02054181274,"y":23858.386689258576},"targetPosition":{"x":21434.21740789074,"y":23890.735748311334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 120 Begin","project":"Superalgos","id":"956a6867-d00a-4888-9ffe-cbfabcfbe4fa","savedPayload":{"position":{"x":20920.553629100148,"y":23755.36027716184},"targetPosition":{"x":21434.21740789074,"y":23890.735748311334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 120 Begin","id":"2fb358ff-8b9f-4b95-95f8-8be509b5b3a1"}}},{"type":"Polygon Vertex","name":"SMA 120 End","project":"Superalgos","id":"040f4fe5-147d-4ba9-9a2d-fa134ca5d178","savedPayload":{"position":{"x":20956.955201459074,"y":23657.592103486215},"targetPosition":{"x":21434.21740789074,"y":23890.735748311334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 120 End","id":"682e079f-319c-43dc-91a2-5732c3fb28c8"}}}],"id":"7da9bd30-a7f8-410b-93a5-6b76ac57708b","savedPayload":{"position":{"x":21434.21740789074,"y":23890.735748311334},"targetPosition":{"x":22461.097284810985,"y":24161.387283153348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 240","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"d2ac585e-594d-4031-b17d-2274efc677ec","savedPayload":{"position":{"x":20514.94539566678,"y":23335.986528915277},"targetPosition":{"x":21021.846366991613,"y":23494.48142903897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"4e402467-2d78-4d95-ba03-3910f5120122","savedPayload":{"position":{"x":21021.846366991613,"y":23494.48142903897},"targetPosition":{"x":21528.867255660334,"y":23652.805504224674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 180 Begin","project":"Superalgos","id":"efe56d7d-f6e6-4944-aa32-26d3c4ed055b","savedPayload":{"position":{"x":21062.556561770958,"y":23398.40553066091},"targetPosition":{"x":21528.867255660334,"y":23652.805504224674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 180 Begin","id":"5a2a1087-3910-4dd5-90d6-2370dc8949fa"}}},{"type":"Polygon Vertex","name":"SMA 180 End","project":"Superalgos","id":"ec3a6f4b-adf2-4be1-ab28-313bbffb7491","savedPayload":{"position":{"x":21121.300808801523,"y":23312.189731737893},"targetPosition":{"x":21528.867255660334,"y":23652.805504224674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 180 End","id":"1b5a66be-de8e-40c3-b3f2-e193e5deaeed"}}}],"id":"adf40814-2b9a-4ee8-a154-364bfca32f7a","savedPayload":{"position":{"x":21528.867255660334,"y":23652.805504224674},"targetPosition":{"x":22461.097284810985,"y":24161.387283153348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 300","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"e79c6ed7-e52f-4191-a423-b14965211a19","savedPayload":{"position":{"x":20769.149279829366,"y":22894.12725743156},"targetPosition":{"x":21223.359884217858,"y":23169.34853274849},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"e5cd42c0-f52d-4608-91d5-966cc7bf39b3","savedPayload":{"position":{"x":21223.359884217858,"y":23169.34853274849},"targetPosition":{"x":21677.71959950107,"y":23444.439624161278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 240 Begin","project":"Superalgos","id":"f29f45ac-86bb-4490-b8b1-9a50dc736782","savedPayload":{"position":{"x":21285.88201679655,"y":23085.80722010574},"targetPosition":{"x":21677.71959950107,"y":23444.439624161278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 240 Begin","id":"854a73e9-f8d2-4b85-a0dd-65284e175ca0"}}},{"type":"Polygon Vertex","name":"SMA 240 End","project":"Superalgos","id":"eb330333-6b0f-4fad-97a7-a34e93cc3dee","savedPayload":{"position":{"x":21363.556640032893,"y":23016.155197006934},"targetPosition":{"x":21677.71959950107,"y":23444.439624161278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 240 End","id":"13eca50c-c1fb-4baa-8618-1f7eafde66c9"}}}],"id":"60c00cdc-dbf4-460b-b021-7339dd7bbec8","savedPayload":{"position":{"x":21677.71959950107,"y":23444.439624161278},"targetPosition":{"x":22461.097284810985,"y":24161.387283153348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 600","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"182273b1-1d73-4dc7-93dc-b2a4644b18f1","savedPayload":{"position":{"x":21121.768340965875,"y":22525.933881073808},"targetPosition":{"x":21496.877120524467,"y":22901.87718241841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"3342f900-2346-4377-b6b0-34566787d6d9","savedPayload":{"position":{"x":21496.877120524467,"y":22901.87718241841},"targetPosition":{"x":21872.144295610648,"y":23277.73782931434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 600 Begin","project":"Superalgos","id":"5b6c238c-a7cb-4002-85e5-5e84cd6ffdf8","savedPayload":{"position":{"x":21577.581817828242,"y":22835.72666433792},"targetPosition":{"x":21872.144295610648,"y":23277.73782931434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 600 Begin","id":"3ecee44a-2a84-41ac-b579-f6f48acc590a"}}},{"type":"Polygon Vertex","name":"SMA 600 End","project":"Superalgos","id":"b60e6d28-cb70-49c5-9e06-c67cfe81b1f1","savedPayload":{"position":{"x":21669.679647653746,"y":22786.687784097558},"targetPosition":{"x":21872.144295610648,"y":23277.73782931434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 600 End","id":"9bd8a9e7-09cf-4989-a9fa-c2f73d361134"}}}],"id":"93c1746c-2470-4032-84e1-c16a2d4e3921","savedPayload":{"position":{"x":21872.144295610648,"y":23277.73782931434},"targetPosition":{"x":22461.097284810985,"y":24161.387283153348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 1200","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"f0b2a565-d33f-42d4-85ed-d61766b82af7","savedPayload":{"position":{"x":21552.41354819525,"y":22252.808678862344},"targetPosition":{"x":21826.597932184795,"y":22707.6076599902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"e108f855-0252-4113-8bd3-2cf2581abc47","savedPayload":{"position":{"x":21826.597932184795,"y":22707.6076599902},"targetPosition":{"x":22100.90381493375,"y":23162.379449321343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 1200 Begin","project":"Superalgos","id":"f15e631f-a4ef-4493-bb68-8c3a082ba0aa","savedPayload":{"position":{"x":21920.81565915732,"y":22662.694744348362},"targetPosition":{"x":22100.90381493375,"y":23162.379449321343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 1200 Begin","id":"0481ec1e-ae49-4c99-a5ad-16c427db6e45"}}},{"type":"Polygon Vertex","name":"SMA 1200 End","project":"Superalgos","id":"cf097102-9c66-4f90-95cd-1c1c9efc113b","savedPayload":{"position":{"x":22022.053176143498,"y":22637.111143575814},"targetPosition":{"x":22100.90381493375,"y":23162.379449321343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 1200 End","id":"eacd5f37-bdf2-4756-b7db-46db919b08a7"}}}],"id":"790efcb9-f3af-4e01-86f2-adbfcda6a356","savedPayload":{"position":{"x":22100.90381493375,"y":23162.379449321343},"targetPosition":{"x":22461.097284810985,"y":24161.387283153348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"93675e57-6b0f-4fe5-8c8a-a4c02f794650","savedPayload":{"position":{"x":22300.99633518746,"y":24910.83114736863},"targetPosition":{"x":23220.028379375075,"y":24379.317885541386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"SMA Base 6","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"SMA 6","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma6","project":"Superalgos","id":"bf5de8a3-8c0b-41e8-8d21-bef5a721133f","savedPayload":{"position":{"x":23190.43446889845,"y":23534.92305845683},"targetPosition":{"x":23288.723440920767,"y":23287.92181107525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"995dd126-9cef-4b6e-960f-6828cfc41777","savedPayload":{"position":{"x":23288.723440920767,"y":23287.92181107525},"targetPosition":{"x":23404.607611488595,"y":22996.235690645863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 12","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma12","project":"Superalgos","id":"9d4756de-3019-4ab6-a77d-7a1452ce1813","savedPayload":{"position":{"x":22964.47437969323,"y":23373.42630320755},"targetPosition":{"x":23166.431623595985,"y":23200.393816326385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"414bd6ad-d6c6-4100-867e-232c6e649de2","savedPayload":{"position":{"x":23166.431623595985,"y":23200.393816326385},"targetPosition":{"x":23404.607611488595,"y":22996.235690645863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 18","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma18","project":"Superalgos","id":"8c7a57b7-0d00-4239-b7ce-018b8da0fce7","savedPayload":{"position":{"x":22839.67233422309,"y":23125.532997341663},"targetPosition":{"x":23099.02981189959,"y":23066.194147139642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2b73a8b5-c7a5-47b2-acad-87fa5aec85be","savedPayload":{"position":{"x":23099.02981189959,"y":23066.194147139642},"targetPosition":{"x":23404.607611488595,"y":22996.235690645863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 24","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma24","project":"Superalgos","id":"3880e650-f608-4c97-8b5a-6956c8c2fba7","savedPayload":{"position":{"x":22844.364653670676,"y":22848.60608985288},"targetPosition":{"x":23101.65676842989,"y":22916.401926843846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7655b5d6-708e-4e05-9499-2058d8511689","savedPayload":{"position":{"x":23101.65676842989,"y":22916.401926843846},"targetPosition":{"x":23404.607611488595,"y":22996.235690645863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 30","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma30","project":"Superalgos","id":"ae5edcfd-b4be-4c3e-bb28-333fade4b88d","savedPayload":{"position":{"x":22977.348639482876,"y":22605.233161654964},"targetPosition":{"x":23173.60314783295,"y":22784.834873967262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad60eba1-2b62-4b1f-bed9-de38285f4acc","savedPayload":{"position":{"x":23173.60314783295,"y":22784.834873967262},"targetPosition":{"x":23404.607611488595,"y":22996.235690645863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 60","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma60","project":"Superalgos","id":"cd97e51b-fa6a-4d6e-b7dd-43c9299bde4d","savedPayload":{"position":{"x":23208.09378847997,"y":22451.486399892947},"targetPosition":{"x":23298.382610611385,"y":22701.792273541516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5baddfba-9384-417f-954a-37abf160567e","savedPayload":{"position":{"x":23298.382610611385,"y":22701.792273541516},"targetPosition":{"x":23404.607611488595,"y":22996.235690645863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 120","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma120","project":"Superalgos","id":"189b3ffd-8d2b-4124-af4c-52a9756c3409","savedPayload":{"position":{"x":23483.365777289655,"y":22422.473192074336},"targetPosition":{"x":23447.186952465738,"y":22686.10396315105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"980faff9-33a9-4c63-b64c-3bdbeeeb1b8a","savedPayload":{"position":{"x":23447.186952465738,"y":22686.10396315105},"targetPosition":{"x":23404.607611488595,"y":22996.235690645863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 180","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma180","project":"Superalgos","id":"7dac036e-a376-493f-8e5a-d8a7e211f262","savedPayload":{"position":{"x":23741.01206929381,"y":22524.895929171682},"targetPosition":{"x":23586.532390841032,"y":22741.35089399476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d22d8f06-1510-43c7-a233-7a5dc67f809b","savedPayload":{"position":{"x":23586.532390841032,"y":22741.35089399476},"targetPosition":{"x":23404.607611488595,"y":22996.235690645863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 240","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma240","project":"Superalgos","id":"2b86e2e4-bf2d-4b68-a54e-a781e56458bf","savedPayload":{"position":{"x":23921.75482241177,"y":22735.230632280665},"targetPosition":{"x":23684.22486549823,"y":22855.12285211595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"696305ab-09c2-41af-bfb3-85ce4fb5e705","savedPayload":{"position":{"x":23684.22486549823,"y":22855.12285211595},"targetPosition":{"x":23404.607611488595,"y":22996.235690645863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 300 ","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma300","project":"Superalgos","id":"03bc78eb-d57f-41fc-a8ba-3592e222d5cc","savedPayload":{"position":{"x":23983.933292109632,"y":23005.144018108225},"targetPosition":{"x":23718.04852446272,"y":23001.09169004303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f34223f9-87e3-49fe-8acf-77080dffa25f","savedPayload":{"position":{"x":23718.04852446272,"y":23001.09169004303},"targetPosition":{"x":23404.607611488595,"y":22996.235690645863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 600 ","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma600","project":"Superalgos","id":"c6511ef3-8c3a-445c-9d90-1bb91a1763fb","savedPayload":{"position":{"x":23913.33690349348,"y":23273.570760728147},"targetPosition":{"x":23679.940616808995,"y":23146.380702189806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ff4236e0-4c9b-4b98-9dd3-b3c152bb12e2","savedPayload":{"position":{"x":23679.940616808995,"y":23146.380702189806},"targetPosition":{"x":23404.607611488595,"y":22996.235690645863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 1200 ","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma1200","project":"Superalgos","id":"931713d5-2d25-428f-95bc-0a21e01892f7","savedPayload":{"position":{"x":23725.81583674357,"y":23478.49693884385},"targetPosition":{"x":23578.455870915335,"y":23257.36854214097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e3345124-6aed-4164-ab86-041fd39608b0","savedPayload":{"position":{"x":23578.455870915335,"y":23257.36854214097},"targetPosition":{"x":23404.607611488595,"y":22996.235690645863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"40313dff-6c5d-4650-bd51-8767bba6f6ad","savedPayload":{"position":{"x":22690.307514523643,"y":23461.419987211662},"targetPosition":{"x":23220.028379375075,"y":24379.317885541386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6ace920a-3a4b-4d28-8f04-4c2ecd3dfeb8","savedPayload":{"position":{"x":23814.432852445505,"y":24561},"targetPosition":{"x":24399,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"SMA Base 5","config":"{\n\t\"codeName\": \"SMA-Base7\",\n \"icon\": \"moving-average\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"SMA 5 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma5","project":"Superalgos","id":"37d1cd48-3a3f-4477-a125-76dcec51195b","savedPayload":{"position":{"x":25316.931332389668,"y":19625.33234686246},"targetPosition":{"x":25451.67986847657,"y":21204.420600101148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9eca5bc8-cdb2-46fb-9a26-1c2da03b8818","savedPayload":{"position":{"x":25451.67986847657,"y":21204.420600101148},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 5 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma5","project":"Superalgos","id":"3537c835-0158-465b-81d1-5440a40a649b","savedPayload":{"position":{"x":26110.090252071444,"y":19657.619475228057},"targetPosition":{"x":25848.30641556872,"y":21220.5638911527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"db00298d-2997-4640-93fe-17125aeb7f0e","savedPayload":{"position":{"x":25848.30641556872,"y":21220.5638911527},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 10 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma10","project":"Superalgos","id":"3f1d398f-6d0a-4713-8fbf-29cbb133be3e","savedPayload":{"position":{"x":26870.97845152137,"y":19886.493114074896},"targetPosition":{"x":26228.73820924724,"y":21334.991206695115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b2e038ee-355d-4862-a454-514f7bcf31cf","savedPayload":{"position":{"x":26228.73820924724,"y":21334.991206695115},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 15 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma15","project":"Superalgos","id":"cadaa709-8956-4c7a-9215-76ac92a53517","savedPayload":{"position":{"x":27551.105700253072,"y":20297.055090453578},"targetPosition":{"x":26568.81181419751,"y":21540.249330754217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"02f80e02-080a-4950-9ffc-2f3b5770b404","savedPayload":{"position":{"x":26568.81181419751,"y":21540.249330754217},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 15 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma15","project":"Superalgos","id":"e4212208-3b31-47c0-aebd-966d4a77c0f9","savedPayload":{"position":{"x":28107.8292996675,"y":20863.805266738873},"targetPosition":{"x":26847.159904673692,"y":21823.626411242156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32c7c4d3-a210-4d4d-8d10-bb23f91edcda","savedPayload":{"position":{"x":26847.159904673692,"y":21823.626411242156},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 20 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma20","project":"Superalgos","id":"73c6c2a6-b4b7-4d2a-be7e-5810261e68c7","savedPayload":{"position":{"x":28506.102540804197,"y":21551.15125444166},"targetPosition":{"x":27046.29179556215,"y":22167.31563678739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6b07cc40-e7da-48bc-a49b-cac5a0615c34","savedPayload":{"position":{"x":27046.29179556215,"y":22167.31563678739},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 20 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma20","project":"Superalgos","id":"c8dd3770-668a-47d7-aad8-db412890bc28","savedPayload":{"position":{"x":28721.343269533703,"y":22315.972226865833},"targetPosition":{"x":27153.91999225355,"y":22549.725828990307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e2f2041d-b896-44d7-b251-85eb1cd7fadf","savedPayload":{"position":{"x":27153.91999225355,"y":22549.725828990307},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 25 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma25","project":"Superalgos","id":"d7265ad0-64e1-4fb7-8cd0-bdbf329b3d6d","savedPayload":{"position":{"x":28739.28601735465,"y":23109.50588485619},"targetPosition":{"x":27162.892018855644,"y":22946.480504196938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"78b96701-c691-41fa-91d2-3bdb00e2e0fa","savedPayload":{"position":{"x":27162.892018855644,"y":22946.480504196938},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 25 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma25","project":"Superalgos","id":"5cefb3f2-2429-478b-80a8-8f9e07e12c00","savedPayload":{"position":{"x":28558.626547227468,"y":23883.22989496725},"targetPosition":{"x":27072.581031357902,"y":23333.307782259104},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c9293d92-6255-4c96-9bf9-f4c6dcf419a1","savedPayload":{"position":{"x":27072.581031357902,"y":23333.307782259104},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 50 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma50","project":"Superalgos","id":"cfa001a1-ac90-4713-b542-4fab32f377e0","savedPayload":{"position":{"x":28191.74383572311,"y":24587.719630779477},"targetPosition":{"x":26889.110685365544,"y":23685.5583158755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1d352202-ba2e-41a7-9d4b-c4c97d2e391d","savedPayload":{"position":{"x":26889.110685365544,"y":23685.5583158755},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 50 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma50","project":"Superalgos","id":"1655e27e-3738-4b5d-8961-105e11b5070c","savedPayload":{"position":{"x":27661.367490290064,"y":25178.72356858686},"targetPosition":{"x":26623.890336729153,"y":23981.05960366105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4e34e6e6-d370-4127-b4fe-0c9fd591e730","savedPayload":{"position":{"x":26623.890336729153,"y":23981.05960366105},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 100 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma100","project":"Superalgos","id":"44d9a566-3392-4f8f-ae69-f16de47bdd50","savedPayload":{"position":{"x":26990.246349742167,"y":25636.999407631945},"targetPosition":{"x":26293.696824969444,"y":24201.10651027873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"651f424a-51be-4b25-a895-d50f75329384","savedPayload":{"position":{"x":26293.696824969444,"y":24201.10651027873},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 100 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma100","project":"Superalgos","id":"05d2a007-3c1e-4e61-8cef-0aa1bdb3c0f5","savedPayload":{"position":{"x":26186.012813226578,"y":25840.999520632056},"targetPosition":{"x":25853.62295334718,"y":24282.86845819472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aada5c3d-5ff5-4afd-8dd1-298ce8fce853","savedPayload":{"position":{"x":25853.62295334718,"y":24282.86845819472},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 150 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma150","project":"Superalgos","id":"f5f1a287-14c5-4b05-9032-85623b3e948f","savedPayload":{"position":{"x":25458.43157535027,"y":25950.774859383935},"targetPosition":{"x":25522.593106171924,"y":24367.07585842121},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"55d6b376-dd20-4044-b6c2-51acd03bee71","savedPayload":{"position":{"x":25522.593106171924,"y":24367.07585842121},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 150 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma150","project":"Superalgos","id":"e8805c13-2905-47dd-ad3d-eea5d645fd2f","savedPayload":{"position":{"x":24675.106257345637,"y":25818.7071402533},"targetPosition":{"x":25130.760347700736,"y":24300.987973567382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"812b92a9-2ba5-44e2-b255-976f8354e841","savedPayload":{"position":{"x":25130.760347700736,"y":24300.987973567382},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 200 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma200","project":"Superalgos","id":"13b0144f-8413-43d8-97f9-61a50712a17b","savedPayload":{"position":{"x":23948.17462794799,"y":25495.791350743402},"targetPosition":{"x":24767.205887945467,"y":24138.90956934111},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"652e1cae-11c0-489c-a820-03296a362c77","savedPayload":{"position":{"x":24767.205887945467,"y":24138.90956934111},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 200 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma200","project":"Superalgos","id":"51211e13-8719-4d03-afb1-a7bb2f656f68","savedPayload":{"position":{"x":23325.53821503313,"y":25003.701701017995},"targetPosition":{"x":24455.997515226987,"y":23893.32725382284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4e4458f4-c6ca-4235-8734-8e833d3722f2","savedPayload":{"position":{"x":24455.997515226987,"y":23893.32725382284},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 250 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma250","project":"Superalgos","id":"a37e3e5a-dc59-4373-97c3-98de0c09fbb7","savedPayload":{"position":{"x":22844.191420192492,"y":24371.6350164854},"targetPosition":{"x":24215.47912431288,"y":23577.447741417767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"52aefae1-6ceb-47c4-a82d-ac55a7b91b25","savedPayload":{"position":{"x":24215.47912431288,"y":23577.447741417767},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 250 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma250","project":"Superalgos","id":"aae7721e-b9d3-4629-94be-eecd49675c8f","savedPayload":{"position":{"x":22535.46210332133,"y":23640.055253482635},"targetPosition":{"x":24061.007622143898,"y":23211.58846491511},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8ddf18b2-93b4-4422-9e64-f9fc22f5de52","savedPayload":{"position":{"x":24061.007622143898,"y":23211.58846491511},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 500 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.propertyA","project":"Superalgos","id":"65cfa112-3dc1-4bbd-9f90-13076e630272","savedPayload":{"position":{"x":22399.884412012616,"y":22851.24434747338},"targetPosition":{"x":24002.01607419896,"y":22818.7564605542},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d1ec756e-a71c-433b-ad10-ef8234617768","savedPayload":{"position":{"x":24002.01607419896,"y":22818.7564605542},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 500 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.propertyA","project":"Superalgos","id":"577145f8-de78-4ded-a41e-86f9b54ec8a2","savedPayload":{"position":{"x":22499.925425963742,"y":22064.523254526463},"targetPosition":{"x":24043.21010262051,"y":22424.0084442247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b2fbef6-9a30-4ed6-a98e-5ccceb77aea3","savedPayload":{"position":{"x":24043.21010262051,"y":22424.0084442247},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 10 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma10","project":"Superalgos","id":"520c2e51-b036-4267-928d-53f69d83747b","savedPayload":{"position":{"x":22779.289500935596,"y":21320.468086292152},"targetPosition":{"x":24181.33963462729,"y":22051.533299455594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7fe319a5-1a75-4f65-97da-20345cc502c2","savedPayload":{"position":{"x":24181.33963462729,"y":22051.533299455594},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 1000 Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.propertyA","project":"Superalgos","id":"3514870d-ad16-4bee-b5fa-a68739f3b332","savedPayload":{"position":{"x":23218.679929739206,"y":20672.646844099887},"targetPosition":{"x":24407.557573251204,"y":21725.008275679982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"db6c9de6-aeb9-46ff-a46d-893ac56a32a2","savedPayload":{"position":{"x":24407.557573251204,"y":21725.008275679982},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"SMA 1000 End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.propertyA","project":"Superalgos","id":"9cd8a206-16f2-446d-b63e-43faa32d7abd","savedPayload":{"position":{"x":23829.100228741023,"y":20146.61229489676},"targetPosition":{"x":24707.894234133648,"y":21464.967961908318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e518b92f-f678-4868-ae0c-a0bd31f480eb","savedPayload":{"position":{"x":24707.894234133648,"y":21464.967961908318},"targetPosition":{"x":25586.49464195755,"y":22783.510612259408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f32ec0d3-ec1a-4f9d-b0dc-a394dac962ba","savedPayload":{"position":{"x":25586.49464195755,"y":22783.510612259408},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"SMA 5","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"a7e019b1-8c26-45dc-a717-de61a361f789","savedPayload":{"position":{"x":19960.951597765677,"y":24002.03815136308},"targetPosition":{"x":20303.940609983536,"y":23799.81744173517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"7da673e1-96be-42bb-ac8e-ba94da835b8d","savedPayload":{"position":{"x":20303.940609983536,"y":23799.81744173517},"targetPosition":{"x":20988.573790820694,"y":23395.748544985014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 5 End","project":"Superalgos","id":"e755e4bb-ff8f-4591-b0ae-878d71639fd5","savedPayload":{"position":{"x":20238.227694230092,"y":23658.218748508552},"targetPosition":{"x":20988.573790820694,"y":23395.748544985014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 5 End","id":"db00298d-2997-4640-93fe-17125aeb7f0e"}}},{"type":"Polygon Vertex","name":"SMA 5 Begin","project":"Superalgos","id":"c452cccc-8d2b-4630-9219-fb5e4d89fb1e","savedPayload":{"position":{"x":20201.29706535384,"y":23506.62672002147},"targetPosition":{"x":20988.573790820694,"y":23395.748544985014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 5 Begin","id":"9eca5bc8-cdb2-46fb-9a26-1c2da03b8818"}}}],"id":"9de00c59-ad47-414f-93f4-976d1a798e33","savedPayload":{"position":{"x":20988.573790820694,"y":23395.748544985014},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 10","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"d99069f1-59c4-4dd2-a77f-15de8869aeaf","savedPayload":{"position":{"x":19772.55398449779,"y":23410.386772315327},"targetPosition":{"x":20151.965058316902,"y":23289.719126230804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6867a6be-eb3c-4c1f-a83e-f630c5a40ba3","savedPayload":{"position":{"x":20151.965058316902,"y":23289.719126230804},"targetPosition":{"x":20909.26420413932,"y":23048.3682485213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 10 Begin","project":"Superalgos","id":"43ddbce7-424a-4718-9012-bd9327a7b6e0","savedPayload":{"position":{"x":20119.36406038495,"y":23137.133146732755},"targetPosition":{"x":20909.26420413932,"y":23048.3682485213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 10 Begin","id":"7fe319a5-1a75-4f65-97da-20345cc502c2"}}},{"type":"Polygon Vertex","name":"SMA 10 End","project":"Superalgos","id":"f48c16c1-ca4a-4a64-ae78-78cbc754888e","savedPayload":{"position":{"x":20116.96522038806,"y":22981.602358501706},"targetPosition":{"x":20909.26420413932,"y":23048.3682485213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 10 End","id":"b2e038ee-355d-4862-a454-514f7bcf31cf"}}}],"id":"0c387d26-20c4-4a66-aac4-599d98b8300e","savedPayload":{"position":{"x":20909.26420413932,"y":23048.3682485213},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 15","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.MANGANESE_PURPLE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"e52e6176-fecb-48d3-ad99-7b66e11b02de","savedPayload":{"position":{"x":19720.36204398127,"y":22792.77691119728},"targetPosition":{"x":20117.232997116374,"y":22759.604081692814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"3850ed1d-dc3b-47b2-bee7-7aa961acfaa2","savedPayload":{"position":{"x":20117.232997116374,"y":22759.604081692814},"targetPosition":{"x":20909.309259785892,"y":22692.72963840176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 15 End","project":"Superalgos","id":"3f50ad9c-b951-420f-92cb-564d050f144e","savedPayload":{"position":{"x":20119.333510831275,"y":22603.788571179066},"targetPosition":{"x":20909.309259785892,"y":22692.72963840176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 15 End","id":"32c7c4d3-a210-4d4d-8d10-bb23f91edcda"}}},{"type":"Polygon Vertex","name":"SMA 15 Begin","project":"Superalgos","id":"5cce1576-091c-49fa-a98f-0ebcf033c933","savedPayload":{"position":{"x":20151.957550193438,"y":22451.175198752062},"targetPosition":{"x":20909.309259785892,"y":22692.72963840176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 15 Begin","id":"02f80e02-080a-4950-9ffc-2f3b5770b404"}}}],"id":"9f49d18a-dfd7-4d55-8a1e-c186dbfc043e","savedPayload":{"position":{"x":20909.309259785892,"y":22692.72963840176},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 20","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"e9126aac-9402-4bfc-9f89-b6996780d7ba","savedPayload":{"position":{"x":19806.877718860087,"y":22178.888850268144},"targetPosition":{"x":20200.991295159205,"y":22234.54855444601},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"9ec36dc5-91e0-4861-8748-9f9b7d92bacc","savedPayload":{"position":{"x":20200.991295159205,"y":22234.54855444601},"targetPosition":{"x":20988.33723163613,"y":22345.488763141424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 20 Begin","project":"Superalgos","id":"6a595b60-ea82-4ef7-ad14-f698d4885e0d","savedPayload":{"position":{"x":20237.888555284702,"y":22082.85467251906},"targetPosition":{"x":20988.33723163613,"y":22345.488763141424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 20 Begin","id":"6b07cc40-e7da-48bc-a49b-cac5a0615c34"}}},{"type":"Polygon Vertex","name":"SMA 20 End","project":"Superalgos","id":"3d4d3854-f28c-462a-b08a-21db3bdf9d82","savedPayload":{"position":{"x":20303.68932552002,"y":21941.429944580184},"targetPosition":{"x":20988.33723163613,"y":22345.488763141424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 20 End","id":"e2f2041d-b896-44d7-b251-85eb1cd7fadf"}}}],"id":"39db09d1-e5b2-4e83-80b5-41b5af443e3f","savedPayload":{"position":{"x":20988.33723163613,"y":22345.488763141424},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 25","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"938779af-a8c9-48dc-a936-7f196f976c5a","savedPayload":{"position":{"x":19656.411190809897,"y":21456.217476887283},"targetPosition":{"x":20399.57040696433,"y":21741.56134674985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c905d757-47ba-4c5b-9f85-73db3050e897","savedPayload":{"position":{"x":20399.57040696433,"y":21741.56134674985},"targetPosition":{"x":21142.891431892902,"y":22024.74993684295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 25 End","project":"Superalgos","id":"a952acf4-c97a-40f5-8f9d-edbae371305d","savedPayload":{"position":{"x":20469.734944325824,"y":21601.67519607259},"targetPosition":{"x":21142.891431892902,"y":22024.74993684295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 25 End","id":"c9293d92-6255-4c96-9bf9-f4c6dcf419a1"}}},{"type":"Polygon Vertex","name":"SMA 25 Begin","project":"Superalgos","id":"88efd4f2-dc1e-43d6-96f0-7e60ed1d4177","savedPayload":{"position":{"x":20565.096990706046,"y":21478.34865299125},"targetPosition":{"x":21142.891431892902,"y":22024.74993684295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 25 Begin","id":"78b96701-c691-41fa-91d2-3bdb00e2e0fa"}}}],"id":"9b80c90a-521b-4d8e-ba2b-781f3aee1fb2","savedPayload":{"position":{"x":21142.891431892902,"y":22024.74993684295},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 50","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b8842dee-7b08-40e5-818d-54df493e6e20","savedPayload":{"position":{"x":20036.545024674757,"y":20857.14037085379},"targetPosition":{"x":20698.211252135192,"y":21299.243674384634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c1dfcdd1-96a1-49ee-82e6-7d78077c43c0","savedPayload":{"position":{"x":20703.886008701138,"y":21303.477494607185},"targetPosition":{"x":21364.78263530816,"y":21746.251931457737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 50 Begin","project":"Superalgos","id":"cdbfa16a-32ae-43e0-ba6f-940351c04786","savedPayload":{"position":{"x":20802.74908860738,"y":21184.157650473102},"targetPosition":{"x":21364.78263530816,"y":21746.251931457737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 50 Begin","id":"1d352202-ba2e-41a7-9d4b-c4c97d2e391d"}}},{"type":"Polygon Vertex","name":"SMA 50 End","project":"Superalgos","id":"5e17d592-e906-4b8b-b48b-97b98cdd2cd1","savedPayload":{"position":{"x":20923.33621766578,"y":21085.253404578496},"targetPosition":{"x":21364.78263530816,"y":21746.251931457737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 50 End","id":"4e34e6e6-d370-4127-b4fe-0c9fd591e730"}}}],"id":"39d6a3fc-1380-4e2d-8de6-13d0b9e7a8e3","savedPayload":{"position":{"x":21364.78263530816,"y":21746.251931457737},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 100","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"2a39fe15-bcc6-49a4-9dcd-41c882a4b361","savedPayload":{"position":{"x":20545.34423836003,"y":20362.65338756075},"targetPosition":{"x":21091.920483053076,"y":20940.83844913714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ea97087b-647a-4900-8de5-2aabe7f95095","savedPayload":{"position":{"x":21092.057608104693,"y":20940.8574303535},"targetPosition":{"x":21638.88713615668,"y":21519.17387802736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 100 Begin","project":"Superalgos","id":"d87c3f75-6f43-4087-ab8b-0493e77a3a25","savedPayload":{"position":{"x":21220.320983800993,"y":20850.893906848025},"targetPosition":{"x":21643.3552743623,"y":21524.131434914634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 100 Begin","id":"651f424a-51be-4b25-a895-d50f75329384"}}},{"type":"Polygon Vertex","name":"SMA 100 End","project":"Superalgos","id":"b6782eed-6d13-4cf8-98c1-b623da09e0d1","savedPayload":{"position":{"x":21360.08059508771,"y":20781.16218808441},"targetPosition":{"x":21643.3552743623,"y":21524.131434914634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 100 End","id":"aada5c3d-5ff5-4afd-8dd1-298ce8fce853"}}}],"id":"c7c55c53-c6ee-4edc-8b4e-eab2ece17db9","savedPayload":{"position":{"x":21643.3552743623,"y":21524.131434914634},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 150","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"7e3e32b9-1c64-43f1-85ab-6bb2d777c5a5","savedPayload":{"position":{"x":21152.42585794359,"y":19996.095689115966},"targetPosition":{"x":21556.371341192928,"y":20681.00242476546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"91bbb7a8-0800-4d46-a3ba-bd195153f61e","savedPayload":{"position":{"x":21555.518504562187,"y":20678.93259505686},"targetPosition":{"x":21959.896579552962,"y":21364.452775480804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 150 Begin","project":"Superalgos","id":"db2a660d-2315-482c-a29a-38acac0ca453","savedPayload":{"position":{"x":21701.65180234905,"y":20619.414653184947},"targetPosition":{"x":21964.14516888933,"y":21369.814831890162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 150 Begin","id":"55d6b376-dd20-4044-b6c2-51acd03bee71"}}},{"type":"Polygon Vertex","name":"SMA 150 End","project":"Superalgos","id":"2c0a8a74-58c0-4331-a438-2154306fb317","savedPayload":{"position":{"x":21853.088239777197,"y":20582.659081787402},"targetPosition":{"x":21964.14516888933,"y":21369.814831890162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 150 End","id":"812b92a9-2ba5-44e2-b255-976f8354e841"}}}],"id":"5c7935c9-6393-4e0f-8561-742533c1ebcf","savedPayload":{"position":{"x":21964.14516888933,"y":21369.814831890162},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 200","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"0ab949bd-a21b-43e8-ae5d-ba2067fa9436","savedPayload":{"position":{"x":21824.8191112252,"y":19771.3616322119},"targetPosition":{"x":22066.186276334145,"y":20529.009571934468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"838799c3-76c5-4e9e-9291-e297d352969c","savedPayload":{"position":{"x":22065.803142369426,"y":20526.84166510073},"targetPosition":{"x":22307.456289666403,"y":21285.12338542995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 200 Begin","project":"Superalgos","id":"f36ca4d6-1114-4958-9bf2-09cd34536077","savedPayload":{"position":{"x":22222.312816984308,"y":20500.334332454528},"targetPosition":{"x":22311.26706375412,"y":21290.59847028023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 200 Begin","id":"652e1cae-11c0-489c-a820-03296a362c77"}}},{"type":"Polygon Vertex","name":"SMA 200 End","project":"Superalgos","id":"af95d8b6-43cf-4529-910a-8713ab69fb13","savedPayload":{"position":{"x":22377.919327956977,"y":20498.471287512388},"targetPosition":{"x":22311.26706375412,"y":21290.59847028023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 200 End","id":"4e4458f4-c6ca-4235-8734-8e833d3722f2"}}}],"id":"796fa379-26a6-4443-b515-1be86217f891","savedPayload":{"position":{"x":22311.26706375412,"y":21290.59847028023},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 250","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.BLACK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"6f488fbe-fb26-4965-9ad2-be64bc66477e","savedPayload":{"position":{"x":22530.086921798335,"y":19701.871751341794},"targetPosition":{"x":22596.76943743385,"y":20494.258757218267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1860376f-2657-41cb-84d1-10c324f64535","savedPayload":{"position":{"x":22596.91136374727,"y":20492.063671246062},"targetPosition":{"x":22663.742585832366,"y":21285.127703607184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 250 End","project":"Superalgos","id":"e513348c-19d0-49e5-a77f-e6059d459335","savedPayload":{"position":{"x":22756.051910859533,"y":20500.597731439222},"targetPosition":{"x":22667.051965425828,"y":21290.69349377176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 250 End","id":"8ddf18b2-93b4-4422-9e64-f9fc22f5de52"}}},{"type":"Polygon Vertex","name":"SMA 250 Begin","project":"Superalgos","id":"ddd52ba0-601f-4121-908e-9cd42450ecaa","savedPayload":{"position":{"x":22908.48358361343,"y":20533.194982601733},"targetPosition":{"x":22667.051965425828,"y":21290.69349377176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 250 Begin","id":"52aefae1-6ceb-47c4-a82d-ac55a7b91b25"}}}],"id":"3ec27802-69a6-4c76-8bf5-ba92335ff928","savedPayload":{"position":{"x":22667.051965425828,"y":21290.69349377176},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 500","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.BLACK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"b8892640-241d-4817-90b9-142d50f45575","savedPayload":{"position":{"x":23232.866489199685,"y":19791.14658948157},"targetPosition":{"x":23121.800040948587,"y":20578.526720682818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"640d28c5-0762-4fe0-8d3b-b2b2fd178cbe","savedPayload":{"position":{"x":23122.43562347258,"y":20576.347090860247},"targetPosition":{"x":23011.28759626819,"y":21364.47188030187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 500 Begin","project":"Superalgos","id":"cc1d57e4-c69b-4faf-987e-1ecc6402d774","savedPayload":{"position":{"x":23276.75798656674,"y":20619.244754548083},"targetPosition":{"x":23014.125360674436,"y":21369.814888187662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 500 Begin","id":"d1ec756e-a71c-433b-ad10-ef8234617768"}}},{"type":"Polygon Vertex","name":"SMA 500 End","project":"Superalgos","id":"f5f0ed9f-dc7d-40cb-94cb-9fca1de4aacf","savedPayload":{"position":{"x":23418.13728851191,"y":20685.194456155623},"targetPosition":{"x":23014.125360674436,"y":21369.814888187662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 500 End","id":"0b2fbef6-9a30-4ed6-a98e-5ccceb77aea3"}}}],"id":"d638a3eb-6f91-4c41-9f65-981ba269343a","savedPayload":{"position":{"x":23014.125360674436,"y":21369.814888187662},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"SMA 1000","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.BLACK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","project":"Superalgos","id":"accb8fb4-da01-4314-bda3-a127f32443db","savedPayload":{"position":{"x":23899.71386486142,"y":20032.835708349812},"targetPosition":{"x":23616.118883337145,"y":20775.937332304093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2139584e-6960-4ac5-a6b2-d45aae1cfae3","savedPayload":{"position":{"x":23616.512738413443,"y":20775.661163577708},"targetPosition":{"x":23332.712587442296,"y":21519.26105630498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"SMA 1000 Begin","project":"Superalgos","id":"82d72489-eb93-4293-8b96-498e6756e89d","savedPayload":{"position":{"x":23758.100886961143,"y":20851.257836064135},"targetPosition":{"x":23335.106530718793,"y":21524.269978747765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 1000 Begin","id":"db6c9de6-aeb9-46ff-a46d-893ac56a32a2"}}},{"type":"Polygon Vertex","name":"SMA 1000 End","project":"Superalgos","id":"e781d4f3-58b9-4fce-82aa-27b669582090","savedPayload":{"position":{"x":23881.43645196623,"y":20946.820974511196},"targetPosition":{"x":23335.106530718793,"y":21524.269978747765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 1000 End","id":"e518b92f-f678-4868-ae0c-a0bd31f480eb"}}}],"id":"8042e9e4-b3be-4d8b-94bc-558b8b97a3f0","savedPayload":{"position":{"x":23335.106530718793,"y":21524.269978747765},"targetPosition":{"x":22489.032240710487,"y":22870.422182932976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"9847b54e-34cd-4a44-b43f-be3c091f5ec0","savedPayload":{"position":{"x":22489.032240710487,"y":22870.422182932976},"targetPosition":{"x":23609.15081377993,"y":23990.5537578445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"SMA Base 5","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"SMA 5","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma5","project":"Superalgos","id":"5c11d2b4-671b-42ec-88b0-9dbbf0ba5a57","savedPayload":{"position":{"x":23339.416408171634,"y":23443.51500665364},"targetPosition":{"x":23463.21813254879,"y":23207.7633126285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ec513f64-7c7c-4693-ac51-b2e36f2f858c","savedPayload":{"position":{"x":23463.21813254879,"y":23207.7633126285},"targetPosition":{"x":23608.788123047783,"y":22929.959227604573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 10","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma10","project":"Superalgos","id":"5e333385-55ff-48d1-abb0-0757ef26a20c","savedPayload":{"position":{"x":23127.385830252755,"y":23261.832532347085},"targetPosition":{"x":23346.521193642642,"y":23110.84930039687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c599221d-9b35-48c5-bb4d-4c4fd0c8c4e8","savedPayload":{"position":{"x":23346.521193642642,"y":23110.84930039687},"targetPosition":{"x":23608.788123047783,"y":22929.959227604573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 15","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma15","project":"Superalgos","id":"0cb3bdcb-7c0b-4cfa-9357-0b142c1e230b","savedPayload":{"position":{"x":23033.487415441854,"y":22999.31522464764},"targetPosition":{"x":23297.959059224777,"y":22967.463107639473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f3ff46f2-80e9-458f-b7ca-8f0fe7c7cff2","savedPayload":{"position":{"x":23297.959059224777,"y":22967.463107639473},"targetPosition":{"x":23608.788123047783,"y":22929.959227604573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 20","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma20","project":"Superalgos","id":"8dc1f569-2c1e-4842-b135-528ba461ca30","savedPayload":{"position":{"x":23066.624986642277,"y":22724.388094840724},"targetPosition":{"x":23316.317398514704,"y":22819.05962928242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"14a4ef21-076b-418a-98a6-7b3ff64f2a9f","savedPayload":{"position":{"x":23316.317398514704,"y":22819.05962928242},"targetPosition":{"x":23608.788123047783,"y":22929.959227604573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 25","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma25","project":"Superalgos","id":"2d76e840-cdda-48e8-9290-342c2a143b6d","savedPayload":{"position":{"x":23225.101381303546,"y":22496.774323007907},"targetPosition":{"x":23401.1552901458,"y":22695.543738038014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d8d31fc6-55db-4a89-bcc8-4e33a3583542","savedPayload":{"position":{"x":23401.1552901458,"y":22695.543738038014},"targetPosition":{"x":23608.788123047783,"y":22929.959227604573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 50","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma50","project":"Superalgos","id":"9a0af05e-b760-4a22-85ab-8b3c64b3ef29","savedPayload":{"position":{"x":23470.10703591069,"y":22366.63328471307},"targetPosition":{"x":23534.1513746402,"y":22626.837396589388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48d5643b-e652-4c4d-b7cf-37e9656bfd43","savedPayload":{"position":{"x":23534.1513746402,"y":22626.837396589388},"targetPosition":{"x":23608.788123047783,"y":22929.959227604573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 100","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma100","project":"Superalgos","id":"1987b0ae-9510-45e9-b7ed-3802c3f28e1d","savedPayload":{"position":{"x":23746.909213935247,"y":22367.982550989895},"targetPosition":{"x":23683.662252003953,"y":22625.355238959764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4ad1bbaa-2c37-4009-bbdd-d154be78b2d0","savedPayload":{"position":{"x":23683.662252003953,"y":22625.355238959764},"targetPosition":{"x":23608.788123047783,"y":22929.959227604573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 150","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma150","project":"Superalgos","id":"611d7c8b-2cb8-412b-bd1b-2a04b3a796c0","savedPayload":{"position":{"x":23992.490238327653,"y":22496.435969709062},"targetPosition":{"x":23815.798670137152,"y":22696.070081993832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8ef64a02-b88d-4635-8d88-99121a55ed73","savedPayload":{"position":{"x":23815.798670137152,"y":22696.070081993832},"targetPosition":{"x":23608.788123047783,"y":22929.959227604573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 200","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma200","project":"Superalgos","id":"d8bbc57a-1eda-43c8-a865-1ceeb879a755","savedPayload":{"position":{"x":24150.41922437878,"y":22724.436143966795},"targetPosition":{"x":23901.301579804272,"y":22818.964060841186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"06680ab8-0ec9-448e-9854-97bf413f4133","savedPayload":{"position":{"x":23901.301579804272,"y":22818.964060841186},"targetPosition":{"x":23608.788123047783,"y":22929.959227604573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 250","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma250","project":"Superalgos","id":"496ce598-2c93-40df-8f2e-effaeff2b665","savedPayload":{"position":{"x":24184.05779906247,"y":22999.25802659542},"targetPosition":{"x":23919.86580999489,"y":22967.475177328546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"503ab933-6f8f-4fcb-a0e6-ecf1b6e8b24b","savedPayload":{"position":{"x":23919.86580999489,"y":22967.475177328546},"targetPosition":{"x":23608.788123047783,"y":22929.959227604573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 500","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma500","project":"Superalgos","id":"67dd80e5-30f9-48b2-b661-e40acde070cc","savedPayload":{"position":{"x":24085.27038873185,"y":23258.603143586282},"targetPosition":{"x":23866.857909674105,"y":23108.02767390209},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a4ab02a6-f6c0-4b8f-98d9-e24b66e492ab","savedPayload":{"position":{"x":23866.857909674105,"y":23108.02767390209},"targetPosition":{"x":23608.788123047783,"y":22929.959227604573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"SMA 1000","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma1000","project":"Superalgos","id":"359489a0-97b9-49f8-8f35-2f6247b570a9","savedPayload":{"position":{"x":23877.390050813414,"y":23442.750592114575},"targetPosition":{"x":23754.01109188948,"y":23207.411949625443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"88560ba5-2c50-4236-90b6-47d19ac3afa5","savedPayload":{"position":{"x":23754.01109188948,"y":23207.411949625443},"targetPosition":{"x":23608.788123047783,"y":22929.959227604573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aa2c0f1e-8a0e-4da1-97df-6815890e5770","savedPayload":{"position":{"x":23609.15662950315,"y":22931.871323135456},"targetPosition":{"x":23609.15081377993,"y":23990.5537578445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"888c381d-457d-4421-8401-a7475b42ff03","savedPayload":{"position":{"x":24061.5,"y":24313.932852445505},"targetPosition":{"x":24399,"y":24898.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9b2443b7-9276-4fa3-b4b3-b9b991d886d8","savedPayload":{"position":{"x":18450,"y":18707},"targetPosition":{"x":18900,"y":18707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9cfffc48-486a-48cb-b641-98c82e314d3a","savedPayload":{"position":{"x":18900,"y":18707},"targetPosition":{"x":18900,"y":18707},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},{"type":"Trading Engine","name":"Low-Frequency","project":"Superalgos","tradingCurrent":{"type":"Trading Current","name":"New Trading Current","project":"Superalgos","tradingEpisode":{"type":"Trading Episode","name":"New Trading Episode","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5eb83933-432a-4029-8a3e-e4d8d760dd27","savedPayload":{"position":{"x":31167.323708986285,"y":23977.688964335575},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"8ba7fe0c-c5df-408e-be8a-ebde90f2a50d","savedPayload":{"position":{"x":31238.95073256315,"y":23884.34280982911},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d7faf864-3fa8-4280-b7d3-a022338b0dfe","savedPayload":{"position":{"x":31325.698970329096,"y":23804.852695273097},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f6722d05-77f9-4a68-ba69-38f56cdc7e91","savedPayload":{"position":{"x":31424.932620976335,"y":23741.633887574382},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"beginRate":{"type":"Begin Rate","name":"New Begin Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"613903ae-45e4-4eee-a178-d6ec049490ec","savedPayload":{"position":{"x":31533.6365202446,"y":23696.60725821463},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"endRate":{"type":"End Rate","name":"New End Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b2bfb20d-64d5-4c98-b0cd-a466654c1e6a","savedPayload":{"position":{"x":31648.50775516145,"y":23671.140918542358},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"2615490b-e968-4607-a6e5-009c3ae78957","savedPayload":{"position":{"x":31766.056021381584,"y":23666.008650401927},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"6bcc264b-a189-4aca-8397-d3520bdf4078","savedPayload":{"position":{"x":31882.7096743182,"y":23681.366395163728},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"headOfTheMarket":{"type":"Head Of The Market","name":"New Head Of The Market","config":"{\n\"initialValue\": false\n}","project":"Superalgos","id":"f7e00135-13b1-4265-95da-dd3a2c763b6f","savedPayload":{"position":{"x":31994.92425175642,"y":23716.747515524563},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"processDate":{"type":"Process Date","name":"New Process Date","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d9163f6e-0d50-4ddd-b13b-14f7b4124ec8","savedPayload":{"position":{"x":32099.29017054409,"y":23771.076974045984},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"episodeBaseAsset":{"type":"Episode Base Asset","name":"New Episode Base Asset","project":"Superalgos","balance":{"type":"Balance","name":"Base Asset","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"72f6a6b6-f35b-4d80-b8ad-4a4ed55f2387","savedPayload":{"position":{"x":22098.11187050857,"y":28352.010025698582},"targetPosition":{"x":22007.047967690567,"y":29274.785163911532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"beginBalance":{"type":"Begin Balance","name":"New Begin Balance","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0176b616-7628-42b1-8c06-4cfb1bfd05aa","savedPayload":{"position":{"x":22228.95762577073,"y":28374.45877465838},"targetPosition":{"x":22007.047967690567,"y":29274.785163911532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"endBalance":{"type":"End Balance","name":"New End Balance","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d3844a95-57a8-48f5-bfa9-e093bf815f57","savedPayload":{"position":{"x":22354.94567161915,"y":28415.250076258388},"targetPosition":{"x":22007.047967690567,"y":29274.785163911532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hits":{"type":"Hits","name":"New Hits","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c5eff46f-38bc-4ab9-9d07-ed6c5e161895","savedPayload":{"position":{"x":22473.785257190313,"y":28473.54288727863},"targetPosition":{"x":22007.047967690567,"y":29274.785163911532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"fails":{"type":"Fails","name":"New Fails","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4a05a6d4-add4-4b8e-a64f-82f1cb8363cd","savedPayload":{"position":{"x":22583.10027230804,"y":28548.14984671618},"targetPosition":{"x":22007.047967690567,"y":29274.785163911532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hitRatio":{"type":"Hit Ratio","name":"New Hit Ratio","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"348b1305-f52f-4dd0-b8f7-d0950aed6604","savedPayload":{"position":{"x":22680.678550725854,"y":28637.553733541827},"targetPosition":{"x":22007.047967690567,"y":29274.785163911532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"profitLoss":{"type":"Profit Loss","name":"New Profit Loss","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"be210037-a2bd-445e-8a18-081e3e4fc995","savedPayload":{"position":{"x":22764.53963470937,"y":28739.938856938978},"targetPosition":{"x":22007.047967690567,"y":29274.785163911532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"ROI":{"type":"ROI","name":"New ROI","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"405d086e-9461-4e0d-b875-8decf729a434","savedPayload":{"position":{"x":22832.980345134085,"y":28853.232493838477},"targetPosition":{"x":22007.047967690567,"y":29274.785163911532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"annualizedRateOfReturn":{"type":"Annualized Rate Of Return","name":"New Annualized Rate Of Return","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2fa70a73-35be-40a2-a0e8-6ef12e76a105","savedPayload":{"position":{"x":22884.612418088982,"y":28975.16895263282},"targetPosition":{"x":22007.047967690567,"y":29274.785163911532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hitFail":{"type":"Hit Fail","name":"New Hit Fail","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"388b582a-74fb-4245-b831-892b19868e85","savedPayload":{"position":{"x":22918.40627908166,"y":29103.545752069178},"targetPosition":{"x":22007.047967690567,"y":29274.785163911532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"11def55a-16a2-4105-a2c0-2dc7b39422d5","savedPayload":{"position":{"x":32192.636325050553,"y":23842.703997622848},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"episodeQuotedAsset":{"type":"Episode Quoted Asset","name":"New Episode Quoted Asset","project":"Superalgos","balance":{"type":"Balance","name":"Quoted Asset","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"31600195-9fe6-48f2-a744-12609943a948","savedPayload":{"position":{"x":32454.57552335716,"y":23279.57737679018},"targetPosition":{"x":32272.126439606567,"y":23929.452235388795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"beginBalance":{"type":"Begin Balance","name":"New Begin Balance","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"020629af-dc56-40f5-b724-aa7a38017577","savedPayload":{"position":{"x":32545.205290153775,"y":23312.157377655625},"targetPosition":{"x":32272.126439606567,"y":23929.452235388795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"endBalance":{"type":"End Balance","name":"New End Balance","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3dafbad0-221d-4728-a507-682516c5c7d2","savedPayload":{"position":{"x":32630.275959047616,"y":23357.30372169314},"targetPosition":{"x":32272.126439606567,"y":23929.452235388795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hits":{"type":"Hits","name":"New Hits","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ff31de06-cf8f-4a56-8bd3-0fc978257133","savedPayload":{"position":{"x":32708.055736543567,"y":23414.097359529438},"targetPosition":{"x":32272.126439606567,"y":23929.452235388795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"fails":{"type":"Fails","name":"New Fails","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"48db7b5c-f10c-4d10-9662-0f28bebcc16a","savedPayload":{"position":{"x":32776.96125067017,"y":23481.382136477496},"targetPosition":{"x":32272.126439606567,"y":23929.452235388795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hitRatio":{"type":"Hit Ratio","name":"New Hit Ratio","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7e8dabb5-0d33-470a-9c62-92bfd48fbc66","savedPayload":{"position":{"x":32835.58978386688,"y":23557.78832851192},"targetPosition":{"x":32272.126439606567,"y":23929.452235388795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"profitLoss":{"type":"Profit Loss","name":"New Profit Loss","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b87d87fa-37b4-4a84-ab28-44e1f69bf485","savedPayload":{"position":{"x":32882.74782826856,"y":23641.760525900158},"targetPosition":{"x":32272.126439606567,"y":23929.452235388795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"ROI":{"type":"ROI","name":"New ROI","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"37ab9b9a-d76c-4d1e-bbb0-8f81d852ef5f","savedPayload":{"position":{"x":32917.475382083765,"y":23731.5892968592},"targetPosition":{"x":32272.126439606567,"y":23929.452235388795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"annualizedRateOfReturn":{"type":"Annualized Rate Of Return","name":"New Annualized Rate Of Return","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3eefd2a4-05e5-45cc-8319-b2f473907651","savedPayload":{"position":{"x":32939.065492462796,"y":23825.445986657112},"targetPosition":{"x":32272.126439606567,"y":23929.452235388795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hitFail":{"type":"Hit Fail","name":"New Hit Fail","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"7b13fa53-921e-457b-bde5-dd4c13247936","savedPayload":{"position":{"x":32947.07864701909,"y":23921.419943749945},"targetPosition":{"x":32272.126439606567,"y":23929.452235388795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9d3a2c33-2d9f-4d01-a410-9c29b534b886","savedPayload":{"position":{"x":32272.126439606567,"y":23929.452235388795},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingEpisodeCounters":{"type":"Trading Episode Counters","name":"New Trading Episode Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6c6579c8-fb13-41f6-a25b-1833d2963640","savedPayload":{"position":{"x":21684.93018412795,"y":29547.22017543007},"targetPosition":{"x":21714.345247305282,"y":29883.435886036033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"strategies":{"type":"Strategies","name":"New Strategies","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"caf6b80c-fff7-4c1e-abf9-3b37cd8d3806","savedPayload":{"position":{"x":21815.833454637974,"y":29561.556415158506},"targetPosition":{"x":21714.345247305282,"y":29883.435886036033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"positions":{"type":"Positions","name":"New Positions","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e9184950-7342-4ba0-96cd-bf51ac20c432","savedPayload":{"position":{"x":21931.286065574488,"y":29624.895886483377},"targetPosition":{"x":21714.345247305282,"y":29883.435886036033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"orders":{"type":"Orders","name":"New Orders","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"668e9060-80e2-41d4-8528-65b40a9dc523","savedPayload":{"position":{"x":22013.711403502934,"y":29727.59572906921},"targetPosition":{"x":21714.345247305282,"y":29883.435886036033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"hits":{"type":"Hits","name":"New Hits","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e9beeed6-f4c1-4862-a84a-9215a5dc0b76","savedPayload":{"position":{"x":22050.560957911246,"y":29854.0208228587},"targetPosition":{"x":21714.345247305282,"y":29883.435886036033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"fails":{"type":"Fails","name":"New Fails","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"db9005e4-0895-4a13-80de-3d7592477457","savedPayload":{"position":{"x":22036.22471818281,"y":29984.924093368725},"targetPosition":{"x":21714.345247305282,"y":29883.435886036033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[{"type":"User Defined Counter","name":"New User Defined Counter","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"43f2fef0-fffd-45d1-9ded-ba2bda6908cb","savedPayload":{"position":{"x":21972.88524685794,"y":30100.37670430524},"targetPosition":{"x":21714.345247305282,"y":29883.435886036033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"id":"5a0d3549-0f15-4815-b4b3-11b78cc0ee8f","savedPayload":{"position":{"x":32335.345247305282,"y":24028.685886036033},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingEpisodeStatistics":{"type":"Trading Episode Statistics","name":"New Trading Episode Statistics","project":"Superalgos","profitLoss":{"type":"Profit Loss","name":"New Profit Loss","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e3d6d413-30e8-4d83-9fdb-0c344065bb25","savedPayload":{"position":{"x":21818.2020030197,"y":29319.70836409237},"targetPosition":{"x":21759.371876665035,"y":29992.139785304298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"ROI":{"type":"ROI","name":"New ROI","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9d578e19-1f24-46a0-95bc-ac1b0db612d8","savedPayload":{"position":{"x":22071.052190598683,"y":29393.407472909},"targetPosition":{"x":21759.371876665035,"y":29992.139785304298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hitFail":{"type":"Hit Fail","name":"New Hit Fail","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"660dcca3-ccee-4e7c-91b2-2c23884d901e","savedPayload":{"position":{"x":22276.45187577034,"y":29558.258148765883},"targetPosition":{"x":21759.371876665035,"y":29992.139785304298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2c041b27-ee4b-444d-a80f-d4441a072079","savedPayload":{"position":{"x":22403.13081842009,"y":29789.163370638915},"targetPosition":{"x":21759.371876665035,"y":29992.139785304298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"annualizedRateOfReturn":{"type":"Annualized Rate Of Return","name":"New Annualized Rate Of Return","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"adaf52e7-6cfb-419c-a977-8453841db79c","savedPayload":{"position":{"x":22431.803297876962,"y":30050.969911658965},"targetPosition":{"x":21759.371876665035,"y":29992.139785304298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Write your Formula code here.","project":"Superalgos","id":"03dfd055-de12-4acd-a2d6-09571bcb476b","savedPayload":{"position":{"x":22358.104189060337,"y":30303.820099237946},"targetPosition":{"x":22058.738032862686,"y":30147.979942271122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c4634159-3ab1-4053-bcd3-ef6807874149","savedPayload":{"position":{"x":22058.738032862686,"y":30147.979942271122},"targetPosition":{"x":21759.371876665035,"y":29992.139785304298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Write your Formula code here.","project":"Superalgos","id":"e26802c2-6390-430a-8223-a22b45fa625f","savedPayload":{"position":{"x":22193.253513203446,"y":30509.219784409608},"targetPosition":{"x":21976.31269493424,"y":30250.679784856955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"40e19232-9c8e-4f03-857e-98a57ac22551","savedPayload":{"position":{"x":21976.31269493424,"y":30250.679784856955},"targetPosition":{"x":21759.371876665035,"y":29992.139785304298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fb2b103c-aa99-4528-b517-26f8b19c8f2e","savedPayload":{"position":{"x":32380.371876665035,"y":24137.389785304298},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"distanceToTradingEvent":{"type":"Distance To Trading Event","name":"New Distance To Trading Event","project":"Superalgos","triggerOn":{"type":"Trigger On","name":"New Trigger On","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"902bb26e-1767-438f-ad17-90ecdf895917","savedPayload":{"position":{"x":22986.377354774188,"y":29204.45520364069},"targetPosition":{"x":22303.52657611185,"y":29837.47376203433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"triggerOff":{"type":"Trigger Off","name":"New Trigger Off","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"38a99470-0ba3-449b-b390-e91b641df71e","savedPayload":{"position":{"x":23077.130865145038,"y":29312.729377378433},"targetPosition":{"x":22303.52657611185,"y":29837.47376203433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"takePosition":{"type":"Take Position","name":"New Take Position","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2ab42094-807b-4a1b-a98e-0461ac76b96a","savedPayload":{"position":{"x":23146.35198301012,"y":29438.64286448589},"targetPosition":{"x":22303.52657611185,"y":29837.47376203433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"closePosition":{"type":"Close Position","name":"New Close Position","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"266078a8-278e-4725-a40a-517565ed5be2","savedPayload":{"position":{"x":23198.933264566556,"y":29574.03599112221},"targetPosition":{"x":22303.52657611185,"y":29837.47376203433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"nextPhase":{"type":"Next Phase","name":"New Next Phase","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"700d730c-0ce4-41e5-beb4-d247ea87ff39","savedPayload":{"position":{"x":23228.34578524394,"y":29716.860826038508},"targetPosition":{"x":22303.52657611185,"y":29837.47376203433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhase":{"type":"Move To Phase","name":"New Move To Phase","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"db34eaee-4206-47f0-9611-5157b8e8b5be","savedPayload":{"position":{"x":23236.204582193706,"y":29862.880596804724},"targetPosition":{"x":22303.52657611185,"y":29837.47376203433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"createOrder":{"type":"Create Order","name":"New Create Order","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0bbe164f-0d90-4784-a367-f78123ec00d7","savedPayload":{"position":{"x":23220.429528175213,"y":30008.37037019478},"targetPosition":{"x":22303.52657611185,"y":29837.47376203433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"cancelOrder":{"type":"Cancel Order","name":"New Cancel Order","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8c07e14b-2113-4651-9370-ac2506b7662a","savedPayload":{"position":{"x":23182.5619690346,"y":30149.849521515825},"targetPosition":{"x":22303.52657611185,"y":29837.47376203433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"closeOrder":{"type":"Close Order","name":"New Close Order","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3a0488f3-87b0-4f44-92f9-5abc53a68d58","savedPayload":{"position":{"x":23102.559301420217,"y":30312.23805593147},"targetPosition":{"x":22303.52657611185,"y":29837.47376203433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5fa3b58c-7e8c-4327-acbf-d6b367c2248d","savedPayload":{"position":{"x":32405.838216337306,"y":24252.261020221147},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"candle":{"type":"Candle","name":"New Candle","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"99e6ab4d-b289-4ffa-8011-7cd6cc8e7be2","savedPayload":{"position":{"x":32553.604147815222,"y":24063.930408316413},"targetPosition":{"x":32410.970484477737,"y":24369.809286441283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"30567d08-6c02-4566-b96e-9d308511550a","savedPayload":{"position":{"x":32659.801585651156,"y":24141.797591370996},"targetPosition":{"x":32410.970484477737,"y":24369.809286441283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"open":{"type":"Open","name":"New Open","project":"Superalgos","id":"3a56e6c9-1780-496e-88f1-8bad9ba7df83","savedPayload":{"position":{"x":32728.11674399298,"y":24254.37748806887},"targetPosition":{"x":32410.970484477737,"y":24369.809286441283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"close":{"type":"Close","name":"New Close","project":"Superalgos","id":"b2eaedfb-9589-49f1-8b38-91384c91821c","savedPayload":{"position":{"x":32748.149259261612,"y":24384.530829677085},"targetPosition":{"x":32410.970484477737,"y":24369.809286441283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"min":{"type":"Min","name":"New Min","project":"Superalgos","id":"ee29c140-d133-4265-a4ad-1d3f9bd098c6","savedPayload":{"position":{"x":32716.849362602607,"y":24512.442949778768},"targetPosition":{"x":32410.970484477737,"y":24369.809286441283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"max":{"type":"Max","name":"New Max","project":"Superalgos","id":"a6bcef43-3109-4da4-9fdc-fa9f03e5ce6b","savedPayload":{"position":{"x":32638.982179548024,"y":24618.6403876147},"targetPosition":{"x":32410.970484477737,"y":24369.809286441283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"index":{"type":"Index","name":"New Index","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d4a0e8f8-bf5e-42d1-b5bc-b5de3ed078dc","savedPayload":{"position":{"x":32526.40228285015,"y":24686.955545956527},"targetPosition":{"x":32410.970484477737,"y":24369.809286441283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"83f13bc0-737a-4679-aab3-e596a728693f","savedPayload":{"position":{"x":32410.970484477737,"y":24369.809286441283},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"cycle":{"type":"Cycle","name":"New Cycle","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c9986759-eca8-4a11-b5fa-4930d3022ecc","savedPayload":{"position":{"x":21900.99901759908,"y":30229.395806241497},"targetPosition":{"x":21774.612739715936,"y":30341.212939377903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c0aa558a-35de-42e0-a6c0-48c45da865a4","savedPayload":{"position":{"x":21942.585848190396,"y":30325.038968640118},"targetPosition":{"x":21774.612739715936,"y":30341.212939377903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"lastBegin":{"type":"Last Begin","name":"New Last Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"983768b0-972f-4ade-98e1-865a8c733117","savedPayload":{"position":{"x":21920.012660540444,"y":30426.860038127525},"targetPosition":{"x":21774.612739715936,"y":30341.212939377903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"lastEnd":{"type":"Last End","name":"New Last End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3f54c869-6154-478d-94fc-c0dbde606801","savedPayload":{"position":{"x":21841.90164509707,"y":30495.966826930395},"targetPosition":{"x":21774.612739715936,"y":30341.212939377903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"10a54b94-404f-4107-9f37-5ab09b13a0e5","savedPayload":{"position":{"x":32395.612739715936,"y":24486.4629393779},"targetPosition":{"x":31736.612934909983,"y":24340.36619996968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"772a16fc-f0e4-4bfa-8045-bf8bc984eb53","savedPayload":{"position":{"x":31736.612934909983,"y":24340.36619996968},"targetPosition":{"x":31478.301618063546,"y":24963.9848844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"strategy":{"type":"Strategy","name":"New Strategy","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"989dc7f3-b431-49a1-b77e-a44a9c5cb9dd","savedPayload":{"position":{"x":21202.464124525155,"y":29365.868025765194},"targetPosition":{"x":21682.054446484464,"y":30159.030577879887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"6d661273-f8fd-48ac-8258-d4851c18e9b5","savedPayload":{"position":{"x":21406.398658488935,"y":29274.038485276607},"targetPosition":{"x":21682.054446484464,"y":30159.030577879887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6440a481-de19-4054-ada3-aaf4847f7bf5","savedPayload":{"position":{"x":21626.26468914486,"y":29233.738250541508},"targetPosition":{"x":21682.054446484464,"y":30159.030577879887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d73398fd-bef4-439b-b015-7c485f323fd9","savedPayload":{"position":{"x":21849.062545766,"y":29247.232622597738},"targetPosition":{"x":21682.054446484464,"y":30159.030577879887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"beginRate":{"type":"Begin Rate","name":"New Begin Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8ab7d69f-a2e4-42dc-b3c8-e55c6e9395ed","savedPayload":{"position":{"x":22062.44492072017,"y":29313.72611608966},"targetPosition":{"x":21682.054446484464,"y":30159.030577879887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"endRate":{"type":"End Rate","name":"New End Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"752b56ac-dacf-4de6-b9cd-1f907c4639d8","savedPayload":{"position":{"x":22253.713227664477,"y":29429.35166685984},"targetPosition":{"x":21682.054446484464,"y":30159.030577879887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"95eaccfe-cf23-4bde-9cc3-4d4ac22c4147","savedPayload":{"position":{"x":22411.75092039691,"y":29587.384444577714},"targetPosition":{"x":21682.054446484464,"y":30159.030577879887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"e982b53e-71c4-40bd-a158-b477b51c18e6","savedPayload":{"position":{"x":22527.38092688656,"y":29778.650896123785},"targetPosition":{"x":21682.054446484464,"y":30159.030577879887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"No Stage\"\n}","project":"Superalgos","id":"b3fcda1e-aaed-4f29-8f4e-6a3c53f41d5c","savedPayload":{"position":{"x":22593.88141421011,"y":29992.02388636535},"targetPosition":{"x":21682.054446484464,"y":30159.030577879887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"index":{"type":"Index","name":"New Index","config":"{\n\"initialValue\": -1\n}","project":"Superalgos","id":"2b5497a7-5945-4c6d-89c7-328f488efcd9","savedPayload":{"position":{"x":22607.376547573534,"y":30214.816208799464},"targetPosition":{"x":21682.054446484464,"y":30159.030577879887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"strategyName":{"type":"Strategy Name","name":"New Strategy Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"165503a7-6932-4492-b55d-e1f078e84184","savedPayload":{"position":{"x":22567.075749901494,"y":30434.676995693146},"targetPosition":{"x":21682.054446484464,"y":30159.030577879887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"strategyCounters":{"type":"Strategy Counters","name":"New Strategy Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6444a48f-005e-435d-971f-6f4b918b448b","savedPayload":{"position":{"x":22872.303885871603,"y":30878.59617854075},"targetPosition":{"x":22475.237046571565,"y":30638.64370636241},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"0959dc76-33eb-416f-ba6d-49bf7bdedcfe","savedPayload":{"position":{"x":22475.237046571565,"y":30638.64370636241},"targetPosition":{"x":21682.054446484464,"y":30159.030577879887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4ae1a2e2-3986-426d-887c-854ffcd0bacf","savedPayload":{"position":{"x":31955.598695364464,"y":24486.68780711388},"targetPosition":{"x":31478.301618063546,"y":24963.9848844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"position":{"type":"Position","name":"New Position","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3477c173-53bc-42ea-a3b7-4f00a1c02015","savedPayload":{"position":{"x":31955.823563100446,"y":24046.67376276241},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"9261f02f-9032-4602-9770-072e9268313c","savedPayload":{"position":{"x":32072.477216037063,"y":24031.31601800061},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f0b88792-57a2-4081-90d4-e38705f487cd","savedPayload":{"position":{"x":32190.0254822572,"y":24036.44828614104},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3ef9a99a-9339-4ff9-b634-aa59a5f8e28a","savedPayload":{"position":{"x":32304.896717174048,"y":24061.91462581331},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"beginRate":{"type":"Begin Rate","name":"New Begin Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4d36149a-9c7e-4646-8c15-64a9404c8970","savedPayload":{"position":{"x":32413.600616442312,"y":24106.941255173064},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"endRate":{"type":"End Rate","name":"New End Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"207d3050-dd30-4da0-ab7d-c29819d88f66","savedPayload":{"position":{"x":32512.83426708955,"y":24170.16006287178},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"a927c8ca-6401-40b6-a322-697e234c031c","savedPayload":{"position":{"x":32599.582504855498,"y":24249.650177427793},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"cabf5599-bd58-4d1c-92f5-9de5799d6aa4","savedPayload":{"position":{"x":32671.209528432362,"y":24342.996331934257},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"No Stage\"\n}","project":"Superalgos","id":"eab14f99-22d2-492d-b398-1aac390d7066","savedPayload":{"position":{"x":32725.538986953783,"y":24447.362250721926},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"entryTargetRate":{"type":"Entry Target Rate","name":"New Entry Target Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"71b3e7d9-80d0-422d-999e-99549f5ab59d","savedPayload":{"position":{"x":32760.920107314618,"y":24559.576828160145},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitTargetRate":{"type":"Exit Target Rate","name":"New Exit Target Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"bc637b55-04bd-4701-9683-78593832cb09","savedPayload":{"position":{"x":32776.27785207642,"y":24676.23048109676},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"stopLoss":{"type":"Stop Loss","name":"New Stop Loss","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a2c06262-0906-4aac-8048-86e6c861a3f1","savedPayload":{"position":{"x":22456.907595062607,"y":30507.804483134954},"targetPosition":{"x":22150.145583935988,"y":30648.5287473169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3dbcd6ca-7f17-4e43-a211-a0052d85a2a8","savedPayload":{"position":{"x":22480.530525676448,"y":30579.59370346288},"targetPosition":{"x":22150.145583935988,"y":30648.5287473169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"stopLossPhase":{"type":"Stop Loss Phase","name":"New Stop Loss Phase","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"cd72e0d5-5947-4dba-98e0-a6b245d0589a","savedPayload":{"position":{"x":22487.58657574404,"y":30654.839614737328},"targetPosition":{"x":22150.145583935988,"y":30648.5287473169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"stopLossPosition":{"type":"Stop Loss Position","name":"New Stop Loss Position","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"952c2041-9073-4207-a65d-2676a4d17bf7","savedPayload":{"position":{"x":22477.721925451508,"y":30729.769072767427},"targetPosition":{"x":22150.145583935988,"y":30648.5287473169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"initialValue":{"type":"Initial Value","name":"New Initial Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"081a3ca6-613e-4fa2-944f-b2d153f3976c","savedPayload":{"position":{"x":22451.43122955571,"y":30800.624801649385},"targetPosition":{"x":22150.145583935988,"y":30648.5287473169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"finalValue":{"type":"Final Value","name":"New Final Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"da4d0a4f-f6d5-47f4-98f4-3ebe8dbfd5ad","savedPayload":{"position":{"x":22410.032813329242,"y":30863.853799269295},"targetPosition":{"x":22150.145583935988,"y":30648.5287473169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6cc8dba0-5f83-4a35-af20-ec8c0f2cfcff","savedPayload":{"position":{"x":32771.145583935984,"y":24793.778747316897},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2685e828-a599-44df-9fc7-3ddcd004339a","savedPayload":{"position":{"x":22451.217363179545,"y":30678.082300040012},"targetPosition":{"x":22124.679244263716,"y":30763.39998223375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"85b941f4-bdf3-44ff-bb77-bd65eb39e6b5","savedPayload":{"position":{"x":22462.01534111084,"y":30752.8829596539},"targetPosition":{"x":22124.679244263716,"y":30763.39998223375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"takeProfitPhase":{"type":"Take Profit Phase","name":"New Take Profit Phase","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"bb18fe69-5012-4f64-ad50-387872f0c4e2","savedPayload":{"position":{"x":22455.89787855336,"y":30828.21098669521},"targetPosition":{"x":22124.679244263716,"y":30763.39998223375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"takeProfitPosition":{"type":"Take Profit Position","name":"New Take Profit Position","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"90a1092c-47e5-4d98-9d9a-c1cb2f057274","savedPayload":{"position":{"x":22433.171730624024,"y":30900.289119345638},"targetPosition":{"x":22124.679244263716,"y":30763.39998223375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"initialValue":{"type":"Initial Value","name":"New Initial Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"57ef7f9f-6d22-4d67-8a2b-4707646f24fb","savedPayload":{"position":{"x":22394.976481276135,"y":30965.503059062015},"targetPosition":{"x":22124.679244263716,"y":30763.39998223375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"finalValue":{"type":"Final Value","name":"New Final Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a6692953-5973-4c51-ab28-aba3c749041f","savedPayload":{"position":{"x":22343.22739980148,"y":31020.582706597263},"targetPosition":{"x":22124.679244263716,"y":30763.39998223375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"df523873-e747-41bb-ac2e-a4091fd911e5","savedPayload":{"position":{"x":32745.679244263716,"y":24908.649982233746},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionCounters":{"type":"Position Counters","name":"New Position Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"fb374cfd-85ce-434a-98fb-29262017b4df","savedPayload":{"position":{"x":32700.652614903967,"y":25017.35388150201},"targetPosition":{"x":32401.286458706316,"y":24861.513724535187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"9c24f6bf-cc20-4384-abf5-db31a0adfe75","savedPayload":{"position":{"x":32401.286458706316,"y":24861.513724535187},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionStatistics":{"type":"Position Statistics","name":"New Position Statistics","project":"Superalgos","profitLoss":{"type":"Profit Loss","name":"New Profit Loss","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"45ce7818-05a2-4bcb-b822-034f801e3efa","savedPayload":{"position":{"x":22351.04644791891,"y":31015.390122023528},"targetPosition":{"x":22016.43380720525,"y":30971.337532149257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"ROI":{"type":"ROI","name":"New ROI","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c8373104-21d5-41d3-a551-71753683853b","savedPayload":{"position":{"x":22328.243149427806,"y":31100.493190572473},"targetPosition":{"x":22016.43380720525,"y":30971.337532149257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"hitFail":{"type":"Hit Fail","name":"New Hit Fail","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"c809d913-3522-46b3-9735-b63a32cbdc5b","savedPayload":{"position":{"x":22284.190559553543,"y":31176.7945144397},"targetPosition":{"x":22016.43380720525,"y":30971.337532149257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"cedad2f7-7afc-4d24-8318-f800a3447b24","savedPayload":{"position":{"x":22221.890789495694,"y":31239.09428449755},"targetPosition":{"x":22016.43380720525,"y":30971.337532149257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"03d2f3b4-3d5e-4b8d-b0ba-a73b52842cf0","savedPayload":{"position":{"x":22145.589465628465,"y":31283.14687437182},"targetPosition":{"x":22081.011636416857,"y":31127.24220326054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"445bfb04-2212-4586-8507-831dcc60a4d4","savedPayload":{"position":{"x":22081.011636416857,"y":31127.24220326054},"targetPosition":{"x":22016.43380720525,"y":30971.337532149257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dd3ec368-eae6-49cf-8753-b317c8e7725e","savedPayload":{"position":{"x":32637.43380720525,"y":25116.58753214925},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionBaseAsset":{"type":"Position Base Asset","name":"New Position Base Asset","project":"Superalgos","beginBalance":{"type":"Begin Balance","name":"New Begin Balance","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8c6d01dc-f258-4957-81a9-743eff6367c4","savedPayload":{"position":{"x":23409.896254278152,"y":31363.68063606183},"targetPosition":{"x":22509.38843634761,"y":31143.780022689803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"endBalance":{"type":"End Balance","name":"New End Balance","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7e0d3197-eb56-4390-b319-1e29888e5eb0","savedPayload":{"position":{"x":23349.567336864027,"y":31535.40723593963},"targetPosition":{"x":22509.38843634761,"y":31143.780022689803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"entryTargetSize":{"type":"Entry Target Size","name":"New Entry Target Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4f34b4ec-74cb-42ad-be53-3ce37b6cf429","savedPayload":{"position":{"x":23256.963875891925,"y":31691.87402220499},"targetPosition":{"x":22509.38843634761,"y":31143.780022689803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitTargetSize":{"type":"Exit Target Size","name":"New Exit Target Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"543c7935-d286-45a0-944d-95fc013f54a6","savedPayload":{"position":{"x":23135.61720895022,"y":31827.223380477255},"targetPosition":{"x":22509.38843634761,"y":31143.780022689803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"profitLoss":{"type":"Profit Loss","name":"New Profit Loss","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c6a22f90-dc9e-4f23-a5c6-db20864d5764","savedPayload":{"position":{"x":22990.199546091688,"y":31936.308214216813},"targetPosition":{"x":22509.38843634761,"y":31143.780022689803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"ROI":{"type":"ROI","name":"New ROI","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f8d76bbb-9697-4244-beed-e180394b0190","savedPayload":{"position":{"x":22826.26676518483,"y":32014.913950973765},"targetPosition":{"x":22509.38843634761,"y":31143.780022689803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hitFail":{"type":"Hit Fail","name":"New Hit Fail","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"f729b426-5742-4050-9f5f-17be937603fe","savedPayload":{"position":{"x":22649.94657753411,"y":32060.040641825},"targetPosition":{"x":22509.38843634761,"y":31143.780022689803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"49b6cd2f-d026-45a1-94a6-34da6a8a00d0","savedPayload":{"position":{"x":32557.943692649234,"y":25203.335769915197},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionQuotedAsset":{"type":"Position Quoted Asset","name":"New Position Quoted Asset","project":"Superalgos","beginBalance":{"type":"Begin Balance","name":"New Begin Balance","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7ac0990c-72be-4a29-b8f5-742e3d3a187f","savedPayload":{"position":{"x":23228.43911591012,"y":31615.565262893047},"targetPosition":{"x":22379.660808553912,"y":31242.332296252862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"endBalance":{"type":"End Balance","name":"New End Balance","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7671b848-4e6e-4671-8180-984b622a5252","savedPayload":{"position":{"x":23139.13935145123,"y":31774.08660420411},"targetPosition":{"x":22379.660808553912,"y":31242.332296252862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"entryTargetSize":{"type":"Entry Target Size","name":"New Entry Target Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3f327b74-3799-4344-8694-b2b9affaec47","savedPayload":{"position":{"x":23020.733534433813,"y":31912.100062898317},"targetPosition":{"x":22379.660808553912,"y":31242.332296252862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitTargetSize":{"type":"Exit Target Size","name":"New Exit Target Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9340a64e-303d-4e87-a281-5aba9d0735c4","savedPayload":{"position":{"x":22877.758625137816,"y":32024.220409015004},"targetPosition":{"x":22379.660808553912,"y":31242.332296252862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"profitLoss":{"type":"Profit Loss","name":"New Profit Loss","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5af6674b-b49c-4f44-bddb-0316342fa013","savedPayload":{"position":{"x":22715.599413059936,"y":32106.315855576133},"targetPosition":{"x":22379.660808553912,"y":31242.332296252862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"ROI":{"type":"ROI","name":"New ROI","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"fd0421eb-6448-4fe6-8758-54584c7b2c3c","savedPayload":{"position":{"x":22540.499047964135,"y":32155.37458622078},"targetPosition":{"x":22379.660808553912,"y":31242.332296252862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hitFail":{"type":"Hit Fail","name":"New Hit Fail","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"0ff63d38-707c-40a6-92ac-3e89744857c9","savedPayload":{"position":{"x":22359.264243549194,"y":32169.14191656447},"targetPosition":{"x":22379.660808553912,"y":31242.332296252862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"37210802-7554-4c5f-8154-b89ac2cef413","savedPayload":{"position":{"x":32464.59753814277,"y":25274.96279349206},"targetPosition":{"x":32101.920302508664,"y":24705.673567568363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"37e18e8e-1d1c-42b8-a39c-ae9f169298f7","savedPayload":{"position":{"x":32101.920302508664,"y":24705.673567568363},"targetPosition":{"x":31478.301618063546,"y":24963.9848844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"strategyTriggerStage":{"type":"Strategy Trigger Stage","name":"New Strategy Trigger Stage","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"931c5ac7-f366-43ad-9343-c2d742858956","savedPayload":{"position":{"x":22154.246550066782,"y":30396.523298979308},"targetPosition":{"x":21953.020073381733,"y":30814.735082084924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"59e8db85-8e15-4cc8-b9f8-13ee48f3ac6e","savedPayload":{"position":{"x":22315.965544858773,"y":30525.37783701141},"targetPosition":{"x":21953.020073381733,"y":30814.735082084924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"383a0db7-d66b-4737-a0ad-c0fbd83141b1","savedPayload":{"position":{"x":22405.61349385632,"y":30711.5588545773},"targetPosition":{"x":21953.020073381733,"y":30814.735082084924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"98dd6291-cae7-42bb-bfe0-7258b98b3e48","savedPayload":{"position":{"x":22405.62767886511,"y":30917.895950258557},"targetPosition":{"x":21953.020073381733,"y":30814.735082084924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"beginRate":{"type":"Begin Rate","name":"New Begin Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"af5e94f8-f9fa-4efd-b476-b39e73a17647","savedPayload":{"position":{"x":22315.936067533912,"y":31104.101575435532},"targetPosition":{"x":21953.020073381733,"y":30814.735082084924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"endRate":{"type":"End Rate","name":"New End Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ff9e5f2c-39ed-4132-85ad-ea1f8bc79c77","savedPayload":{"position":{"x":22154.254695793104,"y":31232.963282180215},"targetPosition":{"x":21953.020073381733,"y":30814.735082084924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cf358488-11ec-493e-8fa1-f9e49ebc49a4","savedPayload":{"position":{"x":32153.301618063546,"y":24963.9848844148},"targetPosition":{"x":31478.301618063546,"y":24963.9848844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"strategyOpenStage":{"type":"Strategy Open Stage","name":"New Strategy Open Stage","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"479be369-3e1b-403b-8205-60b134ffe853","savedPayload":{"position":{"x":32321.1090188201,"y":24965.659187871228},"targetPosition":{"x":32101.920302508664,"y":25222.296201261237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7f4c00d9-28f8-4217-acc8-28a0610697c4","savedPayload":{"position":{"x":32389.68635797817,"y":25045.952935669604},"targetPosition":{"x":32101.920302508664,"y":25222.296201261237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"f6545702-f89a-4e30-b35b-f2b9e8e0d54a","savedPayload":{"position":{"x":32430.09515064288,"y":25143.50839095987},"targetPosition":{"x":32101.920302508664,"y":25222.296201261237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"ff2a4db2-77c1-4e50-8e93-4b19e59da2f5","savedPayload":{"position":{"x":32438.379902643595,"y":25248.776146069384},"targetPosition":{"x":32101.920302508664,"y":25222.296201261237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"beginRate":{"type":"Begin Rate","name":"New Begin Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ce4c89e0-d04d-42e1-9817-74076e9e7c4c","savedPayload":{"position":{"x":32413.729644731226,"y":25351.451859684454},"targetPosition":{"x":32101.920302508664,"y":25222.296201261237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"endRate":{"type":"End Rate","name":"New End Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"63c332fa-e15c-44ac-96eb-1dbc96754827","savedPayload":{"position":{"x":32358.557315898674,"y":25441.484917572674},"targetPosition":{"x":32101.920302508664,"y":25222.296201261237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"stageDefinedIn":{"type":"Stage Defined In","name":"New Stage Defined In","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"d5138adf-43da-40c0-8c09-3469ce877c08","savedPayload":{"position":{"x":32278.263568100298,"y":25510.062256730744},"targetPosition":{"x":32101.920302508664,"y":25222.296201261237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"stageBaseAsset":{"type":"Stage Base Asset","name":"New Stage Base Asset","project":"Superalgos","targetSize":{"type":"Target Size","name":"New Target Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ec5ef5ba-d046-4d53-b0da-d501792676be","savedPayload":{"position":{"x":22293.229573833494,"y":31973.442425127716},"targetPosition":{"x":21991.099593178667,"y":31620.67078169142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sizePlaced":{"type":"Size Placed","name":"New Size Placed","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1026f6d6-b8dd-4ecf-81b9-11dfab3a552e","savedPayload":{"position":{"x":22169.08772555278,"y":32049.68321371376},"targetPosition":{"x":21991.099593178667,"y":31620.67078169142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"shortcutKey":"r"}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"bb1b0ee5-f7f6-4646-aa36-0e08629a7042","savedPayload":{"position":{"x":22027.703459216333,"y":32083.638845163456},"targetPosition":{"x":21991.099593178667,"y":31620.67078169142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"shortcutKey":""}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9e964d4d-860e-4c93-9399-f06296a74049","savedPayload":{"position":{"x":21882.859316899143,"y":32072.062958673087},"targetPosition":{"x":21991.099593178667,"y":31620.67078169142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"29dd1ff0-989e-403b-8d43-788a8140c9e1","savedPayload":{"position":{"x":32180.708112810033,"y":25550.47104939545},"targetPosition":{"x":32101.920302508664,"y":25222.296201261237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"stageQuotedAsset":{"type":"Stage Quoted Asset","name":"New Stage Quoted Asset","project":"Superalgos","targetSize":{"type":"Target Size","name":"New Target Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8727b1ed-fbd4-4b60-ae3c-05ffc4c2cd86","savedPayload":{"position":{"x":32204.596016123734,"y":25870.565143618725},"targetPosition":{"x":32075.440357700518,"y":25558.755801396168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sizePlaced":{"type":"Size Placed","name":"New Size Placed","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"364ee3d9-3cdc-433c-8716-1d3b6bddd980","savedPayload":{"position":{"x":32101.920302508664,"y":25895.2154015311},"targetPosition":{"x":32075.440357700518,"y":25558.755801396168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"79c2e37f-7081-4d6e-b302-046e2ec27e79","savedPayload":{"position":{"x":31996.65254739915,"y":25886.930649530383},"targetPosition":{"x":32075.440357700518,"y":25558.755801396168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7d0d2ba9-182a-4c72-b8b1-e9ba6d970293","savedPayload":{"position":{"x":31899.097092108885,"y":25846.521856865675},"targetPosition":{"x":32075.440357700518,"y":25558.755801396168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"48381545-119a-422d-b6ea-5868072f8cf4","savedPayload":{"position":{"x":32075.440357700518,"y":25558.755801396168},"targetPosition":{"x":32101.920302508664,"y":25222.296201261237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ecf3bffe-dd3d-4b29-b744-2a9a7dd3f7b7","savedPayload":{"position":{"x":32101.920302508664,"y":25222.296201261237},"targetPosition":{"x":31478.301618063546,"y":24963.9848844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"strategyManageStage":{"type":"Strategy Manage Stage","name":"New Strategy Manage Stage","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a1884450-68d0-41fd-a7af-f55c1fa2ac98","savedPayload":{"position":{"x":22120.096792620818,"y":31317.134330516237},"targetPosition":{"x":21682.101026388067,"y":31470.31370039613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c178d9c3-ab54-474a-aecc-e26890ba579f","savedPayload":{"position":{"x":22143.29349550404,"y":31521.868992591095},"targetPosition":{"x":21682.101026388067,"y":31470.31370039613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"f3b3a0fa-650a-4fdc-b080-98d71a5aeadb","savedPayload":{"position":{"x":22075.434494547764,"y":31717.265434202483},"targetPosition":{"x":21682.101026388067,"y":31470.31370039613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"02e7b009-0743-424a-b019-136886535362","savedPayload":{"position":{"x":21929.023275063388,"y":31863.159241755624},"targetPosition":{"x":21682.101026388067,"y":31470.31370039613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"beginRate":{"type":"Begin Rate","name":"New Begin Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"12c10a40-ec02-4ad5-aa19-7248bc152a09","savedPayload":{"position":{"x":21733.93521217379,"y":31931.45751400179},"targetPosition":{"x":21682.101026388067,"y":31470.31370039613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"endRate":{"type":"End Rate","name":"New End Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6c5e211f-117b-4bdb-b5d0-d4ff9137d20f","savedPayload":{"position":{"x":21529.202485311034,"y":31908.650666578942},"targetPosition":{"x":21682.101026388067,"y":31470.31370039613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"23623d89-4f23-4827-bd18-d10ed8cd91ce","savedPayload":{"position":{"x":31955.598695364464,"y":25441.28196171572},"targetPosition":{"x":31478.301618063546,"y":24963.9848844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"strategyCloseStage":{"type":"Strategy Close Stage","name":"New Strategy Close Stage","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"77de6af4-78af-47eb-9d05-1b45bd90f432","savedPayload":{"position":{"x":21844.164595126953,"y":31634.792695677104},"targetPosition":{"x":21381.186717498567,"y":31671.43106315734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ee5c568c-cc11-4ef1-b53d-528e54090442","savedPayload":{"position":{"x":21832.824359668368,"y":31779.68047104169},"targetPosition":{"x":21381.186717498567,"y":31671.43106315734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"171cfa7e-95e0-4c9d-a682-52b346e1f4d0","savedPayload":{"position":{"x":21777.215167627262,"y":31914.00774805555},"targetPosition":{"x":21381.186717498567,"y":31671.43106315734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"c7c4bde9-a2cf-40db-b7a4-23d84ec57389","savedPayload":{"position":{"x":21682.82889173393,"y":32024.544711257266},"targetPosition":{"x":21381.186717498567,"y":31671.43106315734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"beginRate":{"type":"Begin Rate","name":"New Begin Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ac995378-3294-475b-9863-ec9d01a2c620","savedPayload":{"position":{"x":21558.9108485862,"y":32100.49469735298},"targetPosition":{"x":21381.186717498567,"y":31671.43106315734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"endRate":{"type":"End Rate","name":"New End Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"36633085-158f-42dd-8d0a-22d94af1d95f","savedPayload":{"position":{"x":21417.594931634725,"y":32134.42820399235},"targetPosition":{"x":21381.186717498567,"y":31671.43106315734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"stageDefinedIn":{"type":"Stage Defined In","name":"New Stage Defined In","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"d0add24e-c4fb-4ffa-8d5c-f80712fb2e5f","savedPayload":{"position":{"x":21273.005896804258,"y":32123.02285071015},"targetPosition":{"x":21381.186717498567,"y":31671.43106315734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"stageBaseAsset":{"type":"Stage Base Asset","name":"New Stage Base Asset","project":"Superalgos","targetSize":{"type":"Target Size","name":"New Target Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c3c3f2eb-97a1-49e2-9274-dae429f86bb7","savedPayload":{"position":{"x":21104.097888061267,"y":32530.75159323251},"targetPosition":{"x":21140.370518360374,"y":32066.936156699747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sizePlaced":{"type":"Size Placed","name":"New Size Placed","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"32c52f90-73a0-40a3-b6b5-f66ae5c9bcf7","savedPayload":{"position":{"x":20963.295403862518,"y":32495.615843294712},"targetPosition":{"x":21140.370518360374,"y":32066.936156699747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0b788290-7362-4697-8426-28d8256be6e4","savedPayload":{"position":{"x":20860.18805613958,"y":32411.420566121546},"targetPosition":{"x":21140.370518360374,"y":32066.936156699747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4706a702-a16a-4382-bb31-60dd83460120","savedPayload":{"position":{"x":20744.618975016,"y":32308.71789768758},"targetPosition":{"x":21140.370518360374,"y":32066.936156699747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ccf55d5f-01a0-4b6c-b6bd-6114040e1ea6","savedPayload":{"position":{"x":21138.8005077119,"y":32067.413426429724},"targetPosition":{"x":21381.186717498567,"y":31671.43106315734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"stageQuotedAsset":{"type":"Stage Quoted Asset","name":"New Stage Quoted Asset","project":"Superalgos","targetSize":{"type":"Target Size","name":"New Target Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"81269885-7567-4162-bdae-9ae3aaf02300","savedPayload":{"position":{"x":22010.759419975475,"y":32091.495953908852},"targetPosition":{"x":21833.18285123971,"y":31662.54308115213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sizePlaced":{"type":"Size Placed","name":"New Size Placed","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8d101afe-a76b-452a-831b-3b8c5d45d27f","savedPayload":{"position":{"x":21869.171076940678,"y":32125.63891972362},"targetPosition":{"x":21833.18285123971,"y":31662.54308115213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5560b6f6-b787-4a6c-a082-6a5a9cc16d77","savedPayload":{"position":{"x":21724.356974849616,"y":32114.08070656262},"targetPosition":{"x":21833.18285123971,"y":31662.54308115213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8211c5c6-520d-4296-81b5-888d9c8fb90d","savedPayload":{"position":{"x":21590.06799216204,"y":32058.0553760826},"targetPosition":{"x":21833.18285123971,"y":31662.54308115213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0851ffc1-4ce3-4977-9a68-61e0d1b89d32","savedPayload":{"position":{"x":21033.485599100284,"y":31978.649477433988},"targetPosition":{"x":21381.186717498567,"y":31671.43106315734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c7c28513-1e64-4ab8-8d7d-4448c0027721","savedPayload":{"position":{"x":31736.612934909983,"y":25587.60356885992},"targetPosition":{"x":31478.301618063546,"y":24963.9848844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9404147f-b225-4709-a1b5-394cf9903622","savedPayload":{"position":{"x":31478.301618063546,"y":24963.9848844148},"targetPosition":{"x":31028.301618063546,"y":24963.9848844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingLast":{"type":"Trading Last","name":"New Trading Last","project":"Superalgos","position":{"type":"Position","name":"New Position","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7cb38892-bc86-4771-b74e-edebdc17ec3a","savedPayload":{"position":{"x":20801.966184271852,"y":31510.67691903712},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"22d3c1b5-001d-4ca3-b38e-10f70610e1be","savedPayload":{"position":{"x":20814.236930064577,"y":31588.151358872114},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"df386025-376f-453b-aa1a-2a4ab2888c83","savedPayload":{"position":{"x":20812.86796036338,"y":31666.57958052741},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5f07b765-ee12-4181-85c0-94748b03d839","savedPayload":{"position":{"x":20797.9008706199,"y":31743.578582174618},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"beginRate":{"type":"Begin Rate","name":"New Begin Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d82fcc11-12d7-45e4-8a03-f8b2fe6bd28e","savedPayload":{"position":{"x":20769.790428282282,"y":31816.808788112052},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"endRate":{"type":"End Rate","name":"New End Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e026edaf-074a-4eab-9f95-85ed3bc5003c","savedPayload":{"position":{"x":20729.39075491638,"y":31884.04513558858},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"45078dd6-c7e7-42b0-b0bf-db5927a4b404","savedPayload":{"position":{"x":20677.929374154206,"y":31943.244682209363},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"e5d13ca1-1c13-4c44-9d97-50fd98de5755","savedPayload":{"position":{"x":20616.969914009493,"y":31992.608679706733},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"No Stage\"\n}","project":"Superalgos","id":"20fcc6f8-e21c-4412-9ce8-833da712c35c","savedPayload":{"position":{"x":20548.364596831765,"y":32030.637227996136},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"entryTargetRate":{"type":"Entry Target Rate","name":"New Entry Target Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7a3f4b4f-0ff4-424d-b35f-626ba3ea02e8","savedPayload":{"position":{"x":20474.197960467507,"y":32056.174848881165},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitTargetRate":{"type":"Exit Target Rate","name":"New Exit Target Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"cfedd274-c3ea-4048-95c8-ff040c67fefe","savedPayload":{"position":{"x":20396.723520632513,"y":32068.44559467389},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"stopLoss":{"type":"Stop Loss","name":"New Stop Loss","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"996de0cd-fa45-4173-b6be-3b7c6fef4462","savedPayload":{"position":{"x":20396.989393918997,"y":32510.142353077776},"targetPosition":{"x":20318.295298977213,"y":32067.076624972688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"611661d8-b2d9-47b8-926d-1899598a7330","savedPayload":{"position":{"x":20346.886959840744,"y":32516.167391888535},"targetPosition":{"x":20318.295298977213,"y":32067.076624972688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"stopLossPhase":{"type":"Stop Loss Phase","name":"New Stop Loss Phase","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1e86cfaa-6316-4629-99e5-c19bf7690b00","savedPayload":{"position":{"x":20296.424969037864,"y":32516.544853736792},"targetPosition":{"x":20318.295298977213,"y":32067.076624972688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"stopLossPosition":{"type":"Stop Loss Position","name":"New Stop Loss Position","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"fb0a2f9c-46fc-4a94-a137-bda440bb257e","savedPayload":{"position":{"x":20246.238010323435,"y":32511.2699918208},"targetPosition":{"x":20318.295298977213,"y":32067.076624972688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"initialValue":{"type":"Initial Value","name":"New Initial Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"25512e02-953b-434c-9480-78690e8c1a2b","savedPayload":{"position":{"x":20196.957213822436,"y":32500.409140589705},"targetPosition":{"x":20318.295298977213,"y":32067.076624972688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"finalValue":{"type":"Final Value","name":"New Final Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f492cbaa-6bdf-4ad4-aaff-b501188371a3","savedPayload":{"position":{"x":20149.20231414426,"y":32484.09888154934},"targetPosition":{"x":20318.295298977213,"y":32067.076624972688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dde16cfc-ae9b-4f8f-a994-2023cc79e609","savedPayload":{"position":{"x":20318.295298977213,"y":32067.076624972688},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takeProfit":{"type":"Take Profit","name":"New Take Profit","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6d9c0e84-fb34-4b87-b9f3-ea95c6d2a3cf","savedPayload":{"position":{"x":20241.857295872833,"y":32502.10918554089},"targetPosition":{"x":20241.296297330005,"y":32052.10953522921},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"02b3db46-b6d5-488a-82ce-2587c9e38589","savedPayload":{"position":{"x":20191.469793337925,"y":32499.34249409956},"targetPosition":{"x":20241.296297330005,"y":32052.10953522921},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"takeProfitPhase":{"type":"Take Profit Phase","name":"New Take Profit Phase","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"019e4501-c133-464f-9fbd-8635aed9e325","savedPayload":{"position":{"x":20141.70888800073,"y":32490.951588709824},"targetPosition":{"x":20241.296297330005,"y":32052.10953522921},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"takeProfitPosition":{"type":"Take Profit Position","name":"New Take Profit Position","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"d105ba15-57a8-4330-b1ac-d57d235bc4d0","savedPayload":{"position":{"x":20093.200352117812,"y":32477.041989875484},"targetPosition":{"x":20241.296297330005,"y":32052.10953522921},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"initialValue":{"type":"Initial Value","name":"New Initial Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"284b2b0e-8416-4acb-bc29-ca9530ba679b","savedPayload":{"position":{"x":20046.554208673206,"y":32457.788618872408},"targetPosition":{"x":20241.296297330005,"y":32052.10953522921},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"finalValue":{"type":"Final Value","name":"New Final Value","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7d28caa5-7ba5-4cec-bda5-709cc313fb37","savedPayload":{"position":{"x":20002.35705998545,"y":32433.433598012038},"targetPosition":{"x":20241.296297330005,"y":32052.10953522921},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e9a86fd6-21b5-46db-b551-b4502467025e","savedPayload":{"position":{"x":20241.296297330005,"y":32052.10953522921},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionCounters":{"type":"Position Counters","name":"New Position Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"54222121-067d-4819-969b-ed18bf53b077","savedPayload":{"position":{"x":20168.06609139257,"y":32023.999092891594},"targetPosition":{"x":20266.699599420113,"y":31821.77043247428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"6cfdc33a-accb-4fa6-99d2-cf90bc576452","savedPayload":{"position":{"x":20266.699599420113,"y":31821.77043247428},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionStatistics":{"type":"Position Statistics","name":"New Position Statistics","project":"Superalgos","profitLoss":{"type":"Profit Loss","name":"New Profit Loss","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"00306590-32f1-40b3-9d28-2a311c4907bc","savedPayload":{"position":{"x":20694.358471967727,"y":32961.424061902006},"targetPosition":{"x":20676.718485129004,"y":32624.83306186262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"ROI":{"type":"ROI","name":"New ROI","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c97c73f5-99a0-4267-b0cd-550265dabfc9","savedPayload":{"position":{"x":20606.641242771628,"y":32954.52056624634},"targetPosition":{"x":20676.718485129004,"y":32624.83306186262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"hitFail":{"type":"Hit Fail","name":"New Hit Fail","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"391d41bd-a921-4273-b41e-caf758f04e01","savedPayload":{"position":{"x":20523.69966183407,"y":32925.149412001294},"targetPosition":{"x":20676.718485129004,"y":32624.83306186262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"53d86a40-81ed-41d2-a565-41b35f78a202","savedPayload":{"position":{"x":20451.1860608285,"y":32875.31219479053},"targetPosition":{"x":20676.718485129004,"y":32624.83306186262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"c691ada5-0a55-4c33-9eb7-770dcfe20fd1","savedPayload":{"position":{"x":20394.042121829054,"y":32808.40523860707},"targetPosition":{"x":20535.38030347903,"y":32716.619150234845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1d77229e-c424-492e-a2f3-04e81345d118","savedPayload":{"position":{"x":20535.38030347903,"y":32716.619150234845},"targetPosition":{"x":20676.718485129004,"y":32624.83306186262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ca4c6442-d2f1-4eff-9b4f-03f51bc26246","savedPayload":{"position":{"x":20100.82974391604,"y":31983.599419525694},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionBaseAsset":{"type":"Position Base Asset","name":"New Position Base Asset","project":"Superalgos","beginBalance":{"type":"Begin Balance","name":"New Begin Balance","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a033536f-b761-407b-bfcb-fdb4c6887af6","savedPayload":{"position":{"x":20238.347879991747,"y":33260.24126983032},"targetPosition":{"x":20310.82669468301,"y":32590.50199325208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"endBalance":{"type":"End Balance","name":"New End Balance","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a75ae534-5dc2-4af6-883e-15221b92911c","savedPayload":{"position":{"x":20108.585741595307,"y":33233.04919416387},"targetPosition":{"x":20310.82669468301,"y":32590.50199325208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"entryTargetSize":{"type":"Entry Target Size","name":"New Entry Target Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6d04c944-0069-4834-aebf-7ad11f6e87d9","savedPayload":{"position":{"x":19986.99340511704,"y":33181.135191738394},"targetPosition":{"x":20310.82669468301,"y":32590.50199325208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitTargetSize":{"type":"Exit Target Size","name":"New Exit Target Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1de6e566-f52e-447a-9558-6ea566eb44e6","savedPayload":{"position":{"x":19877.929519141497,"y":33106.518003536105},"targetPosition":{"x":20310.82669468301,"y":32590.50199325208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"profitLoss":{"type":"Profit Loss","name":"New Profit Loss","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"299519f3-5af9-43f7-9d56-aebde2eb1646","savedPayload":{"position":{"x":19785.536248021042,"y":33012.045973771725},"targetPosition":{"x":20310.82669468301,"y":32590.50199325208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"ROI":{"type":"ROI","name":"New ROI","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a7b1ab74-2854-470a-8dce-318368b447d0","savedPayload":{"position":{"x":19713.3405068739,"y":32901.2956806342},"targetPosition":{"x":20310.82669468301,"y":32590.50199325208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hitFail":{"type":"Hit Fail","name":"New Hit Fail","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"e9dbeafb-424f-4aca-8560-02f8b66d584c","savedPayload":{"position":{"x":19664.063980894483,"y":32778.211899705995},"targetPosition":{"x":20310.82669468301,"y":32590.50199325208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"75f6f07f-522c-45ed-ad5d-c5b3cb7c6c07","savedPayload":{"position":{"x":20041.630197295264,"y":31932.138038763514},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"positionQuotedAsset":{"type":"Position Quoted Asset","name":"New Position Quoted Asset","project":"Superalgos","beginBalance":{"type":"Begin Balance","name":"New Begin Balance","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"814f50a4-a3c2-441e-9380-7adc1f50fe63","savedPayload":{"position":{"x":20335.241009547066,"y":33140.10007948894},"targetPosition":{"x":20489.746331300747,"y":32483.93943808889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"endBalance":{"type":"End Balance","name":"New End Balance","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c19014a7-b345-4e4b-bc3c-9b7d4e44ec00","savedPayload":{"position":{"x":20210.199195155725,"y":33097.34964377987},"targetPosition":{"x":20489.746331300747,"y":32483.93943808889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"entryTargetSize":{"type":"Entry Target Size","name":"New Entry Target Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"eb40f77a-bf19-44c8-9842-42f81c8450d0","savedPayload":{"position":{"x":20095.9002204346,"y":33031.0261978705},"targetPosition":{"x":20489.746331300747,"y":32483.93943808889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitTargetSize":{"type":"Exit Target Size","name":"New Exit Target Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2ae48a53-42f3-470f-afb7-b1201231ab67","savedPayload":{"position":{"x":19996.73653088262,"y":32943.67851459252},"targetPosition":{"x":20489.746331300747,"y":32483.93943808889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"profitLoss":{"type":"Profit Loss","name":"New Profit Loss","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d89b53ac-e902-4399-871d-eb444acb4b9c","savedPayload":{"position":{"x":19916.51893147762,"y":32838.66331642914},"targetPosition":{"x":20489.746331300747,"y":32483.93943808889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"ROI":{"type":"ROI","name":"New ROI","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4013695d-57f7-4d35-b926-a716130d5bd7","savedPayload":{"position":{"x":19858.3301395782,"y":32720.016278552597},"targetPosition":{"x":20489.746331300747,"y":32483.93943808889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"hitFail":{"type":"Hit Fail","name":"New Hit Fail","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"6a12c16d-6fd8-47b4-ae90-688b2990dd2d","savedPayload":{"position":{"x":19824.406317824396,"y":32592.296940090448},"targetPosition":{"x":20489.746331300747,"y":32483.93943808889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5d48e215-20ac-47e3-9e19-4079bd8aa08c","savedPayload":{"position":{"x":19992.266199797887,"y":31871.178578618805},"targetPosition":{"x":20365.333107447655,"y":31619.541772056968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"aafaaba0-bc67-4f12-a749-f1f1c02d3a17","savedPayload":{"position":{"x":30986.333107447655,"y":25764.79177205697},"targetPosition":{"x":30803.301618063546,"y":25353.6963161178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"strategy":{"type":"Strategy","name":"New Strategy","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"33eefe8a-94c7-4f43-b32b-cab99cf96e76","savedPayload":{"position":{"x":21285.805286229595,"y":32082.276531957134},"targetPosition":{"x":20615.037364829004,"y":32131.12584022031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"19e984be-3241-4542-ad9b-b271872888ae","savedPayload":{"position":{"x":21278.06134626283,"y":32244.198179875435},"targetPosition":{"x":20615.037364829004,"y":32131.12584022031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"97723b40-10c4-4bb4-b4d8-4f3e185f9662","savedPayload":{"position":{"x":21231.694162057967,"y":32399.672499270375},"targetPosition":{"x":20615.037364829004,"y":32131.12584022031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"48b58adb-c7d2-4635-95cb-45ea9eeda108","savedPayload":{"position":{"x":21149.477952435103,"y":32539.487132686394},"targetPosition":{"x":20615.037364829004,"y":32131.12584022031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"beginRate":{"type":"Begin Rate","name":"New Begin Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ef8bbe43-9fb3-4e9e-84d9-3725e74ee42c","savedPayload":{"position":{"x":21036.189946197745,"y":32655.526510526543},"targetPosition":{"x":20615.037364829004,"y":32131.12584022031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"endRate":{"type":"End Rate","name":"New End Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"84b9ef17-7c4e-472a-ac52-46bb6ae33b64","savedPayload":{"position":{"x":20898.424439697992,"y":32741.078217921015},"targetPosition":{"x":20615.037364829004,"y":32131.12584022031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"50ede031-76b4-4eb6-ae73-0d56619ed6f3","savedPayload":{"position":{"x":20744.18769724072,"y":32791.21277864253},"targetPosition":{"x":20615.037364829004,"y":32131.12584022031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"24635c41-8cf9-45ba-8bbb-71c2d1e21442","savedPayload":{"position":{"x":20582.769564542465,"y":32802.961282392105},"targetPosition":{"x":20615.037364829004,"y":32131.12584022031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"No Stage\"\n}","project":"Superalgos","id":"3a505e32-35a6-4c5f-a5de-f20243cfc849","savedPayload":{"position":{"x":20422.93026801634,"y":32775.68597900595},"targetPosition":{"x":20615.037364829004,"y":32131.12584022031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"index":{"type":"Index","name":"New Index","config":"{\n\"initialValue\": -1\n}","project":"Superalgos","id":"442baa35-4bf6-4b8b-8d3d-387e31345ab7","savedPayload":{"position":{"x":20274.230740039067,"y":32710.863763128196},"targetPosition":{"x":20615.037364829004,"y":32131.12584022031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"strategyName":{"type":"Strategy Name","name":"New Strategy Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"a1afe24b-0e40-4faa-adf1-cb0f629a19d7","savedPayload":{"position":{"x":20145.388045047534,"y":32612.37691644206},"targetPosition":{"x":20615.037364829004,"y":32131.12584022031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"strategyCounters":{"type":"Strategy Counters","name":"New Strategy Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"72a7b066-ea44-44cc-bc9c-9645bb103846","savedPayload":{"position":{"x":19757.873562829594,"y":32663.071949346137},"targetPosition":{"x":20043.679331309762,"y":32485.56154295631},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"89864f0c-2efe-4101-98ef-b9248a524207","savedPayload":{"position":{"x":20043.679331309762,"y":32485.56154295631},"targetPosition":{"x":20615.037364829004,"y":32131.12584022031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"886fcf92-e98b-4ba3-a5f7-29b2da8ee6c8","savedPayload":{"position":{"x":30709.741357195555,"y":25793.862736448013},"targetPosition":{"x":30803.301618063546,"y":25353.6963161178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"limitOrders":{"type":"Limit Order","name":"New Limit Order","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5c4a87d7-7e76-4cb4-b02f-a5b96faff9c9","savedPayload":{"position":{"x":20082.41964389318,"y":31893.604798479028},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"683fdd1f-306a-4e4e-bb90-a6152496f5be","savedPayload":{"position":{"x":20007.85732158386,"y":31930.16098427379},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"014b85ce-5670-4737-9ffe-e475a31abc7e","savedPayload":{"position":{"x":19927.84738299084,"y":31952.39394076546},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7788884e-d628-4828-9f3c-d03b8ea0b2ed","savedPayload":{"position":{"x":19845.114470611556,"y":31959.546551286214},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0f9906dc-ddff-4b6e-8a82-558d6c67e16e","savedPayload":{"position":{"x":19762.475954549896,"y":31951.375242263377},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"99919a0d-bd78-4a50-946a-bc033bfca7a0","savedPayload":{"position":{"x":19682.745990356365,"y":31928.15827782532},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"b88600a1-1a4f-49e8-aef5-9f66dd632842","savedPayload":{"position":{"x":19608.63968633602,"y":31890.6862838503},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"e161b4f7-99f0-43ee-9310-c06cab1b1ab0","savedPayload":{"position":{"x":19542.680643791562,"y":31840.235324150424},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"93510545-cf4c-4d2f-bdac-f5100e113f0c","savedPayload":{"position":{"x":19487.115018807686,"y":31778.52344564903},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"1ce311ec-e3ec-44a1-85c0-5562d626a602","savedPayload":{"position":{"x":19443.8350320996,"y":31707.652172353228},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"6678ca6b-6f7d-4fb8-ad26-becd97592a80","savedPayload":{"position":{"x":19414.314531706026,"y":31630.034940474397},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6983f5e7-d2a4-43b2-996a-2d07bf022251","savedPayload":{"position":{"x":19399.55880286192,"y":31548.314911752554},"targetPosition":{"x":19623.72262473032,"y":31528.93500036592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"b159cae7-c3d8-4bc5-bccf-217d5ed764f5","savedPayload":{"position":{"x":19623.72262473032,"y":31528.93500036592},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"84601506-b411-4098-b89b-a0fc25dab789","savedPayload":{"position":{"x":19400.07033421554,"y":31465.27496375345},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"98690132-d002-4a52-a440-e7bbeffa67b5","savedPayload":{"position":{"x":19265.424520356144,"y":31551.082930833843},"targetPosition":{"x":19415.831706180135,"y":31383.742922310754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b1d09bc5-fb51-49ec-ac2c-b717d549e76d","savedPayload":{"position":{"x":19207.713405641945,"y":31469.251828169123},"targetPosition":{"x":19415.831706180135,"y":31383.742922310754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ecd9ad56-cd63-469b-91ae-adba390bf171","savedPayload":{"position":{"x":19191.222672752785,"y":31370.48463800124},"targetPosition":{"x":19415.831706180135,"y":31383.742922310754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c8d6b34b-b656-4ef7-aeca-3faa55f2408f","savedPayload":{"position":{"x":19219.218513582935,"y":31274.343413643044},"targetPosition":{"x":19415.831706180135,"y":31383.742922310754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"843d0988-74dd-4cef-8789-3f8cfaba0288","savedPayload":{"position":{"x":19286.156008509526,"y":31199.870103673413},"targetPosition":{"x":19415.831706180135,"y":31383.742922310754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e9960576-d623-492b-b881-f7b5ec209bf3","savedPayload":{"position":{"x":19378.777365727845,"y":31161.81506048704},"targetPosition":{"x":19415.831706180135,"y":31383.742922310754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6bd8cfef-5ca4-4c17-b492-5f377b2da318","savedPayload":{"position":{"x":19415.831706180135,"y":31383.742922310754},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"41aa065e-0d3e-4c56-bc5a-71f492deadfa","savedPayload":{"position":{"x":19267.711320595463,"y":31443.34874231666},"targetPosition":{"x":19446.306184137142,"y":31306.49526330889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a3d7adcb-33e5-4707-bc03-12fc7c5f1a62","savedPayload":{"position":{"x":19226.01927293567,"y":31352.306580178374},"targetPosition":{"x":19446.306184137142,"y":31306.49526330889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b998c6bd-9e7e-4950-9b74-c58a4f613b4c","savedPayload":{"position":{"x":19227.957749681005,"y":31252.190924895156},"targetPosition":{"x":19446.306184137142,"y":31306.49526330889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e1810107-ca1f-4508-98a9-ae31ed8cb55a","savedPayload":{"position":{"x":19273.142811738187,"y":31162.830909833785},"targetPosition":{"x":19446.306184137142,"y":31306.49526330889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"314e7ea2-53a9-4e00-a530-77667403bbf1","savedPayload":{"position":{"x":19352.625003408375,"y":31101.92538190583},"targetPosition":{"x":19446.306184137142,"y":31306.49526330889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1dcd1b89-604e-4b52-b530-20d94f682e2f","savedPayload":{"position":{"x":19450.661901846182,"y":31081.537427874697},"targetPosition":{"x":19446.306184137142,"y":31306.49526330889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ececab38-e728-45bf-bab7-0ec18ab1f00c","savedPayload":{"position":{"x":19446.306184137142,"y":31306.49526330889},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"90fb70dd-b116-4dad-b100-10176078d976","savedPayload":{"position":{"x":19274.82022280906,"y":31300.398170038767},"targetPosition":{"x":19490.45599628984,"y":31236.162563126818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"85f98313-ef05-4b22-abd4-019c5a150669","savedPayload":{"position":{"x":19278.2462485338,"y":31161.382733243896},"targetPosition":{"x":19490.45599628984,"y":31236.162563126818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"shortcutKey":""}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"688b2648-42c0-448d-ba4d-48c4edea9317","savedPayload":{"position":{"x":19362.729185157306,"y":31050.930649791364},"targetPosition":{"x":19490.45599628984,"y":31236.162563126818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"1f12b4f2-a850-4396-9f03-00b04c39e43a","savedPayload":{"position":{"x":19495.999422358796,"y":31011.230861431795},"targetPosition":{"x":19493.227709324317,"y":31123.696712279307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"46b38d34-1481-42cf-91b6-e8f969d5667d","savedPayload":{"position":{"x":19493.227709324317,"y":31123.696712279307},"targetPosition":{"x":19490.45599628984,"y":31236.162563126818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8ddd03e8-4355-4f1f-b9c0-1eaef13de32e","savedPayload":{"position":{"x":19490.45599628984,"y":31236.162563126818},"targetPosition":{"x":19847.886446598717,"y":31509.555088979287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0f344181-126b-4235-97c5-92b1f8caa20d","savedPayload":{"position":{"x":30468.886446598717,"y":25654.805088979287},"targetPosition":{"x":30803.301618063546,"y":25353.6963161178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"marketOrders":{"type":"Market Order","name":"New Market Order","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4e19c5cd-06c8-41aa-88b6-c3e53500f2ce","savedPayload":{"position":{"x":19698.76935211298,"y":31704.042020800982},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"8638e802-8f3e-4eef-806a-689732daa685","savedPayload":{"position":{"x":19616.959979334453,"y":31689.78996292837},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"34cfab6e-fa47-41d1-9c7c-fc50251db9d6","savedPayload":{"position":{"x":19539.16237535314,"y":31660.74814062353},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"746e3b6d-1121-456a-a236-95f0e8f02bc9","savedPayload":{"position":{"x":19468.025844264674,"y":31617.905538313214},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"10b91c50-0ff3-4746-89f3-ea5a2bf10b78","savedPayload":{"position":{"x":19405.97285531641,"y":31562.72110943508},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b9ff8ac5-6b93-4268-95fd-3e64a9d8ded1","savedPayload":{"position":{"x":19355.116548622627,"y":31497.07409352812},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"b6040957-3530-47b9-8798-1be2aa79ba91","savedPayload":{"position":{"x":19317.188774712362,"y":31423.20002098415},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"d2122053-2ec2-4879-a1eb-a05af04f6a37","savedPayload":{"position":{"x":19293.481118436783,"y":31343.614584741466},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"7c7100ce-fabe-4f5b-a875-0f73ec1bea7a","savedPayload":{"position":{"x":19284.800915596148,"y":31261.027971379102},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"a78a397d-2efc-41d9-b887-b3673c4a6caf","savedPayload":{"position":{"x":19291.443760087444,"y":31178.252568963377},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"6202ca96-5782-40e8-9a43-5187eab3825c","savedPayload":{"position":{"x":19313.183437808733,"y":31098.107194545424},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7e7cbae6-c274-40d6-a41f-089e5fdc39f5","savedPayload":{"position":{"x":19349.279630109082,"y":31023.32110272725},"targetPosition":{"x":19542.023197628452,"y":31139.402613657745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"f6d8f35f-224e-4135-8685-6341d3e128c9","savedPayload":{"position":{"x":19542.023197628452,"y":31139.402613657745},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"1f66bae9-8ab5-4096-baf0-f03304ae3761","savedPayload":{"position":{"x":19398.50312445232,"y":30956.441044169704},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"be9f87f1-2617-4b74-a034-1ea4061af8dd","savedPayload":{"position":{"x":19247.871262226123,"y":30822.448999479027},"targetPosition":{"x":19459.17767377566,"y":30899.744539053165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"05925960-9b83-4221-a42f-6b1b3101f37f","savedPayload":{"position":{"x":19270.36903078973,"y":30777.36685998622},"targetPosition":{"x":19459.17767377566,"y":30899.744539053165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f2f1aca9-c603-4c63-ae7a-ceec8bcf539f","savedPayload":{"position":{"x":19302.334453108888,"y":30738.421248326515},"targetPosition":{"x":19459.17767377566,"y":30899.744539053165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"14a0e462-f77a-4d50-a9ec-2f194bf6a422","savedPayload":{"position":{"x":19342.16464943253,"y":30707.56506009125},"targetPosition":{"x":19459.17767377566,"y":30899.744539053165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b5cd9cdf-7786-4d90-bfab-8fd9f2c6b55e","savedPayload":{"position":{"x":19387.862367400576,"y":30686.345553402745},"targetPosition":{"x":19459.17767377566,"y":30899.744539053165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"561f0374-fada-47b9-87bb-8552ec85d183","savedPayload":{"position":{"x":19437.13613261705,"y":30675.82676293132},"targetPosition":{"x":19459.17767377566,"y":30899.744539053165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6078ba38-48d9-4123-9464-b671acb313df","savedPayload":{"position":{"x":19459.17767377566,"y":30899.744539053165},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a74f0e67-f759-4263-a1a3-25a069a8d57d","savedPayload":{"position":{"x":19335.731578855182,"y":30740.355431498712},"targetPosition":{"x":19529.237079072995,"y":30855.162318859424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e40ea964-d259-4779-acbc-6133cbbdf983","savedPayload":{"position":{"x":19366.13010155007,"y":30700.1748552266},"targetPosition":{"x":19529.237079072995,"y":30855.162318859424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"66ba7df9-f806-4985-b1cd-d6ce3a36bf0e","savedPayload":{"position":{"x":19404.707489173376,"y":30667.765997552327},"targetPosition":{"x":19529.237079072995,"y":30855.162318859424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"bd853d02-c376-4235-9b0a-f323af11a6a8","savedPayload":{"position":{"x":19449.529310424532,"y":30644.753973927283},"targetPosition":{"x":19529.237079072995,"y":30855.162318859424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"195c9857-33af-4dfa-b5a9-cafc956b6b67","savedPayload":{"position":{"x":19498.34801202638,"y":30632.292703305866},"targetPosition":{"x":19529.237079072995,"y":30855.162318859424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"beee6763-fc4f-42a5-acfa-b28a7d4c7091","savedPayload":{"position":{"x":19548.715620431456,"y":30631.007045830782},"targetPosition":{"x":19529.237079072995,"y":30855.162318859424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e06730c6-fa37-4125-b497-79711fc685cb","savedPayload":{"position":{"x":19529.237079072995,"y":30855.162318859424},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ce8ba99f-24ae-4415-8bec-0ff5e4c93c28","savedPayload":{"position":{"x":23991.509710590006,"y":29434.770734439975},"targetPosition":{"x":23623.392979659846,"y":29611.849799447322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2440e044-a31c-47ff-834f-e7079a5f9d2e","savedPayload":{"position":{"x":24028.250833522186,"y":29557.78176040273},"targetPosition":{"x":23623.392979659846,"y":29611.849799447322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"056b2fe1-a3af-4f7b-a135-47b18de2b6a4","savedPayload":{"position":{"x":24025.645249175825,"y":29686.3496213003},"targetPosition":{"x":23623.392979659846,"y":29611.849799447322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"0b0697e8-0423-45fe-b3bb-fc7c6214e514","savedPayload":{"position":{"x":24063.727043978433,"y":29851.09750393271},"targetPosition":{"x":23884.434469555476,"y":29753.48764158327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f0074bb8-e239-43eb-8371-4de534b53651","savedPayload":{"position":{"x":23884.434469555476,"y":29753.48764158327},"targetPosition":{"x":23623.392979659846,"y":29611.849799447322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"37e193a3-bd64-4a96-a0f4-697cd09d3590","savedPayload":{"position":{"x":19606.295551323918,"y":30824.212577626684},"targetPosition":{"x":19734.766765147822,"y":31255.48412458824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1eb34afa-52d4-486e-83ec-e52dfaf6448a","savedPayload":{"position":{"x":30355.766765147822,"y":25400.73412458824},"targetPosition":{"x":30803.301618063546,"y":25353.6963161178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"44fbb36a-4652-4bf8-badd-47c574fe7774","savedPayload":{"position":{"x":30803.301618063546,"y":25353.6963161178},"targetPosition":{"x":31028.301618063546,"y":24963.9848844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"exchangeOrders":{"type":"Exchange Orders","name":"New Exchange Orders","project":"Superalgos","marketBuyOrders":{"type":"Market Buy Orders","name":"New Market Buy Orders","project":"Superalgos","marketOrders":[{"type":"Market Order","name":"Open Buy Market Order","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3cd2b72e-afd0-4552-a6fe-01c7a47f3501","savedPayload":{"position":{"x":19274.688239220446,"y":31313.124462082626},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"913dc1ca-9313-4039-b832-bb4f08c75aef","savedPayload":{"position":{"x":19151.374041476716,"y":31330.71342304867},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"63f4f9e6-563e-4fc7-842c-08cf6937be11","savedPayload":{"position":{"x":19026.927539189124,"y":31325.343974154326},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"fded8848-e5f2-448a-bb2a-8cbb6dae639e","savedPayload":{"position":{"x":18905.586608735946,"y":31297.198965541756},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b51ba6d2-3ed2-49b2-bbc2-de3930bb877d","savedPayload":{"position":{"x":18791.483369971364,"y":31247.23684172304},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9ddd0b24-7dfa-499d-8481-8d4e1d182db5","savedPayload":{"position":{"x":18688.503471839747,"y":31177.15900290187},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"c38e8adb-0f45-403c-9c6f-7647bb881f4d","savedPayload":{"position":{"x":18600.153771261197,"y":31089.351865830184},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"e6caddd6-d5f5-4c33-b742-6b49a20840dd","savedPayload":{"position":{"x":18529.442911325128,"y":30986.80559724792},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"0a3420c6-4177-4f3d-916c-a148ca850968","savedPayload":{"position":{"x":18478.77886555834,"y":30873.012287340942},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"fc76ed8e-8212-497d-9fc0-f0e032bb4956","savedPayload":{"position":{"x":18449.88693727459,"y":30751.847030798104},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"e8c6e52e-ba3b-45e9-9bb4-07c022209252","savedPayload":{"position":{"x":18443.751006439532,"y":30627.435965109275},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"18a54f80-526e-4059-88e0-d45e65990c67","savedPayload":{"position":{"x":18460.58002481852,"y":30504.015759901842},"targetPosition":{"x":18789.351803028792,"y":30580.27431910968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"ff67287a-0a4e-4551-aa03-041288fc28cb","savedPayload":{"position":{"x":18789.351803028792,"y":30580.27431910968},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"49e850c8-3501-4d41-899e-96224d1ee461","savedPayload":{"position":{"x":18499.80090037484,"y":30385.789342237935},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1d33a196-fae3-4a34-a22f-56891d939f0d","savedPayload":{"position":{"x":18222.80305079629,"y":30264.46003936913},"targetPosition":{"x":18560.078013231676,"y":30276.78277097414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d7a3341e-e7d6-4363-bab2-f45927dc7ba7","savedPayload":{"position":{"x":18234.001304018984,"y":30189.718256336884},"targetPosition":{"x":18560.078013231676,"y":30276.78277097414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"57d4e7ab-d804-40f6-a3f2-342b11da6c71","savedPayload":{"position":{"x":18261.55040501936,"y":30119.342251618305},"targetPosition":{"x":18560.078013231676,"y":30276.78277097414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ae1e20cb-745b-4817-9ae3-8ed9c126034f","savedPayload":{"position":{"x":18304.068926838238,"y":30056.860971954586},"targetPosition":{"x":18560.078013231676,"y":30276.78277097414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9d44c42c-ba10-4660-b3c1-44c26373f1f2","savedPayload":{"position":{"x":18359.42481324973,"y":30005.40748960716},"targetPosition":{"x":18560.078013231676,"y":30276.78277097414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e9d13246-5f13-4252-ba8a-bf842424cd98","savedPayload":{"position":{"x":18424.84228896311,"y":29967.561897031977},"targetPosition":{"x":18560.078013231676,"y":30276.78277097414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9b9934b9-3d46-442c-a5c2-47534e7861bb","savedPayload":{"position":{"x":18560.078013231676,"y":30276.78277097414},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1a093948-32c1-461a-8f5a-386ee7dbe1f3","savedPayload":{"position":{"x":18310.090779324837,"y":30106.621108754414},"targetPosition":{"x":18639.358698605116,"y":30180.708134155873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c374a797-47e4-4d35-9340-9627dbae21da","savedPayload":{"position":{"x":18334.83212759912,"y":30035.209620241367},"targetPosition":{"x":18639.358698605116,"y":30180.708134155873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f40cc3e1-35f3-4e54-a8ef-dea041b8f86a","savedPayload":{"position":{"x":18374.84370973586,"y":29971.09403476488},"targetPosition":{"x":18639.358698605116,"y":30180.708134155873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"11b292ec-138c-4b98-a479-292abd79eba7","savedPayload":{"position":{"x":18428.11917793291,"y":29917.489375504105},"targetPosition":{"x":18639.358698605116,"y":30180.708134155873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"05cf852d-17ca-4143-81ef-2b66dc27ae64","savedPayload":{"position":{"x":18491.987077755886,"y":29877.08360390795},"targetPosition":{"x":18639.358698605116,"y":30180.708134155873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3e0af072-76d7-432a-8b37-2d7d1197205b","savedPayload":{"position":{"x":18563.244806018538,"y":29851.902834084052},"targetPosition":{"x":18639.358698605116,"y":30180.708134155873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1b6e6937-8c99-46a5-99bd-f1c19c4aa6e8","savedPayload":{"position":{"x":18639.358698605116,"y":30180.708134155873},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f67adf1e-206a-4864-95e8-e2ee7a7c8fd2","savedPayload":{"position":{"x":20665.928345186298,"y":28657.590477472215},"targetPosition":{"x":20471.826272775474,"y":29017.30535041722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a44a1653-e899-4fb3-b8c6-ab452221676b","savedPayload":{"position":{"x":20767.89547097239,"y":28735.369465289463},"targetPosition":{"x":20471.826272775474,"y":29017.30535041722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"feb097b5-2ac2-4b21-816b-074bbe292378","savedPayload":{"position":{"x":20840.70270207213,"y":28840.956085931102},"targetPosition":{"x":20471.826272775474,"y":29017.30535041722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"cd91cb19-8193-4a92-8238-0ae05b0abfe7","savedPayload":{"position":{"x":20944.425663610396,"y":28955.054963328468},"targetPosition":{"x":20741.40137692579,"y":28981.662836711992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"00dfb443-2533-489f-a0c6-a1110ed94c7c","savedPayload":{"position":{"x":20741.40137692579,"y":28981.662836711992},"targetPosition":{"x":20471.826272775474,"y":29017.30535041722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ef52d686-c0de-4467-9620-591012e62d45","savedPayload":{"position":{"x":18734.943147841466,"y":30100.83713831115},"targetPosition":{"x":19118.123581239066,"y":30656.53287831752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3","savedPayload":{"position":{"x":29739.123581239066,"y":24801.782878317525},"targetPosition":{"x":30355.766765147822,"y":24527.23564424136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Market Order","name":"Market Buy Order #2","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c3e4801b-1175-4110-9dad-7c77890b5251","savedPayload":{"position":{"x":18698.33763148378,"y":30449.115361973192},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"c79c56d6-c202-40fb-a179-970b96ffb32c","savedPayload":{"position":{"x":18621.448045589157,"y":30351.116614562845},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"22593cb5-8c92-48a4-88fc-aba10a5d8d9a","savedPayload":{"position":{"x":18563.874873592184,"y":30240.658057722503},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1e28e08a-bc3f-49bf-9f57-1fc67241081d","savedPayload":{"position":{"x":18527.57870081381,"y":30121.50122512492},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a2a427a2-c57b-451e-b844-97b983781bdf","savedPayload":{"position":{"x":18513.795549885548,"y":29997.703859791356},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3f8c5c95-f622-4dce-a111-ba139e53f34d","savedPayload":{"position":{"x":18522.994789481185,"y":29873.481732519656},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"925cb3cc-166a-4db5-aed8-217d3634c1e2","savedPayload":{"position":{"x":18554.86315052957,"y":29753.065078866042},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"66821726-82b4-43c9-9b52-c01ae5a6e421","savedPayload":{"position":{"x":18608.315394217083,"y":29640.55454354683},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"2b460638-d6e8-431f-a14e-41d40cab2494","savedPayload":{"position":{"x":18681.531268493844,"y":29539.781537900803},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"b49fd1ee-ea92-4687-9a54-ac215d966725","savedPayload":{"position":{"x":18772.017494574124,"y":29454.17776577134},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"a50280fa-32e2-45db-b575-1737b08a69a4","savedPayload":{"position":{"x":18876.692672555022,"y":29386.6583609479},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8f794d98-218a-4f47-b59d-7582b04f21c6","savedPayload":{"position":{"x":18991.99221479444,"y":29339.52261578115},"targetPosition":{"x":19090.336254369588,"y":29662.376607362545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"eabd1631-8836-47db-98b2-b99d794e125b","savedPayload":{"position":{"x":19090.336254369588,"y":29662.376607362545},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"5afe9f6b-f429-46eb-8440-3380f1f6d449","savedPayload":{"position":{"x":19113.98973366797,"y":29314.375681539634},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c0e36342-f7ec-4fd0-a2bd-e1ca2349fece","savedPayload":{"position":{"x":19080.56506738654,"y":29013.823855576542},"targetPosition":{"x":19238.530749990274,"y":29312.073906908532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8378ccb4-daee-4ea7-bbde-a05b19a815db","savedPayload":{"position":{"x":19150.892476827954,"y":28986.150935829282},"targetPosition":{"x":19238.530749990274,"y":29312.073906908532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f4beed06-e887-4746-ae63-36c076452b2b","savedPayload":{"position":{"x":19225.614435231284,"y":28974.821154787744},"targetPosition":{"x":19238.530749990274,"y":29312.073906908532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c5548fa3-6d39-4b8b-9b83-479b33dce985","savedPayload":{"position":{"x":19300.984071590465,"y":28980.40263498239},"targetPosition":{"x":19238.530749990274,"y":29312.073906908532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"acfb692f-cc8b-4385-b7e9-f69596075365","savedPayload":{"position":{"x":19373.22203762225,"y":29002.615497690036},"targetPosition":{"x":19238.530749990274,"y":29312.073906908532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b1824d29-63f5-4245-8d82-50acbe1c7e6a","savedPayload":{"position":{"x":19438.70602007033,"y":29040.345897221683},"targetPosition":{"x":19238.530749990274,"y":29312.073906908532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"98802c83-3a16-4dff-b385-591e59949e3f","savedPayload":{"position":{"x":19238.530749990274,"y":29312.073906908532},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3e9d6b2d-5df3-4dac-a271-a8b6581c4305","savedPayload":{"position":{"x":19260.901455269322,"y":29010.49778061355},"targetPosition":{"x":19361.374168820978,"y":29332.69567606224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4225b562-96e6-41f8-80ba-ff36fd97bbff","savedPayload":{"position":{"x":19335.11629258082,"y":28996.21867248643},"targetPosition":{"x":19361.374168820978,"y":29332.69567606224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0200f5ed-e48e-4c8c-9bc1-41fc0643db8c","savedPayload":{"position":{"x":19410.647809450347,"y":28998.81192632421},"targetPosition":{"x":19361.374168820978,"y":29332.69567606224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4522d317-dc29-48c7-9019-f56dc19f86da","savedPayload":{"position":{"x":19483.70854022991,"y":29018.14750555098},"targetPosition":{"x":19361.374168820978,"y":29332.69567606224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4d5524ae-0dbd-482a-bfbb-cfb357a74cbe","savedPayload":{"position":{"x":19550.634914803177,"y":29053.25584348596},"targetPosition":{"x":19361.374168820978,"y":29332.69567606224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2bc7e9dd-86ec-482b-a5f7-346a7d06b4fd","savedPayload":{"position":{"x":19608.070965288847,"y":29102.376461465436},"targetPosition":{"x":19361.374168820978,"y":29332.69567606224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e3fdab87-ca49-479a-8a43-d4dde949fbe3","savedPayload":{"position":{"x":19361.374168820978,"y":29332.69567606224},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"238be086-0999-4feb-b230-b480537fd34f","savedPayload":{"position":{"x":19468.982424814192,"y":29038.168397706148},"targetPosition":{"x":19478.336704866244,"y":29375.5387393853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c99d1a46-a434-4cbe-a22e-e58ed5f50ba6","savedPayload":{"position":{"x":19573.69342484443,"y":29051.789846020394},"targetPosition":{"x":19478.336704866244,"y":29375.5387393853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"305db308-40c2-446b-80d6-2dcfd0b2eac1","savedPayload":{"position":{"x":19669.07024473387,"y":29097.102091708373},"targetPosition":{"x":19478.336704866244,"y":29375.5387393853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"6cd597c1-85da-4694-ae90-6466c7e32cfa","savedPayload":{"position":{"x":19745.776736822347,"y":29169.669656453174},"targetPosition":{"x":19612.056720844295,"y":29272.604197919238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7474b7a-3366-4e8f-8112-c698e76bdda8","savedPayload":{"position":{"x":19612.056720844295,"y":29272.604197919238},"targetPosition":{"x":19478.336704866244,"y":29375.5387393853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"caef76b7-9fa7-4d01-bddb-6fe620392bce","savedPayload":{"position":{"x":19478.336704866244,"y":29375.5387393853},"targetPosition":{"x":19188.680293944733,"y":29985.23059894394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f9d549de-24f3-4dc8-8c09-33d6b301280d","savedPayload":{"position":{"x":30173.73794141346,"y":24394.98396247555},"targetPosition":{"x":30355.766765147822,"y":24527.23564424136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a5823c2e-46a8-4824-a267-5606466e19db","savedPayload":{"position":{"x":30355.766765147822,"y":24527.23564424136},"targetPosition":{"x":30803.301618063546,"y":24574.2734527118},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"marketSellOrders":{"type":"Market Sell Orders","name":"New Market Sell Orders","project":"Superalgos","marketOrders":[{"type":"Market Order","name":"Close Sell Market Order","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9e62e429-ace2-469c-8d43-ddb407499fa5","savedPayload":{"position":{"x":18928.365435412346,"y":30610.794435169533},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"4c89aeee-df1f-4f7e-b049-877f473d8c4e","savedPayload":{"position":{"x":18818.26362193097,"y":30552.54193667241},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"fbfd7a04-bfa3-4e4e-a607-42a7d3ba92b5","savedPayload":{"position":{"x":18720.740369562824,"y":30475.050142522436},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"99a80e5b-0bde-4f49-a81c-a0e88b2c118f","savedPayload":{"position":{"x":18639.116715701046,"y":30380.95794282821},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"90744b76-8917-4e5e-9313-87e7487efcfc","savedPayload":{"position":{"x":18576.172255981124,"y":30273.46953459918},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d1d02b18-2e2a-4646-8b0d-f7144bcdd945","savedPayload":{"position":{"x":18534.05048848526,"y":30156.24530665943},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"63a268b6-7f8b-49e9-b420-37a08d4b9bbe","savedPayload":{"position":{"x":18514.185819486032,"y":30033.277189496504},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"db3e6d10-ee2b-49da-ac75-71cc0a2246cc","savedPayload":{"position":{"x":18517.254716461168,"y":29908.752714856375},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"853d913d-eedd-4349-9a40-a52f690668eb","savedPayload":{"position":{"x":18543.152671804914,"y":29786.912414372266},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"dd180ddb-0851-47a9-a979-3ce5da36b223","savedPayload":{"position":{"x":18590.997761709208,"y":29671.905413345834},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"f3515c3c-7ebe-408b-ae1a-c80acb939e37","savedPayload":{"position":{"x":18659.160679021228,"y":29567.648137261334},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e4dc4641-78f4-446a-8e3e-7932afb51ce0","savedPayload":{"position":{"x":18745.320217344313,"y":29477.690942613008},"targetPosition":{"x":18966.478516723855,"y":29732.632615580667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"86d6ac94-c819-4724-aee1-4d0c61298b77","savedPayload":{"position":{"x":18966.478516723855,"y":29732.632615580667},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"a763d22c-0245-42ab-a0d2-b06233dc552a","savedPayload":{"position":{"x":18846.542316937856,"y":29405.09721377284},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6699cd68-35c8-4f90-8850-6ab7cfe2016a","savedPayload":{"position":{"x":18693.761924120707,"y":29144.124494937307},"targetPosition":{"x":18959.37998060272,"y":29352.339043109903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c7b98e92-df2c-4e5a-9940-0d10a5ea930a","savedPayload":{"position":{"x":18746.753619081574,"y":29090.239290370075},"targetPosition":{"x":18959.37998060272,"y":29352.339043109903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8771390c-321e-457b-bf9d-bc2d341bf4dc","savedPayload":{"position":{"x":18810.407287659476,"y":29049.496861838474},"targetPosition":{"x":18959.37998060272,"y":29352.339043109903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9d9efc68-ba3e-4c36-8f56-0beac18d35e0","savedPayload":{"position":{"x":18881.531069117347,"y":29023.94020483464},"targetPosition":{"x":18959.37998060272,"y":29352.339043109903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"85c030de-a925-45ae-a811-e53e8f4f75be","savedPayload":{"position":{"x":18956.55852006584,"y":29014.850836856058},"targetPosition":{"x":18959.37998060272,"y":29352.339043109903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"75d5db30-1378-4aa3-8f50-fa1f973b6b38","savedPayload":{"position":{"x":19031.727450827042,"y":29022.68453676706},"targetPosition":{"x":18959.37998060272,"y":29352.339043109903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"bf184263-2b70-4934-a1ef-a3d9881f9171","savedPayload":{"position":{"x":18959.37998060272,"y":29352.339043109903},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"cad488ae-7e5d-4600-a796-22708671364c","savedPayload":{"position":{"x":18857.154575553628,"y":29067.736557231226},"targetPosition":{"x":19079.99065703666,"y":29321.21304684967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5de83a17-4069-4cab-82a9-c2faa0aed4f4","savedPayload":{"position":{"x":18919.145366563494,"y":29024.50604906801},"targetPosition":{"x":19079.99065703666,"y":29321.21304684967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"fb23eb72-a33c-4c80-8b54-ade1b5eed5bd","savedPayload":{"position":{"x":18989.201612069126,"y":28996.153668714098},"targetPosition":{"x":19079.99065703666,"y":29321.21304684967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"306baf20-5d8a-4614-8ecd-5adc8738ab11","savedPayload":{"position":{"x":19063.810399391466,"y":28984.101122909662},"targetPosition":{"x":19079.99065703666,"y":29321.21304684967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4b930ee3-6684-4a26-878f-43dd26fbbdd7","savedPayload":{"position":{"x":19139.230532395006,"y":28988.95277662837},"targetPosition":{"x":19079.99065703666,"y":29321.21304684967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0eb0f6d9-d10a-485a-8b34-f0788a9f31d7","savedPayload":{"position":{"x":19211.680130683904,"y":29010.46534769405},"targetPosition":{"x":19079.99065703666,"y":29321.21304684967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"96cb5ac0-a52a-4c5c-b613-357434c50a9f","savedPayload":{"position":{"x":19079.99065703666,"y":29321.21304684967},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5647419a-17f5-44d8-85b4-e57287adeb8d","savedPayload":{"position":{"x":22143.81147557059,"y":28934.09581860374},"targetPosition":{"x":21775.69474464043,"y":29111.174883611086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"cc5b4f99-1d79-47ea-b554-91f19187e628","savedPayload":{"position":{"x":22180.55259850277,"y":29057.106844566493},"targetPosition":{"x":21775.69474464043,"y":29111.174883611086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"50282e17-b223-4318-a93a-f001a8756b9f","savedPayload":{"position":{"x":22177.94701415641,"y":29185.674705464065},"targetPosition":{"x":21775.69474464043,"y":29111.174883611086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"9a913ce3-65eb-46f2-ac68-b877e8fc52fc","savedPayload":{"position":{"x":22216.028808959018,"y":29350.422588096473},"targetPosition":{"x":22036.73623453606,"y":29252.812725747033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1684af0b-83de-4fae-b7c1-7e177c983952","savedPayload":{"position":{"x":22036.73623453606,"y":29252.812725747033},"targetPosition":{"x":21775.69474464043,"y":29111.174883611086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b9099572-9359-4b04-9cf0-d10e5905fa37","savedPayload":{"position":{"x":19204.26709431028,"y":29312.779183463266},"targetPosition":{"x":19187.636816103397,"y":29987.574288548327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604","savedPayload":{"position":{"x":29808.636816103397,"y":24132.824288548327},"targetPosition":{"x":30468.886446598717,"y":24273.164679850313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Market Order","name":"Market Sell Order #2","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0b81731f-f5aa-4385-8087-883b0053f35e","savedPayload":{"position":{"x":18969.93980592588,"y":29573.026002508974},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"e4da00c4-a47d-44a2-8af1-64e863d1e368","savedPayload":{"position":{"x":18965.33704271761,"y":29448.548785782805},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"ba273d24-bcbe-40ac-bc04-e9216cfa4744","savedPayload":{"position":{"x":18983.685278852252,"y":29325.34527469732},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d4cc6bef-c37c-40b1-a881-4e8bddadda43","savedPayload":{"position":{"x":19024.35968715452,"y":29207.611017056202},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"34645282-c5b4-4fdf-ad2e-567903e0dbb2","savedPayload":{"position":{"x":19085.975149433256,"y":29099.355311796746},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4926adb9-5dfa-459d-bb6c-5f2929ec7c73","savedPayload":{"position":{"x":19166.433425020157,"y":29004.264677123152},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"f7a4d950-f67d-423e-ab99-ba43888bfc8e","savedPayload":{"position":{"x":19262.99460383918,"y":28925.577310550587},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"1eb65c1b-c8bf-458a-80f2-02054c23ccc6","savedPayload":{"position":{"x":19372.370410758012,"y":28865.972815972586},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"a3372580-6256-41e4-993e-ea10cfa6c845","savedPayload":{"position":{"x":19490.83618385385,"y":28827.480952964288},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"33431686-26aa-485e-a0de-3981bb35dff8","savedPayload":{"position":{"x":19614.357713307956,"y":28811.412515754542},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"12ec632d-d6d6-4841-b2bc-268353c80597","savedPayload":{"position":{"x":19738.728621582508,"y":28818.31469570056},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9b62a3d1-92a5-4d06-bdad-ffbf6f1bb330","savedPayload":{"position":{"x":19859.713606562687,"y":28847.952447342534},"targetPosition":{"x":19749.506790979158,"y":29166.95198934681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"33fe6333-e5ba-46ae-ba6e-eb72db5a18c2","savedPayload":{"position":{"x":19749.506790979158,"y":29166.95198934681},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"be48c3db-3bc7-4105-b883-ad0ed50819b2","savedPayload":{"position":{"x":19973.192669690477,"y":28899.31649259485},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5cc67466-ca02-4eb2-b137-0390110f1a17","savedPayload":{"position":{"x":20122.81147748817,"y":28636.518431797267},"targetPosition":{"x":20075.30141757421,"y":28970.65769050084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0848e446-525d-4e6a-a074-5926230c2df0","savedPayload":{"position":{"x":20195.97328101195,"y":28655.46798353936},"targetPosition":{"x":20075.30141757421,"y":28970.65769050084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"92451f64-da38-4044-8f2c-cc95258a60f3","savedPayload":{"position":{"x":20263.08409342114,"y":28690.222463306098},"targetPosition":{"x":20075.30141757421,"y":28970.65769050084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"17b37fa1-aaec-4185-8a02-231691462c8d","savedPayload":{"position":{"x":20320.778698351198,"y":28739.039136359912},"targetPosition":{"x":20075.30141757421,"y":28970.65769050084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"39d8b4de-b9a4-4a7a-a3b3-949c3baef162","savedPayload":{"position":{"x":20366.16404739924,"y":28799.470130873204},"targetPosition":{"x":20075.30141757421,"y":28970.65769050084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"911090ca-bba6-45f4-9c5c-7af3945cf131","savedPayload":{"position":{"x":20396.964329651288,"y":28868.48518444322},"targetPosition":{"x":20075.30141757421,"y":28970.65769050084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cbd98498-37d3-4b4f-b797-392f4405f28f","savedPayload":{"position":{"x":20075.30141757421,"y":28970.65769050084},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"023905b1-a2a1-4df6-a128-1da70299913a","savedPayload":{"position":{"x":20270.6616978008,"y":28739.826649876835},"targetPosition":{"x":20162.56265927064,"y":29059.54660213014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"dcd46554-00ff-4808-a75c-607b31e6114c","savedPayload":{"position":{"x":20339.095811593583,"y":28771.896995610463},"targetPosition":{"x":20162.56265927064,"y":29059.54660213014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a58bd9db-f888-4678-8291-c8b7f2d3185d","savedPayload":{"position":{"x":20398.677815990646,"y":28818.39129373514},"targetPosition":{"x":20162.56265927064,"y":29059.54660213014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0af2b201-7c59-4052-9110-dd1bfdb02206","savedPayload":{"position":{"x":20446.42002049874,"y":28876.978125999616},"targetPosition":{"x":20162.56265927064,"y":29059.54660213014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e05bef30-b5dd-4475-9cf3-5537ce25f702","savedPayload":{"position":{"x":20479.928431629738,"y":28944.719703996845},"targetPosition":{"x":20162.56265927064,"y":29059.54660213014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ec7a47e6-2858-4ef5-849c-3838dd074290","savedPayload":{"position":{"x":20497.52279773059,"y":29018.219182141846},"targetPosition":{"x":20162.56265927064,"y":29059.54660213014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d60208af-cf08-4b32-8772-9daa1b7479cf","savedPayload":{"position":{"x":20162.56265927064,"y":29059.54660213014},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ac0449d3-86dc-45b2-8f93-c7573015ffbc","savedPayload":{"position":{"x":22360.109487118374,"y":28757.54843792331},"targetPosition":{"x":21991.992756188214,"y":28934.62750293065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a82976da-584f-4845-beb9-3c1bdd08d034","savedPayload":{"position":{"x":22396.850610050555,"y":28880.559463886057},"targetPosition":{"x":21991.992756188214,"y":28934.62750293065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"585d2e1b-0ee9-4554-a0d3-7aa6797060b3","savedPayload":{"position":{"x":22394.245025704193,"y":29009.12732478363},"targetPosition":{"x":21991.992756188214,"y":28934.62750293065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"ce0d0c85-9440-475d-834b-d44a7a8ad44f","savedPayload":{"position":{"x":22432.3268205068,"y":29173.875207416037},"targetPosition":{"x":22253.034246083844,"y":29076.265345066604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b43d17da-95d3-4286-9f23-60d4b04fae2e","savedPayload":{"position":{"x":22253.034246083844,"y":29076.265345066604},"targetPosition":{"x":21991.992756188214,"y":28934.62750293065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"78c636c0-cedc-4e63-a357-68f172f3a408","savedPayload":{"position":{"x":20232.004817852125,"y":29162.956222207715},"targetPosition":{"x":19639.29997539563,"y":29485.951531351086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"d5d8b542-53f6-4cae-8f16-197523dd0dab","savedPayload":{"position":{"x":30260.29997539563,"y":23631.201531351086},"targetPosition":{"x":30468.886446598717,"y":24273.164679850313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0cb8959b-8c1b-45f2-aa32-11c1efa63cc1","savedPayload":{"position":{"x":30468.886446598717,"y":24273.164679850313},"targetPosition":{"x":30803.301618063546,"y":24574.2734527118},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"limitBuyOrders":{"type":"Limit Buy Orders","name":"New Limit Buy Orders","project":"Superalgos","limitOrders":[{"type":"Limit Order","name":"Limit Buy Order #1","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0194d2f8-65b6-4b14-a475-98894e185842","savedPayload":{"position":{"x":19088.9177398892,"y":30270.005538311794},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"b489aabd-42fc-4dfa-88d7-a06447eb9ab3","savedPayload":{"position":{"x":18993.33329065285,"y":30190.134542467073},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"ddb47e49-1bd2-4ec6-bcba-ab683fe6057a","savedPayload":{"position":{"x":18914.05260527941,"y":30094.059905648806},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"717a205b-4e4c-483c-8cc4-b7b37b1c346c","savedPayload":{"position":{"x":18853.775492422574,"y":29985.05333438501},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1f6e73ab-b746-4866-a778-f0463def7cba","savedPayload":{"position":{"x":18814.554616866255,"y":29866.826916721104},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1c848292-d64a-456f-b1b9-b9e4a387436e","savedPayload":{"position":{"x":18797.725598487265,"y":29743.40671151367},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"94931a87-f582-496a-9568-414b6c7b85ce","savedPayload":{"position":{"x":18803.861529322323,"y":29618.99564582484},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"0216b354-f6d6-41d2-8a38-ed7dfe714b24","savedPayload":{"position":{"x":18832.75345760607,"y":29497.830389282004},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"03a48411-88af-4c63-97e6-bad700dd2fbf","savedPayload":{"position":{"x":18883.41750337286,"y":29384.037079375026},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"91379553-15c6-4663-8d4c-8c5d3bbc5822","savedPayload":{"position":{"x":18954.12836330893,"y":29281.490810792762},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"57d6275e-125c-4950-a515-ce56fe4c032d","savedPayload":{"position":{"x":19042.47806388748,"y":29193.683673721076},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"588c867e-9337-4872-8490-62a114e0e0c0","savedPayload":{"position":{"x":19145.457962019096,"y":29123.6058348999},"targetPosition":{"x":19308.778067652947,"y":29418.957816602662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"371c590e-927d-4d94-8ed9-3edf5e3f8410","savedPayload":{"position":{"x":19308.778067652947,"y":29418.957816602662},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"41cd34ec-9e60-425f-97ba-cc2e874ce66b","savedPayload":{"position":{"x":19259.56120078368,"y":29073.64371108119},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"623c7f3e-bf42-4d57-8bd5-16e664ceaaa3","savedPayload":{"position":{"x":19059.828903449852,"y":28941.487970337585},"targetPosition":{"x":19380.902131236857,"y":29045.49870246862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"01d4bade-b1c7-4230-9638-06b14acff0ae","savedPayload":{"position":{"x":19136.75371404919,"y":28812.479818288048},"targetPosition":{"x":19380.902131236857,"y":29045.49870246862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0d2c2d0b-6be9-48b5-990e-b1a9f86a45a8","savedPayload":{"position":{"x":19262.035112956382,"y":28729.62391403955},"targetPosition":{"x":19380.902131236857,"y":29045.49870246862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5210cb3d-0652-4891-b974-90583714dbf0","savedPayload":{"position":{"x":19410.859582642337,"y":28709.33088558948},"targetPosition":{"x":19380.902131236857,"y":29045.49870246862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a494886b-7045-4d81-be56-14ebaecc329c","savedPayload":{"position":{"x":19553.7506116734,"y":28755.62001610003},"targetPosition":{"x":19380.902131236857,"y":29045.49870246862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"92603bc3-edc6-4f83-b4fc-d485cf4dbad9","savedPayload":{"position":{"x":19662.406879306513,"y":28859.323175574667},"targetPosition":{"x":19380.902131236857,"y":29045.49870246862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ec2bce1d-0e80-4158-bc17-ff7a0c290593","savedPayload":{"position":{"x":19380.902131236857,"y":29045.49870246862},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8cf38f76-2cd3-44f6-bb86-f2b8bfad423d","savedPayload":{"position":{"x":19208.854209457968,"y":28878.89245102137},"targetPosition":{"x":19505.34863352445,"y":29040.129253574276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7f645045-3a7d-4086-84ae-abbf53f7f22e","savedPayload":{"position":{"x":19308.174414708905,"y":28766.215804772502},"targetPosition":{"x":19505.34863352445,"y":29040.129253574276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"58409d16-1157-486d-8ef2-68cd23246714","savedPayload":{"position":{"x":19446.54739217936,"y":28707.791076386828},"targetPosition":{"x":19505.34863352445,"y":29040.129253574276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"284001b7-b135-41de-9915-112dce35ba8e","savedPayload":{"position":{"x":19596.56667664811,"y":28715.189999853385},"targetPosition":{"x":19505.34863352445,"y":29040.129253574276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"40a8de4e-7754-4614-ae93-9bd30cb4b918","savedPayload":{"position":{"x":19728.51910896034,"y":28786.947127637788},"targetPosition":{"x":19505.34863352445,"y":29040.129253574276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"16be0d25-24d4-4d4b-ac26-c48a266d22b7","savedPayload":{"position":{"x":19816.26989160622,"y":28908.85008053892},"targetPosition":{"x":19505.34863352445,"y":29040.129253574276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7c5da6d9-1986-4f7b-aecc-7268bf83bb66","savedPayload":{"position":{"x":19505.34863352445,"y":29040.129253574276},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f5214e63-7a64-40d0-8c15-db40a6cafa6f","savedPayload":{"position":{"x":17297.33119416522,"y":30570.75892881005},"targetPosition":{"x":17686.940361411183,"y":30498.45723764209},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"65fac651-eb4d-419f-b35d-d813f3baef3f","savedPayload":{"position":{"x":17328.863840170987,"y":30328.15158204874},"targetPosition":{"x":17686.940361411183,"y":30498.45723764209},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e9a5a1b7-4755-4262-b762-4753e75cfe90","savedPayload":{"position":{"x":17497.369388059982,"y":30149.98662463911},"targetPosition":{"x":17686.940361411183,"y":30498.45723764209},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"d13bdc2c-7cd0-4635-9557-1d112f122504","savedPayload":{"position":{"x":17750.823020603188,"y":30007.595038768028},"targetPosition":{"x":17725.57488144146,"y":30201.82729279386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1509fcc5-09bf-4ce5-a508-bb80acac4a49","savedPayload":{"position":{"x":17725.57488144146,"y":30201.82729279386},"targetPosition":{"x":17686.940361411183,"y":30498.45723764209},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"87b2e55b-69dc-433a-af96-2619bd7ec970","savedPayload":{"position":{"x":19628.66283126818,"y":29057.718214540313},"targetPosition":{"x":19472.0981732868,"y":29714.309798305425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"008e16b8-9487-4db3-81e1-d11c19a7f59e","savedPayload":{"position":{"x":19425.044294589887,"y":29865.848052674388},"targetPosition":{"x":20088.741357195555,"y":29988.857032381587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Limit Order","name":"Limit Buy Order #2","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d516c43a-d83f-4062-a162-3b054a188996","savedPayload":{"position":{"x":19114.612113927444,"y":29628.629374475866},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"706d8275-0d37-4b82-b297-46240caf7037","savedPayload":{"position":{"x":19084.229663540704,"y":29507.829251870207},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"5617dbbc-8ad0-4b30-a360-d22fe67fb185","savedPayload":{"position":{"x":19076.561496389033,"y":29383.503220301674},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"17edfdf5-0772-483a-8140-2447bad2a472","savedPayload":{"position":{"x":19091.868742707826,"y":29259.885053662707},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f09d53f0-b4fc-4495-a331-c9c0b3b5dbd6","savedPayload":{"position":{"x":19129.63013258271,"y":29141.184420354533},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"52d30ed5-1c58-47be-a12c-7d95a6dde07a","savedPayload":{"position":{"x":19188.559747171297,"y":29031.44352807875},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"c847c219-47bb-44da-bbb6-ee2ba07e253d","savedPayload":{"position":{"x":19266.650809127055,"y":28934.399471302117},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"d7f72ff1-0b5f-4fe3-925c-a1e5f0adb39a","savedPayload":{"position":{"x":19361.244020994985,"y":28853.35696898664},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"659e5c4e-3d5e-42a6-8c88-e5defe7118ee","savedPayload":{"position":{"x":19469.118124396977,"y":28791.07582634891},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"7917f816-7f0f-468b-a5e3-3a5bcf499e04","savedPayload":{"position":{"x":19586.5995961224,"y":28749.676953003458},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"4e0c3898-8897-4a60-97a9-06373c32f158","savedPayload":{"position":{"x":19709.687745555144,"y":28730.570137929586},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8d17bb58-f671-4c13-8de1-3be5093e98a2","savedPayload":{"position":{"x":19834.190953394238,"y":28734.40604079853},"targetPosition":{"x":19792.716155294896,"y":29069.34796281281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"bbce9d28-eac9-4e9c-aabc-13b7c27fdee2","savedPayload":{"position":{"x":19792.716155294896,"y":29069.34796281281},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"a319ae7f-4df1-47f5-9b09-f130ca02d11b","savedPayload":{"position":{"x":19955.86941222186,"y":28761.054034538764},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4ff538d9-3562-46c8-98be-26129f3db05c","savedPayload":{"position":{"x":19871.96178476812,"y":28536.73809559366},"targetPosition":{"x":20070.579508059862,"y":28809.60665368419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7dbb1024-5bdf-4ea5-9124-c413f2027233","savedPayload":{"position":{"x":20010.02435303228,"y":28477.583577378362},"targetPosition":{"x":20070.579508059862,"y":28809.60665368419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9ce1108e-4b0a-4ce1-a307-9ecc6a46a9ba","savedPayload":{"position":{"x":20160.080612409893,"y":28484.190301421237},"targetPosition":{"x":20070.579508059862,"y":28809.60665368419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ae8b0433-bad6-4c82-8a92-08e60e6f9531","savedPayload":{"position":{"x":20292.410080411973,"y":28555.24972499945},"targetPosition":{"x":20070.579508059862,"y":28809.60665368419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"cb2ee517-1712-46d8-b167-586d816f541f","savedPayload":{"position":{"x":20380.803282986282,"y":28676.687657786686},"targetPosition":{"x":20070.579508059862,"y":28809.60665368419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9a8f6143-6b20-4d85-9080-e97b8891322d","savedPayload":{"position":{"x":20407.752862291494,"y":28824.451827855926},"targetPosition":{"x":20070.579508059862,"y":28809.60665368419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c1a0e27c-1166-431d-ba8a-2f511fb525c4","savedPayload":{"position":{"x":20070.579508059862,"y":28809.60665368419},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"dca23083-2e1c-4dd8-b054-e5c15f624cc2","savedPayload":{"position":{"x":20029.318513034268,"y":28573.69213378505},"targetPosition":{"x":20174.414926174075,"y":28878.41049702226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f82d03c0-698d-4811-81a9-7d91c5eb2b1d","savedPayload":{"position":{"x":20175.899917909945,"y":28540.913764001714},"targetPosition":{"x":20174.414926174075,"y":28878.41049702226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7fb770cd-de9f-4ed2-bf36-6e72190980e2","savedPayload":{"position":{"x":20322.187201960103,"y":28574.98076131889},"targetPosition":{"x":20174.414926174075,"y":28878.41049702226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1837436f-430f-4ab8-88d4-7ae0c12af61c","savedPayload":{"position":{"x":20439.20637448281,"y":28669.145739113614},"targetPosition":{"x":20174.414926174075,"y":28878.41049702226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c47f2fc4-b14e-400b-abc7-93708c15654d","savedPayload":{"position":{"x":20503.78035321397,"y":28804.75816867598},"targetPosition":{"x":20174.414926174075,"y":28878.41049702226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1faf0d1b-61ac-4835-a937-d9a1508126d5","savedPayload":{"position":{"x":20503.119469718004,"y":28954.958345153856},"targetPosition":{"x":20174.414926174075,"y":28878.41049702226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f2870e23-9835-4532-bd91-b4fcc21dd948","savedPayload":{"position":{"x":20174.414926174075,"y":28878.41049702226},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"62fb7451-7bf5-496d-9353-d735820b30b2","savedPayload":{"position":{"x":17603.538956874025,"y":29639.38710844845},"targetPosition":{"x":17961.204368089377,"y":29809.649822833868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2262cd32-bff0-4385-bbc9-521774bf944e","savedPayload":{"position":{"x":17771.92725806642,"y":29461.554140058746},"targetPosition":{"x":17961.204368089377,"y":29809.649822833868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7e524691-0da3-4c5e-bc7a-319d871dae43","savedPayload":{"position":{"x":18012.451809177936,"y":29416.26381463596},"targetPosition":{"x":17961.204368089377,"y":29809.649822833868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"25d54fc5-92c9-43e4-8cbf-71cb76a1334d","savedPayload":{"position":{"x":18301.279930990066,"y":29450.405954343754},"targetPosition":{"x":18167.267018282633,"y":29591.964819703593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f7d89aff-04c2-47cb-82f2-eaf9310be4ed","savedPayload":{"position":{"x":18167.267018282633,"y":29591.964819703593},"targetPosition":{"x":17961.204368089377,"y":29809.649822833868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e9e813ef-9592-4176-bc78-b55ba7b8c551","savedPayload":{"position":{"x":20263.83967593748,"y":28965.122532189227},"targetPosition":{"x":19751.241357195555,"y":29404.289884827092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"68fee060-9d11-4222-b788-46cc11a9305d","savedPayload":{"position":{"x":19522.638723832395,"y":29621.225683746445},"targetPosition":{"x":20088.741357195555,"y":29988.857032381587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Limit Order","name":"Limit Buy Order #3","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"19953c5d-b9dd-496e-ac1c-366d00fb0e35","savedPayload":{"position":{"x":19512.39074945889,"y":29124.847932272147},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"a1a87815-ca21-4253-98fc-6fe7bf39209b","savedPayload":{"position":{"x":19558.815361307992,"y":29009.260223895755},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"39d13327-892e-49b0-a3b9-1b81bcc7b8a2","savedPayload":{"position":{"x":19625.68869159861,"y":28904.171115949757},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a664b78f-0261-463b-8122-4f49ca906ee6","savedPayload":{"position":{"x":19710.73344927342,"y":28813.159291964752},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8d4e39cb-5cde-4cef-9504-a4e065d3ed12","savedPayload":{"position":{"x":19811.05353710974,"y":28739.32405044989},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c7a0e139-7cb3-49bb-8aea-a1c5283c5f3d","savedPayload":{"position":{"x":19923.232674836996,"y":28685.179761999367},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"c937b8cc-6adf-49df-8322-3eb3eb0dfdc1","savedPayload":{"position":{"x":20043.45073646393,"y":28652.57024541743},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"5025336e-e85b-419d-9bd9-f5811e3fa9b2","savedPayload":{"position":{"x":20167.61384008751,"y":28642.60597868049},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"643aa93b-e58d-4928-a576-c2f1ec3c2745","savedPayload":{"position":{"x":20291.49376013106,"y":28655.62628294144},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"e5d2af2d-22c8-453b-a4cc-e4fb81225457","savedPayload":{"position":{"x":20410.87191449509,"y":28691.187767354815},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"6d137135-5b2d-4b29-a7c6-bc92ac579612","savedPayload":{"position":{"x":20521.683023311045,"y":28748.07942822021},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"111c6c6f-c6af-44e6-bdf6-ba6b8325c9b5","savedPayload":{"position":{"x":20620.15354717147,"y":28824.363888260887},"targetPosition":{"x":20389.725808536346,"y":29070.959320634443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"d479f8d6-64ad-46ec-8537-fe131d79a8a9","savedPayload":{"position":{"x":20389.725808536346,"y":29070.959320634443},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"d8e6194b-d355-442a-a6c1-72580597638f","savedPayload":{"position":{"x":20702.930190488685,"y":28917.44337168328},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"986a2c18-c5e3-419f-8b40-79a5880d4763","savedPayload":{"position":{"x":20766.897094687,"y":28686.64829899535},"targetPosition":{"x":20767.194093954153,"y":29024.148168315973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"fb4e15d2-6acf-427c-b243-22c1ce1ec97c","savedPayload":{"position":{"x":20913.362212113174,"y":28719.94242998441},"targetPosition":{"x":20767.194093954153,"y":29024.148168315973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"dbcd4995-b198-4340-ace5-1fee2d4836c7","savedPayload":{"position":{"x":21030.87694110363,"y":28813.488238288577},"targetPosition":{"x":20767.194093954153,"y":29024.148168315973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a82ab2a6-6739-436f-a3bb-a90818584a8f","savedPayload":{"position":{"x":21096.16604835823,"y":28948.757829309172},"targetPosition":{"x":20767.194093954153,"y":29024.148168315973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"04f910f4-2a94-4ed7-a800-f7b2d218e88f","savedPayload":{"position":{"x":21096.298225466853,"y":29098.959401571883},"targetPosition":{"x":20767.194093954153,"y":29024.148168315973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0a58a068-de29-459c-9c6c-ed59e3251927","savedPayload":{"position":{"x":21031.247293132088,"y":29234.343691588707},"targetPosition":{"x":20767.194093954153,"y":29024.148168315973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"553ae1bd-21d8-4d72-8283-2aa1f909b5cd","savedPayload":{"position":{"x":20767.194093954153,"y":29024.148168315973},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4e4e7ae3-ec61-46dc-a1bf-471888a346dd","savedPayload":{"position":{"x":20872.480323371998,"y":28809.036708126812},"targetPosition":{"x":20810.756827411416,"y":29140.84457428795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"74010dbf-1e63-4989-b8f2-43d7a9a1508b","savedPayload":{"position":{"x":21010.333813328612,"y":28868.676837970423},"targetPosition":{"x":20810.756827411416,"y":29140.84457428795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"746b590a-a40c-4671-a0b4-02fc443f36df","savedPayload":{"position":{"x":21108.65863357322,"y":28982.223125909943},"targetPosition":{"x":20810.756827411416,"y":29140.84457428795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"827661f4-2537-4d0f-92ee-feb8e0266e05","savedPayload":{"position":{"x":21147.980347581593,"y":29127.186337065134},"targetPosition":{"x":20810.756827411416,"y":29140.84457428795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7a964074-cc1a-4464-83c4-5a9c37bd174e","savedPayload":{"position":{"x":21120.510807645198,"y":29274.854729609586},"targetPosition":{"x":20810.756827411416,"y":29140.84457428795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1ab0c697-faf9-4cb9-8ebb-474ece1a12d8","savedPayload":{"position":{"x":21031.690693040237,"y":29395.980767365894},"targetPosition":{"x":20810.756827411416,"y":29140.84457428795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8deb2930-0f19-452a-8c4a-44d87159e3c8","savedPayload":{"position":{"x":20810.756827411416,"y":29140.84457428795},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c7fbd2e6-2de9-4b89-a086-4c321fbfd725","savedPayload":{"position":{"x":18329.33370081835,"y":30058.46209197097},"targetPosition":{"x":18616.870311713617,"y":30330.877145757557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5b0c5718-5ab8-462c-b7a4-f81f4bc02165","savedPayload":{"position":{"x":18544.29306588619,"y":29941.360295712024},"targetPosition":{"x":18616.870311713617,"y":30330.877145757557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"737d2666-fc0b-4d12-81fd-1ea60b82ae3f","savedPayload":{"position":{"x":18787.185886639003,"y":29972.351372240395},"targetPosition":{"x":18616.870311713617,"y":30330.877145757557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"225697e6-ae0f-47e0-9ba1-4803266d331d","savedPayload":{"position":{"x":19051.367241898643,"y":30094.078844644268},"targetPosition":{"x":18879.252577281124,"y":30187.978286683072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"49b649cd-2b6c-488c-9d2e-b7093798f8d4","savedPayload":{"position":{"x":18879.252577281124,"y":30187.978286683072},"targetPosition":{"x":18616.870311713617,"y":30330.877145757557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e7cd13f9-2f0b-4d6b-8870-a75c0b3f1992","savedPayload":{"position":{"x":20832.134914220333,"y":29263.558633455737},"targetPosition":{"x":20159.298069901222,"y":29317.554753008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"accb5840-90b8-4f57-869f-71d9cbdee6ee","savedPayload":{"position":{"x":19706.41714727129,"y":29432.571855061724},"targetPosition":{"x":20088.741357195555,"y":29988.857032381587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Limit Order","name":"Limit Buy Order #4","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"98451bf9-2b66-4d19-8fbd-f792d88fb324","savedPayload":{"position":{"x":20130.315727709083,"y":28951.088599721028},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"17d393b9-5199-4676-918d-74c235161186","savedPayload":{"position":{"x":20235.81477798219,"y":28884.863881491983},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"14d7acd3-ff50-4ede-9afa-a9bd25100060","savedPayload":{"position":{"x":20351.68626648498,"y":28839.15216455647},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"88413b58-802d-438e-927d-2f73ce62f26a","savedPayload":{"position":{"x":20473.984328649025,"y":28815.51010660958},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4bce6443-38b7-4fc2-80f2-18bebc2ca65c","savedPayload":{"position":{"x":20598.544250647683,"y":28814.742809579155},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ccc3cb23-544f-4d93-b0cd-7f31dc6374b6","savedPayload":{"position":{"x":20721.12429373045,"y":28836.876402845308},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"0669d33c-a13b-4573-9373-e36505a14627","savedPayload":{"position":{"x":20837.550141548698,"y":28881.15715343567},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"bbb2315b-a527-4199-9dc6-30ba8454ae0c","savedPayload":{"position":{"x":20943.857051492396,"y":28946.077133497798},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"d8ca88ce-db47-4b7f-88b3-b6df03ec32ed","savedPayload":{"position":{"x":21036.424869244493,"y":29029.42557097361},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"b133f9b6-c2bb-415d-a48e-665e75695ec1","savedPayload":{"position":{"x":21112.1013087943,"y":29128.364134790303},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"35499c65-da01-47b2-b7e1-12a8e1c32d01","savedPayload":{"position":{"x":21168.30929975683,"y":29239.52359082082},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ed741871-50af-4101-ab56-4744c8b88b1c","savedPayload":{"position":{"x":21203.134746413918,"y":29359.118537111113},"targetPosition":{"x":20871.76963145085,"y":29423.17640614773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"7f1b2469-a692-4acc-b259-aaaf71557551","savedPayload":{"position":{"x":20871.76963145085,"y":29423.17640614773},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"813fc2a2-ec07-4ff7-b77f-ba596f533c90","savedPayload":{"position":{"x":21215.391709948173,"y":29483.0763112036},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1d83de0d-6af9-498d-a687-831d17d2cc58","savedPayload":{"position":{"x":21402.799962549892,"y":29333.957978103645},"targetPosition":{"x":21204.66279416704,"y":29607.175679772525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8449f2d7-1306-40ef-946a-2579132dec2e","savedPayload":{"position":{"x":21501.72293244753,"y":29446.983531885133},"targetPosition":{"x":21204.66279416704,"y":29607.175679772525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1d1b73f3-77f0-49b0-a13b-b5236d4b1b13","savedPayload":{"position":{"x":21541.809498755203,"y":29591.737105183478},"targetPosition":{"x":21204.66279416704,"y":29607.175679772525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a2b4b46f-cf1a-4e13-9aad-023be83def72","savedPayload":{"position":{"x":21515.12002538621,"y":29739.548477520882},"targetPosition":{"x":21204.66279416704,"y":29607.175679772525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"066530a0-f4d3-4786-b71d-0ba43e73d510","savedPayload":{"position":{"x":21426.940689866187,"y":29861.141793818395},"targetPosition":{"x":21204.66279416704,"y":29607.175679772525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8232e36b-b592-44e5-bc01-9fafa8574e10","savedPayload":{"position":{"x":21294.736491043455,"y":29932.434006539137},"targetPosition":{"x":21204.66279416704,"y":29607.175679772525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6fe6a708-fd2a-4c8d-adf0-8db9d11afaea","savedPayload":{"position":{"x":21204.66279416704,"y":29607.175679772525},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0761f871-8503-42b0-a57f-0409cecaa870","savedPayload":{"position":{"x":21416.280486938023,"y":29495.032545715978},"targetPosition":{"x":21171.313359429532,"y":29727.19058766206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f4963f9f-ac80-4e63-af92-dedb30938cfc","savedPayload":{"position":{"x":21492.750714279944,"y":29624.310672679727},"targetPosition":{"x":21171.313359429532,"y":29727.19058766206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4aeb6c33-f400-4066-a5d9-d8dd06b9b5a1","savedPayload":{"position":{"x":21505.556331323285,"y":29773.96542854508},"targetPosition":{"x":21171.313359429532,"y":29727.19058766206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"362996ac-69e5-4f09-abdb-faa740362bbe","savedPayload":{"position":{"x":21452.16102856203,"y":29914.35585351778},"targetPosition":{"x":21171.313359429532,"y":29727.19058766206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e7ab1462-db02-4a8b-9a42-64aeda463217","savedPayload":{"position":{"x":21343.14040055846,"y":30017.6759021564},"targetPosition":{"x":21171.313359429532,"y":29727.19058766206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b65fdf40-e781-4eff-b519-b6d8f88d8900","savedPayload":{"position":{"x":21200.08731973894,"y":30063.461771690832},"targetPosition":{"x":21171.313359429532,"y":29727.19058766206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"790babc4-3b12-48c9-b54e-685e8a68ce93","savedPayload":{"position":{"x":21171.313359429532,"y":29727.19058766206},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5dd514a8-cc41-42a5-9f9b-0e66182d2ea1","savedPayload":{"position":{"x":17977.437220858108,"y":29477.575541907536},"targetPosition":{"x":18264.973831753374,"y":29749.99059569413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8dec1cc6-15ca-4b47-950a-bf8ce1621597","savedPayload":{"position":{"x":18192.396585925948,"y":29360.47374564859},"targetPosition":{"x":18264.973831753374,"y":29749.99059569413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"aeb7a9fc-db49-4260-bfa7-50489799e684","savedPayload":{"position":{"x":18435.28940667876,"y":29391.46482217696},"targetPosition":{"x":18264.973831753374,"y":29749.99059569413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"0b3e6c5e-d7ce-4524-afbc-34e680e04fc1","savedPayload":{"position":{"x":18699.4707619384,"y":29513.19229458084},"targetPosition":{"x":18527.35609732088,"y":29607.091736619645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"80e7267f-7958-498a-a54a-bdb29d0e3e35","savedPayload":{"position":{"x":18527.35609732088,"y":29607.091736619645},"targetPosition":{"x":18264.973831753374,"y":29749.99059569413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a6e13625-1b79-46a4-95cd-336b5797d8c2","savedPayload":{"position":{"x":21116.479080737397,"y":29839.034071126043},"targetPosition":{"x":20540.404516487783,"y":29487.234275184346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3928e158-cbb9-40b6-910d-a2d20603bc64","savedPayload":{"position":{"x":19948.40096589357,"y":29328.60740188627},"targetPosition":{"x":20088.741357195555,"y":29988.857032381587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Limit Order","name":"Limit Buy Order #5","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c22b5f40-1de3-4b41-bf8b-fb435cbb1c8c","savedPayload":{"position":{"x":19758.212829284847,"y":29225.089208951482},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"e5100c66-e044-449e-b449-7760e5ee259d","savedPayload":{"position":{"x":19863.71187955795,"y":29158.864490722437},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"4dd1e856-ec07-411f-8d84-322c0a507818","savedPayload":{"position":{"x":19979.583368060743,"y":29113.152773786926},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"77686e92-830d-4e5b-9d16-4c2e0a146809","savedPayload":{"position":{"x":20101.88143022479,"y":29089.510715840035},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6d2484c7-ff50-48d2-b869-1efa87a21d04","savedPayload":{"position":{"x":20226.441352223446,"y":29088.74341880961},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b2f5836a-23fe-4095-a4a1-4b70901230b3","savedPayload":{"position":{"x":20349.021395306212,"y":29110.87701207576},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"261cab5d-e958-48c0-b3f0-3703315ea7dd","savedPayload":{"position":{"x":20465.44724312446,"y":29155.157762666124},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"2d0c5bbc-ee77-4976-997e-55e2045f9673","savedPayload":{"position":{"x":20571.75415306816,"y":29220.077742728252},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"9f6733f5-ee05-469a-8ca1-bd77b71b011a","savedPayload":{"position":{"x":20664.321970820256,"y":29303.426180204064},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"fa6e2f1d-78bd-4296-9c61-0c36c6d73a33","savedPayload":{"position":{"x":20739.998410370063,"y":29402.364744020757},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"59d3bba7-5222-45c0-8472-1468ce021224","savedPayload":{"position":{"x":20796.206401332594,"y":29513.524200051274},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f00e782e-ac01-46e8-995d-83bd7d5ecf0f","savedPayload":{"position":{"x":20831.03184798968,"y":29633.119146341567},"targetPosition":{"x":20499.666733026614,"y":29697.177015378184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"ebce24a6-271f-4028-bdc5-370ac91b64cc","savedPayload":{"position":{"x":20499.666733026614,"y":29697.177015378184},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"b8059d97-a6c0-48cf-ab6a-d14b2526eb58","savedPayload":{"position":{"x":20843.288811523937,"y":29757.076920434054},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"60f71d1c-6a79-4ed7-ac1f-ec58984f4960","savedPayload":{"position":{"x":21030.697064125656,"y":29607.9585873341},"targetPosition":{"x":20832.559895742805,"y":29881.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3027eeaa-862d-4739-bc09-f837c1896b0c","savedPayload":{"position":{"x":21129.620034023294,"y":29720.984141115587},"targetPosition":{"x":20832.559895742805,"y":29881.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e3a4b9fc-e9a1-404f-90f2-c7647e1cb338","savedPayload":{"position":{"x":21169.706600330966,"y":29865.737714413932},"targetPosition":{"x":20832.559895742805,"y":29881.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"dc3f44ea-2f1a-4799-a51a-fd92d838c61d","savedPayload":{"position":{"x":21143.017126961975,"y":30013.549086751336},"targetPosition":{"x":20832.559895742805,"y":29881.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"963e906a-5e4e-4207-b2ab-b77e12721d43","savedPayload":{"position":{"x":21054.83779144195,"y":30135.14240304885},"targetPosition":{"x":20832.559895742805,"y":29881.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d5ab8302-9908-471c-b9c2-6839eaf85fd3","savedPayload":{"position":{"x":20922.63359261922,"y":30206.43461576959},"targetPosition":{"x":20832.559895742805,"y":29881.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"20e5ece1-2a3e-4e8d-8f13-96622f9a5c72","savedPayload":{"position":{"x":20832.559895742805,"y":29881.17628900298},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0ccacad9-8aff-4728-979f-27e20eebf1f4","savedPayload":{"position":{"x":21044.177588513787,"y":29769.03315494643},"targetPosition":{"x":20799.210461005296,"y":30001.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c17618d5-88f2-4b2b-a4d4-a4f0173853a8","savedPayload":{"position":{"x":21120.647815855707,"y":29898.31128191018},"targetPosition":{"x":20799.210461005296,"y":30001.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"42e91165-1451-4c00-949c-c322955a6753","savedPayload":{"position":{"x":21133.45343289905,"y":30047.966037775535},"targetPosition":{"x":20799.210461005296,"y":30001.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"189e375f-0bdc-43a6-b3aa-9fecdc3de029","savedPayload":{"position":{"x":21080.058130137793,"y":30188.356462748234},"targetPosition":{"x":20799.210461005296,"y":30001.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4856c933-b4e2-4240-8e04-abda3da63715","savedPayload":{"position":{"x":20971.037502134222,"y":30291.676511386853},"targetPosition":{"x":20799.210461005296,"y":30001.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"320baed7-0e30-4141-8018-373858a8777d","savedPayload":{"position":{"x":20827.984421314704,"y":30337.462380921286},"targetPosition":{"x":20799.210461005296,"y":30001.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"55d7405e-f678-4bb5-a642-ff6c29fe5ab0","savedPayload":{"position":{"x":20799.210461005296,"y":30001.191196892512},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"cb5b62af-fcbb-401c-b7aa-c2f0d239c6e2","savedPayload":{"position":{"x":17605.33432243387,"y":29751.57615113799},"targetPosition":{"x":17892.870933329137,"y":30023.991204924583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b79f935b-06c3-4479-b46d-ebfc0eeef325","savedPayload":{"position":{"x":17820.29368750171,"y":29634.474354879043},"targetPosition":{"x":17892.870933329137,"y":30023.991204924583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"192e6727-286f-4868-bd57-9f5ebb59b14e","savedPayload":{"position":{"x":18063.186508254523,"y":29665.465431407414},"targetPosition":{"x":17892.870933329137,"y":30023.991204924583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"7c205b94-6aae-4332-9442-3f5ea752171c","savedPayload":{"position":{"x":18327.367863514162,"y":29787.192903811294},"targetPosition":{"x":18155.253198896644,"y":29881.0923458501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e12ca256-8faf-41fa-bca4-873b8677d686","savedPayload":{"position":{"x":18155.253198896644,"y":29881.0923458501},"targetPosition":{"x":17892.870933329137,"y":30023.991204924583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"251da11c-15cc-49d6-8919-0fa27251a0ed","savedPayload":{"position":{"x":20744.37618231316,"y":30113.034680356497},"targetPosition":{"x":20168.301618063546,"y":29761.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8498313c-e3ff-4d36-a5c8-7d502096e3b2","savedPayload":{"position":{"x":20211.750336902754,"y":29325.159969775916},"targetPosition":{"x":20088.741357195555,"y":29988.857032381587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Limit Order","name":"Limit Buy Order #6","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a11152a1-1102-4a49-aedc-30c605f017ef","savedPayload":{"position":{"x":19446.212829284847,"y":29330.089208951482},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"5f0a50aa-03eb-4b65-a8e3-d3ce13b96954","savedPayload":{"position":{"x":19551.71187955795,"y":29263.864490722437},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"e610e024-6c1f-4a1d-b5bc-355ed39ac36f","savedPayload":{"position":{"x":19667.583368060743,"y":29218.152773786926},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a85b9419-fb7d-4f4b-af06-0e1c7651c200","savedPayload":{"position":{"x":19789.88143022479,"y":29194.510715840035},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"618376b2-8493-4978-8c74-fe4c9c5ddfe2","savedPayload":{"position":{"x":19914.441352223446,"y":29193.74341880961},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"735bad1a-1c50-4c78-8d5d-5d7134c34917","savedPayload":{"position":{"x":20037.021395306212,"y":29215.87701207576},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"7b252033-59b3-4224-982c-495fa4b6b499","savedPayload":{"position":{"x":20153.44724312446,"y":29260.157762666124},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"78541c24-6e1c-465d-9b18-d3f7ab20695b","savedPayload":{"position":{"x":20259.75415306816,"y":29325.077742728252},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"916bac0f-27aa-4cd0-9439-1cc90d29e1d7","savedPayload":{"position":{"x":20352.321970820256,"y":29408.426180204064},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"dc367fb4-0528-48ec-87ad-2d9be203ffb1","savedPayload":{"position":{"x":20427.998410370063,"y":29507.364744020757},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"b04f5e67-59d1-48dd-b54d-62adb71cb562","savedPayload":{"position":{"x":20484.206401332594,"y":29618.524200051274},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a89bf5f9-c4d0-4310-90eb-575e2d0305d6","savedPayload":{"position":{"x":20519.03184798968,"y":29738.119146341567},"targetPosition":{"x":20187.666733026614,"y":29802.177015378184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"8245dbf6-fda1-4014-a9da-f0a8b83f256c","savedPayload":{"position":{"x":20187.666733026614,"y":29802.177015378184},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"28b65e25-2e17-406b-962e-e5f0a964a52b","savedPayload":{"position":{"x":20531.288811523937,"y":29862.076920434054},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8d0b359a-a6c2-4a6b-8874-43ee2fb59c00","savedPayload":{"position":{"x":20718.697064125656,"y":29712.9585873341},"targetPosition":{"x":20520.559895742805,"y":29986.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b43be8c0-0c1d-4a84-bba5-49718fac4b8a","savedPayload":{"position":{"x":20817.620034023294,"y":29825.984141115587},"targetPosition":{"x":20520.559895742805,"y":29986.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a40df24d-f364-4a5f-946c-8ee16acca1a5","savedPayload":{"position":{"x":20857.706600330966,"y":29970.737714413932},"targetPosition":{"x":20520.559895742805,"y":29986.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3595e151-3c5c-489b-b2a9-576b36745e03","savedPayload":{"position":{"x":20831.017126961975,"y":30118.549086751336},"targetPosition":{"x":20520.559895742805,"y":29986.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8749eea9-dac1-4ef5-a553-4a80d262db51","savedPayload":{"position":{"x":20742.83779144195,"y":30240.14240304885},"targetPosition":{"x":20520.559895742805,"y":29986.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"dea29acc-ddde-42e2-8c5a-a6035c572844","savedPayload":{"position":{"x":20610.63359261922,"y":30311.43461576959},"targetPosition":{"x":20520.559895742805,"y":29986.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d9f8c6cd-dfac-430e-97c5-8e2fa833db3a","savedPayload":{"position":{"x":20520.559895742805,"y":29986.17628900298},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"293650db-33b2-4ece-b97e-d77b58300715","savedPayload":{"position":{"x":20732.177588513787,"y":29874.03315494643},"targetPosition":{"x":20487.210461005296,"y":30106.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7e91d96e-d7a6-42ff-9ceb-d74a14c2f089","savedPayload":{"position":{"x":20808.647815855707,"y":30003.31128191018},"targetPosition":{"x":20487.210461005296,"y":30106.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"dd2de844-7af3-4ddd-a55a-71f3a9053012","savedPayload":{"position":{"x":20821.45343289905,"y":30152.966037775535},"targetPosition":{"x":20487.210461005296,"y":30106.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"fa5d61b2-b806-400e-8d69-dd781bc884c8","savedPayload":{"position":{"x":20768.058130137793,"y":30293.356462748234},"targetPosition":{"x":20487.210461005296,"y":30106.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c9e27b64-41d5-4647-814f-17e52d2cb87e","savedPayload":{"position":{"x":20659.037502134222,"y":30396.676511386853},"targetPosition":{"x":20487.210461005296,"y":30106.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6d2ad7f1-dd19-4a64-8874-25d4f79bfd45","savedPayload":{"position":{"x":20515.984421314704,"y":30442.462380921286},"targetPosition":{"x":20487.210461005296,"y":30106.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"84de3049-f76d-4c78-a53a-8338fca49b4f","savedPayload":{"position":{"x":20487.210461005296,"y":30106.191196892512},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1a73d081-e1de-4ccc-bb52-dfab03c48d13","savedPayload":{"position":{"x":17293.33432243387,"y":29856.57615113799},"targetPosition":{"x":17580.870933329137,"y":30128.991204924583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"59b76a85-9aa5-4cc2-a8d7-77c21a8833de","savedPayload":{"position":{"x":17508.29368750171,"y":29739.474354879043},"targetPosition":{"x":17580.870933329137,"y":30128.991204924583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"01b21bcc-944c-471d-a57e-cf1282453bde","savedPayload":{"position":{"x":17751.186508254523,"y":29770.465431407414},"targetPosition":{"x":17580.870933329137,"y":30128.991204924583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"f6c6fd6c-0917-4461-a327-69af16129979","savedPayload":{"position":{"x":18015.367863514162,"y":29892.192903811294},"targetPosition":{"x":17843.253198896644,"y":29986.0923458501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ad48743e-11b3-4e9a-9767-f2d72907299f","savedPayload":{"position":{"x":17843.253198896644,"y":29986.0923458501},"targetPosition":{"x":17580.870933329137,"y":30128.991204924583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"14f78e25-d3d8-4ee8-8511-07c19be592ec","savedPayload":{"position":{"x":20432.37618231316,"y":30218.034680356497},"targetPosition":{"x":19856.301618063546,"y":29866.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6b09d2c2-7ac5-40db-b680-87f2815e2109","savedPayload":{"position":{"x":20456.372705830698,"y":29422.754399018428},"targetPosition":{"x":20088.741357195555,"y":29988.857032381587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Limit Order","name":"Limit Buy Order #7","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2612e09d-8ba6-4c50-9513-341b4da6080a","savedPayload":{"position":{"x":19416.212829284847,"y":29393.089208951482},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"d3912688-22d8-4a54-bc73-302efbddad30","savedPayload":{"position":{"x":19521.71187955795,"y":29326.864490722437},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"d02af40e-a745-41b3-8740-0bcd18a18664","savedPayload":{"position":{"x":19637.583368060743,"y":29281.152773786926},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"82e747c3-4913-4ce6-8c69-d9cc46f2f138","savedPayload":{"position":{"x":19759.88143022479,"y":29257.510715840035},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f4870048-4305-4b2c-bb61-7bc43190f0af","savedPayload":{"position":{"x":19884.441352223446,"y":29256.74341880961},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3b29b69e-bd44-4cca-bb6e-4930c7e3695f","savedPayload":{"position":{"x":20007.021395306212,"y":29278.87701207576},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"c1cc192a-4f0e-4ed7-ace6-c56bf084c78b","savedPayload":{"position":{"x":20123.44724312446,"y":29323.157762666124},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"37d3d60f-80c4-4de0-ac52-ccfe5bc6cfa8","savedPayload":{"position":{"x":20229.75415306816,"y":29388.077742728252},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"dddaf984-1a75-4511-8f1a-6eeab4bfa93d","savedPayload":{"position":{"x":20322.321970820256,"y":29471.426180204064},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"89177c4c-3cfe-489b-9ed8-7af85c13567b","savedPayload":{"position":{"x":20397.998410370063,"y":29570.364744020757},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"f2eed8da-6556-423d-8dd4-bdeefc7c1bd4","savedPayload":{"position":{"x":20454.206401332594,"y":29681.524200051274},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"af682a52-f263-4989-9aa1-ccfdbad4bac1","savedPayload":{"position":{"x":20489.03184798968,"y":29801.119146341567},"targetPosition":{"x":20157.666733026614,"y":29865.177015378184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"38c42cf8-1c36-4e29-a274-8160e510dd82","savedPayload":{"position":{"x":20157.666733026614,"y":29865.177015378184},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"3d09eb30-6129-4103-96d4-90805564bd16","savedPayload":{"position":{"x":20501.288811523937,"y":29925.076920434054},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7c37d5f1-5b9c-4303-b00a-0ed498a1f9d7","savedPayload":{"position":{"x":20688.697064125656,"y":29775.9585873341},"targetPosition":{"x":20490.559895742805,"y":30049.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6b431250-651b-46de-b2eb-d8d6ac31fd2b","savedPayload":{"position":{"x":20787.620034023294,"y":29888.984141115587},"targetPosition":{"x":20490.559895742805,"y":30049.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"01ffc4b8-59e0-434b-9291-6549c6284ece","savedPayload":{"position":{"x":20827.706600330966,"y":30033.737714413932},"targetPosition":{"x":20490.559895742805,"y":30049.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1116159b-0ea7-4c55-a0c5-fadf76bf7935","savedPayload":{"position":{"x":20801.017126961975,"y":30181.549086751336},"targetPosition":{"x":20490.559895742805,"y":30049.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7950d646-808a-4c39-84a4-e4b769434e60","savedPayload":{"position":{"x":20712.83779144195,"y":30303.14240304885},"targetPosition":{"x":20490.559895742805,"y":30049.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"77f8e5ba-d4cb-466c-a310-4b4a0411ecc0","savedPayload":{"position":{"x":20580.63359261922,"y":30374.43461576959},"targetPosition":{"x":20490.559895742805,"y":30049.17628900298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9d714138-76af-4ffc-a3d6-3b91f538a220","savedPayload":{"position":{"x":20490.559895742805,"y":30049.17628900298},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"fada26f7-d74f-44cb-b837-1e5f07c65bd5","savedPayload":{"position":{"x":20702.177588513787,"y":29937.03315494643},"targetPosition":{"x":20457.210461005296,"y":30169.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"cd457342-4011-44b6-a199-8ff9ed3cd326","savedPayload":{"position":{"x":20778.647815855707,"y":30066.31128191018},"targetPosition":{"x":20457.210461005296,"y":30169.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"695c70b5-0c2a-4167-a554-6e54bcc8a550","savedPayload":{"position":{"x":20791.45343289905,"y":30215.966037775535},"targetPosition":{"x":20457.210461005296,"y":30169.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d3a952b5-4b25-496f-9ebe-b23a92b3dc67","savedPayload":{"position":{"x":20738.058130137793,"y":30356.356462748234},"targetPosition":{"x":20457.210461005296,"y":30169.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8ab3f8ec-1614-4b7a-b2f6-e2901e0decb6","savedPayload":{"position":{"x":20629.037502134222,"y":30459.676511386853},"targetPosition":{"x":20457.210461005296,"y":30169.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d9d683b4-56c2-4e94-acb1-8dc4010019fb","savedPayload":{"position":{"x":20485.984421314704,"y":30505.462380921286},"targetPosition":{"x":20457.210461005296,"y":30169.191196892512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"28d98991-dc7f-4f86-8b1c-11017bd6ce5c","savedPayload":{"position":{"x":20457.210461005296,"y":30169.191196892512},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7936390b-a672-4127-a666-cb6bdd262fdd","savedPayload":{"position":{"x":17263.33432243387,"y":29919.57615113799},"targetPosition":{"x":17550.870933329137,"y":30191.991204924583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1e8819ed-7051-4221-b5c2-820e67d283ea","savedPayload":{"position":{"x":17478.29368750171,"y":29802.474354879043},"targetPosition":{"x":17550.870933329137,"y":30191.991204924583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"bc03238d-774e-430c-945e-e71b5d7cff9d","savedPayload":{"position":{"x":17721.186508254523,"y":29833.465431407414},"targetPosition":{"x":17550.870933329137,"y":30191.991204924583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"685faf9b-c439-4e23-9954-08867d8fdd39","savedPayload":{"position":{"x":17985.367863514162,"y":29955.192903811294},"targetPosition":{"x":17813.253198896644,"y":30049.0923458501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eb7525d3-4548-475f-bdcd-72f10864ce58","savedPayload":{"position":{"x":17813.253198896644,"y":30049.0923458501},"targetPosition":{"x":17550.870933329137,"y":30191.991204924583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bc4aa133-ed34-423c-8fcb-1abc965867c4","savedPayload":{"position":{"x":20402.37618231316,"y":30281.034680356497},"targetPosition":{"x":19826.301618063546,"y":29929.2348844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9b628e4a-2adb-488f-9916-f2a950119635","savedPayload":{"position":{"x":20645.026534515415,"y":29606.532822457324},"targetPosition":{"x":20088.741357195555,"y":29988.857032381587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f8247166-0cc2-4b14-ba38-37795aa65d87","savedPayload":{"position":{"x":30709.741357195555,"y":24134.107032381587},"targetPosition":{"x":30803.301618063546,"y":24574.2734527118},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"limitSellOrders":{"type":"Limit Sell Orders","name":"New Limit Sell Orders","project":"Superalgos","limitOrders":[{"type":"Limit Order","name":"Limit Sell Order #1","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b93b7202-379b-42b8-8bf4-30c8ee6eb2b0","savedPayload":{"position":{"x":19334.02565604323,"y":29895.0594133672},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"61e8fafd-e4c8-4002-a4c5-3f61436788a8","savedPayload":{"position":{"x":19276.282446603676,"y":29784.689649950473},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"e6f893c2-0b55-4383-bac8-9cf1d4c84d1c","savedPayload":{"position":{"x":19239.802815844534,"y":29665.588854601658},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"57f75a48-8bd4-4cca-8a61-b2447a2e0ecb","savedPayload":{"position":{"x":19225.82903383881,"y":29541.812862060695},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"601a8f27-12cd-4770-ad2d-34ed37ea253d","savedPayload":{"position":{"x":19234.836960973007,"y":29417.576715300624},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6a7faff9-39e1-479e-8875-8da5c8555685","savedPayload":{"position":{"x":19266.519843092385,"y":29297.111127294527},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"163600f3-bf47-4a17-a399-578cef593d68","savedPayload":{"position":{"x":19319.7987576458,"y":29184.518409159406},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"0b05fbb2-9102-4921-ace7-13ae89e086a0","savedPayload":{"position":{"x":19392.85935509915,"y":29083.632770871278},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"22927833-41b3-4478-8a3b-c0d6d14183ca","savedPayload":{"position":{"x":19483.21364443269,"y":28997.889751843046},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"2c4f393e-d02b-4b97-a2d5-35c81590f77b","savedPayload":{"position":{"x":19587.78471869119,"y":28930.209227750303},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"3a7feba8-a01f-4459-9c95-bfec028b0c91","savedPayload":{"position":{"x":19703.011535359954,"y":28882.89597766719},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"31d8d314-f897-4c86-b303-ae6365c71657","savedPayload":{"position":{"x":19824.970183396665,"y":28857.5611975793},"targetPosition":{"x":19862.83197612552,"y":29192.93074695932},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"525dd597-3f3a-41c3-bf05-882d631a400d","savedPayload":{"position":{"x":19862.83197612552,"y":29192.93074695932},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"020c2bc8-15f0-4074-9f01-2ef3848665d7","savedPayload":{"position":{"x":19949.50750731571,"y":28855.0676330368},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"36ac5e3a-da4a-4356-8162-7adad0331fd4","savedPayload":{"position":{"x":19815.552738302038,"y":28656.537407962045},"targetPosition":{"x":20072.382537917078,"y":28875.50019938949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"50c0c606-517c-45dd-98b5-37408700fdb4","savedPayload":{"position":{"x":19935.99127878647,"y":28566.787267310567},"targetPosition":{"x":20072.382537917078,"y":28875.50019938949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"shortcutKey":"w"}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9ab92cbc-aa48-44d5-b006-91203998b94b","savedPayload":{"position":{"x":20083.443780870737,"y":28538.181508972964},"targetPosition":{"x":20072.382537917078,"y":28875.50019938949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c2965e06-91ec-4acf-aaa9-a4d23b3301f8","savedPayload":{"position":{"x":20228.70546813079,"y":28576.38585421461},"targetPosition":{"x":20072.382537917078,"y":28875.50019938949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"65109b61-420e-44f2-9fe1-e1594fb26ccc","savedPayload":{"position":{"x":20343.005481887092,"y":28673.833463914845},"targetPosition":{"x":20072.382537917078,"y":28875.50019938949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9452d3af-bbda-4b69-821b-291340311173","savedPayload":{"position":{"x":20403.705302617534,"y":28811.22364385603},"targetPosition":{"x":20072.382537917078,"y":28875.50019938949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2688db6f-483d-440e-8bc1-46774884e344","savedPayload":{"position":{"x":20072.382537917078,"y":28875.50019938949},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"3a6e4be3-f60c-4aad-874d-3b75485271c4","savedPayload":{"position":{"x":19977.18843653177,"y":28655.73620445132},"targetPosition":{"x":20189.410913405998,"y":28918.163090096386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2b6bd448-1833-4d7e-b0ce-6215ae843dfd","savedPayload":{"position":{"x":20112.067827061837,"y":28589.644754238616},"targetPosition":{"x":20189.410913405998,"y":28918.163090096386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"53b2fd1b-e305-4de2-87ad-5c7fede63db8","savedPayload":{"position":{"x":20262.265964393067,"y":28588.62038945553},"targetPosition":{"x":20189.410913405998,"y":28918.163090096386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d2080fab-3a99-44f8-89a6-9d9942fb9a27","savedPayload":{"position":{"x":20398.034265367744,"y":28652.865998110356},"targetPosition":{"x":20189.410913405998,"y":28918.163090096386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a6e7af83-68d1-41f1-9d1f-b1b8af71c45f","savedPayload":{"position":{"x":20492.482152888897,"y":28769.65694948833},"targetPosition":{"x":20189.410913405998,"y":28918.163090096386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e2fd39a4-12c4-4e69-ae03-cf88ef0dcba8","savedPayload":{"position":{"x":20526.90306450563,"y":28915.861363322016},"targetPosition":{"x":20189.410913405998,"y":28918.163090096386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0792e616-00d7-4c93-8e0e-eadaf04faf76","savedPayload":{"position":{"x":20189.410913405998,"y":28918.163090096386},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"94544402-f217-4671-8a78-a7f0ac1c7826","savedPayload":{"position":{"x":18554.059931675514,"y":28821.462529727323},"targetPosition":{"x":18841.59654257078,"y":29093.87758351391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"02898028-e79c-4650-9de9-83f533faacb4","savedPayload":{"position":{"x":18769.019296743354,"y":28704.36073346837},"targetPosition":{"x":18841.59654257078,"y":29093.87758351391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"78527442-4d45-4317-87d6-6be7bd952391","savedPayload":{"position":{"x":19011.912117496166,"y":28735.35180999674},"targetPosition":{"x":18841.59654257078,"y":29093.87758351391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"aa79b285-9cad-44f5-b1a7-bc66e1cc01ca","savedPayload":{"position":{"x":19276.093472755805,"y":28857.079282400628},"targetPosition":{"x":19103.978808138287,"y":28950.978724439425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a4cb4ecd-a8bc-4762-b7c5-cae00e806743","savedPayload":{"position":{"x":19103.978808138287,"y":28950.978724439425},"targetPosition":{"x":18841.59654257078,"y":29093.87758351391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"42c09a9e-3aec-44b8-8aa3-9211d2707503","savedPayload":{"position":{"x":20296.607372815262,"y":28981.603471582966},"targetPosition":{"x":19900.693768854373,"y":29528.300296339337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"929c1c8c-1964-4495-991c-0a516f1e9ba0","savedPayload":{"position":{"x":19900.693768854373,"y":29528.300296339337},"targetPosition":{"x":20365.333107447655,"y":30017.927996772632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"e"}}},{"type":"Limit Order","name":"Limit Sell Order #2","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e15dae16-7526-4267-9273-99a25b3a00f6","savedPayload":{"position":{"x":19459.549032596155,"y":29509.747952048565},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"b2f25feb-fed7-4511-b31e-fc1e14cb000c","savedPayload":{"position":{"x":19448.437943147073,"y":29385.68221703563},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"c50f2c48-b43c-464a-863c-c3ea0a866b4b","savedPayload":{"position":{"x":19460.31306009663,"y":29261.68727959672},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"bf7e3856-d410-4c9d-9315-08b3c2f830a2","savedPayload":{"position":{"x":19494.769990579738,"y":29141.985638610786},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ce6e002a-ec8f-4856-883a-66ca4e7adbbc","savedPayload":{"position":{"x":19550.635345155333,"y":29030.653589895293},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7b9b7ca1-14cf-4000-960b-cb74e974d09a","savedPayload":{"position":{"x":19626.006696176446,"y":28931.482412841193},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"2bb7de1a-a85f-4950-82f7-5d6e10e86ae3","savedPayload":{"position":{"x":19718.317362682028,"y":28847.849262940326},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"7ff72f98-48b5-4525-92d9-57b64cce2277","savedPayload":{"position":{"x":19824.423815638667,"y":28782.60216680568},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"48dcaeca-8ad9-4f3d-ab39-7124531aaaab","savedPayload":{"position":{"x":19940.712727051596,"y":28737.963036040834},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"046378c8-2a44-4501-ad49-ab79289c3838","savedPayload":{"position":{"x":20063.22401751582,"y":28715.452002705264},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"406574dc-e33c-4ca0-bac7-0360c0597f6b","savedPayload":{"position":{"x":20187.785711970675,"y":28715.835653040194},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"aa95b773-3784-4ad4-a0f3-5d6dc6bf12f0","savedPayload":{"position":{"x":20310.15601130679,"y":28739.10092229361},"targetPosition":{"x":20216.795376405684,"y":29063.431065590317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"65419c94-25bf-43f5-9a95-a3c5a22ed1f8","savedPayload":{"position":{"x":20216.795376405684,"y":29063.431065590317},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"61bd4976-9f93-4841-bd69-054e54be0b37","savedPayload":{"position":{"x":20426.16774174727,"y":28784.4555396247},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"21ae960d-6cac-4d7c-b7a1-9afeef86837f","savedPayload":{"position":{"x":20378.383900333087,"y":28549.775257305453},"targetPosition":{"x":20531.8702629527,"y":28850.355007937127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e171ab29-a9f0-4787-94cd-f63a8fd08f04","savedPayload":{"position":{"x":20524.00049469194,"y":28512.94677337916},"targetPosition":{"x":20531.8702629527,"y":28850.355007937127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a971e83d-f240-4750-b4b8-db6fb4884fc0","savedPayload":{"position":{"x":20671.175793171213,"y":28542.946128347518},"targetPosition":{"x":20531.8702629527,"y":28850.355007937127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5fcae54c-4a6f-4ed7-b0d9-6a5305980ead","savedPayload":{"position":{"x":20790.7599229205,"y":28633.831582041086},"targetPosition":{"x":20531.8702629527,"y":28850.355007937127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"962130d5-da33-4773-a0d3-8f837f9f0239","savedPayload":{"position":{"x":20859.067780439847,"y":28767.602155718923},"targetPosition":{"x":20531.8702629527,"y":28850.355007937127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"96fe0924-c448-49f9-8d35-3516cddadece","savedPayload":{"position":{"x":20862.570156806654,"y":28917.7629466757},"targetPosition":{"x":20531.8702629527,"y":28850.355007937127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"927e1f8b-1435-4838-8c19-89f5e08ca928","savedPayload":{"position":{"x":20531.8702629527,"y":28850.355007937127},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"cd98e3d4-3d9d-4aca-b61b-edf26b8193dd","savedPayload":{"position":{"x":20528.022420960217,"y":28610.890345571803},"targetPosition":{"x":20623.66400233963,"y":28934.555199875205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"851f78ee-6610-4f5f-a02b-8be28fab03e8","savedPayload":{"position":{"x":20677.92683224592,"y":28601.445915569646},"targetPosition":{"x":20623.66400233963,"y":28934.555199875205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"eaaf2c8e-717c-4329-86d8-44e514b2ad8e","savedPayload":{"position":{"x":20817.083824578753,"y":28657.977864641485},"targetPosition":{"x":20623.66400233963,"y":28934.555199875205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b7cc7990-9132-463f-827f-e4cb3b10a599","savedPayload":{"position":{"x":20917.931648978676,"y":28769.289346954778},"targetPosition":{"x":20623.66400233963,"y":28934.555199875205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"13599a3b-cba1-4992-990e-ea03ca474985","savedPayload":{"position":{"x":20960.496157005888,"y":28913.333758291636},"targetPosition":{"x":20623.66400233963,"y":28934.555199875205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a3f33aae-6f04-4f12-8976-a73359a3741b","savedPayload":{"position":{"x":20936.346925826165,"y":29061.58133639802},"targetPosition":{"x":20623.66400233963,"y":28934.555199875205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7305508f-4939-431c-be88-f4fd0896abd7","savedPayload":{"position":{"x":20623.66400233963,"y":28934.555199875205},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7e0ef872-6dbb-4383-bacd-3618f0c5421a","savedPayload":{"position":{"x":18592.437220858108,"y":29144.575541907536},"targetPosition":{"x":18879.973831753374,"y":29416.99059569413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1270d136-9730-4f09-878a-30a089bc8135","savedPayload":{"position":{"x":18807.396585925948,"y":29027.47374564859},"targetPosition":{"x":18879.973831753374,"y":29416.99059569413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f3e85b22-eee3-477d-998f-f564b7f32dd5","savedPayload":{"position":{"x":19050.28940667876,"y":29058.46482217696},"targetPosition":{"x":18879.973831753374,"y":29416.99059569413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"bfa4439c-9331-4a2f-8107-05f435d92685","savedPayload":{"position":{"x":19314.4707619384,"y":29180.19229458084},"targetPosition":{"x":19142.35609732088,"y":29274.091736619645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bc017de9-4fce-4d25-84a9-5cfdad34217e","savedPayload":{"position":{"x":19142.35609732088,"y":29274.091736619645},"targetPosition":{"x":18879.973831753374,"y":29416.99059569413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0a4e2dc8-458c-4bf6-be14-5bf2e5d2b765","savedPayload":{"position":{"x":20698.423034207688,"y":29034.18877888949},"targetPosition":{"x":20123.434741504578,"y":29387.761208887023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e133f5d4-034b-4333-9ea4-a6b52183476e","savedPayload":{"position":{"x":20123.434741504578,"y":29387.761208887023},"targetPosition":{"x":20365.333107447655,"y":30017.927996772632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Limit Order","name":"Limit Sell Order #3","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"21dfc9c5-eb2f-4c78-80e2-8259f7affefa","savedPayload":{"position":{"x":19722.96982359213,"y":29201.802295875583},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"435255ea-97df-49b6-a8e0-8317bada8362","savedPayload":{"position":{"x":19760.18241677987,"y":29082.92847276348},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"ecdf173f-f860-4072-8439-0cfc38cbe8a7","savedPayload":{"position":{"x":19818.60440253076,"y":28972.916498442646},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f0c266ca-9ffb-4ca0-a1fe-33ab9427c60f","savedPayload":{"position":{"x":19896.2462901895,"y":28875.512698753766},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5cbe73d5-f73c-4638-8577-34b8618cc383","savedPayload":{"position":{"x":19990.46407839306,"y":28794.03404327226},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c3e11b4b-c754-4d2b-b764-026ef7d58f3e","savedPayload":{"position":{"x":20098.04929336594,"y":28731.25518988767},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"62606235-38b2-4632-b325-6b7d342cb78e","savedPayload":{"position":{"x":20215.338249646487,"y":28689.313997157078},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"eec3d4f3-541c-406f-ab2a-f915553be12d","savedPayload":{"position":{"x":20338.336812501166,"y":28669.63872209601},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"52458d96-4992-4a22-826e-a58defe970e8","savedPayload":{"position":{"x":20462.85641339247,"y":28672.899382598778},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"3e3e4e4d-7951-4e3f-aad9-c383b7aa4e02","savedPayload":{"position":{"x":20584.656686656854,"y":28698.98494078269},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"173cac06-8ac9-44a1-97c5-c03f930f3e57","savedPayload":{"position":{"x":20699.58987007162,"y":28747.00708424997},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"19ca42cb-2a54-4731-b277-8af7fa427a7f","savedPayload":{"position":{"x":20803.74205192274,"y":28815.330476501054},"targetPosition":{"x":20593.372299739105,"y":29079.244889457594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"398d330c-c2d6-4568-b1bb-3f707f933712","savedPayload":{"position":{"x":20593.372299739105,"y":29079.244889457594},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"0921a747-2bc1-400c-a2d3-c9f2de534a9a","savedPayload":{"position":{"x":20893.56645457405,"y":28901.628446357703},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e772b9b0-eb04-46f7-b3ad-b7391556e38c","savedPayload":{"position":{"x":20939.22819745306,"y":28666.526052395006},"targetPosition":{"x":20966.004215725752,"y":29002.962219959467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4587d77c-0f66-4188-b7a1-804cbb7f973f","savedPayload":{"position":{"x":21087.854039212918,"y":28688.226028020654},"targetPosition":{"x":20966.004215725752,"y":29002.962219959467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c8fbc574-9bb0-436e-bf51-f3e3b3dff06e","savedPayload":{"position":{"x":21212.346029041128,"y":28772.263366445863},"targetPosition":{"x":20966.004215725752,"y":29002.962219959467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e5feb02b-e7f4-4d5f-aca8-09b74b330314","savedPayload":{"position":{"x":21288.047001558152,"y":28901.993442145198},"targetPosition":{"x":20966.004215725752,"y":29002.962219959467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"fd0fc56c-22e6-4d90-8005-553adb3798da","savedPayload":{"position":{"x":21299.963450745494,"y":29051.721622591453},"targetPosition":{"x":20966.004215725752,"y":29002.962219959467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"920b17bf-fe0e-4fed-bfba-fbc85bbb196a","savedPayload":{"position":{"x":21245.735177695944,"y":29191.79240535161},"targetPosition":{"x":20966.004215725752,"y":29002.962219959467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"341467d7-22c6-45bb-b7fb-9d45e39c17f9","savedPayload":{"position":{"x":20966.004215725752,"y":29002.962219959467},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"39b7fe39-2b11-4ba8-a2b5-6fcbc4f128eb","savedPayload":{"position":{"x":21054.088432188666,"y":28780.25321425953},"targetPosition":{"x":21018.588554301346,"y":29115.880997182794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8e86045f-2ec5-40b6-bd28-6cf203b7d72c","savedPayload":{"position":{"x":21196.196276498642,"y":28828.893633321793},"targetPosition":{"x":21018.588554301346,"y":29115.880997182794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"38b2dc9d-492d-4183-bcc2-1cc2edb12408","savedPayload":{"position":{"x":21303.126733211673,"y":28934.37541946576},"targetPosition":{"x":21018.588554301346,"y":29115.880997182794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"abe419e4-1bab-4116-a588-539058869394","savedPayload":{"position":{"x":21353.70091395976,"y":29075.806611296415},"targetPosition":{"x":21018.588554301346,"y":29115.880997182794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f89e98a8-a2d8-4440-bff5-e321f4fa4782","savedPayload":{"position":{"x":21337.901981994117,"y":29225.17502673196},"targetPosition":{"x":21018.588554301346,"y":29115.880997182794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"83e6f934-08de-4572-bc6b-e5b5edd3b26a","savedPayload":{"position":{"x":21258.859109551726,"y":29352.896419211982},"targetPosition":{"x":21018.588554301346,"y":29115.880997182794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f2412f2a-9af9-49aa-8cc3-d1f5b3393826","savedPayload":{"position":{"x":21018.588554301346,"y":29115.880997182794},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"63d2ceed-a735-4a6e-a480-7ea813d0c8e5","savedPayload":{"position":{"x":18951.05183725856,"y":29700.86192536768},"targetPosition":{"x":19238.588448153827,"y":29973.27697915426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"13cadd4e-2fe3-41ed-912e-3608eb4f35f3","savedPayload":{"position":{"x":19166.0112023264,"y":29583.760129108727},"targetPosition":{"x":19238.588448153827,"y":29973.27697915426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"22ad5823-ef3e-4d85-bd0c-22e6d3c87233","savedPayload":{"position":{"x":19408.904023079212,"y":29614.751205637098},"targetPosition":{"x":19238.588448153827,"y":29973.27697915426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"697772bb-a90c-455d-a0eb-ffb21046f211","savedPayload":{"position":{"x":19673.085378338852,"y":29736.478678040978},"targetPosition":{"x":19500.970713721334,"y":29830.378120079775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ed24a5b4-b33d-4068-b069-35529ac9c027","savedPayload":{"position":{"x":19500.970713721334,"y":29830.378120079775},"targetPosition":{"x":19238.588448153827,"y":29973.27697915426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c8b9919c-ca7b-4fef-877f-aa90d7fe867f","savedPayload":{"position":{"x":21049.528773718604,"y":29236.5394645005},"targetPosition":{"x":20383.00254755547,"y":29343.159302414133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a5d970bf-0f85-4546-9c4a-a0a113e7ea04","savedPayload":{"position":{"x":20383.00254755547,"y":29343.159302414133},"targetPosition":{"x":20365.333107447655,"y":30017.927996772632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Limit Order","name":"Limit Sell Order #4","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"43478f0c-6a3a-4939-a7db-236129532cf9","savedPayload":{"position":{"x":20084.18460151745,"y":29018.104379466284},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"b11738b3-7b4d-49b8-9b30-c49fcacbb1da","savedPayload":{"position":{"x":20164.05559736217,"y":28922.51993022993},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"ee5f047c-40d8-4fc3-985c-2f94a8e473c0","savedPayload":{"position":{"x":20260.13023418044,"y":28843.239244856486},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b7a5de66-c4be-4540-8d4b-b5c8569f5382","savedPayload":{"position":{"x":20369.136805444236,"y":28782.96213199965},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"86cc532f-273c-4cef-9fe4-1095739c3c59","savedPayload":{"position":{"x":20487.363223108143,"y":28743.741256443333},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"019fbb21-bf78-4cc0-87b0-15910b42b1ed","savedPayload":{"position":{"x":20610.78342831557,"y":28726.912238064346},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"63a76c09-04f5-4df0-a1c5-28ddbc8be5b6","savedPayload":{"position":{"x":20735.19449400441,"y":28733.048168899404},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"4677088b-93a1-4a06-ace6-2afff21d1c7e","savedPayload":{"position":{"x":20856.359750547243,"y":28761.940097183156},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"543746cc-7674-4cef-a773-499631d2cd1d","savedPayload":{"position":{"x":20970.15306045422,"y":28812.604142949946},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"8018fcb0-4077-448f-8d08-53c63251057d","savedPayload":{"position":{"x":21072.699329036488,"y":28883.31500288601},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"16fc199e-6a3d-4d52-842b-b8b89dc2134b","savedPayload":{"position":{"x":21160.506466108167,"y":28971.664703464558},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6cc6b150-b02b-4f94-b91f-798be8cc2e28","savedPayload":{"position":{"x":21230.58430492934,"y":29074.644601596177},"targetPosition":{"x":20935.23232322658,"y":29237.96470723003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"e86bb45a-c318-471c-b8e7-6a27b1dfa7fa","savedPayload":{"position":{"x":20935.23232322658,"y":29237.96470723003},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"37896346-c3dd-4c1e-9890-0de8095607dc","savedPayload":{"position":{"x":21280.546428748054,"y":29188.74784036076},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"42f061ed-52b6-4bf8-9603-0b7621767a79","savedPayload":{"position":{"x":21412.70216949166,"y":28989.015543026937},"targetPosition":{"x":21308.691437360623,"y":29310.08877081394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"12293cf5-ede5-4d18-bdab-de9c3976c7c1","savedPayload":{"position":{"x":21541.71032154119,"y":29065.940353626276},"targetPosition":{"x":21308.691437360623,"y":29310.08877081394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"84d7df9e-8a6e-4fb4-abce-3b5450a3037e","savedPayload":{"position":{"x":21624.566225789695,"y":29191.22175253347},"targetPosition":{"x":21308.691437360623,"y":29310.08877081394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0b55890d-e3e8-4e6c-bbd5-b4f8706fc52f","savedPayload":{"position":{"x":21644.859254239764,"y":29340.04622221942},"targetPosition":{"x":21308.691437360623,"y":29310.08877081394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a837b250-aade-4479-8f95-49298fd037c9","savedPayload":{"position":{"x":21598.57012372921,"y":29482.937251250485},"targetPosition":{"x":21308.691437360623,"y":29310.08877081394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"77b57646-02d9-4ce0-8240-aa3637421ea3","savedPayload":{"position":{"x":21494.866964254572,"y":29591.593518883594},"targetPosition":{"x":21308.691437360623,"y":29310.08877081394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4aa992de-9815-4ca7-b9b7-cc348fb0a706","savedPayload":{"position":{"x":21308.691437360623,"y":29310.08877081394},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"ee83b795-4340-4edf-9268-15576dd48467","savedPayload":{"position":{"x":21475.297688807874,"y":29138.040849035046},"targetPosition":{"x":21314.060886254967,"y":29434.53527310153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7c14d3ab-95e0-4fd0-8cb2-15259c9d72c7","savedPayload":{"position":{"x":21587.974335056737,"y":29237.361054285982},"targetPosition":{"x":21314.060886254967,"y":29434.53527310153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"02819dda-f0e1-49bf-a9ed-b07c4b8a4767","savedPayload":{"position":{"x":21646.399063442415,"y":29375.734031756445},"targetPosition":{"x":21314.060886254967,"y":29434.53527310153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"92e2d4bc-a719-4a37-b91d-79b91fa7e09d","savedPayload":{"position":{"x":21639.00013997586,"y":29525.753316225193},"targetPosition":{"x":21314.060886254967,"y":29434.53527310153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"8daf0f36-1e8e-4f1a-bc44-e8a8e2492d45","savedPayload":{"position":{"x":21567.24301219145,"y":29657.705748537424},"targetPosition":{"x":21314.060886254967,"y":29434.53527310153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"bd9e6a90-448a-42e9-9582-fc577ec8a819","savedPayload":{"position":{"x":21445.340059290324,"y":29745.456531183307},"targetPosition":{"x":21314.060886254967,"y":29434.53527310153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ef56bd7f-b36d-47ec-bc9f-861728d84989","savedPayload":{"position":{"x":21314.060886254967,"y":29434.53527310153},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"cf1e2969-52f2-47a6-af1d-d2f8cdc05d28","savedPayload":{"position":{"x":18640.437220858108,"y":29140.575541907536},"targetPosition":{"x":18927.973831753374,"y":29412.99059569413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7b0037a1-612c-4cad-8f1c-9f96b2450d96","savedPayload":{"position":{"x":18855.396585925948,"y":29023.47374564859},"targetPosition":{"x":18927.973831753374,"y":29412.99059569413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f8c739bf-e5d3-45d9-b965-b91a8eeb0cf9","savedPayload":{"position":{"x":19098.28940667876,"y":29054.46482217696},"targetPosition":{"x":18927.973831753374,"y":29412.99059569413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"1753e430-35e6-40b7-935c-d020b28ebf90","savedPayload":{"position":{"x":19362.4707619384,"y":29176.19229458084},"targetPosition":{"x":19190.35609732088,"y":29270.091736619645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5977664e-04dc-4333-91dd-951bae431ac7","savedPayload":{"position":{"x":19190.35609732088,"y":29270.091736619645},"targetPosition":{"x":18927.973831753374,"y":29412.99059569413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8b70f49a-490a-4ef5-a310-9e9828a611ff","savedPayload":{"position":{"x":21296.47192528893,"y":29557.849470845264},"targetPosition":{"x":20639.88034152382,"y":29401.28481286388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7fb716f8-8bba-4c0d-8df3-69a7bc9ae317","savedPayload":{"position":{"x":20639.88034152382,"y":29401.28481286388},"targetPosition":{"x":20365.333107447655,"y":30017.927996772632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Limit Order","name":"Limit Sell Order #5","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c21909ae-7bce-48a4-97c0-03001f36bc9a","savedPayload":{"position":{"x":20488.201690853086,"y":28986.620545368205},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"6628bc0e-a38e-42bc-ae67-447a6094e6e8","savedPayload":{"position":{"x":20598.57145426981,"y":28928.877335928657},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"af947606-2995-4abb-899d-bf1612455701","savedPayload":{"position":{"x":20717.67224961863,"y":28892.39770516951},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"11f5acb6-bca7-4df0-9c5a-28e500087b70","savedPayload":{"position":{"x":20841.448242159597,"y":28878.423923163784},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"01da2344-3681-4947-8e39-b632718a6a35","savedPayload":{"position":{"x":20965.684388919668,"y":28887.43185029798},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"732ad726-a4c8-4561-a4de-a59b25111848","savedPayload":{"position":{"x":21086.14997692576,"y":28919.114732417365},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"e83e876a-31fb-4a82-9a3b-afa626f1c103","savedPayload":{"position":{"x":21198.74269506088,"y":28972.393646970777},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"263be304-708d-4f68-a896-12214ac404ef","savedPayload":{"position":{"x":21299.628333349014,"y":29045.45424442413},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"4567768f-7801-4b8e-9506-02435026da34","savedPayload":{"position":{"x":21385.371352377246,"y":29135.808533757663},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"44d63c52-6d96-48dd-8492-44526e0ddea2","savedPayload":{"position":{"x":21453.051876469985,"y":29240.379608016163},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"77cc4f80-04c4-4907-b914-b46fc9531c8f","savedPayload":{"position":{"x":21500.365126553097,"y":29355.606424684935},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"eb351029-a49c-46ba-ba2c-302a353ff97b","savedPayload":{"position":{"x":21525.699906640988,"y":29477.56507272165},"targetPosition":{"x":21190.33035726097,"y":29515.4268654505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"4f014f57-4f7b-460d-b740-6c3a6c1df9bf","savedPayload":{"position":{"x":21190.33035726097,"y":29515.4268654505},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"f29b9169-c7cc-4ab2-9013-92a353605f2d","savedPayload":{"position":{"x":21528.193471183487,"y":29602.102396640686},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f3faef60-5aba-4eec-8e35-a584de65dc14","savedPayload":{"position":{"x":21726.723696258246,"y":29468.14762762702},"targetPosition":{"x":21507.7609048308,"y":29724.977427242055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5d887d94-d554-4a08-b37c-3cb901e34a16","savedPayload":{"position":{"x":21816.473836909725,"y":29588.586168111447},"targetPosition":{"x":21507.7609048308,"y":29724.977427242055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"de852846-2ada-4974-bf5f-39c1e126834b","savedPayload":{"position":{"x":21845.079595247327,"y":29736.03867019571},"targetPosition":{"x":21507.7609048308,"y":29724.977427242055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7eb49c05-59dc-483b-b40c-56c31d71a2f8","savedPayload":{"position":{"x":21806.875250005683,"y":29881.300357455766},"targetPosition":{"x":21507.7609048308,"y":29724.977427242055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"03450469-57f1-4efa-9f64-b751c125aa96","savedPayload":{"position":{"x":21709.42764030545,"y":29995.600371212073},"targetPosition":{"x":21507.7609048308,"y":29724.977427242055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e51385a8-87d1-4a59-9f45-f271e01c9804","savedPayload":{"position":{"x":21572.03746036426,"y":30056.300191942508},"targetPosition":{"x":21507.7609048308,"y":29724.977427242055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f872512b-a913-4f51-9e5a-23196a41bf42","savedPayload":{"position":{"x":21507.7609048308,"y":29724.977427242055},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f03155f6-d118-4bc7-a459-06ac485f5332","savedPayload":{"position":{"x":21727.524899768967,"y":29629.783325856755},"targetPosition":{"x":21465.0980141239,"y":29842.00580273098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1229e93b-73e5-43f8-a857-4cb0829eb0d8","savedPayload":{"position":{"x":21793.616349981672,"y":29764.662716386818},"targetPosition":{"x":21465.0980141239,"y":29842.00580273098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"17ca5b23-50ae-4711-a2e0-48b5fb70e8a1","savedPayload":{"position":{"x":21794.640714764762,"y":29914.860853718048},"targetPosition":{"x":21465.0980141239,"y":29842.00580273098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"c603c52c-44c7-4137-a34e-1817e5efe103","savedPayload":{"position":{"x":21730.395106109932,"y":30050.629154692724},"targetPosition":{"x":21465.0980141239,"y":29842.00580273098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0c23efa1-82e9-44c7-b863-dc186153f2d4","savedPayload":{"position":{"x":21613.60415473196,"y":30145.077042213874},"targetPosition":{"x":21465.0980141239,"y":29842.00580273098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0d9004c8-6370-42cf-a432-477ffbd8bc6a","savedPayload":{"position":{"x":21467.39974089827,"y":30179.497953830607},"targetPosition":{"x":21465.0980141239,"y":29842.00580273098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ad61a2f9-b057-485c-b18a-492e0ad86541","savedPayload":{"position":{"x":21465.0980141239,"y":29842.00580273098},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"eeaf0a5e-54fa-431a-974b-f62ae5097578","savedPayload":{"position":{"x":18617.033994885256,"y":29803.94481319523},"targetPosition":{"x":18904.570605780522,"y":30076.35986698181},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"578670d9-2033-417d-bdbb-8ae5a38511f1","savedPayload":{"position":{"x":18831.993359953096,"y":29686.843016936276},"targetPosition":{"x":18904.570605780522,"y":30076.35986698181},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"fe07db0c-aae2-4697-8caa-523ad1dc38a9","savedPayload":{"position":{"x":19074.886180705907,"y":29717.834093464648},"targetPosition":{"x":18904.570605780522,"y":30076.35986698181},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"d96a7df0-089c-4e53-a9bf-ec276a357d5b","savedPayload":{"position":{"x":19339.067535965547,"y":29839.561565868527},"targetPosition":{"x":19166.95287134803,"y":29933.461007907325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9a3fb4f7-641a-4ff8-8a17-3461011e8e30","savedPayload":{"position":{"x":19166.95287134803,"y":29933.461007907325},"targetPosition":{"x":18904.570605780522,"y":30076.35986698181},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a270a831-de12-4466-a643-3d21f866a19b","savedPayload":{"position":{"x":21401.65763263732,"y":29949.202262140243},"targetPosition":{"x":20854.96080788095,"y":29553.28865817935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3c44b04d-6b6b-4278-ba85-898b1f12cdfa","savedPayload":{"position":{"x":20854.96080788095,"y":29553.28865817935},"targetPosition":{"x":20365.333107447655,"y":30017.927996772632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Limit Order","name":"Limit Sell Order #6","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9c727aaf-1a30-4470-9318-2f8825c33024","savedPayload":{"position":{"x":20873.513152171727,"y":29112.143921921124},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"00f6d4a8-702b-4c06-bcd5-c7a557564ce8","savedPayload":{"position":{"x":20997.578887184656,"y":29101.032832472047},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"fc4008d3-a179-4d99-b0bd-f27eb6a615fe","savedPayload":{"position":{"x":21121.573824623567,"y":29112.907949421606},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e3568259-dff9-47c5-99da-f254adc3d046","savedPayload":{"position":{"x":21241.275465609506,"y":29147.364879904715},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7c07afb3-62e6-4d0b-a854-290a842c0aaf","savedPayload":{"position":{"x":21352.60751432499,"y":29203.230234480303},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"41c315de-6ccb-4f5f-a929-33a59a1dbc37","savedPayload":{"position":{"x":21451.7786913791,"y":29278.60158550142},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"b8b1bdaa-e081-4e66-8a55-9a5df6520c74","savedPayload":{"position":{"x":21535.411841279958,"y":29370.912252007},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"ab9e5c18-bc35-4490-a925-154c0ec58163","savedPayload":{"position":{"x":21600.65893741461,"y":29477.018704963644},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"64cf7d12-6dab-4925-9582-e0d25fe98019","savedPayload":{"position":{"x":21645.298068179454,"y":29593.307616376573},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"7d294033-4349-4bb2-936e-4d9d1e93e32b","savedPayload":{"position":{"x":21667.809101515028,"y":29715.818906840796},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"eedd3c1c-9624-4090-bdad-6969901a8dee","savedPayload":{"position":{"x":21667.425451180094,"y":29840.38060129565},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"403af118-41a8-426d-a929-f68f23caafc4","savedPayload":{"position":{"x":21644.160181926676,"y":29962.75090063177},"targetPosition":{"x":21319.83003862997,"y":29869.39026573066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"2895d29d-2521-4073-81d8-a444696ed084","savedPayload":{"position":{"x":21319.83003862997,"y":29869.39026573066},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"6f5d0936-6867-4375-a034-655623224b20","savedPayload":{"position":{"x":21598.805564595586,"y":30078.762631072248},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"bce7180e-040c-4f8b-a9b3-86bf0d9664d8","savedPayload":{"position":{"x":21833.48584691484,"y":30030.97878965806},"targetPosition":{"x":21532.90609628316,"y":30184.465152277677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a28ea194-f3ec-47d0-96c1-c1c680810a44","savedPayload":{"position":{"x":21870.314330841124,"y":30176.595384016917},"targetPosition":{"x":21532.90609628316,"y":30184.465152277677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"20b0bac5-aef4-4ee3-ba01-32e3db00e5a2","savedPayload":{"position":{"x":21840.31497587277,"y":30323.770682496193},"targetPosition":{"x":21532.90609628316,"y":30184.465152277677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"7a704287-a289-4834-bc5e-893c19c23817","savedPayload":{"position":{"x":21749.429522179198,"y":30443.354812245474},"targetPosition":{"x":21532.90609628316,"y":30184.465152277677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"72bf8991-9547-4202-9784-9bb9acba42b0","savedPayload":{"position":{"x":21615.658948501365,"y":30511.662669764824},"targetPosition":{"x":21532.90609628316,"y":30184.465152277677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"b6f079e8-44f8-47e4-a323-48da22aa9d93","savedPayload":{"position":{"x":21465.49815754459,"y":30515.16504613163},"targetPosition":{"x":21532.90609628316,"y":30184.465152277677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8d7fdc43-8442-4477-9d6d-bdbd65c19434","savedPayload":{"position":{"x":21532.90609628316,"y":30184.465152277677},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5fbeec0b-5946-47c7-bac0-11baaf975f5a","savedPayload":{"position":{"x":21772.37075864849,"y":30180.617310285183},"targetPosition":{"x":21448.705904345083,"y":30276.2588916646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"9d8bcda5-45b6-4b04-8247-e3a85d8dc3ae","savedPayload":{"position":{"x":21781.81518865064,"y":30330.52172157089},"targetPosition":{"x":21448.705904345083,"y":30276.2588916646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"4dd613cf-99fe-45bc-be8e-bb24ae859dd7","savedPayload":{"position":{"x":21725.283239578803,"y":30469.67871390372},"targetPosition":{"x":21448.705904345083,"y":30276.2588916646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"80e5a664-a670-46be-b835-ac0b6a16f210","savedPayload":{"position":{"x":21613.97175726551,"y":30570.526538303646},"targetPosition":{"x":21448.705904345083,"y":30276.2588916646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"d0f2e08f-5270-4c1d-b408-4c0ce2d91cc2","savedPayload":{"position":{"x":21469.927345928652,"y":30613.09104633086},"targetPosition":{"x":21448.705904345083,"y":30276.2588916646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f6757945-c686-4e3f-8423-2699c33c02a4","savedPayload":{"position":{"x":21321.679767822272,"y":30588.941815151135},"targetPosition":{"x":21448.705904345083,"y":30276.2588916646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c4fe4a32-5cb5-42c3-ae18-f5d888f9b8f0","savedPayload":{"position":{"x":21448.705904345083,"y":30276.2588916646},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"41425b71-3c1f-4952-ab7e-c073498f118a","savedPayload":{"position":{"x":18741.523975783537,"y":30101.080267022327},"targetPosition":{"x":19029.060586678803,"y":30373.495320808906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"553275c8-ceea-497c-95b7-1e23f6e51a58","savedPayload":{"position":{"x":18956.483340851377,"y":29983.978470763373},"targetPosition":{"x":19029.060586678803,"y":30373.495320808906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"35916359-97c9-4ab4-8ca7-a6c5f60d17da","savedPayload":{"position":{"x":19199.37616160419,"y":30014.969547291745},"targetPosition":{"x":19029.060586678803,"y":30373.495320808906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"a63dd474-1b20-4504-8790-f3a53ec5a725","savedPayload":{"position":{"x":19463.557516863828,"y":30136.697019695624},"targetPosition":{"x":19291.44285224631,"y":30230.59646173442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"eca5c17c-3f6a-49b1-951e-53339faa9d14","savedPayload":{"position":{"x":19291.44285224631,"y":30230.59646173442},"targetPosition":{"x":19029.060586678803,"y":30373.495320808906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0c92fa7f-81c6-4abd-941b-1ef17c952c7e","savedPayload":{"position":{"x":21349.072325330802,"y":30351.017923532658},"targetPosition":{"x":20995.499895333265,"y":29776.02963082955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"90d28d1e-6fd2-4a83-a423-3f34bf455004","savedPayload":{"position":{"x":20995.499895333265,"y":29776.02963082955},"targetPosition":{"x":20365.333107447655,"y":30017.927996772632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Limit Order","name":"Limit Sell Order #7","project":"Superalgos","serialNumber":{"type":"Serial Number","name":"New Serial Number","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"fa31d1c9-8ee0-4ba8-87ae-a5771ad35b44","savedPayload":{"position":{"x":21181.458808344705,"y":29375.564712917112},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"identifier":{"type":"Identifier","name":"New Identifier","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"c9a2076d-d9bf-48c8-abfb-f3edb9905fd1","savedPayload":{"position":{"x":21300.33263145681,"y":29412.77730610485},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exchangeId":{"type":"Exchange Id","name":"New Exchange Id","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"d910eaf4-2bcb-4b9c-8f70-5d69ed385648","savedPayload":{"position":{"x":21410.344605777642,"y":29471.199291855737},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"begin":{"type":"Begin","name":"New Begin","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"a027a7b2-1833-4557-9c72-ac1f84e8889e","savedPayload":{"position":{"x":21507.748405466526,"y":29548.84117951448},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"end":{"type":"End","name":"New End","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e8a616de-c956-474b-a572-943dba739546","savedPayload":{"position":{"x":21589.227060948033,"y":29643.05896771804},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rate":{"type":"Rate","name":"New Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5b4b3cd4-6107-4940-9e0d-80614590def4","savedPayload":{"position":{"x":21652.005914332618,"y":29750.644182690914},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"exitType":{"type":"Exit Type","name":"New Exit Type","config":"{\n\"initialValue\": \"No Exit\"\n}","project":"Superalgos","id":"0299f975-8ff6-4062-ada4-7602145d273a","savedPayload":{"position":{"x":21693.947107063206,"y":29867.933138971464},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"status":{"type":"Status","name":"New Status","config":"{\n\"initialValue\": \"Not Open\"\n}","project":"Superalgos","id":"4ea390ec-59f1-41cd-8a1d-6489d492be32","savedPayload":{"position":{"x":21713.622382124275,"y":29990.931701826143},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderName":{"type":"Order Name","name":"New Order Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"dfad8d25-bbb5-49e3-a595-83d97ad08a35","savedPayload":{"position":{"x":21710.36172162151,"y":30115.451302717447},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"algorithmName":{"type":"Algorithm Name","name":"New Algorithm Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"dfdae604-14c1-471a-9c5b-ec2b3ef28dc7","savedPayload":{"position":{"x":21684.2761634376,"y":30237.251575981827},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"situationName":{"type":"Situation Name","name":"New Situation Name","config":"{\n\"initialValue\": \"\"\n}","project":"Superalgos","id":"402a0802-a66e-4241-9b40-716457d3ee7a","savedPayload":{"position":{"x":21636.254019970318,"y":30352.1847593966},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderCounters":{"type":"Order Counters","name":"New Order Counters","project":"Superalgos","periods":{"type":"Periods","name":"New Periods","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"e5d84547-cd32-4627-b4e8-1d0b3cf34e1e","savedPayload":{"position":{"x":21567.930627719234,"y":30456.33694124772},"targetPosition":{"x":21304.016214762694,"y":30245.967189064082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"userDefinedCounters":[],"id":"a6ed37b6-d121-4b7d-a928-b7e131c8ebbc","savedPayload":{"position":{"x":21304.016214762694,"y":30245.967189064082},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"lock":{"type":"Lock","name":"New Lock","config":"{\n\"initialValue\": \"Open\"\n}","project":"Superalgos","id":"e00e5e44-6768-485d-b98f-d07c032b95c4","savedPayload":{"position":{"x":21481.63265786258,"y":30546.161343899024},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"orderBaseAsset":{"type":"Order Base Asset","name":"New Order Base Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"37c1f14a-3dc7-46cc-982f-facdb981df85","savedPayload":{"position":{"x":21716.735051825275,"y":30591.823086778037},"targetPosition":{"x":21380.298884260817,"y":30618.59910505073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"1919145a-09dc-44f1-bf66-db1cd2423d19","savedPayload":{"position":{"x":21695.03507619963,"y":30740.448928537895},"targetPosition":{"x":21380.298884260817,"y":30618.59910505073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"f0086e54-7654-4319-8cd1-32aba52593ba","savedPayload":{"position":{"x":21610.997737774425,"y":30864.940918366105},"targetPosition":{"x":21380.298884260817,"y":30618.59910505073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"244d134e-63c9-4f01-9e5b-a64b74114ca8","savedPayload":{"position":{"x":21481.267662075083,"y":30940.641890883133},"targetPosition":{"x":21380.298884260817,"y":30618.59910505073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"fc1b011f-bc04-470d-9446-facb1649bd97","savedPayload":{"position":{"x":21331.53948162883,"y":30952.55834007047},"targetPosition":{"x":21380.298884260817,"y":30618.59910505073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"edcd8dc1-7e0e-49d9-bfd5-ce9e08138be9","savedPayload":{"position":{"x":21191.468698868674,"y":30898.33006702092},"targetPosition":{"x":21380.298884260817,"y":30618.59910505073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9f098ef2-5e76-4a6f-a220-905680a6a857","savedPayload":{"position":{"x":21380.298884260817,"y":30618.59910505073},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderQuotedAsset":{"type":"Order Quoted Asset","name":"New Order Quoted Asset","project":"Superalgos","actualSize":{"type":"Actual Size","name":"New Actual Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"606e7a63-b911-4c72-9b6f-453330b7d907","savedPayload":{"position":{"x":21603.007889960754,"y":30706.683321513643},"targetPosition":{"x":21267.38010703749,"y":30671.183443626323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"size":{"type":"Size","name":"New Size","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"0393cb12-8ea6-4ce1-acc0-c9d74cc38515","savedPayload":{"position":{"x":21554.367470898495,"y":30848.79116582362},"targetPosition":{"x":21267.38010703749,"y":30671.183443626323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"sizeFilled":{"type":"Size Filled","name":"New Size Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"6345257d-26b2-4e6b-9126-adecf0940dcb","savedPayload":{"position":{"x":21448.885684754525,"y":30955.72162253665},"targetPosition":{"x":21267.38010703749,"y":30671.183443626323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"amountReceived":{"type":"Amount Received","name":"New Amount Received","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"2d00e2be-471c-4603-bdeb-80f7c85f3d3b","savedPayload":{"position":{"x":21307.454492923865,"y":31006.29580328474},"targetPosition":{"x":21267.38010703749,"y":30671.183443626323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesPaid":{"type":"Fees Paid","name":"New Fees Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"32bad449-4c6d-4e9f-b8b4-0f9ff1478aaa","savedPayload":{"position":{"x":21158.086077488322,"y":30990.49687131909},"targetPosition":{"x":21267.38010703749,"y":30671.183443626323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"feesToBePaid":{"type":"Fees To Be Paid","name":"New Fees To Be Paid","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"99a244e7-f907-41d5-b32d-822f27730787","savedPayload":{"position":{"x":21030.3646850083,"y":30911.4539988767},"targetPosition":{"x":21267.38010703749,"y":30671.183443626323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c69e4280-e76f-4b74-8178-3363c95d7b4d","savedPayload":{"position":{"x":21267.38010703749,"y":30671.183443626323},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"orderStatistics":{"type":"Order Statistics","name":"New Order Statistics","project":"Superalgos","percentageFilled":{"type":"Percentage Filled","name":"New Percentage Filled","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"61215a99-f445-4ba1-a76a-0f46a754b027","savedPayload":{"position":{"x":18681.523975783537,"y":30236.080267022327},"targetPosition":{"x":18969.060586678803,"y":30508.495320808906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"actualRate":{"type":"Actual Rate","name":"New Actual Rate","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"5436c96d-ed7b-4b52-abc9-9739ef923808","savedPayload":{"position":{"x":18896.483340851377,"y":30118.978470763373},"targetPosition":{"x":18969.060586678803,"y":30508.495320808906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"days":{"type":"Days","name":"New Days","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","id":"79935293-07bc-4415-bb91-1e45c95064e4","savedPayload":{"position":{"x":19139.37616160419,"y":30149.969547291745},"targetPosition":{"x":18969.060586678803,"y":30508.495320808906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"userDefinedStatistics":[{"type":"User Defined Statistic","name":"New User Defined Statistic","config":"{\n\"initialValue\": 0\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"80438372-c0f2-4f67-ae8f-7c5e909a990a","savedPayload":{"position":{"x":19403.557516863828,"y":30271.697019695624},"targetPosition":{"x":19231.44285224631,"y":30365.59646173442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a1c12939-d02f-483d-b5e9-6532f4f88c08","savedPayload":{"position":{"x":19231.44285224631,"y":30365.59646173442},"targetPosition":{"x":18969.060586678803,"y":30508.495320808906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"61467c34-b621-4980-876a-9c66eef0144f","savedPayload":{"position":{"x":21146.721639719788,"y":30702.12366304358},"targetPosition":{"x":21040.101801806155,"y":30035.597436880445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5bfce673-ceb2-4104-bd7e-75d62453164e","savedPayload":{"position":{"x":21040.101801806155,"y":30035.597436880445},"targetPosition":{"x":20365.333107447655,"y":30017.927996772632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1b0f368b-51b9-4c61-9c7b-b0b308cf7ba9","savedPayload":{"position":{"x":30986.333107447655,"y":24163.17799677263},"targetPosition":{"x":30803.301618063546,"y":24574.2734527118},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"07f9794a-dea7-4075-bdea-00e4b90960a6","savedPayload":{"position":{"x":30803.301618063546,"y":24574.2734527118},"targetPosition":{"x":31028.301618063546,"y":24963.9848844148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"eb20f622-71bf-4479-a574-d2320e1d4bd1","savedPayload":{"position":{"x":31028.301618063546,"y":24963.9848844148},"targetPosition":{"x":31028.301618063546,"y":24963.9848844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Trading System","name":"Hello World Trading System","project":"Superalgos","tradingStrategies":[{"type":"Trading Strategy","name":"Hello World Strategy","project":"Superalgos","triggerStage":{"type":"Trigger Stage","name":"New Trigger Stage","project":"Superalgos","triggerOn":{"type":"Trigger On Event","name":"New Trigger On Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"SMA50 > SMA200","code":"chart.at04hs.popularSMA.sma50 > chart.at04hs.popularSMA.sma200","project":"Superalgos","id":"aa5d3611-c281-49a9-ac5c-3f1dd6ddb188","savedPayload":{"position":{"x":30690.404084004633,"y":30632.686682062475},"targetPosition":{"x":30840.19851421782,"y":30624.836288626033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"70ad156a-d631-4bde-97ba-ebbed0be9fb0","savedPayload":{"position":{"x":30840.19851421782,"y":30624.836288626033},"targetPosition":{"x":30989.992944431007,"y":30616.98589518959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"PREVIOUS SMA50 < SMA200","code":"chart.at04hs.popularSMA.previous.sma50 < chart.at04hs.popularSMA.previous.sma200","project":"Superalgos","id":"46c234bc-a7f7-47b6-87d3-179416477d08","savedPayload":{"position":{"x":30826.601233926496,"y":30365.384724805965},"targetPosition":{"x":30908.29708917875,"y":30491.185309997778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9a8d5312-39d3-45b4-9da9-1968d46353d5","savedPayload":{"position":{"x":30908.29708917875,"y":30491.185309997778},"targetPosition":{"x":30989.992944431007,"y":30616.98589518959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7eea5636-ac5a-4a55-9559-e71508fcabb1","savedPayload":{"position":{"x":30989.992944431007,"y":30616.98589518959},"targetPosition":{"x":31123.643923059262,"y":30685.084470150523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"1daea4f0-6f2f-4aa3-bc75-39b86e70f63b","savedPayload":{"position":{"x":31123.643923059262,"y":30685.084470150523},"targetPosition":{"x":31257.294901687517,"y":30753.183045111455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","name":"New Trigger Off Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"False","code":"false","project":"Superalgos","id":"78c13813-7d93-42b2-8b6e-684e55bc27d7","savedPayload":{"position":{"x":31071.884705062545,"y":30182.549135334357},"targetPosition":{"x":31118.237254218788,"y":30325.20761277863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b4fb261e-4e3c-4fb5-9c90-1e7d66f56495","savedPayload":{"position":{"x":31118.237254218788,"y":30325.20761277863},"targetPosition":{"x":31164.58980337503,"y":30467.866090222906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b3cca434-df32-4896-84d3-cc6ea988ad39","savedPayload":{"position":{"x":31164.58980337503,"y":30467.866090222906},"targetPosition":{"x":31210.942352531274,"y":30610.52456766718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"8cd9345d-9d26-4baa-900b-fef145444218","savedPayload":{"position":{"x":31210.942352531274,"y":30610.52456766718},"targetPosition":{"x":31257.294901687517,"y":30753.183045111455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","name":"New Take Position Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"True","code":"true","project":"Superalgos","id":"49461e3c-04c0-466a-8e52-cc36fb95b64c","savedPayload":{"position":{"x":31529.689201531244,"y":30218.579130598435},"targetPosition":{"x":31461.590626570312,"y":30352.23010922669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"740bded8-0ed9-420e-8a08-eef70d5a5ebe","savedPayload":{"position":{"x":31461.590626570312,"y":30352.23010922669},"targetPosition":{"x":31393.49205160938,"y":30485.881087854945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"86611e2c-0232-41ae-9eb9-c7c91ac8118c","savedPayload":{"position":{"x":31393.49205160938,"y":30485.881087854945},"targetPosition":{"x":31325.39347664845,"y":30619.5320664832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"e6b6fbce-70b3-4aa8-bcc7-245330ee2c6c","savedPayload":{"position":{"x":31325.39347664845,"y":30619.5320664832},"targetPosition":{"x":31257.294901687517,"y":30753.183045111455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"2813f9a3-ad86-4961-8fa2-2e2ec805d78c","savedPayload":{"position":{"x":31257.294901687517,"y":30753.183045111455},"targetPosition":{"x":31350,"y":31038.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openStage":{"type":"Open Stage","name":"New Open Stage","config":"{\n\"roundingErrorCorrectionFactor\": 1.01 \n}","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"4H Close","code":"chart.at04hs.candle.close\n\n/* Here it would be preferable to use another formula that does not force us to change the TF if it is changed in the strategy.\nSo we can use this code\n\ntradingEngine.tradingCurrent.tradingEpisode.candle.close.value\n\nTry it!\nAnd you can use this in the Close Stage Target Rate node too\n\n*/","project":"Superalgos","id":"34b744f4-7cf5-4474-a920-1a805e728391","savedPayload":{"position":{"x":31622.357055793556,"y":30426.77603705538},"targetPosition":{"x":31638.036325283705,"y":30575.954321360623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a989af2a-6dfc-4550-a846-7150eb914ee7","savedPayload":{"position":{"x":31638.036325283705,"y":30575.954321360623},"targetPosition":{"x":31653.715594773854,"y":30725.132605665865},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInQuotedAsset":{"type":"Target Size In Quoted Asset","name":"New Target Size In Quoted Asset","project":"Superalgos","formula":{"type":"Formula","name":"Full Balance","code":"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset.balance.value","project":"Superalgos","id":"26be6b42-8c82-4d3b-9225-0473123a32b1","savedPayload":{"position":{"x":31896.42069308634,"y":30548.797029978123},"targetPosition":{"x":31775.068143930097,"y":30636.964817821994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c8d8e437-6f69-447a-9739-c789ae8fea6e","savedPayload":{"position":{"x":31775.068143930097,"y":30636.964817821994},"targetPosition":{"x":31653.715594773854,"y":30725.132605665865},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"4e354f7b-687a-412d-961c-93b9f41fa7ec","savedPayload":{"position":{"x":31653.715594773854,"y":30725.132605665865},"targetPosition":{"x":31592.705098312483,"y":30862.164424312257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"openExecution":{"type":"Open Execution","name":"New Open Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[{"type":"Market Buy Order","name":"Open Buy Market Order","config":"{\n \"percentageOfAlgorithmSize\": 100,\n \"spawnMultipleOrders\": false\n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"True","code":"true","project":"Superalgos","id":"1efacc41-1d7d-4467-9e11-99976da0da20","savedPayload":{"position":{"x":32636.95308844918,"y":30752.409537881216},"targetPosition":{"x":32487.774804143937,"y":30768.088807371365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b23f97b4-9a2a-4493-8aa0-fb1f1671ded0","savedPayload":{"position":{"x":32487.774804143937,"y":30768.088807371365},"targetPosition":{"x":32338.596519838695,"y":30783.768076861514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"01c020c7-bffe-4177-ac7f-40ca128506be","savedPayload":{"position":{"x":32338.596519838695,"y":30783.768076861514},"targetPosition":{"x":32189.418235533452,"y":30799.447346351662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"f3a8d3b9-892b-4eef-bdb9-a23688f7b6b1","savedPayload":{"position":{"x":32189.418235533452,"y":30799.447346351662},"targetPosition":{"x":32040.23995122821,"y":30815.12661584181},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"0a0cc8c6-4191-4e3d-abe8-11f9d096eb3f","savedPayload":{"position":{"x":32040.23995122821,"y":30815.12661584181},"targetPosition":{"x":31891.061666922968,"y":30830.80588533196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Open Buy Market Order","id":"7d6c3ac9-4869-4ff3-a9f2-2a6f8a31ccf3"}}}],"marketSellOrders":[],"limitBuyOrders":[],"limitSellOrders":[],"id":"ff7e75c1-58d2-49e8-9e4d-4957c4a7ceaa","savedPayload":{"position":{"x":31891.061666922968,"y":30830.80588533196},"targetPosition":{"x":31741.883382617725,"y":30846.48515482211},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"47e80991-0b34-4093-8cb2-a5e176c5e80d","savedPayload":{"position":{"x":31741.883382617725,"y":30846.48515482211},"targetPosition":{"x":31592.705098312483,"y":30862.164424312257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"ec88dd85-34a0-41c9-8554-6f200951e6b1","savedPayload":{"position":{"x":31592.705098312483,"y":30862.164424312257},"targetPosition":{"x":31350,"y":31038.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"manageStage":{"type":"Manage Stage","name":"New Manage Stage","project":"Superalgos","managedStopLoss":{"type":"Managed Stop Loss","name":"New Managed Stop Loss","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"SL 20%","code":"tradingEngine.tradingCurrent.position.entryTargetRate.value * 0.8\n\n/* SL is set at 20% from entry price */\n","project":"Superalgos","id":"040b7473-e789-461d-a468-e7fa3948135b","savedPayload":{"position":{"x":32040.23995122821,"y":31261.87338415819},"targetPosition":{"x":31891.061666922968,"y":31246.19411466804},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"b5cc106a-8558-4fea-8c54-be7eae245950","savedPayload":{"position":{"x":31891.061666922968,"y":31246.19411466804},"targetPosition":{"x":31741.883382617725,"y":31230.51484517789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bb46145b-26d3-40a4-8c6e-0e9275a8640e","savedPayload":{"position":{"x":31741.883382617725,"y":31230.51484517789},"targetPosition":{"x":31592.705098312483,"y":31214.835575687743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"managedTakeProfit":{"type":"Managed Take Profit","name":"New Managed Take Profit","project":"Superalgos","phases":[{"type":"Phase","name":"New Phase","project":"Superalgos","formula":{"type":"Formula","name":"TP 100% OR TREND CHANGE","code":"if (chart.at04hs.popularSMA.sma50 > chart.at04hs.popularSMA.sma200) {tradingEngine.tradingCurrent.position.entryTargetRate.value * 2} else {chart.at04hs.candle.close}\n\n/* Until SMA50 > SMA200 TP is set at 100%\nelse (i.e. when SMA50 As soos as SMA50 goes below SMA200 we assume trend is changing and we close position */","project":"Superalgos","id":"9276e10c-4e21-491b-8291-4cb5d0b581fc","savedPayload":{"position":{"x":31775.736587696596,"y":31625.93103162692},"targetPosition":{"x":31714.726091235225,"y":31488.899212980526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"moveToPhaseEvents":[],"announcements":[],"id":"03f1c483-3d9e-4615-8675-b1958b6d3628","savedPayload":{"position":{"x":31714.726091235225,"y":31488.899212980526},"targetPosition":{"x":31653.715594773854,"y":31351.867394334135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c01f7787-f396-4cf2-a42e-4b18b16ef956","savedPayload":{"position":{"x":31653.715594773854,"y":31351.867394334135},"targetPosition":{"x":31592.705098312483,"y":31214.835575687743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"e2fae940-f3da-47a6-bf76-b37c8d5e321e","savedPayload":{"position":{"x":31592.705098312483,"y":31214.835575687743},"targetPosition":{"x":31350,"y":31038.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeStage":{"type":"Close Stage","name":"New Close Stage","config":"{\n\"roundingErrorCorrectionFactor\": 1.01 \n}","project":"Superalgos","initialTargets":{"type":"Initial Targets","name":"New Initial Targets","project":"Superalgos","targetRate":{"type":"Target Rate","name":"New Target Rate","project":"Superalgos","formula":{"type":"Formula","name":"4H Close","code":"chart.at04hs.candle.close\n\n/* Read the note on the Open Stage\n\ntradingEngine.tradingCurrent.tradingEpisode.candle.close.value\n\n*/","project":"Superalgos","id":"f90225af-66e8-4645-be0f-fa61e73fc9d0","savedPayload":{"position":{"x":31489.22083721784,"y":31693.48254264184},"targetPosition":{"x":31388.85124626401,"y":31582.01081882023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"953b142f-f176-4bc1-9f18-e8a15ca22c6c","savedPayload":{"position":{"x":31388.85124626401,"y":31582.01081882023},"targetPosition":{"x":31288.48165531018,"y":31470.539094998618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"targetSizeInBaseAsset":{"type":"Target Size In Base Asset","name":"New Target Size In Base Asset","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"tradingEngine.tradingCurrent.strategyOpenStage.stageBaseAsset.sizeFilled.value - tradingEngine.tradingCurrent.strategyOpenStage.stageBaseAsset.feesPaid.value","project":"Superalgos","id":"c37a6a0e-2e3d-4626-a0c2-bb56cd7fb297","savedPayload":{"position":{"x":31195.776556997695,"y":31755.856049887167},"targetPosition":{"x":31242.129106153938,"y":31613.197572442892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a6ec0f66-4140-431d-b007-b7aeea5ca574","savedPayload":{"position":{"x":31242.129106153938,"y":31613.197572442892},"targetPosition":{"x":31288.48165531018,"y":31470.539094998618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"acee4ac0-3ce1-4f22-a518-6d11841816af","savedPayload":{"position":{"x":31288.48165531018,"y":31470.539094998618},"targetPosition":{"x":31257.294901687517,"y":31323.816954888545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"closeExecution":{"type":"Close Execution","name":"New Close Execution","project":"Superalgos","executionAlgorithms":[{"type":"Execution Algorithm","name":"New Execution Algorithm","config":"{\n\"percentageOfStageTargetSize\": 100 \n}","project":"Superalgos","marketBuyOrders":[],"marketSellOrders":[{"type":"Market Sell Order","name":"Close Sell Market Order","config":"{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}","project":"Superalgos","createOrderEvent":{"type":"Create Order Event","name":"New Create Order Event","project":"Superalgos","situations":[{"type":"Situation","name":"New Situation","project":"Superalgos","conditions":[{"type":"Condition","name":"New Condition","project":"Superalgos","javascriptCode":{"type":"Javascript Code","name":"True","code":"true","project":"Superalgos","id":"8a79d0dd-c782-415b-9881-5124bc45c513","savedPayload":{"position":{"x":29203.18494014653,"y":31760.431505605837},"targetPosition":{"x":29496.62922036667,"y":31698.05799836051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3e7d8fd9-559b-4574-b87c-a10545e723ff","savedPayload":{"position":{"x":29496.62922036667,"y":31698.05799836051},"targetPosition":{"x":29790.073500586812,"y":31635.684491115182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"57c8940c-888e-4faa-84ad-88f9f9492649","savedPayload":{"position":{"x":29790.073500586812,"y":31635.684491115182},"targetPosition":{"x":30083.517780806953,"y":31573.310983869855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"75d130d2-3ccb-4712-9e99-a4e706e817a8","savedPayload":{"position":{"x":30083.517780806953,"y":31573.310983869855},"targetPosition":{"x":30376.962061027094,"y":31510.937476624527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3813acc5-ae84-445c-9fcf-b46b40637491","savedPayload":{"position":{"x":30922.879730222685,"y":31624.925727750033},"targetPosition":{"x":31034.351454044296,"y":31524.556136796204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market Order","name":"Close Sell Market Order","id":"8e404329-d41f-41e0-ad5a-c84ee1fa2604"}}}],"limitBuyOrders":[],"limitSellOrders":[],"id":"d692162a-46a6-42f7-b7af-b1289658bee2","savedPayload":{"position":{"x":31034.351454044296,"y":31524.556136796204},"targetPosition":{"x":31145.823177865906,"y":31424.186545842374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8fbac454-8c7b-4480-805a-90a51d3bcd1b","savedPayload":{"position":{"x":31145.823177865906,"y":31424.186545842374},"targetPosition":{"x":31257.294901687517,"y":31323.816954888545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"announcements":[],"id":"24a530bd-b539-4544-b159-ddd92c428220","savedPayload":{"position":{"x":31257.294901687517,"y":31323.816954888545},"targetPosition":{"x":31350,"y":31038.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c4513d52-2a75-4d7b-99ff-6cb3a29966c3","savedPayload":{"position":{"x":31350,"y":31038.5},"targetPosition":{"x":31050,"y":31038.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"dynamicIndicators":{"type":"Dynamic Indicators","name":"New Dynamic Indicators","project":"Superalgos","indicatorFunctions":[{"type":"Indicator Function","name":"New Indicator Function","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","formula":{"type":"Formula","name":"New Formula","code":"// Type your formula","project":"Superalgos","id":"bb6aa5b2-3915-458d-8933-73d6f8605b1f","savedPayload":{"position":{"x":30150,"y":31038.5},"targetPosition":{"x":30450,"y":31038.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"54529d53-40b6-4da0-834b-5690007ff019","savedPayload":{"position":{"x":30450,"y":31038.5},"targetPosition":{"x":30750,"y":31038.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"beeb921e-e775-4f7a-8ef6-e5e5577a580b","savedPayload":{"position":{"x":30750,"y":31038.5},"targetPosition":{"x":31050,"y":31038.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"828f4dd3-7564-4022-96e2-bb3ec5b52ede","savedPayload":{"position":{"x":31050,"y":31038.5},"targetPosition":{"x":31050,"y":31038.5},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Data Mine","name":"Masters","config":"{\n\"codeName\": \"Masters\"\n}","project":"Superalgos","sensorBots":[{"type":"Sensor Bot","name":"Exchange Raw Data","config":"{\n\"codeName\": \"Exchange-Raw-Data\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Historic-OHLCVs","config":"{\n \"codeName\": \"Historic-OHLCVs\",\n \"description\": \"Retrieves and saves historical maket data\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 60000,\n \"retryWaitTime\": 10000,\n \"botModule\": \"Exchange Raw Data Historic OHLCVs\"\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[],"outputDatasetFolders":[],"id":"dfe2556e-a765-4e38-9d30-7f91090c0069","savedPayload":{"position":{"x":25547.3217174194,"y":18185.761511878332},"targetPosition":{"x":25508.163859753386,"y":18483.194970290475},"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":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"ea39c98b-18e2-44ce-9f7f-86a8a76a688a","savedPayload":{"position":{"x":25873.42071715862,"y":18007.18296611573},"targetPosition":{"x":25690.792288456003,"y":18245.188968203103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[],"dataMineDataDependencies":[],"id":"5c7fae5a-6da6-4864-a167-f2f21d578c72","savedPayload":{"position":{"x":25690.792288456003,"y":18245.188968203103},"targetPosition":{"x":25508.163859753386,"y":18483.194970290475},"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":"181c7c34-7243-497a-9ddb-1b0067c6d66e","savedPayload":{"position":{"x":25785.32771950677,"y":18368.38994058095},"targetPosition":{"x":25508.163859753386,"y":18483.194970290475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"","project":"Superalgos","id":"957e7e3a-b167-40be-93b5-9ba4ceff56e5","savedPayload":{"position":{"x":25805.597318165528,"y":18522.35282795649},"targetPosition":{"x":25508.163859753386,"y":18483.194970290475},"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":"fe40a546-43ee-49df-908a-7e72f598f0cd","savedPayload":{"position":{"x":25746.169861840757,"y":18665.823398993092},"targetPosition":{"x":25508.163859753386,"y":18483.194970290475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc","savedPayload":{"position":{"x":25508.163859753386,"y":18483.194970290475},"targetPosition":{"x":25231,"y":18598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Candles","config":"{\n\"codeName\": \"Candles\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"One-Min","config":"{\n\"codeName\": \"One-Min\"\n}","project":"Superalgos","id":"1c3696e4-c28e-4744-9100-706d6dce0c3c","savedPayload":{"position":{"x":25681,"y":18598},"targetPosition":{"x":25531,"y":18598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"id":"2443883b-6959-42a3-ae3b-ef3102ffcdcc","savedPayload":{"position":{"x":25531,"y":18598},"targetPosition":{"x":25231,"y":18598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition","name":"Volumes","config":"{\n\"codeName\": \"Volumes\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"One-Min","config":"{\n\"codeName\": \"One-Min\"\n}","project":"Superalgos","id":"73dcce78-c223-49e1-a93c-7e1ab7283f86","savedPayload":{"position":{"x":25646.74578963008,"y":18770.207544564288},"targetPosition":{"x":25508.163859753386,"y":18712.805029709525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"id":"3a43c6f3-bac0-404e-865f-822eb48c8660","savedPayload":{"position":{"x":25508.163859753386,"y":18712.805029709525},"targetPosition":{"x":25231,"y":18598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"af924204-66a2-47d4-9910-66ab78acb06f","savedPayload":{"position":{"x":25241,"y":18653},"targetPosition":{"x":24941,"y":18653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Sensor Bot","name":"Webhooks","config":"{\n\"codeName\": \"Webhooks\",\n\"repo\": \"Webhooks-Sensor-Bot\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Check-Webhook","config":"{\n \"codeName\": \"Check-Webhook\",\n \"description\": \"Retrieves and saves Webhooks Messages Received at the Web Server\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 30000,\n \"retryWaitTime\": 10000,\n \"botModule\": \"Webhooks Check Webhook\"\n}","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[],"outputDatasetFolders":[],"id":"9b932f7d-fee5-4d42-97a3-beda58fa0322","savedPayload":{"position":{"x":25783.65853177429,"y":18599.96728729979},"targetPosition":{"x":25511.7661956633,"y":18726.752765822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Webhooks Check-Webhook","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"d6965837-6a98-474c-aee3-8053ac436b9c","savedPayload":{"position":{"x":26102.65084747062,"y":18622.56385922184},"targetPosition":{"x":25807.208521566958,"y":18674.65831252192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"57bc4c48-663d-4944-8b5b-b09cf6ae3578"}}}],"dataDependencies":[],"dataMineDataDependencies":[],"id":"ff50f64f-12f6-49e7-83a6-659109b89a6a","savedPayload":{"position":{"x":25807.208521566958,"y":18674.65831252192},"targetPosition":{"x":25511.7661956633,"y":18726.752765822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"57bc4c48-663d-4944-8b5b-b09cf6ae3578","savedPayload":{"position":{"x":25810.62460509082,"y":18752.899488646297},"targetPosition":{"x":25511.7661956633,"y":18726.752765822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"","project":"Superalgos","id":"ed7c8dbc-8f81-4a3f-a525-a839f3b30440","savedPayload":{"position":{"x":25793.673981899068,"y":18829.3588088197},"targetPosition":{"x":25511.7661956633,"y":18726.752765822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"1982bdf9-4889-430b-a004-7760307852b9","savedPayload":{"position":{"x":25757.511808949992,"y":18898.825696727312},"targetPosition":{"x":25511.7661956633,"y":18726.752765822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"69f37820-ab16-4e19-bfd8-386dd6e249a3","savedPayload":{"position":{"x":25511.7661956633,"y":18726.752765822},"targetPosition":{"x":25212.907786235774,"y":18700.6060429977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"External Signals","config":"{\n\"codeName\": \"External-Signals\",\n \"singularVariableName\": \"externalSignal\",\n \"pluralVariableName\": \"externalSignals\"\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":"c52d1012-5e3b-41a0-b5af-84098b0594bf","savedPayload":{"position":{"x":25740.561185758244,"y":18975.285016900714},"targetPosition":{"x":25458.65339952247,"y":18872.678973903014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Timestamp","config":"{ \n\"codeName\": \"timestamp\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"d27e836f-1cea-41e1-b4e8-c411fb50addc","savedPayload":{"position":{"x":26064.360922565593,"y":19657.243145311073},"targetPosition":{"x":25760.78938687676,"y":19425.33243829109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Source","config":"{ \n\"codeName\": \"source\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"6aea41d8-153e-4196-9a55-ec40700c6c0e","savedPayload":{"position":{"x":25953.125405784973,"y":19756.844192552286},"targetPosition":{"x":25760.78938687676,"y":19425.33243829109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Message","config":"{ \n\"codeName\": \"message\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7c1feeae-6fdb-4886-aeb7-f16d10433acd","savedPayload":{"position":{"x":25812.18525487614,"y":19805.760013995074},"targetPosition":{"x":25760.78938687676,"y":19425.33243829109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6e1d5a0a-c082-4916-bce1-3a8a1651ff02","savedPayload":{"position":{"x":25651.489682428433,"y":19102.492306838707},"targetPosition":{"x":25458.65339952247,"y":18872.678973903014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"29196db8-4c41-47ea-be7e-952cd9be9a0b","savedPayload":{"position":{"x":25458.65339952247,"y":18872.678973903014},"targetPosition":{"x":25212.907786235774,"y":18700.6060429977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f0d7c835-cf51-447a-8d00-1aeb854bc909","savedPayload":{"position":{"x":24941,"y":18953},"targetPosition":{"x":24941,"y":18653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"indicatorBots":[{"type":"Indicator Bot","name":"Candles Volumes","config":"{\n \"codeName\": \"Candles-Volumes\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Produces different files with multi-period candles and volumes for entire markets.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"botModule\": \"Candles Volumes Multi Period Market\"\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Candles","project":"Superalgos","id":"5d82f670-e692-40ca-8d24-9273d0f5e08f","savedPayload":{"position":{"x":27197.63211099408,"y":19916.997037294273},"targetPosition":{"x":26753.68850647042,"y":19952.395024658337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}},{"type":"Output Dataset","name":"Multi-Period-Market Volumes","project":"Superalgos","id":"b198c9ea-3141-4407-9953-2b2ebb672450","savedPayload":{"position":{"x":27191.50217417728,"y":20033.786394440922},"targetPosition":{"x":26753.68850647042,"y":19952.395024658337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1"}}}],"outputDatasetFolders":[],"id":"d529ec20-8461-40d6-9dc3-14f9ab8b64be","savedPayload":{"position":{"x":26753.68850647042,"y":19952.395024658337},"targetPosition":{"x":25864.616668513398,"y":19906.640279103307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"ff665e30-1d31-429b-88dc-f5e623b9a5f8","savedPayload":{"position":{"x":27626.486344522968,"y":19998.678321925363},"targetPosition":{"x":26739.448524421612,"y":20069.01205660054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"6d911e31-cef3-4c4f-82e3-d7b9b1ba9541","savedPayload":{"position":{"x":27628.081369521406,"y":20115.337302074215},"targetPosition":{"x":26739.448524421612,"y":20069.01205660054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"957ffa57-d4df-4866-b99f-86cf8add689d","savedPayload":{"position":{"x":27614.38710404594,"y":20231.090204309567},"targetPosition":{"x":26739.448524421612,"y":20069.01205660054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles One-Min","project":"Superalgos","id":"982efbd9-6a54-4322-9a0f-52a6483d67d9","savedPayload":{"position":{"x":27585.674551637185,"y":20344.05415796294},"targetPosition":{"x":26739.448524421612,"y":20069.01205660054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"One-Min","id":"1c3696e4-c28e-4744-9100-706d6dce0c3c"}}},{"type":"Data Dependency","name":"Volumes One-Min","project":"Superalgos","id":"fe28906a-90b1-4a5e-88b1-110d994cb397","savedPayload":{"position":{"x":27542.299864988356,"y":20452.569999924734},"targetPosition":{"x":26739.448524421612,"y":20069.01205660054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"One-Min","id":"73dcce78-c223-49e1-a93c-7e1ab7283f86"}}}],"dataMineDataDependencies":[],"id":"09645f1b-96c2-4dbb-a99f-803c8ebe7a00","savedPayload":{"position":{"x":26739.448524421612,"y":20069.01205660054},"targetPosition":{"x":25864.616668513398,"y":19906.640279103307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d","savedPayload":{"position":{"x":26710.789617039773,"y":20181.7446078522},"targetPosition":{"x":25864.616668513398,"y":19906.640279103307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"c086e5db-7777-45d9-bb4d-381f9566341f","savedPayload":{"position":{"x":26667.615798050225,"y":20289.92710426847},"targetPosition":{"x":25864.616668513398,"y":19906.640279103307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"fe40a546-43ee-49df-908a-7e72f598f0cd"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5","savedPayload":{"position":{"x":26610.479090462417,"y":20391.821907973124},"targetPosition":{"x":25864.616668513398,"y":19906.640279103307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1","savedPayload":{"position":{"x":25451.90205081849,"y":18718.259714226064},"targetPosition":{"x":25160.813332935693,"y":18790.836282905962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Process Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Produces different files with multi-period candles and volumes on a daily format.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"botModule\": \"Candles Volumes Multi Period Daily\"\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Daily Candles","project":"Superalgos","id":"f60fba20-b9d6-4362-b667-020096340e38","savedPayload":{"position":{"x":26721.129479009196,"y":20995.760025971133},"targetPosition":{"x":26341.10322749104,"y":20763.450471044347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Volumes","project":"Superalgos","id":"a507b588-ce8f-4d5c-9053-d130015560b5","savedPayload":{"position":{"x":26647.398575077346,"y":21086.79016717155},"targetPosition":{"x":26341.10322749104,"y":20763.450471044347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2e683057-f911-4105-bc77-16f2706d1915"}}}],"outputDatasetFolders":[],"id":"4d806ace-6f82-449d-b908-afcd7d029a68","savedPayload":{"position":{"x":26341.10322749104,"y":20763.450471044347},"targetPosition":{"x":25648.808995345247,"y":20203.67135481477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Starting Point\"\n}","project":"Superalgos","id":"14730a16-e01e-4bc5-9886-0eed386152f2","savedPayload":{"position":{"x":27020.081928145428,"y":21313.828394018106},"targetPosition":{"x":26261.05128969707,"y":20849.396335055884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Daily","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"1baff60d-84c4-4e27-b03d-663158ca6bba","savedPayload":{"position":{"x":26952.680946194174,"y":21409.30144685118},"targetPosition":{"x":26261.05128969707,"y":20849.396335055884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"4e77c03b-367c-450c-82ca-c7211c2fab8e","savedPayload":{"position":{"x":26873.56095172413,"y":21494.89458975966},"targetPosition":{"x":26261.05128969707,"y":20849.396335055884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles One-Min","project":"Superalgos","id":"2d324ca2-acc5-4390-ae37-0d350fe8e8fa","savedPayload":{"position":{"x":26783.931056056146,"y":21569.40427176681},"targetPosition":{"x":26261.05128969707,"y":20849.396335055884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"One-Min","id":"1c3696e4-c28e-4744-9100-706d6dce0c3c"}}},{"type":"Data Dependency","name":"Volumes One-Min","project":"Superalgos","id":"4051019a-9548-4541-a7e7-11097fe3f103","savedPayload":{"position":{"x":26685.051409046962,"y":21631.699341761276},"targetPosition":{"x":26261.05128969707,"y":20849.396335055884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"One-Min","id":"73dcce78-c223-49e1-a93c-7e1ab7283f86"}}}],"dataMineDataDependencies":[],"id":"1e4c5a40-0c64-423f-968d-31b178056cf3","savedPayload":{"position":{"x":26261.05128969707,"y":20849.396335055884},"targetPosition":{"x":25648.808995345247,"y":20203.67135481477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"2a021da8-9feb-475e-90ab-1586968c17c7","savedPayload":{"position":{"x":26171.615585723255,"y":20923.744114852907},"targetPosition":{"x":25648.808995345247,"y":20203.67135481477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"fa826f1b-2a52-4542-89b2-7190e137ef56","savedPayload":{"position":{"x":26073.118599669808,"y":20985.881149447363},"targetPosition":{"x":25648.808995345247,"y":20203.67135481477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"fe40a546-43ee-49df-908a-7e72f598f0cd"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","project":"Superalgos","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3","savedPayload":{"position":{"x":25967.02380658774,"y":21034.734087222027},"targetPosition":{"x":25648.808995345247,"y":20203.67135481477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4,"arrangementStyle":0},"uiObject":{}}},"id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d","savedPayload":{"position":{"x":25438.96848930573,"y":18903.218260930735},"targetPosition":{"x":25160.813332935693,"y":18790.836282905962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Candles","config":"{\n \"codeName\": \"Candles\",\n \"singularVariableName\": \"candle\",\n \"pluralVariableName\": \"candles\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"\",\n \"fileName\": \"\"\n }\n }","project":"Superalgos","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8","savedPayload":{"position":{"x":25438.388603533014,"y":19329.01308702337},"targetPosition":{"x":25255.760174830397,"y":19091.007084935998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@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\": \"\",\n \"fileName\": \"\"\n }\n }","project":"Superalgos","id":"678a567c-f08d-49b9-813b-4e54fd6afadb","savedPayload":{"position":{"x":25398.90780290828,"y":19354.652218734587},"targetPosition":{"x":25255.760174830397,"y":19091.007084935998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Min","config":"{\n \"codeName\": \"min\",\n \"isString\": false\n}","project":"Superalgos","id":"95264fe8-6089-4a70-bf6d-158bc43c04f3","savedPayload":{"position":{"x":25520.620954891903,"y":19521.204186938827},"targetPosition":{"x":25456.04429037066,"y":19656.591979591307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Max","config":"{\n \"codeName\": \"max\",\n \"isString\": false\n}","project":"Superalgos","id":"b716bfaa-d785-45e3-b8ca-370284ac901c","savedPayload":{"position":{"x":25597.440514034486,"y":19606.520950706243},"targetPosition":{"x":25456.04429037066,"y":19656.591979591307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Open","config":"{\n \"codeName\": \"open\",\n \"isString\": false\n}","project":"Superalgos","id":"7d809ac3-9b7d-4687-83bb-40b851e522d0","savedPayload":{"position":{"x":25591.43208302314,"y":19721.16864411255},"targetPosition":{"x":25456.04429037066,"y":19656.591979591307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Close","config":"{\n \"codeName\": \"close\",\n \"isString\": false\n}","project":"Superalgos","id":"b0ea41f8-03da-454e-8d0f-bb0f2fc5d328","savedPayload":{"position":{"x":25506.115319255725,"y":19797.988203255132},"targetPosition":{"x":25456.04429037066,"y":19656.591979591307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"21b8be1f-0437-4fc8-9bc0-31779a9ea47e","savedPayload":{"position":{"x":25391.46762584942,"y":19791.979772243787},"targetPosition":{"x":25456.04429037066,"y":19656.591979591307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"91ba9479-fdb4-42b7-ad02-1b2ac24b13d6","savedPayload":{"position":{"x":25314.648066706835,"y":19706.66300847637},"targetPosition":{"x":25456.04429037066,"y":19656.591979591307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Direction","config":"{\n \"codeName\": \"direction\",\n \"isString\": true,\n \"isCalculated\": true,\n \"possibleValues\": [\"Up\", \"Down\", \"Side\"]\n}","project":"Superalgos","recordFormula":{"type":"Record Formula","code":"variable.direction","project":"Superalgos","id":"becdde12-efb6-464b-bfb0-ac98e3c2b8e3","savedPayload":{"position":{"x":25185.2687050657,"y":19527.438650548822},"targetPosition":{"x":25320.65649771818,"y":19592.015315070064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aafd0a4b-da5d-40c1-94b8-e79f0b1eca9b","savedPayload":{"position":{"x":25320.65649771818,"y":19592.015315070064},"targetPosition":{"x":25456.04429037066,"y":19656.591979591307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"65ea4bea-6b8f-4df9-8716-d8af0ce2044c","savedPayload":{"position":{"x":25456.04429037066,"y":19656.591979591307},"targetPosition":{"x":25255.760174830397,"y":19091.007084935998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"calculations":{"type":"Calculations Procedure","name":"New Calculations Procedure","project":"Superalgos","loop":{"type":"Procedure Loop","name":"New Procedure Loop","project":"Superalgos","procedureJavascriptCode":{"type":"Procedure Javascript Code","name":"New Procedure Javascript Code","code":"let candle = product.candle\n\nif (candle.close > candle.open) {\n variable.direction = \"Up\"\n}\n\nif (candle.close < candle.open) {\n variable.direction = \"Down\"\n}\n\nif (candle.close === candle.open) {\n variable.direction = \"Side\"\n}","project":"Superalgos","id":"798bc1e0-90d2-435f-980d-b457b30046dd","savedPayload":{"position":{"x":25365.101490125682,"y":19680.96002947437},"targetPosition":{"x":25337.76616130186,"y":19533.471793339777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"abbcb291-c048-49e7-b0d0-fdf20891faea","savedPayload":{"position":{"x":25337.76616130186,"y":19533.471793339777},"targetPosition":{"x":25310.43083247804,"y":19385.983557205185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f7846b50-ae42-46b4-aeb6-9f6217477a1b","savedPayload":{"position":{"x":25310.43083247804,"y":19385.983557205185},"targetPosition":{"x":25255.760174830397,"y":19091.007084935998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7","savedPayload":{"position":{"x":25319.789112205654,"y":19045.25071175289},"targetPosition":{"x":25160.813332935693,"y":18790.836282905962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Candles","id":"0aed75a3-fee8-4ddc-97ff-b6768e6f12a3"}}},{"type":"Product Definition","name":"Volumes","config":"{\n \"codeName\": \"Volumes\",\n \"singularVariableName\": \"volume\",\n \"pluralVariableName\": \"volumes\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period/@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\": \"\",\n \"fileName\": \"\"\n }\n }","project":"Superalgos","id":"2e683057-f911-4105-bc77-16f2706d1915","savedPayload":{"position":{"x":25126.036332309974,"y":19405.364200132546},"targetPosition":{"x":25071.36567466233,"y":19110.38772786336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"\",\n \"fileName\": \"\"\n }\n }","project":"Superalgos","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1","savedPayload":{"position":{"x":25008.992167417004,"y":19403.8320080835},"targetPosition":{"x":25071.36567466233,"y":19110.38772786336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Buy","config":"{\n \"codeName\": \"buy\",\n \"isString\": false\n}","project":"Superalgos","id":"bc8405e2-4a80-416c-bccf-1334e53d371b","savedPayload":{"position":{"x":24924.35008821883,"y":19513.196239022458},"targetPosition":{"x":24816.482868046158,"y":19481.244512743266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Sell","config":"{\n \"codeName\": \"sell\",\n \"isString\": false\n}","project":"Superalgos","id":"f08f11a8-d092-4b7e-a7e6-c67adac04a33","savedPayload":{"position":{"x":24819.427774730793,"y":19593.705961803014},"targetPosition":{"x":24816.482868046158,"y":19481.244512743266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"8e2624b0-48ee-4d00-821e-0c6a72b3838f","savedPayload":{"position":{"x":24710.435700298287,"y":19518.797784407067},"targetPosition":{"x":24816.482868046158,"y":19481.244512743266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"62964ed9-14c4-442d-b272-602d0c714654","savedPayload":{"position":{"x":24747.997207282675,"y":19391.992261960502},"targetPosition":{"x":24816.482868046158,"y":19481.244512743266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7edf78c7-c63d-4e7e-a643-99aaf52ac967","savedPayload":{"position":{"x":24816.482868046158,"y":19481.244512743266},"targetPosition":{"x":25071.36567466233,"y":19110.38772786336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f","savedPayload":{"position":{"x":25139.886390812455,"y":19090.10549798391},"targetPosition":{"x":25160.813332935693,"y":18790.836282905962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Volumes","id":"a6177fb7-51d1-4b7c-bcbb-04861a5bf0c1"}}}],"id":"285a4618-0423-4ac9-9df9-7a78be6fd915","savedPayload":{"position":{"x":24641,"y":18653},"targetPosition":{"x":24941,"y":18653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"l"}}}],"plotters":[{"type":"Plotter","name":"Plotters Candles Volumes","config":"{\n\"codeName\": \"PlottersCandlesVolumes\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Candles","config":"{\n\"codeName\": \"Candles\",\n\"isLegacy\": true,\n\"icon\": \"layer-candles\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Candle","config":"{ \n\"codeName\": \"CandlePanel\" ,\n\"isLegacy\": true\n}","project":"Superalgos","panelData":[],"id":"9336f4e6-d56b-4ed4-819d-0bb762ba1fdd","savedPayload":{"position":{"x":24058.207561956904,"y":18597.58286360246},"targetPosition":{"x":24353.649887860567,"y":18545.48841030238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0aed75a3-fee8-4ddc-97ff-b6768e6f12a3","savedPayload":{"position":{"x":24353.649887860567,"y":18545.48841030238},"targetPosition":{"x":24649.092213764226,"y":18493.3939570023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Volumes","config":"{\n\"codeName\": \"Volumes\",\n\"isLegacy\": true,\n\"icon\": \"layer-volume\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Volume","config":"{ \n\"codeName\": \"VolumePanel\" ,\n\"isLegacy\": true\n}","project":"Superalgos","panelData":[],"id":"42dbd098-4550-44a0-987f-54a28dd5f40b","savedPayload":{"position":{"x":24263.419647952305,"y":18033.767291130913},"targetPosition":{"x":24456.255930858268,"y":18263.580624066606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a6177fb7-51d1-4b7c-bcbb-04861a5bf0c1","savedPayload":{"position":{"x":24456.255930858268,"y":18263.580624066606},"targetPosition":{"x":24649.092213764226,"y":18493.3939570023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e4347543-21b5-4274-b690-e6b3b5899862","savedPayload":{"position":{"x":24941,"y":18353},"targetPosition":{"x":24941,"y":18653},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959","savedPayload":{"position":{"x":24941,"y":18653},"targetPosition":{"x":24941,"y":18653},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"m"}}},{"type":"Trading Mine","name":"Masters","config":"{ \n\"codeName\": \"Masters\"\n}","project":"Superalgos","tradingBots":[{"type":"Trading Bot","name":"Low Frequency","config":"{\n\"codeName\": \"Low-Frequency\"\n}","project":"Superalgos","processes":[{"type":"Process Definition","name":"Trading","config":"{\n \"codeName\": \"Trading\",\n \"sessionRunWaitTime\": 5000,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Low-Frequency-Trading-Process\"\n }\n }","project":"Superalgos","processOutput":{"type":"Process Output","name":"New Process Output","project":"Superalgos","outputDatasets":[],"outputDatasetFolders":[{"type":"Output Dataset Folder","name":"Trading Engine","project":"Superalgos","outputDatasets":[],"outputDatasetFolders":[{"type":"Output Dataset Folder","name":"Trading Episode","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Trading Episode Counters","project":"Superalgos","id":"ec8d74ba-a4ad-417a-b479-6bae95b8a1fe","savedPayload":{"position":{"x":30998.007168475306,"y":18157.29532463841},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"3ed03a02-381d-43fe-9faa-761728c53bd8"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading Episode Counters","project":"Superalgos","id":"22b0af33-8c2f-4194-839b-affd18f298d5","savedPayload":{"position":{"x":30921.633828297163,"y":18189.899121013277},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"15f5b150-f1cf-403c-8cb9-2c7c4e1db8e8"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading Episode Statistics","project":"Superalgos","id":"23ab91ae-2e78-4993-bb69-855f69cef1ce","savedPayload":{"position":{"x":30840.569957506174,"y":18207.914211365573},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"fc9dc0f7-35e0-4548-bb91-f920825d694f"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading Episode Statistics","project":"Superalgos","id":"d0a4515a-279d-4c27-8de2-168108861242","savedPayload":{"position":{"x":30757.57608899672,"y":18210.72711340006},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"91953362-8751-4440-a898-21245cd47c15"}}},{"type":"Output Dataset","name":"Multi-Period-Market Episode Candle","project":"Superalgos","id":"7fc80977-5b37-413e-8107-0a89a16e08b0","savedPayload":{"position":{"x":30675.478479420723,"y":18198.242037111664},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"17fb41f5-61b5-4433-9a10-950ff8216a7e"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Candle","project":"Superalgos","id":"a6888750-1043-420c-9253-633e1399c5e4","savedPayload":{"position":{"x":30597.072864407062,"y":18170.884146799188},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"bbc9467d-28bf-432b-9e49-582d1bcabfb9"}}},{"type":"Output Dataset","name":"Multi-Period-Market Episode Balances","project":"Superalgos","id":"0ad114df-f076-4a86-8c62-4c4a146da73c","savedPayload":{"position":{"x":30525.029253137858,"y":18129.585082605052},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"acddff59-b51b-4b45-b58f-71d4077755ee"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Balances","project":"Superalgos","id":"04b51302-957d-4365-ad55-9f89d60e261c","savedPayload":{"position":{"x":30461.801004388097,"y":18075.751234627613},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"213b8fe8-f772-41ea-a3f5-97867be555f7"}}},{"type":"Output Dataset","name":"Multi-Period-Market Distance To Trading Event","project":"Superalgos","id":"6d460b9b-5bf6-49ad-9611-70904cdc85be","savedPayload":{"position":{"x":30409.541280335023,"y":18011.215849993165},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"0ef6aa1d-3345-40f8-bc4f-4d2e2ff199ff"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Distance To Trading Event","project":"Superalgos","id":"ef6652ab-d2ef-482c-bfb4-a96bbd36d239","savedPayload":{"position":{"x":30370.02972320263,"y":17938.17660382377},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"c291211b-4012-4440-a302-8e15412b0990"}}},{"type":"Output Dataset","name":"Multi-Period-Market Episode Base Asset","project":"Superalgos","id":"83ceb16b-c882-4528-908a-d03387b475f1","savedPayload":{"position":{"x":30344.61185168018,"y":17859.120760046804},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"e8b67591-d484-4c08-a711-7a4418ee101a"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Base Asset","project":"Superalgos","id":"bf9c3526-8056-425f-954e-33bea9d757bf","savedPayload":{"position":{"x":30334.15324089699,"y":17776.74047060506},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"c6f34adc-2863-4ce6-8379-9b3cc1b37b73"}}},{"type":"Output Dataset","name":"Multi-Period-Market Episode Quoted Asset","project":"Superalgos","id":"c6af3132-aa9f-4703-8031-d078c75bc579","savedPayload":{"position":{"x":30339.01004629956,"y":17693.841097451208},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"99d1f17b-92cb-4544-88a2-fe463dd1de4b"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episode Quoted Asset","project":"Superalgos","id":"5390a269-2c8e-4eee-ba8d-23e026cd793d","savedPayload":{"position":{"x":30359.016875205,"y":17613.245679311167},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"daf4e3e9-426d-44c3-8b43-6849778d972f"}}},{"type":"Output Dataset","name":"Multi-Period-Market Current Episode","project":"Superalgos","id":"a97335c5-a44f-4052-b66b-b5bedbe6b3a0","savedPayload":{"position":{"x":30393.492419050486,"y":17537.698796486144},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"26f6b248-21de-4898-9ee5-58b728a04267"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Current Episode","project":"Superalgos","id":"f448ea93-263f-419d-95a4-518301c1968d","savedPayload":{"position":{"x":30441.262654539212,"y":17469.773107462246},"targetPosition":{"x":30783.894999568125,"y":17761.497422766934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ecdfe444-00e6-4ad4-a482-14b59a1e752a"}}}],"outputDatasetFolders":[],"id":"995b0e5f-ea6a-4142-9877-4edd429d8bd7","savedPayload":{"position":{"x":30783.894999568125,"y":17761.497422766934},"targetPosition":{"x":31133.610682223763,"y":17478.30324679451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Strategy","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Current Strategy","project":"Superalgos","id":"6907e0fe-9f3e-466b-85ca-04f83447b5c3","savedPayload":{"position":{"x":30484.855204073156,"y":17949.651691947376},"targetPosition":{"x":30689.15092895595,"y":17548.69875606261},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7b4550d3-69d1-41ac-bad3-e2283f798bb8"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Current Strategy","project":"Superalgos","id":"6f3c4eff-ed37-4fe6-862c-39d96ea9e10e","savedPayload":{"position":{"x":30288.197993071186,"y":17752.994480945406},"targetPosition":{"x":30689.15092895595,"y":17548.69875606261},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"49d55660-71e9-4c5a-8b1a-198934844e4a"}}},{"type":"Output Dataset","name":"Multi-Period-Market Last Strategy","project":"Superalgos","id":"922a493f-254d-48dc-870b-83e96a0df0fe","savedPayload":{"position":{"x":30244.691175688138,"y":17478.30324679451},"targetPosition":{"x":30689.15092895595,"y":17548.69875606261},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"a2e7b5d2-8556-4c58-b2f6-a9c27c939e94"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Last Strategy","project":"Superalgos","id":"0a0466df-1c89-4ecb-beb0-1e3bedaf4953","savedPayload":{"position":{"x":30370.952877422005,"y":17230.500704528666},"targetPosition":{"x":30689.15092895595,"y":17548.69875606261},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"76ff2401-1d4f-4dda-87f6-5e0b7af3eab2"}}}],"outputDatasetFolders":[],"id":"fafacd7f-c6d4-425a-b483-68054946b94c","savedPayload":{"position":{"x":30689.15092895595,"y":17548.69875606261},"targetPosition":{"x":31133.610682223763,"y":17478.30324679451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Position","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Current Position","project":"Superalgos","id":"2e19e13d-2709-4622-856d-c5efa444eff5","savedPayload":{"position":{"x":30418.272927254293,"y":17656.65698059937},"targetPosition":{"x":30713.499490300022,"y":17317.037669499125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7506dd91-ad9d-4aad-bb1a-604bc5d3fe8d"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Current Position","project":"Superalgos","id":"7f943c9b-5a42-4590-a02b-dc52e26ab8bd","savedPayload":{"position":{"x":30319.920622087295,"y":17535.201998609977},"targetPosition":{"x":30713.499490300022,"y":17317.037669499125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"06678152-1082-4f00-9275-22ffde715469"}}},{"type":"Output Dataset","name":"Multi-Period-Market Last Position","project":"Superalgos","id":"2f77df6b-e0f3-4a23-bf2c-bc2531567744","savedPayload":{"position":{"x":30269.03973703221,"y":17387.433178767227},"targetPosition":{"x":30713.499490300022,"y":17317.037669499125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"485671ff-0d50-4c08-958c-93e657cd238f"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Last Position","project":"Superalgos","id":"a464a09e-8f91-43f1-8752-85194adc3927","savedPayload":{"position":{"x":30271.767257748572,"y":17231.17362157968},"targetPosition":{"x":30713.499490300022,"y":17317.037669499125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"a909df42-6192-4bbd-9f38-e8800149aaa1"}}},{"type":"Output Dataset","name":"Multi-Period-Market Stop Loss","project":"Superalgos","id":"30e7e833-628e-4133-8960-e0e19d268425","savedPayload":{"position":{"x":30327.77420498407,"y":17085.2705357896},"targetPosition":{"x":30713.499490300022,"y":17317.037669499125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"b0276d53-e43b-4f1b-a5d8-b118921970dd"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Stop Loss","project":"Superalgos","id":"63595c6e-3a95-4f40-8016-3d7957eb0944","savedPayload":{"position":{"x":30430.305314327594,"y":16967.321986843486},"targetPosition":{"x":30713.499490300022,"y":17317.037669499125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b5d51a14-eed9-405f-90d7-e91c0ceed659"}}},{"type":"Output Dataset","name":"Multi-Period-Market Take Profit","project":"Superalgos","id":"504a520b-1aa2-44c3-95e0-1aa96444f847","savedPayload":{"position":{"x":30566.9938207943,"y":16891.55431047943},"targetPosition":{"x":30713.499490300022,"y":17317.037669499125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"67fd9603-5184-4570-bebb-07c33974b40c"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Take Profit","project":"Superalgos","id":"a1c1a1e1-2617-4c71-b10b-4a0f9542da34","savedPayload":{"position":{"x":30721.3530731968,"y":16867.10620667875},"targetPosition":{"x":30713.499490300022,"y":17317.037669499125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"d1fc090a-18c0-4ff6-87d6-726d276bad43"}}}],"outputDatasetFolders":[],"id":"945db015-7460-4822-b1ce-9086206ddbb5","savedPayload":{"position":{"x":30713.499490300022,"y":17317.037669499125},"targetPosition":{"x":31133.610682223763,"y":17478.30324679451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Stages","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Open Stage","project":"Superalgos","id":"4d3664a4-74a0-428f-8790-93ec819ab48d","savedPayload":{"position":{"x":30424.93314723164,"y":17275.09323364459},"targetPosition":{"x":30850.416506251335,"y":17128.58756413887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"b553683f-14f4-48be-91a6-0fb5381887e4"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Open Stage","project":"Superalgos","id":"e5c413a5-599d-4544-a8ee-240de57b4bc2","savedPayload":{"position":{"x":30400.48504343096,"y":17120.733981242094},"targetPosition":{"x":30850.416506251335,"y":17128.58756413887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"3287fb46-854d-41de-8a42-285f9c10d4fa"}}},{"type":"Output Dataset","name":"Multi-Period-Market Close Stage","project":"Superalgos","id":"d1ac39c5-f175-40a4-b55c-2631e262b360","savedPayload":{"position":{"x":30430.305314327594,"y":16967.321986843486},"targetPosition":{"x":30850.416506251335,"y":17128.58756413887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"0c30c4d3-3e58-4422-a178-450c24f95001"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Close Stage","project":"Superalgos","id":"a7425ac8-801e-4d44-8beb-43e0670cd6dd","savedPayload":{"position":{"x":30510.797195151088,"y":16833.36100109314},"targetPosition":{"x":30850.416506251335,"y":17128.58756413887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"4903a08c-90b6-4726-aa4d-1d8a0acdbd77"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trigger Stage","project":"Superalgos","id":"84379ea1-432c-42c2-910b-ce2d64cae90c","savedPayload":{"position":{"x":30632.252177140483,"y":16735.008695926143},"targetPosition":{"x":30850.416506251335,"y":17128.58756413887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"a179150b-2eaa-45ef-a7fa-14a1decf7dfc"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trigger Stage","project":"Superalgos","id":"433f36c0-cd49-410a-8649-603edcd1c9bc","savedPayload":{"position":{"x":30780.020996983232,"y":16684.127810871058},"targetPosition":{"x":30850.416506251335,"y":17128.58756413887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"493f0951-e638-4da1-88b4-1c1d3829046e"}}},{"type":"Output Dataset","name":"Multi-Period-Market Manage Stage","project":"Superalgos","id":"7213f716-e04b-4f34-afdc-2189c1cb65ec","savedPayload":{"position":{"x":30936.28055417078,"y":16686.85533158742},"targetPosition":{"x":30850.416506251335,"y":17128.58756413887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"56d1a25b-54b1-419c-a323-f2fad41de0ec"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Manage Stage","project":"Superalgos","id":"d0a10c39-8aeb-4700-bc2d-7711a272f9da","savedPayload":{"position":{"x":31082.18363996086,"y":16742.86227882292},"targetPosition":{"x":30850.416506251335,"y":17128.58756413887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"fef1dba7-fc21-4338-b75e-a040d71dbde5"}}}],"outputDatasetFolders":[],"id":"dc792f37-8560-4ef0-82f1-1d620b8d1754","savedPayload":{"position":{"x":30850.416506251335,"y":17128.58756413887},"targetPosition":{"x":31133.610682223763,"y":17478.30324679451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Orders","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Market Buy Orders","project":"Superalgos","id":"234a4f87-b71a-4354-8e78-a8adb1c9d04e","savedPayload":{"position":{"x":30614.82386428172,"y":16995.82725613173},"targetPosition":{"x":31063.21517295566,"y":17033.843493526696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"a2ea8001-2143-4055-b1d3-525d95fa8e6f"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Market Buy Orders","project":"Superalgos","id":"35e9dacf-0814-4d91-8ee4-ee9674252333","savedPayload":{"position":{"x":30636.95118189963,"y":16889.624875002657},"targetPosition":{"x":31063.21517295566,"y":17033.843493526696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"557357c6-f814-4bf9-9426-82fc5e22c028"}}},{"type":"Output Dataset","name":"Multi-Period-Market Market Sell Orders","project":"Superalgos","id":"fad3d464-a7e1-4fe6-a6e5-c90cd2c2ccd6","savedPayload":{"position":{"x":30683.85141327115,"y":16791.80395576885},"targetPosition":{"x":31063.21517295566,"y":17033.843493526696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"917cfdae-b736-4ed5-ad8e-d572c49ea489"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Market Sell Orders","project":"Superalgos","id":"4d0c0274-c640-40d9-a617-e632fe0307ac","savedPayload":{"position":{"x":30752.79888742437,"y":16708.049494691608},"targetPosition":{"x":31063.21517295566,"y":17033.843493526696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"3c878a50-6d76-412b-95d7-f2e546960293"}}},{"type":"Output Dataset","name":"Multi-Period-Market Limit Buy Orders","project":"Superalgos","id":"b3970d06-c11b-4e23-9688-4305533c0697","savedPayload":{"position":{"x":30839.786627775386,"y":16643.228996613656},"targetPosition":{"x":31063.21517295566,"y":17033.843493526696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"df8cfaa4-a4d4-4bc1-9fa2-4f8e91e45a87"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Limit Buy Orders","project":"Superalgos","id":"0b27dde5-84e1-45b5-80b5-675bf309a7c4","savedPayload":{"position":{"x":30939.75922304256,"y":16601.10959327037},"targetPosition":{"x":31063.21517295566,"y":17033.843493526696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"12652573-9506-4d3e-82bb-64b1bb9e7ce0"}}},{"type":"Output Dataset","name":"Multi-Period-Market Limit Sell Orders","project":"Superalgos","id":"4090e0da-861e-4681-bc52-ec95cfb59a6d","savedPayload":{"position":{"x":31046.906629374564,"y":16584.139111286247},"targetPosition":{"x":31063.21517295566,"y":17033.843493526696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f645108f-4648-497f-b361-0be5b84c233a"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Limit Sell Orders","project":"Superalgos","id":"ef44fbac-4f91-47a8-983a-a34a9bff9e8b","savedPayload":{"position":{"x":31155.001828980356,"y":16593.303813389022},"targetPosition":{"x":31063.21517295566,"y":17033.843493526696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e98191d1-5b13-42eb-bd52-31e3c6830188"}}},{"type":"Output Dataset","name":"Multi-Period-Market Last Market Order","project":"Superalgos","id":"7e238b18-d0f3-426c-b10d-194e81d6e5bf","savedPayload":{"position":{"x":31257.762721768915,"y":16628.071080404814},"targetPosition":{"x":31063.21517295566,"y":17033.843493526696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"768b42e9-59fe-494f-9e05-3be57fb17ca8"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Last Market Order","project":"Superalgos","id":"4bc6b052-2f68-4335-8f0d-930d869a289d","savedPayload":{"position":{"x":31349.217218172013,"y":16686.42036514854},"targetPosition":{"x":31063.21517295566,"y":17033.843493526696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"26a39916-4f2d-42ab-ae86-7ab622f80624"}}},{"type":"Output Dataset","name":"Multi-Period-Market Last Limit Order","project":"Superalgos","id":"614692d9-50af-4f5f-9790-ef471eecd20b","savedPayload":{"position":{"x":31424.050315282275,"y":16764.96061928192},"targetPosition":{"x":31063.21517295566,"y":17033.843493526696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f9263cd7-460d-461c-be7b-ed2a69d38d11"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Last Limit Order","project":"Superalgos","id":"3520e492-6504-4db7-9cab-1a118a31f89b","savedPayload":{"position":{"x":31477.912985502888,"y":16859.12736871692},"targetPosition":{"x":31063.21517295566,"y":17033.843493526696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f3d5b047-d9c2-4e71-8fce-6e9be3499556"}}}],"outputDatasetFolders":[],"id":"d6594a81-44be-4a3d-9186-b590e4df0d73","savedPayload":{"position":{"x":31063.21517295566,"y":17033.843493526696},"targetPosition":{"x":31133.610682223763,"y":17478.30324679451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"914ae121-5a93-4ee5-9a99-6aba6a39aead","savedPayload":{"position":{"x":31139.610682223763,"y":17478.30324679451},"targetPosition":{"x":31559.721874147504,"y":17639.568824089893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Trading System","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Trading System Errors","project":"Superalgos","id":"fffef2bc-4075-4d0d-b7ea-f66f3c794439","savedPayload":{"position":{"x":30935.07574201665,"y":17341.344458446794},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2ef33675-fc52-49fd-a8ef-bc5da1711dd1"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Errors","project":"Superalgos","id":"82523512-94b4-4b08-8932-049265af5daa","savedPayload":{"position":{"x":30922.43898710058,"y":17268.105230248453},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2d0dd4c2-4f4c-4d8c-b9a5-9ca62f186369"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Highlights","project":"Superalgos","id":"777f4b37-3c50-4ae8-8005-42aa960cdae6","savedPayload":{"position":{"x":30922.02936180857,"y":17193.78494816464},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"6e0f951c-25e7-4b92-85da-8be04d424bd0"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Highlights","project":"Superalgos","id":"da5be91d-2f77-4147-b31b-c2f273af28d1","savedPayload":{"position":{"x":30933.85803965077,"y":17120.410875752084},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"fa53ecfb-a558-4810-b6f8-1f9c6c8bfc5b"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Values","project":"Superalgos","id":"eae22a32-d154-4854-a471-f6b5febd41d8","savedPayload":{"position":{"x":30957.602365130708,"y":17049.98446643427},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9c4ec2f8-f4a8-45b9-aba3-b093a7b8f86a"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Values","project":"Superalgos","id":"2e848753-bdf4-4303-93ce-cea96b78fb3a","savedPayload":{"position":{"x":30992.614654946126,"y":16984.42676906944},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b3d3fe62-e714-4cb9-a78d-55bc0add1d7c"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Status","project":"Superalgos","id":"beca64ab-2509-43f5-bca6-095c6eaf6ecf","savedPayload":{"position":{"x":31037.93986510109,"y":16925.526026745545},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b83dc93-dc14-44d9-8f8c-889f39a952da"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Status","project":"Superalgos","id":"2aa4ae9f-6938-4967-b0ce-97c97e729127","savedPayload":{"position":{"x":31092.34164201657,"y":16874.888898170404},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"0f8dcda3-1eab-439d-956c-c6eb9b1c481f"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Progress","project":"Superalgos","id":"cde9d10e-f3fc-445c-8ab8-f765f428e7d6","savedPayload":{"position":{"x":31154.336047033168,"y":16833.896632210402},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"77735fc0-9ce6-4dec-a3ad-8075a22eda40"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Progress","project":"Superalgos","id":"e277a4df-c725-4164-ba3f-bcd595ba5f60","savedPayload":{"position":{"x":31222.23203438938,"y":16803.66739102207},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2fde11bd-4515-4a4e-9dc0-f6869dd3a04e"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Running","project":"Superalgos","id":"63ba83d9-9098-4fe0-bc15-8c4aa138cb98","savedPayload":{"position":{"x":31294.177578541763,"y":16785.025749503275},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"c7b45884-6cdf-43f7-a1e5-c5325effd207"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Running","project":"Superalgos","id":"dca719f2-e5b1-4676-a5cc-0aa78cdf817d","savedPayload":{"position":{"x":31368.21019259387,"y":16778.480203039515},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"a21cbc62-e6d8-4286-b0ff-430071d46700"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Announcements","project":"Superalgos","id":"d1a11ace-444a-4709-8464-230cf0b5b4a4","savedPayload":{"position":{"x":31442.310459822984,"y":16784.209297075355},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9e29a710-30c0-4faa-b71a-f4ee109673a2"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Announcements","project":"Superalgos","id":"5cc7df48-a3d5-49c4-ab98-95d977d7ac12","savedPayload":{"position":{"x":31514.45711810407,"y":16802.05675686013},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b7e24195-a9d0-45e7-9dba-447db8000feb"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Warnings","project":"Superalgos","id":"030ff471-5471-4e48-8da1-24e48bd7a95e","savedPayload":{"position":{"x":31582.68219467153,"y":16831.53575021577},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"0381cc1b-24c3-4705-9c76-94129e8605ff"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Warnings","project":"Superalgos","id":"5be3c8fd-243e-47ca-90e5-cc263c14da8b","savedPayload":{"position":{"x":31645.124687286097,"y":16871.84216704953},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b93b5cc3-7d61-4071-8eba-de15a4fea64b"}}},{"type":"Output Dataset","name":"Multi-Period-Market Trading System Infos","project":"Superalgos","id":"bdeac361-8693-44df-a47d-10eb881a0f3e","savedPayload":{"position":{"x":31700.081327524684,"y":16921.876553381175},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"cd834a3e-1b23-4e15-a068-59c235a90f89"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trading System Infos","project":"Superalgos","id":"540aea70-6c45-46e7-a4c7-717731f50872","savedPayload":{"position":{"x":31746.05304150284,"y":16980.27410158149},"targetPosition":{"x":31370.690384763395,"y":17228.47336815072},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e24a4dcf-5adb-4c63-b9db-3ba2a7ece789"}}}],"outputDatasetFolders":[],"id":"c01cb90b-67d6-4e38-8720-46c405e790ca","savedPayload":{"position":{"x":31376.690384763395,"y":17228.47336815072},"targetPosition":{"x":31559.721874147504,"y":17639.568824089893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Simulation Objects","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Episodes","project":"Superalgos","id":"f80a4896-072b-4e06-9d1b-e68998fef8ad","savedPayload":{"position":{"x":31388.56898448736,"y":16909.698073103962},"targetPosition":{"x":31714.98745144289,"y":17219.45763216615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"38264ecd-10e7-4a62-a2ca-9b607c30e72c"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Episodes","project":"Superalgos","id":"4d029e2f-760c-4ad2-b3db-336f28f84b60","savedPayload":{"position":{"x":31531.95596205878,"y":16808.36217622698},"targetPosition":{"x":31714.98745144289,"y":17219.45763216615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"cdc39b61-9aa5-46d5-9e80-915e0c2d545d"}}},{"type":"Output Dataset","name":"Multi-Period-Market Strategies","project":"Superalgos","id":"cf8fb7ee-dc19-4e15-b6c5-41a36ba68a50","savedPayload":{"position":{"x":31703.207824704346,"y":16769.61183592715},"targetPosition":{"x":31714.98745144289,"y":17219.45763216615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"03d1a187-b188-4ad7-b99e-6e4f6c6f0278"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Strategies","project":"Superalgos","id":"a312982f-f91a-475f-a27c-582a8312a4cd","savedPayload":{"position":{"x":31876.253028738272,"y":16799.34644024241},"targetPosition":{"x":31714.98745144289,"y":17219.45763216615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"58a5a046-53a1-43a7-bb76-0c29d94ef579"}}}],"outputDatasetFolders":[{"type":"Output Dataset Folder","name":"Orders","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Market Buy Orders","project":"Superalgos","id":"7548b90c-e06e-4733-bea8-09f5338b5170","savedPayload":{"position":{"x":31823.957994605666,"y":16490.318702489712},"targetPosition":{"x":32024.747010505078,"y":16893.039165210623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"45609efb-0edc-4aa9-bc12-f5b4ca6dc5bf"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Market Buy Orders","project":"Superalgos","id":"669a6acd-3570-4ffd-901f-61087b26c682","savedPayload":{"position":{"x":31973.80556430952,"y":16445.931830156158},"targetPosition":{"x":32024.747010505078,"y":16893.039165210623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"5eed53d0-a3e7-4082-b7f1-cb321b3d306b"}}},{"type":"Output Dataset","name":"Multi-Period-Market Market Sell Orders","project":"Superalgos","id":"6cad3b70-d38a-46a8-ad81-899f8b2bd79f","savedPayload":{"position":{"x":32129.797424240234,"y":16455.472701031667},"targetPosition":{"x":32024.747010505078,"y":16893.039165210623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"6112bd4d-07cb-41db-98c4-e286d172b5c0"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Market Sell Orders","project":"Superalgos","id":"4fe326fe-2bc5-4808-b1f4-4d234d3ec8d8","savedPayload":{"position":{"x":32273.118653895504,"y":16517.790545280397},"targetPosition":{"x":32024.747010505078,"y":16893.039165210623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"07cd5668-5e0f-4385-9c02-72eebc99344a"}}},{"type":"Output Dataset","name":"Multi-Period-Market Limit Buy Orders","project":"Superalgos","id":"57dd9169-fc8f-4ff9-8019-bfd6c3dd62a9","savedPayload":{"position":{"x":32386.482597782826,"y":16625.368911172518},"targetPosition":{"x":32024.747010505078,"y":16893.039165210623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"b82fb0f9-74c1-42e6-961c-a696214ef079"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Limit Buy Orders","project":"Superalgos","id":"e06f03ae-e9e5-4a58-ba22-e5f0c3251de0","savedPayload":{"position":{"x":32456.215891195763,"y":16765.232260093857},"targetPosition":{"x":32024.747010505078,"y":16893.039165210623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2e03f52e-0cd2-46b4-9c10-0b8516ef9c71"}}},{"type":"Output Dataset","name":"Multi-Period-Market Limit Sell Orders","project":"Superalgos","id":"0319a6de-a73d-4a29-883b-28e473f3c5f1","savedPayload":{"position":{"x":32473.907669794917,"y":16920.511008001307},"targetPosition":{"x":32024.747010505078,"y":16893.039165210623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"356495a9-b063-495d-b06d-5281c7c0007e"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Limit Sell Orders","project":"Superalgos","id":"1e6c50d7-3828-4f96-828f-8447a99b10f1","savedPayload":{"position":{"x":32437.424043978383,"y":17072.476246226983},"targetPosition":{"x":32024.747010505078,"y":16893.039165210623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"934ab813-127e-4bbf-aa71-09b3cdadc0d0"}}}],"outputDatasetFolders":[],"id":"035fbced-8761-4dca-b634-ffae62724f7f","savedPayload":{"position":{"x":32024.747010505078,"y":16893.039165210623},"targetPosition":{"x":31714.98745144289,"y":17219.45763216615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Stages","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Trigger Stages","project":"Superalgos","id":"2faef203-7d0e-47d2-9d36-47f38ed179a6","savedPayload":{"position":{"x":32094.692494197203,"y":16587.52232016512},"targetPosition":{"x":32126.08290738206,"y":17036.426142782042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"e951c491-c864-4668-9d70-c48df90d8342"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Trigger Stages","project":"Superalgos","id":"e676f3b6-e65b-42e7-84be-44c12be7f3f7","savedPayload":{"position":{"x":32250.11971749971,"y":16603.8583796098},"targetPosition":{"x":32126.08290738206,"y":17036.426142782042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ace4518d-bfe1-49e2-af7b-4ff9559fe6a9"}}},{"type":"Output Dataset","name":"Multi-Period-Market Open Stages","project":"Superalgos","id":"c8bd6875-e505-458b-afa7-80b779b7cf99","savedPayload":{"position":{"x":32390.586270913675,"y":16672.368495313316},"targetPosition":{"x":32126.08290738206,"y":17036.426142782042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"613bf56d-986e-4a94-9b39-4f0ac3300b0c"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Open Stages","project":"Superalgos","id":"3d2d5c0c-8bf1-4c5c-aa6b-8ca822df0c7c","savedPayload":{"position":{"x":32499.14981503183,"y":16784.789336220205},"targetPosition":{"x":32126.08290738206,"y":17036.426142782042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"44a0d895-2a7e-4f9a-b9a7-81dc32bf30e4"}}},{"type":"Output Dataset","name":"Multi-Period-Market Manage Stages","project":"Superalgos","id":"eec39a94-771d-4dd6-b1c0-1856a759f24a","savedPayload":{"position":{"x":32562.715984206257,"y":16927.56128976219},"targetPosition":{"x":32126.08290738206,"y":17036.426142782042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f6e10004-71dd-4ae9-8c1f-0b71de02d274"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Manage Stages","project":"Superalgos","id":"c8340bc7-1214-452e-b8b2-5d2a83e971f2","savedPayload":{"position":{"x":32573.617760297784,"y":17083.463951252485},"targetPosition":{"x":32126.08290738206,"y":17036.426142782042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"8f3984d8-e735-4dab-a9cc-51e97d704154"}}},{"type":"Output Dataset","name":"Multi-Period-Market Close Stages","project":"Superalgos","id":"c889f02f-9bba-4f5b-a1a3-70c76e5bbb22","savedPayload":{"position":{"x":32530.540228216687,"y":17233.693158837126},"targetPosition":{"x":32126.08290738206,"y":17036.426142782042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ee0f2bab-26b6-44c6-af1c-efbca2c765cd"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Close Stages","project":"Superalgos","id":"2052f35f-d3ab-425d-97b3-5b69edb3d1ef","savedPayload":{"position":{"x":32438.67917408861,"y":17360.129052934433},"targetPosition":{"x":32126.08290738206,"y":17036.426142782042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"cbd3905d-fafc-47f3-8a61-20c9aab10d86"}}}],"outputDatasetFolders":[],"id":"1b4dcc33-ac77-4f53-9a63-47e8426f3776","savedPayload":{"position":{"x":32126.08290738206,"y":17036.426142782042},"targetPosition":{"x":31714.98745144289,"y":17219.45763216615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Output Dataset Folder","name":"Position","project":"Superalgos","outputDatasets":[{"type":"Output Dataset","name":"Multi-Period-Market Positions","project":"Superalgos","id":"d2c1174c-ce8a-404f-98fd-d3b91895ef6e","savedPayload":{"position":{"x":32280.26698495324,"y":16772.735420366582},"targetPosition":{"x":32164.83324768189,"y":17207.67800542761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"55df9376-2806-429d-b43d-b96700787f74"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Positions","project":"Superalgos","id":"9ca58bc6-4b21-4b70-ba5d-c6abafa3fee0","savedPayload":{"position":{"x":32398.128594080277,"y":16822.875093083047},"targetPosition":{"x":32164.83324768189,"y":17207.67800542761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"fd62b468-93fa-44e0-941f-fff7ea4b04ea"}}},{"type":"Output Dataset","name":"Multi-Period-Market Position Base Asset","project":"Superalgos","id":"57931139-936d-4ee2-99eb-9b9628321398","savedPayload":{"position":{"x":32497.090001702963,"y":16904.18920924663},"targetPosition":{"x":32164.83324768189,"y":17207.67800542761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"a0ff2796-59dd-4aa4-93ed-ba4601b9de5d"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Position Base Asset","project":"Superalgos","id":"ea9f9e0d-114d-4ed4-9b61-7d155a881969","savedPayload":{"position":{"x":32569.133943121866,"y":17010.090182759428},"targetPosition":{"x":32164.83324768189,"y":17207.67800542761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"9985d32d-c070-4593-8a2a-ec8bc1c78cbb"}}},{"type":"Output Dataset","name":"Multi-Period-Market Position Quoted Asset","project":"Superalgos","id":"57285cd0-120d-43a2-b4a8-d25bc166c6ce","savedPayload":{"position":{"x":32608.42384666504,"y":17131.998546564773},"targetPosition":{"x":32164.83324768189,"y":17207.67800542761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"abab2ab2-3a9b-49bd-8935-9bb01c113761"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Position Quoted Asset","project":"Superalgos","id":"f085adfd-36e2-4ebd-9a42-eff08f337439","savedPayload":{"position":{"x":32611.77667801347,"y":17260.038010044118},"targetPosition":{"x":32164.83324768189,"y":17207.67800542761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"40ac7181-100d-4b65-b7fd-a8103cda2300"}}},{"type":"Output Dataset","name":"Multi-Period-Market Stop Loss","project":"Superalgos","id":"09a58e0e-2309-447e-8be4-c272385c49bd","savedPayload":{"position":{"x":32578.920810711363,"y":17383.835577346366},"targetPosition":{"x":32164.83324768189,"y":17207.67800542761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"0ea22a69-e7cb-4fcf-b7ae-4b7233b196c4"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Stop Loss","project":"Superalgos","id":"19c2422b-f0f9-4714-bf28-e58897c75355","savedPayload":{"position":{"x":32512.518031726173,"y":17493.361905821177},"targetPosition":{"x":32164.83324768189,"y":17207.67800542761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"75b13383-2771-4f58-b2c4-ffadad2e9519"}}},{"type":"Output Dataset","name":"Multi-Period-Market Take Profit","project":"Superalgos","id":"8555e8dd-5892-435e-9051-a8ac0d901815","savedPayload":{"position":{"x":32417.94789929874,"y":17579.743823713678},"targetPosition":{"x":32164.83324768189,"y":17207.67800542761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"3cd59aa1-0590-43b6-9fb7-c85276ac132e"}}},{"type":"Output Dataset","name":"Multi-Period-Daily Take Profit","project":"Superalgos","id":"fd77d264-2a52-4b8a-9a85-2510a1cb6f68","savedPayload":{"position":{"x":32302.871923128107,"y":17635.98318176926},"targetPosition":{"x":32164.83324768189,"y":17207.67800542761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"916d5610-87ae-47e7-9067-9a406141e3df"}}}],"outputDatasetFolders":[],"id":"31ecd1c1-4248-4b51-9066-e6c6b9c4a819","savedPayload":{"position":{"x":32164.83324768189,"y":17207.67800542761},"targetPosition":{"x":31714.98745144289,"y":17219.45763216615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"059498d1-eae4-4842-8846-8d21b32ab139","savedPayload":{"position":{"x":31720.98745144289,"y":17219.45763216615},"targetPosition":{"x":31559.721874147504,"y":17639.568824089893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f50da2e7-a341-4272-9947-db65142b1e23","savedPayload":{"position":{"x":31559.721874147504,"y":17639.568824089893},"targetPosition":{"x":31742.753363531614,"y":18050.664280029065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","project":"Superalgos","statusDependencies":[{"type":"Status Dependency","name":"Low Frequency Trading","config":"{\n \"mainUtility\": \"Self Reference\"\n}","project":"Superalgos","id":"e7fd528f-46bb-4a13-a11f-b6994236e3e7","savedPayload":{"position":{"x":31378.695716062884,"y":17420.09793772923},"targetPosition":{"x":31789.791172002057,"y":17603.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a8577e6c-9afc-4c9e-87ef-ee38531de864"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","config":"{\n\"mainUtility\": \"Market Ending Point\"\n}","project":"Superalgos","id":"0517c2f1-627f-44e2-b58d-6d3f72d6c931","savedPayload":{"position":{"x":31455.376000537228,"y":17302.020654251854},"targetPosition":{"x":31789.791172002057,"y":17603.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\"mainUtility\": \"Market Starting Point\"}","project":"Superalgos","id":"0b6d7ced-ccef-4a98-909c-443125480c10","savedPayload":{"position":{"x":31564.791172002057,"y":17213.417995410342},"targetPosition":{"x":31789.791172002057,"y":17603.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[],"dataMineDataDependencies":[{"type":"Data Mine Data Dependencies","name":"Masters","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"Webhooks","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"External Signals Single File","project":"Superalgos","id":"4d262c83-ea85-4c13-b2c2-e06273f0dce3","savedPayload":{"position":{"x":30801.16120530262,"y":17068.887389842243},"targetPosition":{"x":31248.696058218342,"y":17115.925198312685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Single File","id":"c52d1012-5e3b-41a0-b5af-84098b0594bf"}}}],"dataDependencyFolders":[],"id":"6b94d500-7c95-4178-b714-a13261f88ddf","savedPayload":{"position":{"x":31248.696058218342,"y":17115.925198312685},"targetPosition":{"x":31696.230911134066,"y":17162.963006783128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Candles Volumes","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Candles Multi-Period-Market","project":"Superalgos","id":"d49e652b-79c6-409b-abac-22604b4e88aa","savedPayload":{"position":{"x":30895.424023491894,"y":17204.931517399018},"targetPosition":{"x":31285.135455194893,"y":16979.931517399018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}},{"type":"Data Dependency","name":"Candles Multi-Period-Daily","project":"Superalgos","id":"16310d45-0ce4-4c0d-a307-c205aeb48e64","savedPayload":{"position":{"x":30837.60060227917,"y":16932.893708928576},"targetPosition":{"x":31285.135455194893,"y":16979.931517399018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Daily","project":"Superalgos","id":"1f7365be-a68e-491a-8446-32ba2ea0e7a3","savedPayload":{"position":{"x":30950.720283730065,"y":16678.82274453753},"targetPosition":{"x":31285.135455194893,"y":16979.931517399018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2e683057-f911-4105-bc77-16f2706d1915"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Market","project":"Superalgos","id":"3cf1d63c-155a-45ae-a2b3-36faabb5ea9f","savedPayload":{"position":{"x":31191.575194326902,"y":16539.765097068805},"targetPosition":{"x":31285.135455194893,"y":16979.931517399018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1"}}}],"dataDependencyFolders":[],"id":"c226ac3e-1e4d-48fc-8b5e-27ea871abeeb","savedPayload":{"position":{"x":31285.135455194893,"y":16979.931517399018},"targetPosition":{"x":31696.230911134066,"y":17162.963006783128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Bollinger Bands","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"af7dc60c-d5d2-433b-ab09-fd37c61654a7","savedPayload":{"position":{"x":30921.649319339023,"y":16955.41449478963},"targetPosition":{"x":31361.815739669237,"y":16861.85423392164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f5b2a7d8-fc32-44a3-a002-9b0fc30a9719"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"a7dd4c24-e5b3-4ddf-b350-44c5ef206eea","savedPayload":{"position":{"x":30950.720283730065,"y":16678.82274453753},"targetPosition":{"x":31361.815739669237,"y":16861.85423392164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"506104fa-e99a-4a46-930e-176bce311aff"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"eeb73829-8815-4e9d-be40-80ce46049381","savedPayload":{"position":{"x":31136.815739669237,"y":16472.14280221864},"targetPosition":{"x":31361.815739669237,"y":16861.85423392164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"207e9481-0730-4304-a938-cfe223d70856"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"05418e2b-de4a-4855-ad43-82dd22c5ab57","savedPayload":{"position":{"x":31408.85354813968,"y":16414.319381005917},"targetPosition":{"x":31361.815739669237,"y":16861.85423392164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e60d62dd-87f7-4f2d-ac21-3ac5c30a50ea"}}}],"dataDependencyFolders":[],"id":"42a0318e-15de-4d4f-937a-aa93c8bf6799","savedPayload":{"position":{"x":31361.815739669237,"y":16861.85423392164},"targetPosition":{"x":31696.230911134066,"y":17162.963006783128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Bollinger Channels","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"38f62ac3-67a7-4bfe-bede-7c64ffce5585","savedPayload":{"position":{"x":31028.06742227857,"y":16851.39325503025},"targetPosition":{"x":31471.230911134066,"y":16773.25157508013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"610cd062-ab88-4892-b711-0fb430305c61"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"63c7dc87-60f4-450b-b03f-460e24871381","savedPayload":{"position":{"x":31028.06742227857,"y":16695.10989513001},"targetPosition":{"x":31471.230911134066,"y":16773.25157508013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"64910fea-c92a-4a55-850a-aa62d98b478e"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"31fd8b9d-5d0f-4df7-9db8-a92565e93280","savedPayload":{"position":{"x":31081.519479431066,"y":16548.25157508013},"targetPosition":{"x":31471.230911134066,"y":16773.25157508013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"22c1f2c6-3838-4657-add8-2e01d7056917"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"3edfa5d9-1267-45df-95a7-d6a0fabf0dc5","savedPayload":{"position":{"x":31181.976486775122,"y":16428.53157567659},"targetPosition":{"x":31471.230911134066,"y":16773.25157508013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"96b4e65b-e6db-44a0-80a5-ceb9d68a09ec"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"ac0cddc1-4817-45fa-a960-038a8f014fa2","savedPayload":{"position":{"x":31317.321846637515,"y":16350.389895726468},"targetPosition":{"x":31471.230911134066,"y":16773.25157508013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"869f615e-0cc0-44fd-8648-4a951c23a410"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"37ed91b7-4a0a-4f56-af52-697b97e866cf","savedPayload":{"position":{"x":31471.230911134066,"y":16323.251575080129},"targetPosition":{"x":31471.230911134066,"y":16773.25157508013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"029479ae-275d-4854-ad3e-66948656a053"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"82e17882-4e77-47d6-8ac4-709232f21771","savedPayload":{"position":{"x":31625.139975630616,"y":16350.389895726468},"targetPosition":{"x":31471.230911134066,"y":16773.25157508013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"f8d44a4d-3771-4a71-97ca-dc604ff565d3"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"a592c4ef-e086-4081-9c99-7c557376627d","savedPayload":{"position":{"x":31760.48533549301,"y":16428.53157567659},"targetPosition":{"x":31471.230911134066,"y":16773.25157508013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"ca71e765-0f66-4b18-b500-847b9d16169b"}}}],"dataDependencyFolders":[],"id":"5b8b4ab5-f886-4639-89e5-c8c4eca90f9c","savedPayload":{"position":{"x":31471.230911134066,"y":16773.25157508013},"targetPosition":{"x":31696.230911134066,"y":17162.963006783128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Candle Channels","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"1470209a-172e-40ca-bec0-25f57eb4ee5c","savedPayload":{"position":{"x":31191.575194326902,"y":16539.765097068805},"targetPosition":{"x":31602.670650266075,"y":16722.796586452914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"df7d1cd7-95b0-499c-b51a-772c3fb8a2b0"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"81c48ba3-d186-4b22-8981-752d3d28e554","savedPayload":{"position":{"x":31377.670650266075,"y":16333.085154749915},"targetPosition":{"x":31602.670650266075,"y":16722.796586452914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"07734f1c-e2e7-4a35-8567-6a996c68883e"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"f72351b7-367b-459e-a297-b5abec7155f8","savedPayload":{"position":{"x":31649.708458736517,"y":16275.26173353719},"targetPosition":{"x":31602.670650266075,"y":16722.796586452914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"566b9df4-da86-4b4f-a3f4-ef8a76443714"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"c1d62c3f-6345-4ff9-9170-26a7ff91d1f2","savedPayload":{"position":{"x":31903.779423127562,"y":16388.381414988085},"targetPosition":{"x":31602.670650266075,"y":16722.796586452914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"8a7d224b-7571-4e1a-8b8f-8a35aa25dc63"}}}],"dataDependencyFolders":[],"id":"4e734cf8-48e2-49a7-836f-b1249bef2547","savedPayload":{"position":{"x":31602.670650266075,"y":16722.796586452914},"targetPosition":{"x":31696.230911134066,"y":17162.963006783128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Resistances and Supports","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"f7bf772f-37d3-47a8-a243-a158e2efa091","savedPayload":{"position":{"x":31408.85354813968,"y":16414.319381005917},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"44e905fc-719f-453b-a567-fd5e3bfcae91"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"39757544-c0bc-4ccf-b786-fc961d845db0","savedPayload":{"position":{"x":31649.708458736517,"y":16275.26173353719},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f4530d48-3239-4ab0-8c4d-d611cd55fde3"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"70ed349c-815a-4eef-b06b-5c8690bf5268","savedPayload":{"position":{"x":31926.300208988618,"y":16304.332697928232},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4a1bd251-76ed-4530-8723-08e41d50f12d"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"b7b2012d-6b3a-4a81-a841-0b08061a6b60","savedPayload":{"position":{"x":32132.980151307507,"y":16490.428153867404},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"deaaf4ec-9352-40b6-af9a-8541a73a5e13"}}}],"dataDependencyFolders":[],"id":"955c58c7-5e4f-4f91-9a12-0c6a81fb9ba0","savedPayload":{"position":{"x":31743.268719604508,"y":16715.428153867404},"targetPosition":{"x":31696.230911134066,"y":17162.963006783128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Fees Band","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"05b4030f-7240-4f9c-a03a-45591d7c9079","savedPayload":{"position":{"x":31832.224592047733,"y":16304.332697928232},"targetPosition":{"x":31879.262400518175,"y":16751.867550843956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9c699a57-f0cf-434c-8ef8-40aac182200e"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"93dee846-2d29-46f7-8298-bc17475a360d","savedPayload":{"position":{"x":32243.3200479869,"y":16487.36418731234},"targetPosition":{"x":31879.262400518175,"y":16751.867550843956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2dd03ed7-736e-4959-ad8e-8108e59b8796"}}}],"dataDependencyFolders":[],"id":"dc1f8f70-5255-48aa-945a-c6ca9d9eb9cf","savedPayload":{"position":{"x":31879.262400518175,"y":16751.867550843956},"targetPosition":{"x":31696.230911134066,"y":17162.963006783128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Volume Analysis","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"943209e4-1d8c-4a82-a6c3-51fb0a92a848","savedPayload":{"position":{"x":32090.899944863544,"y":16388.381414988085},"targetPosition":{"x":31997.339683995553,"y":16828.5478353183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"1d4df142-34c0-4439-a532-208c56cbb349"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"489ed763-0358-4ad6-8b67-27479e37456d","savedPayload":{"position":{"x":32425.315116328373,"y":16689.490187849573},"targetPosition":{"x":31997.339683995553,"y":16828.5478353183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"cccbe688-75e9-405c-a087-8c1bb953430f"}}}],"dataDependencyFolders":[],"id":"967f32f4-bf9a-48ee-b029-0aac6d7f6c6f","savedPayload":{"position":{"x":31997.339683995553,"y":16828.5478353183},"targetPosition":{"x":31696.230911134066,"y":17162.963006783128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Candle Analysis","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"f28c08ba-4f8e-4f1d-a8d6-9b448332ca91","savedPayload":{"position":{"x":32310.942342837065,"y":16548.25157508013},"targetPosition":{"x":32085.942342837065,"y":16937.963006783128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f65e4bf0-df3b-414c-aeba-f21dadb5d7ec"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"6f2baf08-d5ba-4e97-99a0-d3b1860779ae","savedPayload":{"position":{"x":32535.942342837065,"y":16937.963006783128},"targetPosition":{"x":32085.942342837065,"y":16937.963006783128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2127b8f1-932e-41c4-8eb9-1e0b6f02c2ec"}}}],"dataDependencyFolders":[],"id":"9372e4cf-b684-4535-b1db-0806cb0f21cd","savedPayload":{"position":{"x":32085.942342837065,"y":16937.963006783128},"targetPosition":{"x":31696.230911134066,"y":17162.963006783128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bb373fba-6e46-49cb-96f3-3993b0fabddf","savedPayload":{"position":{"x":31696.230911134066,"y":17162.963006783128},"targetPosition":{"x":31789.791172002057,"y":17603.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Masters","id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959"}}},{"type":"Data Mine Data Dependencies","name":"Sparta","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"SMA","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"Popular SMAs Multi-Period-Market","project":"Superalgos","id":"f6c100bb-6d55-4413-885a-cf72c0c88737","savedPayload":{"position":{"x":31138.356161538944,"y":17118.989164867744},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"3b21f9d7-2cbc-4c23-80c8-cc5e5b06a22c"}}},{"type":"Data Dependency","name":"Popular SMAs Multi-Period-Daily","project":"Superalgos","id":"f222eb9d-03d7-4d07-8359-eab4175236f8","savedPayload":{"position":{"x":31091.3183530685,"y":17037.51729072024},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2c338fe0-385f-45ab-b210-b98ef013228d"}}},{"type":"Data Dependency","name":"Base7 SMAs Multi-Period-Market","project":"Superalgos","id":"f6916d88-c2c3-47b1-b1e2-17b07cc7f806","savedPayload":{"position":{"x":31062.247388677457,"y":16948.04606220412},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"78a6ef37-4df8-4ac8-83a0-c9a732467c59"}}},{"type":"Data Dependency","name":"Base7 SMAs Multi-Period-Daily","project":"Superalgos","id":"3ef5ba50-e0e4-43e3-9ff6-7e5a38cdb27a","savedPayload":{"position":{"x":31052.41380900767,"y":16854.48580133613},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f155e2ed-7082-4021-a4ff-a6f3cfd5683d"}}},{"type":"Data Dependency","name":"Base11 SMAs Multi-Period-Market","project":"Superalgos","id":"c54592c1-b3ff-4e26-afd7-2c99a41bc480","savedPayload":{"position":{"x":31062.247388677457,"y":16760.92554046814},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"af9b9cef-2a74-486f-b79e-047d68669a1f"}}},{"type":"Data Dependency","name":"Base11 SMAs Multi-Period-Daily","project":"Superalgos","id":"da27910b-25c6-4353-aaa6-11833ceff9e2","savedPayload":{"position":{"x":31091.3183530685,"y":16671.45431195202},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"de5cfa30-edbf-4d5b-8d7f-facfb69a0f3e"}}},{"type":"Data Dependency","name":"Base5 SMAs Muti-Period-Market","project":"Superalgos","id":"94e0b16a-5479-41cc-ac49-c3731d7649a7","savedPayload":{"position":{"x":31138.356161538944,"y":16589.982437804516},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Muti-Period-Market","id":"a5d28568-fb58-469a-9820-b9f0e8eab705"}}},{"type":"Data Dependency","name":"Base5 SMAs Multi-Period-Daily","project":"Superalgos","id":"f53b92bf-81a9-460c-8606-d7393f7ea1b9","savedPayload":{"position":{"x":31201.305036146183,"y":16520.0706298713},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"01f32aa3-55e9-4f8c-80c7-997b52073274"}}},{"type":"Data Dependency","name":"Base6 SMAs Multi-Period-Market","project":"Superalgos","id":"7255a015-bcba-46cc-bce3-a086bde7cd9c","savedPayload":{"position":{"x":31277.41380900767,"y":16464.77436963313},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"c0862b3d-d35a-4d3e-8d80-258b8a01c37c"}}},{"type":"Data Dependency","name":"Base6 SMAs Multi-Period-Daily","project":"Superalgos","id":"7d125034-419a-4213-99f9-17ee742b5060","savedPayload":{"position":{"x":31363.356161538944,"y":16426.51036900331},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f5050eb2-0a99-464e-b5e2-2d8f40453e9a"}}},{"type":"Data Dependency","name":"Base12 SMAs Multi-Period-Market","project":"Superalgos","id":"40e2db15-fa28-4e7f-a06f-55db43a82c9b","savedPayload":{"position":{"x":31455.376000537228,"y":16406.950948420406},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"6ba76363-0f50-4e67-8678-3eb4fd6d07d6"}}},{"type":"Data Dependency","name":"Base12 SMAs Multi-Period-Daily","project":"Superalgos","id":"4428af09-2752-4150-8a93-e67835f9f153","savedPayload":{"position":{"x":31549.451617478113,"y":16406.950948420406},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"92d92b3e-6870-499b-bfec-33bab220bf62"}}},{"type":"Data Dependency","name":"Base30 SMAs Multi-Period-Market","project":"Superalgos","id":"22181196-5218-4820-97e8-7e5611db578a","savedPayload":{"position":{"x":31641.471456476396,"y":16426.51036900331},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4c486321-22e0-4991-9a1c-571bada649ad"}}},{"type":"Data Dependency","name":"Base30 SMAs Multi-Period-Daily","project":"Superalgos","id":"43064f0e-46fb-4ddf-9aa1-2e60cfc2bcdd","savedPayload":{"position":{"x":31727.41380900767,"y":16464.77436963313},"targetPosition":{"x":31502.41380900767,"y":16854.48580133613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"819688c9-c7bd-444b-9658-2a4379125c72"}}}],"dataDependencyFolders":[],"id":"865ca804-48d0-453f-859b-59da94c60e7f","savedPayload":{"position":{"x":31502.41380900767,"y":16854.48580133613},"targetPosition":{"x":31836.8289804725,"y":17155.594574197617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"EMA","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"45ed8174-7f73-4ef4-9b97-c7fdd06d3440","savedPayload":{"position":{"x":31293.268719604508,"y":16715.428153867404},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ea1af06a-2584-43f0-aecf-ec8ad9169e9c"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"896fadd1-75bd-4c5f-9ee6-e0bb01aef101","savedPayload":{"position":{"x":31303.102299274295,"y":16621.867892999413},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e7f5899c-fc4c-412d-a8db-77c1bef8ed21"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"fede78a8-c43d-466b-bdbd-37e06a3f5c1b","savedPayload":{"position":{"x":31332.173263665336,"y":16532.396664483294},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"85e3f0ce-5331-4c0b-900a-e73aaf53d96e"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"7b1ed9bd-230c-416f-a429-53162bee94c6","savedPayload":{"position":{"x":31379.211072135782,"y":16450.92479033579},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e04edb48-09ab-4f92-beb7-14ba647de7d6"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"9baa62ae-c198-46b7-8ac0-4e682cac04d1","savedPayload":{"position":{"x":31442.15994674302,"y":16381.012982402575},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"6b6840f7-3b76-474a-9d27-9515cbcd6499"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"cb48a108-c578-4423-a809-b93fe5dc1178","savedPayload":{"position":{"x":31518.268719604508,"y":16325.716722164405},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ef3d5a7d-11eb-4ead-8e24-49ac7c80b0c7"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"6c98f48d-b32a-4afa-b6e2-f5879d75d2cb","savedPayload":{"position":{"x":31604.211072135782,"y":16287.452721534584},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4e36a5a5-7a03-43a9-b3e0-0c5763c29199"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"f8ffaf2b-65bc-4000-8d70-6a5bd073330e","savedPayload":{"position":{"x":31696.230911134066,"y":16267.89330095168},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"15ccbcff-318d-46db-93f2-d649b57fd52a"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"1474cd98-5fa6-40cb-997b-c845639bb284","savedPayload":{"position":{"x":31790.30652807495,"y":16267.89330095168},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5586aa74-2ecb-4b71-83ea-d621aa400660"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"523d76b3-5cb7-43a2-84d3-2cd9e416f4cd","savedPayload":{"position":{"x":31882.326367073234,"y":16287.452721534584},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"0198fa3f-98e3-4c57-a4a4-a7a8e27905d3"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"116353fa-9a96-4b92-aae0-3360a555417e","savedPayload":{"position":{"x":31968.268719604508,"y":16325.716722164405},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ea61dfed-8f93-4b4f-8575-61ca2547ea90"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"3bed9aac-6c45-43d3-8886-f415cf8e2a0c","savedPayload":{"position":{"x":32044.377492465996,"y":16381.012982402575},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b251aca0-1996-4d13-99ed-6fb9796ec8d6"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"c6c3542a-4fac-429b-9887-d4aa78602149","savedPayload":{"position":{"x":32107.326367073234,"y":16450.92479033579},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"dea3491f-aae7-4419-a98f-108cf5d69b87"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"c6efe95b-6f58-4916-b879-eafe896d42fe","savedPayload":{"position":{"x":32154.36417554368,"y":16532.396664483294},"targetPosition":{"x":31743.268719604508,"y":16715.428153867404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"6624337b-4afd-44b8-a2ea-3f1779ddda7e"}}}],"dataDependencyFolders":[],"id":"c4bcaef1-029d-42a2-adaf-c89bd5e340ed","savedPayload":{"position":{"x":31743.268719604508,"y":16715.428153867404},"targetPosition":{"x":31836.8289804725,"y":17155.594574197617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"MACD","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"4ebcee82-fb06-48c5-bd00-be086fe9b10d","savedPayload":{"position":{"x":31696.157559704217,"y":16431.902851551895},"targetPosition":{"x":32019.86046985661,"y":16744.499118258445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"01d43ed0-2a80-4eca-bee6-db2fe40470fc"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"dc57c67e-aee7-43e5-812c-1a2b6f4b0523","savedPayload":{"position":{"x":31822.593453801524,"y":16340.041797423819},"targetPosition":{"x":32019.86046985661,"y":16744.499118258445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"dd5d3067-ff7b-4353-ba4f-c030bd3da796"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"929cdf22-03cf-4808-87c9-410788b306ff","savedPayload":{"position":{"x":31972.822661386166,"y":16296.964265342722},"targetPosition":{"x":32019.86046985661,"y":16744.499118258445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"19b1d791-d2ea-4f25-a6e1-fe0a64450745"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"6acc9176-a33a-4d95-a065-8a7f278d3d7b","savedPayload":{"position":{"x":32128.72532287646,"y":16307.866041434248},"targetPosition":{"x":32019.86046985661,"y":16744.499118258445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ec2611a6-699b-45a5-beec-679dd4b7734a"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"0cc6f43f-ed39-4ff4-9811-cc3ad841bc42","savedPayload":{"position":{"x":32271.497276418446,"y":16371.432210608677},"targetPosition":{"x":32019.86046985661,"y":16744.499118258445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"c390cbd3-0ba0-4507-8614-42c88f4ce7e6"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"756737a7-a6c7-4f2a-845b-2881814537d2","savedPayload":{"position":{"x":32383.918117325335,"y":16479.99575472683},"targetPosition":{"x":32019.86046985661,"y":16744.499118258445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"29e18539-f188-4d29-9531-25cd3ee8f282"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"a4c788e6-3c63-46a3-b752-f584eab5213b","savedPayload":{"position":{"x":32452.42823302885,"y":16620.462308140795},"targetPosition":{"x":32019.86046985661,"y":16744.499118258445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"89254c6c-9be2-4037-b063-467edc660d10"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"ba2ac8fe-e021-444d-957e-84be68d6f918","savedPayload":{"position":{"x":32468.76429247353,"y":16775.889531443303},"targetPosition":{"x":32019.86046985661,"y":16744.499118258445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"8a9dde13-e4b8-40f3-80bc-ea51050b2f08"}}}],"dataDependencyFolders":[],"id":"cc197aba-39d0-4736-8c2b-bda6eb134bf0","savedPayload":{"position":{"x":32019.86046985661,"y":16744.499118258445},"targetPosition":{"x":31836.8289804725,"y":17155.594574197617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"RSI","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"d346bec8-3710-4295-8953-20350461715c","savedPayload":{"position":{"x":32451.5404121755,"y":16540.88314249462},"targetPosition":{"x":32226.5404121755,"y":16930.594574197617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5ec62760-e144-4496-98ab-0415a4b315ec"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"3e7e6c8d-9473-49b2-b2fd-4a3f6dc58edc","savedPayload":{"position":{"x":32676.5404121755,"y":16930.594574197617},"targetPosition":{"x":32226.5404121755,"y":16930.594574197617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f1556d09-f134-4678-83fb-04002d1dcd34"}}}],"dataDependencyFolders":[],"id":"285b291e-023c-4c30-9739-b75f72e47ef8","savedPayload":{"position":{"x":32226.5404121755,"y":16930.594574197617},"targetPosition":{"x":31836.8289804725,"y":17155.594574197617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"35f72951-fd87-499a-9094-2674c68386c3","savedPayload":{"position":{"x":31836.8289804725,"y":17155.594574197617},"targetPosition":{"x":31789.791172002057,"y":17603.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Sparta","id":"9cfffc48-486a-48cb-b641-98c82e314d3a"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"Super Trend","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"aa25c359-b0ad-471a-9beb-2f36a5343e25","savedPayload":{"position":{"x":31297.22384191538,"y":16644.944834321333},"targetPosition":{"x":31708.319297854552,"y":16827.976323705443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7c8e7a6f-99c8-4d90-9f44-e3e9e909eb88"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"75981994-324a-46e8-bb53-fa2d3ce6d2ca","savedPayload":{"position":{"x":31661.28148938411,"y":16380.44147078972},"targetPosition":{"x":31708.319297854552,"y":16827.976323705443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"c17b5d3f-7cf7-418a-92b8-f8c67a120446"}}}],"dataDependencyFolders":[],"id":"182ce481-aaa7-4eb6-a941-87ea4bd18e5f","savedPayload":{"position":{"x":31708.319297854552,"y":16827.976323705443},"targetPosition":{"x":31972.822661386166,"y":17192.03397117417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Wave Trend","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"b5de16ef-ce7e-4dc2-9719-0715ed9b6de7","savedPayload":{"position":{"x":31661.28148938411,"y":16380.44147078972},"targetPosition":{"x":31925.784852915724,"y":16744.499118258445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9b727bdd-1684-43e1-a39c-fbd14ce64828"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"3ab774f7-128d-4d79-870d-eeedeb53674e","savedPayload":{"position":{"x":32108.816342299833,"y":16333.403662319273},"targetPosition":{"x":31925.784852915724,"y":16744.499118258445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"3bf983d5-4d3c-46f8-a130-9e621b76e62d"}}}],"dataDependencyFolders":[],"id":"afd3b0b9-8d11-4d78-a777-de60564a8162","savedPayload":{"position":{"x":31925.784852915724,"y":16744.499118258445},"targetPosition":{"x":31972.822661386166,"y":17192.03397117417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Donchian Channel","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"1a048d09-ae81-4514-a9bd-605420d81ba4","savedPayload":{"position":{"x":32108.816342299833,"y":16333.403662319273},"targetPosition":{"x":32155.854150770276,"y":16780.938515234997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"7298225c-3b68-4f34-a935-fc0ab3d8f662"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"981bf6e9-f3e9-4818-9db0-f97924723a2b","savedPayload":{"position":{"x":32519.911798239,"y":16516.435151703383},"targetPosition":{"x":32155.854150770276,"y":16780.938515234997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"50ed783e-0e71-4903-8a82-854c8bd2ed6e"}}}],"dataDependencyFolders":[],"id":"cb76ca1e-8d5e-4155-a830-105e5b2e9591","savedPayload":{"position":{"x":32155.854150770276,"y":16780.938515234997},"targetPosition":{"x":31972.822661386166,"y":17192.03397117417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"DMI Directional Movement","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"dc3dfe16-1717-4205-84bc-cfb4901cd882","savedPayload":{"position":{"x":32519.911798239,"y":16516.435151703383},"targetPosition":{"x":32336.880308854892,"y":16927.530607642555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ffc7f78b-9ec3-4218-b76f-47233d535a17"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"475e4ca7-1deb-400d-8f00-2cb436ccf866","savedPayload":{"position":{"x":32784.415161770616,"y":16880.492799172112},"targetPosition":{"x":32336.880308854892,"y":16927.530607642555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"9b222dca-e8c2-4392-9c3e-7c970dca4a52"}}}],"dataDependencyFolders":[],"id":"b5dc9ede-b1c0-4c9d-8af3-47dca243d9ae","savedPayload":{"position":{"x":32336.880308854892,"y":16927.530607642555},"targetPosition":{"x":31972.822661386166,"y":17192.03397117417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Ichimoku Cloud","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"c077f92a-4899-4a01-961c-da5c6a460ed4","savedPayload":{"position":{"x":32784.415161770616,"y":16880.492799172112},"targetPosition":{"x":32420.35751430189,"y":17144.996162703726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"80018870-2528-42bf-a3a7-6f0b5e44d9c9"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"2ae91f5c-28de-40d1-93ba-89e50bca120b","savedPayload":{"position":{"x":32831.452970241065,"y":17328.027652087836},"targetPosition":{"x":32420.35751430189,"y":17144.996162703726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ef8da44c-8cc5-41fc-add6-f2feff945632"}}}],"dataDependencyFolders":[],"id":"bb7bd319-2d2a-4ee7-af94-e21613f73543","savedPayload":{"position":{"x":32420.35751430189,"y":17144.996162703726},"targetPosition":{"x":31972.822661386166,"y":17192.03397117417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"4753c44e-2dfa-48c4-8e93-159d17f4511b","savedPayload":{"position":{"x":31972.822661386166,"y":17192.03397117417},"targetPosition":{"x":31789.791172002057,"y":17603.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Zeus","id":"d2083ac0-43e2-41e4-83c7-eb09a6f29353"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"ATR","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"0bd705dc-9278-4d39-b266-f142a556c94c","savedPayload":{"position":{"x":31689.94700897878,"y":16574.24339925219},"targetPosition":{"x":32067.34876455422,"y":16819.330965008954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"67695466-be2d-43b4-9824-83baa7a08412"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"0681e9a9-9895-4420-aa40-598f1474919a","savedPayload":{"position":{"x":31906.083187258835,"y":16399.219773085213},"targetPosition":{"x":32067.34876455422,"y":16819.330965008954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e3d0bccf-5f97-4902-92df-4ac8fe8c41a8"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"e59288bb-e428-4686-837f-1475ae86f7b0","savedPayload":{"position":{"x":32183.81733485035,"y":16384.664343178873},"targetPosition":{"x":32067.34876455422,"y":16819.330965008954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2570d2c7-72e3-4131-97dc-a9f97f493e93"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"75de7f05-ae08-462d-9840-c7e8ce83db21","savedPayload":{"position":{"x":32417.064447209857,"y":16536.136789036525},"targetPosition":{"x":32067.34876455422,"y":16819.330965008954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"93eb665f-d903-4825-9fb1-2783e917ac89"}}}],"dataDependencyFolders":[],"id":"fb94c6f8-1001-49ee-95fb-300c10e94c7d","savedPayload":{"position":{"x":32067.34876455422,"y":16819.330965008954},"targetPosition":{"x":32090.899944863544,"y":17268.714255648512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"ROC","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"06cc9d0c-7a8d-4da0-8ab8-1724352c44f0","savedPayload":{"position":{"x":32221.357259531214,"y":16517.912148970387},"targetPosition":{"x":32392.00871772503,"y":16934.299084183684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"40268fec-e5e8-4b05-9f27-c4072ebda94a"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"4384ac6e-1f40-426a-baea-42e353612ffd","savedPayload":{"position":{"x":32418.9205870003,"y":16485.104525788203},"targetPosition":{"x":32392.00871772503,"y":16934.299084183684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"cb60d68b-b11d-4317-8830-65c212a8c728"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"f44fb6a3-2dee-47ad-850b-37fb02cc7d82","savedPayload":{"position":{"x":32611.153688706996,"y":16541.265393905975},"targetPosition":{"x":32392.00871772503,"y":16934.299084183684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"41a488be-c66c-458d-99fc-490b9e8172ef"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"727b8b9a-b93b-4c75-bfe7-24e5a5117140","savedPayload":{"position":{"x":32759.982441274027,"y":16675.27140462513},"targetPosition":{"x":32392.00871772503,"y":16934.299084183684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"30276899-0d68-40e3-9c35-a28442485b55"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"d62366e0-983c-44f4-8091-0c5d35c7fd3a","savedPayload":{"position":{"x":32835.929484990615,"y":16860.58102404687},"targetPosition":{"x":32392.00871772503,"y":16934.299084183684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9c6b7d85-01f5-449c-a5be-9a357b6588bc"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"68de0e1d-b715-457f-8317-3de7f4a95ba7","savedPayload":{"position":{"x":32823.95257641933,"y":17060.491409371385},"targetPosition":{"x":32392.00871772503,"y":16934.299084183684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"66f59b6d-9d4b-4cef-9ffd-aed019219809"}}}],"dataDependencyFolders":[],"id":"b9d44070-286a-4e06-a1b1-e8f0a4c443cb","savedPayload":{"position":{"x":32392.00871772503,"y":16934.299084183684},"targetPosition":{"x":32090.899944863544,"y":17268.714255648512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Stochastic","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"4e1b5819-e232-4e83-b823-adaaea13f6be","savedPayload":{"position":{"x":32917.68499107854,"y":17000.075509582424},"targetPosition":{"x":32540.283235503102,"y":17245.163075339187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"88b1ff0e-ad99-474c-8833-7b76a5a57ebd"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"e326bbc5-5a60-47a7-bc0c-f5cbf73ed6f4","savedPayload":{"position":{"x":32941.23617138786,"y":17449.458800221983},"targetPosition":{"x":32540.283235503102,"y":17245.163075339187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"4b941e0d-8b0a-41e2-bc20-54e0bc0d936a"}}}],"dataDependencyFolders":[],"id":"8906261a-12ed-426f-9e61-e3364d3416f9","savedPayload":{"position":{"x":32540.283235503102,"y":17245.163075339187},"targetPosition":{"x":32090.899944863544,"y":17268.714255648512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"590a75c2-4bf6-48e0-9d78-161dde4ab1dd","savedPayload":{"position":{"x":32090.899944863544,"y":17268.714255648512},"targetPosition":{"x":31789.791172002057,"y":17603.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Alpha","id":"511bef1e-62d8-4ff9-8d87-15bd0d3d630c"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"Candles Probabilities","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"701b2fe3-63a4-42ea-8258-a6ccfbb4dda1","savedPayload":{"position":{"x":32404.502603705056,"y":16538.417995410342},"targetPosition":{"x":32404.502603705056,"y":16988.417995410342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"85c67513-347a-4948-9121-dee04543fcff"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"ad078b3b-3e2f-41d4-b47d-0276b121a9e1","savedPayload":{"position":{"x":32794.214035408055,"y":16763.417995410342},"targetPosition":{"x":32404.502603705056,"y":16988.417995410342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"fa17370b-0a9c-4350-9cce-1df4be39b58c"}}}],"dataDependencyFolders":[],"id":"9661bd50-2f23-4064-b92c-969cc5c43a8a","savedPayload":{"position":{"x":32404.502603705056,"y":16988.417995410342},"targetPosition":{"x":32179.502603705056,"y":17378.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Bot Data Dependencies","name":"Candles Channels Probabilities","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"ef21ded7-724f-4808-92ee-0aea97adb1b6","savedPayload":{"position":{"x":33019.214035408055,"y":17153.12942711334},"targetPosition":{"x":32629.502603705056,"y":17378.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"fdee2b9c-3036-4db2-af42-b3507a6ffacf"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"94b23c10-760f-470a-b662-a81279f667b3","savedPayload":{"position":{"x":33019.214035408055,"y":17603.12942711334},"targetPosition":{"x":32629.502603705056,"y":17378.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2774470d-7382-48e3-bd0a-957f0332a698"}}}],"dataDependencyFolders":[],"id":"2463d929-6149-4723-8ef0-7dd9705bb5c6","savedPayload":{"position":{"x":32629.502603705056,"y":17378.12942711334},"targetPosition":{"x":32179.502603705056,"y":17378.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"90d6ef9d-8d5b-48ec-b593-ac9b45bfc3d7","savedPayload":{"position":{"x":32179.502603705056,"y":17378.12942711334},"targetPosition":{"x":31789.791172002057,"y":17603.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Samurai","id":"37e312af-e076-47aa-a1cd-bf5b2e16127d"}}},{"type":"Data Mine Data Dependencies","name":"","project":"Superalgos","botDataDependencies":[{"type":"Bot Data Dependencies","name":"Candle Patterns","project":"Superalgos","dataDependencies":[{"type":"Data Dependency","name":"","project":"Superalgos","id":"aeae278a-dfe9-4eb8-ae40-43221dd83c16","savedPayload":{"position":{"x":32732.751908094513,"y":16970.388274443652},"targetPosition":{"x":32670.124012662483,"y":17416.00890537736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"07be5b9b-e8fd-49fc-ab77-20f89fdea10f"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"9eb1255c-faa0-43da-9931-9f72fe2025bb","savedPayload":{"position":{"x":32881.386215916136,"y":17018.682488590843},"targetPosition":{"x":32670.124012662483,"y":17416.00890537736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"9e6d7f95-b2fe-466e-9a5d-175479cbf85d"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"67d4fcaf-7a5d-4cbc-ba27-c7bf56bb4ea4","savedPayload":{"position":{"x":33004.53918412731,"y":17114.90013251587},"targetPosition":{"x":32670.124012662483,"y":17416.00890537736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"144d8665-1ff0-4db3-9340-a33fd7d0d098"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"0c6208be-27c6-49f8-a96f-9eac016daeb5","savedPayload":{"position":{"x":33087.356747217535,"y":17247.435938340197},"targetPosition":{"x":32670.124012662483,"y":17416.00890537736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f0a11771-dd69-4b9a-9347-7cb2d1f231ff"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"6bea13b9-5a49-4bd0-9f6d-e592b48a8d82","savedPayload":{"position":{"x":33119.84988482107,"y":17400.304131861234},"targetPosition":{"x":32670.124012662483,"y":17416.00890537736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"8c35ce52-9dee-4d20-92e6-50ba7fd2882b"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"4b02fcb4-0e38-45c8-b0a9-c10556b57f0c","savedPayload":{"position":{"x":33098.0994449953,"y":17555.066552846085},"targetPosition":{"x":32670.124012662483,"y":17416.00890537736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"4f1260c8-6d74-454e-963a-fa3ff910329c"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"f4aae5aa-54ac-44b2-a9f2-f96e558d6d17","savedPayload":{"position":{"x":33024.728851785505,"y":17693.056569273904},"targetPosition":{"x":32670.124012662483,"y":17416.00890537736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"087fc67e-78f9-4204-ba5e-8b670566a716"}}},{"type":"Data Dependency","name":"","project":"Superalgos","id":"b4b47d84-e4d2-459d-b13e-a4fc62985b46","savedPayload":{"position":{"x":32908.58768156743,"y":17797.63054864775},"targetPosition":{"x":32670.124012662483,"y":17416.00890537736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b60cb94f-79c5-410c-b166-abc97d0f2bc3"}}}],"dataDependencyFolders":[],"id":"2a036cda-055e-409e-a588-a08134c16ecf","savedPayload":{"position":{"x":32670.124012662483,"y":17416.00890537736},"targetPosition":{"x":32229.95759233227,"y":17509.56916624535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"61739442-c10b-49af-a5a2-ece01fa74fdd","savedPayload":{"position":{"x":32229.95759233227,"y":17509.56916624535},"targetPosition":{"x":31789.791172002057,"y":17603.12942711334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Buddha","id":"38d04c99-51a6-4c1c-853e-ba67e216854b"}}}],"id":"5175cccd-58ed-40d8-8e0d-1a234d7460eb","savedPayload":{"position":{"x":31789.791172002057,"y":17603.12942711334},"targetPosition":{"x":31742.753363531614,"y":18050.664280029065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"statusReport":{"type":"Status Report","name":"New Status Report","project":"Superalgos","id":"a8577e6c-9afc-4c9e-87ef-ee38531de864","savedPayload":{"position":{"x":32007.256727063228,"y":17686.60663256034},"targetPosition":{"x":31742.753363531614,"y":18050.664280029065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"","project":"Superalgos","id":"a47d063a-c7b9-40d9-8d77-26cead472b6c","savedPayload":{"position":{"x":32153.848819470786,"y":17867.632790644955},"targetPosition":{"x":31742.753363531614,"y":18050.664280029065},"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":"dd185847-d39a-4501-8863-f906716b5f79","savedPayload":{"position":{"x":32190.288216447338,"y":18097.702088499507},"targetPosition":{"x":31742.753363531614,"y":18050.664280029065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a8c8d761-96e5-4a86-9285-6c3881d61442","savedPayload":{"position":{"x":31742.753363531614,"y":18050.664280029065},"targetPosition":{"x":31478.25,"y":18414.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"products":[],"productDefinitionFolders":[{"type":"Product Definition Folder","name":"Trading Engine","project":"Superalgos","products":[],"productDefinitionFolders":[{"type":"Product Definition Folder","name":"Trading Episode","project":"Superalgos","products":[{"type":"Product Definition","name":"Trading Episode Counters","config":"{\n \"codeName\": \"Trading-Episode-Counters\",\n \"singularVariableName\": \"tradingEpisodeCounter\",\n \"pluralVariableName\": \"tradingEpisodeCounters\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.tradingEpisodeCounters\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"3ed03a02-381d-43fe-9faa-761728c53bd8","savedPayload":{"position":{"x":31390.24978958454,"y":17559.898479475254},"targetPosition":{"x":31612.16404993042,"y":17597.034190793907},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"15f5b150-f1cf-403c-8cb9-2c7c4e1db8e8","savedPayload":{"position":{"x":31421.353228295222,"y":17477.802356341435},"targetPosition":{"x":31612.16404993042,"y":17597.034190793907},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"f0032eaa-4b31-4e39-84c1-5e5957f21ba9","savedPayload":{"position":{"x":30917.214015916616,"y":17350.939476768777},"targetPosition":{"x":31350.847719860496,"y":17230.682207533562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"baf72135-2aa6-4be6-b673-09151eeea3e6","savedPayload":{"position":{"x":30902.234919680588,"y":17195.375614456032},"targetPosition":{"x":31350.847719860496,"y":17230.682207533562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{\n \"codeName\": \"periods\",\n \"isString\": false\n}","project":"Superalgos","id":"4274f7bf-7f70-4775-8d30-fc56153f70fc","savedPayload":{"position":{"x":30941.36514796605,"y":17044.070248338256},"targetPosition":{"x":31350.847719860496,"y":17230.682207533562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Strategies","config":"{\n \"codeName\": \"strategies\",\n \"isString\": false\n}","project":"Superalgos","id":"10f5cc85-e009-4feb-9eba-8997ccc46ba5","savedPayload":{"position":{"x":31029.885017741115,"y":16915.27303859863},"targetPosition":{"x":31350.847719860496,"y":17230.682207533562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Positions","config":"{\n \"codeName\": \"positions\",\n \"isString\": false\n}","project":"Superalgos","id":"d3aaaeb9-d602-4188-a594-372d67545aed","savedPayload":{"position":{"x":31157.117726296765,"y":16824.518829576125},"targetPosition":{"x":31350.847719860496,"y":17230.682207533562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Orders","config":"{\n \"codeName\": \"orders\",\n \"isString\": false\n}","project":"Superalgos","id":"2be38b73-1ea0-4e08-ae4a-9caaa44e486f","savedPayload":{"position":{"x":31307.717131226396,"y":16782.753918268332},"targetPosition":{"x":31350.847719860496,"y":17230.682207533562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hits","config":"{\n \"codeName\": \"hits\",\n \"isString\": false\n}","project":"Superalgos","id":"bb822003-abbb-4748-8d18-02c67a33e24f","savedPayload":{"position":{"x":31463.518721684995,"y":16795.015769363414},"targetPosition":{"x":31350.847719860496,"y":17230.682207533562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fails","config":"{\n \"codeName\": \"fails\",\n \"isString\": false\n}","project":"Superalgos","id":"e114274f-a7ba-47e4-b0d3-710b5bd7fcd9","savedPayload":{"position":{"x":31605.73052647667,"y":16859.825422653656},"targetPosition":{"x":31350.847719860496,"y":17230.682207533562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"72e8a046-c0a4-4402-b1b9-c6a65b759515","savedPayload":{"position":{"x":31350.847719860496,"y":17230.682207533562},"targetPosition":{"x":31612.16404993042,"y":17597.034190793907},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"d81c6019-864e-42f5-94ba-2f249b865f85","savedPayload":{"position":{"x":31618.16404993042,"y":17597.034190793907},"targetPosition":{"x":31999.78569320081,"y":17835.49785969885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Trading Episode Counters","id":"5e478e3f-e432-4364-8f2c-2f3b2849848b"}}},{"type":"Product Definition","name":"Trading Episode Statistics","config":"{\n \"codeName\": \"Trading-Episode-Statistics\",\n \"singularVariableName\": \"tradingEpisodeStatistics\",\n \"pluralVariableName\": \"tradingEpisodeStatistics\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.tradingEpisodeStatistics\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"fc9dc0f7-35e0-4548-bb91-f920825d694f","savedPayload":{"position":{"x":31526.90799771779,"y":17370.097719552545},"targetPosition":{"x":31722.738029304266,"y":17480.893020575826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"91953362-8751-4440-a898-21245cd47c15","savedPayload":{"position":{"x":31584.214197355992,"y":17303.590601014315},"targetPosition":{"x":31722.738029304266,"y":17480.893020575826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"8a268555-b786-4756-9e5c-7a190c3ae37e","savedPayload":{"position":{"x":31152.531880072063,"y":17040.476589344475},"targetPosition":{"x":31602.48076006905,"y":17047.259316631946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"ef14e964-9f33-4b53-bf44-bd81c386319d","savedPayload":{"position":{"x":31172.668886327287,"y":16913.986089048183},"targetPosition":{"x":31602.48076006905,"y":17047.259316631946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss","config":"{\n \"codeName\": \"profitLoss\",\n \"isString\": false\n}","project":"Superalgos","id":"360e05d7-340f-4975-93f2-b15835e975d2","savedPayload":{"position":{"x":31227.62669440343,"y":16798.292593044327},"targetPosition":{"x":31602.48076006905,"y":17047.259316631946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{\n \"codeName\": \"days\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"72167f7d-b29e-4f27-a68c-4a3fa3d7c321","savedPayload":{"position":{"x":31312.952949536833,"y":16702.768900323423},"targetPosition":{"x":31602.48076006905,"y":17047.259316631946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI","config":"{\n \"codeName\": \"ROI\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"2e89519e-eab5-4656-ade5-3a18eb1cf07f","savedPayload":{"position":{"x":31421.735025991366,"y":16635.15377236844},"targetPosition":{"x":31602.48076006905,"y":17047.259316631946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Annualized Rate Of Return","config":"{ \n\"codeName\": \"annualizedRateOfReturn\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"9177857b-5e67-4e42-a874-b0e1633ad45d","savedPayload":{"position":{"x":31545.160046884605,"y":16600.924984723646},"targetPosition":{"x":31602.48076006905,"y":17047.259316631946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail","config":"{\n \"codeName\": \"hitFail\",\n \"isString\": true\n}","project":"Superalgos","id":"81ebbfbf-23c5-4156-b1b4-0f0f35dc1d03","savedPayload":{"position":{"x":31673.228851060638,"y":16602.855550197586},"targetPosition":{"x":31602.48076006905,"y":17047.259316631946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"8356215e-6e31-45d0-bd78-ba080d2258de","savedPayload":{"position":{"x":31795.566065659634,"y":16640.78906585707},"targetPosition":{"x":31602.48076006905,"y":17047.259316631946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"59b47d20-5679-4889-8c1f-7853aa68f4a0","savedPayload":{"position":{"x":31902.260657122206,"y":16711.65238386267},"targetPosition":{"x":31602.48076006905,"y":17047.259316631946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"df7dbe99-16e8-42ad-9c8b-5acdf3b63f05","savedPayload":{"position":{"x":31984.668864185227,"y":16809.70457962996},"targetPosition":{"x":31602.48076006905,"y":17047.259316631946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c0f124f4-1e7d-4d06-94fd-b547257b4061","savedPayload":{"position":{"x":31602.48076006905,"y":17047.259316631946},"targetPosition":{"x":31722.738029304266,"y":17480.893020575826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"400c7f49-37da-41fb-b83d-879960aa74ff","savedPayload":{"position":{"x":31722.738029304266,"y":17480.893020575826},"targetPosition":{"x":31999.78569320081,"y":17835.49785969885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Trading Episode Statistics","id":"6ce18a43-2e6a-452e-a72d-1c56a58d3f81"}}},{"type":"Product Definition","name":"Episode Candle","config":"{\n \"codeName\": \"Episode-Candle\",\n \"singularVariableName\": \"episodeCandle\",\n \"pluralVariableName\": \"episodeCandles\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\",\n \"saveAtCycle\": \"Second\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"17fb41f5-61b5-4433-9a10-950ff8216a7e","savedPayload":{"position":{"x":31708.602234857794,"y":17236.431085106025},"targetPosition":{"x":31854.728045732085,"y":17407.52242736603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"bbc9467d-28bf-432b-9e49-582d1bcabfb9","savedPayload":{"position":{"x":31785.199221997722,"y":17193.534711199623},"targetPosition":{"x":31854.728045732085,"y":17407.52242736603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\"\n}","project":"Superalgos","id":"9ffe3183-b249-41b6-8e57-56b5d5023376","savedPayload":{"position":{"x":31489.08170292485,"y":16754.61390230333},"targetPosition":{"x":31890.034638809615,"y":16958.909627186124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\"\n}","project":"Superalgos","id":"b7b61cc0-b94d-40cb-abe1-047463675f5b","savedPayload":{"position":{"x":31597.783017061032,"y":16616.726942666108},"targetPosition":{"x":31890.034638809615,"y":16958.909627186124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Open","config":"{\n \"codeName\": \"open\",\n \"isString\": false\n}","project":"Superalgos","id":"f93f3ac6-8420-401c-9921-2229d02f5832","savedPayload":{"position":{"x":31750.97699134089,"y":16530.934194853304},"targetPosition":{"x":31890.034638809615,"y":16958.909627186124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Close","config":"{\n \"codeName\": \"close\",\n \"isString\": false\n}","project":"Superalgos","id":"86935367-3d64-4ad2-8171-be1368ca0a8d","savedPayload":{"position":{"x":31925.341231887145,"y":16510.296827006216},"targetPosition":{"x":31890.034638809615,"y":16958.909627186124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Min","config":"{\n \"codeName\": \"min\",\n \"isString\": false\n}","project":"Superalgos","id":"e5bad869-4386-48a6-b434-36253eaf7f48","savedPayload":{"position":{"x":32094.33036369241,"y":16557.95669130136},"targetPosition":{"x":31890.034638809615,"y":16958.909627186124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Max","config":"{\n \"codeName\": \"max\",\n \"isString\": false\n}","project":"Superalgos","id":"9c960e9d-7d1f-440b-9e5a-76e81f5a8e29","savedPayload":{"position":{"x":32232.21732332963,"y":16666.65800543754},"targetPosition":{"x":31890.034638809615,"y":16958.909627186124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Index","config":"{ \n\"codeName\": \"index\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"67d251d5-a236-42e7-8b34-4a5276e64d25","savedPayload":{"position":{"x":32318.010071142435,"y":16819.851979717398},"targetPosition":{"x":31890.034638809615,"y":16958.909627186124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d52a6d09-8b78-49db-a525-48a82991fcbc","savedPayload":{"position":{"x":31890.034638809615,"y":16958.909627186124},"targetPosition":{"x":31854.728045732085,"y":17407.52242736603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"b9a58113-cf27-4d57-9810-87a2cc158804","savedPayload":{"position":{"x":31860.728045732085,"y":17407.52242736603},"targetPosition":{"x":31999.78569320081,"y":17835.49785969885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Candle","id":"31789d43-d608-4eeb-a3ff-338a99074045"}}},{"type":"Product Definition","name":"Episode Balances","config":"{\n \"codeName\": \"Episode-Balances\",\n \"singularVariableName\": \"episodeBalance\",\n \"pluralVariableName\": \"episodeBalances\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"acddff59-b51b-4b45-b58f-71d4077755ee","savedPayload":{"position":{"x":31930.693805933555,"y":17175.02074495937},"targetPosition":{"x":32009.490466716936,"y":17385.771987540258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"213b8fe8-f772-41ea-a3f5-97867be555f7","savedPayload":{"position":{"x":32017.342853475,"y":17160.90905146096},"targetPosition":{"x":32009.490466716936,"y":17385.771987540258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"c9e3558a-d9e9-4466-97fb-c0e9ec3752c1","savedPayload":{"position":{"x":31875.13972379286,"y":16660.88024671088},"targetPosition":{"x":32196.102425912242,"y":16976.289415645813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"bfb43790-48a8-4437-a191-9f4c396504fb","savedPayload":{"position":{"x":32002.37243234851,"y":16570.126037688377},"targetPosition":{"x":32196.102425912242,"y":16976.289415645813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Balance Base Asset","config":"{ \n\"codeName\": \"balanceBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"balance\",\n \"decimals\": 10\n}","project":"Superalgos","id":"7658d8bf-a4e0-490e-a3ae-df3bef72e491","savedPayload":{"position":{"x":32152.971837278143,"y":16528.361126380583},"targetPosition":{"x":32196.102425912242,"y":16976.289415645813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Balance Quoted Asset","config":"{ \n\"codeName\": \"balanceQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"balance\",\n \"decimals\": 10\n}","project":"Superalgos","id":"1f5cf49c-7040-4cee-b525-83810013a4fb","savedPayload":{"position":{"x":32308.77342773674,"y":16540.622977475665},"targetPosition":{"x":32196.102425912242,"y":16976.289415645813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Balance Base Asset","config":"{ \n\"codeName\": \"beginBalanceBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"beginBalance\",\n \"decimals\": 10\n}","project":"Superalgos","id":"b2e41c55-b66c-4895-b2a8-82b9cf53bfa1","savedPayload":{"position":{"x":32450.985232528416,"y":16605.432630765907},"targetPosition":{"x":32196.102425912242,"y":16976.289415645813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Balance Quoted Asset","config":"{ \n\"codeName\": \"beginBalanceQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"beginBalance\",\n \"decimals\": 10\n}","project":"Superalgos","id":"121b09db-2f3d-43c9-a271-e716a66f019b","savedPayload":{"position":{"x":32562.454409172587,"y":16714.97308557589},"targetPosition":{"x":32196.102425912242,"y":16976.289415645813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Balance Base Asset","config":"{ \n\"codeName\": \"endBalanceBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"endBalance\",\n \"decimals\": 10\n}","project":"Superalgos","id":"14f17c26-2832-4aa6-b39f-05acc8c3626f","savedPayload":{"position":{"x":32629.736129856123,"y":16856.0321464106},"targetPosition":{"x":32196.102425912242,"y":16976.289415645813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Balance Quoted Asset","config":"{ \n\"codeName\": \"endBalanceQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"endBalance\",\n \"decimals\": 10\n}","project":"Superalgos","id":"b8d553ad-2dfb-4db7-b858-b086daeee2a6","savedPayload":{"position":{"x":32644.71522609215,"y":17011.596008723343},"targetPosition":{"x":32196.102425912242,"y":16976.289415645813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0755daf6-8847-48c4-9013-394ddb96a89b","savedPayload":{"position":{"x":32196.102425912242,"y":16976.289415645813},"targetPosition":{"x":32009.490466716936,"y":17385.771987540258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"a9a53d82-133b-4417-b639-f9a56d338233","savedPayload":{"position":{"x":32015.490466716936,"y":17385.771987540258},"targetPosition":{"x":31999.78569320081,"y":17835.49785969885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Episode Balances","id":"e5d9e3e1-d1f4-4493-b452-33fe49c81228"}}},{"type":"Product Definition","name":"Distance To Trading Event","config":"{\n \"codeName\": \"Distance-To-Trading-Event\",\n \"singularVariableName\": \"distanceToTradingEvent\",\n \"pluralVariableName\": \"distanceToTradingEvents\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.distanceToTradingEvent\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0ef6aa1d-3345-40f8-bc4f-4d2e2ff199ff","savedPayload":{"position":{"x":32160.395189750838,"y":17193.273692454357},"targetPosition":{"x":32162.358660237973,"y":17418.265125143796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"c291211b-4012-4440-a302-8e15412b0990","savedPayload":{"position":{"x":32246.645143756552,"y":17209.64875786627},"targetPosition":{"x":32162.358660237973,"y":17418.265125143796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"0235ad32-fd46-41eb-b875-ae81f3ce48c5","savedPayload":{"position":{"x":32249.37556584059,"y":16709.56930082573},"targetPosition":{"x":32477.767829172906,"y":17097.302423024415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"9d6c01fa-af2b-4d51-9aa4-f169c53e63b3","savedPayload":{"position":{"x":32357.51055993769,"y":16663.668719080535},"targetPosition":{"x":32477.767829172906,"y":17097.302423024415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Trigger On","config":"{ \n\"codeName\": \"triggerOn\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7e17fb3f-495f-49c5-9b41-6869155b99fc","savedPayload":{"position":{"x":32473.84088819864,"y":16647.31955764554},"targetPosition":{"x":32477.767829172906,"y":17097.302423024415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Trigger Off","config":"{ \n\"codeName\": \"triggerOff\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"9de32719-925a-4796-b562-379323cb4d82","savedPayload":{"position":{"x":32590.438830997406,"y":16661.635984854267},"targetPosition":{"x":32477.767829172906,"y":17097.302423024415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Take Position","config":"{ \n\"codeName\": \"takePosition\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e4276497-b218-4b18-b089-70fcc5806fa3","savedPayload":{"position":{"x":32699.358431219465,"y":16705.64235985146},"targetPosition":{"x":32477.767829172906,"y":17097.302423024415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Close Position","config":"{ \n\"codeName\": \"closePosition\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"4793082b-ddc8-4246-bb0e-c7f6340da600","savedPayload":{"position":{"x":32793.17699810784,"y":16776.339720905034},"targetPosition":{"x":32477.767829172906,"y":17097.302423024415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Next Phase","config":"{ \n\"codeName\": \"nextPhase\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"0ada00bc-9398-47a0-9659-63b0838b81d7","savedPayload":{"position":{"x":32865.50095137159,"y":16868.9101596921},"targetPosition":{"x":32477.767829172906,"y":17097.302423024415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Move To Phase","config":"{ \n\"codeName\": \"moveToPhase\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"9020e64b-d301-49f6-bc6c-cb8086730b19","savedPayload":{"position":{"x":32911.40153311679,"y":16977.0451537892},"targetPosition":{"x":32477.767829172906,"y":17097.302423024415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Create Order","config":"{ \n\"codeName\": \"createOrder\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"906c1925-caab-4db6-8fec-06845a13fd0a","savedPayload":{"position":{"x":32927.75069455178,"y":17093.37548205015},"targetPosition":{"x":32477.767829172906,"y":17097.302423024415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Cancel Order","config":"{ \n\"codeName\": \"cancelOrder\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e864d723-5ad5-4bbd-ad7b-0f975d480ee3","savedPayload":{"position":{"x":32913.43426734305,"y":17209.973424848915},"targetPosition":{"x":32477.767829172906,"y":17097.302423024415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Close Order","config":"{ \n\"codeName\": \"closeOrder\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f5be374b-36e6-484c-bd78-6e126e3020fb","savedPayload":{"position":{"x":32869.42789234586,"y":17318.893025070975},"targetPosition":{"x":32477.767829172906,"y":17097.302423024415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0c3c5d0b-6072-4e57-bff9-9823e0f79b5b","savedPayload":{"position":{"x":32477.767829172906,"y":17097.302423024415},"targetPosition":{"x":32162.358660237973,"y":17418.265125143796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"8ea88d6c-7d7f-4152-b781-ea108df52c63","savedPayload":{"position":{"x":32168.358660237973,"y":17418.265125143796},"targetPosition":{"x":31999.78569320081,"y":17835.49785969885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Distance To Trading Event","id":"56eb7de2-0281-404a-bd4d-34ac113e2325"}}},{"type":"Product Definition","name":"Episode Base Asset","config":"{\n \"codeName\": \"Episode-BaseAsset\",\n \"singularVariableName\": \"episodeBaseAsset\",\n \"pluralVariableName\": \"episodeBaseAssets\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"e8b67591-d484-4c08-a711-7a4418ee101a","savedPayload":{"position":{"x":32370.001009389896,"y":17288.98835273828},"targetPosition":{"x":32294.8944660623,"y":17501.082688234022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"c6f34adc-2863-4ce6-8379-9b3cc1b37b73","savedPayload":{"position":{"x":32445.448852493042,"y":17333.87510250161},"targetPosition":{"x":32294.8944660623,"y":17501.082688234022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"2d706d6c-f204-4209-bda6-20f6bccef1fb","savedPayload":{"position":{"x":32642.321057520712,"y":16861.202507052076},"targetPosition":{"x":32701.057844019735,"y":17307.35269467029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"45aadf3c-c609-42fc-95dd-400968a950dd","savedPayload":{"position":{"x":32783.0638304912,"y":16864.887986266513},"targetPosition":{"x":32701.057844019735,"y":17307.35269467029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hits","config":"{\n \"codeName\": \"hits\",\n \"isString\": false\n}","project":"Superalgos","id":"16a724af-e57e-4e5b-9f8f-597ade0521d8","savedPayload":{"position":{"x":32915.77928613656,"y":16911.884993972406},"targetPosition":{"x":32701.057844019735,"y":17307.35269467029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fails","config":"{\n \"codeName\": \"fails\",\n \"isString\": false\n}","project":"Superalgos","id":"94c63c77-f7e4-4d15-bb6c-6b49bb600b10","savedPayload":{"position":{"x":33027.47631097527,"y":16997.593135608102},"targetPosition":{"x":32701.057844019735,"y":17307.35269467029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Ratio","config":"{\n \"codeName\": \"hitRatio\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"0b91b798-b30f-46f5-935b-1e4dac8dfee0","savedPayload":{"position":{"x":33107.221221977175,"y":17113.62270110656},"targetPosition":{"x":32701.057844019735,"y":17307.35269467029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI","config":"{\n \"codeName\": \"ROI\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"db2cd2b2-5c5f-4eef-874a-201059d80ea0","savedPayload":{"position":{"x":33147.20803163795,"y":17248.61590817127},"targetPosition":{"x":32701.057844019735,"y":17307.35269467029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss","config":"{ \n\"codeName\": \"profitLoss\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"c4bb2bd0-02a8-47de-9fa8-c2b87776e36f","savedPayload":{"position":{"x":33143.522552423514,"y":17389.35868114176},"targetPosition":{"x":32701.057844019735,"y":17307.35269467029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Annualized Rate Of Return","config":"{ \n\"codeName\": \"annualizedRateOfReturn\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"432a1f4e-283a-4276-b436-42ef167dd9e7","savedPayload":{"position":{"x":33096.52554471762,"y":17522.074136787116},"targetPosition":{"x":32701.057844019735,"y":17307.35269467029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail","config":"{ \n\"codeName\": \"hitFail\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"08161b1c-ad52-4c01-88b1-8cd8ed077b6b","savedPayload":{"position":{"x":33010.81740308192,"y":17633.77116162582},"targetPosition":{"x":32701.057844019735,"y":17307.35269467029},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e2ea652a-5508-4eef-998a-8cb0b2fac0a7","savedPayload":{"position":{"x":32701.057844019735,"y":17307.35269467029},"targetPosition":{"x":32294.8944660623,"y":17501.082688234022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"234969ff-eab1-4d59-b6fa-79433c9a20e9","savedPayload":{"position":{"x":32300.8944660623,"y":17501.082688234022},"targetPosition":{"x":31999.78569320081,"y":17835.49785969885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Episode Base Asset","id":"a99b25e6-7aca-41a2-aacc-1911aac2ee3e"}}},{"type":"Product Definition","name":"Episode Quoted Asset","config":"{\n \"codeName\": \"Episode-QuotedAsset\",\n \"singularVariableName\": \"episodeQuotedAsset\",\n \"pluralVariableName\": \"episodeQuotedAssets\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"99d1f17b-92cb-4544-88a2-fe463dd1de4b","savedPayload":{"position":{"x":32540.229709549825,"y":17450.620125182966},"targetPosition":{"x":32397.112109987327,"y":17624.235656445202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"daf4e3e9-426d-44c3-8b43-6849778d972f","savedPayload":{"position":{"x":32595.775318380587,"y":17518.604554818376},"targetPosition":{"x":32397.112109987327,"y":17624.235656445202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"408f6716-f1a1-4f7f-924c-c5c0d9bb814d","savedPayload":{"position":{"x":32942.438225524704,"y":17141.771864607133},"targetPosition":{"x":32845.04039925255,"y":17581.105067811102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"b07f31ed-986d-4b45-bd05-017e3d9268bd","savedPayload":{"position":{"x":33073.43266258488,"y":17193.371945612416},"targetPosition":{"x":32845.04039925255,"y":17581.105067811102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hits","config":"{\n \"codeName\": \"hits\",\n \"isString\": false\n}","project":"Superalgos","id":"709ed8fc-94d8-4f8c-977a-fa865c43a83e","savedPayload":{"position":{"x":33182.07047360761,"y":17282.926046114022},"targetPosition":{"x":32845.04039925255,"y":17581.105067811102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fails","config":"{\n \"codeName\": \"fails\",\n \"isString\": false\n}","project":"Superalgos","id":"d874a492-fb07-4704-8589-73f864040da9","savedPayload":{"position":{"x":33257.71743272586,"y":17401.667986794742},"targetPosition":{"x":32845.04039925255,"y":17581.105067811102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Ratio","config":"{\n \"codeName\": \"hitRatio\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"4ad7e208-1cfb-402d-89d6-3ca98832f2f9","savedPayload":{"position":{"x":33292.96868851779,"y":17537.974479177003},"targetPosition":{"x":32845.04039925255,"y":17581.105067811102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI","config":"{\n \"codeName\": \"ROI\",\n \"isString\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"02d21bbe-a2b9-4d61-9ee6-243f21208c9f","savedPayload":{"position":{"x":33284.37360245653,"y":17678.50289408325},"targetPosition":{"x":32845.04039925255,"y":17581.105067811102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss","config":"{ \n\"codeName\": \"profitLoss\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 2\n}","project":"Superalgos","id":"d78850bc-4017-4a14-b7a2-4efb03156596","savedPayload":{"position":{"x":33232.77352145124,"y":17809.49733114342},"targetPosition":{"x":32845.04039925255,"y":17581.105067811102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Annualized Rate Of Return","config":"{ \n\"codeName\": \"annualizedRateOfReturn\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"51e1f4b1-fe6a-4125-ae19-a34859928ab0","savedPayload":{"position":{"x":33143.21942094964,"y":17918.135142166153},"targetPosition":{"x":32845.04039925255,"y":17581.105067811102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail","config":"{ \n\"codeName\": \"hitFail\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"cb125657-fff3-49bc-99d5-393d2baaec15","savedPayload":{"position":{"x":33024.47748026892,"y":17993.782101284407},"targetPosition":{"x":32845.04039925255,"y":17581.105067811102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e5dde8e0-9f3d-4d58-878b-316e2888384f","savedPayload":{"position":{"x":32845.04039925255,"y":17581.105067811102},"targetPosition":{"x":32397.112109987327,"y":17624.235656445202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"ae525e31-d6a8-47d2-9021-3f2ddb9615b0","savedPayload":{"position":{"x":32397.112109987327,"y":17624.235656445202},"targetPosition":{"x":31999.78569320081,"y":17835.49785969885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Episode Quoted Asset","id":"ede92318-db13-4951-83b1-11fc0345d677"}}},{"type":"Product Definition","name":"Current Episode","config":"{\n \"codeName\": \"Current-Episode\",\n \"singularVariableName\": \"currentEpisode\",\n \"pluralVariableName\": \"currentEpisodes\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode\",\n \"saveAtCycle\": \"Second\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"26f6b248-21de-4898-9ee5-58b728a04267","savedPayload":{"position":{"x":32639.272885233862,"y":17658.673832600663},"targetPosition":{"x":32445.406324134517,"y":17772.86996426682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"ecdfe444-00e6-4ad4-a482-14b59a1e752a","savedPayload":{"position":{"x":32668.21663960137,"y":17741.556016550807},"targetPosition":{"x":32445.406324134517,"y":17772.86996426682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"fb250d69-0a1d-44db-a823-6ce600fabc5c","savedPayload":{"position":{"x":33102.663364351225,"y":17493.880902918365},"targetPosition":{"x":32881.07276230467,"y":17885.54096609132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"1e3e49d8-8494-474c-85df-93d080271a32","savedPayload":{"position":{"x":33196.4819312396,"y":17564.57826397194},"targetPosition":{"x":32881.07276230467,"y":17885.54096609132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\"\n}","project":"Superalgos","id":"8da52905-c159-42b2-81eb-bcdb0e82213c","savedPayload":{"position":{"x":33268.80588450335,"y":17657.148702759005},"targetPosition":{"x":32881.07276230467,"y":17885.54096609132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\"\n}","project":"Superalgos","id":"3fb36608-3225-4e84-9e7c-deb0cd4e0c90","savedPayload":{"position":{"x":33314.70646624855,"y":17765.283696856106},"targetPosition":{"x":32881.07276230467,"y":17885.54096609132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"dc27dfcd-81f7-4796-94bf-9552681c5781","savedPayload":{"position":{"x":33331.05562768354,"y":17881.614025117055},"targetPosition":{"x":32881.07276230467,"y":17885.54096609132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f2738fa9-e225-49ba-adce-8e3f5490ae79","savedPayload":{"position":{"x":33316.73920047481,"y":17998.21196791582},"targetPosition":{"x":32881.07276230467,"y":17885.54096609132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"0bfb640f-7160-4f9f-9a37-a93ad21ac304","savedPayload":{"position":{"x":33272.73282547762,"y":18107.13156813788},"targetPosition":{"x":32881.07276230467,"y":17885.54096609132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"66977e9f-19c3-445e-baec-72fd24bcfd4f","savedPayload":{"position":{"x":33202.03546442404,"y":18200.950135026254},"targetPosition":{"x":32881.07276230467,"y":17885.54096609132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Cycle","config":"{ \n\"codeName\": \"cycle\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"2e9b2ae9-fa39-4767-8f15-918680491022","savedPayload":{"position":{"x":33109.46502563698,"y":18273.274088290007},"targetPosition":{"x":32881.07276230467,"y":17885.54096609132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Head Of The Market","config":"{ \n\"codeName\": \"headOfTheMarket\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"87f75619-ada5-4a35-851c-901776e8dd53","savedPayload":{"position":{"x":33001.33003153988,"y":18319.1746700352},"targetPosition":{"x":32881.07276230467,"y":17885.54096609132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Process Date","config":"{ \n\"codeName\": \"processDate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"aa739894-963f-4535-b4c4-d057e185ad9c","savedPayload":{"position":{"x":32884.99970327893,"y":18335.523831470196},"targetPosition":{"x":32881.07276230467,"y":17885.54096609132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"973a9bbe-dcc2-4df3-acef-63999441e21f","savedPayload":{"position":{"x":32881.07276230467,"y":17885.54096609132},"targetPosition":{"x":32445.406324134517,"y":17772.86996426682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"b8da0132-ba28-46ec-aa54-eb9eaac56ce7","savedPayload":{"position":{"x":32445.406324134517,"y":17772.86996426682},"targetPosition":{"x":31999.78569320081,"y":17835.49785969885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Episode","id":"bf241117-1c2c-470c-a172-b86b2befa9a2"}}}],"productDefinitionFolders":[],"id":"6e3006f3-06dc-4cc6-a8fc-51f0e99ca9eb","savedPayload":{"position":{"x":31999.78569320081,"y":17835.49785969885},"targetPosition":{"x":31906.22543233282,"y":18275.664280029065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Strategy","project":"Superalgos","products":[{"type":"Product Definition","name":"Current Strategy","config":"{\n \"codeName\": \"Current-Strategy\",\n \"singularVariableName\": \"currentStrategy\",\n \"pluralVariableName\": \"currentStrategies\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategy\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"7b4550d3-69d1-41ac-bad3-e2283f798bb8","savedPayload":{"position":{"x":32259.891472826566,"y":17279.850334032133},"targetPosition":{"x":32300.8944660623,"y":17501.082688234022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"49d55660-71e9-4c5a-8b1a-198934844e4a","savedPayload":{"position":{"x":32347.674596496294,"y":17280.999478068916},"targetPosition":{"x":32300.8944660623,"y":17501.082688234022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"3808ed7c-4ae4-4ad8-8ea8-237ee2f8cc8c","savedPayload":{"position":{"x":32256.694360143218,"y":16793.99769003847},"targetPosition":{"x":32555.77727267847,"y":17130.225903354116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"c8b93e25-fe0e-450a-bcc7-262a06936372","savedPayload":{"position":{"x":32345.849844242268,"y":16732.19264495708},"targetPosition":{"x":32555.77727267847,"y":17130.225903354116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"702327c6-5dfe-4ab0-bce1-750637a4b863","savedPayload":{"position":{"x":32447.205547426875,"y":16693.519846061696},"targetPosition":{"x":32555.77727267847,"y":17130.225903354116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"a152bb71-b294-48e7-bf9c-9be7510c8461","savedPayload":{"position":{"x":32554.871044640942,"y":16680.226815854214},"targetPosition":{"x":32555.77727267847,"y":17130.225903354116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Strategy Name","config":"{ \n\"codeName\": \"strategyName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"35b9d166-f366-4601-a472-5e8d74be8f82","savedPayload":{"position":{"x":32662.589208534544,"y":16693.0860969321},"targetPosition":{"x":32555.77727267847,"y":17130.225903354116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Index","config":"{ \n\"codeName\": \"index\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"dcdb4018-97ea-4bb8-9e55-5efa00ab8404","savedPayload":{"position":{"x":32764.09985096178,"y":16731.350354620685},"targetPosition":{"x":32555.77727267847,"y":17130.225903354116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"c2ac38c8-3bc5-4359-8f92-510263b841d1","savedPayload":{"position":{"x":32853.50354236095,"y":16792.795809348034},"targetPosition":{"x":32555.77727267847,"y":17130.225903354116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"1ae37227-35b8-4abc-a42b-aa0c42fa9fc2","savedPayload":{"position":{"x":32925.60446515714,"y":16873.851474630526},"targetPosition":{"x":32555.77727267847,"y":17130.225903354116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"288b5fed-0d4b-4b85-9cb5-802c2ff30ca7","savedPayload":{"position":{"x":32976.212375793606,"y":16969.806689827303},"targetPosition":{"x":32555.77727267847,"y":17130.225903354116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"3802817a-f022-4762-9ff4-412d42f22316","savedPayload":{"position":{"x":33002.38612645645,"y":17075.08488661414},"targetPosition":{"x":32555.77727267847,"y":17130.225903354116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"97832d1b-40b4-4fc3-9e52-ec3beacf164e","savedPayload":{"position":{"x":33002.60459389485,"y":17183.567678864467},"targetPosition":{"x":32555.77727267847,"y":17130.225903354116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategy.strategyCounters\"\n}","project":"Superalgos","id":"d219dca7-ae8f-422d-a90a-f86b617a76e2","savedPayload":{"position":{"x":32976.85508157538,"y":17288.950441011595},"targetPosition":{"x":32555.77727267847,"y":17130.225903354116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a4bce1f3-c9cc-470d-b271-1190684aff6f","savedPayload":{"position":{"x":32555.77727267847,"y":17130.225903354116},"targetPosition":{"x":32300.8944660623,"y":17501.082688234022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"895d8a04-ef45-41a7-909a-ba31013ffb90","savedPayload":{"position":{"x":32300.8944660623,"y":17501.082688234022},"targetPosition":{"x":32207.334205194307,"y":17941.249108564236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Strategy","id":"a3c31000-1b82-4fe9-ae56-6d5893582b16"}}},{"type":"Product Definition","name":"Last Strategy","config":"{\n \"codeName\": \"Last-Strategy\",\n \"singularVariableName\": \"lastStrategy\",\n \"pluralVariableName\": \"lastStrategies\",\n \"nodePath\": \"tradingEngine.tradingLast.strategy\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a2e7b5d2-8556-4c58-b2f6-a9c27c939e94","savedPayload":{"position":{"x":32806.40097978713,"y":17656.06565022122},"targetPosition":{"x":32635.309637527127,"y":17802.19146109551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"76ff2401-1d4f-4dda-87f6-5e0b7af3eab2","savedPayload":{"position":{"x":32849.29735369353,"y":17732.662637361147},"targetPosition":{"x":32635.309637527127,"y":17802.19146109551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"02e1c6bb-e984-4104-98c8-dbcba98ab660","savedPayload":{"position":{"x":33225.563155639815,"y":17410.37054742185},"targetPosition":{"x":33083.922437707035,"y":17837.49805417304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"0fbc8383-f53b-42c2-ac1a-060f6bc80c5c","savedPayload":{"position":{"x":33323.665636811864,"y":17456.67893899763},"targetPosition":{"x":33083.922437707035,"y":17837.49805417304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"5785bb06-20d0-4683-b5d3-3cce32ddf13f","savedPayload":{"position":{"x":33407.83511468302,"y":17525.119153326243},"targetPosition":{"x":33083.922437707035,"y":17837.49805417304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"cca74655-a684-4b14-a70b-63a95f520418","savedPayload":{"position":{"x":33473.179965143005,"y":17611.713693920967},"targetPosition":{"x":33083.922437707035,"y":17837.49805417304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Strategy Name","config":"{ \n\"codeName\": \"strategyName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"10192034-747b-49ed-ba2b-a645da326297","savedPayload":{"position":{"x":33515.90258300195,"y":17711.430000840784},"targetPosition":{"x":33083.922437707035,"y":17837.49805417304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Index","config":"{ \n\"codeName\": \"index\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"5cc8df5d-637c-4059-88ca-b30193db45cd","savedPayload":{"position":{"x":33533.5200850003,"y":17818.47292478154},"targetPosition":{"x":33083.922437707035,"y":17837.49805417304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e44d0b8d-1bd1-457b-b3ec-efafe83135e2","savedPayload":{"position":{"x":33525.008605958916,"y":17926.621520089004},"targetPosition":{"x":33083.922437707035,"y":17837.49805417304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"c1181965-30d7-455c-84f8-b59a10b17292","savedPayload":{"position":{"x":33490.86280210172,"y":18029.590583508045},"targetPosition":{"x":33083.922437707035,"y":17837.49805417304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"f233bd2e-9c8a-415c-b348-890e2b8c835b","savedPayload":{"position":{"x":33433.06710343395,"y":18121.395927350073},"targetPosition":{"x":33083.922437707035,"y":17837.49805417304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"09b0f818-5159-433b-8eae-f0209351e6b3","savedPayload":{"position":{"x":33354.98038588335,"y":18196.702158729833},"targetPosition":{"x":33083.922437707035,"y":17837.49805417304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"8cfbc9c3-071f-43d0-b245-4c0278f975c0","savedPayload":{"position":{"x":33261.14076564029,"y":18251.132753206548},"targetPosition":{"x":33083.922437707035,"y":17837.49805417304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.strategy.strategyCounters\"\n}","project":"Superalgos","id":"bb8b605d-bf3a-4408-a147-f316bdee7df7","savedPayload":{"position":{"x":33157.00186034017,"y":18281.52440247639},"targetPosition":{"x":33083.922437707035,"y":17837.49805417304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"325b09da-1fc2-43bc-a59d-381c30a4ba1d","savedPayload":{"position":{"x":33083.922437707035,"y":17837.49805417304},"targetPosition":{"x":32635.309637527127,"y":17802.19146109551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"0625f524-2b97-4b4d-8a90-590ffc62ecd3","savedPayload":{"position":{"x":32635.309637527127,"y":17802.19146109551},"targetPosition":{"x":32207.334205194307,"y":17941.249108564236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Last Strategy","id":"028aaa23-630c-4aa6-a168-6b2a128b1a83"}}}],"productDefinitionFolders":[],"id":"bb870967-9e1d-44a9-9bbc-68e6c024a3c3","savedPayload":{"position":{"x":32207.334205194307,"y":17941.249108564236},"targetPosition":{"x":31906.22543233282,"y":18275.664280029065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Position","project":"Superalgos","products":[{"type":"Product Definition","name":"Current Position","config":"{\n \"codeName\": \"Current-Position\",\n \"singularVariableName\": \"currentPosition\",\n \"pluralVariableName\": \"currentPositions\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"7506dd91-ad9d-4aad-bb1a-604bc5d3fe8d","savedPayload":{"position":{"x":32455.605215595602,"y":17484.324800137565},"targetPosition":{"x":32473.258512134365,"y":17708.63120022752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"06678152-1082-4f00-9275-22ffde715469","savedPayload":{"position":{"x":32542.78733586873,"y":17494.64348406111},"targetPosition":{"x":32473.258512134365,"y":17708.63120022752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"6e9bd403-9341-4573-9509-39592db0f4ae","savedPayload":{"position":{"x":32438.24263750715,"y":16371.428897276433},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"e9f969f0-20f4-4d61-870b-2997e715c706","savedPayload":{"position":{"x":32509.876469523682,"y":16310.24782492538},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"c9761b5c-3714-4253-9906-873e8933e698","savedPayload":{"position":{"x":32587.513047387176,"y":16256.889683268808},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"e0d6465b-de24-4ce2-9cc3-b7e3e563d4d7","savedPayload":{"position":{"x":32670.301768504065,"y":16211.939075272618},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"1b892131-86ea-4264-bfae-3eae52374803","savedPayload":{"position":{"x":32757.335582321135,"y":16175.888489204532},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f7d48869-1ac5-4e6c-9f73-52112cf5a9c8","savedPayload":{"position":{"x":32847.66092816122,"y":16149.13290282958},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"08064bc3-d662-46d7-a9ac-da517de9f0f3","savedPayload":{"position":{"x":32940.288182633485,"y":16131.965455951064},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"07748c3d-c020-4734-b505-38ceeb96ddc2","savedPayload":{"position":{"x":33034.20250215444,"y":16124.57423870949},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"5f987e27-560f-485d-b832-46025f14f446","savedPayload":{"position":{"x":33128.37494178659,"y":16127.040230827675},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionCounters\"\n}","project":"Superalgos","id":"c00c9780-7a99-40fe-8563-9ef38089edae","savedPayload":{"position":{"x":33221.773728574466,"y":16139.336414379934},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"90759217-f2a3-4203-8249-35c703108863","savedPayload":{"position":{"x":33313.37556586506,"y":16161.328069806117},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"905584a9-29a2-4e59-be9d-7859ada74e43","savedPayload":{"position":{"x":33402.17684476011,"y":16192.774251927334},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"a85c3f00-4b38-430d-a911-b404de9c2ce3","savedPayload":{"position":{"x":33487.20463986518,"y":16233.330429791724},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Base Asset","config":"{ \n\"codeName\": \"profitLossInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3c081ea4-6bcb-4ba2-8e3e-2f572b428003","savedPayload":{"position":{"x":33567.527368863884,"y":16282.552261427678},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Quoted Asset","config":"{ \n\"codeName\": \"profitLossInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"1b65da38-1f4b-4c28-81bb-38e95fed5a3d","savedPayload":{"position":{"x":33642.264999128696,"y":16339.900462147463},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Base Asset","config":"{ \n\"codeName\": \"ROIInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"9705d87a-bc3a-473e-b205-4eefcbbeeb21","savedPayload":{"position":{"x":33710.59868954259,"y":16404.746713063112},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Quoted Asset","config":"{ \n\"codeName\": \"ROIInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3fdcd35b-a08a-4d68-bcbd-f547b8265203","savedPayload":{"position":{"x":33771.779761893646,"y":16476.380545079643},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Base Asset","config":"{ \n\"codeName\": \"hitFailInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"14d4fbc8-7b1b-4b27-a9ed-c4c5601116d8","savedPayload":{"position":{"x":33825.13790355022,"y":16554.017122943136},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Quoted Asset","config":"{ \n\"codeName\": \"hitFailInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"2ba0cad6-6f43-4fb3-9dfb-8ad67e0c8a09","savedPayload":{"position":{"x":33870.088511546404,"y":16636.805844060025},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Base Asset","config":"{ \n\"codeName\": \"entryTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"7a3cc7f2-ecf2-4f50-968a-ca27117b4bac","savedPayload":{"position":{"x":33906.13909761449,"y":16723.839657877095},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Quoted Asset","config":"{ \n\"codeName\": \"entryTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"cfa55f9f-0792-4a1d-8bbd-5350864e8a61","savedPayload":{"position":{"x":33932.89468398944,"y":16814.165003717175},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Base Asset","config":"{ \n\"codeName\": \"exitTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"8172e284-94fd-4dc4-8591-53a2c5ca475a","savedPayload":{"position":{"x":33950.06213086796,"y":16906.792258189445},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Quoted Asset","config":"{ \n\"codeName\": \"exitTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"0d0bdeba-f4d9-4de7-81d0-b4aa3bb9ec6b","savedPayload":{"position":{"x":33957.45334810953,"y":17000.706577710404},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Rate","config":"{ \n\"codeName\": \"entryTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f03c45fb-c2ca-4294-abce-650cf8656471","savedPayload":{"position":{"x":33954.98735599135,"y":17094.87901734255},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Rate","config":"{ \n\"codeName\": \"exitTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"472bf4ef-2e4f-4aa9-a054-ed458249032d","savedPayload":{"position":{"x":33942.69117243909,"y":17188.277804130423},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Profit Loss","config":"{ \n\"codeName\": \"profitLoss\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2ab54033-cbad-4618-9681-e8ae36c1ace5","savedPayload":{"position":{"x":33920.69951701291,"y":17279.879641421023},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics ROI","config":"{ \n\"codeName\": \"ROI\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 10\n}","project":"Superalgos","id":"a0778ae5-4242-4a8e-8ebc-6af71dad5c58","savedPayload":{"position":{"x":33889.25333489169,"y":17368.680920316074},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Hit Fail","config":"{ \n\"codeName\": \"hitFail\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\"\n}","project":"Superalgos","id":"e87e024f-3726-4d08-a890-829b44616eeb","savedPayload":{"position":{"x":33848.6971570273,"y":17453.70871542114},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"d6e98d71-15ee-4e22-b18c-b154b1ecec52","savedPayload":{"position":{"x":33799.475325391344,"y":17534.03144441984},"targetPosition":{"x":33057.76175563153,"y":17024.26583118749},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a35249e0-a2dc-43b0-bb8c-ebd6265e13c2","savedPayload":{"position":{"x":33057.76175563153,"y":17024.26583118749},"targetPosition":{"x":32473.258512134365,"y":17708.63120022752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"832ecada-8da3-4ba6-b6e9-be34dd5f7ce9","savedPayload":{"position":{"x":32473.258512134365,"y":17708.63120022752},"targetPosition":{"x":32334.20086466564,"y":18136.60663256034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Position","id":"0d2212c7-07bb-4c41-94fb-00844415ba5e"}}},{"type":"Product Definition","name":"Last Position","config":"{\n \"codeName\": \"Last-Position\",\n \"singularVariableName\": \"lastPosition\",\n \"pluralVariableName\": \"lastPositions\",\n \"nodePath\": \"tradingEngine.tradingLast.position\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"485671ff-0d50-4c08-958c-93e657cd238f","savedPayload":{"position":{"x":32815.820689195454,"y":17680.259232049055},"targetPosition":{"x":32698.258512134365,"y":17872.103269028725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a909df42-6192-4bbd-9f38-e8800149aaa1","savedPayload":{"position":{"x":32880.28733586873,"y":17739.851587262918},"targetPosition":{"x":32698.258512134365,"y":17872.103269028725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"a616f774-00d3-475e-b0b6-631a93777573","savedPayload":{"position":{"x":33455.91786749423,"y":16769.702066321977},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"2e577616-21a7-4199-a64f-d90386edc6ec","savedPayload":{"position":{"x":33549.832187015185,"y":16762.310849080408},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"9993ddd9-d4f8-4eef-91db-45eb57c04d8e","savedPayload":{"position":{"x":33644.00462664734,"y":16764.776841198593},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"dd7f3f5d-3f52-4256-b7e1-c2d94aa85795","savedPayload":{"position":{"x":33737.40341343521,"y":16777.07302475085},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e7f50ea4-ebd4-448f-bd18-54fc2d7e2e7b","savedPayload":{"position":{"x":33829.00525072581,"y":16799.064680177034},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"d9ff5483-8800-49f7-8d9f-9e8e48f8b795","savedPayload":{"position":{"x":33917.80652962086,"y":16830.51086229825},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"f0e01315-185f-4092-9b13-0f529a794336","savedPayload":{"position":{"x":34002.834324725925,"y":16871.06704016264},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"a41e9fac-16b2-4b08-b9e8-b494359f1737","savedPayload":{"position":{"x":34083.15705372463,"y":16920.288871798595},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e6137e7e-940e-44b9-937f-4c6a89709af4","savedPayload":{"position":{"x":34157.89468398944,"y":16977.63707251838},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionCounters\"\n}","project":"Superalgos","id":"3976c01c-c92d-47b1-965d-4e4d7678a59a","savedPayload":{"position":{"x":34226.228374403334,"y":17042.48332343403},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"5a796662-dd46-4e75-8d5b-192ec323901e","savedPayload":{"position":{"x":34287.40944675439,"y":17114.11715545056},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"373f4395-e367-4089-ad1c-6bcefb4a1d40","savedPayload":{"position":{"x":34340.76758841096,"y":17191.753733314054},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"337bc66f-9deb-4e01-b4a8-24cac360726f","savedPayload":{"position":{"x":34385.71819640715,"y":17274.542454430943},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Base Asset","config":"{ \n\"codeName\": \"profitLossInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionBaseAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2c6b4f74-ede6-4055-96e9-7b6a7fe6f14b","savedPayload":{"position":{"x":34421.768782475236,"y":17361.576268248013},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Quoted Asset","config":"{ \n\"codeName\": \"profitLossInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionQuotedAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"1ea905bd-9a4f-45ef-a3f9-ecdfb8e68ce1","savedPayload":{"position":{"x":34448.52436885019,"y":17451.901614088092},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Base Asset","config":"{ \n\"codeName\": \"ROIInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionBaseAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"29924f25-d402-499e-a51a-952a4d1bc015","savedPayload":{"position":{"x":34465.69181572871,"y":17544.528868560363},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Quoted Asset","config":"{ \n\"codeName\": \"ROIInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionQuotedAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2af609c6-806d-4dd2-af9e-4cc9e1a2b0c3","savedPayload":{"position":{"x":34473.08303297027,"y":17638.44318808132},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Base Asset","config":"{ \n\"codeName\": \"hitFailInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionBaseAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"1f4d9780-e2f9-400c-b47b-e303c3a2bac1","savedPayload":{"position":{"x":34470.61704085209,"y":17732.61562771347},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Quoted Asset","config":"{ \n\"codeName\": \"hitFailInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.position.positionQuotedAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"4019c021-32b6-48bc-9523-39befbf74aeb","savedPayload":{"position":{"x":34458.320857299834,"y":17826.01441450134},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Base Asset","config":"{ \n\"codeName\": \"entryTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"e8cd2d2b-0ca6-46e1-946b-2aa4bfdb341c","savedPayload":{"position":{"x":34436.329201873654,"y":17917.61625179194},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Quoted Asset","config":"{ \n\"codeName\": \"entryTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2f52b5a7-cd53-485d-b2b6-64c1ce2f5af1","savedPayload":{"position":{"x":34404.88301975244,"y":18006.41753068699},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Base Asset","config":"{ \n\"codeName\": \"exitTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"45e8300d-baf1-4d87-aef6-ec10dd85da2d","savedPayload":{"position":{"x":34364.32684188805,"y":18091.445325792058},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Quoted Asset","config":"{ \n\"codeName\": \"exitTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4c4be570-1f2d-4e3e-9c4e-8076fd4a5b9d","savedPayload":{"position":{"x":34315.10501025209,"y":18171.76805479076},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Rate","config":"{ \n\"codeName\": \"entryTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"546beb6d-17ef-4b1b-b0e5-f9f716cbf09c","savedPayload":{"position":{"x":34257.75680953231,"y":18246.505685055574},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Rate","config":"{ \n\"codeName\": \"exitTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"d71cf631-337c-40ff-8637-89ab1bf10316","savedPayload":{"position":{"x":34192.910558616655,"y":18314.839375469466},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Profit Loss","config":"{ \n\"codeName\": \"profitLoss\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 10\n}","project":"Superalgos","id":"c5e7ea1d-2314-48a4-8c2f-eea2054521aa","savedPayload":{"position":{"x":34121.276726600125,"y":18376.02044782052},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics ROI","config":"{ \n\"codeName\": \"ROI\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 10\n}","project":"Superalgos","id":"6ccc1352-bb8a-4b4c-9e3e-e3107e4610c8","savedPayload":{"position":{"x":34043.64014873663,"y":18429.37858947709},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Hit Fail","config":"{ \n\"codeName\": \"hitFail\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\"\n}","project":"Superalgos","id":"afc68726-a40f-49f8-b9a3-c841e9f14c84","savedPayload":{"position":{"x":33960.85142761974,"y":18474.329197473282},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"871e0d9c-c467-4fbf-bb51-ff06cdd97a24","savedPayload":{"position":{"x":33873.817613802676,"y":18510.379783541368},"targetPosition":{"x":33573.391440492276,"y":17662.00244155841},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"731e7326-c591-4d9f-a9d7-1c7abd42156f","savedPayload":{"position":{"x":33573.391440492276,"y":17662.00244155841},"targetPosition":{"x":32698.258512134365,"y":17872.103269028725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"477cd6d5-862a-44d0-9313-786a4e63a602","savedPayload":{"position":{"x":32698.258512134365,"y":17872.103269028725},"targetPosition":{"x":32334.20086466564,"y":18136.60663256034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Last Position","id":"08c88b9c-70f1-49ff-aa16-21f2bc1c0ba1"}}},{"type":"Product Definition","name":"Stop Loss","config":"{\n \"codeName\": \"Stop-Loss\",\n \"singularVariableName\": \"stopLoss\",\n \"pluralVariableName\": \"stopLosses\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAtCycle\": \"Second\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"b0276d53-e43b-4f1b-a5d8-b118921970dd","savedPayload":{"position":{"x":32992.07375948068,"y":18050.502860278193},"targetPosition":{"x":32784.20086466564,"y":18136.60663256034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"b5d51a14-eed9-405f-90d7-e91c0ceed659","savedPayload":{"position":{"x":33009.20086466564,"y":18136.60663256034},"targetPosition":{"x":32784.20086466564,"y":18136.60663256034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\",\n \"childProperty\": \"begin\"\n}","project":"Superalgos","id":"496f95fc-0a29-4a08-a5ba-7fbd1979b326","savedPayload":{"position":{"x":33155.673639752,"y":18221.3928693874},"targetPosition":{"x":32943.29989043261,"y":18295.70565832731},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\",\n \"childProperty\": \"end\"\n}","project":"Superalgos","id":"62a7bb07-5534-4c43-818c-8125eb98cc21","savedPayload":{"position":{"x":33166.885137658595,"y":18320.897665450557},"targetPosition":{"x":32943.29989043261,"y":18295.70565832731},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stop Loss","config":"{\n \"codeName\": \"stopLoss\",\n \"isString\": false\n}","project":"Superalgos","id":"f1054e02-00f1-4a93-8a5f-10bb181d57ac","savedPayload":{"position":{"x":33133.81283525898,"y":18415.41287554326},"targetPosition":{"x":32943.29989043261,"y":18295.70565832731},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stop Loss Phase","config":"{\n \"codeName\": \"stopLossPhase\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\"\n}","project":"Superalgos","id":"d6b29dfa-d7bf-4995-bff3-2641052c3e4a","savedPayload":{"position":{"x":33063.00710764856,"y":18486.218603153677},"targetPosition":{"x":32943.29989043261,"y":18295.70565832731},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Initial Value","config":"{\n \"codeName\": \"initialValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\"\n}","project":"Superalgos","id":"a87ea0f8-6d19-40ce-97b4-d4ce51b41df2","savedPayload":{"position":{"x":32968.491897555854,"y":18519.29090555329},"targetPosition":{"x":32943.29989043261,"y":18295.70565832731},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Final Value","config":"{\n \"codeName\": \"finalValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\"\n}","project":"Superalgos","id":"c78fd29a-b6c9-4fab-a805-2f11cce53f6a","savedPayload":{"position":{"x":32868.987101492705,"y":18508.079407646695},"targetPosition":{"x":32943.29989043261,"y":18295.70565832731},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d1352dcb-8236-4dfc-98da-4abb3c3813d5","savedPayload":{"position":{"x":32943.29989043261,"y":18295.70565832731},"targetPosition":{"x":32784.20086466564,"y":18136.60663256034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a1c047bd-e95e-469a-aac9-3d45c4157440","savedPayload":{"position":{"x":32784.20086466564,"y":18136.60663256034},"targetPosition":{"x":32334.20086466564,"y":18136.60663256034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Stop Loss","id":"cdafbd38-ade8-4548-b951-b404c1bd7885"}}},{"type":"Product Definition","name":"Take Profit","config":"{\n \"codeName\": \"Take-Profit\",\n \"singularVariableName\": \"takeProfit\",\n \"pluralVariableName\": \"takeProfits\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAtCycle\": \"Second\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"67fd9603-5184-4570-bebb-07c33974b40c","savedPayload":{"position":{"x":32911.04174422384,"y":18453.635202959533},"targetPosition":{"x":32692.258512134365,"y":18401.109996091953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"d1fc090a-18c0-4ff6-87d6-726d276bad43","savedPayload":{"position":{"x":32874.28733586873,"y":18533.36167785776},"targetPosition":{"x":32692.258512134365,"y":18401.109996091953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\",\n \"childProperty\": \"begin\"\n}","project":"Superalgos","id":"cba47a0d-3982-454d-a2e1-8bfbc9314c0e","savedPayload":{"position":{"x":32942.95020052253,"y":18688.04972139806},"targetPosition":{"x":32727.45626676842,"y":18623.339872725857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\",\n \"childProperty\": \"end\"\n}","project":"Superalgos","id":"e30faa7e-ff94-485a-a2c6-6c2f4767ef0c","savedPayload":{"position":{"x":32893.533041203074,"y":18775.140745560573},"targetPosition":{"x":32727.45626676842,"y":18623.339872725857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Take Profit","config":"{\n \"codeName\": \"takeProfit\",\n \"isString\": false\n}","project":"Superalgos","id":"094ba661-8e22-4924-9529-465052979f5c","savedPayload":{"position":{"x":32811.222339908854,"y":18832.16574514264},"targetPosition":{"x":32727.45626676842,"y":18623.339872725857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stop Loss Phase","config":"{\n \"codeName\": \"takeProfitPhase\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\"\n}","project":"Superalgos","id":"b7897f40-beef-425c-afb0-b62383df7644","savedPayload":{"position":{"x":32712.32074050571,"y":18847.83021961131},"targetPosition":{"x":32727.45626676842,"y":18623.339872725857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Initial Value","config":"{\n \"codeName\": \"initialValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\"\n}","project":"Superalgos","id":"e0218aec-2f5e-4307-8533-990d87464375","savedPayload":{"position":{"x":32616.41691770394,"y":18819.03162768589},"targetPosition":{"x":32727.45626676842,"y":18623.339872725857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Final Value","config":"{\n \"codeName\": \"finalValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\"\n}","project":"Superalgos","id":"046e68e8-98db-49a9-bf07-c3a9638a7fbb","savedPayload":{"position":{"x":32542.505799792638,"y":18751.47388368876},"targetPosition":{"x":32727.45626676842,"y":18623.339872725857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3012a392-5c3a-4204-82f1-44f46d08621a","savedPayload":{"position":{"x":32727.45626676842,"y":18623.339872725857},"targetPosition":{"x":32692.258512134365,"y":18401.109996091953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"11513bf1-0f23-4d79-b760-83ccebc4e1c5","savedPayload":{"position":{"x":32698.258512134365,"y":18401.109996091953},"targetPosition":{"x":32334.20086466564,"y":18136.60663256034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Take Profit","id":"d06674eb-36cf-4048-bd99-31712b0523a0"}}}],"productDefinitionFolders":[],"id":"83cdc0a1-260e-42bb-a054-5719c34b0165","savedPayload":{"position":{"x":32334.20086466564,"y":18136.60663256034},"targetPosition":{"x":31906.22543233282,"y":18275.664280029065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Stages","project":"Superalgos","products":[{"type":"Product Definition","name":"Open Stage","config":"{\n \"codeName\": \"Current-Strategy-Open-Stage\",\n \"singularVariableName\": \"currentStrategyOpenStage\",\n \"pluralVariableName\": \"currentStrategyOpenStages\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"b553683f-14f4-48be-91a6-0fb5381887e4","savedPayload":{"position":{"x":32777.672020909726,"y":17865.034079056848},"targetPosition":{"x":32680.807024127862,"y":18068.115768035568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"3287fb46-854d-41de-8a42-285f9c10d4fa","savedPayload":{"position":{"x":32848.01460986027,"y":17917.561381604824},"targetPosition":{"x":32680.807024127862,"y":18068.115768035568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"16f06257-04df-47fc-8a3c-29daf922e556","savedPayload":{"position":{"x":33040.42401522331,"y":17472.55955731152},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"4d6aabc2-0b50-4948-9c21-82f6a1df7bbf","savedPayload":{"position":{"x":33128.54687542867,"y":17468.519390740814},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"22ea5554-c115-4081-bc2a-03243d8630c4","savedPayload":{"position":{"x":33215.76467698239,"y":17481.74877201233},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"37d59f42-6664-4cdb-a563-599f4c926ed2","savedPayload":{"position":{"x":33298.72568868307,"y":17511.739303422935},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"4768b50b-1fb1-4a31-a9ce-9dd1bb7ae14c","savedPayload":{"position":{"x":33374.24176537614,"y":17557.338465669396},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"fa740c89-d602-4dda-953b-80b4744e742c","savedPayload":{"position":{"x":33439.41086658417,"y":17616.793908518885},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"f022ac0c-4a8c-4ea1-bc77-f9e03c706e6e","savedPayload":{"position":{"x":33491.72858029499,"y":17687.8207926457},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3491a030-50f3-4909-be44-b40a7c8fe8c0","savedPayload":{"position":{"x":33529.18436611082,"y":17767.689594725176},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageBaseAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"20e53cb6-ac86-4d7f-823c-d9dcd3fe3683","savedPayload":{"position":{"x":33550.3388191882,"y":17853.33100148434},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageQuotedAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"6e4fd9ec-7ff6-4f34-911e-4954d1e17b18","savedPayload":{"position":{"x":33554.3789857589,"y":17941.453861689697},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Placed In Base Asset","config":"{\n \"codeName\": \"sizePlacedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageBaseAsset\",\n \"childProperty\": \"sizePlaced\",\n \"decimals\": 10\n}","project":"Superalgos","id":"180c4f89-8767-48c0-8319-c3564cf17c90","savedPayload":{"position":{"x":33541.14960448738,"y":18028.671663243418},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Placed In Quoted Asset","config":"{\n \"codeName\": \"sizePlacedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageQuotedAsset\",\n \"childProperty\": \"sizePlaced\",\n \"decimals\": 10\n}","project":"Superalgos","id":"df80e04b-729b-482e-a088-90a164e53095","savedPayload":{"position":{"x":33511.15907307678,"y":18111.632674944103},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Target Size In Base Asset","config":"{\n \"codeName\": \"targetSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageBaseAsset\",\n \"childProperty\": \"targetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"709e3369-660e-4109-bbcb-3d4e45b6609f","savedPayload":{"position":{"x":33465.559910830314,"y":18187.148751637167},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Target Size In Quoted Asset","config":"{\n \"codeName\": \"targetSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage.stageQuotedAsset\",\n \"childProperty\": \"targetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"eb37666f-1459-4bbc-8a33-5030dd2468fa","savedPayload":{"position":{"x":33406.104467980826,"y":18252.3178528452},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stage Defined In","config":"{ \n\"codeName\": \"stageDefinedIn\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"68d9f756-49e1-4541-b94b-e6502c2dd812","savedPayload":{"position":{"x":33335.077583854014,"y":18304.635566556026},"targetPosition":{"x":33104.995695119345,"y":17917.902681380372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"59f991ac-f3e7-410e-9caf-bf14ed61d69c","savedPayload":{"position":{"x":33104.995695119345,"y":17917.902681380372},"targetPosition":{"x":32680.807024127862,"y":18068.115768035568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"73c3c041-ba2a-4798-a362-a453409b518a","savedPayload":{"position":{"x":32680.807024127862,"y":18068.115768035568},"targetPosition":{"x":32346.391852663033,"y":18369.224540897056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Strategy Open Stage","id":"f759a457-fc11-43a8-bf2c-6ebf1db0e78d"}}},{"type":"Product Definition","name":"Close Stage","config":"{\n \"codeName\": \"Current-Strategy-Close-Stage\",\n \"singularVariableName\": \"currentStrategyCloseStage\",\n \"pluralVariableName\": \"currentStrategyCloseStages\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0c30c4d3-3e58-4422-a178-450c24f95001","savedPayload":{"position":{"x":32991.660555927694,"y":18214.8260113682},"targetPosition":{"x":32793.92670557876,"y":18322.186732426613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"4903a08c-90b6-4726-aa4d-1d8a0acdbd77","savedPayload":{"position":{"x":33017.69413203662,"y":18298.667828191392},"targetPosition":{"x":32793.92670557876,"y":18322.186732426613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"840e560a-bfeb-473e-9a22-e0388757f531","savedPayload":{"position":{"x":33434.922120415744,"y":18051.74920068501},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"4beb9d7d-106c-440a-9ea0-db16de4c2da4","savedPayload":{"position":{"x":33508.58976224187,"y":18100.27795488774},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"517d1407-6464-46e0-b5f7-ce3ca23a7cbd","savedPayload":{"position":{"x":33571.3744107025,"y":18162.246086652114},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"23275807-6666-4821-a84b-060a46ed4993","savedPayload":{"position":{"x":33620.86328696733,"y":18235.272195426554},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"75a1d315-4027-402a-8646-565331def8e4","savedPayload":{"position":{"x":33655.15456127518,"y":18316.549928804372},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"f46867ef-8d39-4aa9-b57d-12ab7eb8c293","savedPayload":{"position":{"x":33672.93043918516,"y":18402.955829072936},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"73317d39-d014-45f3-bf3b-07230c4055cc","savedPayload":{"position":{"x":33673.50780367804,"y":18491.16936594191},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"f4815fd2-f336-4867-ae0c-8d31ac90ced9","savedPayload":{"position":{"x":33656.86446696013,"y":18577.800542660145},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageBaseAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"81b366f7-5fb3-4b55-98c8-cea47462b138","savedPayload":{"position":{"x":33623.64002312781,"y":18659.52017168968},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageQuotedAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"7f1e01e4-f353-4cd4-b145-871558d5ab60","savedPayload":{"position":{"x":33575.11126892508,"y":18733.187813515808},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Placed In Base Asset","config":"{\n \"codeName\": \"sizePlacedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageBaseAsset\",\n \"childProperty\": \"sizePlaced\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3074287b-add9-4baf-a74c-9f09c17cf4f8","savedPayload":{"position":{"x":33513.1431371607,"y":18795.972461976435},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Placed In Quoted Asset","config":"{\n \"codeName\": \"sizePlacedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageQuotedAsset\",\n \"childProperty\": \"sizePlaced\",\n \"decimals\": 10\n}","project":"Superalgos","id":"b8c6b690-b924-4a51-88c0-e17e95c16d38","savedPayload":{"position":{"x":33440.11702838627,"y":18845.461338241264},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Target Size In Base Asset","config":"{\n \"codeName\": \"targetSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageBaseAsset\",\n \"childProperty\": \"targetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"e0e42bb9-3f23-49d1-a286-bdb3b58f4a14","savedPayload":{"position":{"x":33358.83929500845,"y":18879.752612549113},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Target Size In Quoted Asset","config":"{\n \"codeName\": \"targetSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage.stageQuotedAsset\",\n \"childProperty\": \"targetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3ab9f66f-69b9-4d05-a7a1-105d49ce0c09","savedPayload":{"position":{"x":33272.433394739885,"y":18897.528490459103},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stage Defined In","config":"{ \n\"codeName\": \"stageDefinedIn\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7bcc6d7f-a5c9-4a06-9730-7744461e9a75","savedPayload":{"position":{"x":33184.21985787091,"y":18898.105854951977},"targetPosition":{"x":33225.39558626944,"y":18449.99363754338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"722161de-6374-4eb6-a3cc-ab6638d0c484","savedPayload":{"position":{"x":33225.39558626944,"y":18449.99363754338},"targetPosition":{"x":32793.92670557876,"y":18322.186732426613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"2bb9bb41-1ff5-4f83-aa5b-bfc4c9f06a9a","savedPayload":{"position":{"x":32793.92670557876,"y":18322.186732426613},"targetPosition":{"x":32346.391852663033,"y":18369.224540897056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Strategy Close Stage","id":"6be13ce1-0fae-4355-99b2-dc8db000251f"}}},{"type":"Product Definition","name":"Trigger Stage","config":"{\n \"codeName\": \"Current-Strategy-Trigger-Stage\",\n \"singularVariableName\": \"currentStrategyTriggerStage\",\n \"pluralVariableName\": \"currentStrategyTriggerStages\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyTriggerStage\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a179150b-2eaa-45ef-a7fa-14a1decf7dfc","savedPayload":{"position":{"x":32959.178378175144,"y":18623.592934146567},"targetPosition":{"x":32736.103284366032,"y":18594.224540897056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"493f0951-e638-4da1-88b4-1c1d3829046e","savedPayload":{"position":{"x":32930.95900021753,"y":18706.724540897056},"targetPosition":{"x":32736.103284366032,"y":18594.224540897056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"42eb64c6-8540-44fa-a428-e6f6514464c1","savedPayload":{"position":{"x":33093.33123371996,"y":18726.772346559905},"targetPosition":{"x":32873.074605892994,"y":18772.729042462583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"56c868af-79a0-4b0e-a9ec-7d82999155b7","savedPayload":{"position":{"x":33091.45883357001,"y":18826.8892594296},"targetPosition":{"x":32873.074605892994,"y":18772.729042462583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"22df8e6e-b5c8-4ee3-80a9-425ef95d88f8","savedPayload":{"position":{"x":33046.33275882182,"y":18916.279077097508},"targetPosition":{"x":32873.074605892994,"y":18772.729042462583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"fcf315f5-afd7-449e-b0bf-d7cf4af9bba0","savedPayload":{"position":{"x":32966.89078201429,"y":18977.23704988033},"targetPosition":{"x":32873.074605892994,"y":18772.729042462583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"5f4b2d5b-c8bc-401b-90ec-14ede9ec8f64","savedPayload":{"position":{"x":32868.86736094604,"y":18997.68970366795},"targetPosition":{"x":32873.074605892994,"y":18772.729042462583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"292f1ff7-7038-4826-8af8-1fdd34661d0b","savedPayload":{"position":{"x":32771.67723633801,"y":18973.586139542396},"targetPosition":{"x":32873.074605892994,"y":18772.729042462583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c9ec94f8-1ccc-4111-817f-2fb25f5f02b5","savedPayload":{"position":{"x":32873.074605892994,"y":18772.729042462583},"targetPosition":{"x":32736.103284366032,"y":18594.224540897056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"b6cff826-9056-4fbd-8eca-cbd6cceec962","savedPayload":{"position":{"x":32736.103284366032,"y":18594.224540897056},"targetPosition":{"x":32346.391852663033,"y":18369.224540897056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Strategy Trigger Stage","id":"823fa15f-bf29-4784-a5f8-5b82d2ed7645"}}},{"type":"Product Definition","name":"Manage Stage","config":"{\n \"codeName\": \"Current-Strategy-Manage-Stage\",\n \"singularVariableName\": \"currentStrategyManageStage\",\n \"pluralVariableName\": \"currentStrategyManageStages\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyManageStage\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"56d1a25b-54b1-419c-a323-f2fad41de0ec","savedPayload":{"position":{"x":32692.63257552491,"y":18935.19977636732},"targetPosition":{"x":32529.423342047143,"y":18780.319996836228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"fef1dba7-fc21-4338-b75e-a040d71dbde5","savedPayload":{"position":{"x":32620.9390867392,"y":18985.867724805812},"targetPosition":{"x":32529.423342047143,"y":18780.319996836228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"4df09191-2517-4b69-8d05-ba22ee71d7a5","savedPayload":{"position":{"x":32740.517178547834,"y":19097.526744521507},"targetPosition":{"x":32535.313155416414,"y":19005.24289495573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"41b7d04c-0aeb-478f-9515-8ee8d6eb15e4","savedPayload":{"position":{"x":32680.15513011639,"y":19177.42245926291},"targetPosition":{"x":32535.313155416414,"y":19005.24289495573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"1250e9d7-07f0-47a5-b1bb-9ad2af6ee8ef","savedPayload":{"position":{"x":32591.10535222537,"y":19223.215899649498},"targetPosition":{"x":32535.313155416414,"y":19005.24289495573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"c629a906-31b2-4dae-bc5b-44f189b024ae","savedPayload":{"position":{"x":32491.005245509947,"y":19225.837113193018},"targetPosition":{"x":32535.313155416414,"y":19005.24289495573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"e876f72a-fef5-4956-b401-3d2b7b4b8b95","savedPayload":{"position":{"x":32399.680863752354,"y":19184.766936404096},"targetPosition":{"x":32535.313155416414,"y":19005.24289495573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"e248dba4-bfa4-4879-8276-edc85ee6b0d9","savedPayload":{"position":{"x":32335.22012077972,"y":19108.139821488443},"targetPosition":{"x":32535.313155416414,"y":19005.24289495573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"188b2d1c-91c4-4a50-9101-91596ac53407","savedPayload":{"position":{"x":32535.313155416414,"y":19005.24289495573},"targetPosition":{"x":32529.423342047143,"y":18780.319996836228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"bd691611-e7a6-49a8-b07d-c15360b55e40","savedPayload":{"position":{"x":32529.423342047143,"y":18780.319996836228},"targetPosition":{"x":32346.391852663033,"y":18369.224540897056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Current Strategy Manage Stage","id":"34a912c3-4b0f-4f21-9736-4ef47cd0544d"}}}],"productDefinitionFolders":[],"id":"e3ceaf77-f718-477c-bf10-3dc0cf2235bb","savedPayload":{"position":{"x":32346.391852663033,"y":18369.224540897056},"targetPosition":{"x":31906.22543233282,"y":18275.664280029065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Orders","project":"Superalgos","products":[{"type":"Product Definition","name":"Market Buy Orders","config":"{ \n \"codeName\": \"Market-Buy-Orders\", \n \"singularVariableName\": \"marketBuyOrder\", \n \"pluralVariableName\": \"marketBuyOrders\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a2ea8001-2143-4055-b1d3-525d95fa8e6f","savedPayload":{"position":{"x":32816.72047965542,"y":18247.618709207796},"targetPosition":{"x":32657.027539010945,"y":18406.121594696735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"557357c6-f814-4bf9-9426-82fc5e22c028","savedPayload":{"position":{"x":32865.22100661759,"y":18320.795865599826},"targetPosition":{"x":32657.027539010945,"y":18406.121594696735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"1f788bde-d5cc-4556-9cb3-f6ad2a085870","savedPayload":{"position":{"x":33152.806684562674,"y":17960.13955394905},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"cbe57e07-e492-45ef-be26-6e5ace5cc49d","savedPayload":{"position":{"x":33196.46507665883,"y":17966.782632854145},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"0eef5d2a-489b-402b-a1bc-bbf6105bc226","savedPayload":{"position":{"x":33239.262106066715,"y":17977.672994263223},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"76a37b2a-ff68-425c-95ae-9da13d4f11e3","savedPayload":{"position":{"x":33280.78561399792,"y":17992.705758042637},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"81aa9c0a-b729-471f-8b3f-046d83779376","savedPayload":{"position":{"x":33320.63570637199,"y":18011.73615045945},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"48215010-5717-4f29-aa92-edc16d881270","savedPayload":{"position":{"x":33358.428605015106,"y":18034.580898431617},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"588b02df-d269-4fac-a942-0e148bef8573","savedPayload":{"position":{"x":33393.800343653624,"y":18061.019994547954},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f44959e8-ba4e-41f2-a349-7003d00ef570","savedPayload":{"position":{"x":33426.41027310828,"y":18090.798815859784},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"43c9c172-0930-4a94-86c4-6de1b82604d3","savedPayload":{"position":{"x":33455.94434193206,"y":18123.630576039115},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e637160d-ab4a-4d36-8324-994615efa900","savedPayload":{"position":{"x":33482.1181208972,"y":18159.19908728775},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b9cf9af0-758e-46c8-ad34-0afb01aa1658","savedPayload":{"position":{"x":33504.67954220423,"y":18197.161805398642},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderCounters\"\n}","project":"Superalgos","id":"69f674b7-9532-406e-bda9-6a128a9b3e8b","savedPayload":{"position":{"x":33523.411327032634,"y":18237.153128643848},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"5f50a6c7-0123-4f45-802c-897b7f1d9186","savedPayload":{"position":{"x":33538.133078054685,"y":18278.787918719037},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"ff92e722-7f93-4935-ab39-5fe5d901d275","savedPayload":{"position":{"x":33548.70301676031,"y":18321.66520983589},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"7ed49f47-7cf0-4c04-8ec7-c42b77bbc496","savedPayload":{"position":{"x":33555.01934886165,"y":18365.37207024185},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lock","config":"{\n \"codeName\": \"lock\",\n \"isString\": true\n}","project":"Superalgos","id":"c8db7716-5a26-4aa6-b6fa-594e9b4998f0","savedPayload":{"position":{"x":33557.02124462772,"y":18409.487578978595},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"9033bc32-f754-4d94-87a6-4c16cd8ca7d7","savedPayload":{"position":{"x":33554.68942470795,"y":18453.58687958101},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"1524688a-c64c-434c-84ea-79e57f7e37bc","savedPayload":{"position":{"x":33548.04634580285,"y":18497.24527167716},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"200c3a3d-f082-4cb0-86b1-ba12429f6c0e","savedPayload":{"position":{"x":33537.15598439377,"y":18540.04230108505},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"256902a5-0c3d-4a8d-9f85-e68bb07405e0","savedPayload":{"position":{"x":33522.12322061436,"y":18581.56580901625},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"5f054d54-a92e-4d88-a654-20f9257ab794","savedPayload":{"position":{"x":33503.09282819755,"y":18621.415901390326},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2180ac7e-b09a-404f-86cd-3e0d0eb0635f","savedPayload":{"position":{"x":33480.248080225385,"y":18659.208800033437},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"cd182952-6fd9-40be-82c6-d5b1356c3fc7","savedPayload":{"position":{"x":33453.80898410904,"y":18694.58053867195},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"81cb024b-b64e-4f2c-be9d-c343fc27b08e","savedPayload":{"position":{"x":33424.030162797215,"y":18727.190468126617},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"bfd95185-6f74-4710-b798-b76a5c3cc109","savedPayload":{"position":{"x":33391.19840261788,"y":18756.724536950387},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Base Asset","config":"{\n \"codeName\": \"actualSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4a7527d6-b18c-4e2d-a999-7a0adae10446","savedPayload":{"position":{"x":33355.629891369244,"y":18782.89831591553},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Quoted Asset","config":"{\n \"codeName\": \"actualSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"563763f2-8250-4ba4-86b6-4513fff2809d","savedPayload":{"position":{"x":33317.667173258356,"y":18805.459737222558},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Base Asset","config":"{\n \"codeName\": \"amountReceivedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"f8f2196b-973a-4f6f-a78b-408d4ac24b4d","savedPayload":{"position":{"x":33277.675850013155,"y":18824.19152205096},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Quoted Asset","config":"{\n \"codeName\": \"amountReceivedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"cc17eb10-cd63-4be5-9190-6d2f94e02f70","savedPayload":{"position":{"x":33236.04105993796,"y":18838.913273073013},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Base Asset","config":"{ \n\"codeName\": \"feesToBePaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"cf03df3f-d37a-4970-a8d3-d1983d680ebf","savedPayload":{"position":{"x":33193.163768821105,"y":18849.483211778635},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesToBePaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"3af34380-403a-4cee-b0b1-767b8fff60f5","savedPayload":{"position":{"x":33149.45690841515,"y":18855.79954387998},"targetPosition":{"x":33107.02439181933,"y":18407.804586837665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2b743c15-4ca6-46e9-a96e-b0a62b42de60","savedPayload":{"position":{"x":33107.02439181933,"y":18407.804586837665},"targetPosition":{"x":32657.027539010945,"y":18406.121594696735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"7c769317-2639-4460-8b88-9dc92f7b0585","savedPayload":{"position":{"x":32657.027539010945,"y":18406.121594696735},"targetPosition":{"x":32240.64060379765,"y":18576.773052890552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Market Buy Orders","id":"50d624c9-9a6e-4d57-a147-29d5c004b3f2"}}},{"type":"Product Definition","name":"Market Sell Orders","config":"{ \n \"codeName\": \"Market-Sell-Orders\", \n \"singularVariableName\": \"marketSellOrder\", \n \"pluralVariableName\": \"marketSellOrders\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"917cfdae-b736-4ed5-ad8e-d572c49ea489","savedPayload":{"position":{"x":32902.485354754455,"y":18530.166927065085},"targetPosition":{"x":32689.83516219313,"y":18603.68492216582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"3c878a50-6d76-412b-95d7-f2e546960293","savedPayload":{"position":{"x":32914.43244139087,"y":18617.140856803453},"targetPosition":{"x":32689.83516219313,"y":18603.68492216582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"7dd0d738-2116-4010-a9d5-19624a9bc097","savedPayload":{"position":{"x":33330.02109310939,"y":18416.979497257067},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"5843c701-ba88-42c1-97c2-215cb97b309c","savedPayload":{"position":{"x":33366.4736212961,"y":18441.90737094411},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"f3f77a4c-acf5-4026-aa2a-9b34e231a9d5","savedPayload":{"position":{"x":33400.3072617028,"y":18470.288182676515},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"cc0b04e1-acd8-413b-8366-e620d55a22be","savedPayload":{"position":{"x":33431.196177877035,"y":18501.848609722765},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"89bb217d-a5ce-4197-b33b-4b251e3ec5c9","savedPayload":{"position":{"x":33458.84289267042,"y":18536.284707917726},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"3a6b6603-5de8-47a1-b2cb-e2078397aca1","savedPayload":{"position":{"x":33482.9811531063,"y":18573.264838811087},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"a0d62501-1822-4d56-afce-b5eee40212f7","savedPayload":{"position":{"x":33503.378494541335,"y":18612.432863526956},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"9f72bb4a-779d-453f-a7b2-bf240eec29fa","savedPayload":{"position":{"x":33519.83847942719,"y":18653.411572575893},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7b91a979-7175-49aa-a83b-faa1d7c22bf3","savedPayload":{"position":{"x":33532.202589111475,"y":18695.806318588522},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b47e5776-92ed-468e-8040-16a655a9a92b","savedPayload":{"position":{"x":33540.35175045903,"y":18739.20881698541},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"178e1183-6b29-4a8b-b2a2-3e817bf56c0b","savedPayload":{"position":{"x":33544.20748259127,"y":18783.20107798078},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderCounters\"\n}","project":"Superalgos","id":"16eb66bd-cbd5-4272-83bd-7aa5cbf79965","savedPayload":{"position":{"x":33543.732652700026,"y":18827.359432052628},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"4694fc1a-8031-4b21-8002-fb2259b98221","savedPayload":{"position":{"x":33538.9318336567,"y":18871.25861011183},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"3fdfa893-f3ff-4595-bfd1-e9e191a2f7de","savedPayload":{"position":{"x":33529.85125997309,"y":18914.475839075945},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"fd90ed73-a52a-41b0-988e-f85896e4e119","savedPayload":{"position":{"x":33516.578382537715,"y":18956.594913405108},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lock","config":"{\n \"codeName\": \"lock\",\n \"isString\": true\n}","project":"Superalgos","id":"a0541e00-0150-4089-82c3-1f596ed4fc0c","savedPayload":{"position":{"x":33499.241026415955,"y":18997.210203388902},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"2320eff7-cd11-46a6-8f2b-7c6c6bd9afa2","savedPayload":{"position":{"x":33478.006159824836,"y":19035.930561582205},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"cbcd69c4-f332-4615-a1aa-ff5a63c2f63a","savedPayload":{"position":{"x":33453.078286137796,"y":19072.38308976892},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"67d569c5-929d-4f9a-a7a2-1a31aecab027","savedPayload":{"position":{"x":33424.69747440539,"y":19106.21673017562},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"42ccc010-d59e-45d0-9ded-718df8f547cc","savedPayload":{"position":{"x":33393.13704735914,"y":19137.10564634985},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"da1eb092-2796-4d86-9e20-095b75b18911","savedPayload":{"position":{"x":33358.70094916418,"y":19164.752361143244},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4b2b02b0-2297-4cae-997e-ddadffae94e1","savedPayload":{"position":{"x":33321.72081827081,"y":19188.890621579118},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"49e12e85-2250-420d-ae4e-4d7ee514e59c","savedPayload":{"position":{"x":33282.55279355495,"y":19209.28796301415},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"f28662d2-c0e7-4051-a8ab-868707defe65","savedPayload":{"position":{"x":33241.574084506006,"y":19225.74794790001},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"a4c176bc-6da0-459f-ac04-7c414f92ce02","savedPayload":{"position":{"x":33199.179338493384,"y":19238.112057584298},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Base Asset","config":"{\n \"codeName\": \"actualSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"294f76ca-f9e2-4286-a23d-5c99566196e6","savedPayload":{"position":{"x":33155.77684009649,"y":19246.261218931846},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Quoted Asset","config":"{\n \"codeName\": \"actualSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"8568ef28-9a27-42e2-bb4c-4369687ffc12","savedPayload":{"position":{"x":33111.78457910112,"y":19250.11695106409},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Base Asset","config":"{\n \"codeName\": \"amountReceivedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"cf72b9d2-d399-4a2b-9928-9caa64660f4a","savedPayload":{"position":{"x":33067.62622502928,"y":19249.64212117284},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Quoted Asset","config":"{\n \"codeName\": \"amountReceivedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"885e6120-43c9-4eee-85c1-668a539be5b6","savedPayload":{"position":{"x":33023.727046970074,"y":19244.84130212952},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Base Asset","config":"{ \n\"codeName\": \"feesToBePaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"9e9c5625-295a-4292-a5de-8b4e5d637afd","savedPayload":{"position":{"x":32980.50981800596,"y":19235.76072844591},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesToBePaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"f8d17b8d-ae68-4b25-970e-2fb371884d48","savedPayload":{"position":{"x":32938.39074367679,"y":19222.48785101053},"targetPosition":{"x":33094.538094304546,"y":18800.44756277736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e2626cbd-29b0-4582-a408-4720feb8123d","savedPayload":{"position":{"x":33094.538094304546,"y":18800.44756277736},"targetPosition":{"x":32689.83516219313,"y":18603.68492216582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"9cc7645a-54fe-40d6-9896-9278167011fb","savedPayload":{"position":{"x":32689.83516219313,"y":18603.68492216582},"targetPosition":{"x":32240.64060379765,"y":18576.773052890552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Market Sell Orders","id":"4f84a1a5-f9cd-4b9d-9d91-661ba912e2ca"}}},{"type":"Product Definition","name":"Limit Buy Orders","config":"{ \n \"codeName\": \"Limit-Buy-Orders\", \n \"singularVariableName\": \"limitBuyOrder\", \n \"pluralVariableName\": \"limitBuyOrders\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"df8cfaa4-a4d4-4bc1-9fa2-4f8e91e45a87","savedPayload":{"position":{"x":32857.1637599333,"y":18821.94605972873},"targetPosition":{"x":32633.674294075357,"y":18795.918023872517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"12652573-9506-4d3e-82bb-64b1bb9e7ce0","savedPayload":{"position":{"x":32830.19113921421,"y":18905.4905093635},"targetPosition":{"x":32633.674294075357,"y":18795.918023872517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"b0dc1303-0b65-4328-b885-f33d4ef395a6","savedPayload":{"position":{"x":33291.47033537298,"y":18905.46851399763},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"451e4e45-854c-4b9f-ac75-ddfe076fb6d8","savedPayload":{"position":{"x":33313.497129381954,"y":18943.743911362602},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"fa7958e6-31e1-4216-b3bf-f341cae3ad92","savedPayload":{"position":{"x":33331.66621336255,"y":18983.99400558692},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"f3230b63-049f-457a-abc1-9117d8443337","savedPayload":{"position":{"x":33345.802609103805,"y":19025.831166260257},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"544aae22-e5cf-41d2-912e-f19699a7f65a","savedPayload":{"position":{"x":33355.770175386984,"y":19068.852478654822},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7cccabcc-97ae-4e46-86b4-70c8b6ab73c5","savedPayload":{"position":{"x":33361.47291909996,"y":19112.64362401441},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"3f94ee88-bb65-4f46-9cef-c3468b2e5831","savedPayload":{"position":{"x":33362.85591970333,"y":19156.78286967053},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"fbe17bbd-1af9-4b97-be44-f267039077e5","savedPayload":{"position":{"x":33359.90585814527,"y":19200.845130558548},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"593c0354-1f6a-4ec1-879b-13f95de9d66d","savedPayload":{"position":{"x":33352.65114513124,"y":19244.406063019236},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7a473c6b-849a-46f7-befa-661675c6b6a7","savedPayload":{"position":{"x":33341.161647513414,"y":19287.046151460163},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7e05bfad-d3ba-4170-bb97-b02911c65b81","savedPayload":{"position":{"x":33325.54801543463,"y":19328.3547485202},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderCounters\"\n}","project":"Superalgos","id":"e86cdc19-1330-4dbd-b0d9-6300bb84b504","savedPayload":{"position":{"x":33305.960616707096,"y":19367.934029828088},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"dc8ff39f-2ebf-4097-a324-69714556e67e","savedPayload":{"position":{"x":33282.58808868812,"y":19405.402825268593},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"e9f153ec-763f-45ce-ab8e-9095762a8b5c","savedPayload":{"position":{"x":33255.65552159924,"y":19440.40028985909},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"45ca3d8c-ba98-4ff9-8825-d515ad54d235","savedPayload":{"position":{"x":33225.422290784365,"y":19472.589378884026},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lock","config":"{\n \"codeName\": \"lock\",\n \"isString\": true\n}","project":"Superalgos","id":"0952905d-7adc-497d-859c-9bf80bd5753c","savedPayload":{"position":{"x":33192.17955878342,"y":19501.66009381973},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"7becceb8-d380-4e4e-b5ce-70b63b32445f","savedPayload":{"position":{"x":33156.24747127788,"y":19527.332467789714},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"4deb6a9d-3914-4a70-b2f5-992a09504eec","savedPayload":{"position":{"x":33117.97207391291,"y":19549.35926179869},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"3213e0e6-5b5f-4e9a-b67e-33f596bad152","savedPayload":{"position":{"x":33077.72197968859,"y":19567.52834577929},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"737e90c6-6468-4873-a786-8e998b39163b","savedPayload":{"position":{"x":33035.88481901525,"y":19581.66474152054},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"08461bfb-7f11-40d4-96a8-0b84ab258efe","savedPayload":{"position":{"x":32992.86350662069,"y":19591.63230780372},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"1c6d07ec-602d-412b-b384-b9170f8bb8de","savedPayload":{"position":{"x":32949.072361261104,"y":19597.335051516693},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"bb16c953-c112-4828-8f29-6604be02b427","savedPayload":{"position":{"x":32904.93311560498,"y":19598.718052120064},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"a698c86e-8997-4053-9bd7-222876eb9a74","savedPayload":{"position":{"x":32860.870854716966,"y":19595.767990562006},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"07aef603-7b78-4446-b0e2-03c365d5941c","savedPayload":{"position":{"x":32817.309922256274,"y":19588.51327754798},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Base Asset","config":"{\n \"codeName\": \"actualSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"d28dd916-3d2e-459c-9899-4dc31385242d","savedPayload":{"position":{"x":32774.66983381535,"y":19577.02377993015},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Quoted Asset","config":"{\n \"codeName\": \"actualSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"b5bedab9-5eb2-4334-9c65-901f03abf58c","savedPayload":{"position":{"x":32733.36123675531,"y":19561.410147851366},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Base Asset","config":"{\n \"codeName\": \"amountReceivedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"0c5084c6-c8cd-4985-8971-2055b7e81781","savedPayload":{"position":{"x":32693.781955447423,"y":19541.822749123832},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Quoted Asset","config":"{\n \"codeName\": \"amountReceivedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"980d1de1-2e7e-434c-88c8-e0990cefff6d","savedPayload":{"position":{"x":32656.313160006917,"y":19518.450221104853},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Base Asset","config":"{ \n\"codeName\": \"feesToBePaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"cc86032e-ef23-4fbd-920a-11e92467a2f8","savedPayload":{"position":{"x":32621.31569541642,"y":19491.517654015974},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesToBePaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"5c1dcd41-a39e-4933-b591-3a8f1c2d8de9","savedPayload":{"position":{"x":32589.126606391485,"y":19461.284423201105},"targetPosition":{"x":32912.92692642938,"y":19148.789058846123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d3c594aa-6573-44f7-b93e-2bd2b0d4134e","savedPayload":{"position":{"x":32912.92692642938,"y":19148.789058846123},"targetPosition":{"x":32633.674294075357,"y":18795.918023872517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"4c827ee0-a29b-4b65-8438-03e2ea98b410","savedPayload":{"position":{"x":32633.674294075357,"y":18795.918023872517},"targetPosition":{"x":32240.64060379765,"y":18576.773052890552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Limit Buy Orders","id":"17ec46bd-e5c0-48d5-a3b6-e108cc835f17"}}},{"type":"Product Definition","name":"Limit Sell Orders","config":"{ \n \"codeName\": \"Limit-Sell-Orders\", \n \"singularVariableName\": \"limitSellOrder\", \n \"pluralVariableName\": \"limitSellOrders\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"f645108f-4648-497f-b361-0be5b84c233a","savedPayload":{"position":{"x":32689.732192879168,"y":19065.165671538474},"targetPosition":{"x":32499.6682833562,"y":18944.746776439548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"e98191d1-5b13-42eb-bd52-31e3c6830188","savedPayload":{"position":{"x":32629.182123135477,"y":19128.733638214046},"targetPosition":{"x":32499.6682833562,"y":18944.746776439548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"5d3f01ca-9d2b-4446-906c-0f9dfcf8016f","savedPayload":{"position":{"x":33044.78986171716,"y":19328.85536348067},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"ef7f6f85-9aac-4eb1-935e-84c03beb5ae0","savedPayload":{"position":{"x":33048.028244854024,"y":19372.897372658488},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"68c5cf4d-ee84-4d53-be73-923d6ec0c070","savedPayload":{"position":{"x":33046.93416249697,"y":19417.04472457858},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"f551a912-c93a-49a5-8ec6-b23845504195","savedPayload":{"position":{"x":33041.51815125717,"y":19460.87225610855},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"5ca3123d-351b-4b1b-9bdd-2be83cb30d4b","savedPayload":{"position":{"x":33031.83237028358,"y":19503.957884161206},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"a4d2dcb3-66b5-4689-9ff5-6e79ca264c3a","savedPayload":{"position":{"x":33017.97009894173,"y":19545.886670585394},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"74cfaaa3-4241-4585-bb78-afe6ab4fad13","savedPayload":{"position":{"x":33000.064838482554,"y":19586.25481824725},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e79e457e-0f39-4444-b196-e2ab8e9d51b3","savedPayload":{"position":{"x":32978.28902635228,"y":19624.67355981731},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"26467972-56e9-445c-84cc-043cf332e7cf","savedPayload":{"position":{"x":32952.85237552559,"y":19660.77290181244},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"259e069d-8c48-4b18-b3be-876eb376edfd","savedPayload":{"position":{"x":32923.99985485503,"y":19694.205187835312},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"ab79d27c-63b2-4b9c-986c-69551d4acda6","savedPayload":{"position":{"x":32892.00932988705,"y":19724.648446695588},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderCounters\"\n}","project":"Superalgos","id":"df8ad782-de40-443e-9c25-0c9fd06c0ddd","savedPayload":{"position":{"x":32857.1888868649,"y":19751.809493168457},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"2adf7743-fa8c-484c-b2b2-16c144f2aa8c","savedPayload":{"position":{"x":32819.87386568967,"y":19775.42675152865},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"fd5472c9-a36f-4281-891d-57380ca2ef6c","savedPayload":{"position":{"x":32780.42363041373,"y":19795.27277466765},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"87559a66-ff26-4cfb-b9db-baa312369ee1","savedPayload":{"position":{"x":32739.218108368503,"y":19811.156434533696},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lock","config":"{\n \"codeName\": \"lock\",\n \"isString\": true\n}","project":"Superalgos","id":"aee3133b-1078-4262-84da-01e16ab7d491","savedPayload":{"position":{"x":32696.654131256495,"y":19822.924762799375},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"84f5a086-9b8d-4296-bba1-bccfc56fb263","savedPayload":{"position":{"x":32653.14161344514,"y":19830.464424030273},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"8bf3e674-bbc9-4ff6-bcba-c9487d5215a3","savedPayload":{"position":{"x":32609.09960426732,"y":19833.70280716714},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"1d59f7dc-e3c9-4456-8980-3fded2a58f1a","savedPayload":{"position":{"x":32564.95225234723,"y":19832.60872481008},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"8a2fa2ac-a644-46bd-ad48-8acd59807416","savedPayload":{"position":{"x":32521.124720817257,"y":19827.19271357029},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"fd203e76-3248-4806-98bc-3dd66c8c4964","savedPayload":{"position":{"x":32478.039092764604,"y":19817.506932596687},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2967221c-0ec9-41e4-8185-689147f647eb","savedPayload":{"position":{"x":32436.110306340415,"y":19803.644661254846},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"996a2f7a-28d7-4bbd-9695-3d29119b3008","savedPayload":{"position":{"x":32395.74215867856,"y":19785.73940079567},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4056be3b-3774-4537-8902-06ecf35d9958","savedPayload":{"position":{"x":32357.3234171085,"y":19763.963588665392},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\",\n \"decimals\": 10\n}","project":"Superalgos","id":"ed176195-45a7-4fa0-92d0-ac7a4feab4bc","savedPayload":{"position":{"x":32321.22407511337,"y":19738.526937838702},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Base Asset","config":"{\n \"codeName\": \"actualSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"d4610df3-78d9-49fc-8218-be21473b12b6","savedPayload":{"position":{"x":32287.791789090494,"y":19709.674417168142},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Quoted Asset","config":"{\n \"codeName\": \"actualSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"f0112290-2f1b-42cc-ab0e-51601b9b44e0","savedPayload":{"position":{"x":32257.34853023022,"y":19677.683892200166},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Base Asset","config":"{\n \"codeName\": \"amountReceivedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"aa23a704-83fd-4c85-a429-7c6228e6c373","savedPayload":{"position":{"x":32230.187483757352,"y":19642.863449178014},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Quoted Asset","config":"{\n \"codeName\": \"amountReceivedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"0f2548c2-6dfd-4858-94f2-4c711909dc60","savedPayload":{"position":{"x":32206.57022539716,"y":19605.54842800278},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Base Asset","config":"{ \n\"codeName\": \"feesToBePaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"3f1abc5c-e271-453b-ad96-755d827b8e79","savedPayload":{"position":{"x":32186.72420225816,"y":19566.098192726848},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesToBePaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"dc782a78-4e32-4e52-9e9e-c57770f06536","savedPayload":{"position":{"x":32170.840542392114,"y":19524.892670681616},"targetPosition":{"x":32598.161207306348,"y":19383.83576961946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"38241371-e97c-4eb5-989e-26605c078620","savedPayload":{"position":{"x":32598.161207306348,"y":19383.83576961946},"targetPosition":{"x":32499.6682833562,"y":18944.746776439548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"2c753cd8-36d8-466c-bd80-1ebfa8e314dc","savedPayload":{"position":{"x":32499.6682833562,"y":18944.746776439548},"targetPosition":{"x":32240.64060379765,"y":18576.773052890552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Limit Sell Orders","id":"1ec8da3f-8749-430d-8ad9-35fffc0d61ec"}}},{"type":"Product Definition","name":"Last Market Order","config":"{ \n \"codeName\": \"Last-Market-Order\", \n \"singularVariableName\": \"lastMarketOrder\", \n \"pluralVariableName\": \"lastMarketOrders\",\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"768b42e9-59fe-494f-9e05-3be57fb17ca8","savedPayload":{"position":{"x":32433.35252886055,"y":19211.6531354826},"targetPosition":{"x":32314.35866393446,"y":19020.693820156135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"26a39916-4f2d-42ab-ae86-7ab622f80624","savedPayload":{"position":{"x":32351.217694002866,"y":19242.654203788927},"targetPosition":{"x":32314.35866393446,"y":19020.693820156135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"8dbd8444-1037-4ab0-888b-dd49ffbfdc8b","savedPayload":{"position":{"x":32638.837765286953,"y":19603.28308766709},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"db3b180d-b86f-4749-a8a7-8d5d7689f032","savedPayload":{"position":{"x":32622.646336055288,"y":19644.368648600295},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"fbef9773-d1c5-4ac2-9ce3-287dd94fd114","savedPayload":{"position":{"x":32602.50578378943,"y":19683.669333736645},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"b9f73cfb-1c24-4ce7-a9ac-184841d1e16a","savedPayload":{"position":{"x":32578.610073017648,"y":19720.806655994336},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"9e7d08f0-4218-447b-8a13-54211abc880c","savedPayload":{"position":{"x":32551.189332497397,"y":19755.422962658704},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f8dafa7f-c43a-4dc9-909a-85eb44e49dbd","savedPayload":{"position":{"x":32520.50763894959,"y":19787.18487977337},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"1a84e99a-ccb0-4483-90c6-f99c396b0dc8","savedPayload":{"position":{"x":32486.860473855417,"y":19815.786522713686},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b098ae78-9591-4d50-8c01-09d5775d27ff","savedPayload":{"position":{"x":32450.571877808135,"y":19840.952442022895},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"9bd09a1b-af71-4467-b571-6815ddc01c7d","savedPayload":{"position":{"x":32411.99132982505,"y":19862.440276140955},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"c9301d25-01f7-4ae9-bd3b-184eedac1998","savedPayload":{"position":{"x":32371.490381673517,"y":19880.043085478865},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"89ad4f68-83b2-4f5b-9aa5-1db1815b12fd","savedPayload":{"position":{"x":32329.459079624296,"y":19893.591345360026},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderCounters\"\n}","project":"Superalgos","id":"10fdf7b0-2fb7-4692-86fe-0d5481e90b93","savedPayload":{"position":{"x":32286.302208092773,"y":19902.95457863555},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"e5946038-66fd-4f81-a503-ac98a61095bb","savedPayload":{"position":{"x":32242.43539134374,"y":19908.04261225053},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderStatistics\"\n}","project":"Superalgos","id":"9b802d6d-35f2-4535-8062-e3dc2b782574","savedPayload":{"position":{"x":32198.281090802535,"y":19908.806445659855},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"8dba345d-5995-4973-a80f-99cd5c07d106","savedPayload":{"position":{"x":32154.264536520564,"y":19905.23872273023},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lock","config":"{\n \"codeName\": \"lock\",\n \"isString\": true\n}","project":"Superalgos","id":"8255158c-b589-4b7b-9f8e-c66ec0ee1ed3","savedPayload":{"position":{"x":32110.80963197746,"y":19897.373802583796},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"9b78302a-2d32-45e1-84c9-7fa34ea3f378","savedPayload":{"position":{"x":32068.334871658837,"y":19885.287428700958},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"bb170388-df93-4218-a35b-dcf7a42d261b","savedPayload":{"position":{"x":32027.24931072563,"y":19869.09599946929},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"6067ba50-8879-4d74-8bc6-11b77677fbea","savedPayload":{"position":{"x":31987.94862558928,"y":19848.955447203436},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"5bdb31c2-8bfb-4ac9-8492-3d3d76c20e71","savedPayload":{"position":{"x":31950.81130333159,"y":19825.059736431653},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"eaf268d2-5576-4da0-9d30-708bd68f7a9c","savedPayload":{"position":{"x":31916.194996667222,"y":19797.638995911402},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"a050f0e0-b844-4c9f-ad32-85af779a59d5","savedPayload":{"position":{"x":31884.433079552557,"y":19766.957302363597},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"fb89644d-9ce1-4ee5-8b4a-ccbcff36ac8b","savedPayload":{"position":{"x":31855.83143661224,"y":19733.310137269422},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"fd00ddf7-d367-4ea6-a289-a29a15b41aab","savedPayload":{"position":{"x":31830.66551730303,"y":19697.02154122214},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"9e87631f-fcf4-4d3d-837d-82e7d12bf94f","savedPayload":{"position":{"x":31809.17768318497,"y":19658.440993239055},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Base Asset","config":"{\n \"codeName\": \"actualSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderBaseAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"d8d0f0b6-9164-4166-af6b-adac7a1891b2","savedPayload":{"position":{"x":31791.57487384706,"y":19617.940045087522},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Quoted Asset","config":"{\n \"codeName\": \"actualSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderQuotedAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"1bf66ce6-4819-4d7d-8853-f1f85d6c9c32","savedPayload":{"position":{"x":31778.0266139659,"y":19575.9087430383},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Base Asset","config":"{\n \"codeName\": \"amountReceivedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderBaseAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"20ae12e0-bde2-4e56-9df1-afec37006b55","savedPayload":{"position":{"x":31768.663380690377,"y":19532.751871506778},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Quoted Asset","config":"{\n \"codeName\": \"amountReceivedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderQuotedAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"fa076306-c699-4067-bcf2-0890b5b72748","savedPayload":{"position":{"x":31763.575347075395,"y":19488.885054757746},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Base Asset","config":"{ \n\"codeName\": \"feesToBePaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderBaseAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"17fef0b6-4279-4fda-8d40-015ec3f52529","savedPayload":{"position":{"x":31762.81151366607,"y":19444.73075421654},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesToBePaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.marketOrders.orderQuotedAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"0336d6d0-3d2d-4a87-b7b3-cd48c43c157d","savedPayload":{"position":{"x":31766.379236595694,"y":19400.71419993457},"targetPosition":{"x":32212.58414795596,"y":19459.033811369965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9292833c-b6ec-4734-b6ec-552aeecb540d","savedPayload":{"position":{"x":32212.58414795596,"y":19459.033811369965},"targetPosition":{"x":32314.35866393446,"y":19020.693820156135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"6df1ac87-92d5-4788-b0bc-f3543b283ef0","savedPayload":{"position":{"x":32314.35866393446,"y":19020.693820156135},"targetPosition":{"x":32240.64060379765,"y":18576.773052890552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Last Market Order","id":"05aa37c8-9f6d-4276-96a6-3123707e7686"}}},{"type":"Product Definition","name":"Last Limit Order","config":"{ \n \"codeName\": \"Last-Limit-Order\", \n \"singularVariableName\": \"lastLimitOrder\", \n \"pluralVariableName\": \"lastLimitOrders\",\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"f9263cd7-460d-461c-be7b-ed2a69d38d11","savedPayload":{"position":{"x":32138.803904626562,"y":19232.39481277614},"targetPosition":{"x":32114.448278609947,"y":19008.716911584852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"f3d5b047-d9c2-4e71-8fce-6e9be3499556","savedPayload":{"position":{"x":32051.352116016096,"y":19224.688840932},"targetPosition":{"x":32114.448278609947,"y":19008.716911584852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"f5ab0d81-63ce-48d6-99f8-51c6bf2a6e97","savedPayload":{"position":{"x":32154.017837456086,"y":19674.39791014662},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"6e9e3c64-3e53-4049-b251-3a9e1e63b24c","savedPayload":{"position":{"x":32121.603506990064,"y":19704.389523611055},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"53856545-fe51-4ec7-bbb0-e398eb6fdbd0","savedPayload":{"position":{"x":32086.405568199327,"y":19731.05955928114},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"4b0399dd-39b4-4ef5-9c57-48f7a2465581","savedPayload":{"position":{"x":32048.76299647557,"y":19754.151170134046},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\"\n}","project":"Superalgos","id":"552cb522-d091-446c-b0c7-8644d9a39e9c","savedPayload":{"position":{"x":32009.03831036202,"y":19773.441971334105},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"34b51b42-1c7f-4691-81ff-e3baba398a2c","savedPayload":{"position":{"x":31967.61408030167,"y":19788.746181920334},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"4b2251b9-462f-4b9b-850c-2848dac1d08b","savedPayload":{"position":{"x":31924.889244274793,"y":19799.91641397865},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"22e3ead2-3ec4-437f-99d4-eb1cf2465f34","savedPayload":{"position":{"x":31881.275265808097,"y":19806.845092068073},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f1ba05d1-f727-4495-9bf9-aeb656da4e7b","savedPayload":{"position":{"x":31837.192171356044,"y":19809.46548923099},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"53acfd34-51ce-49b9-b42a-03706b2e7a86","savedPayload":{"position":{"x":31793.064505216473,"y":19807.752369610276},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"1f8cb548-32a3-49c3-b1b1-20eb6130c58c","savedPayload":{"position":{"x":31749.317240936947,"y":19801.72223148436},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderCounters\"\n}","project":"Superalgos","id":"d4c99d02-1038-4ee5-8f67-6804d89ab65e","savedPayload":{"position":{"x":31706.371688587165,"y":19791.4331483798},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"fbd59c15-2863-4257-9211-7492ebb69c93","savedPayload":{"position":{"x":31664.641437312686,"y":19776.984209791488},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderStatistics\"\n}","project":"Superalgos","id":"ead97685-20c5-44a7-b86c-33e7a55e416a","savedPayload":{"position":{"x":31624.528372245353,"y":19758.51456689661},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"97b1f010-04b2-4016-b313-48ea865b49a4","savedPayload":{"position":{"x":31586.418804129797,"y":19736.20209245279},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Lock","config":"{\n \"codeName\": \"lock\",\n \"isString\": true\n}","project":"Superalgos","id":"eba510cb-b866-45ba-984e-153216f4f3c6","savedPayload":{"position":{"x":31550.679748939787,"y":19710.26166778615},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"af94d067-ae2f-4610-b546-6d97904957e2","savedPayload":{"position":{"x":31517.655393313747,"y":19680.94311336672},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"839364f2-db1b-4bfd-b61c-015e70f5d171","savedPayload":{"position":{"x":31487.663779849314,"y":19648.5287829007},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"919ab388-ca0a-4d89-b0ea-929090ef1bf8","savedPayload":{"position":{"x":31460.993744179228,"y":19613.33084410996},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"1cd292aa-6c43-44ad-90e3-6f49f71be40f","savedPayload":{"position":{"x":31437.902133326323,"y":19575.688272386204},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"9abd9e70-fad1-4da5-86b8-fb5e1daf6a2a","savedPayload":{"position":{"x":31418.611332126264,"y":19535.963586272654},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3819475a-dec6-4cd3-8d9a-c10a9193d592","savedPayload":{"position":{"x":31403.307121540034,"y":19494.539356212306},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"034fc727-1072-4cbf-8540-693d0a34d4e6","savedPayload":{"position":{"x":31392.136889481717,"y":19451.814520185428},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"598761f1-33e1-4edb-bff9-33b2b8ba2933","savedPayload":{"position":{"x":31385.208211392295,"y":19408.200541718732},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"182d9d37-1cef-43ed-93c8-7b9bebdf150f","savedPayload":{"position":{"x":31382.587814229377,"y":19364.117447266675},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Base Asset","config":"{\n \"codeName\": \"actualSizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderBaseAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4fbfcb6e-829f-47ae-817c-9c1c000319d7","savedPayload":{"position":{"x":31384.300933850092,"y":19319.989781127108},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Size In Quoted Asset","config":"{\n \"codeName\": \"actualSizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderQuotedAsset\",\n \"childProperty\": \"actualSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"a8b9518b-c4b5-4778-81b1-9fe05ac07f03","savedPayload":{"position":{"x":31390.33107197601,"y":19276.242516847582},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Base Asset","config":"{\n \"codeName\": \"amountReceivedInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderBaseAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"5cb701a7-772c-4f2f-8807-a0914f6e9bbc","savedPayload":{"position":{"x":31400.620155080567,"y":19233.2969644978},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Amount Received In Quoted Asset","config":"{\n \"codeName\": \"amountReceivedInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderQuotedAsset\",\n \"childProperty\": \"amountReceived\",\n \"decimals\": 10\n}","project":"Superalgos","id":"c35a38b3-480a-4414-9b5e-c31f34a902f1","savedPayload":{"position":{"x":31415.06909366888,"y":19191.56671322332},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Base Asset","config":"{ \n\"codeName\": \"feesToBePaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderBaseAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"d252669b-695b-4862-a3ce-4d6cecb2aa73","savedPayload":{"position":{"x":31433.538736563758,"y":19151.453648155988},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees To Be Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesToBePaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingLast.limitOrders.orderQuotedAsset\",\n \"childProperty\": \"feesToBePaid\"\n}","project":"Superalgos","id":"5c4ac5b8-307a-4316-bea0-75b90976d070","savedPayload":{"position":{"x":31455.85121100758,"y":19113.34408004043},"targetPosition":{"x":31832.564013774867,"y":19359.4892896855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e82595f6-184f-4a0c-8385-1364f22ea8e0","savedPayload":{"position":{"x":31832.564013774867,"y":19359.4892896855},"targetPosition":{"x":32114.448278609947,"y":19008.716911584852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"c24ec6a1-e937-4d20-93eb-4faf2a0becc3","savedPayload":{"position":{"x":32114.448278609947,"y":19008.716911584852},"targetPosition":{"x":32240.64060379765,"y":18576.773052890552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Last Limit Order","id":"2284d48f-cf52-4277-b81e-c62afef88b71"}}}],"productDefinitionFolders":[],"id":"1e82c85a-37f7-4610-a982-e14ab71a5286","savedPayload":{"position":{"x":32240.64060379765,"y":18576.773052890552},"targetPosition":{"x":31906.22543233282,"y":18275.664280029065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"db019824-6897-461b-b39b-ebe905a84231","savedPayload":{"position":{"x":31906.22543233282,"y":18275.664280029065},"targetPosition":{"x":31478.25,"y":18414.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Trading System","project":"Superalgos","products":[{"type":"Product Definition","name":"Trading System Errors","config":"{\n \"codeName\": \"Trading-System-Errors\",\n \"singularVariableName\": \"tradingSystemError\",\n \"pluralVariableName\": \"tradingSystemErrors\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"errors\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"2ef33675-fc52-49fd-a8ef-bc5da1711dd1","savedPayload":{"position":{"x":32223.254002732014,"y":17970.938695408313},"targetPosition":{"x":32170.728795864434,"y":18189.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"2d0dd4c2-4f4c-4d8c-b9a5-9ca62f186369","savedPayload":{"position":{"x":32302.98047763024,"y":18007.693103763428},"targetPosition":{"x":32170.728795864434,"y":18189.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"214b7654-8ea4-4b39-8f2d-8fb64d9a4b23","savedPayload":{"position":{"x":32415.098039711684,"y":17853.376518347224},"targetPosition":{"x":32362.572832844104,"y":18072.159750436702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"6efbb2e5-0be8-42c2-99c6-0f9ebe42b174","savedPayload":{"position":{"x":32554.416869823774,"y":17954.597573375613},"targetPosition":{"x":32362.572832844104,"y":18072.159750436702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Errors","config":"{\n \"codeName\": \"errors\",\n \"isString\": false\n}","project":"Superalgos","id":"e994737a-9a14-40f0-8ad0-a151c799a094","savedPayload":{"position":{"x":32581.35606493358,"y":18124.684957304282},"targetPosition":{"x":32362.572832844104,"y":18072.159750436702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cbcd5cb4-66b1-4535-9592-0164a480b7f7","savedPayload":{"position":{"x":32362.572832844104,"y":18072.159750436702},"targetPosition":{"x":32170.728795864434,"y":18189.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"1d9c570d-77c7-40ac-a61e-c5a57a411de8","savedPayload":{"position":{"x":32170.728795864434,"y":18189.72192749779},"targetPosition":{"x":31906.22543233282,"y":18553.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Errors","id":"64684730-d049-4d3c-8013-b48c5438417e"}}},{"type":"Product Definition","name":"Trading System Highlights","config":"{\n \"codeName\": \"Trading-System-Highlights\",\n \"singularVariableName\": \"tradingSystemHighlight\",\n \"pluralVariableName\": \"tradingSystemHighlights\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"highlights\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"6e0f951c-25e7-4b92-85da-8be04d424bd0","savedPayload":{"position":{"x":32387.845256862634,"y":18097.432174455233},"targetPosition":{"x":32270.283079801546,"y":18289.276211434903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"fa53ecfb-a558-4810-b6f8-1f9c6c8bfc5b","savedPayload":{"position":{"x":32452.31190353591,"y":18157.024529669096},"targetPosition":{"x":32270.283079801546,"y":18289.276211434903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"9fefb3c2-2293-4ffa-8db8-9430dd662bcf","savedPayload":{"position":{"x":32606.628488952112,"y":18044.906967587653},"targetPosition":{"x":32489.066311891023,"y":18236.751004567323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"431d65d9-1f6d-4e73-8655-cbf36854d3cf","savedPayload":{"position":{"x":32707.8495439805,"y":18184.225797699743},"targetPosition":{"x":32489.066311891023,"y":18236.751004567323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Highlights","config":"{\n \"codeName\": \"highlights\",\n \"isString\": false\n}","project":"Superalgos","id":"6355df8f-6845-4652-8ebc-90468c526949","savedPayload":{"position":{"x":32680.910348870693,"y":18354.31318162841},"targetPosition":{"x":32489.066311891023,"y":18236.751004567323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"af6916b9-83d1-478b-ac92-35ea4f9b8a46","savedPayload":{"position":{"x":32489.066311891023,"y":18236.751004567323},"targetPosition":{"x":32270.283079801546,"y":18289.276211434903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"319f660a-78be-4cf4-8052-877837cad806","savedPayload":{"position":{"x":32270.283079801546,"y":18289.276211434903},"targetPosition":{"x":31906.22543233282,"y":18553.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Highlights","id":"d979c9f0-530a-41d3-a357-b57a3e4f2201"}}},{"type":"Product Definition","name":"Trading System Values","config":"{\n \"codeName\": \"Trading-System-Values\",\n \"singularVariableName\": \"tradingSystemValue\",\n \"pluralVariableName\": \"tradingSystemValues\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"values\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"9c4ec2f8-f4a8-45b9-aba3-b093a7b8f86a","savedPayload":{"position":{"x":32505.292206925646,"y":18268.5961166235},"targetPosition":{"x":32334.20086466564,"y":18414.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"b3d3fe62-e714-4cb9-a78d-55bc0add1d7c","savedPayload":{"position":{"x":32548.188580832048,"y":18345.193103763428},"targetPosition":{"x":32334.20086466564,"y":18414.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"956e9238-3cd9-4258-9295-77d3ad473508","savedPayload":{"position":{"x":32729.5986070156,"y":18286.249413162266},"targetPosition":{"x":32558.507264755593,"y":18432.375224036557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"dbb03ed7-1d1f-4105-b559-eac7b4d8d4d9","savedPayload":{"position":{"x":32782.81366484555,"y":18450.028520575324},"targetPosition":{"x":32558.507264755593,"y":18432.375224036557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Values","config":"{\n \"codeName\": \"values\",\n \"isString\": false,\n \"decimals\": 10\n}","project":"Superalgos","id":"2349e00c-f032-432b-8c9a-07c1606574e8","savedPayload":{"position":{"x":32704.633075629885,"y":18603.466566296564},"targetPosition":{"x":32558.507264755593,"y":18432.375224036557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a65db5f6-3b75-435d-8155-2e2c7af39279","savedPayload":{"position":{"x":32558.507264755593,"y":18432.375224036557},"targetPosition":{"x":32334.20086466564,"y":18414.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"c90c009b-588d-45d4-aff1-05e375181dfa","savedPayload":{"position":{"x":32334.20086466564,"y":18414.72192749779},"targetPosition":{"x":31906.22543233282,"y":18553.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Values","id":"476925ed-e2ac-443d-82f3-501b64ca6c87"}}},{"type":"Product Definition","name":"Trading System Status","config":"{\n \"codeName\": \"Trading-System-Status\",\n \"singularVariableName\": \"tradingSystemState\",\n \"pluralVariableName\": \"tradingSystemStatus\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"status\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"2b83dc93-dc14-44d9-8f8c-889f39a952da","savedPayload":{"position":{"x":32564.098327147858,"y":18467.67580268437},"targetPosition":{"x":32356.22543233282,"y":18553.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0f8dcda3-1eab-439d-956c-c6eb9b1c481f","savedPayload":{"position":{"x":32581.22543233282,"y":18553.779574966517},"targetPosition":{"x":32356.22543233282,"y":18553.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"214b03c2-5fc3-4157-bcfd-4796b0565d98","savedPayload":{"position":{"x":32771.9712219629,"y":18553.779574966517},"targetPosition":{"x":32564.098327147858,"y":18639.883347248662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"78c4b87a-592d-49ca-9c8c-f5d0dae8d7ba","savedPayload":{"position":{"x":32771.9712219629,"y":18725.987119530808},"targetPosition":{"x":32564.098327147858,"y":18639.883347248662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{\n \"codeName\": \"status\",\n \"isString\": false\n}","project":"Superalgos","id":"fdb4b903-20ff-4a67-a03f-f02e67b5d81b","savedPayload":{"position":{"x":32650.202099430004,"y":18847.7562420637},"targetPosition":{"x":32564.098327147858,"y":18639.883347248662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04b0fd4c-df6f-40df-9567-60a735d126e6","savedPayload":{"position":{"x":32564.098327147858,"y":18639.883347248662},"targetPosition":{"x":32356.22543233282,"y":18553.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"eed48c80-35c5-49fa-b12d-18e7280ffb8f","savedPayload":{"position":{"x":32356.22543233282,"y":18553.779574966517},"targetPosition":{"x":31906.22543233282,"y":18553.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Status","id":"0437448d-8740-496b-8fce-d3804be81a2b"}}},{"type":"Product Definition","name":"Trading System Progress","config":"{\n \"codeName\": \"Trading-System-Progress\",\n \"singularVariableName\": \"tradingSystemProgress\",\n \"pluralVariableName\": \"tradingSystemProgresses\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"progress\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"77735fc0-9ce6-4dec-a3ad-8075a22eda40","savedPayload":{"position":{"x":32558.507264755593,"y":18675.183925896476},"targetPosition":{"x":32334.20086466564,"y":18692.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"2fde11bd-4515-4a4e-9dc0-f6869dd3a04e","savedPayload":{"position":{"x":32548.188580832048,"y":18762.366046169605},"targetPosition":{"x":32334.20086466564,"y":18692.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"076e6f4d-1b05-42e1-abc6-c50c935ef056","savedPayload":{"position":{"x":32729.5986070156,"y":18821.309736770767},"targetPosition":{"x":32505.292206925646,"y":18838.963033309534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"280a33ea-29cc-41ab-9ffc-31c38a8e8d60","savedPayload":{"position":{"x":32676.38354918565,"y":18985.088844183825},"targetPosition":{"x":32505.292206925646,"y":18838.963033309534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Progress","config":"{\n \"codeName\": \"progress\",\n \"isString\": false\n}","project":"Superalgos","id":"5964f3e5-82af-47de-9492-19c634d4f5ad","savedPayload":{"position":{"x":32522.945503464412,"y":19063.269433399488},"targetPosition":{"x":32505.292206925646,"y":18838.963033309534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"218da162-dd8c-4f77-9150-3d2eee6e6e0d","savedPayload":{"position":{"x":32505.292206925646,"y":18838.963033309534},"targetPosition":{"x":32334.20086466564,"y":18692.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"04c8606b-5e59-4e7d-b3ac-387bfffcd300","savedPayload":{"position":{"x":32334.20086466564,"y":18692.837222435242},"targetPosition":{"x":31906.22543233282,"y":18553.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Progress","id":"99aecc8d-2bc4-4748-b642-78888c2d35eb"}}},{"type":"Product Definition","name":"Trading System Running","config":"{\n \"codeName\": \"Trading-System-Running\",\n \"singularVariableName\": \"tradingSystemRun\",\n \"pluralVariableName\": \"tradingSystemRunning\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"running\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"c7b45884-6cdf-43f7-a1e5-c5325effd207","savedPayload":{"position":{"x":32489.066311891023,"y":18870.80814536571},"targetPosition":{"x":32270.283079801546,"y":18818.28293849813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a21cbc62-e6d8-4286-b0ff-430071d46700","savedPayload":{"position":{"x":32452.31190353591,"y":18950.534620263938},"targetPosition":{"x":32270.283079801546,"y":18818.28293849813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"42cccc8c-a020-4cb2-8a40-4d3dacc86597","savedPayload":{"position":{"x":32606.628488952112,"y":19062.65218234538},"targetPosition":{"x":32387.845256862634,"y":19010.1269754778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"7fc1205e-ad17-40d0-bb05-21e8d1842b7c","savedPayload":{"position":{"x":32505.407433923723,"y":19201.97101245747},"targetPosition":{"x":32387.845256862634,"y":19010.1269754778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Running","config":"{\n \"codeName\": \"running\",\n \"isString\": false\n}","project":"Superalgos","id":"7c7cb8f0-6d6d-4761-b51c-70ee77c05811","savedPayload":{"position":{"x":32335.320049995054,"y":19228.910207567278},"targetPosition":{"x":32387.845256862634,"y":19010.1269754778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f2bf57f0-e966-4b75-a95f-ba206c266dae","savedPayload":{"position":{"x":32387.845256862634,"y":19010.1269754778},"targetPosition":{"x":32270.283079801546,"y":18818.28293849813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"17236f59-6ef2-4cc3-913c-1ff6db052236","savedPayload":{"position":{"x":32270.283079801546,"y":18818.28293849813},"targetPosition":{"x":31906.22543233282,"y":18553.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Running","id":"ac1e8218-af24-491f-a552-736d83d68c01"}}},{"type":"Product Definition","name":"Trading System Announcements","config":"{\n \"codeName\": \"Trading-System-Announcements\",\n \"singularVariableName\": \"tradingSystemAnnouncement\",\n \"pluralVariableName\": \"tradingSystemAnnouncements\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"announcements\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"9e29a710-30c0-4faa-b71a-f4ee109673a2","savedPayload":{"position":{"x":32362.572832844104,"y":19035.39939949633},"targetPosition":{"x":32170.728795864434,"y":18917.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"b7e24195-a9d0-45e7-9dba-447db8000feb","savedPayload":{"position":{"x":32302.98047763024,"y":19099.866046169605},"targetPosition":{"x":32170.728795864434,"y":18917.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"0487c17a-d445-4d37-b186-dc0e79e0dae7","savedPayload":{"position":{"x":32415.098039711684,"y":19254.18263158581},"targetPosition":{"x":32223.254002732014,"y":19136.62045452472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"cb847e27-30fe-43af-9b5f-19de453cc5f7","savedPayload":{"position":{"x":32275.779209599594,"y":19355.403686614198},"targetPosition":{"x":32223.254002732014,"y":19136.62045452472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Announcements","config":"{\n \"codeName\": \"announcements\",\n \"isString\": false\n}","project":"Superalgos","id":"b3aaeae8-ed67-4830-a49c-13baada2bc11","savedPayload":{"position":{"x":32105.691825670925,"y":19328.46449150439},"targetPosition":{"x":32223.254002732014,"y":19136.62045452472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"73ef953c-001b-474e-9221-23375777f3f3","savedPayload":{"position":{"x":32223.254002732014,"y":19136.62045452472},"targetPosition":{"x":32170.728795864434,"y":18917.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"4a6f828a-9671-431e-8257-fc920943581e","savedPayload":{"position":{"x":32170.728795864434,"y":18917.837222435242},"targetPosition":{"x":31906.22543233282,"y":18553.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Announcements","id":"0a3b8bea-749a-48ce-8b53-e4a731555b98"}}},{"type":"Product Definition","name":"Trading System Warnings","config":"{\n \"codeName\": \"Trading-System-Warnings\",\n \"singularVariableName\": \"tradingSystemWarning\",\n \"pluralVariableName\": \"tradingSystemWarnings\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"warnings\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0381cc1b-24c3-4705-9c76-94129e8605ff","savedPayload":{"position":{"x":32191.408890675837,"y":19152.846349559342},"targetPosition":{"x":32045.283079801546,"y":18981.755007299336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"b93b5cc3-7d61-4071-8eba-de15a4fea64b","savedPayload":{"position":{"x":32114.81190353591,"y":19195.742723465744},"targetPosition":{"x":32045.283079801546,"y":18981.755007299336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"9de05c23-cce3-4229-bb5b-6d893a7caf2b","savedPayload":{"position":{"x":32173.75559413707,"y":19377.152749649296},"targetPosition":{"x":32027.62978326278,"y":19206.06140738929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"64348c8c-f29d-4dc0-9028-18f02e8b03a3","savedPayload":{"position":{"x":32009.976486724012,"y":19430.367807479244},"targetPosition":{"x":32027.62978326278,"y":19206.06140738929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Warnings","config":"{\n \"codeName\": \"warnings\",\n \"isString\": false\n}","project":"Superalgos","id":"0d7f3ba2-e9a0-42b0-aaca-02d1911fa209","savedPayload":{"position":{"x":31856.538441002773,"y":19352.18721826358},"targetPosition":{"x":32027.62978326278,"y":19206.06140738929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f6021fb9-4897-4984-8475-bf136233005e","savedPayload":{"position":{"x":32027.62978326278,"y":19206.06140738929},"targetPosition":{"x":32045.283079801546,"y":18981.755007299336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"34310596-466a-4e9a-a5a2-256b0fe3e339","savedPayload":{"position":{"x":32045.283079801546,"y":18981.755007299336},"targetPosition":{"x":31906.22543233282,"y":18553.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Warnings","id":"a9709093-95c1-4b1b-aeb5-329c7505ab75"}}},{"type":"Product Definition","name":"Trading System Infos","config":"{\n \"codeName\": \"Trading-System-Infos\",\n \"singularVariableName\": \"tradingSystemInfo\",\n \"pluralVariableName\": \"tradingSystemInfos\",\n \"nodePath\": \"tradingSystem\",\n \"propertyNameThatDefinesStatus\": \"infos\",\n \"propertyValueThatPreventsSavingObject\": \"->Empty Array->\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"cd834a3e-1b23-4e15-a068-59c235a90f89","savedPayload":{"position":{"x":31992.329204614965,"y":19211.652469781555},"targetPosition":{"x":31906.22543233282,"y":19003.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"e24a4dcf-5adb-4c63-b9db-3ba2a7ece789","savedPayload":{"position":{"x":31906.22543233282,"y":19228.779574966517},"targetPosition":{"x":31906.22543233282,"y":19003.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastBegin\"\n}","project":"Superalgos","id":"a3502c18-91c5-467b-aab5-deb330bf44bc","savedPayload":{"position":{"x":31906.22543233282,"y":19419.525364596593},"targetPosition":{"x":31820.121660050674,"y":19211.652469781555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.cycle\",\n \"childProperty\": \"lastEnd\"\n}","project":"Superalgos","id":"7b3f0c7c-1bb1-4477-af46-5cccfe2309cb","savedPayload":{"position":{"x":31734.01788776853,"y":19419.525364596593},"targetPosition":{"x":31820.121660050674,"y":19211.652469781555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Infos","config":"{\n \"codeName\": \"infos\",\n \"isString\": false\n}","project":"Superalgos","id":"2f73152b-cbcf-462d-ba3a-d35417d2ca9c","savedPayload":{"position":{"x":31612.248765235636,"y":19297.7562420637},"targetPosition":{"x":31820.121660050674,"y":19211.652469781555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"60ed1049-434c-45e8-9a49-e7561cdb3d6b","savedPayload":{"position":{"x":31820.121660050674,"y":19211.652469781555},"targetPosition":{"x":31906.22543233282,"y":19003.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"020ad519-0fc6-4f2f-9f26-b2c7de118fb8","savedPayload":{"position":{"x":31906.22543233282,"y":19003.779574966517},"targetPosition":{"x":31906.22543233282,"y":18553.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Infos","id":"f175df3b-a277-44bc-88db-dcf6b0e3fa38"}}}],"productDefinitionFolders":[],"id":"57d56564-1a8f-4ee9-acfb-389ec2d3375a","savedPayload":{"position":{"x":31906.22543233282,"y":18553.779574966517},"targetPosition":{"x":31478.25,"y":18414.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Simulation Objects","project":"Superalgos","products":[{"type":"Product Definition","name":"Episodes","config":"{\n \"codeName\": \"Episode-Objects\",\n \"singularVariableName\": \"episodeObject\",\n \"pluralVariableName\": \"episodeObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"38264ecd-10e7-4a62-a2ca-9b607c30e72c","savedPayload":{"position":{"x":32388.02206679628,"y":18624.38104543766},"targetPosition":{"x":32190.288216447338,"y":18731.741766496074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"cdc39b61-9aa5-46d5-9e80-915e0c2d545d","savedPayload":{"position":{"x":32414.055642905198,"y":18708.222862260853},"targetPosition":{"x":32190.288216447338,"y":18731.741766496074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"e7c507b1-7d60-4f5d-9213-4001c116852a","savedPayload":{"position":{"x":33407.29237834869,"y":18159.927643902327},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"387fc08a-670c-4ca7-a2b9-449d1abc17fb","savedPayload":{"position":{"x":33500.95682796331,"y":18206.627015808623},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"2cea2a9b-293e-4b6c-8266-25ab09d94a1c","savedPayload":{"position":{"x":33588.566485904914,"y":18263.88440217411},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"811f4049-1507-4cd0-a57b-8d38f0cefa79","savedPayload":{"position":{"x":33668.93658184281,"y":18330.92549507232},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"a25505b8-3a79-44c0-9a65-84c2acbde853","savedPayload":{"position":{"x":33740.980248103035,"y":18406.843678729714},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f06dc26f-dcd7-46d8-af5a-177db0354b16","savedPayload":{"position":{"x":33803.72321768916,"y":18490.612289948753},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"2c462bdb-cad9-4589-add4-10fdafa4b432","savedPayload":{"position":{"x":33856.3169995721,"y":18581.098501966397},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e3ea261e-5586-4578-97f6-e5d7139c6641","savedPayload":{"position":{"x":33898.05035307567,"y":18677.07864399275},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hits In Base Asset","config":"{ \n\"codeName\": \"hitsInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"hits\",\n \"decimals\": 0\n}","project":"Superalgos","id":"d4a1ae83-0774-49f5-8780-f3db92e7ac59","savedPayload":{"position":{"x":33928.35890618662,"y":18777.25474925929},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fails In Base Asset","config":"{ \n\"codeName\": \"failsInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"fails\",\n \"decimals\": 0\n}","project":"Superalgos","id":"39600b8b-e28f-4c5b-a44c-3a816c43a439","savedPayload":{"position":{"x":33946.83278771797,"y":18880.27210779278},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Ratio In Base Asset","config":"{ \n\"codeName\": \"hitRatioInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"hitRatio\",\n \"decimals\": 2\n}","project":"Superalgos","id":"f59830d2-1d39-47ff-b008-41c202c5f131","savedPayload":{"position":{"x":33953.222170113644,"y":18984.73758654368},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Base Asset","config":"{ \n\"codeName\": \"profitLossInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"02dfb7e5-a203-4c49-8ffc-6addba0f06c7","savedPayload":{"position":{"x":33947.44064793764,"y":19089.238469120723},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Base Asset","config":"{ \n\"codeName\": \"ROIInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"6bc1b577-8926-4c00-9091-3ddf6e86d105","savedPayload":{"position":{"x":33929.56640635927,"y":19192.361560356632},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Annualized Rate Of ReturnIn Base Asset","config":"{ \n\"codeName\": \"annualizedRateOfReturnInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"annualizedRateOfReturn\",\n \"decimals\": 2\n}","project":"Superalgos","id":"39e77c8f-3f22-45ea-8ad8-d28f7c0f3c0f","savedPayload":{"position":{"x":33899.8411638329,"y":19292.71229734845},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Base Asset","config":"{ \n\"codeName\": \"hitFailInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"e8384c2c-39b2-4d47-9828-f4968a6bc4e7","savedPayload":{"position":{"x":33858.66690327053,"y":19388.933608528434},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hits In Quoted Asset","config":"{ \n\"codeName\": \"hitsInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"hits\",\n \"decimals\": 0\n}","project":"Superalgos","id":"b31c6ade-c339-4129-ac5c-2383a9443c85","savedPayload":{"position":{"x":33806.6004359125,"y":19479.72426572898},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fails In Quoted Asset","config":"{ \n\"codeName\": \"failsInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"fails\",\n \"decimals\": 0\n}","project":"Superalgos","id":"0fe968f9-77ec-4258-bb12-7ac592665cf5","savedPayload":{"position":{"x":33744.345871410624,"y":19563.85648106136},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Ratio In Quoted Asset","config":"{ \n\"codeName\": \"hitRatioInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"hitRatio\",\n \"decimals\": 2\n}","project":"Superalgos","id":"5bbf2817-e7ed-4795-aecc-5ccefb04b6c1","savedPayload":{"position":{"x":33672.74509595309,"y":19640.192510640663},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Quoted Asset","config":"{ \n\"codeName\": \"profitLossInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"ae87f4f0-2dd4-4484-a803-b06096fbff58","savedPayload":{"position":{"x":33592.76638719799,"y":19707.700040620064},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Quoted Asset","config":"{ \n\"codeName\": \"ROIInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3dd87ddc-a9a9-4f94-8c14-ca651cb6b644","savedPayload":{"position":{"x":33505.491319979046,"y":19765.466147464664},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Annualized Rate Of ReturnIn Quoted Asset","config":"{ \n\"codeName\": \"annualizedRateOfReturnInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"annualizedRateOfReturn\",\n \"decimals\": 2\n}","project":"Superalgos","id":"8826c757-479b-498e-91ec-ccee35f9eef0","savedPayload":{"position":{"x":33412.10013986143,"y":19812.70964367622},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Quoted Asset","config":"{ \n\"codeName\": \"hitFailInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"aa3d008e-90a1-4e76-a389-68206925a8ee","savedPayload":{"position":{"x":33313.85580234516,"y":19848.79164201392},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Balance In Base Asset","config":"{ \n\"codeName\": \"beginBalanceInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"beginBalance\"\n}","project":"Superalgos","id":"a6826d46-bf05-4988-9314-8e41a3ecfce9","savedPayload":{"position":{"x":33212.086893558575,"y":19873.224195348343},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Balance In Base Asset","config":"{ \n\"codeName\": \"endBalanceInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset\",\n \"childProperty\": \"endBalance\"\n}","project":"Superalgos","id":"93c0d5a2-06cd-4bd9-bd2c-49fbab7d2bdb","savedPayload":{"position":{"x":33108.16966341008,"y":19885.676895309287},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Balance In Quoted Asset","config":"{ \n\"codeName\": \"beginBalanceInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"beginBalance\"\n}","project":"Superalgos","id":"fcf98b55-f145-484d-91ce-6e3417e3760d","savedPayload":{"position":{"x":33003.50941416911,"y":19885.981340492184},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Balance In Quoted Asset","config":"{ \n\"codeName\": \"endBalanceInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset\",\n \"childProperty\": \"endBalance\"\n}","project":"Superalgos","id":"e34b3fbc-a578-407d-ba84-055c56d52454","savedPayload":{"position":{"x":32899.52149616367,"y":19874.133413798216},"targetPosition":{"x":33053.22597782871,"y":18987.355576729606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b5c2e7b4-cec1-4975-9abb-af447f80c59e","savedPayload":{"position":{"x":33053.22597782871,"y":18987.355576729606},"targetPosition":{"x":32190.288216447338,"y":18731.741766496074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"aeec080e-8caf-4976-8187-ba4e725b73b0","savedPayload":{"position":{"x":32190.288216447338,"y":18731.741766496074},"targetPosition":{"x":31742.753363531614,"y":18778.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Episode Objects","id":"b7320c91-b8aa-4642-bd11-a1efb2a88d39"}}},{"type":"Product Definition","name":"Strategies","config":"{\n \"codeName\": \"Strategy-Objects\",\n \"singularVariableName\": \"strategyObject\",\n \"pluralVariableName\": \"strategyObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategy\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"03d1a187-b188-4ad7-b99e-6e4f6c6f0278","savedPayload":{"position":{"x":32372.771717590287,"y":18967.700877719897},"targetPosition":{"x":32147.848819470786,"y":18961.811064350626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"58a5a046-53a1-43a7-bb76-0c29d94ef579","savedPayload":{"position":{"x":32353.39654744037,"y":19053.326809042683},"targetPosition":{"x":32147.848819470786,"y":18961.811064350626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"ffa3b94b-d147-42eb-943e-4e1661c0b8c4","savedPayload":{"position":{"x":32848.672032726594,"y":19065.58807432041},"targetPosition":{"x":32457.608378532976,"y":19288.229531306155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"95273be5-fbf1-42a5-87c3-29f5ecbaafa1","savedPayload":{"position":{"x":32890.59002184149,"y":19165.645288608095},"targetPosition":{"x":32457.608378532976,"y":19288.229531306155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"19988cef-f604-49a9-91f5-f8b1c93b0302","savedPayload":{"position":{"x":32907.34469167154,"y":19272.826653505803},"targetPosition":{"x":32457.608378532976,"y":19288.229531306155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"8e1f47f3-3a81-45ed-892e-ea3e21d544c6","savedPayload":{"position":{"x":32897.96232170696,"y":19380.90317767408},"targetPosition":{"x":32457.608378532976,"y":19288.229531306155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Strategy Name","config":"{ \n\"codeName\": \"strategyName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"2bb2239e-adc4-4ad1-9c82-64e03c7c60f3","savedPayload":{"position":{"x":32862.988181186556,"y":19483.593846370455},"targetPosition":{"x":32457.608378532976,"y":19288.229531306155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Index","config":"{ \n\"codeName\": \"index\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"85886ed3-2cbb-4386-b661-d7103a1c63bb","savedPayload":{"position":{"x":32804.45484003156,"y":19574.930651195682},"targetPosition":{"x":32457.608378532976,"y":19288.229531306155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"78491f8d-a68a-4918-ab38-cc9fa8eff27e","savedPayload":{"position":{"x":32725.76404326986,"y":19649.6054290491},"targetPosition":{"x":32457.608378532976,"y":19288.229531306155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"46f41431-bf06-4d5e-93b5-1b64dafb8d6a","savedPayload":{"position":{"x":32631.48901397983,"y":19703.27835327364},"targetPosition":{"x":32457.608378532976,"y":19288.229531306155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b9c2814b-3d92-406b-88ab-78c71e635bd2","savedPayload":{"position":{"x":32527.108674188024,"y":19732.830148606514},"targetPosition":{"x":32457.608378532976,"y":19288.229531306155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b78b86e0-a571-4f94-b837-b237c2043c3c","savedPayload":{"position":{"x":32418.689229836044,"y":19736.54337211938},"targetPosition":{"x":32457.608378532976,"y":19288.229531306155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f99d1259-33b6-4c61-9332-5b751c1b2439","savedPayload":{"position":{"x":32312.531624940977,"y":19714.20222475869},"targetPosition":{"x":32457.608378532976,"y":19288.229531306155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.strategy.strategyCounters\"\n}","project":"Superalgos","id":"9d920c3c-3693-465f-a5e9-e8ea5dcdfd55","savedPayload":{"position":{"x":32214.805353632135,"y":19667.105092802278},"targetPosition":{"x":32457.608378532976,"y":19288.229531306155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b0192e6c-445b-4b55-b344-b273b268897b","savedPayload":{"position":{"x":32457.608378532976,"y":19288.229531306155},"targetPosition":{"x":32147.848819470786,"y":18961.811064350626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"q"}}},"id":"21db6fce-8450-4b07-9015-d81a339fd030","savedPayload":{"position":{"x":32153.848819470786,"y":18961.811064350626},"targetPosition":{"x":31742.753363531614,"y":18778.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Strategy Objects","id":"d54a124c-6029-41a6-9bbd-bb3fe8b1a318"}}}],"productDefinitionFolders":[{"type":"Product Definition Folder","name":"Orders","project":"Superalgos","products":[{"type":"Product Definition","name":"Market Buy Orders","config":"{ \n \"codeName\": \"Market-Buy-Orders-Objects\", \n \"singularVariableName\": \"marketBuyOrdersObject\", \n \"pluralVariableName\": \"marketBuyOrdersObjects\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"45609efb-0edc-4aa9-bc12-f5b4ca6dc5bf","savedPayload":{"position":{"x":32665.129621878266,"y":19056.733450153097},"targetPosition":{"x":32457.256727063228,"y":19142.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"5eed53d0-a3e7-4082-b7f1-cb321b3d306b","savedPayload":{"position":{"x":32682.256727063228,"y":19142.837222435242},"targetPosition":{"x":32457.256727063228,"y":19142.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"2b09fe55-b85c-4242-bae1-85a671b006ad","savedPayload":{"position":{"x":33095.95891748789,"y":18924.160585502348},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"9fdc2c26-3835-4917-b12b-5f1b0bef5a05","savedPayload":{"position":{"x":33143.19161808996,"y":18955.18667068034},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"f889b073-b78f-4345-bca7-c1943b6f5ee3","savedPayload":{"position":{"x":33186.16327515985,"y":18991.8879330061},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"2cf8c3ee-79ae-49bb-882b-992379f41fd9","savedPayload":{"position":{"x":33224.19619999555,"y":19033.685571648468},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"94e5c88c-2317-4bd1-86e6-f578db5e882f","savedPayload":{"position":{"x":33256.69059065265,"y":19079.920412877356},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7b9b53d5-d93a-4301-a0e6-ce8322da8fce","savedPayload":{"position":{"x":33283.13399117926,"y":19129.863305627234},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"5906d64e-d90e-4dae-a2bb-c806e3d5d21d","savedPayload":{"position":{"x":33303.109373352556,"y":19182.726620644997},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"294ae361-a9f7-404a-a6dd-3dc25d8c6c27","savedPayload":{"position":{"x":33316.301713462955,"y":19237.6766718738},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e837a938-5448-4987-bdf0-d28de65d33fb","savedPayload":{"position":{"x":33322.502960426194,"y":19293.846864180196},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"4424a014-cc5f-494e-be78-0b49f960045b","savedPayload":{"position":{"x":33321.61531687321,"y":19350.351360077064},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"137a18b5-33a3-433e-b85b-c8fbe03cbe69","savedPayload":{"position":{"x":33313.6527814731,"y":19406.299049909965},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderCounters\"\n}","project":"Superalgos","id":"35ca0a49-129b-49e2-864a-3c43ed3bf38b","savedPayload":{"position":{"x":33298.7409281657,"y":19460.8076051887},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"4b0020d5-4d5b-4747-aa28-baf6e28f67d9","savedPayload":{"position":{"x":33277.11492578559,"y":19513.017393434697},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"eedcf7ad-6668-4b14-8f07-7ee44998c47a","savedPayload":{"position":{"x":33249.11582930903,"y":19562.10503509869},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"46b407ab-5799-4ea6-946b-d857abb76183","savedPayload":{"position":{"x":33215.185201213324,"y":19607.296388748116},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"c2fcb23d-4a6d-457a-8d38-03a46786fedc","savedPayload":{"position":{"x":33175.858147772706,"y":19647.87875973991},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"ca02a2ed-731a-4df8-9f76-fe8d60b7ad8e","savedPayload":{"position":{"x":33131.754880112785,"y":19683.212139840794},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"ac187d63-a2cc-487c-8e81-03c786749d9c","savedPayload":{"position":{"x":33083.57093311056,"y":19712.739300539444},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"97b70829-4c2e-433c-8233-f6254788232a","savedPayload":{"position":{"x":33032.06619639398,"y":19735.994580872975},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"e8f83131-1dbc-48b7-9862-49130126b67d","savedPayload":{"position":{"x":32978.052930428465,"y":19752.61123117849},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"895ce4a6-2cf5-4f2e-b160-38f0237cbce4","savedPayload":{"position":{"x":32922.382956684276,"y":19762.327196954364},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"10253d7f-83fc-4bce-b757-f9fe36481f28","savedPayload":{"position":{"x":32865.934223902994,"y":19764.98925161628},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"d436d73b-be15-4d1a-baeb-c41b6706bbde","savedPayload":{"position":{"x":32809.5969623214,"y":19760.555412971986},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketBuyOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"320e3ae5-5884-4c25-b61b-2d0ef4730884","savedPayload":{"position":{"x":32754.25964420889,"y":19749.09560530554},"targetPosition":{"x":32873.002516693305,"y":19315.044766999534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d79b050c-2805-4b39-bcd3-1678628f8d1c","savedPayload":{"position":{"x":32873.002516693305,"y":19315.044766999534},"targetPosition":{"x":32457.256727063228,"y":19142.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"db256083-9aa2-48e1-8fd6-3425a5085302","savedPayload":{"position":{"x":32457.256727063228,"y":19142.837222435242},"targetPosition":{"x":32007.256727063228,"y":19142.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Market Buy Orders","id":"e00fe7d4-894d-4483-a73a-3cd77943ea80"}}},{"type":"Product Definition","name":"Market Sell Orders","config":"{ \n \"codeName\": \"Market-Sell-Orders-Objects\", \n \"singularVariableName\": \"marketSellOrdersObject\", \n \"pluralVariableName\": \"marketSellOrdersObjects\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"6112bd4d-07cb-41db-98c4-e286d172b5c0","savedPayload":{"position":{"x":36648.77132809873,"y":19194.80414169415},"targetPosition":{"x":35495.8473760316,"y":19236.160064914686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"07cd5668-5e0f-4385-9c02-72eebc99344a","savedPayload":{"position":{"x":36577.00503174409,"y":19638.70928451402},"targetPosition":{"x":35495.8473760316,"y":19236.160064914686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"0ba08ecb-3542-4acd-abbe-7059306ed669","savedPayload":{"position":{"x":37224.78276280781,"y":19283.320438784736},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"0ae49e68-38d8-4356-bde3-c648a29177a7","savedPayload":{"position":{"x":37310.62278914025,"y":19400.31696684512},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"b7057c53-6d99-44ca-9eff-4dd21ebe2116","savedPayload":{"position":{"x":37380.95819401753,"y":19526.930575466467},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"01b26cba-240f-451e-8533-2e090a3103fd","savedPayload":{"position":{"x":37434.84189106303,"y":19661.323001727702},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"052e9ef4-da9f-4198-b13f-7a2e0c60b906","savedPayload":{"position":{"x":37471.44855911343,"y":19801.39713674378},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"a6e9d3dc-20e3-4cf3-94f4-79f3723b4d34","savedPayload":{"position":{"x":37490.20772814566,"y":19944.94998395948},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b38cf81f-59f2-4508-9fbc-e82b1ad38d65","savedPayload":{"position":{"x":37490.82584076763,"y":20089.465386385164},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"0132786e-0a9a-4096-a6a5-57f03485d0b1","savedPayload":{"position":{"x":37473.29482374845,"y":20233.169027075288},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"d1cb7813-1e5a-43f2-af35-f82a9ee47a0b","savedPayload":{"position":{"x":37437.890651183334,"y":20373.542897175153},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"8ab09d9d-7c5a-45d4-ad6a-8a4292c1b137","savedPayload":{"position":{"x":37385.22601545196,"y":20508.39954739631},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b1d35b5f-2d9f-4ba0-b4bc-cc12c74104e8","savedPayload":{"position":{"x":37316.02278677801,"y":20635.56579274744},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderCounters\"\n}","project":"Superalgos","id":"b1dbf0d5-39bb-4c1a-ac6d-d1d647e82d54","savedPayload":{"position":{"x":37231.42688736509,"y":20753.055891345826},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"8b25c33c-8f96-4a6e-8180-43027d0fc396","savedPayload":{"position":{"x":37132.77376322683,"y":20859.01831691781},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"2ffc6fc2-9e28-4ef6-9047-a2bd2b618bd3","savedPayload":{"position":{"x":37021.617485084455,"y":20951.780697922375},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"e5c5802a-d778-40e5-9039-4067a6a56e4f","savedPayload":{"position":{"x":36899.71155441462,"y":21029.88084368371},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"7fccf0bc-d0a4-48d9-b4ac-c467bc74ef0f","savedPayload":{"position":{"x":36768.976947505755,"y":21092.084241923752},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"2149cdc5-19f8-4e11-9d5c-e6c062998223","savedPayload":{"position":{"x":36631.4767458956,"y":21137.4118352178},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"df8e190a-1138-4ffa-baef-6a560ba51739","savedPayload":{"position":{"x":36489.38443340047,"y":21165.15211560389},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"e78e7e63-95da-479e-9d5c-9531b2b2bf26","savedPayload":{"position":{"x":36344.92712084821,"y":21174.86277480083},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"8010dd65-bb12-492e-a5b8-4e8b12e1e211","savedPayload":{"position":{"x":36200.63225056701,"y":21166.386872186253},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"857f1eed-2dd2-4646-8b63-acb4cec04400","savedPayload":{"position":{"x":36058.292727314714,"y":21139.85200185274},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"3578ea56-a788-42bc-a964-0ba02e432a2e","savedPayload":{"position":{"x":35920.38320240877,"y":21095.68847541047},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"0f88abbf-bbcb-4281-90e2-5bd844c7bdfc","savedPayload":{"position":{"x":35789.07158125979,"y":21034.5486119569},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.marketSellOrders.marketOrders[index].orderQuotedAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"c5a06ac6-e0c8-4a38-a790-d3569bb73ef5","savedPayload":{"position":{"x":35666.258306288895,"y":20957.275510809028},"targetPosition":{"x":36340.12358884422,"y":20022.12891877262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8b01d5ae-7d6f-4c08-9f05-2f8edb699fd6","savedPayload":{"position":{"x":36340.12358884422,"y":20022.12891877262},"targetPosition":{"x":35495.8473760316,"y":19236.160064914686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"1958f79b-5c6c-4874-9154-98c314822ed7","savedPayload":{"position":{"x":32371.314374531954,"y":19407.340585966856},"targetPosition":{"x":32007.256727063228,"y":19142.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Market Sell Orders","id":"a9811005-1b7d-45bb-8003-0e60caab5f09"}}},{"type":"Product Definition","name":"Limit Buy Orders","config":"{ \n \"codeName\": \"Limit-Buy-Orders-Objects\", \n \"singularVariableName\": \"limitBuyOrdersObject\", \n \"pluralVariableName\": \"limitBuyOrdersObjects\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"b82fb0f9-74c1-42e6-961c-a696214ef079","savedPayload":{"position":{"x":34384.23035957715,"y":20954.46761572294},"targetPosition":{"x":33705.06350421577,"y":20244.179241484384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"2e03f52e-0cd2-46b4-9c10-0b8516ef9c71","savedPayload":{"position":{"x":34060.56952105141,"y":21160.220097704983},"targetPosition":{"x":33705.06350421577,"y":20244.179241484384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"890f7170-f42d-43d8-a084-b9b88ea212cc","savedPayload":{"position":{"x":34653.5642509438,"y":21370.898901502373},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"3e6e8e40-2e6c-4bd4-b709-effa25749403","savedPayload":{"position":{"x":34627.667453498674,"y":21491.951576610787},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"280a9209-b9cd-4cb7-b0b7-3dfe2f472140","savedPayload":{"position":{"x":34586.72575289801,"y":21608.68673880305},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"254561e5-52c3-4669-920e-4fe5370653c4","savedPayload":{"position":{"x":34531.72200753468,"y":21718.8506834832},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"8ef21836-adad-4918-9816-fbb3c9dd1fc5","savedPayload":{"position":{"x":34463.167887948686,"y":21821.4712163037},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"4d6fd5f1-a95b-4ec1-a49c-6c057190d354","savedPayload":{"position":{"x":34382.37432709204,"y":21914.656237849133},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"12402a8e-c9d4-4adb-94c3-22f526d72d14","savedPayload":{"position":{"x":34290.69250915081,"y":21997.035069616693},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"8cc955fb-62ec-40b9-963b-275956de04d9","savedPayload":{"position":{"x":34189.17463031711,"y":22067.37094671621},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"63af17a0-e994-4b5f-b853-207bf27c496c","savedPayload":{"position":{"x":34079.793332932495,"y":22124.271000005283},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"0af4f067-ac3d-4ee7-ba1d-d9c22ae2f46f","savedPayload":{"position":{"x":33963.953556857196,"y":22166.955605243813},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"f8cb0422-95bb-4c53-a5f6-7e02819021c0","savedPayload":{"position":{"x":33843.777040509856,"y":22195.00029911506},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderCounters\"\n}","project":"Superalgos","id":"d16faba6-3464-4536-9c93-afbe6e0d4262","savedPayload":{"position":{"x":33721.14317634714,"y":22207.55074719593},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"75fd2c91-2bfe-428c-9ff6-7d28d566a96d","savedPayload":{"position":{"x":33597.94815692365,"y":22204.576822966923},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"5d621574-54fd-4279-8c47-7bb9710bcc90","savedPayload":{"position":{"x":33476.20618676116,"y":22186.46458807944},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"0bddc747-8300-4b15-8a7a-134ff133d2ec","savedPayload":{"position":{"x":33357.472628495234,"y":22153.06734953091},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"4564e44d-dbd5-4d97-8433-fc1dd877bd2f","savedPayload":{"position":{"x":33243.87695978432,"y":22104.86951150597},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"dc313012-cb3e-4087-9ae1-af1125a074e3","savedPayload":{"position":{"x":33137.05891347931,"y":22043.01382650776},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"ba489aaa-0872-4e7f-bad0-a7c43b0da4b5","savedPayload":{"position":{"x":33038.93112469974,"y":21968.25175119171},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"56b30e10-c354-4a0c-a570-07976dc45b76","savedPayload":{"position":{"x":32951.17436761777,"y":21881.647963859472},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4696e371-b17b-48fc-8ebb-dfa00e0b2aed","savedPayload":{"position":{"x":32874.74091740714,"y":21784.73975993078},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"8161a21f-02f8-4929-acd1-f684a7deb41b","savedPayload":{"position":{"x":32811.079419976086,"y":21679.251948801433},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2c17774e-a962-487f-939c-411973472057","savedPayload":{"position":{"x":32761.037359838887,"y":21566.13084818431},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"d96f2a66-4d03-4cda-90c7-3dd7eae7712a","savedPayload":{"position":{"x":32725.570266137576,"y":21447.784607792688},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitBuyOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"9a713d83-5701-47a7-b0a0-4969671df884","savedPayload":{"position":{"x":32705.166523437052,"y":21325.673574378776},"targetPosition":{"x":33682.32349718927,"y":21226.236096659137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aaad0279-43dd-46fc-b099-40cba6c3b6a8","savedPayload":{"position":{"x":33682.32349718927,"y":21226.236096659137},"targetPosition":{"x":33705.06350421577,"y":20244.179241484384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"5deceb32-c7ab-4560-818a-0f0b9d6632fb","savedPayload":{"position":{"x":32146.314374531954,"y":19570.812654768062},"targetPosition":{"x":32007.256727063228,"y":19142.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Limit Buy Orders","id":"7e3120c7-a0c9-483c-ada9-8c53deb10f33"}}},{"type":"Product Definition","name":"Limit Sell Orders","config":"{ \n \"codeName\": \"Limit-Sell-Orders-Objects\", \n \"singularVariableName\": \"limitSellOrdersObject\", \n \"pluralVariableName\": \"limitSellOrdersObjects\",\n \"nodePathType\": \"array\",\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"356495a9-b063-495d-b06d-5281c7c0007e","savedPayload":{"position":{"x":34143.87507929519,"y":21071.6842379248},"targetPosition":{"x":33533.245706658156,"y":20301.786596852995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"934ab813-127e-4bbf-aa71-09b3cdadc0d0","savedPayload":{"position":{"x":33802.77152163195,"y":21246.694886215762},"targetPosition":{"x":33533.245706658156,"y":20301.786596852995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Exchange Id","config":"{\n \"codeName\": \"exchangeId\",\n \"isString\": true\n}","project":"Superalgos","id":"5c8236b1-b257-44f4-98bd-a158b67aad16","savedPayload":{"position":{"x":34373.67530135927,"y":21511.457258416318},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"16140fc9-d4ae-43c2-ba47-f676b79a9775","savedPayload":{"position":{"x":34336.66147367481,"y":21629.655340629193},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"2d871d0f-e668-4e9d-9fcf-439f37cd082f","savedPayload":{"position":{"x":34285.27047161146,"y":21742.051017463495},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"fc6f8fe4-b752-448a-9ece-8497abf2901c","savedPayload":{"position":{"x":34220.227170297585,"y":21846.824448399577},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"3502765f-2f50-44c6-b85c-64d7f72f5592","savedPayload":{"position":{"x":34142.57683949222,"y":21942.772238925907},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Rate","config":"{ \n\"codeName\": \"rate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"608ebfd0-4294-4e24-8111-a8f695072ca0","savedPayload":{"position":{"x":34053.41709164034,"y":22028.020895912483},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"c49c3510-e24b-418f-9334-760c5da57ccf","savedPayload":{"position":{"x":33954.40427163083,"y":22101.54065085818},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"04b96ab3-eb13-4039-a385-8e5c4377daa4","savedPayload":{"position":{"x":33846.9074099673,"y":22162.058919499894},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Order Name","config":"{ \n\"codeName\": \"orderName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"6ec27702-5283-4fbf-b6a7-92663a6e9e9b","savedPayload":{"position":{"x":33732.73287631778,"y":22208.746478546025},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"6a4285a4-c9d5-4d5b-a218-da8e19ca5970","savedPayload":{"position":{"x":33613.52536773751,"y":22240.471859994603},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Algorithm Name","config":"{ \n\"codeName\": \"algorithmName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e3e35a81-c5b2-4768-ab16-99b42ef83358","savedPayload":{"position":{"x":33491.3100634298,"y":22257.28781737063},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderCounters\"\n}","project":"Superalgos","id":"815780d8-f647-42cc-9a40-aa99caa350c7","savedPayload":{"position":{"x":33368.19856137995,"y":22258.499817366537},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Percentage Filled","config":"{\n \"codeName\": \"percentageFilled\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"d824c424-4324-46b1-87b9-182cc9f0d054","savedPayload":{"position":{"x":33245.84847001982,"y":22244.196016165963},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Actual Rate","config":"{ \n\"codeName\": \"actualRate\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\"\n}","project":"Superalgos","id":"d722bfd4-eb08-4dfc-8cc9-f706f93df80e","savedPayload":{"position":{"x":33126.09014183429,"y":22214.814950823962},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"d05fe7d4-d772-4ad4-9890-a3aa342fc5f6","savedPayload":{"position":{"x":33010.90439975224,"y":22170.505097531397},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"d4b14139-33ad-4da1-942c-ce8df0d3efa9","savedPayload":{"position":{"x":32902.16936303195,"y":22112.246794189672},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"9ade3c97-f409-4c23-b66f-b6670100e039","savedPayload":{"position":{"x":32801.701503574455,"y":22040.77506370113},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"780e674d-64fc-401a-ad5d-1012645f512e","savedPayload":{"position":{"x":32710.87485162655,"y":21957.170814942023},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Base Asset","config":"{\n \"codeName\": \"sizeInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"8dade5f4-6361-49b2-ae94-2b66b21d5522","savedPayload":{"position":{"x":32631.3199384275,"y":21862.982781691113},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size In Quoted Asset","config":"{\n \"codeName\": \"sizeInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"size\",\n \"decimals\": 10\n}","project":"Superalgos","id":"896f401d-5a79-45bb-b15b-abc2881d7762","savedPayload":{"position":{"x":32564.273547456643,"y":21759.428804952746},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Base Asset","config":"{\n \"codeName\": \"sizeFilledInBaseAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"b92661d6-16ec-48a6-bb66-18c4ad4dd148","savedPayload":{"position":{"x":32510.502394996594,"y":21648.438471270518},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Size Filled In Quoted Asset","config":"{\n \"codeName\": \"sizeFilledInQuotedAsset\",\n \"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"sizeFilled\",\n \"decimals\": 10\n}","project":"Superalgos","id":"c24a527a-db24-472d-8c3f-f0da838f8062","savedPayload":{"position":{"x":32471.223021400856,"y":21531.223430989532},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Base Asset","config":"{ \n\"codeName\": \"feesPaidInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"b50fa760-b069-411f-b27e-6dd1d165e927","savedPayload":{"position":{"x":32446.884813326935,"y":21410.157476672706},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Fees Paid In Quoted Asset","config":"{ \n\"codeName\": \"feesPaidInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.exchangeOrders.limitSellOrders.limitOrders[index].orderBaseAsset\",\n \"childProperty\": \"feesPaid\"\n}","project":"Superalgos","id":"d5d472fb-bf5a-40e7-ac92-7b03279022c3","savedPayload":{"position":{"x":32437.892237602555,"y":21286.790526124012},"targetPosition":{"x":33419.92554176691,"y":21277.84812784399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7dc5d5fc-ff33-4652-bc9c-fad0566a3d9f","savedPayload":{"position":{"x":33419.92554176691,"y":21277.84812784399},"targetPosition":{"x":33533.245706658156,"y":20301.786596852995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"2a1d405b-2fbe-4ed4-a76a-d2c7be59d20e","savedPayload":{"position":{"x":31868.199079594502,"y":19570.812654768062},"targetPosition":{"x":32007.256727063228,"y":19142.837222435242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Limit Sell Orders","id":"fb243322-ec2a-4f03-bb77-e97e4699d1c6"}}}],"productDefinitionFolders":[],"id":"cb9c928a-1a5d-441c-b369-0a72f98f2407","savedPayload":{"position":{"x":32007.256727063228,"y":19142.837222435242},"targetPosition":{"x":31742.753363531614,"y":18778.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Stages","project":"Superalgos","products":[{"type":"Product Definition","name":"Trigger Stages","config":"{\n \"codeName\": \"Trigger-Stages-Objects\",\n \"singularVariableName\": \"triggerStagesObject\",\n \"pluralVariableName\": \"triggerStagesObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyTriggerStage\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"e951c491-c864-4668-9d70-c48df90d8342","savedPayload":{"position":{"x":32396.577697514163,"y":19480.68282113175},"targetPosition":{"x":32173.502603705056,"y":19451.31442788224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"ace4518d-bfe1-49e2-af7b-4ff9559fe6a9","savedPayload":{"position":{"x":32368.358319556555,"y":19563.81442788224},"targetPosition":{"x":32173.502603705056,"y":19451.31442788224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"75d29f56-b520-43e9-af25-105a88b84f0f","savedPayload":{"position":{"x":32530.730553058987,"y":19583.86223354509},"targetPosition":{"x":32310.473925232018,"y":19629.818929447767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"08e2f14d-f121-48ed-b266-d78fe59ef437","savedPayload":{"position":{"x":32528.85815290903,"y":19683.979146414786},"targetPosition":{"x":32310.473925232018,"y":19629.818929447767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"675b3923-9fdb-4e08-abab-2ba83424c851","savedPayload":{"position":{"x":32483.73207816085,"y":19773.368964082692},"targetPosition":{"x":32310.473925232018,"y":19629.818929447767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"6a6f3698-8dfc-4368-9db6-e5ac251aefec","savedPayload":{"position":{"x":32404.290101353316,"y":19834.326936865513},"targetPosition":{"x":32310.473925232018,"y":19629.818929447767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"6db4ef3b-ea01-4765-a749-f9bee13fa2a3","savedPayload":{"position":{"x":32306.266680285065,"y":19854.779590653136},"targetPosition":{"x":32310.473925232018,"y":19629.818929447767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"8435db2d-1a90-4994-ba46-7d11618a65ab","savedPayload":{"position":{"x":32209.07655567703,"y":19830.67602652758},"targetPosition":{"x":32310.473925232018,"y":19629.818929447767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"167c8a3e-7c2a-488f-87f7-be3f6034d276","savedPayload":{"position":{"x":32310.473925232018,"y":19629.818929447767},"targetPosition":{"x":32173.502603705056,"y":19451.31442788224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"18cc2e79-7e57-418c-b635-6c68fc11d681","savedPayload":{"position":{"x":32173.502603705056,"y":19451.31442788224},"targetPosition":{"x":31783.791172002057,"y":19226.31442788224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Trigger Stage Objects","id":"6c6cddbc-cd78-445f-9498-8627ac99563d"}}},{"type":"Product Definition","name":"Open Stages","config":"{\n \"codeName\": \"Open-Stages-Objects\",\n \"singularVariableName\": \"openStagesObject\",\n \"pluralVariableName\": \"openStagesObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyOpenStage\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"613bf56d-986e-4a94-9b39-4f0ac3300b0c","savedPayload":{"position":{"x":34485.69404340611,"y":21628.05164015001},"targetPosition":{"x":33827.87767942718,"y":20680.827298018343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"44a0d895-2a7e-4f9a-b9a7-81dc32bf30e4","savedPayload":{"position":{"x":34073.128176286584,"y":21807.768787653884},"targetPosition":{"x":33827.87767942718,"y":20680.827298018343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"e36b3b00-b339-4ce5-9526-a2077f5e1138","savedPayload":{"position":{"x":34555.604982225945,"y":22491.801899304664},"targetPosition":{"x":33623.052623584095,"y":21815.731500468344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"73751c42-16ed-4a24-8586-d86c3c9a81be","savedPayload":{"position":{"x":34169.786617587786,"y":22829.58481850199},"targetPosition":{"x":33623.052623584095,"y":21815.731500468344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"d76fd073-ae0d-4af8-b729-5d94a1cf21ed","savedPayload":{"position":{"x":33675.73441235792,"y":22966.410885129648},"targetPosition":{"x":33623.052623584095,"y":21815.731500468344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"3db414d7-fb6f-4cce-be3b-342101e90246","savedPayload":{"position":{"x":33171.46661749282,"y":22875.414730233748},"targetPosition":{"x":33623.052623584095,"y":21815.731500468344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"340b1f7b-b041-4ee0-9327-0959de0d8d9a","savedPayload":{"position":{"x":32756.394909894196,"y":22574.448736463022},"targetPosition":{"x":33623.052623584095,"y":21815.731500468344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"6fa53271-06c2-48b1-a763-2926ce948fbc","savedPayload":{"position":{"x":32512.922779960903,"y":22123.241095374826},"targetPosition":{"x":33623.052623584095,"y":21815.731500468344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"517166b0-13ae-4f3d-bcb4-d3292dd9daf7","savedPayload":{"position":{"x":33623.052623584095,"y":21815.731500468344},"targetPosition":{"x":33827.87767942718,"y":20680.827298018343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"d5938c00-0849-466d-ae14-4ea91b571678","savedPayload":{"position":{"x":31966.822661386166,"y":19637.409883821412},"targetPosition":{"x":31783.791172002057,"y":19226.31442788224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Open Stage Objects","id":"8f7cad9f-153d-44e6-bdc2-812bc97e3929"}}},{"type":"Product Definition","name":"Manage Stages","config":"{\n \"codeName\": \"Manage-Stages-Objects\",\n \"singularVariableName\": \"manageStagesObject\",\n \"pluralVariableName\": \"manageStagesObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyManageStage\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"f6e10004-71dd-4ae9-8c1f-0b71de02d274","savedPayload":{"position":{"x":33751.26609635574,"y":21205.204657212795},"targetPosition":{"x":33256.487098986916,"y":20359.65265903028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"8f3984d8-e735-4dab-a9cc-51e97d704154","savedPayload":{"position":{"x":33389.92074569172,"y":21330.221544868058},"targetPosition":{"x":33256.487098986916,"y":20359.65265903028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"0a0419db-885a-4623-9ce3-ef4cd12d7a52","savedPayload":{"position":{"x":33753.65671221973,"y":21941.492403906817},"targetPosition":{"x":33008.300895639186,"y":21307.368906350435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"4478d5f4-808f-45b5-9197-c144e6c1d81f","savedPayload":{"position":{"x":33404.61820118441,"y":22202.141008109404},"targetPosition":{"x":33008.300895639186,"y":21307.368906350435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"abf359ac-dc22-4274-a00c-25c986836002","savedPayload":{"position":{"x":32977.391341761315,"y":22285.54083817896},"targetPosition":{"x":33008.300895639186,"y":21307.368906350435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"78333d72-e1e6-4a85-9e23-850a66e3ca71","savedPayload":{"position":{"x":32556.007685851993,"y":22175.196790657457},"targetPosition":{"x":33008.300895639186,"y":21307.368906350435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"ba45b561-33a9-4e8e-bf3c-a6b8ece1d0a3","savedPayload":{"position":{"x":32224.23112393739,"y":21892.955741534686},"targetPosition":{"x":33008.300895639186,"y":21307.368906350435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"45ef8759-341e-4e74-a374-035374659cc5","savedPayload":{"position":{"x":32047.777492800116,"y":21494.691107710994},"targetPosition":{"x":33008.300895639186,"y":21307.368906350435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d418fdcd-d800-4f99-8a67-05eb6a09d390","savedPayload":{"position":{"x":33008.300895639186,"y":21307.368906350435},"targetPosition":{"x":33256.487098986916,"y":20359.65265903028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"8fab86b3-db8d-4113-8418-1d256bd98cf2","savedPayload":{"position":{"x":31690.230911134066,"y":19666.480848212454},"targetPosition":{"x":31783.791172002057,"y":19226.31442788224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Manage Stage Objects","id":"768a5cc5-72db-4218-9a8b-706c51186b3d"}}},{"type":"Product Definition","name":"Close Stages","config":"{\n \"codeName\": \"Close-Stages-Objects\",\n \"singularVariableName\": \"closeStagesObject\",\n \"pluralVariableName\": \"closeStagesObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.strategyCloseStage\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"ee0f2bab-26b6-44c6-af1c-efbca2c765cd","savedPayload":{"position":{"x":33434.99730055026,"y":21269.100702320855},"targetPosition":{"x":32999.08289583457,"y":20391.745863934164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"cbd3905d-fafc-47f3-8a61-20c9aab10d86","savedPayload":{"position":{"x":33065.95887600577,"y":21369.155010249768},"targetPosition":{"x":32999.08289583457,"y":20391.745863934164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"fb4236d5-0356-4226-bf11-8d119d361bf3","savedPayload":{"position":{"x":33387.112679051905,"y":22003.830483124155},"targetPosition":{"x":32686.737916365906,"y":21320.266999922107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"68f1a928-d89f-4d57-80d8-1e68b113bea5","savedPayload":{"position":{"x":33021.08454564645,"y":22240.06302483862},"targetPosition":{"x":32686.737916365906,"y":21320.266999922107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"cd79288d-539d-499f-a998-5770f3c5efab","savedPayload":{"position":{"x":32589.13559581537,"y":22294.097623017977},"targetPosition":{"x":32686.737916365906,"y":21320.266999922107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7afb54b6-807f-4452-9fd6-bb4bd32dd462","savedPayload":{"position":{"x":32176.24682785769,"y":22155.247415499172},"targetPosition":{"x":32686.737916365906,"y":21320.266999922107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"56d33c0a-1f4c-4721-b43d-976bbff00208","savedPayload":{"position":{"x":31864.491297241344,"y":21851.008208133026},"targetPosition":{"x":32686.737916365906,"y":21320.266999922107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"eae9d270-5193-46f6-abc8-c1c1eccc9661","savedPayload":{"position":{"x":31715.61863431892,"y":21441.6110967042},"targetPosition":{"x":32686.737916365906,"y":21320.266999922107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c4aaf6da-f1d9-4a88-8e7a-531135090572","savedPayload":{"position":{"x":32686.737916365906,"y":21320.266999922107},"targetPosition":{"x":32999.08289583457,"y":20391.745863934164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"ba911e61-f951-48cd-b547-9a70aa211100","savedPayload":{"position":{"x":31449.376000537228,"y":19527.423200743728},"targetPosition":{"x":31783.791172002057,"y":19226.31442788224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Close Stage Objects","id":"de84947f-ec29-4125-a2b3-a3da595d1653"}}}],"productDefinitionFolders":[],"id":"4ce02b43-0869-4bed-b021-a3b9f7c10451","savedPayload":{"position":{"x":31789.791172002057,"y":19226.31442788224},"targetPosition":{"x":31742.753363531614,"y":18778.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition Folder","name":"Position","project":"Superalgos","products":[{"type":"Product Definition","name":"Positions","config":"{\n \"codeName\": \"Position-Objects\",\n \"singularVariableName\": \"positionObject\",\n \"pluralVariableName\": \"positionObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"55df9376-2806-429d-b43d-b96700787f74","savedPayload":{"position":{"x":32010.06927465879,"y":19671.494855435503},"targetPosition":{"x":31818.22523767912,"y":19553.932678374415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"fd62b468-93fa-44e0-941f-fff7ea4b04ea","savedPayload":{"position":{"x":31950.476919444925,"y":19735.961502108777},"targetPosition":{"x":31818.22523767912,"y":19553.932678374415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Serial Number","config":"{\n \"codeName\": \"serialNumber\",\n \"isString\": false\n}","project":"Superalgos","id":"a8700d50-9286-4b62-a141-abd506386983","savedPayload":{"position":{"x":32920.626440385866,"y":20311.59203373428},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Identifier","config":"{\n \"codeName\": \"identifier\",\n \"isString\": true\n}","project":"Superalgos","id":"6ce2fa31-04d9-4541-a793-569b668e6201","savedPayload":{"position":{"x":32928.01765762744,"y":20405.506353255238},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"0f5cf2f4-3c5b-4607-8635-c7310906b95c","savedPayload":{"position":{"x":32925.55166550925,"y":20499.678792887385},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"ba8a1af9-323f-4acb-a438-a61f232b4033","savedPayload":{"position":{"x":32913.25548195699,"y":20593.077579675257},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Type","config":"{ \n\"codeName\": \"exitType\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"85df8c0c-7d11-44c2-a7a9-928d4ac0ad06","savedPayload":{"position":{"x":32891.263826530805,"y":20684.679416965857},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"9c8b786e-23f6-4bf9-bf83-6fd03b494a66","savedPayload":{"position":{"x":32859.81764440959,"y":20773.480695860908},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Begin Rate","config":"{ \n\"codeName\": \"beginRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"b0719341-cda1-4503-bed5-f4e98d7e07db","savedPayload":{"position":{"x":32819.2614665452,"y":20858.508490965974},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End Rate","config":"{ \n\"codeName\": \"endRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"a052f724-c517-4032-85f7-96d3a29ba9ce","savedPayload":{"position":{"x":32770.03963490925,"y":20938.831219964675},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Situation Name","config":"{ \n\"codeName\": \"situationName\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"a4dfa19d-51b8-4151-91e5-6031059f09f1","savedPayload":{"position":{"x":32712.691434189463,"y":21013.56885022949},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Periods","config":"{ \n\"codeName\": \"periods\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionCounters\"\n}","project":"Superalgos","id":"5309d28b-041a-4622-ade5-9349c19787da","savedPayload":{"position":{"x":32647.845183273814,"y":21081.902540643383},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 1","config":"{ \n\"codeName\": \"userDefinedStatistic1\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 0\n}","project":"Superalgos","id":"0853d6cc-4429-431e-82f0-e4d958f095ea","savedPayload":{"position":{"x":32576.211351257283,"y":21143.083612994436},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 2","config":"{ \n\"codeName\": \"userDefinedStatistic2\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 1\n}","project":"Superalgos","id":"925756d5-4662-44ac-bfa6-a326c5e61b23","savedPayload":{"position":{"x":32498.57477339379,"y":21196.44175465101},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"User Defined Statistic 3","config":"{ \n\"codeName\": \"userDefinedStatistic3\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n\"childProperty\": \"userDefinedStatistics\",\n\"index\": 2\n}","project":"Superalgos","id":"3d22802e-0b11-47e4-8c98-7c9830f166fb","savedPayload":{"position":{"x":32415.7860522769,"y":21241.3923626472},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Base Asset","config":"{ \n\"codeName\": \"profitLossInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"5cbdddf2-f50e-49c6-b995-c557a44adde5","savedPayload":{"position":{"x":32328.752238459827,"y":21277.442948715285},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Quoted Asset","config":"{ \n\"codeName\": \"profitLossInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"0e1b30a0-5408-4b8b-aa61-efd21d9ef1b1","savedPayload":{"position":{"x":32238.42689261975,"y":21304.198535090236},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Base Asset","config":"{ \n\"codeName\": \"ROIInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"d41d6380-be40-4823-a6d2-adc43038d514","savedPayload":{"position":{"x":32145.79963814748,"y":21321.365981968756},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Quoted Asset","config":"{ \n\"codeName\": \"ROIInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"5306784e-c744-49cd-962a-670d8e452ac7","savedPayload":{"position":{"x":32051.885318626522,"y":21328.757199210326},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Base Asset","config":"{ \n\"codeName\": \"hitFailInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"bf8e5f03-9c93-4b76-ae3d-4f2b3eeccab5","savedPayload":{"position":{"x":31957.712878994374,"y":21326.29120709214},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Quoted Asset","config":"{ \n\"codeName\": \"hitFailInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"43463fcd-ac98-4ae3-a148-d43d709ba86c","savedPayload":{"position":{"x":31864.314092206503,"y":21313.995023539883},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Base Asset","config":"{ \n\"codeName\": \"entryTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"e6b2213f-f108-428f-b93c-e58db1da49e2","savedPayload":{"position":{"x":31772.712254915903,"y":21292.0033681137},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Quoted Asset","config":"{ \n\"codeName\": \"entryTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"2e419e2b-cb42-4067-a861-7ebf1804a903","savedPayload":{"position":{"x":31683.910976020856,"y":21260.557185992482},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Base Asset","config":"{ \n\"codeName\": \"exitTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"739818f5-d2e4-4fea-b818-a598ed4a9c21","savedPayload":{"position":{"x":31598.883180915785,"y":21220.001008128093},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Quoted Asset","config":"{ \n\"codeName\": \"exitTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"76337d8e-1242-4e84-96c4-7e93b218a1ab","savedPayload":{"position":{"x":31518.560451917085,"y":21170.77917649214},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Rate","config":"{ \n\"codeName\": \"entryTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"06eb81a4-5736-40f5-8248-9aeb8e9cc409","savedPayload":{"position":{"x":31443.82282165227,"y":21113.430975772353},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Rate","config":"{ \n\"codeName\": \"exitTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"7c3162ae-a955-4c61-bd01-69a198893335","savedPayload":{"position":{"x":31375.489131238377,"y":21048.584724856704},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Profit Loss","config":"{ \n\"codeName\": \"profitLoss\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 10\n}","project":"Superalgos","id":"399ae646-1616-4fdd-9ce3-228ea91b7bfc","savedPayload":{"position":{"x":31314.308058887324,"y":20976.950892840174},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics ROI","config":"{ \n\"codeName\": \"ROI\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 10\n}","project":"Superalgos","id":"eaa127cc-7067-45a6-8268-463c659209d0","savedPayload":{"position":{"x":31260.94991723075,"y":20899.31431497668},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Hit Fail","config":"{ \n\"codeName\": \"hitFail\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\"\n}","project":"Superalgos","id":"2db6cdcd-128e-4bdd-9e9f-1d009c497a16","savedPayload":{"position":{"x":31215.99930923456,"y":20816.52559385979},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Statistics Days","config":"{ \n\"codeName\": \"days\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionStatistics\",\n \"decimals\": 2\n}","project":"Superalgos","id":"42bb6a56-afc0-4c71-9b08-fd59959e8c88","savedPayload":{"position":{"x":31179.948723166475,"y":20729.49178004272},"targetPosition":{"x":32028.326065149435,"y":20429.065606732325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"823244e2-6d28-4e3a-96ea-42f6a7981bca","savedPayload":{"position":{"x":32028.326065149435,"y":20429.065606732325},"targetPosition":{"x":31818.22523767912,"y":19553.932678374415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"1eabba24-cbd4-4cbf-95e0-c5135349d41d","savedPayload":{"position":{"x":31824.22523767912,"y":19553.932678374415},"targetPosition":{"x":31559.721874147504,"y":19189.87503090569},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Position Objects","id":"8854b5f8-8407-4a0d-9099-5456a8e4cced"}}},{"type":"Product Definition","name":"Position Base Asset","config":"{\n \"codeName\": \"Position-Base-Asset-Objects\",\n \"singularVariableName\": \"positionBaseAssetObject\",\n \"pluralVariableName\": \"positionBaseAssetObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"a0ff2796-59dd-4aa4-93ed-ba4601b9de5d","savedPayload":{"position":{"x":31714.12040367636,"y":19835.143734170353},"targetPosition":{"x":31606.759682617947,"y":19637.409883821412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"9985d32d-c070-4593-8a2a-ec8bc1c78cbb","savedPayload":{"position":{"x":31630.27858685317,"y":19861.177310279272},"targetPosition":{"x":31606.759682617947,"y":19637.409883821412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"ab0b9bad-a26f-4bd2-9c8a-b54d8e18ba1f","savedPayload":{"position":{"x":31862.64085146052,"y":20304.003118634275},"targetPosition":{"x":31478.95277750118,"y":20068.878764512097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"c7ef2775-8664-4ad2-b1f7-75bcf27f30df","savedPayload":{"position":{"x":31788.71233656337,"y":20395.297231467626},"targetPosition":{"x":31478.95277750118,"y":20068.878764512097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"fab4ea05-53c0-4899-a319-9da3db9c650d","savedPayload":{"position":{"x":31693.674219618006,"y":20464.346465209983},"targetPosition":{"x":31478.95277750118,"y":20068.878764512097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Base Asset","config":"{ \n\"codeName\": \"profitLossInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"807ac077-7ed6-484b-883f-40590c678635","savedPayload":{"position":{"x":31584.003191236337,"y":20506.445228691053},"targetPosition":{"x":31478.95277750118,"y":20068.878764512097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Base Asset","config":"{ \n\"codeName\": \"ROIInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"686128cb-42c2-41c8-8953-461220b65741","savedPayload":{"position":{"x":31467.17315076264,"y":20518.7245607511},"targetPosition":{"x":31478.95277750118,"y":20068.878764512097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Base Asset","config":"{ \n\"codeName\": \"hitFailInBaseAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"3989fb34-a5da-416b-8f76-92476fba2d8b","savedPayload":{"position":{"x":31351.145872384415,"y":20500.347645202783},"targetPosition":{"x":31478.95277750118,"y":20068.878764512097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Base Asset","config":"{ \n\"codeName\": \"entryTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"fe6f9596-bc0c-44dc-b70e-f7ee436b9b59","savedPayload":{"position":{"x":31243.828423379004,"y":20452.566838471437},"targetPosition":{"x":31478.95277750118,"y":20068.878764512097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Base Asset","config":"{ \n\"codeName\": \"exitTargetSizeInBaseAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionBaseAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"b02b1740-a282-4407-93de-68a0f9aa91a4","savedPayload":{"position":{"x":31152.534310545652,"y":20378.638323574287},"targetPosition":{"x":31478.95277750118,"y":20068.878764512097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Rate","config":"{ \n\"codeName\": \"entryTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"1ed47645-109e-41f4-a570-80d8f45cef9f","savedPayload":{"position":{"x":31083.485076803296,"y":20283.600206628922},"targetPosition":{"x":31478.95277750118,"y":20068.878764512097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Rate","config":"{ \n\"codeName\": \"exitTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"e408f858-f3b2-4eac-aff7-b8ff5fa5b12c","savedPayload":{"position":{"x":31041.386313322226,"y":20173.929178247254},"targetPosition":{"x":31478.95277750118,"y":20068.878764512097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Candle Close","config":"{ \n\"codeName\": \"candleClose\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\",\n \"childProperty\": \"close\",\n \"decimals\": 10\n}","project":"Superalgos","id":"6d2910e9-5d9a-4cd3-bbba-8e22fc554855","savedPayload":{"position":{"x":31029.10698126218,"y":20057.099137773555},"targetPosition":{"x":31478.95277750118,"y":20068.878764512097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2c81cbf8-d93e-4704-bab2-bc9c0efdb3a4","savedPayload":{"position":{"x":31478.95277750118,"y":20068.878764512097},"targetPosition":{"x":31606.759682617947,"y":19637.409883821412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"b371b039-f6c8-4f60-84cb-52f55c96c84d","savedPayload":{"position":{"x":31606.759682617947,"y":19637.409883821412},"targetPosition":{"x":31559.721874147504,"y":19189.87503090569},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Position Base Asset","id":"42a79594-bac8-40bf-a9eb-f13716e15465"}}},{"type":"Product Definition","name":"Position Quoted Asset","config":"{\n \"codeName\": \"Position-Quoted-Asset-Objects\",\n \"singularVariableName\": \"positionQuotedAssetObject\",\n \"pluralVariableName\": \"positionQuotedAssetObjects\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAsObjects\": true,\n \"propertyNameThatDefinesObject\": \"status\",\n \"propertyValueThatClosesObject\": \"Closed\",\n \"propertyValueThatPreventsSavingObject\": \"Not Open\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"abab2ab2-3a9b-49bd-8935-9bb01c113761","savedPayload":{"position":{"x":31370.800571394124,"y":19825.89338496436},"targetPosition":{"x":31376.690384763395,"y":19600.97048684486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"40ac7181-100d-4b65-b7fd-a8103cda2300","savedPayload":{"position":{"x":31285.17464007134,"y":19806.518214814445},"targetPosition":{"x":31376.690384763395,"y":19600.97048684486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","project":"Superalgos","id":"07c757d3-bc46-4222-90da-d86cba491ebb","savedPayload":{"position":{"x":31264.99335992469,"y":20306.197746604936},"targetPosition":{"x":31050.271917807866,"y":19910.73004590705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","project":"Superalgos","id":"91d9db38-e2ef-4947-88f0-e2babea49598","savedPayload":{"position":{"x":31155.322331543022,"y":20348.296510086006},"targetPosition":{"x":31050.271917807866,"y":19910.73004590705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Status","config":"{ \n\"codeName\": \"status\",\n\"isString\": true,\n\"isCalculated\": false\n}","project":"Superalgos","id":"d879d6c0-51b6-47db-a4c9-0ec0f69eefcd","savedPayload":{"position":{"x":31038.492291069324,"y":20360.575842146052},"targetPosition":{"x":31050.271917807866,"y":19910.73004590705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Profit Loss In Quoted Asset","config":"{ \n\"codeName\": \"profitLossInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"profitLoss\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4d007dcc-ea53-474d-833b-d43580ea5a1d","savedPayload":{"position":{"x":30922.4650126911,"y":20342.198926597735},"targetPosition":{"x":31050.271917807866,"y":19910.73004590705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"ROI In Quoted Asset","config":"{ \n\"codeName\": \"ROIInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"ROI\",\n \"decimals\": 10\n}","project":"Superalgos","id":"7dea3349-8f02-4ecf-8ab8-6a4ec6d0890e","savedPayload":{"position":{"x":30815.14756368569,"y":20294.41811986639},"targetPosition":{"x":31050.271917807866,"y":19910.73004590705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Hit Fail In Quoted Asset","config":"{ \n\"codeName\": \"hitFailInQuotedAsset\",\n\"isString\": true,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"hitFail\"\n}","project":"Superalgos","id":"093a203a-838d-49af-ad26-2feb6b808bdd","savedPayload":{"position":{"x":30723.853450852337,"y":20220.48960496924},"targetPosition":{"x":31050.271917807866,"y":19910.73004590705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Size In Quoted Asset","config":"{ \n\"codeName\": \"entryTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"entryTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"7fb1fb82-57c1-4c64-9613-e1938e99a8ab","savedPayload":{"position":{"x":30654.80421710998,"y":20125.451488023875},"targetPosition":{"x":31050.271917807866,"y":19910.73004590705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Size In Quoted Asset","config":"{ \n\"codeName\": \"exitTargetSizeInQuotedAsset\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.positionQuotedAsset\",\n \"childProperty\": \"exitTargetSize\",\n \"decimals\": 10\n}","project":"Superalgos","id":"a44876b4-75a0-4fd1-a623-eeba4decd42f","savedPayload":{"position":{"x":30612.70545362891,"y":20015.780459642207},"targetPosition":{"x":31050.271917807866,"y":19910.73004590705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Entry Target Rate","config":"{ \n\"codeName\": \"entryTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"37888758-269e-48b2-9ca0-5d69d607dacf","savedPayload":{"position":{"x":30600.426121568864,"y":19898.95041916851},"targetPosition":{"x":31050.271917807866,"y":19910.73004590705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Exit Target Rate","config":"{ \n\"codeName\": \"exitTargetRate\",\n\"isString\": false,\n\"isCalculated\": false\n}","project":"Superalgos","id":"1bd0adb3-e67c-49f2-831c-1fa0c74a85f5","savedPayload":{"position":{"x":30618.80303711718,"y":19782.923140790284},"targetPosition":{"x":31050.271917807866,"y":19910.73004590705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Candle Close","config":"{ \n\"codeName\": \"candleClose\",\n\"isString\": false,\n\"isCalculated\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.tradingEpisode.candle\",\n \"childProperty\": \"close\",\n \"decimals\": 10\n}","project":"Superalgos","id":"4451d357-0968-462e-82d2-6321f0681397","savedPayload":{"position":{"x":30666.583843848526,"y":19675.605691784873},"targetPosition":{"x":31050.271917807866,"y":19910.73004590705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b46f9e1f-74e0-4858-bb93-d4d85e72c3a9","savedPayload":{"position":{"x":31050.271917807866,"y":19910.73004590705},"targetPosition":{"x":31376.690384763395,"y":19600.97048684486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},"id":"a376f02b-a5d2-4079-b5cd-ab7dc894b909","savedPayload":{"position":{"x":31376.690384763395,"y":19600.97048684486},"targetPosition":{"x":31559.721874147504,"y":19189.87503090569},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Position Quoted Asset","id":"baed45c2-228e-4679-876e-1867bbef5e9f"}}},{"type":"Product Definition","name":"Stop Loss","config":"{\n \"codeName\": \"Stop-Loss\",\n \"singularVariableName\": \"stopLoss\",\n \"pluralVariableName\": \"stopLosses\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAtCycle\": \"Second\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"0ea22a69-e7cb-4fcf-b7ae-4b7233b196c4","savedPayload":{"position":{"x":31072.10204961769,"y":19646.222431416973},"targetPosition":{"x":31189.66422667878,"y":19454.378394437303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"75b13383-2771-4f58-b2c4-ffadad2e9519","savedPayload":{"position":{"x":31007.635402944416,"y":19586.63007620311},"targetPosition":{"x":31189.66422667878,"y":19454.378394437303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\",\n \"childProperty\": \"begin\"\n}","project":"Superalgos","id":"048960a1-1de4-4492-b214-37bfc59d661b","savedPayload":{"position":{"x":30839.300339081972,"y":19604.13110677903},"targetPosition":{"x":30967.434350044874,"y":19419.18063980325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\",\n \"childProperty\": \"end\"\n}","project":"Superalgos","id":"f44a0a9b-3abb-4323-be28-c14a677d2d5f","savedPayload":{"position":{"x":30771.74259508484,"y":19530.219988867728},"targetPosition":{"x":30967.434350044874,"y":19419.18063980325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stop Loss","config":"{\n \"codeName\": \"stopLoss\",\n \"isString\": false\n}","project":"Superalgos","id":"1152e12b-354a-49cf-bfe1-dbb54a5471bf","savedPayload":{"position":{"x":30742.94400315942,"y":19434.316166065957},"targetPosition":{"x":30967.434350044874,"y":19419.18063980325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Stop Loss Phase","config":"{\n \"codeName\": \"stopLossPhase\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\"\n}","project":"Superalgos","id":"2dc164a2-1df6-40d4-861d-15b0cbc6c627","savedPayload":{"position":{"x":30758.60847762809,"y":19335.41456666281},"targetPosition":{"x":30967.434350044874,"y":19419.18063980325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Initial Value","config":"{\n \"codeName\": \"initialValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\"\n}","project":"Superalgos","id":"8f18d1a9-9ad9-4dff-8091-c419757a3e78","savedPayload":{"position":{"x":30815.633477210158,"y":19253.103865368597},"targetPosition":{"x":30967.434350044874,"y":19419.18063980325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Final Value","config":"{\n \"codeName\": \"finalValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.stopLoss\"\n}","project":"Superalgos","id":"5a762d29-97b5-4b34-87e2-6089dfb259be","savedPayload":{"position":{"x":30902.72450137267,"y":19203.68670604914},"targetPosition":{"x":30967.434350044874,"y":19419.18063980325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"04d49dc8-b542-4700-8d07-99323b0f1f62","savedPayload":{"position":{"x":30967.434350044874,"y":19419.18063980325},"targetPosition":{"x":31189.66422667878,"y":19454.378394437303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"c18bdc82-216a-4b1d-8850-5c3c9dc2000b","savedPayload":{"position":{"x":31195.66422667878,"y":19454.378394437303},"targetPosition":{"x":31559.721874147504,"y":19189.87503090569},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Stop Loss","id":"9b8e4fc2-b62a-4d47-ac5f-08818e463da2"}}},{"type":"Product Definition","name":"Take Profit","config":"{\n \"codeName\": \"Take-Profit\",\n \"singularVariableName\": \"takeProfit\",\n \"pluralVariableName\": \"takeProfits\",\n \"nodePath\": \"tradingEngine.tradingCurrent.position\",\n \"saveAtCycle\": \"Second\"\n}","project":"Superalgos","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","config":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period\",\n \"fileName\": \"Data.json\",\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"3cd59aa1-0590-43b6-9fb7-c85276ac132e","savedPayload":{"position":{"x":30914.45317088284,"y":19344.273560434543},"targetPosition":{"x":31112.18702123178,"y":19236.91283937613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","config":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n },\n \"timeFrames\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Session/@Product/@Dataset\",\n \"fileName\": \"Time.Frames.json\"\n }\n }","project":"Superalgos","id":"916d5610-87ae-47e7-9067-9a406141e3df","savedPayload":{"position":{"x":30888.41959477392,"y":19260.431743611352},"targetPosition":{"x":31112.18702123178,"y":19236.91283937613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","project":"Superalgos","properties":[{"type":"Record Property","name":"Begin","config":"{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\",\n \"childProperty\": \"begin\"\n}","project":"Superalgos","id":"3f8411d3-5a4f-4243-9f6f-d61cc4a28fb5","savedPayload":{"position":{"x":30733.886637833406,"y":19191.420548751285},"targetPosition":{"x":30937.32917990396,"y":19095.315751389917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"End","config":"{\n \"codeName\": \"end\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\",\n \"childProperty\": \"end\"\n}","project":"Superalgos","id":"437e1ec6-c754-46bb-9942-e05eb056629c","savedPayload":{"position":{"x":30712.335474265175,"y":19093.632771019427},"targetPosition":{"x":30937.32917990396,"y":19095.315751389917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Take Profit","config":"{\n \"codeName\": \"takeProfit\",\n \"isString\": false\n}","project":"Superalgos","id":"81208625-05fb-4e89-bb88-ff16df25bdb7","savedPayload":{"position":{"x":30735.347073465426,"y":18996.178328190344},"targetPosition":{"x":30937.32917990396,"y":19095.315751389917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Take Profit Phase","config":"{\n \"codeName\": \"takeProfitPhase\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\"\n}","project":"Superalgos","id":"4ccb1152-df42-41ef-b8db-da8ee01c6f09","savedPayload":{"position":{"x":30798.363705993797,"y":18918.35926786664},"targetPosition":{"x":30937.32917990396,"y":19095.315751389917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Initial Value","config":"{\n \"codeName\": \"initialValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\"\n}","project":"Superalgos","id":"9fb3dde7-59a6-4149-b1a1-457d17e5bfbd","savedPayload":{"position":{"x":30888.904154929773,"y":18875.588609333572},"targetPosition":{"x":30937.32917990396,"y":19095.315751389917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Record Property","name":"Final Value","config":"{\n \"codeName\": \"finalValue\",\n \"isString\": false,\n \"nodePath\": \"tradingEngine.tradingCurrent.position.takeProfit\"\n}","project":"Superalgos","id":"d391644b-9fa2-4eb2-b5ad-0d5c8ec7efa2","savedPayload":{"position":{"x":30989.035773955842,"y":18876.337606061315},"targetPosition":{"x":30937.32917990396,"y":19095.315751389917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fe08bafa-9d05-4c76-9448-0d21bd36346c","savedPayload":{"position":{"x":30937.32917990396,"y":19095.315751389917},"targetPosition":{"x":31112.18702123178,"y":19236.91283937613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"2542c7d0-fa26-4b52-a59a-a3630e52eb89","savedPayload":{"position":{"x":31112.18702123178,"y":19236.91283937613},"targetPosition":{"x":31559.721874147504,"y":19189.87503090569},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Plotter Module","name":"Take Profit","id":"78a2df79-8912-44d7-a8c7-4b6a0a7235c2"}}}],"productDefinitionFolders":[],"id":"5572f4e4-17f2-4037-b524-97d3cf582a64","savedPayload":{"position":{"x":31559.721874147504,"y":19189.87503090569},"targetPosition":{"x":31742.753363531614,"y":18778.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7e586bb9-0198-431d-83af-cb552d5f6e4e","savedPayload":{"position":{"x":31742.753363531614,"y":18778.779574966517},"targetPosition":{"x":31478.25,"y":18414.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8c7f3687-b5ae-4a45-bda1-751cb2c55995","savedPayload":{"position":{"x":31483.25,"y":18502.72192749779},"targetPosition":{"x":31033.25,"y":18502.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}}],"plotters":[{"type":"Plotter","name":"Trading Engine","config":"{ \n\"codeName\": \"Trading-Engine\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Trading Episode Counters","config":"{ \n\"codeName\": \"Trading-Episode-Counters\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Trading Episode Counters","config":"{ \n \"codeName\": \"Trading-Episode-Counters\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"a603cdac-43fd-4ed9-bc66-12c708158f4c","savedPayload":{"position":{"x":31481.46763171852,"y":17914.16444378209},"targetPosition":{"x":31633.077288488188,"y":18080.41579557865},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ed1e5a45-552b-4050-96b6-8f3b7e0e0e42","savedPayload":{"position":{"x":31633.077288488188,"y":18080.41579557865},"targetPosition":{"x":31784.686945257858,"y":18246.66714737521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Strategies","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.strategies","project":"Superalgos","id":"bd3377de-142c-4f1f-a9cd-1e3a92227fb9","savedPayload":{"position":{"x":31655.763299913855,"y":17815.530633413317},"targetPosition":{"x":31720.225122585856,"y":18031.098890394263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3445841f-c443-47ed-ab69-af44aafbd805","savedPayload":{"position":{"x":31720.225122585856,"y":18031.098890394263},"targetPosition":{"x":31784.686945257858,"y":18246.66714737521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Positions","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.positions","project":"Superalgos","id":"a4e07f20-da19-4745-932b-021844ede19f","savedPayload":{"position":{"x":31855.59387721431,"y":17802.288697177046},"targetPosition":{"x":31820.140411236083,"y":18024.477922276128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"960b035e-f799-4e83-81ab-4ce423d081d6","savedPayload":{"position":{"x":31820.140411236083,"y":18024.477922276128},"targetPosition":{"x":31784.686945257858,"y":18246.66714737521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Orders","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.orders","project":"Superalgos","id":"bb28084c-0e1e-4c27-a488-7d8417fb7794","savedPayload":{"position":{"x":32041.380467024344,"y":17877.061362946555},"targetPosition":{"x":31913.0337061411,"y":18061.864255160883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4ba9c931-98ec-4390-a68e-7392b7e2c0e4","savedPayload":{"position":{"x":31913.0337061411,"y":18061.864255160883},"targetPosition":{"x":31784.686945257858,"y":18246.66714737521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hits","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hits","project":"Superalgos","id":"4a2c6bca-66d4-4f1f-a2c9-a034f879032d","savedPayload":{"position":{"x":32176.325756709073,"y":18025.038987239637},"targetPosition":{"x":31980.506350983465,"y":18135.853067307424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"77748bc7-f305-46f7-a51d-4b07420f0174","savedPayload":{"position":{"x":31980.506350983465,"y":18135.853067307424},"targetPosition":{"x":31784.686945257858,"y":18246.66714737521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fails","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.fails","project":"Superalgos","id":"0b4b3713-a461-4a82-a014-496bf0a13a44","savedPayload":{"position":{"x":32233.702176651077,"y":18216.91278673858},"targetPosition":{"x":32009.194560954467,"y":18231.789967056895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8c96317c-9c59-4617-ac0d-80a4475b7044","savedPayload":{"position":{"x":32009.194560954467,"y":18231.789967056895},"targetPosition":{"x":31784.686945257858,"y":18246.66714737521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2a5783fe-af9a-443c-b4e7-32d8bdabff82","savedPayload":{"position":{"x":31784.686945257858,"y":18246.66714737521},"targetPosition":{"x":31700.68061780802,"y":18455.39648634889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"11308192-1761-4746-8567-50f5d50eee37","savedPayload":{"position":{"x":31812.06465470365,"y":18439.589958430566},"targetPosition":{"x":31700.68061780802,"y":18455.39648634889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"5e478e3f-e432-4364-8f2c-2f3b2849848b","savedPayload":{"position":{"x":31700.68061780802,"y":18455.39648634889},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Trading Episode Statistics","config":"{ \n\"codeName\": \"Trading-Episode-Statistics\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Trading Episode Statistics","config":"{ \n \"codeName\": \"Trading-Episode-Statistics\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"8ccceec4-4b55-4002-82fc-5eb003680884","savedPayload":{"position":{"x":31579.173261119828,"y":17936.40890543743},"targetPosition":{"x":31709.63812676052,"y":18119.722622418336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a656f547-17d4-48c8-8a30-110cb1cc8d54","savedPayload":{"position":{"x":31709.63812676052,"y":18119.722622418336},"targetPosition":{"x":31840.102992401215,"y":18303.03633939924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Profit Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.profitLoss","project":"Superalgos","id":"2c744dce-e9bc-4b52-ae5a-88153818efe8","savedPayload":{"position":{"x":31764.08710971697,"y":17859.50326782539},"targetPosition":{"x":31802.095051059092,"y":18081.269803612315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dac1e943-73af-419a-89d3-cf7413d0410d","savedPayload":{"position":{"x":31802.095051059092,"y":18081.269803612315},"targetPosition":{"x":31840.102992401215,"y":18303.03633939924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ROI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ROI","project":"Superalgos","id":"0262af09-67a3-4948-9f03-903b95f75754","savedPayload":{"position":{"x":31964.056836153348,"y":17870.4447946147},"targetPosition":{"x":31902.07991427728,"y":18086.74056700697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c5ddf4c7-c06c-48cb-b474-aa1049dda30f","savedPayload":{"position":{"x":31902.07991427728,"y":18086.74056700697},"targetPosition":{"x":31840.102992401215,"y":18303.03633939924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Ratio","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitRatio","project":"Superalgos","id":"2e63251f-fa85-44c1-a977-6ea9b1289de4","savedPayload":{"position":{"x":32139.47598364048,"y":17967.066382235727},"targetPosition":{"x":31989.789488020848,"y":18135.051360817484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f4dba581-f375-45b7-b3e9-8397b74c14f9","savedPayload":{"position":{"x":31989.789488020848,"y":18135.051360817484},"targetPosition":{"x":31840.102992401215,"y":18303.03633939924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Annualized Rate Of Return","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.annualizedRateOfReturn","project":"Superalgos","id":"3b65f366-e8c3-4298-9617-9d7cd121a0fc","savedPayload":{"position":{"x":32255.600638643886,"y":18130.230940274105},"targetPosition":{"x":32047.85181552255,"y":18216.633639836673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0ddc2941-7f32-43c4-a2ac-33933f7176ea","savedPayload":{"position":{"x":32047.85181552255,"y":18216.633639836673},"targetPosition":{"x":31840.102992401215,"y":18303.03633939924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFail","project":"Superalgos","id":"1fda27ad-cc5a-441a-8d2e-d0e820d994eb","savedPayload":{"position":{"x":32289.43088906471,"y":18327.621726928355},"targetPosition":{"x":32064.766940732963,"y":18315.329033163798},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"aa06aaaa-c76e-4cb7-b2a4-752703cd91d8","savedPayload":{"position":{"x":32064.766940732963,"y":18315.329033163798},"targetPosition":{"x":31840.102992401215,"y":18303.03633939924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6ea43033-418d-4d87-b640-02010679aa8b","savedPayload":{"position":{"x":31840.102992401215,"y":18303.03633939924},"targetPosition":{"x":31731.549624069597,"y":18500.11796265179},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"a22754c1-aa31-4bef-8d7f-4b0df8b2c6e5","savedPayload":{"position":{"x":31844.026812330394,"y":18497.85254415943},"targetPosition":{"x":31731.549624069597,"y":18500.11796265179},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"6ce18a43-2e6a-452e-a72d-1c56a58d3f81","savedPayload":{"position":{"x":31731.549624069597,"y":18500.11796265179},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Candle","config":"{ \n\"codeName\": \"Current-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"db2a5867-c3c9-40ae-86f2-19845ca4bffe","savedPayload":{"position":{"x":31859.391714904497,"y":18502.06277596456},"targetPosition":{"x":31756.802982230387,"y":18548.234216577996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"31789d43-d608-4eeb-a3ff-338a99074045","savedPayload":{"position":{"x":31756.802982230387,"y":18548.234216577996},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Episode Balances","config":"{ \n\"codeName\": \"Current-Balance\"\n}","project":"Superalgos","panels":[{"type":"Plotter Panel","name":"Current Balance","config":"{ \n \"codeName\": \"Current-Balance\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Balance Base Asset","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.balanceBaseAsset","project":"Superalgos","id":"fcc203c4-9d04-4ac2-8740-75deaee8e2a4","savedPayload":{"position":{"x":32198.23019929594,"y":18236.223676763253},"targetPosition":{"x":32231.318327366254,"y":18401.69795960141},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ab01ee28-2095-4f64-8162-173c6aa8d32b","savedPayload":{"position":{"x":32231.318327366254,"y":18401.69795960141},"targetPosition":{"x":32264.40645543657,"y":18567.172242439567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Balance Quoted Asset","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.balanceQuotedAsset","project":"Superalgos","id":"37fd5f0b-0bbf-419b-9d30-e54e0569937a","savedPayload":{"position":{"x":32405.395425766575,"y":18260.531801132023},"targetPosition":{"x":32334.900940601572,"y":18413.852021785795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"01cbacca-656b-4437-be3c-dcf8f10d7ac8","savedPayload":{"position":{"x":32334.900940601572,"y":18413.852021785795},"targetPosition":{"x":32264.40645543657,"y":18567.172242439567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Both Assets in Base Asset","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.balanceBaseAsset + (record.balanceQuotedAsset / candle.close)","project":"Superalgos","id":"d3dc0826-e399-4967-85c7-bc0fe04dbc4a","savedPayload":{"position":{"x":32558.70765761,"y":18401.96615175501},"targetPosition":{"x":32411.557056523285,"y":18484.569197097288},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"809c4813-6f76-4591-ac3a-b9a38d3012b4","savedPayload":{"position":{"x":32411.557056523285,"y":18484.569197097288},"targetPosition":{"x":32264.40645543657,"y":18567.172242439567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Both Assets in Quoted Asset","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.balanceQuotedAsset + (record.balanceBaseAsset * candle.close)","project":"Superalgos","id":"063de6a6-f51c-4531-9de5-1f6095e052ef","savedPayload":{"position":{"x":32599.606833153128,"y":18606.503613871002},"targetPosition":{"x":32432.00664429485,"y":18586.837928155284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32d1a407-2032-4c99-a96a-82ded9d663a3","savedPayload":{"position":{"x":32432.00664429485,"y":18586.837928155284},"targetPosition":{"x":32264.40645543657,"y":18567.172242439567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cb03ef16-522f-4189-ab3a-b410bf1f4176","savedPayload":{"position":{"x":32264.40645543657,"y":18567.172242439567},"targetPosition":{"x":32149.983662194187,"y":18691.204443446448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"27e334d8-0ec2-4047-a961-af4c5fcf8d32","savedPayload":{"position":{"x":32314.610095774635,"y":18728.281388662883},"targetPosition":{"x":32149.983662194187,"y":18691.204443446448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"e5d9e3e1-d1f4-4493-b452-33fe49c81228","savedPayload":{"position":{"x":31776.07244146279,"y":18599.043604796894},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Distance To Trading Event","config":"{ \n\"codeName\": \"Distance-To-Trading-Event\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"dc45b078-aeee-40bf-8f6d-f8b12a57494f","savedPayload":{"position":{"x":31899.73424919171,"y":18631.526520261414},"targetPosition":{"x":31789.07700966016,"y":18651.80521201548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"56eb7de2-0281-404a-bd4d-34ac113e2325","savedPayload":{"position":{"x":31789.07700966016,"y":18651.80521201548},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Strategy","config":"{ \n\"codeName\": \"Current-Strategy\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"97c36937-1cdc-42ce-b886-ca8220b14025","savedPayload":{"position":{"x":31907.921800784563,"y":18698.9570742317},"targetPosition":{"x":31795.62705093444,"y":18705.749655191707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"a3c31000-1b82-4fe9-ae56-6d5893582b16","savedPayload":{"position":{"x":31795.62705093444,"y":18705.749655191707},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Last Strategy","config":"{ \n\"codeName\": \"Last-Strategy\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"c242da84-b00b-4900-ad95-b25a57ef9603","savedPayload":{"position":{"x":31907.921800784563,"y":18766.88288383177},"targetPosition":{"x":31795.62705093444,"y":18760.090302871766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"028aaa23-630c-4aa6-a168-6b2a128b1a83","savedPayload":{"position":{"x":31795.62705093444,"y":18760.090302871766},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Position","config":"{ \n\"codeName\": \"Current-Position\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"daf7ee4e-434b-48df-af3b-b17489fe6a12","savedPayload":{"position":{"x":31899.73424919171,"y":18834.31343780206},"targetPosition":{"x":31789.07700966016,"y":18814.034746047993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"0d2212c7-07bb-4c41-94fb-00844415ba5e","savedPayload":{"position":{"x":31789.07700966016,"y":18814.034746047993},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Last Position","config":"{ \n\"codeName\": \"Last-Position\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"c4473b0f-99f8-4129-b8ee-1f6a988e9440","savedPayload":{"position":{"x":31883.478538945,"y":18900.265446825288},"targetPosition":{"x":31776.07244146279,"y":18866.796353266578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"08c88b9c-70f1-49ff-aa16-21f2bc1c0ba1","savedPayload":{"position":{"x":31776.07244146279,"y":18866.796353266578},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Previous Candle","config":"{ \n\"codeName\": \"Previous-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"559cabae-7e0e-4ff8-b1dd-8f822421fe6e","savedPayload":{"position":{"x":31859.391714904497,"y":18963.77718209891},"targetPosition":{"x":31756.802982230387,"y":18917.605741485477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"076dcee2-2923-4455-8697-263649515a3b","savedPayload":{"position":{"x":31756.802982230387,"y":18917.605741485477},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Market Buy Orders","config":"{ \n\"codeName\": \"Market-Buy-Orders\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"actualRate\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"8ed02a94-4fce-4314-ab0a-6642e85bdca3","savedPayload":{"position":{"x":31827.82501720351,"y":19023.92249950667},"targetPosition":{"x":31731.549624069597,"y":18965.72199541168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"50d624c9-9a6e-4d57-a147-29d5c004b3f2","savedPayload":{"position":{"x":31731.549624069597,"y":18965.72199541168},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Market Sell Orders","config":"{ \n\"codeName\": \"Market-Sell-Orders\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"actualRate\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"15dc7163-1703-4cad-9253-d48d7bb01800","savedPayload":{"position":{"x":31789.238759376538,"y":19079.82434488529},"targetPosition":{"x":31700.68061780802,"y":19010.44347171458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"4f84a1a5-f9cd-4b9d-9d91-661ba912e2ca","savedPayload":{"position":{"x":31700.68061780802,"y":19010.44347171458},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Limit Buy Orders","config":"{ \n\"codeName\": \"Limit-Buy-Orders\",\n \"useRateAtMousePosition\": true\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"b89ff555-961b-4190-b874-4968e26db1b4","savedPayload":{"position":{"x":31744.19561595138,"y":19130.66754344917},"targetPosition":{"x":31664.64610306789,"y":19051.11803056568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"17ec46bd-e5c0-48d5-a3b6-e108cc835f17","savedPayload":{"position":{"x":31664.64610306789,"y":19051.11803056568},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Limit Sell Orders","config":"{ \n\"codeName\": \"Limit-Sell-Orders\",\n \"useRateAtMousePosition\": true\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"fe4a4590-f68f-454e-84ba-96ae9cef3b70","savedPayload":{"position":{"x":31693.3524173875,"y":19175.71068687433},"targetPosition":{"x":31623.97154421679,"y":19087.15254530581},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"1ec8da3f-8749-430d-8ad9-35fffc0d61ec","savedPayload":{"position":{"x":31623.97154421679,"y":19087.15254530581},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Strategy Open Stage","config":"{ \n\"codeName\": \"Current-Strategy-Open-Stage\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"eca15627-7af5-4aef-9095-90c42831202c","savedPayload":{"position":{"x":31637.45057200888,"y":19214.296944701302},"targetPosition":{"x":31579.25006791389,"y":19118.021551567388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"f759a457-fc11-43a8-bf2c-6ebf1db0e78d","savedPayload":{"position":{"x":31579.25006791389,"y":19118.021551567388},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Strategy Close Stage","config":"{ \n\"codeName\": \"Current-Strategy-Close-Stage\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"59cb7431-a489-4ab2-ba79-78996e8630c8","savedPayload":{"position":{"x":31577.30525460112,"y":19245.863642402288},"targetPosition":{"x":31531.133813987686,"y":19143.274909728178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"6be13ce1-0fae-4355-99b2-dc8db000251f","savedPayload":{"position":{"x":31531.133813987686,"y":19143.274909728178},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Strategy Trigger Stage","config":"{ \n\"codeName\": \"Current-Strategy-Trigger-Stage\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"aec5592e-57b9-4256-88d8-861534624284","savedPayload":{"position":{"x":31513.793519327497,"y":19269.95046644279},"targetPosition":{"x":31480.324425768787,"y":19162.54436896058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"823fa15f-bf29-4784-a5f8-5b82d2ed7645","savedPayload":{"position":{"x":31480.324425768787,"y":19162.54436896058},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Strategy Manage Stage","config":"{ \n\"codeName\": \"Current-Strategy-Manage-Stage\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"c060b2bf-e594-4bb5-b0d6-d48f5c03d2e0","savedPayload":{"position":{"x":31447.841510304268,"y":19286.206176689502},"targetPosition":{"x":31427.562818550203,"y":19175.54893715795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"34a912c3-4b0f-4f21-9736-4ef47cd0544d","savedPayload":{"position":{"x":31427.562818550203,"y":19175.54893715795},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Current Episode","config":"{ \n\"codeName\": \"Current-Position\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"808e43e8-468e-4d37-b2c2-210b902f2d6b","savedPayload":{"position":{"x":31380.41095633398,"y":19294.393728282354},"targetPosition":{"x":31373.618375373975,"y":19182.09897843223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"bf241117-1c2c-470c-a172-b86b2befa9a2","savedPayload":{"position":{"x":31373.618375373975,"y":19182.09897843223},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Episode Base Asset","config":"{ \n\"codeName\": \"Previous-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"3e32e9c9-41c5-44c8-85ae-2ef6ee053135","savedPayload":{"position":{"x":31312.48514673391,"y":19294.393728282354},"targetPosition":{"x":31319.277727693916,"y":19182.09897843223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"a99b25e6-7aca-41a2-aacc-1911aac2ee3e","savedPayload":{"position":{"x":31319.277727693916,"y":19182.09897843223},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Episode Quoted Asset","config":"{ \n\"codeName\": \"Previous-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"82cc01b1-b354-4e30-a1a0-7bb378dc322c","savedPayload":{"position":{"x":31245.054592763623,"y":19286.206176689502},"targetPosition":{"x":31265.33328451769,"y":19175.54893715795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"ede92318-db13-4951-83b1-11fc0345d677","savedPayload":{"position":{"x":31265.33328451769,"y":19175.54893715795},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Last Market Order","config":"{ \n\"codeName\": \"Previous-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"0bbba556-73d6-43f9-bf55-17e83ea9ab40","savedPayload":{"position":{"x":31179.102583740394,"y":19269.95046644279},"targetPosition":{"x":31212.571677299104,"y":19162.54436896058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"05aa37c8-9f6d-4276-96a6-3123707e7686","savedPayload":{"position":{"x":31212.571677299104,"y":19162.54436896058},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Last Limit Order","config":"{ \n\"codeName\": \"Previous-Candle\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"c89abeeb-79ff-4f3f-a031-091b10f8037a","savedPayload":{"position":{"x":31115.59084846677,"y":19245.863642402288},"targetPosition":{"x":31161.762289080205,"y":19143.274909728178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"2284d48f-cf52-4277-b81e-c62afef88b71","savedPayload":{"position":{"x":31161.762289080205,"y":19143.274909728178},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Stop Loss","config":"{ \n\"codeName\": \"Stop-Loss\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"097b8ec2-54f5-4fca-8de3-1cd4ac9eb05e","savedPayload":{"position":{"x":31055.445531059013,"y":19214.296944701302},"targetPosition":{"x":31113.646035154,"y":19118.021551567388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"cdafbd38-ade8-4548-b951-b404c1bd7885","savedPayload":{"position":{"x":31113.646035154,"y":19118.021551567388},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Take Profit","config":"{ \n\"codeName\": \"Take-Profit\"\n}","project":"Superalgos","panels":[],"recordValues":{"type":"Record Values","name":"New Record Values","project":"Superalgos","id":"a480ca2f-187a-429a-915b-e8f6a1913bc0","savedPayload":{"position":{"x":30999.54368568039,"y":19175.71068687433},"targetPosition":{"x":31068.9245588511,"y":19087.15254530581},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{}}},"id":"d06674eb-36cf-4048-bd99-31712b0523a0","savedPayload":{"position":{"x":31068.9245588511,"y":19087.15254530581},"targetPosition":{"x":31346.448051533946,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ebb03c87-e87e-4f4b-8763-361854776287","savedPayload":{"position":{"x":31351.448051533946,"y":18820.919979031736},"targetPosition":{"x":31033.25,"y":18502.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Trading System","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Highlights","config":"{ \n\"codeName\": \"Highlights\",\n\"connectTo\": \"Trading System\"\n}","project":"Superalgos","panels":[],"nodesHighlights":{"type":"Nodes Highlights","name":"New Nodes Highlights","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"fa39a76d-1b97-41a2-ab18-f33c2f31fded","savedPayload":{"position":{"x":31884.20086466564,"y":19142.837222435242},"targetPosition":{"x":31456.22543233282,"y":19003.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d979c9f0-530a-41d3-a357-b57a3e4f2201","savedPayload":{"position":{"x":31456.22543233282,"y":19003.779574966517},"targetPosition":{"x":31028.25,"y":18864.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Values","config":"{ \n\"codeName\": \"Values\",\n\"connectTo\": \"Trading System\"\n}","project":"Superalgos","panels":[],"nodesValues":{"type":"Nodes Values","name":"New Nodes Values","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"f42e5006-d8ec-437a-8906-53d7ce68b79c","savedPayload":{"position":{"x":31756.365294937452,"y":19393.72865456102},"targetPosition":{"x":31392.307647468726,"y":19129.225291029405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"476925ed-e2ac-443d-82f3-501b64ca6c87","savedPayload":{"position":{"x":31392.307647468726,"y":19129.225291029405},"targetPosition":{"x":31028.25,"y":18864.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Errors","config":"{\n \"codeName\": \"Errors\",\n \"connectTo\": \"Trading System\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"errors\",\n \"rateInArrayAtIndex\": 3,\n \"rateOffset\": -100,\n \"rateOffsetBasedOnArrayIndex\": -50,\n \"rateRange\": 20\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"Errors","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Error #1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[0][3]","project":"Superalgos","id":"733b921d-8f51-4bca-b0b5-b0d9a1f9c734","savedPayload":{"position":{"x":31912.451076715093,"y":18352.40068157588},"targetPosition":{"x":31959.488885185536,"y":18799.935534491604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f189c006-3adb-4b21-8b9d-342f94e7640f","savedPayload":{"position":{"x":31959.488885185536,"y":18799.935534491604},"targetPosition":{"x":32006.52669365598,"y":19247.470387407328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Error #2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[1][3]","project":"Superalgos","id":"afb68973-461d-4a1a-a547-ccc2023bab56","savedPayload":{"position":{"x":32372.589672424197,"y":18425.279475528983},"targetPosition":{"x":32189.558183040088,"y":18836.374931468155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2dfd59cd-d4ef-4f71-8507-ff1d891ab697","savedPayload":{"position":{"x":32189.558183040088,"y":18836.374931468155},"targetPosition":{"x":32006.52669365598,"y":19247.470387407328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Error #3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[2][3]","project":"Superalgos","id":"130b37a1-572a-4370-95ea-a7faf7b546a6","savedPayload":{"position":{"x":32734.64198859343,"y":18718.4636603441},"targetPosition":{"x":32370.584341124704,"y":18982.967023875713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c78f507a-32d5-49b0-93c4-e433aaf32579","savedPayload":{"position":{"x":32370.584341124704,"y":18982.967023875713},"targetPosition":{"x":32006.52669365598,"y":19247.470387407328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Error #4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[3][3]","project":"Superalgos","id":"979f28e7-49cd-4467-87a8-e81244a74145","savedPayload":{"position":{"x":32901.596399487426,"y":19153.394770466442},"targetPosition":{"x":32454.061546571702,"y":19200.432578936885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"722460d3-2849-4008-9437-c59301966ea7","savedPayload":{"position":{"x":32454.061546571702,"y":19200.432578936885},"targetPosition":{"x":32006.52669365598,"y":19247.470387407328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Error #5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.errors[4][3]","project":"Superalgos","id":"4ecd591e-aa20-44db-a853-49bd2eed52ee","savedPayload":{"position":{"x":32828.71760553432,"y":19613.533366175547},"targetPosition":{"x":32417.62214959515,"y":19430.501876791437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0d37d958-e01a-4082-8b7b-b97e807a4864","savedPayload":{"position":{"x":32417.62214959515,"y":19430.501876791437},"targetPosition":{"x":32006.52669365598,"y":19247.470387407328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e50625b6-8b4d-4ae2-960b-b45769639162","savedPayload":{"position":{"x":32006.52669365598,"y":19247.470387407328},"targetPosition":{"x":31642.469046187252,"y":19511.97375093894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[],"images":[{"type":"Image","name":"Error #1","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 30\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[0] !== undefined","project":"Superalgos","id":"956eb8d9-f297-4783-ac35-625b8d7b1c67","savedPayload":{"position":{"x":32204.177326097208,"y":19175.85033231574},"targetPosition":{"x":32062.580238110993,"y":19350.708173643558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": -100\n}","project":"Superalgos","id":"1da7aa3c-77fb-4d0d-8895-e1c231dcca90","savedPayload":{"position":{"x":32284.810114744898,"y":19385.90592827761},"targetPosition":{"x":32062.580238110993,"y":19350.708173643558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #1","id":"f189c006-3adb-4b21-8b9d-342f94e7640f"}}},"id":"bd5f7149-372f-4a70-94df-4727b3cd3b32","savedPayload":{"position":{"x":32062.580238110993,"y":19350.708173643558},"targetPosition":{"x":31642.469046187252,"y":19511.97375093894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Error #2","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 25\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[1] !== undefined","project":"Superalgos","id":"185083c8-855a-4ccb-ab50-7d4e2d3c3bb3","savedPayload":{"position":{"x":32272.03272283734,"y":19332.684260702692},"targetPosition":{"x":32090.003899102976,"y":19464.9359424685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": -150\n}","project":"Superalgos","id":"d774a55f-70f2-41f2-b6e7-18066a4118c6","savedPayload":{"position":{"x":32295.55162707256,"y":19556.451687160556},"targetPosition":{"x":32090.003899102976,"y":19464.9359424685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #2","id":"2dfd59cd-d4ef-4f71-8507-ff1d891ab697"}}},"id":"f34ea534-6d63-4839-aede-eaa2c3b19919","savedPayload":{"position":{"x":32090.003899102976,"y":19464.9359424685},"targetPosition":{"x":31642.469046187252,"y":19511.97375093894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Error #3","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[2] !== undefined","project":"Superalgos","id":"e1df910f-84e4-4a86-9d11-e17a135d1793","savedPayload":{"position":{"x":32296.984395416934,"y":19501.73647155935},"targetPosition":{"x":32086.928799455065,"y":19582.369260207044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": -200\n}","project":"Superalgos","id":"f7de0684-3ae0-4e31-b944-97b263adb8b7","savedPayload":{"position":{"x":32261.786640782884,"y":19723.96634819326},"targetPosition":{"x":32086.928799455065,"y":19582.369260207044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #3","id":"c78f507a-32d5-49b0-93c4-e433aaf32579"}}},"id":"c4c1bef4-cad9-4463-87b6-16c8f16be89b","savedPayload":{"position":{"x":32086.928799455065,"y":19582.369260207044},"targetPosition":{"x":31642.469046187252,"y":19511.97375093894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Error #4","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 15\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[3] !== undefined","project":"Superalgos","id":"a0c6bc59-9b12-479e-af28-4782b770d743","savedPayload":{"position":{"x":32277.331928584284,"y":19671.48633608783},"targetPosition":{"x":32053.564502126424,"y":19695.00524032305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": -250\n}","project":"Superalgos","id":"103d4ce2-29e7-4a0d-80b7-f9e0eeebebe3","savedPayload":{"position":{"x":32185.81618389223,"y":19877.034064057414},"targetPosition":{"x":32053.564502126424,"y":19695.00524032305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #4","id":"722460d3-2849-4008-9437-c59301966ea7"}}},"id":"3b62091e-13ad-4507-ade7-81f64d041f65","savedPayload":{"position":{"x":32053.564502126424,"y":19695.00524032305},"targetPosition":{"x":31642.469046187252,"y":19511.97375093894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Error #5","config":"{\n \"codeName\": \"bullet-error\",\n \"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.errors[4] !== undefined","project":"Superalgos","id":"dc750665-001d-46c5-ac80-2441d3877226","savedPayload":{"position":{"x":32214.414605476795,"y":19830.365681545423},"targetPosition":{"x":31992.18472884289,"y":19795.16792691137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Error #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": -300\n}","project":"Superalgos","id":"6165f0a7-4b05-4077-84f4-9cbea0c09417","savedPayload":{"position":{"x":32072.817517490585,"y":20005.22352287324},"targetPosition":{"x":31992.18472884289,"y":19795.16792691137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #5","id":"0d37d958-e01a-4082-8b7b-b97e807a4864"}}},"id":"dbad1560-3694-46ee-9133-a3358489e5a0","savedPayload":{"position":{"x":31992.18472884289,"y":19795.16792691137},"targetPosition":{"x":31642.469046187252,"y":19511.97375093894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"Error #1","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[0] !== undefined","project":"Superalgos","id":"ac81077c-8c42-4c4c-b443-5faa1ad3b3b4","savedPayload":{"position":{"x":32131.972409718866,"y":19876.031398407667},"targetPosition":{"x":31906.972409718866,"y":19876.031398407667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": -135\n}","project":"Superalgos","id":"5d4e3be6-6a2b-4cca-8086-c2db9a75bd23","savedPayload":{"position":{"x":32089.00123345323,"y":20008.283080173474},"targetPosition":{"x":31906.972409718866,"y":19876.031398407667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #1","id":"f189c006-3adb-4b21-8b9d-342f94e7640f"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"1","project":"Superalgos","id":"adc6d425-cfa0-47e9-a67d-444a112ee3c2","savedPayload":{"position":{"x":31976.50123345323,"y":20090.019114574076},"targetPosition":{"x":31906.972409718866,"y":19876.031398407667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"0907179a-16cc-4682-83af-2e7e0ad4d7ba","savedPayload":{"position":{"x":31837.443585984503,"y":20090.019114574076},"targetPosition":{"x":31906.972409718866,"y":19876.031398407667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ead7ed8a-332d-4ab1-b53e-1e9e0f705a81","savedPayload":{"position":{"x":31906.972409718866,"y":19876.031398407667},"targetPosition":{"x":31642.469046187252,"y":19511.97375093894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Error #2","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[1] !== undefined","project":"Superalgos","id":"f92d815c-65a8-419a-b903-28db5e349bf1","savedPayload":{"position":{"x":32021.067934397677,"y":19990.31922801075},"targetPosition":{"x":31803.734623482636,"y":19932.084942862683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": -180\n}","project":"Superalgos","id":"c5f1d9c0-570a-4eb7-9316-72cabe1aa0ec","savedPayload":{"position":{"x":31945.33171146885,"y":20106.9427841905},"targetPosition":{"x":31803.734623482636,"y":19932.084942862683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #2","id":"2dfd59cd-d4ef-4f71-8507-ff1d891ab697"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"2","project":"Superalgos","id":"2d7c6286-5f78-4242-8a74-15b6d6ddb166","savedPayload":{"position":{"x":31815.5102136373,"y":20156.77658818246},"targetPosition":{"x":31803.734623482636,"y":19932.084942862683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"fa0f7605-abca-4c72-a67b-1677456c1997","savedPayload":{"position":{"x":31681.190840604257,"y":20120.785820650402},"targetPosition":{"x":31803.734623482636,"y":19932.084942862683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c37ea548-51b4-4645-8af2-cfe9b47b142c","savedPayload":{"position":{"x":31803.734623482636,"y":19932.084942862683},"targetPosition":{"x":31642.469046187252,"y":19511.97375093894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Error #3","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[2] !== undefined","project":"Superalgos","id":"6ddc9257-082c-464b-a636-f8ec81154254","savedPayload":{"position":{"x":31884.362570509194,"y":20072.008603854665},"targetPosition":{"x":31689.506854657695,"y":19959.508603854665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": -225\n}","project":"Superalgos","id":"d983d03f-834b-404d-95fe-fb7bf53345a3","savedPayload":{"position":{"x":31781.02259934975,"y":20165.05633182425},"targetPosition":{"x":31689.506854657695,"y":19959.508603854665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #3","id":"c78f507a-32d5-49b0-93c4-e433aaf32579"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"3","project":"Superalgos","id":"6ef28222-1bb6-4a4e-9062-20c11588dc72","savedPayload":{"position":{"x":31642.7267242237,"y":20179.591814019772},"targetPosition":{"x":31689.506854657695,"y":19959.508603854665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"16c8f58a-e6a8-4972-971f-8ff352207469","savedPayload":{"position":{"x":31522.299268925282,"y":20110.06299028541},"targetPosition":{"x":31689.506854657695,"y":19959.508603854665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0c3465cb-f509-4383-9730-f5d6b73a3014","savedPayload":{"position":{"x":31689.506854657695,"y":19959.508603854665},"targetPosition":{"x":31642.469046187252,"y":19511.97375093894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Error #4","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[3] !== undefined","project":"Superalgos","id":"1931c52d-52b2-4b5d-9f68-1116e9616d09","savedPayload":{"position":{"x":31731.172562686123,"y":20115.532529973727},"targetPosition":{"x":31572.07353691915,"y":19956.433504206754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": -270\n}","project":"Superalgos","id":"b097d5f5-4817-4d5b-b0e1-cd7859328d92","savedPayload":{"position":{"x":31607.271291553203,"y":20178.66338084066},"targetPosition":{"x":31572.07353691915,"y":19956.433504206754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #4","id":"722460d3-2849-4008-9437-c59301966ea7"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"4","project":"Superalgos","id":"2faaa1f5-ae11-49b3-9f9a-8c2388c99fd3","savedPayload":{"position":{"x":31469.925674477752,"y":20156.909972149137},"targetPosition":{"x":31572.07353691915,"y":19956.433504206754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"37c3a29e-eddb-40cb-a06c-704f998d5311","savedPayload":{"position":{"x":31371.597068976767,"y":20058.58136664815},"targetPosition":{"x":31572.07353691915,"y":19956.433504206754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"644168bf-4b65-4019-8308-1001c13b4f7a","savedPayload":{"position":{"x":31572.07353691915,"y":19956.433504206754},"targetPosition":{"x":31642.469046187252,"y":19511.97375093894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Error #5","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.errors[4] !== undefined","project":"Superalgos","id":"6c6b8878-fc01-4280-b09d-a0dd2a9efee3","savedPayload":{"position":{"x":31571.937556803143,"y":20117.924922729613},"targetPosition":{"x":31459.437556803143,"y":19923.069206878114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Error #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": -315\n}","project":"Superalgos","id":"53be9549-3aed-4968-835b-ee0592d1fc3f","savedPayload":{"position":{"x":31435.91865256792,"y":20146.836633335974},"targetPosition":{"x":31459.437556803143,"y":19923.069206878114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Error #5","id":"0d37d958-e01a-4082-8b7b-b97e807a4864"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"5","project":"Superalgos","id":"1ff07e3a-4928-4e9f-b2d1-4ddc4487d462","savedPayload":{"position":{"x":31308.8831703724,"y":20090.276792610526},"targetPosition":{"x":31459.437556803143,"y":19923.069206878114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"9e594aea-79ee-4ca1-8bec-ba63b744ce89","savedPayload":{"position":{"x":31239.354346638036,"y":19969.84933731211},"targetPosition":{"x":31459.437556803143,"y":19923.069206878114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9d1ea8f6-dce7-44c6-ab1e-3b941ef3b095","savedPayload":{"position":{"x":31459.437556803143,"y":19923.069206878114},"targetPosition":{"x":31642.469046187252,"y":19511.97375093894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c2dcdcbc-31bf-4a44-b47f-a2e1bba10db9","savedPayload":{"position":{"x":31642.469046187252,"y":19511.97375093894},"targetPosition":{"x":31292.753363531614,"y":19228.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[],"nodesErrors":{"type":"Nodes Errors","name":"New Nodes Errors","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"c814ea79-0fa6-44bb-a636-d46d7b3720c4","savedPayload":{"position":{"x":31454.018940826998,"y":19648.890766890258},"targetPosition":{"x":31292.753363531614,"y":19228.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"64684730-d049-4d3c-8013-b48c5438417e","savedPayload":{"position":{"x":31292.753363531614,"y":19228.779574966517},"targetPosition":{"x":31028.25,"y":18864.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Status","config":"{ \n\"codeName\": \"Status\",\n\"connectTo\": \"Trading System\"\n}","project":"Superalgos","panels":[],"nodesStatus":{"type":"Nodes Status","name":"New Nodes Status","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"2b1290d8-41ff-48a3-a11b-45f1228e2a84","savedPayload":{"position":{"x":31306.365294937452,"y":19720.67279216343},"targetPosition":{"x":31167.307647468726,"y":19292.69735983061},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0437448d-8740-496b-8fce-d3804be81a2b","savedPayload":{"position":{"x":31167.307647468726,"y":19292.69735983061},"targetPosition":{"x":31028.25,"y":18864.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Progress","config":"{ \n\"codeName\": \"Progress\",\n\"connectTo\": \"Trading System\"\n}","project":"Superalgos","panels":[],"nodesProgress":{"type":"Nodes Progress","name":"New Nodes Progress","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"00c9d7bc-295f-48b6-81a0-71b6bc0b6299","savedPayload":{"position":{"x":31028.25,"y":19764.72192749779},"targetPosition":{"x":31028.25,"y":19314.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"99aecc8d-2bc4-4748-b642-78888c2d35eb","savedPayload":{"position":{"x":31028.25,"y":19314.72192749779},"targetPosition":{"x":31028.25,"y":18864.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Running","config":"{ \n\"codeName\": \"Running\",\n\"connectTo\": \"Trading System\"\n}","project":"Superalgos","panels":[],"nodesRunning":{"type":"Nodes Running","name":"New Nodes Running","config":"{ \n\"nodePath\": \"\"\n}","project":"Superalgos","id":"3ef03483-8d69-452c-9f56-984574b79e32","savedPayload":{"position":{"x":30750.134705062548,"y":19720.67279216343},"targetPosition":{"x":30889.192352531274,"y":19292.69735983061},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ac1e8218-af24-491f-a552-736d83d68c01","savedPayload":{"position":{"x":30889.192352531274,"y":19292.69735983061},"targetPosition":{"x":31028.25,"y":18864.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Announcements","config":"{ \n\"codeName\": \"Announcements\",\n\"connectTo\": \"Trading System\"\n}","project":"Superalgos","panels":[],"nodesAnnouncements":{"type":"Nodes Announcements","name":"New Nodes Announcements","project":"Superalgos","id":"197785fc-72c7-46ef-83bf-a095b01cbfec","savedPayload":{"position":{"x":30499.243272936772,"y":19592.837222435242},"targetPosition":{"x":30763.746636468386,"y":19228.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0a3b8bea-749a-48ce-8b53-e4a731555b98","savedPayload":{"position":{"x":30763.746636468386,"y":19228.779574966517},"targetPosition":{"x":31028.25,"y":18864.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Warnings","config":"{\n \"codeName\": \"Warnings\",\n \"connectTo\": \"Trading System\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"warnings\",\n \"rateInArrayAtIndex\": 3,\n \"rateOffset\": 100,\n \"rateOffsetBasedOnArrayIndex\": 50,\n \"rateRange\": 20\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"Warnings","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Warning #1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[0][3]","project":"Superalgos","id":"955dbb62-9da0-474a-b938-10447c4a54ac","savedPayload":{"position":{"x":30950.14783820408,"y":19917.970780565356},"targetPosition":{"x":30690.340217068748,"y":19767.970780565356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c17d208d-1b72-4cd2-b134-ee8c259e314d","savedPayload":{"position":{"x":30690.340217068748,"y":19767.970780565356},"targetPosition":{"x":30430.532595933415,"y":19617.970780565356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Warning #2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[1][3]","project":"Superalgos","id":"4e8e1cf7-9418-4529-a7a5-e27d89caeb09","savedPayload":{"position":{"x":30730.532595933415,"y":20137.58602283602},"targetPosition":{"x":30580.532595933415,"y":19877.77840170069},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"03218a15-cf40-4310-923c-a31620f9a945","savedPayload":{"position":{"x":30580.532595933415,"y":19877.77840170069},"targetPosition":{"x":30430.532595933415,"y":19617.970780565356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Warning #3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[2][3]","project":"Superalgos","id":"66881529-631d-4246-a743-a307bc9d6aa2","savedPayload":{"position":{"x":30430.532595933415,"y":20217.970780565356},"targetPosition":{"x":30430.532595933415,"y":19917.970780565356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"249c359c-5ca3-4a9e-be87-b8794ae526f2","savedPayload":{"position":{"x":30430.532595933415,"y":19917.970780565356},"targetPosition":{"x":30430.532595933415,"y":19617.970780565356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Warning #4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[3][3]","project":"Superalgos","id":"ac67add0-20b7-4c03-b678-8178339c01d5","savedPayload":{"position":{"x":30130.532595933415,"y":20137.58602283602},"targetPosition":{"x":30280.532595933415,"y":19877.77840170069},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9c241c90-c546-4603-9859-4dc209b26395","savedPayload":{"position":{"x":30280.532595933415,"y":19877.77840170069},"targetPosition":{"x":30430.532595933415,"y":19617.970780565356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Warning #5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.warnings[4][3]","project":"Superalgos","id":"4c040bc8-f527-430e-a6c0-01c2313c2317","savedPayload":{"position":{"x":29910.91735366275,"y":19917.970780565356},"targetPosition":{"x":30170.724974798082,"y":19767.970780565356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"38f9f62f-61b4-48c2-800b-8655bbd9b3e0","savedPayload":{"position":{"x":30170.724974798082,"y":19767.970780565356},"targetPosition":{"x":30430.532595933415,"y":19617.970780565356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"772d90ad-328d-4c7f-92fc-a7d3bba27a3e","savedPayload":{"position":{"x":30645.501540090463,"y":19842.99862115377},"targetPosition":{"x":30380.99817655885,"y":19478.940973685043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[],"images":[{"type":"Image","name":"Warning #1","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 30\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[0] !== undefined","project":"Superalgos","id":"5f82b590-2e76-4916-8ffe-1c2cb9fa9bd0","savedPayload":{"position":{"x":30381.376669207402,"y":19751.590407898235},"targetPosition":{"x":30346.012828880986,"y":19605.818672649704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": 100\n}","project":"Superalgos","id":"79c89efc-0aab-42b4-85b1-e8c982810f05","savedPayload":{"position":{"x":30237.452723165225,"y":19709.33052437202},"targetPosition":{"x":30346.012828880986,"y":19605.818672649704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #1","id":"c17d208d-1b72-4cd2-b134-ee8c259e314d"}}},"id":"5b5ba2dc-28d0-4cd1-a0d3-726f7ddc452d","savedPayload":{"position":{"x":30542.263753854233,"y":19899.052165608784},"targetPosition":{"x":30380.99817655885,"y":19478.940973685043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Warning #2","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 25\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[1] !== undefined","project":"Superalgos","id":"0830de77-83ac-4d23-bbb5-e01000d0d67f","savedPayload":{"position":{"x":30261.203063323177,"y":19720.17694129216},"targetPosition":{"x":30268.340350696737,"y":19570.34684041471},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": 150\n}","project":"Superalgos","id":"a284cc7a-eb77-46d7-8550-62c2e49c7504","savedPayload":{"position":{"x":30135.0150333985,"y":19639.08081867382},"targetPosition":{"x":30268.340350696737,"y":19570.34684041471},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #2","id":"03218a15-cf40-4310-923c-a31620f9a945"}}},"id":"cea6948c-1672-43a0-9c26-24beed56de5e","savedPayload":{"position":{"x":30428.03598502929,"y":19926.475826600767},"targetPosition":{"x":30380.99817655885,"y":19478.940973685043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Warning #3","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[2] !== undefined","project":"Superalgos","id":"90f8693e-7eba-40b3-add2-199e5fa39d70","savedPayload":{"position":{"x":30154.747529129527,"y":19656.17912355614},"targetPosition":{"x":30203.80772362714,"y":19514.42900074894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": 200\n}","project":"Superalgos","id":"fe54cdf2-7470-4b9c-af53-d884d1e3fa66","savedPayload":{"position":{"x":30056.518419037733,"y":19542.816687403003},"targetPosition":{"x":30203.80772362714,"y":19514.42900074894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #3","id":"249c359c-5ca3-4a9e-be87-b8794ae526f2"}}},"id":"ff51bae6-767c-4f9f-a027-a4415d19b04a","savedPayload":{"position":{"x":30310.602667290746,"y":19923.400726952856},"targetPosition":{"x":30380.99817655885,"y":19478.940973685043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Warning #4","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 15\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[3] !== undefined","project":"Superalgos","id":"c012b2be-d48f-4fb5-b537-107cf4b81bf8","savedPayload":{"position":{"x":30070.634460891382,"y":19564.781677273473},"targetPosition":{"x":30157.64299732706,"y":19442.595284465922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": 250\n}","project":"Superalgos","id":"c092f2a0-9773-434a-a61b-3cd50b800127","savedPayload":{"position":{"x":30008.3222089411,"y":19428.336877970294},"targetPosition":{"x":30157.64299732706,"y":19442.595284465922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #4","id":"9c241c90-c546-4603-9859-4dc209b26395"}}},"id":"ba893ce4-7c1d-488c-a935-99c6bc2552e4","savedPayload":{"position":{"x":30197.96668717474,"y":19890.036429624215},"targetPosition":{"x":30380.99817655885,"y":19478.940973685043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Warning #5","config":"{\n \"codeName\": \"bullet-warning\",\n \"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.warnings[4] !== undefined","project":"Superalgos","id":"09107391-78e3-4e1a-8aec-8d8b8ddd0180","savedPayload":{"position":{"x":30015.678199157715,"y":19453.389079980432},"targetPosition":{"x":30133.586163369135,"y":19360.66523204734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Warning #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": 300\n}","project":"Superalgos","id":"d2b36499-fdf2-42c6-bbb2-53ce8516285f","savedPayload":{"position":{"x":29994.330973416723,"y":19304.91586369829},"targetPosition":{"x":30133.586163369135,"y":19360.66523204734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #5","id":"38f9f62f-61b4-48c2-800b-8655bbd9b3e0"}}},"id":"7d5dcf4d-e2bd-4245-890e-059e71f9d7ff","savedPayload":{"position":{"x":30097.804000586424,"y":19828.65665634068},"targetPosition":{"x":30380.99817655885,"y":19478.940973685043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"Warning #1","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[0] !== undefined","project":"Superalgos","id":"5128e16d-0369-4b46-99cd-ac16ea8567f4","savedPayload":{"position":{"x":30029.04552807084,"y":19382.846099797218},"targetPosition":{"x":30133.586163369135,"y":19275.276329083372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": 125\n}","project":"Superalgos","id":"bf0aef48-38f2-434b-8e0f-c34522053ca1","savedPayload":{"position":{"x":29985.783087991982,"y":19300.854657978267},"targetPosition":{"x":30133.586163369135,"y":19275.276329083372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #1","id":"c17d208d-1b72-4cd2-b134-ee8c259e314d"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"1","project":"Superalgos","id":"1b4304d4-4b7d-4e90-9db3-e51608ecf545","savedPayload":{"position":{"x":29998.976399065432,"y":19209.093163896887},"targetPosition":{"x":30133.586163369135,"y":19275.276329083372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"4b6fabc8-c8f4-49c4-b83e-516887736c87","savedPayload":{"position":{"x":30063.586064885283,"y":19142.6113894337},"targetPosition":{"x":30133.586163369135,"y":19275.276329083372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9ae006e7-8db3-4812-87e1-9afb4aa67ee2","savedPayload":{"position":{"x":30016.940529090123,"y":19743.444337216657},"targetPosition":{"x":30380.99817655885,"y":19478.940973685043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Warning #2","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[1] !== undefined","project":"Superalgos","id":"d677605f-0593-4375-a13e-3b3b0e50d432","savedPayload":{"position":{"x":30027.031085759096,"y":19267.10621536163},"targetPosition":{"x":30157.64299732706,"y":19193.34627666479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": 170\n}","project":"Superalgos","id":"b2e1a54f-b276-4fd7-8a92-c1921180ee65","savedPayload":{"position":{"x":30008.62073702478,"y":19176.24756518121},"targetPosition":{"x":30157.64299732706,"y":19193.34627666479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #2","id":"03218a15-cf40-4310-923c-a31620f9a945"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"2","project":"Superalgos","id":"0550bd63-2049-4bb2-91f8-72b9a4d4e871","savedPayload":{"position":{"x":30047.1318266456,"y":19091.920041623685},"targetPosition":{"x":30157.64299732706,"y":19193.34627666479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"a3f44ed2-fa6f-421f-af49-5c37d1bb9e3c","savedPayload":{"position":{"x":30127.8544273302,"y":19046.33389250093},"targetPosition":{"x":30157.64299732706,"y":19193.34627666479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1148e259-3f9c-4716-a289-5a6d3392508a","savedPayload":{"position":{"x":29960.886984635108,"y":19640.206550980427},"targetPosition":{"x":30380.99817655885,"y":19478.940973685043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Warning #3","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[2] !== undefined","project":"Superalgos","id":"db2b9481-384d-4779-9edf-f76546c9b15c","savedPayload":{"position":{"x":30057.70593608579,"y":19155.487075495636},"targetPosition":{"x":30203.80772362714,"y":19121.512560381772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": 215\n}","project":"Superalgos","id":"61597646-ba59-44b7-83fb-4f8a4b2762a2","savedPayload":{"position":{"x":30065.63917565991,"y":19063.122044434163},"targetPosition":{"x":30203.80772362714,"y":19121.512560381772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #3","id":"249c359c-5ca3-4a9e-be87-b8794ae526f2"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"3","project":"Superalgos","id":"b8c449e0-2e5c-408c-a1e2-27dc6b686087","savedPayload":{"position":{"x":30126.348104381294,"y":18993.060205844034},"targetPosition":{"x":30203.80772362714,"y":19121.512560381772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"aa9124d9-7698-4d2c-abd7-cdf053296d1f","savedPayload":{"position":{"x":30216.643974898965,"y":18972.06280075237},"targetPosition":{"x":30203.80772362714,"y":19121.512560381772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"aa0cc626-62bb-41bd-b91a-995068ae86b4","savedPayload":{"position":{"x":29933.463323643125,"y":19525.978782155486},"targetPosition":{"x":30380.99817655885,"y":19478.940973685043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Warning #4","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[3] !== undefined","project":"Superalgos","id":"94c7add9-543a-481f-a623-2168ea59738b","savedPayload":{"position":{"x":30118.584985107816,"y":19057.031399086587},"targetPosition":{"x":30268.340350696737,"y":19065.594720716002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": 260\n}","project":"Superalgos","id":"ef077928-67be-44d9-9e7d-65204293dd62","savedPayload":{"position":{"x":30152.219109100875,"y":18970.642852644673},"targetPosition":{"x":30268.340350696737,"y":19065.594720716002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #4","id":"9c241c90-c546-4603-9859-4dc209b26395"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"4","project":"Superalgos","id":"c8f68edf-2dd4-4e65-9a5a-0a7bce80ebb9","savedPayload":{"position":{"x":30230.207600567715,"y":18920.52269251071},"targetPosition":{"x":30268.340350696737,"y":19065.594720716002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"5301fa6b-e176-427e-96f7-80c9cf051f27","savedPayload":{"position":{"x":30322.761506499333,"y":18925.815116334285},"targetPosition":{"x":30268.340350696737,"y":19065.594720716002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8a7ad74d-0efe-44dc-b737-820539545fb0","savedPayload":{"position":{"x":29936.538423291036,"y":19408.54546441694},"targetPosition":{"x":30380.99817655885,"y":19478.940973685043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Warning #5","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.warnings[4] !== undefined","project":"Superalgos","id":"e975c1a0-cb6c-42cd-bd47-fc8732816db1","savedPayload":{"position":{"x":30204.73617433506,"y":18979.715479498693},"targetPosition":{"x":30346.012828880986,"y":19030.122888481008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Warning #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": 305\n}","project":"Superalgos","id":"9358e516-e4bb-472b-b791-078a6b641d80","savedPayload":{"position":{"x":30261.34634605097,"y":18906.302103936592},"targetPosition":{"x":30346.012828880986,"y":19030.122888481008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Warning #5","id":"38f9f62f-61b4-48c2-800b-8655bbd9b3e0"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"5","project":"Superalgos","id":"7a35af35-d89d-439a-86aa-79ee7a8886b1","savedPayload":{"position":{"x":30350.296236500042,"y":18880.18405955678},"targetPosition":{"x":30346.012828880986,"y":19030.122888481008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"47a6b751-be7c-426b-a2a0-7a652953601a","savedPayload":{"position":{"x":30437.6100108263,"y":18911.337551592667},"targetPosition":{"x":30346.012828880986,"y":19030.122888481008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d19d350e-4fb5-445b-8452-25dbb58ee162","savedPayload":{"position":{"x":29969.902720619677,"y":19295.909484300933},"targetPosition":{"x":30380.99817655885,"y":19478.940973685043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1cb82596-da2f-4b0b-8a7e-b9bf0dfe310f","savedPayload":{"position":{"x":30380.99817655885,"y":19478.940973685043},"targetPosition":{"x":30664.192352531274,"y":19129.225291029405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[],"nodesWarnings":{"type":"Nodes Warnings","name":"New Nodes Warnings","project":"Superalgos","id":"3d3a4958-90dd-458e-b1c8-a31bc1ff864c","savedPayload":{"position":{"x":30244.081160607533,"y":19290.49086832479},"targetPosition":{"x":30664.192352531274,"y":19129.225291029405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a9709093-95c1-4b1b-aeb5-329c7505ab75","savedPayload":{"position":{"x":30664.192352531274,"y":19129.225291029405},"targetPosition":{"x":31028.25,"y":18864.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Infos","config":"{\n \"codeName\": \"Infos\",\n \"connectTo\": \"Trading System\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"infos\",\n \"rateInArrayAtIndex\": 3,\n \"rateOffset\": 100,\n \"rateOffsetBasedOnArrayIndex\": 50,\n \"rateRange\": 20\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"Infos","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Info #1","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[0][3]","project":"Superalgos","id":"08639b58-1bf6-4310-87ca-7688bf02312c","savedPayload":{"position":{"x":30372.307257578646,"y":19725.396872275393},"targetPosition":{"x":30112.499636443314,"y":19575.396872275393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e2193d1d-3c3a-4ba3-a61a-a3fa3a205bdd","savedPayload":{"position":{"x":30112.499636443314,"y":19575.396872275393},"targetPosition":{"x":29852.69201530798,"y":19425.396872275393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Info #2","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[1][3]","project":"Superalgos","id":"17f4a676-8076-4fe7-b713-62e85b8b18a7","savedPayload":{"position":{"x":30152.69201530798,"y":19945.012114546058},"targetPosition":{"x":30002.69201530798,"y":19685.204493410725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"524b9641-2eca-4919-9da2-a431cfd0a96e","savedPayload":{"position":{"x":30002.69201530798,"y":19685.204493410725},"targetPosition":{"x":29852.69201530798,"y":19425.396872275393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Info #3","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[2][3]","project":"Superalgos","id":"bcc7365d-4b1d-4d79-bebb-28e12f838361","savedPayload":{"position":{"x":29852.69201530798,"y":20025.396872275393},"targetPosition":{"x":29852.69201530798,"y":19725.396872275393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5105f48d-9987-4475-932a-56f566d90159","savedPayload":{"position":{"x":29852.69201530798,"y":19725.396872275393},"targetPosition":{"x":29852.69201530798,"y":19425.396872275393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Info #4","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[3][3]","project":"Superalgos","id":"4b84d3c5-eaa7-4555-b927-e02b7e081bfa","savedPayload":{"position":{"x":29552.69201530798,"y":19945.012114546058},"targetPosition":{"x":29702.69201530798,"y":19685.204493410725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b3fd79f9-cccf-44b0-bcb2-285a84993f9e","savedPayload":{"position":{"x":29702.69201530798,"y":19685.204493410725},"targetPosition":{"x":29852.69201530798,"y":19425.396872275393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Info #5","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin + (record.end - record.begin)\ny = record.infos[4][3]","project":"Superalgos","id":"1f46c5e2-5bd9-4171-a01e-b8431ac88cce","savedPayload":{"position":{"x":29333.076773037315,"y":19725.396872275393},"targetPosition":{"x":29592.884394172648,"y":19575.396872275393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ea3f2d7c-cf4c-489d-bb84-c25f80267e41","savedPayload":{"position":{"x":29592.884394172648,"y":19575.396872275393},"targetPosition":{"x":29852.69201530798,"y":19425.396872275393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d0603f25-80ef-4d01-a970-3bb5325619a2","savedPayload":{"position":{"x":30361.930459560466,"y":19676.8425730561},"targetPosition":{"x":30222.87281209174,"y":19248.86714072328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[],"images":[{"type":"Image","name":"Info #1","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 30\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[0] !== undefined","project":"Superalgos","id":"52a6ed4f-284d-4a8a-b6c1-c2a37770be10","savedPayload":{"position":{"x":29803.53608858197,"y":19559.01649960827},"targetPosition":{"x":29768.172248255552,"y":19413.24476435974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": 100\n}","project":"Superalgos","id":"5eebc216-dd6a-4cfb-abc4-3a45415b43f4","savedPayload":{"position":{"x":29659.61214253979,"y":19516.756616082057},"targetPosition":{"x":29768.172248255552,"y":19413.24476435974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #1","id":"e2193d1d-3c3a-4ba3-a61a-a3fa3a205bdd"}}},"id":"4d8f74b6-9188-4a2d-b061-0e981bdb407e","savedPayload":{"position":{"x":30246.423992401065,"y":19698.250431362838},"targetPosition":{"x":30222.87281209174,"y":19248.86714072328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Info #2","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 25\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[1] !== undefined","project":"Superalgos","id":"736c7c5c-79f4-475e-ad62-3966450a0372","savedPayload":{"position":{"x":29683.362482697743,"y":19527.603033002197},"targetPosition":{"x":29690.499770071303,"y":19377.772932124746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": 150\n}","project":"Superalgos","id":"b1ee694d-674f-44c8-8e1d-b7e475dd8b9d","savedPayload":{"position":{"x":29557.174452773066,"y":19446.506910383858},"targetPosition":{"x":29690.499770071303,"y":19377.772932124746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #2","id":"524b9641-2eca-4919-9da2-a431cfd0a96e"}}},"id":"613d9590-7c63-42c9-908a-61e2cd3236a2","savedPayload":{"position":{"x":30129.31255122375,"y":19689.033561053493},"targetPosition":{"x":30222.87281209174,"y":19248.86714072328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Info #3","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[2] !== undefined","project":"Superalgos","id":"ee7c575a-cbec-42c1-9f3c-8357f4aaeb98","savedPayload":{"position":{"x":29576.906948504093,"y":19463.605215266176},"targetPosition":{"x":29625.967143001704,"y":19321.855092458976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": 200\n}","project":"Superalgos","id":"e38affc9-b5ae-4e74-987f-f342645df6b5","savedPayload":{"position":{"x":29478.6778384123,"y":19350.24277911304},"targetPosition":{"x":29625.967143001704,"y":19321.855092458976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #3","id":"5105f48d-9987-4475-932a-56f566d90159"}}},"id":"1a26570e-ed10-49d7-abae-a57d64ab4e82","savedPayload":{"position":{"x":30018.577087208945,"y":19649.820076608044},"targetPosition":{"x":30222.87281209174,"y":19248.86714072328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Info #4","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 15\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[3] !== undefined","project":"Superalgos","id":"1adc9384-761c-48a0-8cef-bb4fd232400c","savedPayload":{"position":{"x":29492.79388026595,"y":19372.20776898351},"targetPosition":{"x":29579.802416701626,"y":19250.02137617596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": 250\n}","project":"Superalgos","id":"efcfc0b3-de68-4a0c-bb17-266afd8b27d2","savedPayload":{"position":{"x":29430.481628315665,"y":19235.76296968033},"targetPosition":{"x":29579.802416701626,"y":19250.02137617596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #4","id":"b3fd79f9-cccf-44b0-bcb2-285a84993f9e"}}},"id":"776b6da6-3d96-476a-b3a0-7d1727300f87","savedPayload":{"position":{"x":29921.764039230253,"y":19583.28231218811},"targetPosition":{"x":30222.87281209174,"y":19248.86714072328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Info #5","config":"{\n \"codeName\": \"bullet-info\",\n \"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.infos[4] !== undefined","project":"Superalgos","id":"0127c787-6b41-434f-a0c3-31e53243fdf6","savedPayload":{"position":{"x":29437.83761853228,"y":19260.81517169047},"targetPosition":{"x":29555.7455827437,"y":19168.091323757377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Info #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": 300\n}","project":"Superalgos","id":"8065fedd-6175-447e-9273-3bd2fdd402f0","savedPayload":{"position":{"x":29416.49039279129,"y":19112.341955408327},"targetPosition":{"x":29555.7455827437,"y":19168.091323757377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #5","id":"ea3f2d7c-cf4c-489d-bb84-c25f80267e41"}}},"id":"b8a1d9ec-72e8-47d0-b246-66cda5e3eba0","savedPayload":{"position":{"x":29845.4710565163,"y":19493.954706480043},"targetPosition":{"x":30222.87281209174,"y":19248.86714072328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"Info #1","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[0] !== undefined","project":"Superalgos","id":"e057eb81-cde9-404d-82dc-adba53400eb9","savedPayload":{"position":{"x":29451.204947445407,"y":19190.272191507254},"targetPosition":{"x":29555.7455827437,"y":19082.70242079341},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #1","config":"{\n \"offsetX\": 0,\n \"offsetY\": 125\n}","project":"Superalgos","id":"7a769245-01b3-4ca1-a79f-7a7dfe8bdf95","savedPayload":{"position":{"x":29407.942507366548,"y":19108.280749688303},"targetPosition":{"x":29555.7455827437,"y":19082.70242079341},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #1","id":"e2193d1d-3c3a-4ba3-a61a-a3fa3a205bdd"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"1","project":"Superalgos","id":"5c8dcf05-4b67-4c99-92cb-d626785152fb","savedPayload":{"position":{"x":29421.135818439998,"y":19016.519255606923},"targetPosition":{"x":29555.7455827437,"y":19082.70242079341},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"bea86183-5b1a-4c88-80c2-55fae38d18a4","savedPayload":{"position":{"x":29485.74548425985,"y":18950.037481143736},"targetPosition":{"x":29555.7455827437,"y":19082.70242079341},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8ff5465c-3513-4d38-8600-51e17c271e6a","savedPayload":{"position":{"x":29794.89737975892,"y":19387.924788192006},"targetPosition":{"x":30222.87281209174,"y":19248.86714072328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Info #2","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[1] !== undefined","project":"Superalgos","id":"90df78b4-860c-4fa4-b478-985976a16676","savedPayload":{"position":{"x":29449.19050513366,"y":19074.532307071666},"targetPosition":{"x":29579.802416701626,"y":19000.772368374826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #2","config":"{\n \"offsetX\": 0,\n \"offsetY\": 170\n}","project":"Superalgos","id":"4fdcb5fa-776b-4ab4-9f78-e744b048fa6f","savedPayload":{"position":{"x":29430.780156399345,"y":18983.673656891246},"targetPosition":{"x":29579.802416701626,"y":19000.772368374826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #2","id":"524b9641-2eca-4919-9da2-a431cfd0a96e"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"2","project":"Superalgos","id":"bea6405a-087b-4c15-9111-1f7076e1d663","savedPayload":{"position":{"x":29469.291246020166,"y":18899.34613333372},"targetPosition":{"x":29579.802416701626,"y":19000.772368374826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"234737f6-2027-486d-95d7-b18ac61eae29","savedPayload":{"position":{"x":29550.013846704765,"y":18853.759984210967},"targetPosition":{"x":29579.802416701626,"y":19000.772368374826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"dc117f92-a30d-453e-9712-d23022e4c399","savedPayload":{"position":{"x":29773.489521452182,"y":19272.418321032605},"targetPosition":{"x":30222.87281209174,"y":19248.86714072328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Info #3","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[2] !== undefined","project":"Superalgos","id":"34ad2326-b013-4ad9-856b-cda86dd930d5","savedPayload":{"position":{"x":29479.865355460355,"y":18962.913167205672},"targetPosition":{"x":29625.967143001704,"y":18928.93865209181},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #3","config":"{\n \"offsetX\": 0,\n \"offsetY\": 215\n}","project":"Superalgos","id":"22a4a7b3-23ff-42cf-afc1-dd4e5cc362e8","savedPayload":{"position":{"x":29487.798595034477,"y":18870.5481361442},"targetPosition":{"x":29625.967143001704,"y":18928.93865209181},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #3","id":"5105f48d-9987-4475-932a-56f566d90159"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"3","project":"Superalgos","id":"719238f0-12c3-4fb0-8d93-15483f6e7069","savedPayload":{"position":{"x":29548.50752375586,"y":18800.48629755407},"targetPosition":{"x":29625.967143001704,"y":18928.93865209181},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"a21a51eb-fcf6-4201-b4bd-e8bd11b78bd7","savedPayload":{"position":{"x":29638.80339427353,"y":18779.488892462407},"targetPosition":{"x":29625.967143001704,"y":18928.93865209181},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"aa712bdc-ab7d-4c45-a6ae-575db9b1a81f","savedPayload":{"position":{"x":29782.706391761527,"y":19155.30687985529},"targetPosition":{"x":30222.87281209174,"y":19248.86714072328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Info #4","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[3] !== undefined","project":"Superalgos","id":"b5a9fb83-ab5e-495b-ad2f-a005736323ef","savedPayload":{"position":{"x":29540.744404482382,"y":18864.457490796623},"targetPosition":{"x":29690.499770071303,"y":18873.02081242604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #4","config":"{\n \"offsetX\": 0,\n \"offsetY\": 260\n}","project":"Superalgos","id":"f8170e78-f163-440a-ab5b-f1108143eb0f","savedPayload":{"position":{"x":29574.37852847544,"y":18778.06894435471},"targetPosition":{"x":29690.499770071303,"y":18873.02081242604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #4","id":"b3fd79f9-cccf-44b0-bcb2-285a84993f9e"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"4","project":"Superalgos","id":"4c19a337-8230-418f-bd6d-efe65c97afb7","savedPayload":{"position":{"x":29652.36701994228,"y":18727.948784220745},"targetPosition":{"x":29690.499770071303,"y":18873.02081242604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"fbe44bab-92dc-46b6-9687-1724c5ca65a3","savedPayload":{"position":{"x":29744.9209258739,"y":18733.24120804432},"targetPosition":{"x":29690.499770071303,"y":18873.02081242604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"346a72da-fbae-4d20-9550-3d5fd226c690","savedPayload":{"position":{"x":29821.919876206975,"y":19044.571415840484},"targetPosition":{"x":30222.87281209174,"y":19248.86714072328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Text","name":"Info #5","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"record.infos[4] !== undefined","project":"Superalgos","id":"4db5414e-8a5b-4ed2-a099-e563d78e9e17","savedPayload":{"position":{"x":29626.895593709625,"y":18787.14157120873},"targetPosition":{"x":29768.172248255552,"y":18837.548980191044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Info #5","config":"{\n \"offsetX\": 0,\n \"offsetY\": 305\n}","project":"Superalgos","id":"7b01a503-8b74-4874-a606-b1c37162938e","savedPayload":{"position":{"x":29683.505765425536,"y":18713.72819564663},"targetPosition":{"x":29768.172248255552,"y":18837.548980191044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Info #5","id":"ea3f2d7c-cf4c-489d-bb84-c25f80267e41"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"5","project":"Superalgos","id":"90809b91-db58-4db5-8532-922e8eb94254","savedPayload":{"position":{"x":29772.455655874608,"y":18687.610151266817},"targetPosition":{"x":29768.172248255552,"y":18837.548980191044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"fb151664-60fb-45ec-99fe-1d1e46311fbe","savedPayload":{"position":{"x":29859.769430200868,"y":18718.763643302704},"targetPosition":{"x":29768.172248255552,"y":18837.548980191044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"427990de-8a0d-46f7-9514-5bab2a27bf0d","savedPayload":{"position":{"x":29888.45764062691,"y":18947.758367861792},"targetPosition":{"x":30222.87281209174,"y":19248.86714072328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"48f7bd71-fb8c-46e4-8310-f3ad897bdbe8","savedPayload":{"position":{"x":30222.87281209174,"y":19248.86714072328},"targetPosition":{"x":30600.27456766718,"y":19003.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[],"nodesInfos":{"type":"Nodes Infos","name":"New Nodes Infos","project":"Superalgos","id":"4183f03b-db5b-4ba7-8e4f-befc192cbe36","savedPayload":{"position":{"x":30150.891277027622,"y":19027.33075527584},"targetPosition":{"x":30600.27456766718,"y":19003.779574966517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f175df3b-a277-44bc-88db-dcf6b0e3fa38","savedPayload":{"position":{"x":30600.27456766718,"y":19003.779574966517},"targetPosition":{"x":31028.25,"y":18864.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"34f9d374-f4ae-4abf-96e3-978c6b8a879a","savedPayload":{"position":{"x":31033.25,"y":18952.72192749779},"targetPosition":{"x":31033.25,"y":18502.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Trading Episode","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Episode Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"76185b66-f987-453f-8c6a-922af52e1496","savedPayload":{"position":{"x":31556.1655666476,"y":19443.052576965914},"targetPosition":{"x":31337.382334558122,"y":19495.577783833494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d36cc3b7-cf35-4b2d-9e62-af77e624bd8a","savedPayload":{"position":{"x":31337.382334558122,"y":19495.577783833494},"targetPosition":{"x":30899.815870379167,"y":19600.62819756865},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"015889b5-8517-4d56-8335-b546931b7582","savedPayload":{"position":{"x":31572.73507064903,"y":19653.588087184948},"targetPosition":{"x":31348.428670559075,"y":19635.93479064618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d51a844a-acff-4717-b416-ac02113bcb84","savedPayload":{"position":{"x":31348.428670559075,"y":19635.93479064618},"targetPosition":{"x":30899.815870379167,"y":19600.62819756865},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"6da64a35-215f-4e20-a1a4-b715565c9ec5","savedPayload":{"position":{"x":31523.434554824285,"y":19858.939514415088},"targetPosition":{"x":31315.561660009247,"y":19772.835742132942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cdc081f1-7080-407e-a1d8-20e71c2903f5","savedPayload":{"position":{"x":31315.561660009247,"y":19772.835742132942},"targetPosition":{"x":30899.815870379167,"y":19600.62819756865},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"ef75589f-d40b-48f3-9d22-c3819d4362d6","savedPayload":{"position":{"x":31413.08989715919,"y":20039.005630191525},"targetPosition":{"x":31241.998554899183,"y":19892.879819317233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a53dfccb-7edd-4b83-84dc-56f62fb77e2e","savedPayload":{"position":{"x":31241.998554899183,"y":19892.879819317233},"targetPosition":{"x":30899.815870379167,"y":19600.62819756865},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"75792ba3-caac-448f-976a-2e0beaa5fb15","savedPayload":{"position":{"x":30899.815870379167,"y":19600.62819756865},"targetPosition":{"x":30462.24940620021,"y":19495.577783833494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"aab82eaa-0871-4f3c-a133-f211a2de6a5d","savedPayload":{"position":{"x":30333.01226745457,"y":19932.805279387496},"targetPosition":{"x":30165.81235826772,"y":20277.329572320676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 2,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 2,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"2eff63cf-253f-46a3-b434-2e793943f39a","savedPayload":{"position":{"x":30879.583191957227,"y":20447.034435947182},"targetPosition":{"x":30537.81645156922,"y":20365.989560512822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"4b53ad47-88ba-4e43-b0c6-da437e26469b","savedPayload":{"position":{"x":30537.81645156922,"y":20365.989560512822},"targetPosition":{"x":30165.81235826772,"y":20277.329572320676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"b06f7ce1-592a-46e1-99ae-6d5b728b7ce6","savedPayload":{"position":{"x":30196.945572876604,"y":20657.958495062176},"targetPosition":{"x":30165.81235826772,"y":20277.329572320676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"d36cc3b7-cf35-4b2d-9e62-af77e624bd8a"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"1d460f06-361e-4e8a-a119-02e7d1d40b14","savedPayload":{"position":{"x":29781.38164664382,"y":20414.41164802467},"targetPosition":{"x":30165.81235826772,"y":20277.329572320676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"cdc081f1-7080-407e-a1d8-20e71c2903f5"}}}],"id":"7237c558-a0e5-46c6-8cf5-ebc555e98efb","savedPayload":{"position":{"x":30826.307053668937,"y":19760.08114736511},"targetPosition":{"x":30462.24940620021,"y":19495.577783833494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"dac76f26-8574-413e-9a59-c3d22393f884","savedPayload":{"position":{"x":30212.382115550285,"y":20147.943205779073},"targetPosition":{"x":29926.729918759043,"y":20412.115065262453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 2,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 2,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"01979f43-b2d9-4efb-beae-be89986ad308","savedPayload":{"position":{"x":30521.613240524883,"y":20841.728670413067},"targetPosition":{"x":30236.523779375348,"y":20635.891743303902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"31d548c0-90ae-456a-80c1-f11da75d9203","savedPayload":{"position":{"x":30236.523779375348,"y":20635.891743303902},"targetPosition":{"x":29926.729918759043,"y":20412.115065262453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"7732c454-a983-4af6-aa1b-4ac89412c735","savedPayload":{"position":{"x":29810.137308186477,"y":20775.962109295877},"targetPosition":{"x":29926.729918759043,"y":20412.115065262453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"d36cc3b7-cf35-4b2d-9e62-af77e624bd8a"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"bdff1a41-c544-44ba-aafb-db30fa1ef9a1","savedPayload":{"position":{"x":29520.193537180432,"y":20391.82490331662},"targetPosition":{"x":29926.729918759043,"y":20412.115065262453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"cdc081f1-7080-407e-a1d8-20e71c2903f5"}}}],"id":"4958982a-b51a-40ef-8764-dd5451cf9837","savedPayload":{"position":{"x":30697.37376032239,"y":19879.265857792834},"targetPosition":{"x":30462.24940620021,"y":19495.577783833494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"7965d803-ccde-40ec-b09f-dc50b498257c","savedPayload":{"position":{"x":29624.064140406535,"y":15860.478944890612},"targetPosition":{"x":29852.949664088595,"y":16045.932870651202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"63e9bbd0-f235-4ec7-a6bc-9ab46db2d307","savedPayload":{"position":{"x":29852.949664088595,"y":16045.932870651202},"targetPosition":{"x":30120.423156791174,"y":16262.657341243605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"3bec1e67-abaf-428e-b443-dc27969767b5","savedPayload":{"position":{"x":30084.59385926244,"y":15920.245116220129},"targetPosition":{"x":30120.423156791174,"y":16262.657341243605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"d36cc3b7-cf35-4b2d-9e62-af77e624bd8a"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"471fc78f-4538-4834-bbed-a329d1e4601e","savedPayload":{"position":{"x":30337.19682824014,"y":15994.889234209159},"targetPosition":{"x":30120.423156791174,"y":16262.657341243605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"d51a844a-acff-4717-b416-ac02113bcb84"}}}],"id":"86fefa5e-8de8-4d00-a632-e1827ce60030","savedPayload":{"position":{"x":30532.644915468314,"y":19940.037537101307},"targetPosition":{"x":30462.24940620021,"y":19495.577783833494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"c4bb446c-e574-4e59-afed-3538eab694d5","savedPayload":{"position":{"x":29744.74822042315,"y":15822.187086513763},"targetPosition":{"x":29952.493134689397,"y":16030.109595647176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"6f0d820a-fb29-48d7-89f1-d1ea5a74e653","savedPayload":{"position":{"x":29952.493134689397,"y":16030.109595647176},"targetPosition":{"x":30181.930506756144,"y":16259.767100000598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"ef071433-8fc9-4d59-a4c5-9bd2e7bc4fb0","savedPayload":{"position":{"x":30181.92871714458,"y":15934.084356437761},"targetPosition":{"x":30181.930506756144,"y":16259.767100000598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"cdc081f1-7080-407e-a1d8-20e71c2903f5"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"c4f97c3d-8990-4091-8ff0-638afe58c282","savedPayload":{"position":{"x":30412.493608545916,"y":16029.162817131004},"targetPosition":{"x":30181.930506756144,"y":16259.767100000598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"a53dfccb-7edd-4b83-84dc-56f62fb77e2e"}}}],"id":"79a3b846-3b23-4c01-9aa1-cedcebb5ca03","savedPayload":{"position":{"x":30357.198992465055,"y":19933.14424801245},"targetPosition":{"x":30462.24940620021,"y":19495.577783833494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{\n \"codeName\": \"trading-episode\",\n \"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"c03a6ea3-1555-4c1d-b268-d6e1032fd656","savedPayload":{"position":{"x":30065.49436090279,"y":20041.664255036583},"targetPosition":{"x":30197.746042668598,"y":19859.63543130222},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"d36cc3b7-cf35-4b2d-9e62-af77e624bd8a"}}},"id":"ad9be6ea-d6dd-4c5d-932a-8b34d322fa76","savedPayload":{"position":{"x":30197.746042668598,"y":19859.63543130222},"targetPosition":{"x":30462.24940620021,"y":19495.577783833494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{\n \"codeName\": \"trading-episode\",\n \"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"45d5d8a0-92e4-4e20-af13-8ea425c068cb","savedPayload":{"position":{"x":29886.7172952612,"y":19848.26431501676},"targetPosition":{"x":30078.56133224087,"y":19730.70213795567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"cdc081f1-7080-407e-a1d8-20e71c2903f5"}}},"id":"5bc2bd0b-c164-432b-abb6-269dbca0f627","savedPayload":{"position":{"x":30078.56133224087,"y":19730.70213795567},"targetPosition":{"x":30462.24940620021,"y":19495.577783833494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"0d8e669e-47fd-41f7-8108-8df3e7acd5ef","savedPayload":{"position":{"x":30462.24940620021,"y":19495.577783833494},"targetPosition":{"x":30391.85389693211,"y":19051.11803056568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Episode Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"b5d632ba-523a-401c-84db-1ce47efa7059","savedPayload":{"position":{"x":30625.935604672188,"y":19965.34499323047},"targetPosition":{"x":30479.809793797896,"y":19794.253650970462},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0ccc88ff-cae0-46e6-8e91-36dd4b185d12","savedPayload":{"position":{"x":30479.809793797896,"y":19794.253650970462},"targetPosition":{"x":30187.558172049314,"y":19452.070966450447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"3292dd95-270f-490b-bba8-0eb82afa4b29","savedPayload":{"position":{"x":30396.144643252403,"y":20094.034114949674},"targetPosition":{"x":30326.61581951804,"y":19880.046398783266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f7b5fd21-8167-4949-be53-8de453a38904","savedPayload":{"position":{"x":30326.61581951804,"y":19880.046398783266},"targetPosition":{"x":30187.558172049314,"y":19452.070966450447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"7a945058-1f89-420d-94ea-6c01142e814a","savedPayload":{"position":{"x":30134.598282433017,"y":20124.99016672031},"targetPosition":{"x":30152.251578971784,"y":19900.683766630355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"03168102-4498-4cc9-a685-1fea8ec5d208","savedPayload":{"position":{"x":30152.251578971784,"y":19900.683766630355},"targetPosition":{"x":30187.558172049314,"y":19452.070966450447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Rate","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"15ec12a6-815c-4432-a16b-d2600297aa83","savedPayload":{"position":{"x":29881.11458472512,"y":20053.500370277594},"targetPosition":{"x":29983.26244716652,"y":19853.02390233521},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"534c09c7-1812-4266-ba81-b9fc8cf3d070","savedPayload":{"position":{"x":29983.26244716652,"y":19853.02390233521},"targetPosition":{"x":30187.558172049314,"y":19452.070966450447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Rate","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"bf1f2748-56f4-451a-87dc-8cd385d649de","savedPayload":{"position":{"x":29674.284145269296,"y":19890.44839907332},"targetPosition":{"x":29845.3754875293,"y":19744.32258819903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"54b9bfa4-3d94-4a39-b7ae-e5c882022fcf","savedPayload":{"position":{"x":29845.3754875293,"y":19744.32258819903},"targetPosition":{"x":30187.558172049314,"y":19452.070966450447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin","config":"{\n }","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"UI.projects.superalgos.utilities.dates.formatDate(record.begin)","project":"Superalgos","id":"6ad056b5-bcf6-4e6a-88d6-9435c67765e5","savedPayload":{"position":{"x":29545.595023550086,"y":19660.657437653535},"targetPosition":{"x":29759.582739716494,"y":19591.128613919172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"70bc2470-d0e3-48a0-97c2-67189f3aaa9c","savedPayload":{"position":{"x":29759.582739716494,"y":19591.128613919172},"targetPosition":{"x":30187.558172049314,"y":19452.070966450447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End","config":"{\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"UI.projects.superalgos.utilities.dates.formatDate(record.end)","project":"Superalgos","id":"81c41360-308d-4609-9a3b-b234a65fa49a","savedPayload":{"position":{"x":29514.638971779452,"y":19399.11107683415},"targetPosition":{"x":29738.945371869406,"y":19416.764373372916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4daad4f7-a1db-40d1-a88e-fe4669b422f5","savedPayload":{"position":{"x":29738.945371869406,"y":19416.764373372916},"targetPosition":{"x":30187.558172049314,"y":19452.070966450447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"bcbb3368-ea4c-466b-8423-8f0517ad35da","savedPayload":{"position":{"x":30187.558172049314,"y":19452.070966450447},"targetPosition":{"x":30391.85389693211,"y":19051.11803056568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Episode Base Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Hits","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitsInBaseAsset","project":"Superalgos","id":"178cea7f-657c-47b5-bf08-783fccf30abd","savedPayload":{"position":{"x":30131.69197958355,"y":20144.333261984102},"targetPosition":{"x":30061.296470315447,"y":19699.87350871629},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d06bfec8-344e-4d09-ad45-5d881051c86d","savedPayload":{"position":{"x":30061.296470315447,"y":19699.87350871629},"targetPosition":{"x":29990.900961047344,"y":19255.413755448477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fails","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.failsInBaseAsset","project":"Superalgos","id":"9b2e4688-d344-4aaf-a819-fb37e2d7f01f","savedPayload":{"position":{"x":29850.10994251114,"y":20144.333261984102},"targetPosition":{"x":29920.50545177924,"y":19699.87350871629},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3456d30c-437f-475a-b6d4-86c56c5c5875","savedPayload":{"position":{"x":29920.50545177924,"y":19699.87350871629},"targetPosition":{"x":29990.900961047344,"y":19255.413755448477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Ratio","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitRatioInBaseAsset","project":"Superalgos","id":"43ffaa8c-1678-40bc-8b89-1d3613b0bf80","savedPayload":{"position":{"x":29582.309511281754,"y":20057.319627218007},"targetPosition":{"x":29786.60523616455,"y":19656.36669133324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c9328b65-a3e0-4c81-9e7f-321d02566f6a","savedPayload":{"position":{"x":29786.60523616455,"y":19656.36669133324},"targetPosition":{"x":29990.900961047344,"y":19255.413755448477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Profit Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.profitLossInBaseAsset","project":"Superalgos","id":"b1750d80-b1a6-4e57-b575-176c5c63cc85","savedPayload":{"position":{"x":29354.504857979453,"y":19891.809858516368},"targetPosition":{"x":29672.7029095134,"y":19573.611806982422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"91a729d3-1a8d-44c6-89f6-548456b1e300","savedPayload":{"position":{"x":29672.7029095134,"y":19573.611806982422},"targetPosition":{"x":29990.900961047344,"y":19255.413755448477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ROI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ROIInBaseAsset","project":"Superalgos","id":"57eb486f-3069-4df2-a095-7ae86f3c849e","savedPayload":{"position":{"x":29188.995089277814,"y":19664.005205214067},"targetPosition":{"x":29589.94802516258,"y":19459.709480331272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8c0532fa-8338-4659-acdb-4429c00c69f5","savedPayload":{"position":{"x":29589.94802516258,"y":19459.709480331272},"targetPosition":{"x":29990.900961047344,"y":19255.413755448477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Annualized Rate Of Return","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.annualizedRateOfReturnInBaseAsset","project":"Superalgos","id":"9668524f-81b7-4805-a095-729344436bdc","savedPayload":{"position":{"x":29101.98145451172,"y":19396.204773984682},"targetPosition":{"x":29546.44120777953,"y":19325.80926471658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"01f3e8f9-42bd-477d-a073-ece04b3462c3","savedPayload":{"position":{"x":29546.44120777953,"y":19325.80926471658},"targetPosition":{"x":29990.900961047344,"y":19255.413755448477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFailInBaseAsset","project":"Superalgos","id":"5530bf09-a7d7-4721-b6c9-35959c6ef57f","savedPayload":{"position":{"x":29101.98145451172,"y":19114.62273691227},"targetPosition":{"x":29546.44120777953,"y":19185.018246180374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e6a87a47-eb70-41c8-9b56-37bb3c1cff42","savedPayload":{"position":{"x":29546.44120777953,"y":19185.018246180374},"targetPosition":{"x":29990.900961047344,"y":19255.413755448477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Balance","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginBalanceInBaseAsset","project":"Superalgos","id":"bdcfb0ac-dd92-47c6-b1ce-2052125a69d3","savedPayload":{"position":{"x":29188.995089277814,"y":18846.822305682887},"targetPosition":{"x":29589.94802516258,"y":19051.11803056568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"05d8cc70-c3e8-416e-9976-94aabb6fb850","savedPayload":{"position":{"x":29589.94802516258,"y":19051.11803056568},"targetPosition":{"x":29990.900961047344,"y":19255.413755448477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Balance","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endBalanceInBaseAsset","project":"Superalgos","id":"e93cb7de-6d1a-496d-8adc-23e546ccae20","savedPayload":{"position":{"x":29354.504857979453,"y":18619.017652380586},"targetPosition":{"x":29672.7029095134,"y":18937.21570391453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5f28fda1-332a-4052-abac-3586386868df","savedPayload":{"position":{"x":29672.7029095134,"y":18937.21570391453},"targetPosition":{"x":29990.900961047344,"y":19255.413755448477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b18a5300-448b-4165-9b36-dc5ee37e58cd","savedPayload":{"position":{"x":29990.900961047344,"y":19255.413755448477},"targetPosition":{"x":30391.85389693211,"y":19051.11803056568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Episode Quoted Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Hits","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitsInQuotedAsset","project":"Superalgos","id":"68babd3f-d90c-4df0-9050-746d17ab3ea1","savedPayload":{"position":{"x":29538.802693898706,"y":19782.62839306711},"targetPosition":{"x":29743.0984187815,"y":19381.675457182344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"962215d1-1e67-43c7-9a7c-01f5e6f9e6e8","savedPayload":{"position":{"x":29743.0984187815,"y":19381.675457182344},"targetPosition":{"x":29947.394143664296,"y":18980.72252129758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fails","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.failsInQuotedAsset","project":"Superalgos","id":"9040394b-4c9c-4873-914c-31073717f3d7","savedPayload":{"position":{"x":29310.998040596405,"y":19617.11862436547},"targetPosition":{"x":29629.19609213035,"y":19298.920572831525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"fe5a306c-7f59-43aa-bf1e-62ad7639a87f","savedPayload":{"position":{"x":29629.19609213035,"y":19298.920572831525},"targetPosition":{"x":29947.394143664296,"y":18980.72252129758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Ratio","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitRatioInQuotedAsset","project":"Superalgos","id":"c30aadb6-44a2-400d-96b2-a51c2eaccacf","savedPayload":{"position":{"x":29145.488271894767,"y":19389.31397106317},"targetPosition":{"x":29546.44120777953,"y":19185.018246180374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"19fb6789-7b00-4e86-bfde-775bcd813300","savedPayload":{"position":{"x":29546.44120777953,"y":19185.018246180374},"targetPosition":{"x":29947.394143664296,"y":18980.72252129758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Profit Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.profitLossInQuotedAsset","project":"Superalgos","id":"b296257d-c3fd-406f-85de-b89121b332f6","savedPayload":{"position":{"x":29058.47463712867,"y":19121.513539833784},"targetPosition":{"x":29502.934390396484,"y":19051.11803056568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dad82788-bdb3-4df2-9cfd-2a8d22a2278f","savedPayload":{"position":{"x":29502.934390396484,"y":19051.11803056568},"targetPosition":{"x":29947.394143664296,"y":18980.72252129758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ROI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ROIInQuotedAsset","project":"Superalgos","id":"88e43d30-c26b-4d43-ba1a-e2a318154b95","savedPayload":{"position":{"x":29058.47463712867,"y":18839.931502761374},"targetPosition":{"x":29502.934390396484,"y":18910.327012029476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"54f32b24-0657-4be3-a24c-ea988797f93a","savedPayload":{"position":{"x":29502.934390396484,"y":18910.327012029476},"targetPosition":{"x":29947.394143664296,"y":18980.72252129758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Annualized Rate Of Return","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.annualizedRateOfReturnInQuotedAsset","project":"Superalgos","id":"e30aa4c9-50ef-40a6-bf65-ae8674eddd3f","savedPayload":{"position":{"x":29145.488271894767,"y":18572.13107153199},"targetPosition":{"x":29546.44120777953,"y":18776.426796414784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0b94cbb0-ec78-4a85-b815-06533aaa7ea9","savedPayload":{"position":{"x":29546.44120777953,"y":18776.426796414784},"targetPosition":{"x":29947.394143664296,"y":18980.72252129758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFailInQuotedAsset","project":"Superalgos","id":"38b3d1b7-f954-4042-abfb-1fd9167e0e35","savedPayload":{"position":{"x":29310.998040596405,"y":18344.326418229688},"targetPosition":{"x":29629.19609213035,"y":18662.524469763634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"524a686a-eadf-4652-a2ca-f73f40dc10f1","savedPayload":{"position":{"x":29629.19609213035,"y":18662.524469763634},"targetPosition":{"x":29947.394143664296,"y":18980.72252129758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Balance","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginBalanceInQuotedAsset","project":"Superalgos","id":"78d24874-e442-4b7d-9602-b434fa246640","savedPayload":{"position":{"x":29538.802693898706,"y":18178.81664952805},"targetPosition":{"x":29743.0984187815,"y":18579.769585412814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"480cfd81-87e5-4022-ac2b-9adb7f04c105","savedPayload":{"position":{"x":29743.0984187815,"y":18579.769585412814},"targetPosition":{"x":29947.394143664296,"y":18980.72252129758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Balance","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endBalanceInQuotedAsset","project":"Superalgos","id":"abe4d95f-ae51-4237-8bda-0d2ec08ef13c","savedPayload":{"position":{"x":29806.60312512809,"y":18091.803014761954},"targetPosition":{"x":29876.998634396194,"y":18536.262768029766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0245f0f4-59c6-4f14-8ec9-5a80ab0cd05e","savedPayload":{"position":{"x":29876.998634396194,"y":18536.262768029766},"targetPosition":{"x":29947.394143664296,"y":18980.72252129758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"dbdd55de-9279-48ef-a0b1-e50024f284e9","savedPayload":{"position":{"x":29947.394143664296,"y":18980.72252129758},"targetPosition":{"x":30391.85389693211,"y":19051.11803056568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b7320c91-b8aa-4642-bd11-a1efb2a88d39","savedPayload":{"position":{"x":30391.85389693211,"y":19051.11803056568},"targetPosition":{"x":30710.051948466054,"y":18732.919979031736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"12f444b2-b8e7-48ef-9ea1-9cbe5489f942","savedPayload":{"position":{"x":30715.051948466054,"y":18820.919979031736},"targetPosition":{"x":31033.25,"y":18502.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Trading Strategy","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Strategy Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","project":"Superalgos","id":"458c8a52-4191-4fa5-b4f7-a0eb2edfcdc8","savedPayload":{"position":{"x":29760.064199055472,"y":19270.81117936762},"targetPosition":{"x":29657.08012851361,"y":19142.802382613736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a464e820-57a7-4233-b23b-e802fc9b3a33","savedPayload":{"position":{"x":29657.08012851361,"y":19142.802382613736},"targetPosition":{"x":29439.46441790837,"y":18872.07459723221},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"3abb7e03-f8f3-4956-9729-756e7974c5a0","savedPayload":{"position":{"x":29621.048404721925,"y":19350.580120625633},"targetPosition":{"x":29562.723713908406,"y":19196.946791712257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d2e900e2-444c-4268-b07a-fc41811c82d8","savedPayload":{"position":{"x":29562.723713908406,"y":19196.946791712257},"targetPosition":{"x":29439.46441790837,"y":18872.07459723221},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","project":"Superalgos","id":"5ef24a29-2154-4304-ae0d-e046db069042","savedPayload":{"position":{"x":29463.840135326434,"y":19382.588135096037},"targetPosition":{"x":29456.089350137914,"y":19219.09595063912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e960d99e-f263-4ee8-9801-9b97f534bd5e","savedPayload":{"position":{"x":29456.089350137914,"y":19219.09595063912},"targetPosition":{"x":29439.46441790837,"y":18872.07459723221},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"6d7f55b1-11df-4598-bab9-32a02ae6fa33","savedPayload":{"position":{"x":29304.466274815495,"y":19366.155449549165},"targetPosition":{"x":29348.22130464109,"y":19206.449328213388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3a8be5c7-aff5-4283-bd17-dadd6dddda4d","savedPayload":{"position":{"x":29348.22130464109,"y":19206.449328213388},"targetPosition":{"x":29439.46441790837,"y":18872.07459723221},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"87bdc7ca-4228-48a3-ab2d-4eba01abfa2e","savedPayload":{"position":{"x":30177.192643053924,"y":19161.442362331847},"targetPosition":{"x":29903.25,"y":18804.43335920079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"3d4e39c7-4178-4557-95b9-0bb94a15135c","savedPayload":{"position":{"x":29545.067512181307,"y":18795.725515755446},"targetPosition":{"x":29183.363429522287,"y":18875.059449411172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 4,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 4,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"83329324-581e-42e2-948e-7d06a3d9066c","savedPayload":{"position":{"x":29482.346765525508,"y":19510.856735574136},"targetPosition":{"x":29342.33182955007,"y":19213.34307549251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"4a04b54a-70b9-4e92-a474-d6ef03a97f26","savedPayload":{"position":{"x":29342.33182955007,"y":19213.34307549251},"targetPosition":{"x":29183.363429522287,"y":18875.059449411172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"b3a7f670-c86e-4382-93ee-bb6dbabfd159","savedPayload":{"position":{"x":28910.93940806736,"y":19131.51291083886},"targetPosition":{"x":29183.363429522287,"y":18875.059449411172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"a464e820-57a7-4233-b23b-e802fc9b3a33"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"0e17c75c-09f4-49ae-8e6a-55fdfd89f428","savedPayload":{"position":{"x":28847.004110744176,"y":18667.835793932267},"targetPosition":{"x":29183.363429522287,"y":18875.059449411172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"e960d99e-f263-4ee8-9801-9b97f534bd5e"}}}],"id":"9ae59a68-71fd-4ec8-9a70-da743f33baee","savedPayload":{"position":{"x":30019.718570296136,"y":19239.09998103087},"targetPosition":{"x":29903.25,"y":18804.43335920079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"5eb17be1-910b-4da5-959b-e7cf21dfa896","savedPayload":{"position":{"x":29319.617069909073,"y":18824.94429076345},"targetPosition":{"x":28946.214045470773,"y":18779.395385930704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 4,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 4,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"f790de9e-e87a-4f2a-86d5-c8f69d4b9525","savedPayload":{"position":{"x":28979.284226806616,"y":19480.95299827213},"targetPosition":{"x":28963.789546707696,"y":19152.936255292465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"a4e077b1-7bc7-4d90-b796-b4e808985b89","savedPayload":{"position":{"x":28963.789546707696,"y":19152.936255292465},"targetPosition":{"x":28946.214045470773,"y":18779.395385930704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"b158074f-5013-4899-b61b-232eb519370c","savedPayload":{"position":{"x":28596.63755933227,"y":18912.045738409826},"targetPosition":{"x":28946.214045470773,"y":18779.395385930704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"a464e820-57a7-4233-b23b-e802fc9b3a33"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"365ee7e7-0529-4acc-a77f-d596c195399f","savedPayload":{"position":{"x":28714.956060883713,"y":18459.358568053936},"targetPosition":{"x":28946.214045470773,"y":18779.395385930704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"e960d99e-f263-4ee8-9801-9b97f534bd5e"}}}],"id":"504f327c-a08d-4c3d-8e77-850299cc30ed","savedPayload":{"position":{"x":29844.513213500977,"y":19250.583546819005},"targetPosition":{"x":29903.25,"y":18804.43335920079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"e2422730-fb47-4014-a707-8c346d6bc327","savedPayload":{"position":{"x":29951.723339216227,"y":15965.429670134195},"targetPosition":{"x":30180.608862898287,"y":16150.883595894786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bbd7ee22-fb16-4b59-9e0c-04018e9dd3fa","savedPayload":{"position":{"x":30180.608862898287,"y":16150.883595894786},"targetPosition":{"x":30448.082355600865,"y":16367.608066487188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"a3a9eca0-36f3-4058-b8d7-872ce77209cd","savedPayload":{"position":{"x":30412.253058072132,"y":16025.195841463712},"targetPosition":{"x":30448.082355600865,"y":16367.608066487188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"a464e820-57a7-4233-b23b-e802fc9b3a33"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"d480fdc6-89e5-4547-a2ae-17ff5e4fc917","savedPayload":{"position":{"x":30664.85602704983,"y":16099.83995945274},"targetPosition":{"x":30448.082355600865,"y":16367.608066487188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"d2e900e2-444c-4268-b07a-fc41811c82d8"}}}],"id":"f9500afd-e0f4-45d3-9647-45ec778554e8","savedPayload":{"position":{"x":29678.25,"y":19194.14479090379},"targetPosition":{"x":29903.25,"y":18804.43335920079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"03ebe379-fb32-47fc-bfd6-b9ccc73bfd16","savedPayload":{"position":{"x":30072.40741923284,"y":15927.137811757346},"targetPosition":{"x":30280.15233349909,"y":16135.06032089076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"054fcea5-2f72-4439-be45-c289a3bdab14","savedPayload":{"position":{"x":30280.15233349909,"y":16135.06032089076},"targetPosition":{"x":30509.589705565835,"y":16364.71782524418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"a0b737cf-ec7b-4026-870c-cebec148464f","savedPayload":{"position":{"x":30509.58791595427,"y":16039.035081681344},"targetPosition":{"x":30509.589705565835,"y":16364.71782524418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"e960d99e-f263-4ee8-9801-9b97f534bd5e"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"fceb54ef-473e-4062-9407-ec64e9040504","savedPayload":{"position":{"x":30740.152807355607,"y":16134.113542374587},"targetPosition":{"x":30509.589705565835,"y":16364.71782524418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"3a8be5c7-aff5-4283-bd17-dadd6dddda4d"}}}],"id":"354102dd-fd58-4f84-8e90-0d891defa0c8","savedPayload":{"position":{"x":29546.240996868943,"y":19078.376002254714},"targetPosition":{"x":29903.25,"y":18804.43335920079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"strategy\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"64c0d038-c401-4317-84fd-b73e1b210d00","savedPayload":{"position":{"x":29251.250067254878,"y":18979.136214644994},"targetPosition":{"x":29468.58337816992,"y":18920.901929496926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"a464e820-57a7-4233-b23b-e802fc9b3a33"}}},"id":"01f6ebd3-e14f-4434-a0fb-1d8167122ce3","savedPayload":{"position":{"x":29468.58337816992,"y":18920.901929496926},"targetPosition":{"x":29903.25,"y":18804.43335920079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"strategy\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"56f86edf-c2cc-491b-8cea-4bae0f03ebfd","savedPayload":{"position":{"x":29234.024718572677,"y":18716.328179452255},"targetPosition":{"x":29457.099812381784,"y":18745.696572701767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"e960d99e-f263-4ee8-9801-9b97f534bd5e"}}},"id":"df6a3044-b207-4564-8c28-8d64c679ee9a","savedPayload":{"position":{"x":29457.099812381784,"y":18745.696572701767},"targetPosition":{"x":29903.25,"y":18804.43335920079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"b02b7fee-30b0-41f0-ae06-a073c57289d9","savedPayload":{"position":{"x":29903.25,"y":18804.43335920079},"targetPosition":{"x":30128.25,"y":18414.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Strategy Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"b037ec89-e05b-432c-9b61-da05bda134cc","savedPayload":{"position":{"x":29566.69371845135,"y":18050.23190238021},"targetPosition":{"x":29678.879145634233,"y":18041.824766851736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"0316c81d-7b05-42cb-876e-19d25eb1896a","savedPayload":{"position":{"x":29678.879145634233,"y":18041.824766851736},"targetPosition":{"x":29903.25,"y":18025.01049579479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"ed7a2560-35b9-4142-bd68-77347bf66b89","savedPayload":{"position":{"x":29589.08010983258,"y":17901.70790007113},"targetPosition":{"x":29693.803406555053,"y":17942.80876531235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5d9060d4-50fb-4cda-8037-85f7ffae5c27","savedPayload":{"position":{"x":29693.803406555053,"y":17942.80876531235},"targetPosition":{"x":29903.25,"y":18025.01049579479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.strategyName","project":"Superalgos","id":"925d79c1-efdd-4555-baba-72e686294057","savedPayload":{"position":{"x":29673.691701002313,"y":17777.605489052225},"targetPosition":{"x":29750.211134001544,"y":17860.07382463308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1a4951ef-23ae-4228-8479-a0fe687c2d82","savedPayload":{"position":{"x":29750.211134001544,"y":17860.07382463308},"targetPosition":{"x":29903.25,"y":18025.01049579479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Triggered By Situation","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.situationName","project":"Superalgos","id":"24317532-e6bf-4827-9196-e052fe28bcb3","savedPayload":{"position":{"x":29803.77012863632,"y":17702.50467384197},"targetPosition":{"x":29836.930085757547,"y":17810.00661449291},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6c79326f-b90c-4155-8f61-8ee2322b9b09","savedPayload":{"position":{"x":29836.930085757547,"y":17810.00661449291},"targetPosition":{"x":29903.25,"y":18025.01049579479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"2a35de7b-ad59-439b-aa6c-0668ffd92816","savedPayload":{"position":{"x":29953.551764834458,"y":17691.28009194381},"targetPosition":{"x":29936.78450988964,"y":17802.523559894136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6a34a5de-3b89-4f07-a947-5b94c8926dc1","savedPayload":{"position":{"x":29936.78450988964,"y":17802.523559894136},"targetPosition":{"x":29903.25,"y":18025.01049579479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"33bd5e59-f2bf-4b5c-bd74-6975e07b3056","savedPayload":{"position":{"x":30093.370519596472,"y":17746.154909463145},"targetPosition":{"x":30029.997013064316,"y":17839.106771573694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a0c5053d-5b1e-4f7e-8edb-58baaaa8a45a","savedPayload":{"position":{"x":30029.997013064316,"y":17839.106771573694},"targetPosition":{"x":29903.25,"y":18025.01049579479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b256b76c-3834-4d62-aa56-f42cce9f47e9","savedPayload":{"position":{"x":29903.25,"y":18025.01049579479},"targetPosition":{"x":30128.25,"y":18414.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d54a124c-6029-41a6-9bbd-bb3fe8b1a318","savedPayload":{"position":{"x":30128.25,"y":18414.72192749779},"targetPosition":{"x":30578.25,"y":18414.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"62890699-eabf-4ea8-8ca0-cac07cc06dea","savedPayload":{"position":{"x":30583.25,"y":18502.72192749779},"targetPosition":{"x":31033.25,"y":18502.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Trading Position","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Position Objects","config":"{ \n \"codeName\": \"Position-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Left Exit Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.exitTargetRate","project":"Superalgos","id":"594bc655-cbf0-4e81-8fcc-b0f001e71fc4","savedPayload":{"position":{"x":29459.923914243944,"y":19293.995460344053},"targetPosition":{"x":29345.32182254897,"y":19152.4188247597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3b122c9b-56d5-4cb6-86ba-12d1919aeeba","savedPayload":{"position":{"x":29345.32182254897,"y":19152.4188247597},"targetPosition":{"x":29115.509091781994,"y":18868.71176648017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Right Exit Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.exitTargetRate","project":"Superalgos","id":"ef80ea85-cfba-4fa6-9646-3688f54f33ba","savedPayload":{"position":{"x":29143.825272338232,"y":19414.605727282127},"targetPosition":{"x":29134.49015894449,"y":19233.56984520854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"eb3dd27b-831c-47ae-8a19-1b01626add98","savedPayload":{"position":{"x":29134.49015894449,"y":19233.56984520854},"targetPosition":{"x":29115.509091781994,"y":18868.71176648017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Left Entry Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.entryTargetRate","project":"Superalgos","id":"cdc9f3f0-3bca-4c9c-901f-1371aad3dcfe","savedPayload":{"position":{"x":28817.702044909962,"y":19327.25575092216},"targetPosition":{"x":28916.76474907811,"y":19174.70856110335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b61fa42b-45d1-416b-b06b-734d33223a80","savedPayload":{"position":{"x":28916.76474907811,"y":19174.70856110335},"targetPosition":{"x":29115.509091781994,"y":18868.71176648017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Right Entry Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.entryTargetRate","project":"Superalgos","id":"c450be56-8c02-4039-9b4a-8e0bde52fcc6","savedPayload":{"position":{"x":28604.93190945682,"y":19064.36219306031},"targetPosition":{"x":28774.33747801218,"y":18999.46434787224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"467129cb-1aa4-4639-ab0f-74d14146f721","savedPayload":{"position":{"x":28774.33747801218,"y":18999.46434787224},"targetPosition":{"x":29115.509091781994,"y":18868.71176648017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"774f0a60-aa67-408f-9768-8a24f5b9c033","savedPayload":{"position":{"x":30166.85389693211,"y":19037.37049979306},"targetPosition":{"x":30050.385326635973,"y":18602.70387796298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Entry Target Rate Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 2,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 3,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"bc128809-8c93-4f5d-9de9-4e0b28c1132e","savedPayload":{"position":{"x":27549.118116458314,"y":19194.249218841793},"targetPosition":{"x":28062.542583076556,"y":18680.882365452173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"cbd2cb8e-ca62-4b68-9bca-11ad55e50fb1","savedPayload":{"position":{"x":28062.542583076556,"y":18680.882365452173},"targetPosition":{"x":28576.06385337395,"y":18167.545006917226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"e1fc573d-a98e-4801-af1f-08f56d98a78a","savedPayload":{"position":{"x":27849.91550987586,"y":18167.544886830474},"targetPosition":{"x":28576.06385337395,"y":18167.545006917226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"b61fa42b-45d1-416b-b06b-734d33223a80"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"72aece06-d0ac-4068-8310-7037f0ba4943","savedPayload":{"position":{"x":28062.633179506294,"y":17654.126169320924},"targetPosition":{"x":28576.06385337395,"y":18167.545006917226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"467129cb-1aa4-4639-ab0f-74d14146f721"}}}],"id":"543ebae2-5624-49ad-a00f-df63335e92a9","savedPayload":{"position":{"x":29825.385326635973,"y":18992.41530966598},"targetPosition":{"x":30050.385326635973,"y":18602.70387796298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Exit Target Rate Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 2,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 3,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"8737606b-fbf1-4e8e-a124-930ec555d3d6","savedPayload":{"position":{"x":27343.321879670235,"y":18705.382654802153},"targetPosition":{"x":27972.156525306615,"y":18342.397709357025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"477ff931-5b51-4d4f-acff-3a14c7028a52","savedPayload":{"position":{"x":27972.156525306615,"y":18342.397709357025},"targetPosition":{"x":28601.028589968366,"y":17979.394808253663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Exit Target Rate","project":"Superalgos","id":"b849d38a-644a-470a-a110-d250b5e9d5f3","savedPayload":{"position":{"x":27899.60233254589,"y":17791.520907652786},"targetPosition":{"x":28601.028589968366,"y":17979.394808253663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Exit Target Rate","id":"3b122c9b-56d5-4cb6-86ba-12d1919aeeba"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"dc283f46-e843-40b1-ab59-6d38ab0b7741","savedPayload":{"position":{"x":28237.975738164623,"y":17350.539708987562},"targetPosition":{"x":28601.028589968366,"y":17979.394808253663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"eb3dd27b-831c-47ae-8a19-1b01626add98"}}}],"id":"b066c240-8552-4622-9597-77e812491910","savedPayload":{"position":{"x":29615.71870480589,"y":18719.172448259116},"targetPosition":{"x":30050.385326635973,"y":18602.70387796298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"d99cb56a-d182-4672-9e89-54bb809eff30","savedPayload":{"position":{"x":30050.385326635973,"y":18602.70387796298},"targetPosition":{"x":30275.385326635973,"y":18212.99244625998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Position Object","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"482e894d-68a1-499f-b55e-97827c1df506","savedPayload":{"position":{"x":29389.988637132188,"y":19120.73842327011},"targetPosition":{"x":29395.343119080062,"y":18895.802144464156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5a612794-8d2e-4689-82ce-f6bdcba13755","savedPayload":{"position":{"x":29395.343119080062,"y":18895.802144464156},"targetPosition":{"x":29406.05208297581,"y":18445.92958685225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"d1f7c811-2a35-44a0-8908-2076f59ab2ad","savedPayload":{"position":{"x":29200.523700693622,"y":19088.878328258954},"targetPosition":{"x":29269.03316145435,"y":18874.562081123386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"32444aa5-bc40-4905-97e7-f795118fc229","savedPayload":{"position":{"x":29269.03316145435,"y":18874.562081123386},"targetPosition":{"x":29406.05208297581,"y":18445.92958685225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Situation Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.situationName","project":"Superalgos","id":"8ae3f86b-d0f8-4851-a477-02d0960fb4e5","savedPayload":{"position":{"x":29027.709451463204,"y":19004.930349982424},"targetPosition":{"x":29153.823661967406,"y":18818.596762272366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"8fd749c8-cdc1-4a20-8901-d22fdd70612d","savedPayload":{"position":{"x":29153.823661967406,"y":18818.596762272366},"targetPosition":{"x":29406.05208297581,"y":18445.92958685225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Entry Target Rate","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.entryTargetRate","project":"Superalgos","id":"b97f9930-22b1-4e18-9d12-f2adc9de796d","savedPayload":{"position":{"x":28885.546272147672,"y":18875.695454382636},"targetPosition":{"x":29059.048209090386,"y":18732.44016520584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"08193c38-6100-40cf-84e9-533cd29ca463","savedPayload":{"position":{"x":29059.048209090386,"y":18732.44016520584},"targetPosition":{"x":29406.05208297581,"y":18445.92958685225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Target Rate","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitTargetRate","project":"Superalgos","id":"305c84ca-413b-462a-b908-8be894e80197","savedPayload":{"position":{"x":28785.551378058186,"y":18711.643484111562},"targetPosition":{"x":28992.38494636406,"y":18623.072185025125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"87fcd4c7-8315-4b89-8c6a-ca8d6ede7a25","savedPayload":{"position":{"x":28992.38494636406,"y":18623.072185025125},"targetPosition":{"x":29406.05208297581,"y":18445.92958685225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Position Begin Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"c7d06e13-042f-4e12-8093-b9f27dc8e655","savedPayload":{"position":{"x":28735.82576082134,"y":18526.06495414593},"targetPosition":{"x":28959.23453487283,"y":18499.353165048036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"67fb7b91-c601-48dd-9d79-5188dc43a921","savedPayload":{"position":{"x":28959.23453487283,"y":18499.353165048036},"targetPosition":{"x":29406.05208297581,"y":18445.92958685225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Position End Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"4f114564-7657-4037-9f5e-43e2fcfb75a5","savedPayload":{"position":{"x":28740.397894216032,"y":18333.994333305545},"targetPosition":{"x":28962.282623802625,"y":18371.30608448778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a0921f86-e8f0-40d9-99ee-0a316dd6ad67","savedPayload":{"position":{"x":28962.282623802625,"y":18371.30608448778},"targetPosition":{"x":29406.05208297581,"y":18445.92958685225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"48b097fa-bc1f-4cd9-bcf4-284bd77c5055","savedPayload":{"position":{"x":28798.89737118615,"y":18150.992041002934},"targetPosition":{"x":29001.28227511604,"y":18249.30455628604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"5e243e8e-1909-4a9d-a605-984e530846c3","savedPayload":{"position":{"x":29001.28227511604,"y":18249.30455628604},"targetPosition":{"x":29406.05208297581,"y":18445.92958685225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"0cea2f32-e0b8-4011-8389-eb24536ec638","savedPayload":{"position":{"x":28906.584912017363,"y":17991.883834603905},"targetPosition":{"x":29073.07396900351,"y":18143.232418686686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b98c147d-3f4d-41d6-b821-df00d7eeab29","savedPayload":{"position":{"x":29073.07396900351,"y":18143.232418686686},"targetPosition":{"x":29406.05208297581,"y":18445.92958685225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"95d9e4b7-2951-4dac-b0e6-c9cdb77cd0b9","savedPayload":{"position":{"x":29054.73631259399,"y":17869.559714737974},"targetPosition":{"x":29171.84156938793,"y":18061.683005442734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"298d34c8-3b72-4c1f-92bd-b3e2c2f3e73e","savedPayload":{"position":{"x":29171.84156938793,"y":18061.683005442734},"targetPosition":{"x":29406.05208297581,"y":18445.92958685225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3d274e02-8896-4311-a0c8-9041b6507090","savedPayload":{"position":{"x":29406.05208297581,"y":18445.92958685225},"targetPosition":{"x":30275.385326635973,"y":18212.99244625998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"a"}}},{"type":"Plotter Panel","name":"Position Combined Statistics","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Profit Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.profitLoss","project":"Superalgos","id":"96dd9046-7942-489e-8960-2de57321551b","savedPayload":{"position":{"x":29169.962496857417,"y":17850.34387398208},"targetPosition":{"x":29278.629152314938,"y":17821.22673140805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e226898a-74c0-4e4e-95e2-b2435c464dd5","savedPayload":{"position":{"x":29278.629152314938,"y":17821.22673140805},"targetPosition":{"x":29495.96246322998,"y":17762.99244625998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ROI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ROI","project":"Superalgos","id":"b7079949-8602-4b96-97f3-bc704e9e77e7","savedPayload":{"position":{"x":29203.67888945273,"y":17594.24244625998},"targetPosition":{"x":29301.10674737848,"y":17650.49244625998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"06a9c88b-3edb-4a5e-a239-c2cad3cbad17","savedPayload":{"position":{"x":29301.10674737848,"y":17650.49244625998},"targetPosition":{"x":29495.96246322998,"y":17762.99244625998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFail","project":"Superalgos","id":"7dc1c993-470e-4c7b-b879-9a91361859a4","savedPayload":{"position":{"x":29408.611035507878,"y":17436.99247988742},"targetPosition":{"x":29437.72817808191,"y":17545.65913534494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2102dc89-6799-4287-8c4d-d3591c9fd17e","savedPayload":{"position":{"x":29437.72817808191,"y":17545.65913534494},"targetPosition":{"x":29495.96246322998,"y":17762.99244625998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"05d6bb3e-f975-471f-be1f-3215025ce6fe","savedPayload":{"position":{"x":29495.96246322998,"y":17762.99244625998},"targetPosition":{"x":30275.385326635973,"y":18212.99244625998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"a"}}}],"id":"8854b5f8-8407-4a0d-9099-5456a8e4cced","savedPayload":{"position":{"x":30280.385326635973,"y":18300.99244625998},"targetPosition":{"x":30715.051948466054,"y":18184.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Position Base Asset","config":"{ \n \"codeName\": \"Position-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Left Entry Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.entryTargetRate","project":"Superalgos","id":"2d03dfa3-bce6-478b-8f65-a50344ae4601","savedPayload":{"position":{"x":29821.726744548592,"y":18912.956659841962},"targetPosition":{"x":29775.968872202564,"y":18810.18279585717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1c279ac2-347d-453f-9b5e-436216cebd7d","savedPayload":{"position":{"x":29775.968872202564,"y":18810.18279585717},"targetPosition":{"x":29684.453127510507,"y":18604.635067887586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Right Entry Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.entryTargetRate","project":"Superalgos","id":"174cdc36-dc92-4e69-aecb-3418b9863d4e","savedPayload":{"position":{"x":29563.503944538967,"y":18919.71846183039},"targetPosition":{"x":29603.820338862814,"y":18814.690663849455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"609e9ed3-5503-4a3e-949b-d2ab2cf10f10","savedPayload":{"position":{"x":29603.820338862814,"y":18814.690663849455},"targetPosition":{"x":29684.453127510507,"y":18604.635067887586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Right Exit Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\n\nif (record.exitTargetRate > 0) {\n y = record.exitTargetRate\n} else {\n y = record.candleClose\n}","project":"Superalgos","id":"ce2f05dc-daa2-472f-89e4-66d37b7eb0ae","savedPayload":{"position":{"x":29376.13153555613,"y":18741.90868492567},"targetPosition":{"x":29478.905399540923,"y":18696.150812579643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"93ba04d2-21ec-41a2-9a2e-eb47a8d39149","savedPayload":{"position":{"x":29478.905399540923,"y":18696.150812579643},"targetPosition":{"x":29684.453127510507,"y":18604.635067887586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"0ac578ec-3648-4413-82ea-944a6fc7db1d","savedPayload":{"position":{"x":29684.453127510507,"y":18604.635067887586},"targetPosition":{"x":29845.71870480589,"y":18184.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Profit Triangle","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.ROIInBaseAsset > 0 && record.exitTargetRate > 0","project":"Superalgos","id":"35ca8e2f-58a1-49dc-ab7a-a40eb53483a5","savedPayload":{"position":{"x":29525.384731028676,"y":18875.97818362756},"targetPosition":{"x":29468.31694923045,"y":18429.611441720608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"3dba4bdb-c7ff-44ff-897b-a7b98a253585","savedPayload":{"position":{"x":29183.80699675873,"y":19283.458083070527},"targetPosition":{"x":29326.06197299459,"y":18856.534762395568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"b672a718-2e17-4659-aff7-63a98fab5c1f","savedPayload":{"position":{"x":29326.06197299459,"y":18856.534762395568},"targetPosition":{"x":29468.31694923045,"y":18429.611441720608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"33837834-ffbd-46c0-8d62-2d6122bcff17","savedPayload":{"position":{"x":28841.512166063163,"y":19075.45644154534},"targetPosition":{"x":29154.914557646807,"y":18752.533941632973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2bdd5fe6-32ba-4120-a4f7-bd4e4099a206","savedPayload":{"position":{"x":29154.914557646807,"y":18752.533941632973},"targetPosition":{"x":29468.31694923045,"y":18429.611441720608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"8b93b7e7-30ed-46a5-ba59-95cb38ba87fa","savedPayload":{"position":{"x":29045.840329580256,"y":18584.574359378174},"targetPosition":{"x":29468.31694923045,"y":18429.611441720608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"1c279ac2-347d-453f-9b5e-436216cebd7d"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"bcc031f8-556b-4d6f-b438-4f9b14804d0f","savedPayload":{"position":{"x":29020.442777371143,"y":18385.92247078583},"targetPosition":{"x":29468.31694923045,"y":18429.611441720608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"609e9ed3-5503-4a3e-949b-d2ab2cf10f10"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"fa6bc1ba-8d7c-4c08-8dfc-5cca7451113f","savedPayload":{"position":{"x":29083.752197715017,"y":18195.923718697184},"targetPosition":{"x":29468.31694923045,"y":18429.611441720608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"93ba04d2-21ec-41a2-9a2e-eb47a8d39149"}}}],"id":"2628b290-a09a-4807-8a45-7ff5a880d195","savedPayload":{"position":{"x":29468.31694923045,"y":18429.611441720608},"targetPosition":{"x":29845.71870480589,"y":18184.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Loss Triangle","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.ROIInBaseAsset < 0 && record.exitTargetRate > 0","project":"Superalgos","id":"9aba703c-bd76-446b-9017-0fc1e03d5ae2","savedPayload":{"position":{"x":29180.13643146563,"y":18555.634576103064},"targetPosition":{"x":29396.335414166333,"y":18160.97269565452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"a7260cb4-6c92-42da-9a63-bc05e0cc0451","savedPayload":{"position":{"x":28664.28356404296,"y":18684.518384903262},"targetPosition":{"x":29030.309489104646,"y":18422.74554027889},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ec365a09-3739-47f0-8068-1c88d4d815c3","savedPayload":{"position":{"x":29030.309489104646,"y":18422.74554027889},"targetPosition":{"x":29396.335414166333,"y":18160.97269565452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"6c71aefb-c41b-4fe1-b0cc-25827fd91a9e","savedPayload":{"position":{"x":28509.621526264677,"y":18315.0456686327},"targetPosition":{"x":28952.978470215505,"y":18238.00918214361},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"a2f74418-ca41-437e-b377-414a234acf1b","savedPayload":{"position":{"x":28952.978470215505,"y":18238.00918214361},"targetPosition":{"x":29396.335414166333,"y":18160.97269565452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"1b7b3265-d7ca-43fb-9dc7-4703eb918db5","savedPayload":{"position":{"x":28963.459731491916,"y":18038.014803068654},"targetPosition":{"x":29396.335414166333,"y":18160.97269565452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"1c279ac2-347d-453f-9b5e-436216cebd7d"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"36b61d3e-013b-483f-a3ec-d88d6c4693aa","savedPayload":{"position":{"x":29059.677330593844,"y":17862.373742599924},"targetPosition":{"x":29396.335414166333,"y":18160.97269565452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"609e9ed3-5503-4a3e-949b-d2ab2cf10f10"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"10f40dfc-bf39-41dc-b2ca-3e93c13aa1a5","savedPayload":{"position":{"x":29222.574191987747,"y":17745.873866859492},"targetPosition":{"x":29396.335414166333,"y":18160.97269565452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"93ba04d2-21ec-41a2-9a2e-eb47a8d39149"}}}],"id":"e37cfbb4-fe54-49ad-9525-29b0d77e082b","savedPayload":{"position":{"x":29396.335414166333,"y":18160.97269565452},"targetPosition":{"x":29845.71870480589,"y":18184.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Empty Triangle","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.ROIInBaseAsset === 0 && record.exitTargetRate > 0","project":"Superalgos","id":"19cb9968-c1eb-451c-913b-807689e76acc","savedPayload":{"position":{"x":29075.891830226512,"y":18062.5952772868},"targetPosition":{"x":29496.003022150253,"y":17901.329699991416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"c4823f51-eef8-488c-8b2f-a3eccff5a2ae","savedPayload":{"position":{"x":28607.083515614628,"y":17760.53868145521},"targetPosition":{"x":29051.54326888244,"y":17830.934190723314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"c2a0e17f-1ee8-4132-84d3-59a06a3b122d","savedPayload":{"position":{"x":29051.54326888244,"y":17830.934190723314},"targetPosition":{"x":29496.003022150253,"y":17901.329699991416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"b7295cca-db57-485e-94e4-e8770da6bb6b","savedPayload":{"position":{"x":29146.287339494615,"y":17618.135524018988},"targetPosition":{"x":29496.003022150253,"y":17901.329699991416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"1c279ac2-347d-453f-9b5e-436216cebd7d"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"f60220b1-c42c-4160-807d-eb7563c58e50","savedPayload":{"position":{"x":29334.73744485487,"y":17481.218508067675},"targetPosition":{"x":29496.003022150253,"y":17901.329699991416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"609e9ed3-5503-4a3e-949b-d2ab2cf10f10"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"8ec2c8d2-ed4a-4927-9208-4acde0721ac9","savedPayload":{"position":{"x":29566.398531418356,"y":17456.869946723604},"targetPosition":{"x":29496.003022150253,"y":17901.329699991416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"93ba04d2-21ec-41a2-9a2e-eb47a8d39149"}}}],"id":"23c30ca5-95ec-47b2-a65f-01969b1a5a78","savedPayload":{"position":{"x":29496.003022150253,"y":17901.329699991416},"targetPosition":{"x":29845.71870480589,"y":18184.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"a1635ebb-9528-4f34-8729-4812e12a850f","savedPayload":{"position":{"x":29845.71870480589,"y":18184.523875963845},"targetPosition":{"x":30280.385326635973,"y":18068.05530566771},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Position Base Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Entry Target Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.entryTargetSizeInBaseAsset","project":"Superalgos","id":"31a77b72-a21e-4f05-acc9-2235fe404434","savedPayload":{"position":{"x":29314.088299776213,"y":17459.73108678364},"targetPosition":{"x":29477.088282962493,"y":17503.40680064469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c9bd8ca1-e2be-4ae1-b026-d80853994004","savedPayload":{"position":{"x":29477.088282962493,"y":17503.40680064469},"targetPosition":{"x":29803.088249335055,"y":17590.75822836679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Target Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitTargetSizeInBaseAsset","project":"Superalgos","id":"1ab726ad-0192-49ad-94c2-f931a565257f","savedPayload":{"position":{"x":29364.662888669183,"y":17337.63322836679},"targetPosition":{"x":29510.804675557807,"y":17422.00822836679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"917b6343-ae61-4086-b3d2-c03831ae6833","savedPayload":{"position":{"x":29510.804675557807,"y":17422.00822836679},"targetPosition":{"x":29803.088249335055,"y":17590.75822836679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Profit Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.profitLossInBaseAsset","project":"Superalgos","id":"d1dc5d27-95f5-480d-bd36-4c1291ae2b24","savedPayload":{"position":{"x":29445.115441359365,"y":17232.7854203911},"targetPosition":{"x":29564.439710684594,"y":17352.10968971633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"232bfbcc-1e50-40b0-84cf-d4bcebadfe2f","savedPayload":{"position":{"x":29564.439710684594,"y":17352.10968971633},"targetPosition":{"x":29803.088249335055,"y":17590.75822836679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ROI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ROIInBaseAsset + ' %'","project":"Superalgos","id":"6e6fe2c8-e8ca-4b85-b19c-25aad68a9485","savedPayload":{"position":{"x":29549.963249335055,"y":17152.33286770092},"targetPosition":{"x":29634.338249335055,"y":17298.474654589543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"dd5a890c-5c35-4b61-a80f-7e6d5fa1315f","savedPayload":{"position":{"x":29634.338249335055,"y":17298.474654589543},"targetPosition":{"x":29803.088249335055,"y":17590.75822836679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFailInBaseAsset","project":"Superalgos","id":"67b4e235-40db-4a56-8f55-64922adcbc02","savedPayload":{"position":{"x":29672.061107751902,"y":17101.75827880795},"targetPosition":{"x":29715.736821612954,"y":17264.75826199423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"24a6f905-7d60-4543-a3ff-98d142797358","savedPayload":{"position":{"x":29715.736821612954,"y":17264.75826199423},"targetPosition":{"x":29803.088249335055,"y":17590.75822836679},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b4298480-8922-4c40-ac79-b4484f8558bd","savedPayload":{"position":{"x":29803.088249335055,"y":17590.75822836679},"targetPosition":{"x":30280.385326635973,"y":18068.05530566771},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"42a79594-bac8-40bf-a9eb-f13716e15465","savedPayload":{"position":{"x":30280.385326635973,"y":18068.05530566771},"targetPosition":{"x":30715.051948466054,"y":18184.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Position Quoted Asset","config":"{ \n \"codeName\": \"Position-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Left Entry Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.entryTargetRate","project":"Superalgos","id":"800c7bf9-3d8d-46ae-88ac-c168b80cbc78","savedPayload":{"position":{"x":29577.193236093557,"y":18368.702569792982},"targetPosition":{"x":29588.952688211168,"y":18256.818856564052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"17cf1421-4fc5-4cff-83d5-394cfcb4a88e","savedPayload":{"position":{"x":29588.952688211168,"y":18256.818856564052},"targetPosition":{"x":29612.47159244639,"y":18033.051430106192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Right Entry Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.entryTargetRate","project":"Superalgos","id":"4dbc8252-a487-41d9-9f3a-b054398acc8b","savedPayload":{"position":{"x":29350.184830454662,"y":18245.447062085514},"targetPosition":{"x":29437.61375111857,"y":18174.648518092406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"a00d0039-31a4-4033-8ad5-b0e0d9d13e4e","savedPayload":{"position":{"x":29437.61375111857,"y":18174.648518092406},"targetPosition":{"x":29612.47159244639,"y":18033.051430106192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Right Exit Target Rate","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\n\nif (record.exitTargetRate > 0) {\n y = record.exitTargetRate\n} else {\n y = record.candleClose\n}","project":"Superalgos","id":"8aab882e-d77b-4fcb-8eb0-1d4f6381c86d","savedPayload":{"position":{"x":29276.8204527596,"y":17997.77307375336},"targetPosition":{"x":29388.70416598853,"y":18009.53252587097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"2af047d2-b4f1-4395-8d35-67c70c582c0e","savedPayload":{"position":{"x":29388.70416598853,"y":18009.53252587097},"targetPosition":{"x":29612.47159244639,"y":18033.051430106192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2d8c4071-9ea0-45cf-9b0d-e73fd57a9928","savedPayload":{"position":{"x":29612.47159244639,"y":18033.051430106192},"targetPosition":{"x":29962.187275102027,"y":17749.857254133763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Profit Triangle","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.ROIInQuotedAsset > 0 && record.exitTargetRate > 0","project":"Superalgos","id":"264f839b-e67b-4629-8465-cb404eb93754","savedPayload":{"position":{"x":29339.042762283883,"y":18188.507263238116},"targetPosition":{"x":29512.80398446247,"y":17773.40843444309},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"07f5de9d-d271-4377-95d5-7ca4b1ffee19","savedPayload":{"position":{"x":28839.487817317495,"y":18370.60634055228},"targetPosition":{"x":29176.145900889984,"y":18072.007387497684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"90188cf7-8395-4899-addc-0499321cff14","savedPayload":{"position":{"x":29176.145900889984,"y":18072.007387497684},"targetPosition":{"x":29512.80398446247,"y":17773.40843444309},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"916fb502-a39c-4203-83fc-32d41c4c5755","savedPayload":{"position":{"x":28647.052619113634,"y":18019.32421961482},"targetPosition":{"x":29079.92830178805,"y":17896.366327028954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"88d51449-8118-4d83-b768-112f9e212cc7","savedPayload":{"position":{"x":29079.92830178805,"y":17896.366327028954},"targetPosition":{"x":29512.80398446247,"y":17773.40843444309},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"b4c2062a-382b-43bc-a281-9df152bc8a49","savedPayload":{"position":{"x":29069.44704051164,"y":17696.371947953998},"targetPosition":{"x":29512.80398446247,"y":17773.40843444309},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"17cf1421-4fc5-4cff-83d5-394cfcb4a88e"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"4d43870a-1769-43e3-a927-641900ff72c0","savedPayload":{"position":{"x":29146.77805940078,"y":17511.635589818718},"targetPosition":{"x":29512.80398446247,"y":17773.40843444309},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"a00d0039-31a4-4033-8ad5-b0e0d9d13e4e"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"6347f1dc-7ab3-4570-877b-df9e04058758","savedPayload":{"position":{"x":29296.605001761767,"y":17378.746553994544},"targetPosition":{"x":29512.80398446247,"y":17773.40843444309},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"2af047d2-b4f1-4395-8d35-67c70c582c0e"}}}],"id":"9cf82ef4-557e-498e-b121-ff28235b3a25","savedPayload":{"position":{"x":29512.80398446247,"y":17773.40843444309},"targetPosition":{"x":29962.187275102027,"y":17749.857254133763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Loss Triangle","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.ROIInQuotedAsset < 0 && record.exitTargetRate > 0","project":"Superalgos","id":"ba9c6218-12de-4eeb-80ad-a5c949ea925d","savedPayload":{"position":{"x":29200.220768011153,"y":17738.457411400428},"targetPosition":{"x":29584.785519526587,"y":17504.769688377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBody":{"type":"Polygon Body","name":"New Polygon Body","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"dd6fee79-df88-4f2c-8526-f364a1343f83","savedPayload":{"position":{"x":28689.03717580797,"y":17592.147630246556},"targetPosition":{"x":29136.91134766728,"y":17548.45865931178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"196adfa2-00ad-48a4-8eb3-c82256e91031","savedPayload":{"position":{"x":29136.91134766728,"y":17548.45865931178},"targetPosition":{"x":29584.785519526587,"y":17504.769688377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"a04ad71d-d9f8-4122-913e-19892b51689b","savedPayload":{"position":{"x":28739.832280226197,"y":17194.84385306187},"targetPosition":{"x":29162.308899876392,"y":17349.806770719435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1fe378dc-3deb-4825-9401-83f963060acd","savedPayload":{"position":{"x":29162.308899876392,"y":17349.806770719435},"targetPosition":{"x":29584.785519526587,"y":17504.769688377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"78ee45ea-40df-4cb4-9e16-0b07d9e298fd","savedPayload":{"position":{"x":29271.383127942943,"y":17181.847188464635},"targetPosition":{"x":29584.785519526587,"y":17504.769688377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"17cf1421-4fc5-4cff-83d5-394cfcb4a88e"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"b719aa97-15aa-4d6c-a08e-451314cb604a","savedPayload":{"position":{"x":29442.530543290726,"y":17077.84636770204},"targetPosition":{"x":29584.785519526587,"y":17504.769688377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"a00d0039-31a4-4033-8ad5-b0e0d9d13e4e"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"508f7dd3-087d-4952-9140-29936aac5aa4","savedPayload":{"position":{"x":29641.853301324812,"y":17058.402946470047},"targetPosition":{"x":29584.785519526587,"y":17504.769688377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"2af047d2-b4f1-4395-8d35-67c70c582c0e"}}}],"id":"61faa796-9697-48b0-a582-613e1b351931","savedPayload":{"position":{"x":29584.785519526587,"y":17504.769688377},"targetPosition":{"x":29962.187275102027,"y":17749.857254133763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Empty Triangle","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.ROIInQuotedAsset === 0 && record.exitTargetRate > 0","project":"Superalgos","id":"9b162bfd-0d6a-4ca2-ae2a-36b9b25d8180","savedPayload":{"position":{"x":29356.46194453883,"y":17259.35055294192},"targetPosition":{"x":29800.921697806643,"y":17329.746062210023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"93ec6c1e-fe4c-4857-b9e7-6914e626423a","savedPayload":{"position":{"x":29101.490332495367,"y":16763.357710265165},"targetPosition":{"x":29451.206015151005,"y":17046.551886237594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"29555fd1-c64d-4237-88f3-32fee8ae4c2c","savedPayload":{"position":{"x":29451.206015151005,"y":17046.551886237594},"targetPosition":{"x":29800.921697806643,"y":17329.746062210023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Left Entry Target Rate","project":"Superalgos","id":"c4b528b7-667e-4aa1-b397-0f5bb15abd95","savedPayload":{"position":{"x":29639.65612051126,"y":16909.63487028628},"targetPosition":{"x":29800.921697806643,"y":17329.746062210023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Left Entry Target Rate","id":"17cf1421-4fc5-4cff-83d5-394cfcb4a88e"}}},{"type":"Polygon Vertex","name":"Right Entry Target Rate","project":"Superalgos","id":"48fe8782-73d1-46d8-aa7d-55a843996fb3","savedPayload":{"position":{"x":29871.317207074746,"y":16885.28630894221},"targetPosition":{"x":29800.921697806643,"y":17329.746062210023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Entry Target Rate","id":"a00d0039-31a4-4033-8ad5-b0e0d9d13e4e"}}},{"type":"Polygon Vertex","name":"Right Exit Target Rate","project":"Superalgos","id":"339258b7-534f-41b7-b0ea-9f958bb982ab","savedPayload":{"position":{"x":30084.115873779072,"y":16980.030379554384},"targetPosition":{"x":29800.921697806643,"y":17329.746062210023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Right Exit Target Rate","id":"2af047d2-b4f1-4395-8d35-67c70c582c0e"}}}],"id":"58c807a3-8443-43d9-82e9-81c3d0545399","savedPayload":{"position":{"x":29800.921697806643,"y":17329.746062210023},"targetPosition":{"x":29962.187275102027,"y":17749.857254133763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[],"texts":[],"id":"d2ad64d7-e463-4f5f-9f3d-05c98a5e8101","savedPayload":{"position":{"x":29962.187275102027,"y":17749.857254133763},"targetPosition":{"x":30396.85389693211,"y":17866.3258244299},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Position Quoted Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Entry Target Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.entryTargetSizeInQuotedAsset","project":"Superalgos","id":"8a47d5d4-b86c-40cb-a4f1-a64244e80bfd","savedPayload":{"position":{"x":29864.17823351222,"y":16856.353083709088},"targetPosition":{"x":29983.502502837448,"y":16975.677353034316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"38cae0a2-4954-4cbc-a178-3e665885c393","savedPayload":{"position":{"x":29983.502502837448,"y":16975.677353034316},"targetPosition":{"x":30222.15104148791,"y":17214.325891684777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Target Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitTargetSizeInQuotedAsset","project":"Superalgos","id":"4ece6618-31a7-4e14-86b6-d1aecf9d0494","savedPayload":{"position":{"x":29969.02604148791,"y":16775.900531018906},"targetPosition":{"x":30053.40104148791,"y":16922.04231790753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"821330e4-19c2-4267-a189-a2d28087850a","savedPayload":{"position":{"x":30053.40104148791,"y":16922.04231790753},"targetPosition":{"x":30222.15104148791,"y":17214.325891684777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Profit Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.profitLossInQuotedAsset","project":"Superalgos","id":"ec9c4116-3155-41cf-8e01-fbe6c8428c28","savedPayload":{"position":{"x":30091.123899904756,"y":16725.325942125935},"targetPosition":{"x":30134.79961376581,"y":16888.325925312216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"83330178-d79b-4709-bdee-5c3875214e06","savedPayload":{"position":{"x":30134.79961376581,"y":16888.325925312216},"targetPosition":{"x":30222.15104148791,"y":17214.325891684777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"ROI","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ROIInQuotedAsset + ' %'","project":"Superalgos","id":"7ad9a57d-8322-4677-8a2a-d108ea01fdca","savedPayload":{"position":{"x":30222.15104148791,"y":16708.075891684777},"targetPosition":{"x":30222.15104148791,"y":16876.825891684777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"b5e39cc4-9b95-4e92-9814-41c34c2ea4a8","savedPayload":{"position":{"x":30222.15104148791,"y":16876.825891684777},"targetPosition":{"x":30222.15104148791,"y":17214.325891684777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Hit Fail","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.hitFailInQuotedAsset","project":"Superalgos","id":"56c8470e-20fb-40c1-8224-37240bcad860","savedPayload":{"position":{"x":30353.17818307106,"y":16725.325942125935},"targetPosition":{"x":30309.50246921001,"y":16888.325925312216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"09ec6e2f-ad57-4127-94af-0046a7b0d400","savedPayload":{"position":{"x":30309.50246921001,"y":16888.325925312216},"targetPosition":{"x":30222.15104148791,"y":17214.325891684777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"f15d0a31-30bd-49a6-8c45-1bcd1a9cc5a8","savedPayload":{"position":{"x":30222.15104148791,"y":17214.325891684777},"targetPosition":{"x":30396.85389693211,"y":17866.3258244299},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"baed45c2-228e-4679-876e-1867bbef5e9f","savedPayload":{"position":{"x":30396.85389693211,"y":17866.3258244299},"targetPosition":{"x":30715.051948466054,"y":18184.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Stop Loss","config":"{ \n \"codeName\": \"Module-Name\", \n \"icon\": \"histogram|band|moving-average|oscillator|trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.stopLoss","project":"Superalgos","id":"eeef1100-0dcc-4367-99f1-b23a5e98b2ff","savedPayload":{"position":{"x":29750.292784720466,"y":17624.110307829793},"targetPosition":{"x":29790.609179044313,"y":17519.082509848857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7d0349ba-640b-43f2-b500-d62c06fecd81","savedPayload":{"position":{"x":29790.609179044313,"y":17519.082509848857},"targetPosition":{"x":29830.92557336816,"y":17414.05471186792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.stopLoss","project":"Superalgos","id":"79f690f8-360a-49a8-9df0-bc42d1975099","savedPayload":{"position":{"x":29689.328485381946,"y":17239.196870540105},"targetPosition":{"x":29760.127029375053,"y":17326.625791204013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a4c015cf-419c-44f6-9816-6828e5fbc3c3","savedPayload":{"position":{"x":29760.127029375053,"y":17326.625791204013},"targetPosition":{"x":29830.92557336816,"y":17414.05471186792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fdf923e9-1d23-41c0-9210-38d35313c4ab","savedPayload":{"position":{"x":29830.92557336816,"y":17414.05471186792},"targetPosition":{"x":30275.385326635973,"y":17343.659202599818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"New Polygon","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.stopLoss > 0","project":"Superalgos","id":"b8677c90-5e19-402b-b494-d2cce015c167","savedPayload":{"position":{"x":29473.479454866443,"y":17343.659202599818},"targetPosition":{"x":29874.432390751208,"y":17139.363477717023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.5,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 0.8,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"1eee2eba-1af0-4cc0-ad50-22ac23a10dac","savedPayload":{"position":{"x":28985.512884215583,"y":16998.572459180818},"targetPosition":{"x":29429.972637483395,"y":17068.96796844892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"83ae727f-2dc3-4153-9b7f-2bee0748e134","savedPayload":{"position":{"x":29429.972637483395,"y":17068.96796844892},"targetPosition":{"x":29874.432390751208,"y":17139.363477717023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"ac7ed016-4516-4ebc-a902-95e97ace1f55","savedPayload":{"position":{"x":29556.234339217262,"y":16821.165426183077},"targetPosition":{"x":29874.432390751208,"y":17139.363477717023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"7d0349ba-640b-43f2-b500-d62c06fecd81"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"6f873316-c57a-48b4-80c7-362f823d37b4","savedPayload":{"position":{"x":29804.036881483105,"y":16694.90372444921},"targetPosition":{"x":29874.432390751208,"y":17139.363477717023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"a4c015cf-419c-44f6-9816-6828e5fbc3c3"}}}],"id":"9d351f29-6a3e-4c2b-b008-ebe1414d2aa8","savedPayload":{"position":{"x":29874.432390751208,"y":17139.363477717023},"targetPosition":{"x":30275.385326635973,"y":17343.659202599818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"phase\", \n\"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"(record.positions !== record.previous.positions && record.stopLossPhase >= 0 ) || \n(record.stopLossPhase !== record.previous.stopLossPhase && record.stopLossPhase >= 0 ) ","project":"Superalgos","id":"ef8dedb9-454b-423b-94e7-1a522047aa12","savedPayload":{"position":{"x":29882.388723965458,"y":16820.162483836673},"targetPosition":{"x":30071.089601753178,"y":16942.706266715053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Begin","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 10\n }","project":"Superalgos","id":"860a9f6e-cc9d-46fb-83d6-fb908e12a30f","savedPayload":{"position":{"x":30082.86519190784,"y":16718.014621395276},"targetPosition":{"x":30071.089601753178,"y":16942.706266715053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"7d0349ba-640b-43f2-b500-d62c06fecd81"}}},"id":"d4a99750-dd06-453f-a126-ac48c25372ab","savedPayload":{"position":{"x":30071.089601753178,"y":16942.706266715053},"targetPosition":{"x":30275.385326635973,"y":17343.659202599818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"New Text","config":"{ \n\"codeName\": \"\", \n\"fontSize\": 10\n}","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"(record.positions !== record.previous.positions && record.stopLossPhase >= 0 ) || \n(record.stopLossPhase !== record.previous.stopLossPhase && record.stopLossPhase >= 0 ) ","project":"Superalgos","id":"8e0eb7c3-171a-4fc3-a3e4-3c67bb772343","savedPayload":{"position":{"x":30186.681810137103,"y":16740.100423565033},"targetPosition":{"x":30345.780835904076,"y":16899.199449332005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Begin","config":"{ \n\"offsetX\": -3,\n \"offsetY\": -15\n }","project":"Superalgos","id":"817671c1-fd3f-43ff-9670-9c3bcb94b8fb","savedPayload":{"position":{"x":30310.583081270022,"y":16676.9695726981},"targetPosition":{"x":30345.780835904076,"y":16899.199449332005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"7d0349ba-640b-43f2-b500-d62c06fecd81"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"record.stopLossPhase","project":"Superalgos","id":"ccafd036-b292-48b1-847e-6735a3eb8253","savedPayload":{"position":{"x":30447.928698345473,"y":16698.722981389623},"targetPosition":{"x":30345.780835904076,"y":16899.199449332005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"42f9061a-9d2a-4d3f-9f7a-c47c9e6e0601","savedPayload":{"position":{"x":30546.257303846458,"y":16797.051586890608},"targetPosition":{"x":30345.780835904076,"y":16899.199449332005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7e69ccc1-a9f7-4a64-aeaa-344eb46f63f7","savedPayload":{"position":{"x":30345.780835904076,"y":16899.199449332005},"targetPosition":{"x":30275.385326635973,"y":17343.659202599818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"41dd1d86-998c-46d7-a37e-1a1508fd8b51","savedPayload":{"position":{"x":30275.385326635973,"y":17343.659202599818},"targetPosition":{"x":30593.58337816992,"y":17661.857254133763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Stop Loss Panel","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Stop Loss","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.stopLoss","project":"Superalgos","id":"1a5679d8-426b-4789-ac5b-c8d9c3a18fd8","savedPayload":{"position":{"x":30426.857772493622,"y":16877.474949648044},"targetPosition":{"x":30568.454860479836,"y":17052.332790975863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f590d585-66dd-47b9-99e8-38d081a1d1a0","savedPayload":{"position":{"x":30568.454860479836,"y":17052.332790975863},"targetPosition":{"x":30710.05194846605,"y":17227.190632303682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Stop Loss Phase","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.stopLossPhase","project":"Superalgos","id":"9067e496-6c73-4ada-b403-6a097667f8a2","savedPayload":{"position":{"x":30692.388563234057,"y":16890.153164324016},"targetPosition":{"x":30698.27635831139,"y":17002.498986983905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e78ebe16-bfdc-4814-b334-5aad14fbf307","savedPayload":{"position":{"x":30698.27635831139,"y":17002.498986983905},"targetPosition":{"x":30710.05194846605,"y":17227.190632303682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Initial Value","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.initialValue","project":"Superalgos","id":"cf99addf-c741-4b6a-b145-e06091ac92ea","savedPayload":{"position":{"x":30893.867622783622,"y":16944.139315622102},"targetPosition":{"x":30832.59573134443,"y":17038.489754515962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"216ff270-5de0-42df-8bde-2530f1e7e120","savedPayload":{"position":{"x":30832.59573134443,"y":17038.489754515962},"targetPosition":{"x":30710.05194846605,"y":17227.190632303682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Final Value","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.finalValue","project":"Superalgos","id":"8e9018c1-228b-41c2-8e5d-ea35b5f547d9","savedPayload":{"position":{"x":31025.135342408856,"y":17106.24144933214},"targetPosition":{"x":30920.10754442792,"y":17146.557843655988},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1d498821-6624-4450-b9cf-4ca95c4a00c7","savedPayload":{"position":{"x":30920.10754442792,"y":17146.557843655988},"targetPosition":{"x":30710.05194846605,"y":17227.190632303682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1b6d3bd0-e594-4b09-9f1c-021177676d84","savedPayload":{"position":{"x":30710.05194846605,"y":17227.190632303682},"targetPosition":{"x":30593.58337816992,"y":17661.857254133763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"9b8e4fc2-b62a-4d47-ac5f-08818e463da2","savedPayload":{"position":{"x":30598.58337816992,"y":17749.857254133763},"targetPosition":{"x":30715.051948466054,"y":18184.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Take Profit","config":"{ \n \"codeName\": \"Module-Name\", \n \"icon\": \"histogram|band|moving-average|oscillator|trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.takeProfit","project":"Superalgos","id":"4e73522f-8830-4026-8aa9-aa20558e6bb0","savedPayload":{"position":{"x":30115.082915214494,"y":17207.522142994512},"targetPosition":{"x":30202.511835878402,"y":17136.723599001405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9baaa58e-af64-4348-9320-fad9823153a9","savedPayload":{"position":{"x":30202.511835878402,"y":17136.723599001405},"targetPosition":{"x":30289.94075654231,"y":17065.925055008298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.takeProfit","project":"Superalgos","id":"f7740d4c-0742-4f8b-8ad3-b7fec1e92066","savedPayload":{"position":{"x":30254.74300190826,"y":16843.69517837439},"targetPosition":{"x":30272.341879225285,"y":16954.810116691344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bcbd8777-10f8-46a6-ba09-4d635570057d","savedPayload":{"position":{"x":30272.341879225285,"y":16954.810116691344},"targetPosition":{"x":30289.94075654231,"y":17065.925055008298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fc2dda29-1eb7-4f6f-8527-2e54ba32bb8b","savedPayload":{"position":{"x":30289.94075654231,"y":17065.925055008298},"targetPosition":{"x":30710.05194846605,"y":17227.190632303682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"New Polygon","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.takeProfit > 0","project":"Superalgos","id":"b96a45dc-f0db-4c23-8f66-081302ea7bbf","savedPayload":{"position":{"x":32656.14459837961,"y":16375.939371440309},"targetPosition":{"x":32233.937927398958,"y":16480.804651897506},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.5,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.8,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"5033856c-d71d-4608-a6f2-347ef82d8591","savedPayload":{"position":{"x":32171.093524444434,"y":15270.848248586371},"targetPosition":{"x":32202.60007402855,"y":15875.731493800155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1e3604e1-777b-4344-a47a-d3fefa10014b","savedPayload":{"position":{"x":32202.60007402855,"y":15875.731493800155},"targetPosition":{"x":32233.937927398958,"y":16480.804651897506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"74cef8d6-de4c-464d-8c00-97a88227f626","savedPayload":{"position":{"x":32563.89005125502,"y":15972.679047701366},"targetPosition":{"x":32233.937927398958,"y":16480.804651897506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"9baaa58e-af64-4348-9320-fad9823153a9"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"e3c98070-e46c-4d6d-9079-2b9d556722cc","savedPayload":{"position":{"x":32799.66047391608,"y":16263.472601378264},"targetPosition":{"x":32233.937927398958,"y":16480.804651897506},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"bcbd8777-10f8-46a6-ba09-4d635570057d"}}}],"id":"a0b598d2-cdb6-4ce7-96c5-ef3317ae1768","savedPayload":{"position":{"x":30464.964382709288,"y":16849.788876728242},"targetPosition":{"x":30710.05194846605,"y":17227.190632303682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"phase\", \n\"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"(record.positions !== record.previous.positions && record.takeProfitPhase >= 0 ) || \n(record.takeProfitPhase !== record.previous.takeProfitPhase && record.takeProfitPhase >= 0 ) ","project":"Superalgos","id":"a404c20d-5c4d-4505-81f0-263987496ba0","savedPayload":{"position":{"x":30631.45526633398,"y":16577.33087372174},"targetPosition":{"x":30733.603128775376,"y":16777.807341664124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"Begin","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 10\n }","project":"Superalgos","id":"c1ed6b36-4dd8-4ff5-ae66-6c6878b4edc1","savedPayload":{"position":{"x":30856.146911653756,"y":16589.106463876404},"targetPosition":{"x":30733.603128775376,"y":16777.807341664124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"9baaa58e-af64-4348-9320-fad9823153a9"}}},"id":"0da5f29a-4847-460d-b982-68b8d5cc7fe5","savedPayload":{"position":{"x":30733.603128775376,"y":16777.807341664124},"targetPosition":{"x":30710.05194846605,"y":17227.190632303682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[{"type":"Text","name":"New Text","config":"{ \n\"codeName\": \"\", \n\"fontSize\": 10\n}","project":"Superalgos","textCondition":{"type":"Text Condition","name":"New Text Condition","code":"(record.positions !== record.previous.positions && record.takeProfitPhase >= 0 ) || \n(record.takeProfitPhase !== record.previous.takeProfitPhase && record.takeProfitPhase >= 0 ) ","project":"Superalgos","id":"81c4f7bc-db04-4c61-a8e8-5a4a6308dda0","savedPayload":{"position":{"x":30935.01183929041,"y":16660.141638733003},"targetPosition":{"x":30993.24612443848,"y":16877.474949648044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"textPosition":{"type":"Text Position","name":"Begin","config":"{ \n\"offsetX\": -3,\n \"offsetY\": -15\n }","project":"Superalgos","id":"5833e42f-c848-4271-9e20-f48d5a98929a","savedPayload":{"position":{"x":31073.878913086173,"y":16667.419353686175},"targetPosition":{"x":30993.24612443848,"y":16877.474949648044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"9baaa58e-af64-4348-9320-fad9823153a9"}}},"textFormula":{"type":"Text Formula","name":"New Text Formula","code":"record.takeProfitPhase","project":"Superalgos","id":"00f3fb76-f50d-4879-b1d2-49c51824aef9","savedPayload":{"position":{"x":31181.9470022262,"y":16754.931166769664},"targetPosition":{"x":30993.24612443848,"y":16877.474949648044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"textStyle":{"type":"Text Style","name":"New Text Style","config":"{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.5,\n \"fontSize\": 10\n}","project":"Superalgos","id":"e4d1b248-ee99-42e0-9c77-18b9792b6631","savedPayload":{"position":{"x":31217.937769758257,"y":16889.250539802706},"targetPosition":{"x":30993.24612443848,"y":16877.474949648044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f26f4f43-95e1-406d-94e8-7c818e363777","savedPayload":{"position":{"x":30993.24612443848,"y":16877.474949648044},"targetPosition":{"x":30710.05194846605,"y":17227.190632303682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"95465ef6-b26a-4ca3-817c-26b50e9ef8e0","savedPayload":{"position":{"x":30710.05194846605,"y":17227.190632303682},"targetPosition":{"x":30826.520518762187,"y":17661.857254133763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Take Profit Panel","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Take Profit","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.takeProfit","project":"Superalgos","id":"64f4a076-de71-444a-a543-f62da7701e6f","savedPayload":{"position":{"x":31074.323061028026,"y":16899.19944933201},"targetPosition":{"x":31109.52081566208,"y":17121.429325965913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"321eb006-13d4-4f66-aeab-f6fd2aa4758b","savedPayload":{"position":{"x":31109.52081566208,"y":17121.429325965913},"targetPosition":{"x":31144.718570296132,"y":17343.659202599818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Take Profit Phase","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.takeProfitPhase","project":"Superalgos","id":"0e3f0594-6a97-4e2e-a261-84be8b4ef02c","savedPayload":{"position":{"x":31297.94036395823,"y":17042.944500686244},"targetPosition":{"x":31246.86643273753,"y":17143.182734657436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"eccb236b-4d20-4df2-9810-543bfbb3fc25","savedPayload":{"position":{"x":31246.86643273753,"y":17143.182734657436},"targetPosition":{"x":31144.718570296132,"y":17343.659202599818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Initial Value","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.initialValue","project":"Superalgos","id":"9c72c8d4-8b90-42ff-9ffc-a247ecf7f8cb","savedPayload":{"position":{"x":31445.433272209706,"y":17190.43740893772},"targetPosition":{"x":31345.195038238515,"y":17241.51134015842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"59c28a01-9fc1-45f7-b0c0-2fd02035298e","savedPayload":{"position":{"x":31345.195038238515,"y":17241.51134015842},"targetPosition":{"x":31144.718570296132,"y":17343.659202599818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Final Value","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.finalValue","project":"Superalgos","id":"79ac8b14-7f99-4d31-872a-bf6d3ab7248c","savedPayload":{"position":{"x":31478.06338524699,"y":17396.455834550896},"targetPosition":{"x":31366.948446930037,"y":17378.85695723387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"653490ef-1b6d-4fdc-b1f0-0f8bfc1ad7a7","savedPayload":{"position":{"x":31366.948446930037,"y":17378.85695723387},"targetPosition":{"x":31144.718570296132,"y":17343.659202599818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"33aa2293-7958-4cc3-bb41-fc97c17ccd67","savedPayload":{"position":{"x":31144.718570296132,"y":17343.659202599818},"targetPosition":{"x":30826.520518762187,"y":17661.857254133763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"78a2df79-8912-44d7-a8c7-4b6a0a7235c2","savedPayload":{"position":{"x":30831.520518762187,"y":17749.857254133763},"targetPosition":{"x":30715.051948466054,"y":18184.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"cd6f9452-2cce-424d-8059-e3b312f627c4","savedPayload":{"position":{"x":30715.051948466054,"y":18184.523875963845},"targetPosition":{"x":31033.25,"y":18502.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Trading Stages","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Trigger Stage Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate * 0.90","project":"Superalgos","id":"11876454-5f52-49ff-b29f-a5ddbd44e55f","savedPayload":{"position":{"x":30040.66735770847,"y":18683.47074979695},"targetPosition":{"x":30045.438125550707,"y":18483.22185819154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ee6913fa-364d-4b80-bad5-35de44ca43fd","savedPayload":{"position":{"x":30045.438125550707,"y":18483.22185819154},"targetPosition":{"x":30054.717116062133,"y":18083.493493109447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"f064b6c0-7eaf-4341-997a-8655f56c4ca8","savedPayload":{"position":{"x":29854.975128400496,"y":18649.775970733306},"targetPosition":{"x":29921.463146361555,"y":18460.91676660472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"38094e81-9ae7-449d-bc9c-125f756b9f04","savedPayload":{"position":{"x":29921.463146361555,"y":18460.91676660472},"targetPosition":{"x":30054.717116062133,"y":18083.493493109447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.beginRate * 0.90","project":"Superalgos","id":"2a99561e-32d8-430f-9f67-44ce7b3dbdb7","savedPayload":{"position":{"x":29689.239229374765,"y":18560.086383256352},"targetPosition":{"x":29810.855962544778,"y":18401.225685985857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"18c413f8-8acc-4172-91a6-d90a0762118c","savedPayload":{"position":{"x":29810.855962544778,"y":18401.225685985857},"targetPosition":{"x":30054.717116062133,"y":18083.493493109447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"7ab18100-017d-4aef-b48d-32f69b294062","savedPayload":{"position":{"x":29558.267268940603,"y":18420.886156888828},"targetPosition":{"x":29723.043042454166,"y":18307.696500482944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"185d7e04-fa68-401d-b666-9152e57c3378","savedPayload":{"position":{"x":29723.043042454166,"y":18307.696500482944},"targetPosition":{"x":30054.717116062133,"y":18083.493493109447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a14053c2-6a61-4f8c-be0d-585e226b6bca","savedPayload":{"position":{"x":30054.717116062133,"y":18083.493493109447},"targetPosition":{"x":30245.242973630047,"y":17732.225787838146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"6b0d0c65-790f-4123-85da-5eeaae17e347","savedPayload":{"position":{"x":30111.351531567536,"y":17330.314257825175},"targetPosition":{"x":29892.487988033405,"y":17040.025182761274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"37f505da-f3f9-4eb2-b57e-4364f4c7557c","savedPayload":{"position":{"x":29464.822248441527,"y":17567.641729478226},"targetPosition":{"x":29660.72742164514,"y":17325.94171509387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"debc9932-c238-4867-9bf3-51bbe419e2ff","savedPayload":{"position":{"x":29660.72742164514,"y":17325.94171509387},"targetPosition":{"x":29892.487988033405,"y":17040.025182761274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"172928bb-91a1-471b-8dc0-86069d7c02a0","savedPayload":{"position":{"x":29548.69239407828,"y":16908.213364691303},"targetPosition":{"x":29892.487988033405,"y":17040.025182761274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"ee6913fa-364d-4b80-bad5-35de44ca43fd"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"a1267ac2-8258-49cb-95fd-05af04277e88","savedPayload":{"position":{"x":29928.425065823696,"y":16665.583487840482},"targetPosition":{"x":29892.487988033405,"y":17040.025182761274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"18c413f8-8acc-4172-91a6-d90a0762118c"}}}],"id":"9e88f3a0-09ad-44fd-a84e-731228860e66","savedPayload":{"position":{"x":29934.243443579646,"y":17983.906884764332},"targetPosition":{"x":30245.242973630047,"y":17732.225787838146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"d567e677-4217-4379-b873-1afc6fd52f11","savedPayload":{"position":{"x":29997.246031998944,"y":17143.888948078922},"targetPosition":{"x":29876.606558385436,"y":16798.52311935893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"592cc0ee-978d-4030-8fde-4ec503294f15","savedPayload":{"position":{"x":29279.84564115954,"y":17121.981770121994},"targetPosition":{"x":29552.700518739668,"y":16974.065083187754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"07121085-90a5-4b16-a2b5-6dbb11c3d08c","savedPayload":{"position":{"x":29552.700518739668,"y":16974.065083187754},"targetPosition":{"x":29876.606558385436,"y":16798.52311935893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"8591ccfd-d6ec-495e-859d-29894c061971","savedPayload":{"position":{"x":29609.281230270284,"y":16545.044237990136},"targetPosition":{"x":29876.606558385436,"y":16798.52311935893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"ee6913fa-364d-4b80-bad5-35de44ca43fd"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"72ad8b4e-d393-453d-8b57-527f63c248f2","savedPayload":{"position":{"x":30052.913808668385,"y":16466.74713918238},"targetPosition":{"x":29876.606558385436,"y":16798.52311935893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"18c413f8-8acc-4172-91a6-d90a0762118c"}}}],"id":"e2e18af7-af5f-4634-b8a4-4fabd2ddd7a5","savedPayload":{"position":{"x":29861.35310330976,"y":17845.656354352366},"targetPosition":{"x":30245.242973630047,"y":17732.225787838146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"e75c26a6-3516-4eeb-98c7-dcde0cd36ac9","savedPayload":{"position":{"x":30098.08918532047,"y":13041.78930627917},"targetPosition":{"x":30326.97470900253,"y":13227.24323203976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"460b5169-b17a-4c63-a789-44dd11736441","savedPayload":{"position":{"x":30326.97470900253,"y":13227.24323203976},"targetPosition":{"x":30594.44820170511,"y":13443.967702632162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"bb8d8af7-3a7e-4bbd-b4a3-2f254e8a7288","savedPayload":{"position":{"x":30558.618904176376,"y":13101.555477608686},"targetPosition":{"x":30594.44820170511,"y":13443.967702632162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"ee6913fa-364d-4b80-bad5-35de44ca43fd"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"a146b387-51f1-41c0-8528-99088c6f22f8","savedPayload":{"position":{"x":30811.221873154074,"y":13176.199595597716},"targetPosition":{"x":30594.44820170511,"y":13443.967702632162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"38094e81-9ae7-449d-bc9c-125f756b9f04"}}}],"id":"08d916aa-6d2d-497b-8738-9b0966e3901e","savedPayload":{"position":{"x":29847.031819787615,"y":17690.445290983374},"targetPosition":{"x":30245.242973630047,"y":17732.225787838146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"2ecdf0cb-d87f-41cf-8317-d14776d5dda1","savedPayload":{"position":{"x":30218.773265337084,"y":13003.49744790232},"targetPosition":{"x":30426.518179603332,"y":13211.419957035734},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"a7ba9639-8238-467d-b0be-b9b2e51311f0","savedPayload":{"position":{"x":30426.518179603332,"y":13211.419957035734},"targetPosition":{"x":30655.95555167008,"y":13441.077461389155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"354df2e6-8fd8-4beb-83ba-0bdcb67d613e","savedPayload":{"position":{"x":30655.953762058514,"y":13115.394717826319},"targetPosition":{"x":30655.95555167008,"y":13441.077461389155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"18c413f8-8acc-4172-91a6-d90a0762118c"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"6babbbfe-f55b-424e-90a3-a7e0bf17b8a1","savedPayload":{"position":{"x":30886.51865345985,"y":13210.473178519562},"targetPosition":{"x":30655.95555167008,"y":13441.077461389155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"185d7e04-fa68-401d-b666-9152e57c3378"}}}],"id":"70de0f73-5a2d-4a5a-a5f7-1863f192a14d","savedPayload":{"position":{"x":29893.32812824937,"y":17541.351989195355},"targetPosition":{"x":30245.242973630047,"y":17732.225787838146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"trigger-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"4a525c63-9096-4b33-980f-926bb7c16783","savedPayload":{"position":{"x":29866.550021549578,"y":17265.49618024856},"targetPosition":{"x":29993.2023314699,"y":17421.317736683384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"ee6913fa-364d-4b80-bad5-35de44ca43fd"}}},"id":"c5fd3ce1-b24e-455c-9557-b43a68d6e942","savedPayload":{"position":{"x":29993.2023314699,"y":17421.317736683384},"targetPosition":{"x":30245.242973630047,"y":17732.225787838146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"trigger-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"3433cd26-6fad-49b0-a789-6e12a9a8aad0","savedPayload":{"position":{"x":30072.739931700507,"y":17156.647479380685},"targetPosition":{"x":30129.955575932217,"y":17349.12764126681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"18c413f8-8acc-4172-91a6-d90a0762118c"}}},"id":"9657d954-28e9-496d-a8e6-6f4c9974796d","savedPayload":{"position":{"x":30129.955575932217,"y":17349.12764126681},"targetPosition":{"x":30245.242973630047,"y":17732.225787838146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"09119fa5-53de-4885-af93-32aacf6445bb","savedPayload":{"position":{"x":30245.242973630047,"y":17732.225787838146},"targetPosition":{"x":30700.006147926553,"y":17779.90281745717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Trigger Stage Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"d6725ef3-05e1-4146-89e6-4e0bd9581a57","savedPayload":{"position":{"x":30223.174084491748,"y":17303.776906793784},"targetPosition":{"x":30347.733792571533,"y":17330.414199627707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"983b2057-a7ec-42a8-914a-4dc778bf71a2","savedPayload":{"position":{"x":30347.733792571533,"y":17330.414199627707},"targetPosition":{"x":30514.473479214936,"y":17362.166088705428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"4f0e461a-fc1c-4340-b9a0-9a59b068e8e9","savedPayload":{"position":{"x":30308.253841051875,"y":17137.295429487585},"targetPosition":{"x":30394.63228728648,"y":17229.62052930633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"cbb7504c-0db6-47e8-9d75-d197d5d23bfe","savedPayload":{"position":{"x":30394.63228728648,"y":17229.62052930633},"targetPosition":{"x":30514.473479214936,"y":17362.166088705428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"67721b90-f4f5-4ea0-ba40-cf5364f48ba6","savedPayload":{"position":{"x":30480.662792984713,"y":17057.21085146165},"targetPosition":{"x":30496.28165826919,"y":17182.556277757514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"6408eb74-1535-45b9-be83-9c0841bdb019","savedPayload":{"position":{"x":30496.28165826919,"y":17182.556277757514},"targetPosition":{"x":30514.473479214936,"y":17362.166088705428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"8bfbb311-c3cf-4c53-a42d-dc30c5336d17","savedPayload":{"position":{"x":30674.437352561694,"y":17101.573089484085},"targetPosition":{"x":30610.278069994045,"y":17212.907570835636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4837a800-f016-4f60-836b-0fc7acc7d489","savedPayload":{"position":{"x":30610.278069994045,"y":17212.907570835636},"targetPosition":{"x":30514.473479214936,"y":17362.166088705428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c10b9b7b-04d8-460b-9dcc-2eaed24e17df","savedPayload":{"position":{"x":30514.473479214936,"y":17362.166088705428},"targetPosition":{"x":30700.006147926553,"y":17779.90281745717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6c6cddbc-cd78-445f-9498-8627ac99563d","savedPayload":{"position":{"x":30668.72150968149,"y":17757.404713246724},"targetPosition":{"x":31023.244560915467,"y":18014.854058173667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Open Stage Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate * 1.05","project":"Superalgos","id":"c6d764f4-ffbe-4b62-8807-ff40e314f047","savedPayload":{"position":{"x":29835.201355897298,"y":17977.763233166217},"targetPosition":{"x":29956.956822577242,"y":17818.84785310644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3f1ad539-6b21-4cbb-9623-daf242df45bc","savedPayload":{"position":{"x":29956.956822577242,"y":17818.84785310644},"targetPosition":{"x":30199.36345270157,"y":17500.90441284372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"ee137d40-fd2c-4754-a18f-2d5c5c564c4c","savedPayload":{"position":{"x":29704.73588109502,"y":17841.367203903363},"targetPosition":{"x":29869.762569828672,"y":17727.9510749502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c4b7fef3-79e2-45a6-96d6-4c9b6abf1514","savedPayload":{"position":{"x":29869.762569828672,"y":17727.9510749502},"targetPosition":{"x":30199.36345270157,"y":17500.90441284372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.beginRate * 1.05","project":"Superalgos","id":"c7026d19-1d0a-499c-8bd2-2aa847d0d17b","savedPayload":{"position":{"x":29623.279360286157,"y":17671.41440129507},"targetPosition":{"x":29815.30627125961,"y":17614.66809011531},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"04304653-9361-433e-8e34-ca08c38ddb21","savedPayload":{"position":{"x":29815.30627125961,"y":17614.66809011531},"targetPosition":{"x":30199.36345270157,"y":17500.90441284372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"5c87a7ab-9f96-495f-9073-95fcc251ed95","savedPayload":{"position":{"x":29599.115635316168,"y":17482.128356812642},"targetPosition":{"x":29799.22534802104,"y":17487.41770441487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"bfe5be37-4f1d-4b6b-be9b-1ed24bf51056","savedPayload":{"position":{"x":29799.22534802104,"y":17487.41770441487},"targetPosition":{"x":30199.36345270157,"y":17500.90441284372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6977ed19-0d15-49df-adec-e0b6beec8296","savedPayload":{"position":{"x":30199.36345270157,"y":17500.90441284372},"targetPosition":{"x":30559.894905812656,"y":17328.61327415081},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"fbe73700-5914-4750-853f-f205da0e00d5","savedPayload":{"position":{"x":29910.545258453138,"y":17166.330054517493},"targetPosition":{"x":29756.585082517544,"y":16837.26104233026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"c845a7dc-a73e-4bc2-92f5-a9f9e76963e1","savedPayload":{"position":{"x":29229.08779312501,"y":17263.919063731053},"targetPosition":{"x":29469.908423454635,"y":17069.11942752157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"f2e9bf45-007e-434e-b977-07a4ba08bd7e","savedPayload":{"position":{"x":29469.908423454635,"y":17069.11942752157},"targetPosition":{"x":29756.585082517544,"y":16837.26104233026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"64879334-0c33-40de-b993-bbccaebc1ce5","savedPayload":{"position":{"x":29447.45892118335,"y":16636.70653938226},"targetPosition":{"x":29756.585082517544,"y":16837.26104233026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"3f1ad539-6b21-4cbb-9623-daf242df45bc"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"f3e5ca2b-9766-47fc-87b5-a8d400f073fb","savedPayload":{"position":{"x":29869.307222055562,"y":16478.665352181164},"targetPosition":{"x":29756.585082517544,"y":16837.26104233026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"04304653-9361-433e-8e34-ca08c38ddb21"}}}],"id":"21db891e-4c47-4a5a-88a5-036297086138","savedPayload":{"position":{"x":30160.438692534957,"y":17349.494875560216},"targetPosition":{"x":30559.894905812656,"y":17328.61327415081},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"de754019-110e-46e7-8991-969f82d7027f","savedPayload":{"position":{"x":29837.65418629762,"y":16960.72153455824},"targetPosition":{"x":29791.283556599756,"y":16597.751110270772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"8f03ebb4-360c-430d-adef-13b574d53d80","savedPayload":{"position":{"x":29140.168489868196,"y":16790.240989372716},"targetPosition":{"x":29437.974313239803,"y":16702.058475354253},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"e34a2ef9-0533-40a7-901f-a07b503ca847","savedPayload":{"position":{"x":29437.974313239803,"y":16702.058475354253},"targetPosition":{"x":29791.283556599756,"y":16597.751110270772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"eaf26e8a-cd01-450f-b939-af89c22a5746","savedPayload":{"position":{"x":29582.558022947767,"y":16294.042324336653},"targetPosition":{"x":29791.283556599756,"y":16597.751110270772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"3f1ad539-6b21-4cbb-9623-daf242df45bc"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"3f4a9c46-b76a-4e07-b012-e447bbbabd11","savedPayload":{"position":{"x":30032.625106837073,"y":16309.878836800319},"targetPosition":{"x":29791.283556599756,"y":16597.751110270772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"04304653-9361-433e-8e34-ca08c38ddb21"}}}],"id":"2a3d0d93-13d9-4a9e-8d32-c0aa5d7ab1e3","savedPayload":{"position":{"x":30182.731938530025,"y":17195.06326563915},"targetPosition":{"x":30559.894905812656,"y":17328.61327415081},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"86f26dcc-e45b-4313-8182-e5f715a7ea2b","savedPayload":{"position":{"x":30537.210548393665,"y":13235.805610298441},"targetPosition":{"x":30766.096072075725,"y":13421.259536059031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"67e63d56-1a05-414e-a99b-a3003e3483c5","savedPayload":{"position":{"x":30766.096072075725,"y":13421.259536059031},"targetPosition":{"x":31033.569564778303,"y":13637.984006651433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"a4c6c33d-682a-418b-9dff-24a739838aeb","savedPayload":{"position":{"x":30997.74026724957,"y":13295.571781627958},"targetPosition":{"x":31033.569564778303,"y":13637.984006651433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"3f1ad539-6b21-4cbb-9623-daf242df45bc"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"499e2a85-9ef8-4ca7-9f87-5a01fe2a5ca3","savedPayload":{"position":{"x":31250.34323622727,"y":13370.215899616987},"targetPosition":{"x":31033.569564778303,"y":13637.984006651433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"c4b7fef3-79e2-45a6-96d6-4c9b6abf1514"}}}],"id":"616f49d0-daaa-4b82-be0d-56504b402616","savedPayload":{"position":{"x":30262.53626682461,"y":17060.85084401958},"targetPosition":{"x":30559.894905812656,"y":17328.61327415081},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"feff4d08-a0de-4e2e-bafa-896613af0a14","savedPayload":{"position":{"x":30657.89462841028,"y":13197.513751921591},"targetPosition":{"x":30865.639542676527,"y":13405.436261055005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"f9c6d40c-a3fa-4f02-83c5-c2c39d478c42","savedPayload":{"position":{"x":30865.639542676527,"y":13405.436261055005},"targetPosition":{"x":31095.076914743273,"y":13635.093765408426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"680845ab-7423-4022-820b-a2d05b1ae32d","savedPayload":{"position":{"x":31095.07512513171,"y":13309.41102184559},"targetPosition":{"x":31095.076914743273,"y":13635.093765408426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"04304653-9361-433e-8e34-ca08c38ddb21"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"b5abef98-275f-4c3c-9704-bc17e83f4f9b","savedPayload":{"position":{"x":31325.640016533045,"y":13404.489482538833},"targetPosition":{"x":31095.076914743273,"y":13635.093765408426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"bfe5be37-4f1d-4b6b-be9b-1ed24bf51056"}}}],"id":"0fab39ff-8caf-45f8-8650-33d7a65fa6e1","savedPayload":{"position":{"x":30387.621947553085,"y":16967.438120013507},"targetPosition":{"x":30559.894905812656,"y":17328.61327415081},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"open-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"cbb69a21-082e-4364-a069-c33f92f0a07c","savedPayload":{"position":{"x":30528.225164278258,"y":16728.528916324503},"targetPosition":{"x":30538.973803822457,"y":16929.034839642605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"3f1ad539-6b21-4cbb-9623-daf242df45bc"}}},"id":"472dcf1a-f045-4d96-8a97-f11011bc667a","savedPayload":{"position":{"x":30538.973803822457,"y":16929.034839642605},"targetPosition":{"x":30559.894905812656,"y":17328.61327415081},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"open-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"f0a4c47e-a1e4-436f-a470-1adb11c80b7a","savedPayload":{"position":{"x":30758.4086038935,"y":16761.66025689621},"targetPosition":{"x":30691.84690677564,"y":16951.05120177229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"04304653-9361-433e-8e34-ca08c38ddb21"}}},"id":"7c64940b-d01e-47e5-902c-ece8262864cc","savedPayload":{"position":{"x":30691.84690677564,"y":16951.05120177229},"targetPosition":{"x":30559.894905812656,"y":17328.61327415081},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"d953dd4d-5603-4042-b15b-1e293988be14","savedPayload":{"position":{"x":30559.894905812656,"y":17328.61327415081},"targetPosition":{"x":30899.898144518073,"y":17634.679084627667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Open Stage Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"908c9dfe-fb97-457a-93e6-711df1e89436","savedPayload":{"position":{"x":30793.977208223354,"y":16968.68616553455},"targetPosition":{"x":30878.64900913943,"y":17064.152097193706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"13d4c685-4b50-4ce8-aba9-1075b89e4d79","savedPayload":{"position":{"x":30878.64900913943,"y":17064.152097193706},"targetPosition":{"x":30995.179891801246,"y":17187.343024165446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"428c5592-0629-49e4-a929-91ed47cdd1d3","savedPayload":{"position":{"x":30960.882579034725,"y":16884.32487656314},"targetPosition":{"x":30975.850193160746,"y":17010.05889465703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"74b0dbe2-935f-40f0-bd3b-812b925aa887","savedPayload":{"position":{"x":30975.850193160746,"y":17010.05889465703},"targetPosition":{"x":30995.179891801246,"y":17187.343024165446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"a862e1ab-2bd4-4627-8bc0-ca68102525bb","savedPayload":{"position":{"x":31147.05092142841,"y":16921.16941747388},"targetPosition":{"x":31085.808298463216,"y":17031.750386657422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"83bfb9e8-3774-4740-ba7b-635fb0088b59","savedPayload":{"position":{"x":31085.808298463216,"y":17031.750386657422},"targetPosition":{"x":30995.179891801246,"y":17187.343024165446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"be46adeb-8308-4ff1-9cc4-5939c3e040dd","savedPayload":{"position":{"x":31277.580090991843,"y":17071.259623523576},"targetPosition":{"x":31160.20558431537,"y":17123.27549117869},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ccae74f6-9331-4c03-a44f-9176cb815ce2","savedPayload":{"position":{"x":31160.20558431537,"y":17123.27549117869},"targetPosition":{"x":30995.179891801246,"y":17187.343024165446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"be56e169-d089-4aea-a18a-c01cf16a3485","savedPayload":{"position":{"x":30995.179891801246,"y":17187.343024165446},"targetPosition":{"x":30899.898144518073,"y":17634.679084627667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8f7cad9f-153d-44e6-bdc2-812bc97e3929","savedPayload":{"position":{"x":30887.82409953432,"y":17598.254150363322},"targetPosition":{"x":31023.244560915467,"y":18014.854058173667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Manage Stage Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate * 0.95","project":"Superalgos","id":"0c5c0deb-9d9f-4849-ac44-711f24c60962","savedPayload":{"position":{"x":30076.645569752334,"y":17297.408655242496},"targetPosition":{"x":30268.602476035925,"y":17240.46888457365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"51020863-6f89-4c73-97fd-fbc7fc03348f","savedPayload":{"position":{"x":30268.602476035925,"y":17240.46888457365},"targetPosition":{"x":30651.790445976178,"y":17125.515341073842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"a2fd6f13-b771-40c1-9c7a-55d1bb965ae8","savedPayload":{"position":{"x":30051.20539682134,"y":17110.645376598197},"targetPosition":{"x":30251.448841679285,"y":17115.69225045596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"38ed128c-3053-45dd-a069-24e21b798603","savedPayload":{"position":{"x":30251.448841679285,"y":17115.69225045596},"targetPosition":{"x":30651.790445976178,"y":17125.515341073842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.beginRate * 0.95","project":"Superalgos","id":"26bade31-216a-498d-961d-f5f5aeb03075","savedPayload":{"position":{"x":30085.2285966756,"y":16925.29390631918},"targetPosition":{"x":30274.03556826291,"y":16992.072619327904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d1bf6c44-0b02-4e8a-8877-20210246d2d0","savedPayload":{"position":{"x":30274.03556826291,"y":16992.072619327904},"targetPosition":{"x":30651.790445976178,"y":17125.515341073842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"d6044513-956e-4ba9-994b-cce2f42e9cb1","savedPayload":{"position":{"x":30176.867280152754,"y":16757.861198202343},"targetPosition":{"x":30335.659847917934,"y":16879.8330942428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f23b14cc-df91-40a6-b1b2-9876aa8690c9","savedPayload":{"position":{"x":30335.659847917934,"y":16879.8330942428},"targetPosition":{"x":30651.790445976178,"y":17125.515341073842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7bff6698-f9c9-4b44-a4ee-193ffd703e40","savedPayload":{"position":{"x":30651.790445976178,"y":17125.515341073842},"targetPosition":{"x":31048.766519103454,"y":17189.125784566386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"4b05add4-cf40-4168-9cc8-7aa79d81e819","savedPayload":{"position":{"x":30502.79571893496,"y":16631.973497807743},"targetPosition":{"x":30571.529706263354,"y":16275.292430638343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"a60fc3c0-051e-4063-99b9-b0be3fc7b3f0","savedPayload":{"position":{"x":29893.813215163682,"y":16310.177335959186},"targetPosition":{"x":30203.266675898973,"y":16294.242743845782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"81182574-694d-43b5-a55b-f380bef4e226","savedPayload":{"position":{"x":30203.266675898973,"y":16294.242743845782},"targetPosition":{"x":30571.529706263354,"y":16275.292430638343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"270cce8d-9e8c-4b61-9f31-df178eb3dae1","savedPayload":{"position":{"x":30439.421994929184,"y":15931.286917133357},"targetPosition":{"x":30571.529706263354,"y":16275.292430638343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"51020863-6f89-4c73-97fd-fbc7fc03348f"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"2b20e9f7-72c4-4a93-b278-c77295400bc9","savedPayload":{"position":{"x":30873.689260250107,"y":16051.391943982562},"targetPosition":{"x":30571.529706263354,"y":16275.292430638343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"d1bf6c44-0b02-4e8a-8877-20210246d2d0"}}}],"id":"43435aed-68cb-4a56-88c4-2574d91f5b32","savedPayload":{"position":{"x":30719.710318937297,"y":16941.637816962822},"targetPosition":{"x":31048.766519103454,"y":17189.125784566386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"28c153db-44db-466c-83c7-a47c56152c4b","savedPayload":{"position":{"x":30691.456735428696,"y":17068.513509823057},"targetPosition":{"x":30822.43467794465,"y":16859.424511644538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"1ea48dcf-f651-4b4d-a218-d13fceaa4d33","savedPayload":{"position":{"x":30445.131175768773,"y":16724.79155012291},"targetPosition":{"x":30633.68540329151,"y":16791.933946753034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"8ad430dd-933a-4cf2-9f2d-b3189a57fae4","savedPayload":{"position":{"x":30633.68540329151,"y":16791.933946753034},"targetPosition":{"x":30822.43467794465,"y":16859.424511644538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"e9ebc5af-2940-47d8-a067-26b70105b4e9","savedPayload":{"position":{"x":30827.221754737417,"y":16658.421562904394},"targetPosition":{"x":30822.43467794465,"y":16859.424511644538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"51020863-6f89-4c73-97fd-fbc7fc03348f"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"b5d31d62-415f-4437-a011-9d89d3dd4d61","savedPayload":{"position":{"x":31018.882590869474,"y":16816.464643056108},"targetPosition":{"x":30822.43467794465,"y":16859.424511644538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"d1bf6c44-0b02-4e8a-8877-20210246d2d0"}}}],"id":"904be022-f1e2-475e-9115-88224353cfa2","savedPayload":{"position":{"x":30822.43467794465,"y":16859.424511644538},"targetPosition":{"x":31048.766519103454,"y":17189.125784566386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"4f68d1c6-26e0-4c28-837d-fa6b137c48b6","savedPayload":{"position":{"x":30648.9634686733,"y":13585.59058303493},"targetPosition":{"x":30877.84899235536,"y":13771.04450879552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2cf632ed-a72b-4a59-817f-32a1160217cd","savedPayload":{"position":{"x":30877.84899235536,"y":13771.04450879552},"targetPosition":{"x":31145.32248505794,"y":13987.768979387922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"420cb596-82bf-40f0-9097-b6ac41d35b13","savedPayload":{"position":{"x":31109.493187529206,"y":13645.356754364446},"targetPosition":{"x":31145.32248505794,"y":13987.768979387922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"51020863-6f89-4c73-97fd-fbc7fc03348f"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"1b42a439-3e00-444b-ab69-5f4e6af4f0f3","savedPayload":{"position":{"x":31362.096156506905,"y":13720.000872353476},"targetPosition":{"x":31145.32248505794,"y":13987.768979387922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"38ed128c-3053-45dd-a069-24e21b798603"}}}],"id":"4c74d4d8-d0a4-4581-bee7-36485d7a91a5","savedPayload":{"position":{"x":30938.879817074234,"y":16795.253518230395},"targetPosition":{"x":31048.766519103454,"y":17189.125784566386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"d11795b4-f398-4b0d-b028-f0b9aadb3fa7","savedPayload":{"position":{"x":30769.647548689914,"y":13547.29872465808},"targetPosition":{"x":30977.392462956162,"y":13755.221233791493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"1a75e942-11f7-4b82-8dce-8383521d48e4","savedPayload":{"position":{"x":30977.392462956162,"y":13755.221233791493},"targetPosition":{"x":31206.82983502291,"y":13984.878738144915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"9a6a4625-a7b7-47f6-8460-47f5899d7431","savedPayload":{"position":{"x":31206.828045411345,"y":13659.195994582078},"targetPosition":{"x":31206.82983502291,"y":13984.878738144915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"d1bf6c44-0b02-4e8a-8877-20210246d2d0"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"2ed6c5e7-fc8c-45e6-acb1-fdcb81fdee7b","savedPayload":{"position":{"x":31437.39293681268,"y":13754.274455275321},"targetPosition":{"x":31206.82983502291,"y":13984.878738144915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"f23b14cc-df91-40a6-b1b2-9876aa8690c9"}}}],"id":"9fc6d2c4-a67b-42e8-841b-7523f7ab4962","savedPayload":{"position":{"x":31146.386938788954,"y":16790.602596554214},"targetPosition":{"x":31048.766519103454,"y":17189.125784566386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"manage-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"d806311b-133d-423b-9026-7a418da2b5e3","savedPayload":{"position":{"x":31375.902116466412,"y":16684.99589839525},"targetPosition":{"x":31266.793134241736,"y":16853.605760711584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"51020863-6f89-4c73-97fd-fbc7fc03348f"}}},"id":"61fd08ac-8bd8-4539-a116-22c4469a2b2e","savedPayload":{"position":{"x":31266.793134241736,"y":16853.605760711584},"targetPosition":{"x":31048.766519103454,"y":17189.125784566386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"manage-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"608a821f-bdff-4ec0-abd9-251c7c085a34","savedPayload":{"position":{"x":31542.883615074654,"y":16847.36605071432},"targetPosition":{"x":31377.58670479244,"y":16961.340641605933},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"d1bf6c44-0b02-4e8a-8877-20210246d2d0"}}},"id":"4a257e17-128c-4c00-9e2b-a76049e30657","savedPayload":{"position":{"x":31377.58670479244,"y":16961.340641605933},"targetPosition":{"x":31048.766519103454,"y":17189.125784566386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"dd3a2274-3986-4c89-bab9-265f6fa6b1d1","savedPayload":{"position":{"x":31048.766519103454,"y":17189.125784566386},"targetPosition":{"x":31143.813869907728,"y":17636.82501634663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Manage Stage Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"d386f88a-6d4d-4606-992c-e19df72e7f29","savedPayload":{"position":{"x":31450.031043810905,"y":17035.955976178022},"targetPosition":{"x":31462.030554090452,"y":17162.889029119622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"434bbab3-b2a1-47b5-8c5a-55ac7a2a2674","savedPayload":{"position":{"x":31462.030554090452,"y":17162.889029119622},"targetPosition":{"x":31483.96351328209,"y":17331.008629478278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"5123b469-2376-4f03-a995-82df2842cde3","savedPayload":{"position":{"x":31634.38193944318,"y":17065.707045028612},"targetPosition":{"x":31572.491704463067,"y":17176.21509726392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"7b7fa67c-cdfd-41c5-83a2-3362fe2cef3c","savedPayload":{"position":{"x":31572.491704463067,"y":17176.21509726392},"targetPosition":{"x":31483.96351328209,"y":17331.008629478278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"e172032f-6c23-4267-b1a5-80c4fa2f7571","savedPayload":{"position":{"x":31763.307142160833,"y":17205.044183501148},"targetPosition":{"x":31648.72373435564,"y":17258.433101510524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c3473f91-b229-43d5-a1d4-79d535b5ac64","savedPayload":{"position":{"x":31648.72373435564,"y":17258.433101510524},"targetPosition":{"x":31483.96351328209,"y":17331.008629478278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"2df876ce-61ff-4a24-a34a-03126c0e02a6","savedPayload":{"position":{"x":31780.808015931747,"y":17402.86026714796},"targetPosition":{"x":31655.15604060808,"y":17376.24779669401},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"16af0d06-b721-48e5-8ed2-7072f25e8fc3","savedPayload":{"position":{"x":31655.15604060808,"y":17376.24779669401},"targetPosition":{"x":31483.96351328209,"y":17331.008629478278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3db5604f-cacf-4c87-b1ea-5aa364bf9f48","savedPayload":{"position":{"x":31483.96351328209,"y":17331.008629478278},"targetPosition":{"x":31143.813869907728,"y":17636.82501634663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"768a5cc5-72db-4218-9a8b-706c51186b3d","savedPayload":{"position":{"x":31158.181105910466,"y":17598.23904001398},"targetPosition":{"x":31023.244560915467,"y":18014.854058173667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Close Stage Objects","config":"{ \n \"codeName\": \"Strategy-Objects\", \n \"icon\": \"trend\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate * 1.05","project":"Superalgos","id":"bb2edfb7-4b27-4023-937f-87edcefa4b36","savedPayload":{"position":{"x":30691.0143925978,"y":16873.622187739253},"targetPosition":{"x":30879.911528923672,"y":16940.114775725953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"064c3de1-dd16-4010-9267-f588f070aa32","savedPayload":{"position":{"x":30879.911528923672,"y":16940.114775725953},"targetPosition":{"x":31257.26040212413,"y":17072.340549339497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"Begin Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.beginRate","project":"Superalgos","id":"52da9824-848c-4ef6-ac1d-4c1a52baf9c2","savedPayload":{"position":{"x":30780.471843839387,"y":16707.405156833593},"targetPosition":{"x":30939.456044410614,"y":16829.137278452374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ce4b9d0e-3e46-4cf2-9ea6-a108f962ba9b","savedPayload":{"position":{"x":30939.456044410614,"y":16829.137278452374},"targetPosition":{"x":31257.26040212413,"y":17072.340549339497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Bottom","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.beginRate * 1.05","project":"Superalgos","id":"ec40fffd-d0b2-410e-b8a0-346fd3975c13","savedPayload":{"position":{"x":30916.9651677896,"y":16577.444371865357},"targetPosition":{"x":31030.384174219012,"y":16742.382102488944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"9ad19ea8-8df3-4601-bfb9-0e858dad9140","savedPayload":{"position":{"x":31030.384174219012,"y":16742.382102488944},"targetPosition":{"x":31257.26040212413,"y":17072.340549339497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End Top","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.endRate","project":"Superalgos","id":"d9ac4f25-f9aa-4de6-8f05-b43a159248be","savedPayload":{"position":{"x":31089.780433874268,"y":16495.855759174607},"targetPosition":{"x":31146.426786872864,"y":16687.74563062247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"92930f08-af27-4807-a1eb-98fb82c58fb2","savedPayload":{"position":{"x":31146.426786872864,"y":16687.74563062247},"targetPosition":{"x":31257.26040212413,"y":17072.340549339497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ebdc8337-0d63-48c8-940e-83f14c7de8f3","savedPayload":{"position":{"x":31257.26040212413,"y":17072.340549339497},"targetPosition":{"x":31532.521819013513,"y":17362.12787780102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Closed Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed'","project":"Superalgos","id":"17f11af6-9a1b-4df5-93ad-52acea4e9ccb","savedPayload":{"position":{"x":31295.039743576566,"y":16548.20300465818},"targetPosition":{"x":31560.61635849915,"y":16299.924976474394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"272091f5-637f-4389-ae00-8806170ec5fe","savedPayload":{"position":{"x":30991.976111884855,"y":15930.507335847147},"targetPosition":{"x":31251.25330290456,"y":16098.921937712996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"92bb2d8c-cbd9-4a46-ba6e-10ec3c04afbe","savedPayload":{"position":{"x":31251.25330290456,"y":16098.921937712996},"targetPosition":{"x":31560.61635849915,"y":16299.924976474394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"67a714b2-66d1-4c20-afc6-4985557c8924","savedPayload":{"position":{"x":31655.653082221448,"y":15944.195581380209},"targetPosition":{"x":31560.61635849915,"y":16299.924976474394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"064c3de1-dd16-4010-9267-f588f070aa32"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"9e1c1d76-9d74-4812-b79a-176890c35d64","savedPayload":{"position":{"x":31935.929184686152,"y":16296.129517488196},"targetPosition":{"x":31560.61635849915,"y":16299.924976474394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"9ad19ea8-8df3-4601-bfb9-0e858dad9140"}}}],"id":"9463d512-21f5-48c1-8cd6-b14747b338cf","savedPayload":{"position":{"x":31389.242337548774,"y":16988.503452158457},"targetPosition":{"x":31532.521819013513,"y":17362.12787780102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Open Base","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"cb0d72ee-ae97-4482-94d0-6be4fa885ca3","savedPayload":{"position":{"x":31467.22612235593,"y":16414.28606034982},"targetPosition":{"x":31799.11679890427,"y":16258.768644173193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 0.25,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 10,\n \"lineDash\": [3,3]\n }\n}","project":"Superalgos","id":"4c30f5b9-b06f-4ed0-b8b8-6672347063e0","savedPayload":{"position":{"x":31414.875838561788,"y":15699.152504754755},"targetPosition":{"x":31590.471218600786,"y":15955.052129140537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"90ab3a19-e778-46ce-8aad-05799a66cc36","savedPayload":{"position":{"x":31590.471218600786,"y":15955.052129140537},"targetPosition":{"x":31799.11679890427,"y":16258.768644173193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"f0ed2d50-c494-4fae-863a-752ecad0fd1d","savedPayload":{"position":{"x":32023.012614417745,"y":15966.534709532285},"targetPosition":{"x":31799.11679890427,"y":16258.768644173193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"064c3de1-dd16-4010-9267-f588f070aa32"}}},{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"68c67883-1f21-4a00-9537-a794638a4d07","savedPayload":{"position":{"x":32147.50066314878,"y":16399.040043899222},"targetPosition":{"x":31799.11679890427,"y":16258.768644173193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"9ad19ea8-8df3-4601-bfb9-0e858dad9140"}}}],"id":"c3249cad-9f26-4ff2-ab0d-968c66bb7f2d","savedPayload":{"position":{"x":31542.996217122352,"y":16961.886562674525},"targetPosition":{"x":31532.521819013513,"y":17362.12787780102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Left Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"15a2eeab-c29f-45e9-b407-30f99dfb2b3a","savedPayload":{"position":{"x":31793.14563444265,"y":15677.598370481623},"targetPosition":{"x":31904.18732620869,"y":15967.553751687574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"ef752c53-dc77-4be4-80ec-f24b3ae0bf6d","savedPayload":{"position":{"x":31904.18732620869,"y":15967.553751687574},"targetPosition":{"x":32036.02447075721,"y":16311.661880690852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin Bottom","project":"Superalgos","id":"b6002088-f077-44c3-bdac-1e310ef78e32","savedPayload":{"position":{"x":32185.76859922711,"y":15975.053750304573},"targetPosition":{"x":32036.02447075721,"y":16311.661880690852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"064c3de1-dd16-4010-9267-f588f070aa32"}}},{"type":"Polygon Vertex","name":"Begin Top","project":"Superalgos","id":"210bad6f-d160-4d55-80f4-5a441a79cea1","savedPayload":{"position":{"x":32380.028919602577,"y":16179.494071175981},"targetPosition":{"x":32036.02447075721,"y":16311.661880690852},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Top","id":"ce4b9d0e-3e46-4cf2-9ea6-a108f962ba9b"}}}],"id":"dbd9d421-d90c-4ab8-a26b-c2254d7abec1","savedPayload":{"position":{"x":31695.311102003765,"y":16996.305766052268},"targetPosition":{"x":31532.521819013513,"y":17362.12787780102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Right Line","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [1,1]\n }\n}","project":"Superalgos","id":"50698494-7f90-4d92-a87e-452567bce9b3","savedPayload":{"position":{"x":32251.564620207726,"y":15772.531742438206},"targetPosition":{"x":32243.561561872666,"y":16082.856543705942},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"58d29c18-d22b-4294-97a0-3a9fae711b6c","savedPayload":{"position":{"x":32243.561561872666,"y":16082.856543705942},"targetPosition":{"x":32234.02589295308,"y":16451.392862524994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"End Bottom","project":"Superalgos","id":"4617c7b4-acc4-4122-a714-bc2b38b4566f","savedPayload":{"position":{"x":32501.06359320497,"y":16197.798203508617},"targetPosition":{"x":32234.02589295308,"y":16451.392862524994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bottom","id":"9ad19ea8-8df3-4601-bfb9-0e858dad9140"}}},{"type":"Polygon Vertex","name":"End Top","project":"Superalgos","id":"d0589ad1-0f35-4e0f-ab38-8de7a56f04b6","savedPayload":{"position":{"x":32602.003509496164,"y":16460.67763807758},"targetPosition":{"x":32234.02589295308,"y":16451.392862524994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End Top","id":"92930f08-af27-4807-a1eb-98fb82c58fb2"}}}],"id":"a5e40c24-183d-4896-97b0-f9f0f104c240","savedPayload":{"position":{"x":31822.81427325774,"y":17086.39883563557},"targetPosition":{"x":31532.521819013513,"y":17362.12787780102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"close-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"8c6238d9-007c-48b6-9d95-df4a6aa5c14b","savedPayload":{"position":{"x":32093.432197891318,"y":17146.27204271995},"targetPosition":{"x":31906.116986769994,"y":17218.471097720154},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin Bottom","id":"064c3de1-dd16-4010-9267-f588f070aa32"}}},"id":"21f90d1d-d464-4bf4-9435-87afdc4daf19","savedPayload":{"position":{"x":31906.116986769994,"y":17218.471097720154},"targetPosition":{"x":31532.521819013513,"y":17362.12787780102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"close-stage\",\n\"size\": 25\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"End Bottom","config":"{ \n\"offsetX\": 0,\n \"offsetY\": 0\n }","project":"Superalgos","id":"cae4a4f0-e26b-40ab-8a29-04d1dfde4633","savedPayload":{"position":{"x":32133.234581987075,"y":17375.558011470242},"targetPosition":{"x":31932.497831801193,"y":17370.720106689612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End Bottom","id":"9ad19ea8-8df3-4601-bfb9-0e858dad9140"}}},"id":"63d17b18-3750-42c2-b785-9bfb4c2f7bfc","savedPayload":{"position":{"x":31932.497831801193,"y":17370.720106689612},"targetPosition":{"x":31532.521819013513,"y":17362.12787780102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"2236ae6a-63a0-4031-a6aa-95fd8dbd1e6d","savedPayload":{"position":{"x":31532.521819013513,"y":17362.12787780102},"targetPosition":{"x":31346.682612786382,"y":17779.971750829023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Close Stage Object","config":"{ \n\"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"7ff88a72-886f-4417-980f-29ec65270b3b","savedPayload":{"position":{"x":31947.38361421089,"y":17473.526650914733},"targetPosition":{"x":31882.913614334582,"y":17583.532960443878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"30d603e4-521d-464e-9f80-a22f99d43bc4","savedPayload":{"position":{"x":31882.913614334582,"y":17583.532960443878},"targetPosition":{"x":31801.46272814609,"y":17732.522282134534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"b1f57c8d-346f-4c8f-8bf1-4d0e9f9cec6f","savedPayload":{"position":{"x":32079.211102041594,"y":17606.033488616227},"targetPosition":{"x":31964.325506906596,"y":17659.335947743773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"1ccd3f25-5841-4563-98ef-f97f82b6da66","savedPayload":{"position":{"x":31964.325506906596,"y":17659.335947743773},"targetPosition":{"x":31801.46272814609,"y":17732.522282134534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Begin Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.beginRate","project":"Superalgos","id":"6e1dc213-47ad-407a-b993-c9ed20d0db14","savedPayload":{"position":{"x":32101.91553864277,"y":17794.48046020156},"targetPosition":{"x":31977.72762980769,"y":17770.598257350895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"d6912158-6634-4cce-82e1-be1f3f8c0211","savedPayload":{"position":{"x":31977.72762980769,"y":17770.598257350895},"targetPosition":{"x":31801.46272814609,"y":17732.522282134534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"End Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.endRate","project":"Superalgos","id":"0ecdc927-ff01-4f77-87ff-47be6ad314d6","savedPayload":{"position":{"x":31999.72000989406,"y":17964.935205511083},"targetPosition":{"x":31913.71085580276,"y":17869.553989143365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f63619e4-c005-4a60-883e-ea24a36c04e6","savedPayload":{"position":{"x":31913.71085580276,"y":17869.553989143365},"targetPosition":{"x":31801.46272814609,"y":17732.522282134534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"069885e7-351f-45dc-8423-113db65b9592","savedPayload":{"position":{"x":31801.46272814609,"y":17732.522282134534},"targetPosition":{"x":31346.682612786382,"y":17779.971750829023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"de84947f-ec29-4125-a2b3-a3da595d1653","savedPayload":{"position":{"x":31377.486051895896,"y":17757.46807103634},"targetPosition":{"x":31023.244560915467,"y":18014.854058173667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"23f6d360-b2ec-462d-ba57-9226d0fc0c5b","savedPayload":{"position":{"x":31033.25,"y":18052.72192749779},"targetPosition":{"x":31033.25,"y":18502.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter","name":"Exchange Orders","config":"{ \n \"codeName\": \"Exchange-Orders\"\n}","project":"Superalgos","modules":[{"type":"Plotter Module","name":"Market Buy Orders","config":"{ \n \"codeName\": \"Market-Buy-Orders\", \n \"icon\": \"trend\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"actualRate\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}\n","project":"Superalgos","id":"bc2c1fb7-af45-4444-b883-7523eb94bcc0","savedPayload":{"position":{"x":30385.890258840904,"y":17946.37193756143},"targetPosition":{"x":30518.14194060671,"y":17764.343113827068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5d2c59a6-72ce-4f42-8d14-62e4a7d11d73","savedPayload":{"position":{"x":30518.14194060671,"y":17764.343113827068},"targetPosition":{"x":30650.393622372518,"y":17582.314290092705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"76027de9-5f42-494b-be42-7b24e7663fb4","savedPayload":{"position":{"x":30202.858769456798,"y":17535.276481622263},"targetPosition":{"x":30426.626195914658,"y":17558.795385857484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0e224c82-a863-4953-8e38-42ff372df6cd","savedPayload":{"position":{"x":30426.626195914658,"y":17558.795385857484},"targetPosition":{"x":30650.393622372518,"y":17582.314290092705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"c8f9bc68-22a9-47a7-8b54-f8e1ee93760a","savedPayload":{"position":{"x":30650.393622372518,"y":17582.314290092705},"targetPosition":{"x":30855.941350342102,"y":17490.79854540065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"New Polygon","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"a307230c-ee14-4b3a-8430-5993da0e1b7e","savedPayload":{"position":{"x":30234.790298441065,"y":17593.197246137068},"targetPosition":{"x":30440.33802641065,"y":17501.68150144501},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"2c437c94-96f4-4b5b-9241-45636f73356e","savedPayload":{"position":{"x":30440.33802641065,"y":17501.68150144501},"targetPosition":{"x":30645.885754380233,"y":17410.165756752955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"7d4ca25c-5454-4d6a-8ead-a4ecee6709b8","savedPayload":{"position":{"x":30435.830158418365,"y":17329.53296810526},"targetPosition":{"x":30645.885754380233,"y":17410.165756752955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"5d2c59a6-72ce-4f42-8d14-62e4a7d11d73"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"cefe7159-5b2f-4036-9aad-1d72358cbf81","savedPayload":{"position":{"x":30554.370009688177,"y":17204.61802878337},"targetPosition":{"x":30645.885754380233,"y":17410.165756752955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"0e224c82-a863-4953-8e38-42ff372df6cd"}}}],"id":"6217d021-ea5b-4b20-b093-758a2d2fb5d4","savedPayload":{"position":{"x":30645.885754380233,"y":17410.165756752955},"targetPosition":{"x":30855.941350342102,"y":17490.79854540065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"bullet-market-buy-order\", \n\"size\": 20\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin","config":"{ \n\"offsetX\": 10,\n \"offsetY\": 0\n }","project":"Superalgos","id":"48799848-30ad-4ef3-914e-45c3299168da","savedPayload":{"position":{"x":30718.667733304017,"y":17182.476953446272},"targetPosition":{"x":30764.425605650045,"y":17285.250817431064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"5d2c59a6-72ce-4f42-8d14-62e4a7d11d73"}}},"id":"c988d815-94cf-48e3-9447-2e81b97271b2","savedPayload":{"position":{"x":30764.425605650045,"y":17285.250817431064},"targetPosition":{"x":30855.941350342102,"y":17490.79854540065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"486a0f30-691f-4c40-a18e-a1b0ac336ac1","savedPayload":{"position":{"x":30855.941350342102,"y":17490.79854540065},"targetPosition":{"x":31276.052542265843,"y":17652.064122696032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Market Buy Order","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"6c10223a-aec1-485d-a731-2122a2485359","savedPayload":{"position":{"x":29949.43168889086,"y":16870.79051683165},"targetPosition":{"x":30289.21622339604,"y":16733.578503110773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6edbd7e7-a5ef-4ec0-ae1d-41c6a7cec5e1","savedPayload":{"position":{"x":30289.21622339604,"y":16733.578503110773},"targetPosition":{"x":30629.000411499663,"y":16596.126036347945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.rate","project":"Superalgos","id":"706b3e18-b354-4b2d-ad94-8a1e06aa3d6a","savedPayload":{"position":{"x":29896.32784924105,"y":16621.569069166915},"targetPosition":{"x":30262.623777079018,"y":16608.89478065573},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"312fc9a8-af5d-428b-b1b9-9207bf4def4d","savedPayload":{"position":{"x":30262.623777079018,"y":16608.89478065573},"targetPosition":{"x":30629.000411499663,"y":16596.126036347945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"6823da7b-b937-44ec-a748-6544810c5e4d","savedPayload":{"position":{"x":29931.71863830144,"y":16369.746261438151},"targetPosition":{"x":30280.313836598332,"y":16482.94962397141},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bdc187a2-01a2-4d5e-a3b6-e03a3aa83337","savedPayload":{"position":{"x":30280.313836598332,"y":16482.94962397141},"targetPosition":{"x":30629.000411499663,"y":16596.126036347945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"df586a2e-5e92-4719-b43a-b66e92d54cfb","savedPayload":{"position":{"x":30051.249031127456,"y":16144.866531776082},"targetPosition":{"x":30340.084967452578,"y":16370.486348179358},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8c832572-6989-49fe-af66-337113d833bd","savedPayload":{"position":{"x":30340.084967452578,"y":16370.486348179358},"targetPosition":{"x":30629.000411499663,"y":16596.126036347945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Order Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.orderName","project":"Superalgos","id":"ccaa9e2b-3d64-40fc-85e3-db8852ffe835","savedPayload":{"position":{"x":30240.483214308824,"y":15974.451048843557},"targetPosition":{"x":30434.7178074004,"y":16285.266191435287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"008d9794-b703-4e95-90a5-4be6541257b5","savedPayload":{"position":{"x":30434.7178074004,"y":16285.266191435287},"targetPosition":{"x":30629.000411499663,"y":16596.126036347945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Algorithm Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.algorithmName","project":"Superalgos","id":"cb7fe638-c8c1-4017-91c5-332f2a42d411","savedPayload":{"position":{"x":30476.58081757693,"y":15879.056511468467},"targetPosition":{"x":30552.793091137486,"y":16237.570480881343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"233fcc31-94fb-4a83-8010-a47b06aa0175","savedPayload":{"position":{"x":30552.793091137486,"y":16237.570480881343},"targetPosition":{"x":30629.000411499663,"y":16596.126036347945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Situation Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.situationName","project":"Superalgos","id":"b205501c-00a5-42a5-bfb1-e1d766474e9b","savedPayload":{"position":{"x":30730.62622988803,"y":15870.191245963144},"targetPosition":{"x":30679.86599606262,"y":16233.163591374232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ef885584-c0ad-42ab-af01-1507c16da1c1","savedPayload":{"position":{"x":30679.86599606262,"y":16233.163591374232},"targetPosition":{"x":30629.000411499663,"y":16596.126036347945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"43a37c5e-0519-4920-9c61-1c8e7ee35308","savedPayload":{"position":{"x":30942.79066174514,"y":15952.1506381209},"targetPosition":{"x":30801.04862179204,"y":16272.653462232083},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"64741d06-09d2-497f-ab50-f1a0d1eba4bd","savedPayload":{"position":{"x":30801.04862179204,"y":16272.653462232083},"targetPosition":{"x":30629.000411499663,"y":16596.126036347945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"12929733-5964-4948-877b-b1edda37162a","savedPayload":{"position":{"x":30992.858366293414,"y":17302.348440040394},"targetPosition":{"x":31276.052542265843,"y":17652.064122696032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Market Buy Order Stats","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Percentage Filled","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.percentageFilled","project":"Superalgos","id":"14e3004b-320d-4791-aa6e-3f0d872ec7ec","savedPayload":{"position":{"x":30705.128297557436,"y":16139.795108693856},"targetPosition":{"x":30847.788815595533,"y":16255.17339447765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0d50ad49-9842-4e0e-86fd-12c026ada170","savedPayload":{"position":{"x":30847.788815595533,"y":16255.17339447765},"targetPosition":{"x":31041.73658950063,"y":16411.920667398954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Actual Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.actualRate","project":"Superalgos","id":"8a56fba9-5ffc-4adf-8d6e-021fd4e5a43c","savedPayload":{"position":{"x":30986.064073732417,"y":15991.833594025653},"targetPosition":{"x":31015.463491405724,"y":16164.264696158949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d6c7e18a-79da-4aed-8fae-298e604e05d0","savedPayload":{"position":{"x":31015.463491405724,"y":16164.264696158949},"targetPosition":{"x":31041.73658950063,"y":16411.920667398954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"d7dd0006-3d9f-49c8-984a-07b9d5f0dc48","savedPayload":{"position":{"x":31292.19817873345,"y":16076.951138555823},"targetPosition":{"x":31177.285277384442,"y":16219.92856778971},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d411dc1c-83d7-4d2d-948e-c90f9e29121b","savedPayload":{"position":{"x":31177.285277384442,"y":16219.92856778971},"targetPosition":{"x":31041.73658950063,"y":16411.920667398954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"81a88e44-189c-44ec-9607-cb1e4de8baa1","savedPayload":{"position":{"x":31205.65703299774,"y":17207.60436942822},"targetPosition":{"x":31276.052542265843,"y":17652.064122696032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Market Buy Order Base Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInBaseAsset","project":"Superalgos","id":"d304ece3-18dc-4e5a-bc0e-1249258b184e","savedPayload":{"position":{"x":31254.286630177114,"y":16820.857474833123},"targetPosition":{"x":31345.80237486917,"y":17026.405202802707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"8313aeb6-6167-45ca-a3ca-4dc22b7fa33a","savedPayload":{"position":{"x":31345.80237486917,"y":17026.405202802707},"targetPosition":{"x":31437.318119561227,"y":17231.95293077229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInBaseAsset","project":"Superalgos","id":"461ae1a5-1d20-451a-8852-13d56b5268fb","savedPayload":{"position":{"x":31598.583696856615,"y":16811.841738848554},"targetPosition":{"x":31517.95090820892,"y":17021.897334810423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"83d46c3b-27cb-4aa9-a358-2e156aeece00","savedPayload":{"position":{"x":31517.95090820892,"y":17021.897334810423},"targetPosition":{"x":31437.318119561227,"y":17231.95293077229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInBaseAsset","project":"Superalgos","id":"88cf9464-968d-4222-ac52-b8e4dc151e69","savedPayload":{"position":{"x":31848.413575500395,"y":17048.92144138818},"targetPosition":{"x":31642.86584753081,"y":17140.437186080235},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"38227d86-ab39-4e74-8eb0-0cd44edf49eb","savedPayload":{"position":{"x":31642.86584753081,"y":17140.437186080235},"targetPosition":{"x":31437.318119561227,"y":17231.95293077229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"608a9068-7324-4f4c-8fdd-d9d8e42e26c6","savedPayload":{"position":{"x":31437.318119561227,"y":17231.95293077229},"targetPosition":{"x":31276.052542265843,"y":17652.064122696032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Market Buy Order Quoted Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInQuotedAsset","project":"Superalgos","id":"1b8818af-996e-4d6b-8a97-f4606714ee91","savedPayload":{"position":{"x":31672.806033391924,"y":16921.335093807884},"targetPosition":{"x":31649.287129156703,"y":17145.102520265744},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"56ca8980-8ba9-4e01-a040-cdf19c9ae7f5","savedPayload":{"position":{"x":31649.287129156703,"y":17145.102520265744},"targetPosition":{"x":31625.76822492148,"y":17368.869946723604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInQuotedAsset","project":"Superalgos","id":"82c2ea84-a616-47e6-920b-1e0804dd20ed","savedPayload":{"position":{"x":31975.48390757712,"y":17085.675770751175},"targetPosition":{"x":31800.6260662493,"y":17227.27285873739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"913a187b-5504-4b85-a382-8f74726a54f4","savedPayload":{"position":{"x":31800.6260662493,"y":17227.27285873739},"targetPosition":{"x":31625.76822492148,"y":17368.869946723604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInQuotedAsset","project":"Superalgos","id":"a337b247-237b-41f8-93a3-3f5a964ae63a","savedPayload":{"position":{"x":32073.3030778372,"y":17415.907755194046},"targetPosition":{"x":31849.53565137934,"y":17392.388850958825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"040ea111-a7a0-453c-9c65-d731c846324f","savedPayload":{"position":{"x":31849.53565137934,"y":17392.388850958825},"targetPosition":{"x":31625.76822492148,"y":17368.869946723604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1a55af5e-821d-4421-80d2-2c543d25ea1a","savedPayload":{"position":{"x":31625.76822492148,"y":17368.869946723604},"targetPosition":{"x":31276.052542265843,"y":17652.064122696032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"e00fe7d4-894d-4483-a73a-3cd77943ea80","savedPayload":{"position":{"x":31276.052542265843,"y":17652.064122696032},"targetPosition":{"x":31346.448051533946,"y":18096.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Market Sell Orders","config":"{ \n \"codeName\": \"Market-Sell-Orders\", \n \"icon\": \"trend\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"actualRate\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"df7ab0aa-4814-411b-a2f6-9594f67c7b41","savedPayload":{"position":{"x":30657.597568162055,"y":17410.44670153837},"targetPosition":{"x":30871.585284328463,"y":17340.917877804008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"788a8d38-a7f8-4e9f-aa91-0d73d83967ba","savedPayload":{"position":{"x":30871.585284328463,"y":17340.917877804008},"targetPosition":{"x":31085.57300049487,"y":17271.389054069645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"464d3c72-0056-48b0-b044-9131f136797f","savedPayload":{"position":{"x":30751.157829030046,"y":16970.280281208157},"targetPosition":{"x":30918.36541476246,"y":17120.8346676389},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5c7415c1-6a1d-4838-8587-6883c11724b4","savedPayload":{"position":{"x":30918.36541476246,"y":17120.8346676389},"targetPosition":{"x":31085.57300049487,"y":17271.389054069645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"2e23d19b-466f-485b-b61d-ded90fa7b221","savedPayload":{"position":{"x":31085.57300049487,"y":17271.389054069645},"targetPosition":{"x":31305.656210659978,"y":17318.16918450364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"New Polygon","project":"Superalgos","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"fc7ced4a-bcf0-4c18-9e3b-959e7cac59f6","savedPayload":{"position":{"x":30742.946007451385,"y":17035.90804584793},"targetPosition":{"x":30963.02921761649,"y":17082.688176281925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"10637dce-3cba-4c02-9561-da3ec43bdf0c","savedPayload":{"position":{"x":30963.02921761649,"y":17082.688176281925},"targetPosition":{"x":31183.112427781598,"y":17129.46830671592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"210399d5-7817-4136-b2bf-59bc5b5c4eb6","savedPayload":{"position":{"x":31060.56864490322,"y":16940.7674289282},"targetPosition":{"x":31183.112427781598,"y":17129.46830671592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"788a8d38-a7f8-4e9f-aa91-0d73d83967ba"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"912ac4dc-6acb-4097-84e9-cf3d72060597","savedPayload":{"position":{"x":31229.892558215593,"y":16909.385096550814},"targetPosition":{"x":31183.112427781598,"y":17129.46830671592},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"5c7415c1-6a1d-4838-8587-6883c11724b4"}}}],"id":"5b8dcb5c-6b20-4edf-aae5-1c526cdca536","savedPayload":{"position":{"x":31183.112427781598,"y":17129.46830671592},"targetPosition":{"x":31305.656210659978,"y":17318.16918450364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"New Image","config":"{ \n\"codeName\": \"bullet-market-sell-order\", \n\"size\": 20\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin","config":"{ \n\"offsetX\": 10,\n \"offsetY\": 0\n }","project":"Superalgos","id":"5321e00c-41b9-42a6-8e9a-e84067288a6a","savedPayload":{"position":{"x":31375.82640631097,"y":16988.044369255982},"targetPosition":{"x":31352.436341093973,"y":17098.085974338534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"788a8d38-a7f8-4e9f-aa91-0d73d83967ba"}}},"id":"8ad2d152-57e7-4db6-b810-44bb870c46e2","savedPayload":{"position":{"x":31352.436341093973,"y":17098.085974338534},"targetPosition":{"x":31305.656210659978,"y":17318.16918450364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"c24bfe41-ef93-4f0a-8c96-843536c85a2f","savedPayload":{"position":{"x":31305.656210659978,"y":17318.16918450364},"targetPosition":{"x":31550.74377641674,"y":17695.57094007908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Market Sell Order","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"3beb54d7-d0a4-499e-becc-22691e15a292","savedPayload":{"position":{"x":31351.345931743894,"y":17079.73185565667},"targetPosition":{"x":31691.130466249073,"y":16942.519841935795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b1093c73-8eac-4291-a67f-7e4d546a914b","savedPayload":{"position":{"x":31691.130466249073,"y":16942.519841935795},"targetPosition":{"x":32030.914654352695,"y":16805.067375172966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.rate","project":"Superalgos","id":"08be12d1-b8cd-4ab1-affe-008e4a6c2c17","savedPayload":{"position":{"x":31298.242092094082,"y":16830.510407991937},"targetPosition":{"x":31664.53801993205,"y":16817.83611948075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"18550807-aa68-4b52-83c6-e16a44beb9f6","savedPayload":{"position":{"x":31664.53801993205,"y":16817.83611948075},"targetPosition":{"x":32030.914654352695,"y":16805.067375172966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"917325b0-e9a2-428c-b291-34f6a4a462ed","savedPayload":{"position":{"x":31333.632881154474,"y":16578.687600263172},"targetPosition":{"x":31682.228079451364,"y":16691.89096279643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f6b71a6b-982d-4b61-9693-bbda2cb5abac","savedPayload":{"position":{"x":31682.228079451364,"y":16691.89096279643},"targetPosition":{"x":32030.914654352695,"y":16805.067375172966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"71213f89-f5d2-4946-a100-dd141090ea0c","savedPayload":{"position":{"x":31453.163273980488,"y":16353.807870601104},"targetPosition":{"x":31741.99921030561,"y":16579.42768700438},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9dca5f8f-c6c8-475f-ad85-96975552fb12","savedPayload":{"position":{"x":31741.99921030561,"y":16579.42768700438},"targetPosition":{"x":32030.914654352695,"y":16805.067375172966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Order Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.orderName","project":"Superalgos","id":"24ab5826-f6bb-4ca7-b720-2fbd7a7a142c","savedPayload":{"position":{"x":31642.397457161856,"y":16183.39238766858},"targetPosition":{"x":31836.632050253433,"y":16494.207530260308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2af2f91f-8198-4be6-9ff6-f2fa525573b8","savedPayload":{"position":{"x":31836.632050253433,"y":16494.207530260308},"targetPosition":{"x":32030.914654352695,"y":16805.067375172966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Algorithm Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.algorithmName","project":"Superalgos","id":"a48449db-1def-49af-8210-c06704e34cc9","savedPayload":{"position":{"x":31878.495060429963,"y":16087.997850293486},"targetPosition":{"x":31954.70733399052,"y":16446.511819706364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9b58e3d6-c336-4193-adf4-305640812adf","savedPayload":{"position":{"x":31954.70733399052,"y":16446.511819706364},"targetPosition":{"x":32030.914654352695,"y":16805.067375172966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Situation Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.situationName","project":"Superalgos","id":"e0490e8b-a1f0-463e-808e-d5d4e34b6880","savedPayload":{"position":{"x":32132.54047274106,"y":16079.132584788165},"targetPosition":{"x":32081.780238915653,"y":16442.104930199253},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e865f45c-813d-43c6-861d-bacdf4b90b7d","savedPayload":{"position":{"x":32081.780238915653,"y":16442.104930199253},"targetPosition":{"x":32030.914654352695,"y":16805.067375172966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"f43b14f3-f74f-44fc-9901-a3928fc38cdf","savedPayload":{"position":{"x":32344.704904598173,"y":16161.091976945921},"targetPosition":{"x":32202.962864645073,"y":16481.594801057105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7b13f0e5-8cd7-48e7-b743-2fbf89ae2029","savedPayload":{"position":{"x":32202.962864645073,"y":16481.594801057105},"targetPosition":{"x":32030.914654352695,"y":16805.067375172966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a5856620-e9ce-4ee1-830c-5b5dc45e9139","savedPayload":{"position":{"x":31527.192596107416,"y":17246.187649439522},"targetPosition":{"x":31550.74377641674,"y":17695.57094007908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Market Sell Order Stats","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Percentage Filled","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.percentageFilled","project":"Superalgos","id":"f5522236-9f5c-4fdb-b08d-2e4946abc2e3","savedPayload":{"position":{"x":31773.731959275552,"y":16673.049006504796},"targetPosition":{"x":31916.39247731365,"y":16788.42729228859},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2c7e8609-e799-4098-adfe-0a7b75ccb263","savedPayload":{"position":{"x":31916.39247731365,"y":16788.42729228859},"targetPosition":{"x":32110.340251218746,"y":16945.174565209894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Actual Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.actualRate","project":"Superalgos","id":"c6fe3736-eb2b-4750-b7f0-72ae5ff7d713","savedPayload":{"position":{"x":32054.667735450534,"y":16525.087491836595},"targetPosition":{"x":32084.06715312384,"y":16697.51859396989},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ffc9a08a-8c74-4c50-a441-3f59296079b3","savedPayload":{"position":{"x":32084.06715312384,"y":16697.51859396989},"targetPosition":{"x":32110.340251218746,"y":16945.174565209894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"8636289b-9bd2-4026-a816-e1f75abf64bb","savedPayload":{"position":{"x":32360.801840451568,"y":16610.205036366766},"targetPosition":{"x":32245.88893910256,"y":16753.18246560065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c54f0f59-b80f-4f72-bd85-ac1fd7a15b19","savedPayload":{"position":{"x":32245.88893910256,"y":16753.18246560065},"targetPosition":{"x":32110.340251218746,"y":16945.174565209894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fb23f6bb-8383-4276-8a77-5180e622653a","savedPayload":{"position":{"x":31755.039501299536,"y":17294.618004194315},"targetPosition":{"x":31550.74377641674,"y":17695.57094007908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Market Sell Order Base Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInBaseAsset","project":"Superalgos","id":"44fa5bfe-9b0b-48a9-a894-ddec881a6ad4","savedPayload":{"position":{"x":32021.70579286017,"y":17010.316953992104},"targetPosition":{"x":31974.925662426176,"y":17230.40016415721},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"4498020e-77ee-4e27-9e10-9e463b1af7e6","savedPayload":{"position":{"x":31974.925662426176,"y":17230.40016415721},"targetPosition":{"x":31928.14553199218,"y":17450.483374322317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInBaseAsset","project":"Superalgos","id":"6e97ae4f-f7e2-4391-bae7-87ae36c4abd0","savedPayload":{"position":{"x":32305.54728756762,"y":17205.395808565558},"targetPosition":{"x":32116.8464097799,"y":17327.939591443937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"dc0870d0-d0f2-42d2-aaef-5d7dda44618d","savedPayload":{"position":{"x":32116.8464097799,"y":17327.939591443937},"targetPosition":{"x":31928.14553199218,"y":17450.483374322317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInBaseAsset","project":"Superalgos","id":"05ae1a21-206b-4e53-b52d-b00917748c2a","savedPayload":{"position":{"x":32368.311952322394,"y":17544.043635190308},"targetPosition":{"x":32148.228742157287,"y":17497.263504756313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"93694e2d-8e12-4bd3-9497-2489aa33caca","savedPayload":{"position":{"x":32148.228742157287,"y":17497.263504756313},"targetPosition":{"x":31928.14553199218,"y":17450.483374322317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3e9e4e57-bd41-41f5-8d52-c92d3a707e80","savedPayload":{"position":{"x":31928.14553199218,"y":17450.483374322317},"targetPosition":{"x":31550.74377641674,"y":17695.57094007908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Market Sell Order Quoted Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInQuotedAsset","project":"Superalgos","id":"394b6e9b-ee43-4cb9-8b7d-fef145bd8846","savedPayload":{"position":{"x":32301.235839917787,"y":17337.60458830493},"targetPosition":{"x":32150.681453487043,"y":17504.812174037343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"50b03be9-48dc-42db-8f6c-b9bac7d96276","savedPayload":{"position":{"x":32150.681453487043,"y":17504.812174037343},"targetPosition":{"x":32000.1270670563,"y":17672.019759769755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInQuotedAsset","project":"Superalgos","id":"34bd06ab-2d1e-4c03-9279-2fef1663d0a3","savedPayload":{"position":{"x":32449.510357695854,"y":17648.46857946043},"targetPosition":{"x":32224.818712376076,"y":17660.244169615093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5685f2bc-a91c-4e84-92ee-8dfe2bacd4a2","savedPayload":{"position":{"x":32224.818712376076,"y":17660.244169615093},"targetPosition":{"x":32000.1270670563,"y":17672.019759769755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInQuotedAsset","project":"Superalgos","id":"b63f1a7f-cbf8-4060-a74f-a2c624f3673f","savedPayload":{"position":{"x":32334.542238521124,"y":17973.128532631243},"targetPosition":{"x":32167.33465278871,"y":17822.5741462005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"28b9cc5b-898f-4cd6-87e9-5a8233362e88","savedPayload":{"position":{"x":32167.33465278871,"y":17822.5741462005},"targetPosition":{"x":32000.1270670563,"y":17672.019759769755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51d59c30-3a02-4d74-aa62-f1524ea544ee","savedPayload":{"position":{"x":32000.1270670563,"y":17672.019759769755},"targetPosition":{"x":31550.74377641674,"y":17695.57094007908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a9811005-1b7d-45bb-8003-0e60caab5f09","savedPayload":{"position":{"x":31550.74377641674,"y":17695.57094007908},"targetPosition":{"x":31346.448051533946,"y":18096.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Limit Buy Orders","config":"{\n \"codeName\": \"Market-Buy-Orders\",\n \"icon\": \"trend\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"actualRate\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"94f80738-6b21-4e8d-8bdf-aa8ef6f8ad4f","savedPayload":{"position":{"x":30814.408161808948,"y":16949.846740241715},"targetPosition":{"x":31146.256693111784,"y":17011.351230095315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"491e71de-b648-48aa-b493-67ed00359e73","savedPayload":{"position":{"x":31146.256693111784,"y":17011.351230095315},"targetPosition":{"x":31478.10522441462,"y":17072.855719948915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"57bd54ae-96c8-4d10-bd6d-adf3d705e47e","savedPayload":{"position":{"x":30964.8311976346,"y":16634.47828732604},"targetPosition":{"x":31221.46821102461,"y":16853.667003637478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"38fccc9b-d822-4598-a156-95c734ec3d6b","savedPayload":{"position":{"x":31221.46821102461,"y":16853.667003637478},"targetPosition":{"x":31478.10522441462,"y":17072.855719948915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8901df44-b813-47f3-8ded-4e1f6c68ae8b","savedPayload":{"position":{"x":31478.10522441462,"y":17072.855719948915},"targetPosition":{"x":31782.727757882698,"y":17218.153215121714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Status Open","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"bbbba1d8-fbf6-4e15-a4e7-edb6683dd74f","savedPayload":{"position":{"x":31241.81278429378,"y":16846.392653551553},"targetPosition":{"x":31556.896178236584,"y":16967.341836523094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [2,2]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"fa856a62-67b2-45b5-a186-a6538b220858","savedPayload":{"position":{"x":31032.32265425313,"y":16542.55057256445},"targetPosition":{"x":31294.609416244857,"y":16754.946204543772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bb28a0e6-1cb3-4138-95f0-069745242288","savedPayload":{"position":{"x":31294.609416244857,"y":16754.946204543772},"targetPosition":{"x":31556.896178236584,"y":16967.341836523094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"c4de49da-cd9d-4687-b08b-93f8bba1d454","savedPayload":{"position":{"x":31373.080503919013,"y":16684.290519841514},"targetPosition":{"x":31556.896178236584,"y":16967.341836523094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"491e71de-b648-48aa-b493-67ed00359e73"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"7b269f5c-62d2-4f58-a010-71f1179a3312","savedPayload":{"position":{"x":31469.544750514484,"y":16641.341870150532},"targetPosition":{"x":31556.896178236584,"y":16967.341836523094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"38fccc9b-d822-4598-a156-95c734ec3d6b"}}}],"id":"7be8ba85-07e7-4800-8988-ce76d2105b73","savedPayload":{"position":{"x":31556.896178236584,"y":16967.341836523094},"targetPosition":{"x":31782.727757882698,"y":17218.153215121714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Status Closed Cancel Event","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed' && record.exitType === 'Cancel Event'","project":"Superalgos","id":"754cb109-361e-4b50-964a-0b5ef0ba4b70","savedPayload":{"position":{"x":31425.25409267465,"y":16667.692042581464},"targetPosition":{"x":31670.0679428913,"y":16900.011711878105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [4,4]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"6cae8828-961f-4184-b324-453570bf247e","savedPayload":{"position":{"x":31347.985779716066,"y":16306.810160831279},"targetPosition":{"x":31509.026861303682,"y":16603.410936354692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"bd024ea0-0641-43fe-8d01-63f23a7326cb","savedPayload":{"position":{"x":31509.026861303682,"y":16603.410936354692},"targetPosition":{"x":31670.0679428913,"y":16900.011711878105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"f05d7b53-3fba-4da7-91c2-154f4f2f92a2","savedPayload":{"position":{"x":31608.5634530377,"y":16568.16318057527},"targetPosition":{"x":31670.0679428913,"y":16900.011711878105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"491e71de-b648-48aa-b493-67ed00359e73"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"bc515a2b-68af-43a1-b0cb-036129122c87","savedPayload":{"position":{"x":31714.120532765566,"y":16565.399071164444},"targetPosition":{"x":31670.0679428913,"y":16900.011711878105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"38fccc9b-d822-4598-a156-95c734ec3d6b"}}}],"id":"ab881143-5631-4b27-a97a-94138dbd370d","savedPayload":{"position":{"x":31670.0679428913,"y":16900.011711878105},"targetPosition":{"x":31782.727757882698,"y":17218.153215121714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Status Closed Filled","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed' && record.exitType === 'Filled'","project":"Superalgos","id":"c206ef6f-d846-4744-b49d-c1261977a591","savedPayload":{"position":{"x":31663.11752607661,"y":16572.79415518767},"targetPosition":{"x":31800.39114311469,"y":16881.115747142045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"be3d2e3c-c973-421a-87d7-720472b42080","savedPayload":{"position":{"x":31729.834430409028,"y":16209.813467768457},"targetPosition":{"x":31765.11278676186,"y":16545.46460745525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"daebbf6b-f45b-40f5-8182-bd95d1a657e9","savedPayload":{"position":{"x":31765.11278676186,"y":16545.46460745525},"targetPosition":{"x":31800.39114311469,"y":16881.115747142045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"72d869ee-aa3b-4995-9832-7ab1b06579bf","savedPayload":{"position":{"x":31870.561338765685,"y":16550.990931894386},"targetPosition":{"x":31800.39114311469,"y":16881.115747142045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"491e71de-b648-48aa-b493-67ed00359e73"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"da73c5dc-926a-4368-9229-98574af7fec4","savedPayload":{"position":{"x":31969.14114311469,"y":16588.832173364797},"targetPosition":{"x":31800.39114311469,"y":16881.115747142045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"38fccc9b-d822-4598-a156-95c734ec3d6b"}}}],"id":"a54693cf-8ec1-469d-afb9-2a724e4f6af7","savedPayload":{"position":{"x":31800.39114311469,"y":16881.115747142045},"targetPosition":{"x":31782.727757882698,"y":17218.153215121714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"Status Closed Cancel Event","config":"{ \n\"codeName\": \"bullet-cancelled-order\", \n\"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.status === 'Closed' && record.exitType === 'Cancel Event'","project":"Superalgos","id":"9c3cb413-e20e-499b-ad72-de3ba1fc6543","savedPayload":{"position":{"x":31958.777497982297,"y":16747.606416002218},"targetPosition":{"x":31928.025253055497,"y":16913.530681653636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"End","config":"{ \n\"offsetX\": -5,\n \"offsetY\": 0\n }","project":"Superalgos","id":"b8016af3-22de-4a1b-b4cb-45a23b2928d5","savedPayload":{"position":{"x":32037.619611211216,"y":16785.21217495863},"targetPosition":{"x":31928.025253055497,"y":16913.530681653636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End","id":"38fccc9b-d822-4598-a156-95c734ec3d6b"}}},"id":"d562a270-c953-4ebe-9985-9f724e0e7eb6","savedPayload":{"position":{"x":31928.025253055497,"y":16913.530681653636},"targetPosition":{"x":31782.727757882698,"y":17218.153215121714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Starting Point","config":"{ \n\"codeName\": \"bullet-limit-buy-order\", \n\"size\": 20\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin","config":"{ \n\"offsetX\": 10,\n \"offsetY\": 0\n }","project":"Superalgos","id":"324aa438-7134-4918-b13e-082f3b3078dc","savedPayload":{"position":{"x":32158.94482578063,"y":16879.40584565254},"targetPosition":{"x":32033.53913648132,"y":16992.3216354756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"491e71de-b648-48aa-b493-67ed00359e73"}}},"id":"89fe166c-e48e-4a0c-b357-149ffa17f2c2","savedPayload":{"position":{"x":32033.53913648132,"y":16992.3216354756},"targetPosition":{"x":31782.727757882698,"y":17218.153215121714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Status Closed Filled","config":"{ \n\"codeName\": \"bullet-limit-buy-order-filled\", \n\"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.status === 'Closed' && record.exitType === 'Filled'","project":"Superalgos","id":"09ebd654-f653-467c-91f3-e8b9ec95feeb","savedPayload":{"position":{"x":32239.940555456273,"y":17009.91234764925},"targetPosition":{"x":32100.869261126307,"y":17105.493400130315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"End","config":"{ \n\"offsetX\": -10,\n \"offsetY\": 0\n }","project":"Superalgos","id":"a22c8598-870b-4d86-bb42-938cb21a5d28","savedPayload":{"position":{"x":32269.09906119377,"y":17092.253427726242},"targetPosition":{"x":32100.869261126307,"y":17105.493400130315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End","id":"38fccc9b-d822-4598-a156-95c734ec3d6b"}}},"id":"7c9a0ee3-b3f4-44c7-b51b-0efc830fd8d5","savedPayload":{"position":{"x":32100.869261126307,"y":17105.493400130315},"targetPosition":{"x":31782.727757882698,"y":17218.153215121714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"3ea3861e-f37d-4d78-a45e-9b5fa738aefd","savedPayload":{"position":{"x":31782.727757882698,"y":17218.153215121714},"targetPosition":{"x":31747.40098741871,"y":17892.22815108105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Limit Buy Order","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"5cec4759-6b80-42b0-9443-1b831b5b7d09","savedPayload":{"position":{"x":31920.5533705816,"y":16544.5586290509},"targetPosition":{"x":32111.81180915914,"y":16798.21833406556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b09e6f5e-9273-4e1c-a54a-43ce45bc6dd8","savedPayload":{"position":{"x":32111.81180915914,"y":16798.21833406556},"targetPosition":{"x":32391.95941348044,"y":17160.534866173944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.rate","project":"Superalgos","id":"f26cae34-697d-4ad2-a143-1693300d3311","savedPayload":{"position":{"x":32162.181824821913,"y":16418.314683063083},"targetPosition":{"x":32255.057319369153,"y":16722.353249834872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"387d66c8-900b-4e9d-8bc9-ea37b257256a","savedPayload":{"position":{"x":32255.057319369153,"y":16722.353249834872},"targetPosition":{"x":32391.95941348044,"y":17160.534866173944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"b6443228-7052-4e44-8338-44a3d2498ae0","savedPayload":{"position":{"x":32431.163990668363,"y":16383.990833913042},"targetPosition":{"x":32414.608118754695,"y":16701.597796862836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d6f79efe-1f80-4033-92a1-6869a7e9fb06","savedPayload":{"position":{"x":32414.608118754695,"y":16701.597796862836},"targetPosition":{"x":32391.95941348044,"y":17160.534866173944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"c448c5dc-5941-4bca-9328-79703fa9cabf","savedPayload":{"position":{"x":32695.423447324552,"y":16444.08584015999},"targetPosition":{"x":32570.975989428807,"y":16737.104568892166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5bdddc9e-d08c-4944-8add-a1c1753489b1","savedPayload":{"position":{"x":32570.975989428807,"y":16737.104568892166},"targetPosition":{"x":32391.95941348044,"y":17160.534866173944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Order Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.orderName","project":"Superalgos","id":"482dca74-9ba2-4a76-8101-fc24179e9299","savedPayload":{"position":{"x":32922.53567150205,"y":16591.42587379178},"targetPosition":{"x":32705.595611604607,"y":16823.871874208617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bc07d18f-6016-4959-ae36-efd2b9bd44f8","savedPayload":{"position":{"x":32705.595611604607,"y":16823.871874208617},"targetPosition":{"x":32391.95941348044,"y":17160.534866173944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Algorithm Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.algorithmName","project":"Superalgos","id":"7a0ad104-5485-4807-891e-2aa1b970020c","savedPayload":{"position":{"x":33085.68030574931,"y":16807.40342576631},"targetPosition":{"x":32801.95804840979,"y":16951.61825266136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b04fe3cd-9003-4a69-a49d-ad6eface3203","savedPayload":{"position":{"x":32801.95804840979,"y":16951.61825266136},"targetPosition":{"x":32391.95941348044,"y":17160.534866173944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Situation Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.situationName","project":"Superalgos","id":"cadd0d45-e81e-40fe-ac32-76bb35061bf2","savedPayload":{"position":{"x":33164.45408996675,"y":17066.24637666119},"targetPosition":{"x":32849.10159043561,"y":17104.547010601204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7239341a-6c4b-468a-bee8-21b27c2fa9d9","savedPayload":{"position":{"x":32849.10159043561,"y":17104.547010601204},"targetPosition":{"x":32391.95941348044,"y":17160.534866173944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"d62047f4-7a35-4249-8b91-ffcc53228417","savedPayload":{"position":{"x":33146.1307131645,"y":17346.53271587168},"targetPosition":{"x":32835.87627846659,"y":17274.127281557387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a34576ad-99d8-469e-8b78-1bacb5aa7ee2","savedPayload":{"position":{"x":32835.87627846659,"y":17274.127281557387},"targetPosition":{"x":32391.95941348044,"y":17160.534866173944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"48ec80a7-6f68-4284-9bb5-f04ce3c1052b","savedPayload":{"position":{"x":31992.488553175473,"y":17514.82639550561},"targetPosition":{"x":31747.40098741871,"y":17892.22815108105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Limit Buy Order Stats","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Percentage Filled","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.percentageFilled","project":"Superalgos","id":"bf5f428c-4b90-47d1-b001-8a3478e74522","savedPayload":{"position":{"x":32296.77696618509,"y":17093.242421542098},"targetPosition":{"x":32439.43748422319,"y":17208.620707325892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"94b4e199-d798-4ba3-8fc7-3d739ae55cb1","savedPayload":{"position":{"x":32439.43748422319,"y":17208.620707325892},"targetPosition":{"x":32633.385258128284,"y":17365.367980247196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Actual Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.actualRate","project":"Superalgos","id":"cf967a95-e485-4fbe-9647-4b86624511f3","savedPayload":{"position":{"x":32577.712742360072,"y":16945.280906873893},"targetPosition":{"x":32607.11216003338,"y":17117.71200900719},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"bd576bff-fa79-4ea3-87b7-565a2877a7b7","savedPayload":{"position":{"x":32607.11216003338,"y":17117.71200900719},"targetPosition":{"x":32633.385258128284,"y":17365.367980247196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"c523a647-b720-4932-ae18-771cb70e3145","savedPayload":{"position":{"x":32883.84684736111,"y":17030.398451404064},"targetPosition":{"x":32768.9339460121,"y":17173.375880637952},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"32b22d53-13c5-44db-941c-e29a4c1f05f7","savedPayload":{"position":{"x":32768.9339460121,"y":17173.375880637952},"targetPosition":{"x":32633.385258128284,"y":17365.367980247196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"90bd6690-de93-4158-a17f-728c28defc38","savedPayload":{"position":{"x":32148.353923303475,"y":17687.932426198255},"targetPosition":{"x":31747.40098741871,"y":17892.22815108105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Limit Buy Order Base Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInBaseAsset","project":"Superalgos","id":"50c5c78c-49ba-43c1-9000-dfb7a2890db5","savedPayload":{"position":{"x":33255.46000154309,"y":17207.91672763814},"targetPosition":{"x":33019.96086640919,"y":17419.928152854445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"e60271d1-8ce8-47e1-9776-42b583c9f2d6","savedPayload":{"position":{"x":33019.96086640919,"y":17419.928152854445},"targetPosition":{"x":32680.633595377858,"y":17725.690992404077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInBaseAsset","project":"Superalgos","id":"65c1b916-6c36-4818-901a-7b6411c523b2","savedPayload":{"position":{"x":33453.53956549737,"y":17765.853164702963},"targetPosition":{"x":33135.79253272138,"y":17749.426002314525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"63d19192-c46d-4e53-bf40-c229089d93b6","savedPayload":{"position":{"x":33135.79253272138,"y":17749.426002314525},"targetPosition":{"x":32680.633595377858,"y":17725.690992404077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInBaseAsset","project":"Superalgos","id":"7a32b13c-7e88-48d1-9ef7-dee529f39c95","savedPayload":{"position":{"x":33198.61139160002,"y":18300.772028432173},"targetPosition":{"x":32986.08663743286,"y":18064.87803997692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b1a42210-66b9-4e3a-aef5-4b0f385bcfc8","savedPayload":{"position":{"x":32986.08663743286,"y":18064.87803997692},"targetPosition":{"x":32680.633595377858,"y":17725.690992404077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8504b6e3-83c8-45ea-959a-41303f9d4274","savedPayload":{"position":{"x":32196.78427805827,"y":17915.779331390375},"targetPosition":{"x":31747.40098741871,"y":17892.22815108105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Limit Buy Order Quoted Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInQuotedAsset","project":"Superalgos","id":"0b1e5b50-51c0-4753-b11f-37fe4179f81f","savedPayload":{"position":{"x":33336.93824453015,"y":17877.26518188183},"targetPosition":{"x":33025.116395845704,"y":17943.53411386934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d30de7e2-c899-49da-b015-95ca5ca26133","savedPayload":{"position":{"x":33025.116395845704,"y":17943.53411386934},"targetPosition":{"x":32579.20668510896,"y":18038.49153843837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInQuotedAsset","project":"Superalgos","id":"d6a5ced0-9c91-4d52-ad4a-ac544a917496","savedPayload":{"position":{"x":33228.56028241059,"y":18460.00324140938},"targetPosition":{"x":32961.9610168685,"y":18286.98127433638},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"3c7ad592-3802-479f-9f03-c7f5d90aa827","savedPayload":{"position":{"x":32961.9610168685,"y":18286.98127433638},"targetPosition":{"x":32579.20668510896,"y":18038.49153843837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInQuotedAsset","project":"Superalgos","id":"7b5c11c3-8e14-4de1-9f05-46d958bac220","savedPayload":{"position":{"x":32740.15648243612,"y":18795.844543351202},"targetPosition":{"x":32673.9904869121,"y":18484.54402879816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d0862104-b7d8-42da-bc28-b4218d1cad2e","savedPayload":{"position":{"x":32673.9904869121,"y":18484.54402879816},"targetPosition":{"x":32579.20668510896,"y":18038.49153843837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"b60e7e48-8ae7-4701-848b-8faa9ba58c11","savedPayload":{"position":{"x":32124.80274299415,"y":18137.315716837813},"targetPosition":{"x":31747.40098741871,"y":17892.22815108105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"7e3120c7-a0c9-483c-ada9-8c53deb10f33","savedPayload":{"position":{"x":31747.40098741871,"y":17892.22815108105},"targetPosition":{"x":31346.448051533946,"y":18096.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Module","name":"Limit Sell Orders","config":"{ \n \"codeName\": \"Market-Sell-Orders\", \n \"icon\": \"trend\",\n \"useRateAtMousePosition\": true,\n \"ratePropertyName\": \"actualRate\"\n}","project":"Superalgos","shapes":{"type":"Shapes","name":"New Shapes","project":"Superalgos","chartPoints":[{"type":"Chart Points","name":"New Chart Points","project":"Superalgos","points":[{"type":"Point","name":"Begin","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"7f75a437-7e83-43b8-8353-459cec82a3da","savedPayload":{"position":{"x":31590.0186485795,"y":16856.117385291785},"targetPosition":{"x":31822.33831787614,"y":17100.931235508433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d8a8ba4d-ceac-43f7-9cac-b15d3c577e0a","savedPayload":{"position":{"x":31822.33831787614,"y":17100.931235508433},"targetPosition":{"x":32054.65798717278,"y":17345.74508572508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Point","name":"End","project":"Superalgos","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\nif (record.actualRate !== 0) {\ny = record.actualRate\n} else {\ny = record.rate\n}","project":"Superalgos","id":"d69fedc3-dcb6-4b3a-a8a5-7db14d37f8da","savedPayload":{"position":{"x":31897.082366570045,"y":16689.39538945665},"targetPosition":{"x":31975.870176871413,"y":17017.570237590866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a7c33161-bd93-4a7d-9d79-d6e6c3f3b292","savedPayload":{"position":{"x":31975.870176871413,"y":17017.570237590866},"targetPosition":{"x":32054.65798717278,"y":17345.74508572508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"045c78e6-ddff-4981-b497-31d6d19f9ef1","savedPayload":{"position":{"x":32054.65798717278,"y":17345.74508572508},"targetPosition":{"x":32215.699068760397,"y":17642.345861248494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"polygons":[{"type":"Polygon","name":"Status Open","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Open'","project":"Superalgos","id":"5aeb9711-2374-4a99-b757-f037eb05db27","savedPayload":{"position":{"x":31996.605038089994,"y":17023.64340488012},"targetPosition":{"x":32180.420712407566,"y":17306.6947215617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [2,2]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"f829eef3-dc45-4244-934b-8955baa9a363","savedPayload":{"position":{"x":32005.717856963365,"y":16654.694788816578},"targetPosition":{"x":32093.069284685465,"y":16980.69475518914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"f24f885d-8cb5-4519-a209-9dccea0d7b32","savedPayload":{"position":{"x":32093.069284685465,"y":16980.69475518914},"targetPosition":{"x":32180.420712407566,"y":17306.6947215617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"4f668994-11ef-4a59-a41c-b238fb22c449","savedPayload":{"position":{"x":32198.08409763956,"y":16969.65725358203},"targetPosition":{"x":32180.420712407566,"y":17306.6947215617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"d8a8ba4d-ceac-43f7-9cac-b15d3c577e0a"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"95434555-e691-495e-ba26-d489c6356590","savedPayload":{"position":{"x":32301.369895379103,"y":16991.611327618895},"targetPosition":{"x":32180.420712407566,"y":17306.6947215617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"a7c33161-bd93-4a7d-9d79-d6e6c3f3b292"}}}],"id":"186d1b59-7d04-4b40-83c9-acc361b8a12a","savedPayload":{"position":{"x":32180.420712407566,"y":17306.6947215617},"targetPosition":{"x":32215.699068760397,"y":17642.345861248494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Status Closed Cancel Event","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed' && record.exitType === 'Cancel Event'","project":"Superalgos","id":"831bf4d8-74d0-4451-9ac1-74129aed4035","savedPayload":{"position":{"x":32250.04975774437,"y":16986.895669427642},"targetPosition":{"x":32311.55424759797,"y":17318.744200730478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [4,4]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"1981c910-838a-472d-bef0-df163a5ba786","savedPayload":{"position":{"x":32399.659427346505,"y":16649.518919303155},"targetPosition":{"x":32355.606837472238,"y":16984.131560016816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"34016ca1-5c63-4cad-8f9e-5f042f3ff604","savedPayload":{"position":{"x":32355.606837472238,"y":16984.131560016816},"targetPosition":{"x":32311.55424759797,"y":17318.744200730478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"bf1708a8-16c7-45fc-88c4-1ad7aace15ea","savedPayload":{"position":{"x":32456.85174277077,"y":17014.1216672624},"targetPosition":{"x":32311.55424759797,"y":17318.744200730478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"d8a8ba4d-ceac-43f7-9cac-b15d3c577e0a"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"db93470c-9f50-465c-b5f1-e222beb27f6c","savedPayload":{"position":{"x":32543.873916894612,"y":17073.93035051383},"targetPosition":{"x":32311.55424759797,"y":17318.744200730478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"a7c33161-bd93-4a7d-9d79-d6e6c3f3b292"}}}],"id":"8e993263-dbfc-4d41-864a-9470e70d7e4f","savedPayload":{"position":{"x":32311.55424759797,"y":17318.744200730478},"targetPosition":{"x":32215.699068760397,"y":17642.345861248494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Polygon","name":"Status Closed Filled","project":"Superalgos","polygonCondition":{"type":"Polygon Condition","name":"New Polygon Condition","code":"record.status === 'Closed' && record.exitType === 'Filled'","project":"Superalgos","id":"efdea12d-4ac6-4fa1-819f-1de25267d9bc","savedPayload":{"position":{"x":32498.264896390712,"y":17049.93428400911},"targetPosition":{"x":32428.09470073972,"y":17380.059099256767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","project":"Superalgos","style":{"type":"Style","name":"New Style","config":"{\n \"default\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"paletteColor\": \"UI_COLOR.RED\",\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [0,0]\n }\n}","project":"Superalgos","id":"753d66c8-8384-4ae0-bdae-8cfa0a3564b6","savedPayload":{"position":{"x":32765.59470073972,"y":16795.49195170227},"targetPosition":{"x":32596.84470073972,"y":17087.77552547952},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"styleConditions":[],"id":"decddc18-331d-4a58-bf36-02808c215d87","savedPayload":{"position":{"x":32596.84470073972,"y":17087.77552547952},"targetPosition":{"x":32428.09470073972,"y":17380.059099256767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"Begin","project":"Superalgos","id":"373ba1e5-fa16-405f-b4f2-4d2d3cea3acb","savedPayload":{"position":{"x":32678.90607933834,"y":17154.227519610653},"targetPosition":{"x":32428.09470073972,"y":17380.059099256767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin","id":"d8a8ba4d-ceac-43f7-9cac-b15d3c577e0a"}}},{"type":"Polygon Vertex","name":"End","project":"Superalgos","id":"b67222e6-6186-4e69-ad67-a3a6c5a89201","savedPayload":{"position":{"x":32736.416292694095,"y":17242.785482218686},"targetPosition":{"x":32428.09470073972,"y":17380.059099256767},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Point","name":"End","id":"a7c33161-bd93-4a7d-9d79-d6e6c3f3b292"}}}],"id":"bf0751d6-fdb2-4e66-a39c-2bd99252bd60","savedPayload":{"position":{"x":32428.09470073972,"y":17380.059099256767},"targetPosition":{"x":32215.699068760397,"y":17642.345861248494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"images":[{"type":"Image","name":"Status Closed Cancel Event","config":"{ \n\"codeName\": \"bullet-cancelled-order\", \n\"size\": 10\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.status === 'Closed' && record.exitType === 'Cancel Event'","project":"Superalgos","id":"191dc665-7aaf-4aa6-8c8e-966ded042b38","savedPayload":{"position":{"x":32634.706769392134,"y":17365.144945012555},"targetPosition":{"x":32512.29984428381,"y":17481.304779660877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"End","config":"{ \n\"offsetX\": -5,\n \"offsetY\": 0\n }","project":"Superalgos","id":"ed6c3f2f-fa06-45f6-af44-7038503f9c5c","savedPayload":{"position":{"x":32676.387268350918,"y":17441.910874510195},"targetPosition":{"x":32512.29984428381,"y":17481.304779660877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End","id":"a7c33161-bd93-4a7d-9d79-d6e6c3f3b292"}}},"id":"5533709c-4ba8-4b2e-af48-827be2e1fe75","savedPayload":{"position":{"x":32512.29984428381,"y":17481.304779660877},"targetPosition":{"x":32215.699068760397,"y":17642.345861248494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Starting Point","config":"{ \n\"codeName\": \"bullet-limit-sell-order\", \n\"size\": 20\n}","project":"Superalgos","imagePosition":{"type":"Image Position","name":"Begin","config":"{ \n\"offsetX\": 10,\n \"offsetY\": 0\n }","project":"Superalgos","id":"8a78cf69-decb-4ab7-b182-f96676867972","savedPayload":{"position":{"x":32719.175778290588,"y":17589.428326719244},"targetPosition":{"x":32551.35020844719,"y":17607.067504895662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"Begin","id":"d8a8ba4d-ceac-43f7-9cac-b15d3c577e0a"}}},"id":"5c00fd53-4ca0-4903-9b02-ccb5afd7df12","savedPayload":{"position":{"x":32551.35020844719,"y":17607.067504895662},"targetPosition":{"x":32215.699068760397,"y":17642.345861248494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Image","name":"Status Closed Filled","config":"{ \n\"codeName\": \"bullet-limit-sell-order-filled\", \n\"size\": 20\n}","project":"Superalgos","imageCondition":{"type":"Image Condition","name":"New Image Condition","code":"record.status === 'Closed' && record.exitType === 'Filled'","project":"Superalgos","id":"510f3cbf-b1ba-4a5f-9db3-b90c91c6c38b","savedPayload":{"position":{"x":32707.992902868038,"y":17742.61840011302},"targetPosition":{"x":32539.300729278413,"y":17738.201040086067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"imagePosition":{"type":"Image Position","name":"End","config":"{ \n\"offsetX\": -10,\n \"offsetY\": 0\n }","project":"Superalgos","id":"5feb84a7-3898-4c30-87c9-40b3d141eb5e","savedPayload":{"position":{"x":32683.183757013165,"y":17826.372672881884},"targetPosition":{"x":32539.300729278413,"y":17738.201040086067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Point","name":"End","id":"a7c33161-bd93-4a7d-9d79-d6e6c3f3b292"}}},"id":"8564bc89-fb34-453f-8c5c-75459681cd7d","savedPayload":{"position":{"x":32539.300729278413,"y":17738.201040086067},"targetPosition":{"x":32215.699068760397,"y":17642.345861248494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"texts":[],"id":"42719bff-262a-4401-9611-761f0db1e790","savedPayload":{"position":{"x":32215.699068760397,"y":17642.345861248494},"targetPosition":{"x":31790.907804801758,"y":18166.919385231948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"panels":[{"type":"Plotter Panel","name":"Limit Sell Order","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Serial Number","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.serialNumber","project":"Superalgos","id":"c5062c3f-117f-4c7f-8baf-1181e07c1f44","savedPayload":{"position":{"x":31690.91278864097,"y":18970.472226121125},"targetPosition":{"x":32030.69732314615,"y":18833.260212400248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d2775824-cc6b-415a-a9a1-083a6f143c28","savedPayload":{"position":{"x":32030.69732314615,"y":18833.260212400248},"targetPosition":{"x":32370.48151124977,"y":18695.80774563742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.rate","project":"Superalgos","id":"f1a1e227-ac94-4216-a73a-8e1499532932","savedPayload":{"position":{"x":31637.808948991158,"y":18721.25077845639},"targetPosition":{"x":32004.104876829126,"y":18708.576489945204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"9714ab0d-e1c1-4556-9467-d08f7cde214c","savedPayload":{"position":{"x":32004.104876829126,"y":18708.576489945204},"targetPosition":{"x":32370.48151124977,"y":18695.80774563742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Status","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.status","project":"Superalgos","id":"5a83a8c5-a25c-4489-8659-a2de66406218","savedPayload":{"position":{"x":31673.19973805155,"y":18469.427970727626},"targetPosition":{"x":32021.79493634844,"y":18582.631333260884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"86407d60-10e5-43bf-ab20-ef5aadee9b29","savedPayload":{"position":{"x":32021.79493634844,"y":18582.631333260884},"targetPosition":{"x":32370.48151124977,"y":18695.80774563742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Exit Type","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.exitType","project":"Superalgos","id":"4471f450-8aa3-428e-a2d7-11ea1f32fbce","savedPayload":{"position":{"x":31792.730130877564,"y":18244.548241065557},"targetPosition":{"x":32081.566067202686,"y":18470.168057468833},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5d944f70-0ef5-423a-88da-ee0d5cdf73ee","savedPayload":{"position":{"x":32081.566067202686,"y":18470.168057468833},"targetPosition":{"x":32370.48151124977,"y":18695.80774563742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Order Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.orderName","project":"Superalgos","id":"dbf9a292-37f8-424e-800e-b479ae70f3de","savedPayload":{"position":{"x":31981.964314058932,"y":18074.13275813303},"targetPosition":{"x":32176.19890715051,"y":18384.94790072476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a268a651-1823-4ae5-b1d3-8bb325ca0ad7","savedPayload":{"position":{"x":32176.19890715051,"y":18384.94790072476},"targetPosition":{"x":32370.48151124977,"y":18695.80774563742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Algorithm Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.algorithmName","project":"Superalgos","id":"fc31dc8f-c014-43a2-b0e9-5885f0456011","savedPayload":{"position":{"x":32218.06191732704,"y":17978.73822075794},"targetPosition":{"x":32294.274190887594,"y":18337.252190170817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"09a1d252-4dd5-42f2-841a-0f9db2b2c1d4","savedPayload":{"position":{"x":32294.274190887594,"y":18337.252190170817},"targetPosition":{"x":32370.48151124977,"y":18695.80774563742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Situation Name","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.situationName","project":"Superalgos","id":"ec99ec3d-02cc-445e-9281-f17347a84fc9","savedPayload":{"position":{"x":32472.107329638136,"y":17969.872955252617},"targetPosition":{"x":32421.34709581273,"y":18332.845300663706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d9cee878-f71a-4829-8ce4-0debdc3833fa","savedPayload":{"position":{"x":32421.34709581273,"y":18332.845300663706},"targetPosition":{"x":32370.48151124977,"y":18695.80774563742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Periods","config":"{\n \"valueDecimals\": 0\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.periods","project":"Superalgos","id":"55e5a5ee-fcbc-4ac0-ae44-4fc4ef2ca64f","savedPayload":{"position":{"x":32684.27176149525,"y":18051.832347410374},"targetPosition":{"x":32542.52972154215,"y":18372.335171521558},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a08ab071-656a-4f19-8d63-694d32f88b83","savedPayload":{"position":{"x":32542.52972154215,"y":18372.335171521558},"targetPosition":{"x":32370.48151124977,"y":18695.80774563742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5d485d15-9919-42cc-9399-54c679d7085d","savedPayload":{"position":{"x":32211.0189967255,"y":18005.653807936564},"targetPosition":{"x":31790.907804801758,"y":18166.919385231948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Limit Sell Order Stats","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Percentage Filled","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.percentageFilled","project":"Superalgos","id":"e34fb8e5-a23a-461f-86b1-ee87aed3c3cf","savedPayload":{"position":{"x":33073.10499219001,"y":17931.97259335336},"targetPosition":{"x":32945.46223542257,"y":18025.374452328397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"cc61478e-bfdb-439b-a55c-4238c8ba920a","savedPayload":{"position":{"x":32945.46223542257,"y":18025.374452328397},"targetPosition":{"x":32733.828223471788,"y":18180.500416925912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Actual Rate","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.actualRate","project":"Superalgos","id":"ae5c666b-5001-479a-8d1f-2f00079e5585","savedPayload":{"position":{"x":33149.11346621645,"y":18245.449552689322},"targetPosition":{"x":32992.62401500721,"y":18221.246473435265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"172b26d5-66ca-4bcc-b453-e97fe8b0d06f","savedPayload":{"position":{"x":32992.62401500721,"y":18221.246473435265},"targetPosition":{"x":32733.828223471788,"y":18180.500416925912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Days","config":"{\n \"valueDecimals\": 2\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.days","project":"Superalgos","id":"c119f6cb-3354-4c7f-9d75-a4027adbdc2d","savedPayload":{"position":{"x":32978.9136476797,"y":18522.04384345168},"targetPosition":{"x":32886.95898764985,"y":18393.098987131878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"906f7f52-dedc-4c67-a18c-e1be9e753c5b","savedPayload":{"position":{"x":32886.95898764985,"y":18393.098987131878},"targetPosition":{"x":32733.828223471788,"y":18180.500416925912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"db2f6e9c-ce79-4465-a0dc-8ea02fac26b7","savedPayload":{"position":{"x":32235.36755806957,"y":18237.31489450005},"targetPosition":{"x":31790.907804801758,"y":18166.919385231948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Limit Sell Order Base Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInBaseAsset","project":"Superalgos","id":"ace027c0-94cc-4f43-b7bc-5c845840b58f","savedPayload":{"position":{"x":33371.15123860251,"y":18400.79353605574},"targetPosition":{"x":33054.72651201669,"y":18433.650517706945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"7bf8afbb-b802-4355-812c-2b9c2bf10a71","savedPayload":{"position":{"x":33054.72651201669,"y":18433.650517706945},"targetPosition":{"x":32601.394596310205,"y":18481.092724012575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInBaseAsset","project":"Superalgos","id":"2e2c5d6c-3539-498f-b2ca-a720877aa5a3","savedPayload":{"position":{"x":33202.78973831288,"y":18968.400270421607},"targetPosition":{"x":32955.84200843616,"y":18768.2998421176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a75fbc3b-400f-4246-8946-22b17df79b7e","savedPayload":{"position":{"x":32955.84200843616,"y":18768.2998421176},"targetPosition":{"x":32601.394596310205,"y":18481.092724012575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInBaseAsset","project":"Superalgos","id":"5d54cc4b-46d5-4931-a687-d62dc4764ca1","savedPayload":{"position":{"x":32682.207799075146,"y":19251.20813994384},"targetPosition":{"x":32649.073641529256,"y":18935.093685350803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a22de527-1426-4575-a7bc-cce1aaf9c28c","savedPayload":{"position":{"x":32649.073641529256,"y":18935.093685350803},"targetPosition":{"x":32601.394596310205,"y":18481.092724012575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"3e34000e-ad8c-4049-9eee-89e8ea362a0f","savedPayload":{"position":{"x":32140.623487457397,"y":18450.113561204376},"targetPosition":{"x":31790.907804801758,"y":18166.919385231948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Plotter Panel","name":"Limit Sell Order Quoted Asset","config":"{ \n \"codeName\": \"\"\n}","project":"Superalgos","panelData":[{"type":"Panel Data","name":"Size","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeInQuotedAsset","project":"Superalgos","id":"8b27eaa0-3c2b-42ea-830a-dbec2b2ddf21","savedPayload":{"position":{"x":33042.62893512548,"y":18988.974268641305},"targetPosition":{"x":32752.423758498175,"y":18859.793800519237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ea964346-031e-4c3e-9e72-c644659cc7e0","savedPayload":{"position":{"x":32752.423758498175,"y":18859.793800519237},"targetPosition":{"x":32335.56384376706,"y":18674.334824247828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Size Filled","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sizeFilledInQuotedAsset","project":"Superalgos","id":"b9d28a73-c3a6-4da6-b86b-19f524a02b8a","savedPayload":{"position":{"x":32612.91143510878,"y":19396.84008516096},"targetPosition":{"x":32498.818094031732,"y":19099.809387566285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b65033c3-ee30-48c1-9ce5-a517f4ec24f5","savedPayload":{"position":{"x":32498.818094031732,"y":19099.809387566285},"targetPosition":{"x":32335.56384376706,"y":18674.334824247828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Panel Data","name":"Fees Paid","config":"{\n \"valueDecimals\": 10\n}","project":"Superalgos","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.feesPaidInQuotedAsset","project":"Superalgos","id":"3b945002-5861-43c5-8cdd-835c6639acd6","savedPayload":{"position":{"x":32020.94711050992,"y":19381.978589746384},"targetPosition":{"x":32150.215056079014,"y":19091.10383845276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b57e89db-a5bc-4d67-86ab-acee68676d5f","savedPayload":{"position":{"x":32150.215056079014,"y":19091.10383845276},"targetPosition":{"x":32335.56384376706,"y":18674.334824247828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"ae18b041-f16e-4d96-8a83-56845dddf64a","savedPayload":{"position":{"x":31952.173382097142,"y":18587.03057715569},"targetPosition":{"x":31790.907804801758,"y":18166.919385231948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"fb243322-ec2a-4f03-bb77-e97e4699d1c6","savedPayload":{"position":{"x":31790.907804801758,"y":18166.919385231948},"targetPosition":{"x":31346.448051533946,"y":18096.523875963845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"93c15cbf-185a-4b59-b55f-847f437bb841","savedPayload":{"position":{"x":31351.448051533946,"y":18184.523875963845},"targetPosition":{"x":31033.25,"y":18502.72192749779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"6a54eece-4582-4cda-a854-1cd805e00fed","savedPayload":{"position":{"x":31033.25,"y":18502.72192749779},"targetPosition":{"x":31033.25,"y":18502.72192749779},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Tutorial","name":"Hello World Tutorial","config":"{\n \"icon\": {\n \"name\": \"tutorial\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Welcome\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","tutorialSteps":[{"type":"Tutorial Step","name":"Look Around","config":"{\n \"icon\": {\n \"name\": \"layer\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Look around\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"0152006e-4690-4e9f-b7bc-c21ac94e3dfb","savedPayload":{"position":{"x":25271,"y":38541.94237886467},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Network","name":"My Network","id":"3c165071-7558-4708-9999-8ffe71d346b1"}}},{"type":"Tutorial Step","name":"Custom Data Mine ","config":"{\n \"icon\": {\n \"name\": \"data-mine\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Custom Data Mine\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"20739207-d5e6-4565-b23a-95f20f6b2cd1","savedPayload":{"position":{"x":25250.741668821305,"y":38650.31487872081},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Tutorial","name":"Hello World Tutorial","id":"eb530129-1a7c-4c52-881c-fbf2909cf174"}}},{"type":"Tutorial Step","name":"The Strategy","config":"{\n \"icon\": {\n \"name\": \"strategy\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Strategy\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"a2607fd9-54da-427e-b18a-5be361aef825","savedPayload":{"position":{"x":25192.702675166198,"y":38744.05107195863},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Tutorial","name":"Hello World Tutorial","id":"eb530129-1a7c-4c52-881c-fbf2909cf174"}}},{"type":"Tutorial Step","name":"Move to Trading System","config":"{\n \"icon\": {\n \"name\": \"trading-system-reference\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Trading System\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"efafbbda-10f1-4554-8621-b4e0d16064ac","savedPayload":{"position":{"x":25104.72150673296,"y":38810.491366271184},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Trading System","name":"Hello World Trading System","id":"828f4dd3-7564-4022-96e2-bb3ec5b52ede"}}},{"type":"Tutorial Step","name":"Trigger Stage","config":"{\n \"icon\": {\n \"name\": \"trigger-stage\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Trigger Stage\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"7de1fc71-3d58-4abc-a5d4-281e06b4c69d","savedPayload":{"position":{"x":24998.68050783899,"y":38840.66263175318},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Tutorial","name":"Hello World Tutorial","id":"eb530129-1a7c-4c52-881c-fbf2909cf174"}}},{"type":"Tutorial Step","name":"Trigger On","config":"{\n \"icon\": {\n \"name\": \"trigger-on\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Trigger On\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"6f185b22-2d68-44bb-a0b1-0b15dea873f8","savedPayload":{"position":{"x":24888.901102978376,"y":38830.490071816515},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Trigger On Event","name":"New Trigger On Event","id":"1daea4f0-6f2f-4aa3-bc75-39b86e70f63b"}}},{"type":"Tutorial Step","name":"Trigger Off","config":"{\n \"icon\": {\n \"name\": \"trigger-off\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Trigger Off\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"1c8ec144-21a9-412b-b791-2f092dadf967","savedPayload":{"position":{"x":24790.20960908622,"y":38781.34754704874},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Trigger Off Event","name":"New Trigger Off Event","id":"8cd9345d-9d26-4baa-900b-fef145444218"}}},{"type":"Tutorial Step","name":"Take Position","config":"{\n \"icon\": {\n \"name\": \"take-position\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Take Position\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"82b54ca9-5f89-4a13-93c5-5a6beefb6da2","savedPayload":{"position":{"x":24715.934859281115,"y":38699.87202772788},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Take Position Event","name":"New Take Position Event","id":"e6b6fbce-70b3-4aa8-bcc7-245330ee2c6c"}}},{"type":"Tutorial Step","name":"Open Stage","config":"{\n \"icon\": {\n \"name\": \"open-stage\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Open Stage\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"ecd5eda3-5a12-4725-b038-ba0bb350732b","savedPayload":{"position":{"x":24676.10807009483,"y":38597.06723420964},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Open Stage","name":"New Open Stage","id":"ec88dd85-34a0-41c9-8554-6f200951e6b1"}}},{"type":"Tutorial Step","name":"Manage Stage","config":"{\n \"icon\": {\n \"name\": \"manage-stage\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Manage Stage\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"64cca147-3c5e-4dde-a172-365e5fb3ab95","savedPayload":{"position":{"x":24676.10807009483,"y":38486.8175235197},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Manage Stage","name":"New Manage Stage","id":"e2fae940-f3da-47a6-bf76-b37c8d5e321e"}}},{"type":"Tutorial Step","name":"Close Stage","config":"{\n \"icon\": {\n \"name\": \"close-stage\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Close Stage\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"2993cf05-3ecb-45d7-9f43-b84cf93c5b02","savedPayload":{"position":{"x":24715.934859281115,"y":38384.01273000146},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Close Stage","name":"New Close Stage","id":"24a530bd-b539-4544-b159-ddd92c428220"}}},{"type":"Tutorial Step","name":"That's it","config":"{\n \"icon\": {\n \"name\": \"announcement\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - That's it\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"bd1438ec-d4e2-448a-b4a4-81f4e980227f","savedPayload":{"position":{"x":24790.20960908622,"y":38302.537210680595},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Tutorial","name":"Hello World Tutorial","id":"eb530129-1a7c-4c52-881c-fbf2909cf174"}}},{"type":"Tutorial Step","name":"Update Data Mines","config":"{\n \"icon\": {\n \"name\": \"data-tasks\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Update Data Mines\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"e6a225f4-b35a-4c68-bb51-db00b8b2f8f4","savedPayload":{"position":{"x":24888.901102978376,"y":38253.39468591282},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Market Data Tasks","name":"Binance BTC/USDT","id":"bb408449-c0d0-4ee3-96e4-2efd2018def7"}}},{"type":"Tutorial Step","name":"Backtest!","config":"{\n \"icon\": {\n \"name\": \"backtesting-session\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Backtest\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"39e4cfbf-8f3e-43a5-98e0-e0e61549c521","savedPayload":{"position":{"x":24998.68050783899,"y":38243.22212597616},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Trading Parameters","name":"New Trading Parameters","id":"85d5b9da-c460-4524-9559-e672af19d0e7"}}},{"type":"Tutorial Step","name":"Final Step","config":"{\n \"icon\": {\n \"name\": \"stop\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Final Step\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"b4a37231-8083-435a-95b2-8bd8227b3cf5","savedPayload":{"position":{"x":25104.72150673296,"y":38273.39339145815},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Testing Trading Tasks","name":"New Testing Trading Tasks","id":"8117db0a-e418-4f56-8fe4-fda2ddac1cbb"}}},{"type":"Tutorial Step","name":"The Chart","config":"{\n \"icon\": {\n \"name\": \"charting-space\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"repositionAtTimeMachineReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The Chart\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"fe36de15-dc1c-46d4-a7a6-f9f9979be215","savedPayload":{"position":{"x":25192.702675166198,"y":38339.833685770696},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Time Machine","name":"Hello World Trading System Backtesting Session My Computer Binance BTC/USDT","id":"ae3cca29-d5d8-4869-9203-0ad91dd0cba9"}}},{"type":"Tutorial Step","name":"The End","config":"{\n \"icon\": {\n \"name\": \"hits\",\n \"project\": \"Superalgos\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"positionAtReferenceParent\": true,\n \"docs\": {\n \"project\": \"Superalgos\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - The End\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Superalgos\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}","project":"Superalgos","id":"a50f45d4-340b-430d-977a-526f12aa5908","savedPayload":{"position":{"x":25250.741668821305,"y":38433.56987900852},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"tutorial":{"status":"Done"},"referenceParent":{"type":"Network","name":"My Network","id":"3c165071-7558-4708-9999-8ffe71d346b1"}}}],"tutorialTopics":[],"id":"eb530129-1a7c-4c52-881c-fbf2909cf174","savedPayload":{"position":{"x":24971,"y":38541.94237886467},"targetPosition":{"x":24971,"y":38541.94237886467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isPlaying":true,"isRunning":false},"tutorial":{"status":"Done"}}}]} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/AppSchema.json b/Projects/Superalgos/Schemas/AppSchema.json index 10c7e1f8c..d329c4b5c 100644 --- a/Projects/Superalgos/Schemas/AppSchema.json +++ b/Projects/Superalgos/Schemas/AppSchema.json @@ -742,6 +742,12 @@ "attachingRules": { "compatibleTypes": "->Plotter Module->" }, + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"codeName\": \"\", \n\"isLegacy\": false\n}" + }, "childrenNodesProperties": [ { "name": "plotterPanelJavascriptCode", @@ -756,6 +762,13 @@ } ], "menuItems": [ + { + "action": "Configure", + "actionFunction": "uiObject.configEditor.activate", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" + }, { "action": "Add UI Object", "disableIfPropertyIsDefined": true, @@ -1735,7 +1748,7 @@ "config": true }, "initialValues": { - "config": "{ \n\"configuration\": \"Get the appropriate configuration from the documentation\"\n}" + "config": " { \"default\": { \"opacity\": 0.2, \"lineWidth\": 1, \"lineDash\": [0,0], \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\" }, \"atMousePosition\": { \"opacity\": 0.3, \"lineWidth\": 2, \"lineDash\": [0,0], \"paletteColor\": \"UI_COLOR.RUSTED_RED\" }}" }, "menuItems": [ { @@ -3040,6 +3053,18 @@ "childType": "Learning Current", "autoAdd": true }, + { + "name": "features", + "type": "node", + "childType": "Features", + "autoAdd": true + }, + { + "name": "labels", + "type": "node", + "childType": "Labels", + "autoAdd": true + }, { "name": "predictions", "type": "node", @@ -3217,8 +3242,351 @@ "compatibleTypes": "->Prediction->" }, "propertyNameAtParent": "predictionValue", - "childrenNodesProperties": [ + "childrenNodesProperties": [], + "icon": "bitcoin" + }, + { + "type": "Features", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Feature", + "relatedUiObject": "Feature", + "actionFunction": "payload.executeAction" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } ], + "addLeftIcons": true, + "level": 3, + "attachingRules": { + "compatibleTypes": "->Learning Engine->" + }, + "propertyNameAtParent": "features", + "childrenNodesProperties": [ + { + "name": "features", + "type": "array", + "childType": "Feature", + "autoAdd": true + } + ], + "icon": "bitcoin" + }, + { + "type": "Feature", + "menuItems": [ + { + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", + "actionFunction": "uiObject.configEditor.activate" + }, + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Learning Engine", + "actionFunction": "payload.executeAction" + }, + { + "action": "Copy Node Path", + "label": "Copy Node Path", + "iconPathOn": "copy-path", + "iconPathOff": "copy-path", + "actionFunction": "payload.executeAction" + }, + { + "action": "Copy Node Value", + "label": "Copy Node Value", + "iconPathOn": "copy-value", + "iconPathOff": "copy-value", + "actionFunction": "payload.executeAction" + }, + { + "action": "Copy Node Type", + "label": "Copy Node Type", + "iconPathOn": "copy-type", + "iconPathOff": "copy-type", + "actionFunction": "payload.executeAction" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "attachingRules": { + "compatibleTypes": "->Features->" + }, + "propertyNameAtParent": "features", + "childrenNodesProperties": [ + { + "name": "begin", + "type": "node", + "childType": "Begin", + "autoAdd": true + }, + { + "name": "end", + "type": "node", + "childType": "End", + "autoAdd": true + }, + { + "name": "featureValue", + "type": "node", + "childType": "Feature Value", + "autoAdd": true + } + ], + "icon": "bitcoin" + }, + { + "type": "Feature Value", + "menuItems": [ + { + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", + "actionFunction": "uiObject.configEditor.activate" + }, + { + "action": "Copy Node Path", + "label": "Copy Node Path", + "iconPathOn": "copy-path", + "iconPathOff": "copy-path", + "actionFunction": "payload.executeAction" + }, + { + "action": "Copy Node Value", + "label": "Copy Node Value", + "iconPathOn": "copy-value", + "iconPathOff": "copy-value", + "actionFunction": "payload.executeAction" + }, + { + "action": "Copy Node Type", + "label": "Copy Node Type", + "iconPathOn": "copy-type", + "iconPathOff": "copy-type", + "actionFunction": "payload.executeAction" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "attachingRules": { + "compatibleTypes": "->Feature->" + }, + "propertyNameAtParent": "featureValue", + "childrenNodesProperties": [], + "icon": "bitcoin" + }, + { + "type": "Labels", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Label", + "relatedUiObject": "Label", + "actionFunction": "payload.executeAction" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 3, + "attachingRules": { + "compatibleTypes": "->Learning Engine->" + }, + "propertyNameAtParent": "labels", + "childrenNodesProperties": [ + { + "name": "labels", + "type": "array", + "childType": "Label", + "autoAdd": true + } + ], + "icon": "bitcoin" + }, + { + "type": "Label", + "menuItems": [ + { + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", + "actionFunction": "uiObject.configEditor.activate" + }, + { + "action": "Add Missing Children", + "label": "Add Missing Children", + "relatedUiObject": "Learning Engine", + "actionFunction": "payload.executeAction" + }, + { + "action": "Copy Node Path", + "label": "Copy Node Path", + "iconPathOn": "copy-path", + "iconPathOff": "copy-path", + "actionFunction": "payload.executeAction" + }, + { + "action": "Copy Node Value", + "label": "Copy Node Value", + "iconPathOn": "copy-value", + "iconPathOff": "copy-value", + "actionFunction": "payload.executeAction" + }, + { + "action": "Copy Node Type", + "label": "Copy Node Type", + "iconPathOn": "copy-type", + "iconPathOff": "copy-type", + "actionFunction": "payload.executeAction" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "attachingRules": { + "compatibleTypes": "->Labels->" + }, + "propertyNameAtParent": "labels", + "childrenNodesProperties": [ + { + "name": "begin", + "type": "node", + "childType": "Begin", + "autoAdd": true + }, + { + "name": "end", + "type": "node", + "childType": "End", + "autoAdd": true + }, + { + "name": "labelValue", + "type": "node", + "childType": "Label Value", + "autoAdd": true + } + ], + "icon": "bitcoin" + }, + { + "type": "Label Value", + "menuItems": [ + { + "action": "Configure", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", + "actionFunction": "uiObject.configEditor.activate" + }, + { + "action": "Copy Node Path", + "label": "Copy Node Path", + "iconPathOn": "copy-path", + "iconPathOff": "copy-path", + "actionFunction": "payload.executeAction" + }, + { + "action": "Copy Node Value", + "label": "Copy Node Value", + "iconPathOn": "copy-value", + "iconPathOff": "copy-value", + "actionFunction": "payload.executeAction" + }, + { + "action": "Copy Node Type", + "label": "Copy Node Type", + "iconPathOn": "copy-type", + "iconPathOff": "copy-type", + "actionFunction": "payload.executeAction" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{\n\"initialValue\": 0\n}" + }, + "addLeftIcons": true, + "level": 3, + "attachingRules": { + "compatibleTypes": "->Label->" + }, + "propertyNameAtParent": "labelValue", + "childrenNodesProperties": [], "icon": "bitcoin" }, { @@ -5590,7 +5958,7 @@ "action": "Delete UI Object", "askConfirmation": true, "confirmationLabel": "Confirm to Delete", - "label": "This", + "label": "Delete", "iconPathOn": "delete-entity", "iconPathOff": "delete-entity", "actionFunction": "payload.executeAction" @@ -13075,6 +13443,13 @@ { "type": "Open Stage", "menuItems": [ + { + "action": "Configure", + "actionFunction": "uiObject.configEditor.activate", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" + }, { "action": "Add Missing Children", "label": "Add Missing Items", @@ -13097,6 +13472,12 @@ "actionFunction": "payload.executeAction" } ], + "initialValues": { + "config": "{\n\"roundingErrorCorrectionFactor\": 1.01, \n\"absoluteDustInBaseAsset\": 0,\n\"absoluteDustInQuotedAsset\": 0 \n}" + }, + "editors": { + "config": true + }, "addLeftIcons": true, "level": 1, "attachingRules": { @@ -14337,6 +14718,13 @@ { "type": "Close Stage", "menuItems": [ + { + "action": "Configure", + "actionFunction": "uiObject.configEditor.activate", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration" + }, { "action": "Add Missing Children", "label": "Add Missing Items", @@ -14359,6 +14747,12 @@ "actionFunction": "payload.executeAction" } ], + "initialValues": { + "config": "{\n\"roundingErrorCorrectionFactor\": 1.01, \n\"absoluteDustInBaseAsset\": 0,\n\"absoluteDustInQuotedAsset\": 0 \n}" + }, + "editors": { + "config": true + }, "addLeftIcons": true, "level": 2, "attachingRules": { @@ -14686,7 +15080,8 @@ "childType": "Signals Provider", "autoAdd": true } - ] + ], + "icon": "bitcoin" }, { "type": "Signals Provider", @@ -14727,10 +15122,11 @@ "config": true }, "initialValues": { - "config": "{ \n\"webhookURL\": \"Webhook/New-Message/Trading-View/Binance/BTC-USDT\",\n\"testMessage\": \"\" \n}" + "config": "{ \n\"webhookURL\": \"Webhook/New-Message/Trading-View/binance/BTC-USDT\",\n\"testMessage\": \"\" \n}" }, "propertyNameAtParent": "signalsProviders", - "childrenNodesProperties": [] + "childrenNodesProperties": [], + "icon": "bitcoin" }, { "type": "Crypto Exchanges", @@ -14893,6 +15289,10 @@ { "codeName": "hitbtc", "iconName": "hitbtc" + }, + { + "codeName": "luno", + "iconName": "luno" } ] }, @@ -15048,6 +15448,10 @@ { "codeName": "USD", "iconName": "us-dollar" + }, + { + "codeName": "ZAR", + "iconName": "zar" } ] }, @@ -15532,7 +15936,7 @@ "config": true }, "initialValues": { - "config": "{\"node\":{\"distancePercentage\":60,\"radiusPercentage\":85,\"massPercentage\":100,\"animationSteps\":2,\"menuItem\":{\"widthPercentage\":100,\"heightPercentage\":60,\"radiusPercentage\":90}},\"physics\":false}" + "config": "{\"node\":{\"distancePercentage\":60,\"radiusPercentage\":85,\"massPercentage\":100,\"animationSteps\":2,\"menuItem\":{\"widthPercentage\":100,\"heightPercentage\":60,\"radiusPercentage\":90}},\"physics\":false,\"detachUsingMouse\":false }" }, "menuItems": [ { @@ -19389,4 +19793,4 @@ } ] } -] \ No newline at end of file +] diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/project-schema-file.json b/Projects/Superalgos/Schemas/Docs-Concepts/project-schema-file.json new file mode 100644 index 000000000..23a77abc4 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/project-schema-file.json @@ -0,0 +1,13 @@ +{ + "type": "Project Schema File", + "definition": { + "text": "It is the most basic and low level system-wide configuration file. You will find it at the Projects folder. It contains a list of all integrated projects and for each one the list of javascript modules organized in different categories, like Function Libraries, Utilities, Spaces, Globals, etc; in turn organized into the broather categories UI, TS and CL.", + "updated": 1614939492529 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode. Then you can use doscs.save to save your changes and app.contribute to send it to the main repository." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/references.json b/Projects/Superalgos/Schemas/Docs-Concepts/references.json new file mode 100644 index 000000000..e30f9565c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Concepts/references.json @@ -0,0 +1,12 @@ +{ + "type": "References", + "definition": { + "text": "Write the definition for this Concept." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and select the pencil button to enter edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Concepts/superalgos-sa-token.json b/Projects/Superalgos/Schemas/Docs-Concepts/superalgos-sa-token.json index d3a7aa9cd..23b498c98 100644 --- a/Projects/Superalgos/Schemas/Docs-Concepts/superalgos-sa-token.json +++ b/Projects/Superalgos/Schemas/Docs-Concepts/superalgos-sa-token.json @@ -37,8 +37,8 @@ }, { "style": "Text", - "text": "After issuing the token in March 2021, the funds were deposited at the project's Treasury Account, from where it is distributed to each year's Budget Account, each Release Account and finally to contributors accounts.", - "updated": 1614853686491 + "text": "After issuing the token in March 2021, the funds were deposited at the project's Treasury Account, from where it is distributed to contributors accounts.", + "updated": 1615564586741 }, { "style": "List", diff --git a/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-004-automating-actions-locating-the-right-function-library.json b/Projects/Superalgos/Schemas/Docs-Concepts/ui-global-object.json similarity index 51% rename from Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-004-automating-actions-locating-the-right-function-library.json rename to Projects/Superalgos/Schemas/Docs-Concepts/ui-global-object.json index 545fc062b..5cb0d5237 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-004-automating-actions-locating-the-right-function-library.json +++ b/Projects/Superalgos/Schemas/Docs-Concepts/ui-global-object.json @@ -1,9 +1,8 @@ { - "topic": "How to Automate Actions at The Design Space", - "pageNumber": "4", - "type": "Automating Actions - Locating the Right Function Library", + "type": "UI Global Object", "definition": { - "text": "Write a summary for this topic page." + "text": "It is a global object available at the browser, containing at runtime a structure of objects ranging from Utilities, Function Libraries, Spaces and others, ready to be accessed and their functions consumed from anywhere within the UI.", + "updated": 1614941411500 }, "paragraphs": [ { diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/apis.json b/Projects/Superalgos/Schemas/Docs-Nodes/apis.json new file mode 100644 index 000000000..bee2648fc --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/apis.json @@ -0,0 +1,12 @@ +{ + "type": "APIs", + "definition": { + "text": "Write the definition for this Node." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and select the pencil button to enter edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/close-stage.json b/Projects/Superalgos/Schemas/Docs-Nodes/close-stage.json index 55c58849c..8c36f2243 100644 --- a/Projects/Superalgos/Schemas/Docs-Nodes/close-stage.json +++ b/Projects/Superalgos/Schemas/Docs-Nodes/close-stage.json @@ -8,9 +8,32 @@ "style": "Block", "text": "Content" }, + { + "style": "Title", + "text": "Optionality", + "updated": 1615101975045 + }, + { + "style": "Note", + "text": "The Close Stage is optional. That means that if you don't need it you can just delete this node and everything should work just fine. " + }, { "style": "Text", - "text": "The close stage is opened when either the stop loss or take profit targets are hit." + "text": "There are situations where users might want to execute both buy and sell orders from within the Open Stage. In those situations they might want to delete the Manage Stage and the Close Stage so that they don't execute at all. That is possible because both are optional. This is how optionality looks like at the code:", + "updated": 1615102048658 + }, + { + "style": "Javascript", + "text": "/*\nThe system allows the user not to define a close stage, because the close stage is optional.\nHere we are goint to see if that is the case and if it is, we will inmidiatelly consider \nthe close stage as closed.\n*/\nif (tradingSystem.tradingStrategies[tradingEngine.tradingCurrent.strategy.index.value].closeStage === undefined) {\n changeStageStatus('Close Stage', 'Closed', 'Close Stage Undefined')\n return\n}", + "updated": 1615102065680 + }, + { + "style": "Title", + "text": "Close Stage Concept" + }, + { + "style": "Text", + "text": "The close stage is opened when either the stop loss or take profit targets are hit. It is also opened after the position is opened if the Manage Stage is undefined." }, { "style": "Text", @@ -19,6 +42,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": "Include", + "text": "Superalgos->Topic->Why My Stage is not Closing?->The Stage Does Not Close", + "updated": 1615054694042 } ] } \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/crypto-exchange.json b/Projects/Superalgos/Schemas/Docs-Nodes/crypto-exchange.json index 0824a262c..cfbaec461 100644 --- a/Projects/Superalgos/Schemas/Docs-Nodes/crypto-exchange.json +++ b/Projects/Superalgos/Schemas/Docs-Nodes/crypto-exchange.json @@ -10,8 +10,61 @@ }, { "style": "Title", - "text": "Crypto Exchange Configuration", - "updated": 1609771676751 + "text": "Tested Exchanges", + "updated": 1615200855230 + }, + { + "style": "Text", + "text": "In theory, Superalgos supports dozens of exchanges. However, each exchange must go through a testing process, as not all of them conform to the standard proposed by the CCXT library.", + "updated": 1615201479524 + }, + { + "style": "List", + "text": "Binance Test Status", + "updated": 1615203667257 + }, + { + "style": "List", + "text": "Binance-US Test Status" + }, + { + "style": "List", + "text": "Bitfinex Test Status" + }, + { + "style": "List", + "text": "Bittrex Test Status" + }, + { + "style": "List", + "text": "CoinbasePro Test Status" + }, + { + "style": "List", + "text": "FTX Test Status", + "updated": 1615203669878 + }, + { + "style": "List", + "text": "Kraken Test Status", + "updated": 1615453046113 + }, + { + "style": "List", + "text": "Kucoin Test Status" + }, + { + "style": "List", + "text": "Luno Test Status" + }, + { + "style": "Title", + "text": "Crypto Exchange Configuration" + }, + { + "style": "Text", + "text": "Each exchange may require a very specific configuration. This is determined during the exchange testing process. Consult the page of each exchange as listed above. If you are interested in testing a new exchange, go to the How to Test New Exchanges page.", + "updated": 1615201685376 }, { "style": "Subtitle", diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/github-api.json b/Projects/Superalgos/Schemas/Docs-Nodes/github-api.json new file mode 100644 index 000000000..ca0ae9cb7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Nodes/github-api.json @@ -0,0 +1,12 @@ +{ + "type": "Github API", + "definition": { + "text": "Write the definition for this Node." + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and select the pencil button to enter edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/manage-stage.json b/Projects/Superalgos/Schemas/Docs-Nodes/manage-stage.json index 6d483c564..73f706b72 100644 --- a/Projects/Superalgos/Schemas/Docs-Nodes/manage-stage.json +++ b/Projects/Superalgos/Schemas/Docs-Nodes/manage-stage.json @@ -8,6 +8,34 @@ "style": "Block", "text": "Content" }, + { + "style": "Title", + "text": "Optionality", + "updated": 1615101510181 + }, + { + "style": "Note", + "text": "This Stage is optional. That means that if you do not want to deal with Stop Loss or Take Profits at your strategy, you can just delete this node and everything will continue working just fine. If you do remove this node, what will happen at runtime is that as soon as the position is triggered, the system will detect that that the Manage Stage is undefined, and it will jump it by opening the Close Stage (if it exists, because it is also optional)" + }, + { + "style": "Text", + "text": "This is how optionality looks like at the code:", + "updated": 1615101627343 + }, + { + "style": "Javascript", + "text": "/* Opening Status Procedure */\nif (tradingEngine.tradingCurrent.strategyManageStage.status.value === 'Opening') {\n /*\n The system allows the user not to define a Manage Stage, because the Manage Stage is optional.\n Here we are going to see if that is the case and if it is, we will inmidiatelly consider \n the Manage Stage as closed.\n */\n if (tradingSystem.tradingStrategies[tradingEngine.tradingCurrent.strategy.index.value].manageStage === undefined) {\n changeStageStatus('Manage Stage', 'Closed', 'Manage Stage Undefined')\n changeStageStatus('Close Stage', 'Opening')\n return\n }\n\n /* Now we switch to the Open status. */\n changeStageStatus('Manage Stage', 'Open')\n}", + "updated": 1615101667889 + }, + { + "style": "Success", + "text": "If both the Manage Stage and the Close Stage are undefined, what will happen is that whenever the Open Stage gets closed, you will exit the position.", + "updated": 1615103161873 + }, + { + "style": "Title", + "text": "Manage Stage Concept" + }, { "style": "Text", "text": "The first and foremost rule of trading is to preserve capital and its main goal is to increase it." diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/open-stage.json b/Projects/Superalgos/Schemas/Docs-Nodes/open-stage.json index 04e0032d5..74b4a3000 100644 --- a/Projects/Superalgos/Schemas/Docs-Nodes/open-stage.json +++ b/Projects/Superalgos/Schemas/Docs-Nodes/open-stage.json @@ -35,6 +35,11 @@ { "style": "List", "text": "the take profit or stop loss targets are hit." + }, + { + "style": "Include", + "text": "Superalgos->Topic->Why My Stage is not Closing?->The Stage Does Not Close", + "updated": 1615054619090 } ] } \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/size-filled.json b/Projects/Superalgos/Schemas/Docs-Nodes/size-filled.json index f819b575f..3b639832d 100644 --- a/Projects/Superalgos/Schemas/Docs-Nodes/size-filled.json +++ b/Projects/Superalgos/Schemas/Docs-Nodes/size-filled.json @@ -1,7 +1,8 @@ { "type": "Size Filled", "definition": { - "text": "Size filled is the amount of the order that has been filled at the exchange." + "text": "Size filled is the amount of the order that has been filled at the exchange. It can also represent the cumulative Size Filled of the Open or Close Stages.", + "updated": 1615100388371 }, "paragraphs": [ { diff --git a/Projects/Superalgos/Schemas/Docs-Nodes/space-settings.json b/Projects/Superalgos/Schemas/Docs-Nodes/space-settings.json index 163254323..704cea2c2 100644 --- a/Projects/Superalgos/Schemas/Docs-Nodes/space-settings.json +++ b/Projects/Superalgos/Schemas/Docs-Nodes/space-settings.json @@ -55,6 +55,10 @@ { "style": "List", "text": "physics determines wether the environment is static (false) or dynamic (true). When physics is set to true, nodes in the design space are affected by th gravitational pull and repulsion of other nodes." + }, + { + "style": "List", + "text": "detachUsingMouse defines if you can detach nodes from it's parent or reference parents only using the mouse (when true) or if you can not use the mouse for that and can only do it using the detach buttons on the icon's menu (when false)." } ] } \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/app-commands-001-app-contribute-command.json b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-001-app-contribute-command.json index c8b92efe2..0d8e372c7 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/app-commands-001-app-contribute-command.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-001-app-contribute-command.json @@ -7,15 +7,36 @@ "updated": 1610909304702 }, "paragraphs": [ + { + "style": "Text", + "text": "This command will send all the changes you have made both at Docs pages but also at any file within the Superalgos Repository to your fork at Github.com and from there to the main Superalgos Repository. It will do it specifically from the Current Branch to the Contributions Branch mentioned at the footer of this page. ", + "updated": 1615288848213 + }, + { + "style": "Important", + "text": "Contributions in most cases needs to come from the develop branch to the develop branch unless you have previously agreed with team members that you will send a contribution from master to master." + }, + { + "style": "Text", + "text": "Master is our stable branch and it is very unlikely that we are going to merge contributions there. Instead all contributions are expected to go to the develop branch, where there are many users testing that branch every day, and the contribution will reach the master branch at the next relrease.", + "updated": 1615288915134 + }, + { + "style": "Note", + "text": "It is also very unlikely that contributions coming from the master branch will be merged into the develop branch, since that can usually lead to merging conflicts. " + }, + { + "style": "Text", + "text": "So be sure that your Current Branch is develop and the Contribution Branch is develop before submitting your contribution. " + }, { "style": "Title", - "text": "Syntax", - "updated": 1609943337280 + "text": "Syntax" }, { "style": "Javascript", - "text": "docs.contribute Message", - "updated": 1609943744230 + "text": "app.contribute [Message]", + "updated": 1615461375106 }, { "style": "Title", @@ -33,8 +54,8 @@ }, { "style": "Javascript", - "text": "docs.contribute Fixed typo.", - "updated": 1610742512175 + "text": "app.contribute Fixed typo.", + "updated": 1615461382913 }, { "style": "Title", diff --git a/Projects/Superalgos/Schemas/Docs-Topics/app-commands-002-app-update-command.json b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-002-app-update-command.json index 58aae238a..6d2b2ae00 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/app-commands-002-app-update-command.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-002-app-update-command.json @@ -14,8 +14,8 @@ }, { "style": "Json", - "text": "docs.update", - "updated": 1610710006400 + "text": "app.update", + "updated": 1615612258411 }, { "style": "Title", diff --git a/Projects/Superalgos/Schemas/Docs-Topics/app-commands-messages-004-app-message-update-done-new-version-found.json b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-messages-004-app-message-update-done-new-version-found.json index 22209e9f7..a8f338a12 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/app-commands-messages-004-app-message-update-done-new-version-found.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-messages-004-app-message-update-done-new-version-found.json @@ -9,33 +9,37 @@ { "language": "ID", "text": "Proses pembaruan berhasil dilaksanakan. Versi terbaru Superalgos telah selesai diunduh dan mengganti versi yang sekarang. Agar perubahan diterapkan dengan baik, anda harus memulai ulang Client ini dan merefresh halaman UI ini.", - "updated": 1613891855110 + "updated": 1613891855110, + "style": "Definition" } ] }, "paragraphs": [ { "style": "Success", - "text": "You now have the latest version of Superalgos. Just remeber to restart the Client and the UI. If you have Tasks running, you should first stop the tasks, and then restart the Client, so that you can run those task again using the updated codebase.", - "updated": 1611160648343, + "text": "You now have the latest version of Superalgos. Just remember to restart the Client and the UI. If you have Tasks running, you should first stop the tasks, and then restart the Client, so that you can run those task again using the updated codebase.", + "updated": 1615458633005, "translations": [ { "language": "ID", "text": "Sekarang anda memiliki Superalgos versi terbaru. Perlu diingat untuk selalu memulai ulang Client dan UI. Jika memiliki Task yang berjalan, maka anda harus menghentikan Task tersebut terlebih dahulu, lalu memulai ulang Client, sehingga anda dapat menjalankan Task tersebut lagi menggunakan codebase yang terupdate.", - "updated": 1613892095568 + "updated": 1613892095568, + "style": "Success" } ] }, { "style": "Note", - "text": "The update you made, only afffects the Client which you are connected to via http using your browser. If you have more Clients running as part of a Network, you will need to update them too, etither manually using Git or by navigating with your browser to their URL and doing running the App Update Command there.", + "text": "The update you made, only affects the Client which you are connected to via http using your browser. If you have more Clients running as part of a Network, you will need to update them too, etither manually using Git or by navigating with your browser to their URL and doing running the App Update Command there.", "translations": [ { "language": "ID", "text": "Pembaruan yang Anda buat, hanya mempengaruhi Client yang terhubung melalui http menggunakan browser ini. Jika Anda memiliki lebih banyak Client yang berjalan sebagai bagian dari Network, anda juga perlu memperbaruinya, baik secara manual menggunakan Git atau dengan menavigasikan browser anda ke URL tujuan dan menjalankan App Update Command di sana.", - "updated": 1613892300538 + "updated": 1613892300538, + "style": "Note" } - ] + ], + "updated": 1615458652244 } ] } \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/app-commands-messages-005-app-message-update-done-already-up-to-date.json b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-messages-005-app-message-update-done-already-up-to-date.json index 85c72857c..b310587fe 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/app-commands-messages-005-app-message-update-done-already-up-to-date.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/app-commands-messages-005-app-message-update-done-already-up-to-date.json @@ -3,13 +3,14 @@ "pageNumber": "5", "type": "App Message - Update Done - Already Up-To-Date", "definition": { - "text": "The update process run successfully but no changes where made since your installation is up-to-date with the current branch. No further action required.", - "updated": 1611128829429, + "text": "The update process run successfully but no changes were made since your installation is up-to-date with the current branch. No further action required.", + "updated": 1615458687718, "translations": [ { "language": "ID", "text": "Proses pembaruan berjalan dengan lancar namun tidak ada perubahan yang terjadi karena versi Superalgos anda sudah diversi paling baru dengan cabang saat ini. Tidak perlu tindakan lebih lanjut.", - "updated": 1613892507215 + "updated": 1613892507215, + "style": "Definition" } ] }, @@ -22,7 +23,8 @@ { "language": "ID", "text": "Anda sudah diversi paling up-to-date. Tidak perlu me-reboot Client atau merefresh halaman UI ini.", - "updated": 1613892633200 + "updated": 1613892633200, + "style": "Success" } ] } diff --git a/Projects/Superalgos/Schemas/Docs-Topics/contributing-to-superalgos-002-how-to-contribute-icons.json b/Projects/Superalgos/Schemas/Docs-Topics/contributing-to-superalgos-002-how-to-contribute-icons.json index 51f9cff94..c03848649 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/contributing-to-superalgos-002-how-to-contribute-icons.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/contributing-to-superalgos-002-how-to-contribute-icons.json @@ -444,8 +444,13 @@ }, { "style": "Text", - "text": "In the case of the Superalgos project, SVG source files are organized in subfolders, as follows:", - "updated": 1613730944769 + "text": "In the case of the Superalgos project, SVG source files are organized in subfolders, under the following directory:", + "updated": 1614854522604 + }, + { + "style": "Json", + "text": "\\Projects\\Superalgos\\Icons-SVG-Sources\\", + "updated": 1614854467481 }, { "style": "Table", @@ -478,7 +483,32 @@ }, { "style": "Text", - "text": "Files inherit the name of the node, asset, exchange, or whatever the icon represents, and are named in lower case, each word separated by a hyphen, and with a lower-case extension. For example, the PNG file for the Initial Take Profit node is initial-take-profit.png." + "text": "Files inherit the name of the node, asset, exchange, or whatever the icon represents, and are named in lower case, each word separated by a hyphen, and with a lower-case extension. ", + "updated": 1615462236475 + }, + { + "style": "Text", + "text": "For example:", + "updated": 1615462266490 + }, + { + "style": "List", + "text": "In the case of nodes, the PNG file for the Managed Take Profit node is managed-take-profit.png", + "updated": 1615462396196 + }, + { + "style": "List", + "text": "In the case of assets, the name of the file must is the literal name of the asset. For instance, for Bitcoin, it is bitcoin.png; for Tether it is tether.png; and so on...", + "updated": 1615462488610 + }, + { + "style": "List", + "text": "In the case of an exchange, again, the literal name of the exchange is used, as it is listed in the CCXT library. for instance, Binance is binance.png.", + "updated": 1615462532995 + }, + { + "style": "Text", + "text": "" } ] } \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/contributing-to-superalgos-003-how-to-contribute-to-the-docs.json b/Projects/Superalgos/Schemas/Docs-Topics/contributing-to-superalgos-003-how-to-contribute-to-the-docs.json index 5b277022f..90c57c786 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/contributing-to-superalgos-003-how-to-contribute-to-the-docs.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/contributing-to-superalgos-003-how-to-contribute-to-the-docs.json @@ -19,7 +19,8 @@ }, { "style": "Link", - "text": "Docs Group->https://t.me/superalgosdocs" + "text": "Docs Group->t.me/superalgosdocs", + "updated": 1615385427537 }, { "style": "Text", diff --git a/Projects/Superalgos/Schemas/Docs-Topics/design-space-003-nodes-menu.json b/Projects/Superalgos/Schemas/Docs-Topics/design-space-003-nodes-menu.json index 88a3880a3..69a49d1b6 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/design-space-003-nodes-menu.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/design-space-003-nodes-menu.json @@ -18,15 +18,8 @@ }, { "style": "Text", - "text": "The design space functions under the paradigm of a self-organizing workspace in which nodes tend to find their place guided by certain laws of physics, and constrained by their chain relationships." - }, - { - "style": "Text", - "text": "This self-organizing paradigm saves users the effort of maintaining the arrangement of nodes in a logical manner, in particular when manipulating or creating new nodes." - }, - { - "style": "Text", - "text": "However, there will be times in which you will want to override this self-organizing nature. The following menu options are tools that will help you manipulate the arrangement of nodes, overriding the physics that affect their floating nature." + "text": "The design space functions under the paradigm of a self-organizing workspace in which nodes tend to find their place guided by certain arrangement properties that you may control from the node's menu.", + "updated": 1615313209746 }, { "style": "Subtitle", @@ -134,10 +127,25 @@ "updated": 1610041765847 }, { - "style": "Subtitle", + "style": "Anchor", "text": "Arrangement Style", "updated": 1610041884085 }, + { + "style": "Subtitle", + "text": "Arrangement Style", + "updated": 1615491355364 + }, + { + "style": "Text", + "text": "The following options affect how a node is arranged around or in relation to its parent.", + "updated": 1615491622552 + }, + { + "style": "Important", + "text": "The current implementation of this feature is not optimal, and the behavior of some of these options is hard to predict. If you are a developer, this may be a good opportunity to iterate on the existing code and take this feature to a more usable state.", + "updated": 1615491609266 + }, { "style": "Include", "text": "Superalgos->Concept->Set Node Arrangement to Concave->Definition", diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-007-docs-repaginate-command.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-007-docs-repaginate-command.json index cd39f3f69..4a2a03152 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-007-docs-repaginate-command.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-commands-007-docs-repaginate-command.json @@ -39,6 +39,23 @@ { "style": "Javascript", "text": "docs.repaginate Topic from Superalgos: Docs Commands" + }, + { + "style": "Title", + "text": "Usage" + }, + { + "style": "Text", + "text": "After you repaginate a Topic or Tutorial, the best way to proceed it to manually delete from disk all the files associated with that Topic / Tutorial. After you delete them, you execute the repaginate command and then the docs.save command. " + }, + { + "style": "Text", + "text": "The repagination flags all of the files of that Topic / Tutorial as changed, so you don't need to worry about the deleted files since they will be all recreated.", + "updated": 1614942454596 + }, + { + "style": "Text", + "text": "After repagination, reload the UI to get into memory only the repaginated version." } ] } \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-021-docs-anchor-style.json b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-021-docs-anchor-style.json index a9cbe9e33..9a41f82cc 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-021-docs-anchor-style.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/docs-paragraph-styles-021-docs-anchor-style.json @@ -3,8 +3,8 @@ "pageNumber": 21, "type": "Docs Anchor Style", "definition": { - "text": "Amchor paragraphs are used together with the Docs Goto Command. When you want to generate a Docs Link to an specific part of a Docs Page, you first need to create an Anchor paragraph in order to be able to create the link to that part of the page.", - "updated": 1609258745310 + "text": "Anchor paragraphs are used together with the Docs Goto Command. When you want to generate a Docs Link to an specific part of a Docs Page, you first need to create an Anchor paragraph in order to be able to create the link to that part of the page.", + "updated": 1615591597546 }, "paragraphs": [ { diff --git a/Projects/Superalgos/Schemas/Docs-Topics/frequently-asked-questions-001-why-my-stage-is-not-closing.json b/Projects/Superalgos/Schemas/Docs-Topics/frequently-asked-questions-001-why-my-stage-is-not-closing.json new file mode 100644 index 000000000..35469e22c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/frequently-asked-questions-001-why-my-stage-is-not-closing.json @@ -0,0 +1,76 @@ +{ + "topic": "Frequently Asked Questions", + "pageNumber": 1, + "type": "Why My Stage is not Closing?", + "definition": { + "text": "One of the most common questions asked by users is why the open or close stage are not closing after the order was filled.", + "updated": 1615100269026 + }, + "paragraphs": [ + { + "style": "Note", + "text": "The shot answer is becasue the Stage Size Filled did not reach the value of the Stage Target Size.", + "updated": 1615100332173 + }, + { + "style": "Text", + "text": "There are many reason why this can happen, but they all have to do with syncronization between the system and the exchange, and dust getting accumulated in decimal places.", + "updated": 1615053796132 + }, + { + "style": "Block", + "text": "The Stage Does Not Close", + "updated": 1615054499809 + }, + { + "style": "Subtitle", + "text": "The Stage Does Not Close" + }, + { + "style": "Text", + "text": "One common issue users have while dealing with stages is that they do not get closed after their orders get filled. This usually happens because there are several adjustments on rate that happens during trading, specially during live trading. The reason a Stage does not get closed automatically is because the total filled for the whole stage is not close enough to the Stage Target Size defined by users. In order to avoid this situation there are three configurations at the Stage node you can use:", + "updated": 1615053929853 + }, + { + "style": "List", + "text": "ROUNDING_ERROR_CORRECTION_FACTOR : is a configurable factor that can be applied to the stage filled at runtime in order to force it to reach the Stage Target Size. The default value for this factor is:" + }, + { + "style": "Javascript", + "text": "ROUNDING_ERROR_CORRECTION_FACTOR = 1.001", + "updated": 1615053956943 + }, + { + "style": "Text", + "text": "This value is overwritten by whatever users config at the Stage node under the roundingErrorCorrectionFactor property." + }, + { + "style": "Text", + "text": "A value of 1.01 would mean that when the Filled amount is at 1% distance from the Stage Target, the stage will be closed." + }, + { + "style": "List", + "text": "ABSOLUTE_DUST_IN_BASE_ASSET: is a numeric value that represents the distance that you allow to be between the Size Filled and the Target Side for a stage, measured in Base Asset. It's default value is Zero and you can define it at the config of a Stage node using the absoluteDustInBaseAsset property.", + "updated": 1615054114048 + }, + { + "style": "List", + "text": "ABSOLUTE_DUST_IN_QUOTED_ASSET: is a numeric value that represents the distance that you allow to be between the Size Filled and the Target Side for a stage, measured in Base Asset. It's default value is Zero and you can define it at the config of a Stage node using the absoluteDustInQuotedAsset property.", + "updated": 1615054151393 + }, + { + "style": "Subtitle", + "text": "Implementation", + "updated": 1615054281409 + }, + { + "style": "Text", + "text": "Here you can see how these parameters are implemented in the Low Frequency Trading Bot code:" + }, + { + "style": "Javascript", + "text": " if (\n tradingEngineStage.stageBaseAsset.sizeFilled.value\n *\n ROUNDING_ERROR_CORRECTION_FACTOR\n +\n ABSOLUTE_DUST_IN_BASE_ASSET\n >=\n tradingEngineStage.stageBaseAsset.targetSize.value\n ) {\n positionFilled()\n } else if (\n tradingEngineStage.stageQuotedAsset.sizeFilled.value\n *\n ROUNDING_ERROR_CORRECTION_FACTOR\n +\n ABSOLUTE_DUST_IN_QUOTED_ASSET\n >=\n tradingEngineStage.stageQuotedAsset.targetSize.value\n ) {\n positionFilled()\n } else {\n checkCloseStageEvent(tradingSystemStage)\n }", + "updated": 1615296774086 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/how-to-001-detach-and-attach-nodes.json b/Projects/Superalgos/Schemas/Docs-Topics/how-to-001-detach-and-attach-nodes.json index 2979bf659..d684849c5 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/how-to-001-detach-and-attach-nodes.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/how-to-001-detach-and-attach-nodes.json @@ -3,8 +3,8 @@ "pageNumber": "1", "type": "Detach and Attach Nodes", "definition": { - "text": "To detach a node, click on the detach button on the node's menu. To attach a node, right-click it and drag it closer to the node you wish to attach it to. Release the right-click when the target node is highlighted.", - "updated": 1609948586650 + "text": "To detach a node, click on the detach button on the node's menu. To attach a node, right-click the node and drag it closer to the node you wish to attach it to. Release the right-click when the target node is highlighted.", + "updated": 1615545397469 }, "paragraphs": [ { diff --git a/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-001-automating-actions-what-is-an-action.json b/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-001-automating-actions-what-is-an-action.json index 4d2d4b579..6c6a36c89 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-001-automating-actions-what-is-an-action.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-001-automating-actions-what-is-an-action.json @@ -1,36 +1,50 @@ { "topic": "How to Automate Actions at The Design Space", - "pageNumber": "1", + "pageNumber": 1, "type": "Automating Actions - What is an Action?", "definition": { - "text": "An Action is what is executed when users picks something from the menu of a Node.", - "updated": 1614788525702 + "text": "An Action is what is executed when users picks something from the menu of a Node. ", + "updated": 1614941717428 }, "paragraphs": [ + { + "style": "Title", + "text": "Why a New Action", + "updated": 1614939785554 + }, { "style": "Text", - "text": "These actions are implemented as functions inside a Function Library. So the basic workflow to implement a new action is the following:", - "updated": 1614788734425 + "text": "Maybe you realized that you are doing repetitive actions at the Design Space and you can benefit from automating them. If your actions are constrained to manipulating the nodes at the workspace, by either creating new nodes, deleting existing ones, changing nodes configs, establishing references or some other similar stuff, then you might be able to create an Action function that can automate all this. This will allow you to stop doing those repetitive tasks youself and the ones that will come after you if you contribute these changes to the project.", + "updated": 1614940379811 + }, + { + "style": "Title", + "text": "Workflow" + }, + { + "style": "Text", + "text": "New Actions are implemented as functions inside a Function Library. So the basic workflow to implement a new Action is the following:", + "updated": 1614940407806 }, { "style": "List", - "text": "Add Menu Item: First you need to add a Menu Item for the node type that will allow the user to execute your action.", - "updated": 1614790023220 + "text": "Add a Menu Item: First you need to add a Menu Item to the node type that will allow the user to execute your action.", + "updated": 1614940496055 }, { "style": "List", - "text": "Locate Function Library: Then you will need to locate the Function Library that is better suited to host the function that is going to be executed once the action is triggered.", - "updated": 1614790037292 + "text": "Locate a Function Library: Then you will need to locate the Function Library that is better suited to host the function that is going to be executed once the action is triggered.", + "updated": 1614926393154 }, { "style": "List", - "text": "Add your Code: Then you will write the code for that function.", - "updated": 1614790047291 + "text": "Add your Code: Then you will need to write the code for that function.", + "updated": 1614940528253 }, { "style": "List", - "text": "Connect Menu Item to your Code: Finally you will connect the Menu Item to that function.", - "updated": 1614790060302 + "text": "Connect Menu Item to your Code: Finally you will connect the Menu Item to that function you wrote.", + "updated": 1614940545908 } ] } \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-002-automating-actions-adding-a-menu-item.json b/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-002-automating-actions-adding-a-menu-item.json index 54b777150..ab80d8dd5 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-002-automating-actions-adding-a-menu-item.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-002-automating-actions-adding-a-menu-item.json @@ -1,26 +1,39 @@ { "topic": "How to Automate Actions at The Design Space", - "pageNumber": "2", + "pageNumber": 2, "type": "Automating Actions - Adding a Menu Item", "definition": { - "text": "You need to add a new Menu Item at the node definition at the App Schema.", - "updated": 1614788860135 + "text": "You need to add a new Menu Item at the node definition at the App Schema. ", + "updated": 1614941725823 }, "paragraphs": [ + { + "style": "Title", + "text": "Locate App Schema", + "updated": 1614927344633 + }, { "style": "Text", - "text": "Check out the page of the App Schema concept. After that, locate the App Schema file of the Projects folder. There is one App Schema file for Project, pick the right one and edit it with VS Code.", - "updated": 1614788974626 + "text": "Check out the page of the App Schema concept. After that, locate the App Schema file you will need to edit at the Projects folder. There is one App Schema file for Project, pick the right one and edit it with VS Code." }, { "style": "Warning", - "text": "Be carefull not to damage anything in there while editing. You will get into trouble if you do so. It can not only produce the UI not to load, but it can also damage the workspace you are working at.", - "updated": 1614789073656 + "text": "Be carefull not to damage anything in the App Schema file while editing it. You will get into trouble if you do so. It can not only produce the UI not to load, but it can also damage the workspace you are working at.", + "updated": 1614940590024 + }, + { + "style": "Success", + "text": "If you are not sure which project a certain node belongs to, there is a trick to find it out: close the Docs tab, and make focus on the node you want to add an Action to. While on focus, use Ctrl + Shift + Alt + F12 to log in the browser console the Node object. Inspect it to see the project property. Most likely it will be a Superalgos project's node.", + "updated": 1614940654950 + }, + { + "style": "Title", + "text": "Add Menu Item", + "updated": 1614927443573 }, { "style": "Text", - "text": "Locate inside the file, the definition of the Node Type you want to add the new Action to. Once localted add a menu item object to the menuItems array, like in the following example:", - "updated": 1614789152442 + "text": "Locate inside the file, the definition of the Node Type you want to add the new Action to. Once localted add a menu item object to the menuItems array, like in the following example:" }, { "style": "Json", @@ -29,12 +42,13 @@ }, { "style": "Text", - "text": "The example above is most likely what you need to add. For completeness, this is the list of properties this object can have:", - "updated": 1614789977840 + "text": "The example above is most likely what you need to add, except that you will need to type the right values for each of those 4 properties. For completeness, this is the list of properties this object can have:", + "updated": 1614940732785 }, { "style": "List", - "text": "action: define a name for your action. Capitalize each first letter please." + "text": "action: define a name for your action. Capitalize each first letter please. This won't be seen by users.", + "updated": 1614927479016 }, { "style": "List", @@ -42,19 +56,23 @@ }, { "style": "List", - "text": "label: this is what is going to be read by the user at the Node's menu." + "text": "label: this is what is going to be read by users at the Node's menu.", + "updated": 1614927503634 }, { "style": "List", - "text": "relatedUiObject: optional. You can define here a Node Type. The system will use for the Menu Item icon, the image associated to the Node Type you define here." + "text": "relatedUiObject: optional. You can define here a Node Type. The system will use for the Menu Item icon the image associated to the Node Type you define here.", + "updated": 1614927562326 }, { "style": "List", - "text": "askConfirmation: true if you want the user to confirm with an extra click." + "text": "askConfirmation: true if you want users to confirm with an extra click.", + "updated": 1614927580831 }, { "style": "List", - "text": "confirmationLabel: the text the user will read when asked to confirm." + "text": "confirmationLabel: the text users will read when asked to confirm.", + "updated": 1614927596195 }, { "style": "List", diff --git a/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-003-automating-actions-locating-the-right-function-library.json b/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-003-automating-actions-locating-the-right-function-library.json new file mode 100644 index 000000000..86e1ce316 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-003-automating-actions-locating-the-right-function-library.json @@ -0,0 +1,47 @@ +{ + "topic": "How to Automate Actions at The Design Space", + "pageNumber": 3, + "type": "Automating Actions - Locating the Right Function Library", + "definition": { + "text": "Actions are packed inside Function Libraries. Most likely there is a Function Library already created that is related to the Action you want to create. ", + "updated": 1614941736977 + }, + "paragraphs": [ + { + "style": "Text", + "text": "The procedure to locate a suitable Function Library is very easy. Open the Projects folder, getting into the Project the Node where the action is going to be triggered at is defined. Inside that project Folder get into the UI folder and then into Function-Libraries folder.", + "updated": 1614940833232 + }, + { + "style": "Note", + "text": "Each file in there is a Function Library except for the one called ActionSwitch.js, which is the place where you connect the Action Function name you defined at the App Schema with the function that will host the code for the new Action.", + "updated": 1614928708817 + }, + { + "style": "Text", + "text": "Inspect each of these files and see at their header the functions they already implement. After a quick scan over all of them you can decide which one is where your action belongs to. If you believe that your Action should be placed at a new Function Library, then you can try to add a new one and set it up at the Project Schema file, but that is out of the scope of this guide.", + "updated": 1614928780531 + }, + { + "style": "Title", + "text": "Good Examples", + "updated": 1614929743894 + }, + { + "style": "Text", + "text": "Take a look at these Function Libraries that represent Hierarchies, because most likely your node belongs to a Hierarchy that already has a Function Library associated with it." + }, + { + "style": "List", + "text": "ChartingSpaceFunctions" + }, + { + "style": "List", + "text": "CryptoEcosystemFunctions" + }, + { + "style": "List", + "text": "PluginsFunctions" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-004-automating-actions-adding-your-function.json b/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-004-automating-actions-adding-your-function.json new file mode 100644 index 000000000..00bfbed75 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-004-automating-actions-adding-your-function.json @@ -0,0 +1,51 @@ +{ + "topic": "How to Automate Actions at The Design Space", + "pageNumber": 4, + "type": "Automating Actions - Adding your Function", + "definition": { + "text": "Take a look at how other functions are implemented in the Function Library and try to follow that way.", + "updated": 1614941850917 + }, + "paragraphs": [ + { + "style": "Text", + "text": "The basic procedure is quite straight forward. First add the function name to the thisObject and the write you function at the most appropiate place at the Function Library. ", + "updated": 1614941084806 + }, + { + "style": "Important", + "text": "Please document your function the best you can, even if you see the other functions implemented at the same library poorly documented. See if you can make your function the best documented in the whole library." + }, + { + "style": "Title", + "text": "Example of thisObject" + }, + { + "style": "Javascript", + "text": " thisObject = {\n addMissingExchanges: addMissingExchanges,\n addMissingAssets: addMissingAssets,\n addMissingMarkets: addMissingMarkets,\n installMarket: installMarket,\n uninstallMarket: uninstallMarket\n }", + "updated": 1614929327521 + }, + { + "style": "Title", + "text": "Function Parameters" + }, + { + "style": "Text", + "text": "Your function will receive some parameters, including the Node object that hosted the Menu Item that triggered your Action. The exact list of parameters will be defined by yourself later at the step Automating Actions - Adding an Action Switch Case. Here is a short list of the most common parameters you might later include:", + "updated": 1614931548904 + }, + { + "style": "List", + "text": "node: the node object that hosted the Menu Item that triggered your Action" + }, + { + "style": "List", + "text": "rootNodes: An array of nodes that are floating at the Design Space without parents. This includes all hierarchy heads.", + "updated": 1614931639516 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-005-automating-actions-adding-your-function.json b/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-005-automating-actions-adding-your-function.json deleted file mode 100644 index e439e848e..000000000 --- a/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-005-automating-actions-adding-your-function.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "topic": "How to Automate Actions at The Design Space", - "pageNumber": "5", - "type": "Automating Actions - Adding your Function", - "definition": { - "text": "Write a summary for this topic page." - }, - "paragraphs": [ - { - "style": "Text", - "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode. Then you can use doscs.save to save your changes and app.contribute to send it to the main repository." - } - ] -} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-005-automating-actions-using-utilities.json b/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-005-automating-actions-using-utilities.json new file mode 100644 index 000000000..a8f8eacd7 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-005-automating-actions-using-utilities.json @@ -0,0 +1,66 @@ +{ + "topic": "How to Automate Actions at The Design Space", + "pageNumber": 5, + "type": "Automating Actions - Using Utilities", + "definition": { + "text": "Lower level functionality is packed in Utilities files by topic. There are already many utilities files with operations that will save you time while trying to implement your own Action. ", + "updated": 1614941756401 + }, + "paragraphs": [ + { + "style": "Text", + "text": "It is a very good idea to invest some time at the Utilities folder, scaning the files in there to see what you already have available to use at your actions. You will see that other actions in Function Libraries heavily rely on utilities functions defined at one of the files at the Utilities folder.", + "updated": 1614930012933 + }, + { + "style": "Title", + "text": "How to Call an Utility Function?", + "updated": 1614942924609 + }, + { + "style": "Text", + "text": "At runtime, all utility objects will be already instantiated by the time your Action function code runs. You just need to get to the object that host the utility funtion you want to execute via the UI Global Object that is available to you. For exmaple:" + }, + { + "style": "Javascript", + "text": "let allLayers = UI.projects.superalgos.utilities.branches.nodeBranchToArray(botLayers, 'Layer')", + "updated": 1614930217705 + }, + { + "style": "Text", + "text": "The way to find out which is the property name of a certain utility object is by reading the definitions at the Project Schema File. The utility object hosting the nodeBranchToArray function used in the example above, is defined at the Project Schema File in this way:", + "updated": 1614943148547 + }, + { + "style": "Json", + "text": "{\n \"name\": \"Branches\",\n \"propertyName\": \"branches\",\n \"functionName\": \"newSuperalgosUtilitiesBranches\"\n }", + "updated": 1614930415663 + }, + { + "style": "Text", + "text": "The propertyName is what you need to know in order to get to the runtime reference of the utility object and execute it's functions.", + "updated": 1614930462629 + }, + { + "style": "Title", + "text": "Example: Change a Node's Config", + "updated": 1614943976780 + }, + { + "style": "Text", + "text": "This is the way you programatically manipulate the config of a Node:" + }, + { + "style": "Javascript", + "text": "UI.projects.superalgos.utilities.nodeConfig.savePropertyAtNodeConfig(node.payload,'showPanels', true)" + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-006-automating-actions-using-function-libraries.json b/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-006-automating-actions-using-function-libraries.json new file mode 100644 index 000000000..98bed0b6a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-006-automating-actions-using-function-libraries.json @@ -0,0 +1,115 @@ +{ + "topic": "How to Automate Actions at The Design Space", + "pageNumber": 6, + "type": "Automating Actions - Using Function Libraries", + "definition": { + "text": "You might also as well other functions located at Function Libraries from within your Action Function. In order to do this, you just need to locate the instance of the Function Library Object and call any of it's functions.", + "updated": 1614942828678 + }, + "paragraphs": [ + { + "style": "Text", + "text": "It is a very good idea to invest some time at the Function-Libraries folder, scaning the files in there to see what you already have available to use at your actions. You will see that other actions in Function Libraries heavily rely on functions defined at one of the files at the Function-Libraries folder.", + "updated": 1614942900881 + }, + { + "style": "Title", + "text": "How to Call an Function Library Function?", + "updated": 1614942916741 + }, + { + "style": "Text", + "text": "At runtime, all Funtion Library objects will be already instantiated by the time your Action function code runs. You just need to get to the object that host the Function Library funtion you want to execute via the UI Global Object that is available to you. For exmaple:", + "updated": 1614942976608 + }, + { + "style": "Javascript", + "text": "UI.projects.superalgos.functionLibraries.dataStorageFunctions.createSessionReference(marketLearningProducts, session, 'Learning Session Reference')", + "updated": 1614943049167 + }, + { + "style": "Text", + "text": "The way to find out which is the property name of a certain Function Library object is by reading the definitions at the Project Schema File. The Function Library object hosting the createSessionReference function used in the example above, is defined at the Project Schema File in this way:", + "updated": 1614943202556 + }, + { + "style": "Json", + "text": "{\n \"name\": \"Data Storage Functions\",\n \"propertyName\": \"dataStorageFunctions\",\n \"functionName\": \"newSuperalgosFunctionLibraryDataStorageFunctions\"\n }", + "updated": 1614943237559 + }, + { + "style": "Text", + "text": "The propertyName is what you need to know in order to get to the runtime reference of the Function Library object and execute it's functions.", + "updated": 1614943257490 + }, + { + "style": "Title", + "text": "Popular Functions" + }, + { + "style": "Text", + "text": "At your own Action Function you might likely need to execute these functions, belonging to popular actions done at Action Functions:", + "updated": 1614943932540 + }, + { + "style": "Subtitle", + "text": "Add a New Node" + }, + { + "style": "Text", + "text": "The following is an example on how to add a new children to an existing Node:" + }, + { + "style": "Javascript", + "text": "dataStorage = UI.projects.superalgos.functionLibraries.uiObjectsFromNodes.addUIObject(networkNode, 'Data Storage')", + "updated": 1614943544233 + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Subtitle", + "text": "Delete an Existing Node" + }, + { + "style": "Text", + "text": "This is an example on how to Delete an existing Node:" + }, + { + "style": "Javascript", + "text": "UI.projects.superalgos.functionLibraries.nodeDeleter.deleteUIObject(projectReference, rootNodes)", + "updated": 1614943594904 + }, + { + "style": "Subtitle", + "text": "Establish a Reference Parent" + }, + { + "style": "Text", + "text": "Example of how to set the Reference Parent of a Node (in this case no Function Library is needed):", + "updated": 1614944033214 + }, + { + "style": "Javascript", + "text": "node.payload.referenceParent = baseAsset\n", + "updated": 1614943688069 + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-006-automating-actions-using-utilities.json b/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-006-automating-actions-using-utilities.json deleted file mode 100644 index b8e3ad2fe..000000000 --- a/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-006-automating-actions-using-utilities.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "topic": "How to Automate Actions at The Design Space", - "pageNumber": "6", - "type": "Automating Actions - Using Utilities", - "definition": { - "text": "Write a summary for this topic page." - }, - "paragraphs": [ - { - "style": "Text", - "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode. Then you can use doscs.save to save your changes and app.contribute to send it to the main repository." - } - ] -} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-007-automating-actions-using-the-workspace.json b/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-007-automating-actions-using-the-workspace.json index 11df71a41..a677af341 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-007-automating-actions-using-the-workspace.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-007-automating-actions-using-the-workspace.json @@ -1,14 +1,66 @@ { "topic": "How to Automate Actions at The Design Space", - "pageNumber": "7", + "pageNumber": 7, "type": "Automating Actions - Using the Workspace", "definition": { - "text": "Write a summary for this topic page." + "text": "The workspace object will give you access to all the hierarchies of nodes, and once there you will be able to manipulate those structures at will.", + "updated": 1614941811976 }, "paragraphs": [ { "style": "Text", - "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode. Then you can use doscs.save to save your changes and app.contribute to send it to the main repository." + "text": "You can access to the workspace object in this way:", + "updated": 1614931075101 + }, + { + "style": "Javascript", + "text": "UI.projects.superalgos.spaces.designSpace.workspace", + "updated": 1614931100393 + }, + { + "style": "Text", + "text": "Check for the functions defined at thisObject what can be useful in your case. ", + "updated": 1614931205528 + }, + { + "style": "Text", + "text": "It is not very common to use the Workspace object from an Action, since you have access to the rootNodes array directly as a parameter of your Action function. Useful Workspace function for this use case might be:", + "updated": 1614931466216 + }, + { + "style": "List", + "text": "getProjectsHeads", + "updated": 1614931357766 + }, + { + "style": "List", + "text": "getHierarchyHeads", + "updated": 1614931364737 + }, + { + "style": "List", + "text": "getHierarchyHeadsById", + "updated": 1614931372173 + }, + { + "style": "List", + "text": "getHierarchyHeadsByType", + "updated": 1614931380751 + }, + { + "style": "List", + "text": "getNodeThatIsOnFocus", + "updated": 1614931389528 + }, + { + "style": "List", + "text": "getNodeByShortcutKey", + "updated": 1614931399849 + }, + { + "style": "List", + "text": "getNodeById", + "updated": 1614931406224 } ] } \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-008-automating-actions-adding-an-action-switch-case.json b/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-008-automating-actions-adding-an-action-switch-case.json index f5eae231a..2dd4d9e5e 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-008-automating-actions-adding-an-action-switch-case.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-008-automating-actions-adding-an-action-switch-case.json @@ -1,14 +1,58 @@ { "topic": "How to Automate Actions at The Design Space", - "pageNumber": "8", + "pageNumber": 8, "type": "Automating Actions - Adding an Action Switch Case", "definition": { - "text": "Write a summary for this topic page." + "text": "This steps create the mapping betwheen the actionFunction name you defined at the Menu Item of the node that can trigger your Action, and the function you coded inside a Function Library that will execute the code for the new Action. ", + "updated": 1614941772231 }, "paragraphs": [ + { + "style": "Title", + "text": "Action Switch File", + "updated": 1614937860642 + }, { "style": "Text", - "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode. Then you can use doscs.save to save your changes and app.contribute to send it to the main repository." + "text": "Locate the ActionSwitch.js file inside the Function-Libraries folder. There you will find a gigantic switch instruction with a case for each Action available at the current Project." + }, + { + "style": "Text", + "text": "Find within the list of cases some of the cases pointint to the same Function Library your new Action is hosted at, so that you can add a new case together with the rest.", + "updated": 1614937904095 + }, + { + "style": "Title", + "text": "Add a New Case", + "updated": 1614938281975 + }, + { + "style": "Text", + "text": "The case string must match the actionFunction you defined at the Menu Item. Your function call should be something like this:" + }, + { + "style": "Javascript", + "text": "UI.projects.superalgos.functionLibraries.pluginsFunctions.pluginMissingTradingEngines(action.node, action.rootNodes)\n", + "updated": 1614938043930 + }, + { + "style": "Success", + "text": "As you can see will you most likely be sending the node and rootNodes parameters into your Action function. You might want to also send other parameters from data you might find into the action object available to you at that point.", + "updated": 1614938157839 + }, + { + "style": "Text", + "text": "The property name needed to get to the reference of your Function Library object at runtime can be found at the definition of that Function Library located at the Project Schema File. The one corresponding to the example above is this one, for instance:" + }, + { + "style": "Json", + "text": "{\n \"name\": \"Plugins Functions\",\n \"propertyName\": \"pluginsFunctions\",\n \"functionName\": \"newSuperalgosFunctionLibraryPluginsFunctions\"\n }", + "updated": 1614938194636 + }, + { + "style": "Text", + "text": "You can use whatever you find at propertyName to get to the Function Library object at runtime. With this, the mapping is complete.", + "updated": 1614938237127 } ] } \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-009-automating-actions-testing-your-action.json b/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-009-automating-actions-testing-your-action.json index 26d526a6a..4d00b6752 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-009-automating-actions-testing-your-action.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-009-automating-actions-testing-your-action.json @@ -1,14 +1,25 @@ { "topic": "How to Automate Actions at The Design Space", - "pageNumber": "9", + "pageNumber": 9, "type": "Automating Actions - Testing your Action", "definition": { - "text": "Write a summary for this topic page." + "text": "To test your new Action you just need to reload the UI, locate the node with the new Menu Item, and click on it...", + "updated": 1614941791574 }, "paragraphs": [ + { + "style": "Title", + "text": "Debug", + "updated": 1614939140622 + }, { "style": "Text", - "text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode. Then you can use doscs.save to save your changes and app.contribute to send it to the main repository." + "text": "In order to debug your action, you will need to open the developer tool, and at the Sources tab, locate the Function Library file where you added your action, place a breakpoint at the begining of your function and go and click at the node Menu Item you added." + }, + { + "style": "Success", + "text": "If you change the code of your function, reload the UI and you can debug it again with the new changes.", + "updated": 1614939195464 } ] } \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/how-to-debug-exchange-raw-data-sensor-bot-001-exchange-raw-data-your-favorite-exchange-is-not-working.json b/Projects/Superalgos/Schemas/Docs-Topics/how-to-debug-exchange-raw-data-sensor-bot-001-exchange-raw-data-your-favorite-exchange-is-not-working.json index e0006cf31..957ad28e4 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/how-to-debug-exchange-raw-data-sensor-bot-001-exchange-raw-data-your-favorite-exchange-is-not-working.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/how-to-debug-exchange-raw-data-sensor-bot-001-exchange-raw-data-your-favorite-exchange-is-not-working.json @@ -50,6 +50,33 @@ "style": "Text", "text": "Over time some users tested Binanceus, which works with the same config as Binance and some other users ventured into others with unknown results. If you manage to put an exhange to work please let us know with which config so that we can move that exchange to the Tested Exchanges branch of the Crypto Ecosystem." }, + { + "style": "Title", + "text": "Your Favorite Exchange is not Listed" + }, + { + "style": "Text", + "text": "There are many reasons why an exchange might not be listed even at the Untested Exchanges node. Hera are some of them:", + "updated": 1614949670526 + }, + { + "style": "Text", + "text": "1. When the list was created it did not exist (you can try Add Missing Exchanges menu item of the Crypto Exchanges node)" + }, + { + "style": "Text", + "text": "2. It is not listed at the CCXT library included with Superalgos (an npm update would be needed at the right folder to update the library). If it appears after the update, please inform the team so as to update it for all.", + "updated": 1614949724133 + }, + { + "style": "Text", + "text": "3. The exchange does not support historical data at 1 min (you can check the exchange API docs). Escahnges that do not support this are filtered out while running Add Missing Exchanges command.", + "updated": 1614949756265 + }, + { + "style": "Text", + "text": "4. The exchange does not support the function to list it's markets. (Also check the exchange API docs)" + }, { "style": "Title", "text": "Getting Started" diff --git a/Projects/Superalgos/Schemas/Docs-Topics/integrations-002-webhook-notifications.json b/Projects/Superalgos/Schemas/Docs-Topics/integrations-002-webhook-notifications.json index 9e172fe13..59cf5d19a 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/integrations-002-webhook-notifications.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/integrations-002-webhook-notifications.json @@ -3,8 +3,8 @@ "pageNumber": "2", "type": "Webhook Notifications", "definition": { - "text": "Receive webhook notifications from other systems and use them as signals in your strategies.", - "updated": 1611486052936 + "text": "Receive webhook notifications from other systems like Trading View, and use them as signals in your strategies.", + "updated": 1615365927821 }, "paragraphs": [ { @@ -17,8 +17,29 @@ "text": "Superalgos allows you to receive webhook notifications from TradingView or any other system supporting webhooks. You may use this feature to turn notifications into signals upon which you may act from within your strategies." }, { - "style": "Text", - "text": "The system’s Web Server receives notifications and serves them to a sensor bot running as a data mining task. The sensor creates a data product with several properties which are made available to be used from within strategies." + "style": "Title", + "text": "How does it Work?", + "updated": 1615366465462 + }, + { + "style": "List", + "text": "Receving Data: the Client receives via it's http interface notifications from external sources (like Trading View) and keep the data received in-memory. This happens independently of the Webhooks Sensor Bot, meaning that it does not matter if the Webhook Sensor Bot is running or not.", + "updated": 1615366502234 + }, + { + "style": "List", + "text": "Retrieving Data: The Webhooks Sensor Bot, when it is running, queries the Client and ask it for the in-memory data it holds.", + "updated": 1615366526381 + }, + { + "style": "List", + "text": "Saving Data: The Webhooks Sensor Bot saves this data to disk.", + "updated": 1615366538404 + }, + { + "style": "List", + "text": "Consuming Data: A Trading Bot running a Strategy, might consume the data saved by the Webhooks Sensor Bot.", + "updated": 1615366547425 }, { "style": "Text", @@ -26,19 +47,11 @@ }, { "style": "Title", - "text": "Set-up the Webhooks Sensor Bot Tasks" + "text": "Set-up the Client for Webhooks" }, { "style": "Text", - "text": "The Masters data mine features the definition of the Webhooks sensor bot used to monitor incoming notifications. You need to run an instance of this bot in the data mining section of the exchange and market of your choice." - }, - { - "style": "Text", - "text": "The default workspace does not feature these tasks. To create a task for the Webhooks sensor bot, you need to uninstall and re-install the corresponding market." - }, - { - "style": "Text", - "text": "Once the Webhooks sensor task is set up and running, you are all set at the application level. It’s that simple." + "text": "There is nothing to configure in order for the Client to receive webhooks calls from external systems. The only thing you might need to do is to change the http interface port number at the Environment.js file if and only if your signals provider has any constraints regarding the port number it can send the notifications to." }, { "style": "Title", @@ -54,21 +67,143 @@ }, { "style": "Json", - "text": "{\n\"webhookURL\": \"Webhook/New-Message/Trading-View/Binance/BTC-USDT\",\n\"testMessage\": \"\"\n}", - "updated": 1611486196742 + "text": "{\n\"webhookURL\": \"Webhook/New-Message/Trading-View/binance/BTC-USDT\",\n\"testMessage\": \"\"\n}", + "updated": 1615370606690 }, { "style": "List", - "text": "webhookURL: This is the URL you need to use for testing purposes. Make sure you refer to the correct exchange and market." + "text": "webhookURL: This is the URL you need to use for testing purposes. Make sure you refer to the correct exchange and market. Something very similar to this, you will configure later at Trading View or other Signal Provider. ", + "updated": 1615368679683 }, { "style": "List", - "text": "testMessage: Enter any message, for testing purposes." + "text": "testMessage: Enter any message, for testing purposes. This message will be what you will use at your Trading System conditions to know which type of signal you received. ", + "updated": 1615368846219 + }, + { + "style": "Subtitle", + "text": "testMessage Examples" + }, + { + "style": "Javascript", + "text": "BUY" + }, + { + "style": "Javascript", + "text": "SELL" + }, + { + "style": "Javascript", + "text": "TRIGGER ON" + }, + { + "style": "Javascript", + "text": "TRIGGER OFF" + }, + { + "style": "Javascript", + "text": "TAKE POSITION" + }, + { + "style": "Subtitle", + "text": "Send the Test Message to the Client", + "updated": 1615368890166 }, { "style": "Text", "text": "Once the test message is configured, select Send Test Message on the menu." }, + { + "style": "Success", + "text": "By doing this, you are simulating being Trading View's server and sending the message in the exact same way they would do it, to the Superalgos Client you are running. " + }, + { + "style": "Text", + "text": "The Client does not know you are sending a Test Message, and it does not know it is you and not the real Trading View. For the Client's point of view someone sent a Webhook message to it and it will do with it what it will do with any other message of this type. Store it in-memory waiting for the Webhook Sensor Bot to fetch the pending messages, in which case the Client will delete them upon delivery to the Sensor Bot.", + "updated": 1615369237281 + }, + { + "style": "Note", + "text": "At the Signals Provider node you will see a message of failure or success depending if the message was succesfuly delivered to the Client or not." + }, + { + "style": "Note", + "text": "At the Client 's console, you will see 3 lines of logs, aknolidging that the message was received or if something was wrong, an error message with the cause." + }, + { + "style": "Text", + "text": "The success logs looks like this:" + }, + { + "style": "Javascript", + "text": "[INFO] httpInterface -> Webhook -> New-Message -> Exchange-Market = binance-BTC-USDT\n[INFO] httpInterface -> Webhook -> New-Message -> messageReceived = Sell\n[INFO] httpInterface -> Webhook -> New-Message -> Messeges waiting to be Ferched by Webhooks Sensor Bot = 1", + "updated": 1615370618823 + }, + { + "style": "Title", + "text": "Set-up the Webhooks Sensor Bot Tasks", + "updated": 1615370044893 + }, + { + "style": "Text", + "text": "The Masters Data Mine features the definition of the Webhooks sensor bot used to monitor incoming notifications. You need to run an instance of this bot in the data mining section of the exchange and market of your choice.", + "updated": 1615370092995 + }, + { + "style": "Text", + "text": "The default workspace does not feature these tasks. To create a task for the Webhooks sensor bot, you need to uninstall and re-install the corresponding market." + }, + { + "style": "Success", + "text": "Once the Webhooks sensor task is set up, you are all set at the application level. It’s that simple.", + "updated": 1615370160742 + }, + { + "style": "Title", + "text": "Running the Webhooks Sensor Bot" + }, + { + "style": "Text", + "text": "Now that you have verified that the Client is receiving the signal messages and storing them for you, the next thing to do is to run the Webhooks Sensor Bot so that it fetches the signals from the Client and saves them on disk in the format that later can be consumed from strategies.", + "updated": 1615369878800 + }, + { + "style": "Text", + "text": "By default, this bot will run every 30 seconds. Each time it runs you will see logs entries at the Client 's console similar to this:" + }, + { + "style": "Javascript", + "text": "2021-03-10T09:57:40.111Z Binance BTC/USDT Masters Webhooks Check-Webhook Main Loop # 3\n[INFO] httpInterface -> Webhook -> Fetch-Messages -> Exchange-Market = binance-BTC-USDT\n[INFO] httpInterface -> Webhook -> Fetch-Messages -> Messeges Fetched by Webhooks Sensor Bot = 0", + "updated": 1615370294905 + }, + { + "style": "Title", + "text": "Send Test Messages while Sensor Bot is Running", + "updated": 1615371461320 + }, + { + "style": "Text", + "text": "Now that you know how to send test messages, try doing that while the Sensor Bot is running. By looking at the Client 's console you will be able to see what is going on:", + "updated": 1615370466427 + }, + { + "style": "List", + "text": "The Client accumulates the signas received.", + "updated": 1615370477786 + }, + { + "style": "List", + "text": "The Sensor Bot fetches all the accumulated signals every time it runs." + }, + { + "style": "Text", + "text": "In the example below I sent 3 signal messages from the UI to the Client, and then the Sensor Bot fetch them all." + }, + { + "style": "Javascript", + "text": "[INFO] httpInterface -> Webhook -> New-Message -> Exchange-Market = binance-BTC-USDT\n[INFO] httpInterface -> Webhook -> New-Message -> messageReceived = Sell\n[INFO] httpInterface -> Webhook -> New-Message -> Messeges waiting to be Fetched by Webhooks Sensor Bot = 1\n[INFO] httpInterface -> Webhook -> New-Message -> Exchange-Market = binance-BTC-USDT\n[INFO] httpInterface -> Webhook -> New-Message -> messageReceived = Sell\n[INFO] httpInterface -> Webhook -> New-Message -> Messeges waiting to be Fetched by Webhooks Sensor Bot = 2\n[INFO] httpInterface -> Webhook -> New-Message -> Exchange-Market = binance-BTC-USDT\n[INFO] httpInterface -> Webhook -> New-Message -> messageReceived = Sell\n[INFO] httpInterface -> Webhook -> New-Message -> Messeges waiting to be Fetched by Webhooks Sensor Bot = 3\n2021-03-10T10:04:40.472Z Binance BTC/USDT Masters Webhooks Check-Webhook Main Loop # 17\n[INFO] httpInterface -> Webhook -> Fetch-Messages -> Exchange-Market = binance-BTC-USDT\n[INFO] httpInterface -> Webhook -> Fetch-Messages -> Messeges Fetched by Webhooks Sensor Bot = 3", + "updated": 1615370778562 + }, { "style": "Title", "text": "Webhooks Sensor Bot Output" @@ -80,8 +215,18 @@ }, { "style": "Json", - "text": "\\Data-Storage\\Exchange\\Market\\Masters\\Webhooks\\Output\\External-Signals\\Single-File\\", - "updated": 1611486278677 + "text": " Data-Storage\\Project\\Superalgos\\Data-Mine\\Masters\\Webhooks\\Exchange-Id\\Market\\Output\\External-Signals\\Single-File\n", + "updated": 1615371100856 + }, + { + "style": "Text", + "text": "Based on our tests, the location you would find the file would be:", + "updated": 1615371008258 + }, + { + "style": "Json", + "text": "Data-Storage\\Project\\Superalgos\\Data-Mine\\Masters\\Webhooks\\binance\\BTC-USDT\\Output\\External-Signals\\Single-File", + "updated": 1615371017985 }, { "style": "Text", @@ -94,11 +239,13 @@ }, { "style": "Text", - "text": "This is what the file may look like, assuming you sent four different test messages:" + "text": "This is what the file may look like after the 3 test messages we sent:", + "updated": 1615370943470 }, { "style": "Json", - "text": "[[1587998459260,\"Trading-View\",\"Sell\"],[1587998475409,\"Trading-View\",\"Buy\"],[1587998530190,\"Trading-View\",\"A custom signal I just configured\"],[1588000300940,\"Trading-View\",\"This is my new message\"]]" + "text": "[[1615370665064,\"Trading-View\",\"Sell\"],[1615370665655,\"Trading-View\",\"Sell\"],[1615370666472,\"Trading-View\",\"Sell\"]]\n", + "updated": 1615370924302 }, { "style": "Text", @@ -106,15 +253,18 @@ }, { "style": "List", - "text": "timestamp: the Unix datetime of the message." + "text": "timestamp: the Unix datetime of the message. This is the moment in time the Client received the signal from the external Signals provider.", + "updated": 1615371169447 }, { "style": "List", - "text": "source: the name of the signal provider." + "text": "source: the name of the Signal Provider. This comes as part of the message sent by the provider, because is part of the URL you will specify later at the Signal Provider's system. In our example we used Trading View, but in fact it could be any other provider. You will have this property available at your Trading System, meaning that you will be able to write conditions that distingish the signal by Signal Provider.", + "updated": 1615371322994 }, { "style": "List", - "text": "message: the message set up at the provider’s system." + "text": "message: the message set up at the provider’s system (BUY, SELL, etc.).", + "updated": 1615371373274 }, { "style": "Title", @@ -142,7 +292,8 @@ }, { "style": "Javascript", - "text": "chart.atAnyTimeFrame.externalSignal.source === \"Trading-View\" && chart.atAnyTimeFrame.externalSignal.message === \"Buy\"" + "text": "chart.atAnyTimeFrame.externalSignal.source === \"Trading-View\" && \nchart.atAnyTimeFrame.externalSignal.message === \"BUY\"", + "updated": 1615371544991 }, { "style": "Text", @@ -150,7 +301,8 @@ }, { "style": "Javascript", - "text": "chart.atAnyTimeFrame.externalSignal.previous.message === \"Buy\"" + "text": "chart.atAnyTimeFrame.externalSignal.previous.message === \"BUY\"", + "updated": 1615371536367 }, { "style": "Text", @@ -164,9 +316,227 @@ "style": "Text", "text": "In the above example, the first parameter chart.atAnyTimeFrame.externalSignal is the signal object you wish to check, and the second parameter chart.at01hs.candle is any other object that is delimited in time. In this case, the condition validates true if the last message falls within the last 1-hour candle." }, + { + "style": "Warning", + "text": "The reason to make this validation is to avoid situations where the Webhook sensor bot was not running and it retrieved from the Client signals that are already old. If you do not check the age of the signal you might get into the situation where you are triggering a buy or sell based on old data." + }, { "style": "Title", - "text": "Set-up Alerts/Messages at the Provider" + "text": "Test that the Signal is Taken by your Strategy", + "updated": 1615377044554 + }, + { + "style": "Text", + "text": "We will make ourselves sure that from within a strategy we can react to an external Signal. To test this, plese take the following steps. All of the following goes into the current Lighting Strike Backtesting Session / Task.", + "updated": 1615379790606 + }, + { + "style": "Subtitle", + "text": "Paper Trading Session", + "updated": 1615380274411 + }, + { + "style": "Text", + "text": "Rigth click over the Backtesting Session node and select switch to Paper Trading so that we can simulate live trading without connecting to the exchange." + }, + { + "style": "Subtitle", + "text": "Set-up Session Parameters" + }, + { + "style": "Text", + "text": "Since you have reinstalled the market in order for the task of the Webhooks bot to appear at the Master Trading Mine Tasks, the setup for the Lighting Strike strategy needs to be fixed. (Assuming you are at the Getting Started Workspace). This is what we are going to do:", + "updated": 1615379719899 + }, + { + "style": "Text", + "text": "Apply this config to your Session Base Asset", + "updated": 1615379980416 + }, + { + "style": "Json", + "text": "{\n \"initialBalance\": 0\n}", + "updated": 1615382028446 + }, + { + "style": "Text", + "text": "Apply this config to the Session Quoted Asset", + "updated": 1615379973089 + }, + { + "style": "Json", + "text": "{\n \"initialBalance\": 1\n}", + "updated": 1615380003924 + }, + { + "style": "Text", + "text": "Apply this config to the Time Range", + "updated": 1615380023496 + }, + { + "style": "Json", + "text": "{\n \"initialDatetime\": \"2020-09-01\",\n \"finalDatetime\": \"2030-09-02\"\n}", + "updated": 1615380126836 + }, + { + "style": "Text", + "text": "The initialDatetime will be ingoned because we are running a Paper Trading Session. The important thing is that the finalDatetime is in the future.", + "updated": 1615380159343 + }, + { + "style": "Text", + "text": "Apply this config to the Time Frame", + "updated": 1615380180549 + }, + { + "style": "Json", + "text": "{\n \"label\": \"01-min\"\n}", + "updated": 1615380196254 + }, + { + "style": "Subtitle", + "text": "Set-up the Strategy for Webhooks Signals", + "updated": 1615380571676 + }, + { + "style": "Text", + "text": "Inside the Lighting Strike trading system locate the Trigger On Event, and paste the following into the Javascript Node of the only condition it has.", + "updated": 1615380721252 + }, + { + "style": "Javascript", + "text": "chart.atAnyTimeFrame.externalSignal.message === \"TRIGGER ON\"", + "updated": 1615380737459 + }, + { + "style": "Text", + "text": "What we are doing here is setting the strategy to be triggered once an external signal with the message TRIGGER ON is received via the Webhook Sensor Bot." + }, + { + "style": "Subtitle", + "text": "Run the Data Mining Tasks" + }, + { + "style": "Text", + "text": "For this test, since we are Paper Trading, we will need a live stream of data from the exchange. We don't need to run all the Task of Mater Data Mining, only the ones needed by the Lighting Strike strategy:" + }, + { + "style": "List", + "text": "Exchange Raw Data" + }, + { + "style": "List", + "text": "Candles Volumens" + }, + { + "style": "List", + "text": "Resistances and Supports" + }, + { + "style": "List", + "text": "Webhooks " + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Subtitle", + "text": "Run Task and Session" + }, + { + "style": "Text", + "text": "Run Task and the Session, and monitor the chart that was called Backtesting (now that is our Papertrading session), at the end of the market at the 1 minute time frame. Turn on the Episodes layer and wait for a few minutes until you see the Episode icons appear at the charts.", + "updated": 1615380482184 + }, + { + "style": "Text", + "text": "Before running the task and session, delete the data at " + }, + { + "style": "Javascript", + "text": "Data-Storage\\Project\\Superalgos\\Data-Mine\\Masters\\Webhooks", + "updated": 1615381701627 + }, + { + "style": "Important", + "text": "This is not necesary the first time you run this, but if you are repeating this test, you will avoid confusions since the file of signals will be accumulating the test messages you send, and at the strategy we are not checking for the age of the messages, so it is a good idea to delete this data every time you try this procedure.", + "updated": 1615381726583 + }, + { + "style": "Subtitle", + "text": "Set-up the Signals Provider", + "updated": 1615380812487 + }, + { + "style": "Text", + "text": "At the Crypto Ecosystem, paste the following config to the Signals Provider.", + "updated": 1615380855069 + }, + { + "style": "Javascript", + "text": "{\n \"webhookURL\": \"Webhook/New-Message/Trading-View/binance/BTC-USDT\",\n \"testMessage\": \"TRIGGER ON\"\n}", + "updated": 1615380896874 + }, + { + "style": "Text", + "text": "This means that when you send this test message, you will be delivering the TRIGGER ON signal expected by the strategy." + }, + { + "style": "Subtitle", + "text": "Ready to Send the Test Message TRIGGER ON", + "updated": 1615381087734 + }, + { + "style": "Text", + "text": "Go to the charts again an turn on the Strategies layer. You should not see anything at the charts since no strategy has been triggered.", + "updated": 1615381066133 + }, + { + "style": "Success", + "text": "Now you can send the test message." + }, + { + "style": "Text", + "text": "After you see the confirmation at the UI that the message was sent, check the Client's console to verify the message was received. Then wait until the message is picked up by the Webhooks Sensor Bot. Then wait until the Trading Bot runs again." + }, + { + "style": "Text", + "text": "Go to the charts and wait until it plots the icons of the strategy, confirming that the strategy was triggered by the test message you sent." + }, + { + "style": "Note", + "text": "If all this worked, it means that it will work if the message comes from Trading View or other Signal Provider too." + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Text", + "text": "" + }, + { + "style": "Title", + "text": "Set-up your Firewall / Rounter to accept Incoming Connections" + }, + { + "style": "Text", + "text": "As you might have imagined, you will need to open a port at your rounter / firewall to accept incomming connections from the signal provider's servers (like Trading View for instance). This is what allows that server to connect to the server where the Client is running, enabling the Client to receive those signals." + }, + { + "style": "Important", + "text": "How you configure your Rounter / Firewall is up to you, and it depends on your network setup. You will need to do your research for details on how to do it, because it depends on which rounter / firewall you are using. We suggest you to include on the rules of your Firewall / Rounter the domain name or IP address of the Signal provider, so that nobody else can connect to the Client's http interface, which has, beyond Webhooks other features you don't want to expose openly to the world without restrictions.", + "updated": 1615368540044 + }, + { + "style": "Text", + "text": "What we can tell you regarding this, is that the Superalgos Client is running a very simple http server at the port configured at the Environment.js file." + }, + { + "style": "Title", + "text": "Set-up Alerts / Messages at the Signals Provider", + "updated": 1615368585310 }, { "style": "Text", @@ -182,15 +552,8 @@ }, { "style": "Json", - "text": "http://182.45.73.1:34247/Webhook/New-Message/Trading-View/Binance/BTC-USDT" - }, - { - "style": "Text", - "text": "Set-up Your Network to Accept Incoming Connections" - }, - { - "style": "Text", - "text": "Needless to say, you need to configure your network / router / firewall to allow incoming webhook messages on the corresponding port." + "text": "http://182.45.73.1:34247/Webhook/New-Message/Trading-View/binance/BTC-USDT", + "updated": 1615371762205 }, { "style": "Text", diff --git a/Projects/Superalgos/Schemas/Docs-Topics/introduction-007-references.json b/Projects/Superalgos/Schemas/Docs-Topics/introduction-007-references.json index 9eb15c375..47c81d420 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/introduction-007-references.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/introduction-007-references.json @@ -9,8 +9,7 @@ "paragraphs": [ { "style": "Title", - "text": "Direction", - "updated": 1609950210690 + "text": "Direction" }, { "style": "Text", @@ -18,7 +17,12 @@ }, { "style": "Text", - "text": "For example, a session establishes an outgoing reference with a trading system. This allows the session to access the information within the whole trading system hierarchy, including strategies. At the trading system level, the same reference is viewed as an incoming reference." + "text": "For example, a Backtesting Session establishes an outgoing reference with a Trading System. This allows the session to access the information within the whole trading system hierarchy, including strategies. At the trading system level, the same reference is viewed as an incoming reference.", + "updated": 1615795085518 + }, + { + "style": "Note", + "text": "A node may produce only one outgoing reference, however, it may take several incoming references." }, { "style": "Title", @@ -30,11 +34,18 @@ }, { "style": "Text", - "text": "Examples of internal references may be found in the data mine and crypto ecosystem hierarchies. For example, let’s briefly look into one such case within a plotter module:" + "text": "Examples of internal references may be found in the Data Mine and Crypto Ecosystem hierarchies. For example, let’s briefly look into one such case within a Plotter Module.", + "updated": 1615795128743 }, { "style": "Text", - "text": "The capture below shows the shapes node and several offspring nodes: on one hand, several polygons; on the other hand, the chart points node." + "text": "The capture below shows the Shapes node and several offspring nodes: on one hand, several Polygon nodes; on the other hand, the Chart Points node.", + "updated": 1615795168459 + }, + { + "style": "Gif", + "text": "GIFs/Superalgos/Docs/design-space/shapes-node-references.gif", + "updated": 1615796201734 }, { "style": "Text", @@ -42,12 +53,32 @@ }, { "style": "Text", - "text": "This means that the node shapes feature several internal references." + "text": "This means that the node Shapes feature several internal references.", + "updated": 1615796711778 }, { "style": "Note", - "text": " The backup, clone and share operations make different uses of the properties of references. We will cover the three of them extensively so that you may make the most of these features.", - "updated": 1609950276151 + "text": "The backup, clone and share operations make different uses of the properties of references. We will cover the three of them extensively so that you may make the most of these features.", + "updated": 1615796558622 + }, + { + "style": "Title", + "text": "Graphical Representation", + "updated": 1615796579270 + }, + { + "style": "Text", + "text": "References are graphically represented with faint grey dotted lines, but they are not visible by default. References become visible when you hover the mouse pointer on a node that has a reference, or when activating the display of all references with the following key combination: ", + "updated": 1615827008604 + }, + { + "style": "Text", + "text": "Ctrl + Shift + Alt + Key-R" + }, + { + "style": "Note", + "text": "For references to be visible, both nodes involved in the reference must be visible.", + "updated": 1615796621593 }, { "style": "Anchor", diff --git a/Projects/Superalgos/Schemas/Docs-Topics/productivity-tools-001-backups.json b/Projects/Superalgos/Schemas/Docs-Topics/productivity-tools-001-backups.json index 5f55de85f..4a4179904 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/productivity-tools-001-backups.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/productivity-tools-001-backups.json @@ -14,19 +14,23 @@ }, { "style": "Text", - "text": "When you back up a single node, a structure of nodes, a complete hierarchy or even the workspace, all existing references are stored in the resulting JSON file." + "text": "When you back up a Node, a structure of nodes, a complete hierarchy, or even the Workspace, all existing references are stored in the resulting JSON file.", + "updated": 1615823255327 }, { "style": "Text", - "text": "When you restore a workspace backup, the current workspace is discarded entirely and replaced with the backup. Now, let’s see what happens when you restore anything other than a workspace, that is, any of the data structures contained in the workspace." + "text": "When you restore a workspace backup, the current workspace is replaced with the backup.", + "updated": 1615820832685 }, { "style": "Text", - "text": "In particular, what we want to analyze is what happens with each type of reference that may be present in the structure." + "text": "Now, let’s see what happens when you restore anything other than a workspace, that is, any of the data structures contained in the workspace. What we want to analyze is what happens with references that may be present in the structure, in particular, with the different types of references.", + "updated": 1615820914384 }, { - "style": "Text", - "text": "What happens with each type of reference when the back up is restored varies depending on one factor: the original structure is present in the workspace, or instead, it has been deleted prior to restoring the backup." + "style": "Success", + "text": "When a backup is restored, what happens with each type of reference varies depending on one factor: Is the original structure present in the workspace? Or has the structure been deleted before restoring the backup?", + "updated": 1615823276285 }, { "style": "Title", @@ -34,11 +38,13 @@ }, { "style": "Callout", - "text": "Outgoing references are kept no matter if the original structure of nodes still exists or not." + "text": "Outgoing references are kept intact no matter if the original structure of nodes still exists or not.", + "updated": 1615821071450 }, { "style": "Text", - "text": "For example, in a task set up for running a testing session, the trading bot process instance references the trading bot Multi-Period process, and the session references a trading sytem." + "text": "For example, in a Task set up to run a Backtesting Session, the Trading Process Instance references the Trading Bot Multi-Period process, the Trading System Reference references a Trading System, and the Trading Engine Reference references the Trading Engine. These are all outgoing references relative to the structure of nodes that make up a Task.", + "updated": 1615823380296 }, { "style": "Gif", @@ -47,11 +53,13 @@ }, { "style": "Text", - "text": "As the capture above shows, when restoring the backup of a task, both outgoing references are maintained, even when the original task has not been deleted." + "text": "As the capture above shows, when restoring the backup of a Task, the three outgoing references are maintained, even when the original task has not been deleted.", + "updated": 1615821379213 }, { - "style": "Text", - "text": "This means that restoring a back up is a viable way to duplicate structures of nodes with outgoing references when you expect outgoing references to be preserved." + "style": "Success", + "text": "This means that restoring a backup is a viable way to duplicate structures of nodes with outgoing references when you expect outgoing references to be preserved.", + "updated": 1615821244593 }, { "style": "Title", @@ -63,7 +71,8 @@ }, { "style": "Text", - "text": "Let’s take a trading system as an example. Trading systems usually have several incoming references originating at different testing and live trading sessions." + "text": "Let’s take a Trading System as an example. Trading systems usually have several incoming references originating at different testing and live trading sessions.", + "updated": 1615821415989 }, { "style": "Gif", @@ -72,11 +81,13 @@ }, { "style": "Text", - "text": "The capture above shows that restoring a backup of a trading system when the orginal definition is still in the workspace causes the incoming references to be lost." + "text": "The capture above shows that restoring a backup of a trading system when the original definition is still in the workspace causes the incoming references to be lost. This is because the backup is restored with new IDs on each node.", + "updated": 1615822161951 }, { "style": "Text", - "text": "However, as the capture below shows, if the original structure of nodes is deleted before the backup is restored, then the incoming references are restored as well." + "text": "However, as the capture below shows, if the original structure of nodes is deleted before the backup is restored, then the incoming references are restored as well. This is because deleting the original structure releases the IDs of the nodes involved and allows recreating the structure with the same IDs each of the nodes used to have.", + "updated": 1615822180175 }, { "style": "Gif", @@ -89,11 +100,13 @@ }, { "style": "Text", - "text": "Internal references are kept internally only when the original structure of nodes is deleted before restoring the backup. If the original structure of nodes is present, then the references will point to the original nodes on the original structure of nodes." + "text": "Internal references remain to be internal references only when the original structure of nodes is deleted before restoring the backup. If the original structure of nodes is present, then the references will point to the original nodes on the original structure of nodes.", + "updated": 1615822737609 }, { "style": "Text", - "text": "Let’s see what happens when we restore a backup of a shapes node without deleting the original node first:" + "text": "Let’s see what happens when we restore a backup of a Shapes node without deleting the original node first:", + "updated": 1615822610298 }, { "style": "Gif", @@ -102,7 +115,8 @@ }, { "style": "Text", - "text": "As expected, the references from vertices in the restored backup do not point to the points in the same structure, but instead point to the original points in the original strucutre." + "text": "As expected, the references from vertices in the restored backup do not point to the points in the same structure, but instead, point to the original points in the original structure.", + "updated": 1615823436326 }, { "style": "Text", @@ -113,6 +127,11 @@ "text": "GIFs/Superalgos/Docs/design-space/backups-05.gif", "updated": 1611490016934 }, + { + "style": "Success", + "text": "To understand this behavior you must consider —again— what happens with the IDs of the nodes involved! In the first case, when you delete the structure of nodes before the backup is restored, the IDs are freed so that when the backup is restored, the nodes may be restored with the same IDs they used to have. This allows for the references to be kept as they used to be. In the second case, the IDs are already taken and the nodes are created with new IDs. This results in the references pointing to the original nodes, instead of the ones that were restored from the backup.", + "updated": 1615823179782 + }, { "style": "Title", "text": "Conclusion" @@ -123,8 +142,8 @@ }, { "style": "Text", - "text": "However, the tool’s particular behavior when restoring a backup without deleting the original structure may be of use in certain ocassions. In such cases, the backup feature behaves differently than the clone feature.", - "updated": 1611490099609 + "text": "However, the tool’s particular behavior when restoring a backup without deleting the original structure may be of use on certain occasions. In such cases, the backup feature behaves differently than the clone feature.", + "updated": 1615823501537 }, { "style": "Text", diff --git a/Projects/Superalgos/Schemas/Docs-Topics/productivity-tools-002-clones.json b/Projects/Superalgos/Schemas/Docs-Topics/productivity-tools-002-clones.json index e68515103..ead2c981c 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/productivity-tools-002-clones.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/productivity-tools-002-clones.json @@ -3,8 +3,8 @@ "pageNumber": "2", "type": "Clones", "definition": { - "text": "The clone feature is designed to produce copies of data structures when you need to replicate nodes and expect the copies to behave similarly to the original.", - "updated": 1611490308337 + "text": "The clone feature is designed to produce copies of data structures when you need to replicate structures of nodes and expect the copies to behave similarly to the original.", + "updated": 1615832633335 }, "paragraphs": [ { @@ -17,8 +17,9 @@ "text": "We will analyze the case of clones under the same lens we analyzed how backups work: we will study how clones treat outgoing, incoming and internal references." }, { - "style": "Text", - "text": "Unlike with backups, clones behave in the same way independently of the existence of the original structure of nodes in the workspace, therefore, we will not make such distinction in the following paragraphs." + "style": "Note", + "text": "Unlike backups, clones behave in the same way independently of the existence of the original structure of nodes in the workspace, therefore, we will not make such distinction in the following paragraphs.", + "updated": 1615832413196 }, { "style": "Title", @@ -34,7 +35,8 @@ }, { "style": "Text", - "text": "The same example as with backups apply: cloning a task running a session produces a copy of the task with the trading bot process instance maintaining the reference to the trading bot Multi-Period process, and the session maintaining the reference with the corresponding trading system." + "text": "The same example as with backups apply: cloning a Task running a Backtesting Session produces a copy of the Task with the Trading Process Instance maintaining the reference to the Trading Bot Multi-Period process, Trading Session Reference maintaining the reference to the corresponding Trading System, and the Trading Engine Reference keeping the reference to the Trading Engine hierarchy.", + "updated": 1615832824246 }, { "style": "Gif", @@ -51,7 +53,8 @@ }, { "style": "Text", - "text": "Let’s go back to the example of a trading system, like we did when exploring backups:" + "text": "Let’s go back to the example of a Trading System, like we did when exploring backups:", + "updated": 1615838266411 }, { "style": "Gif", @@ -72,7 +75,8 @@ }, { "style": "Text", - "text": "Going back to the shapes node example, the capture below shows how restonring a clone keeps internal references intact:" + "text": "Going back to the shapes node example, the capture below shows how restoring a clone keeps internal references intact:", + "updated": 1615838297924 }, { "style": "Gif", diff --git a/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-001-binance-test-status.json b/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-001-binance-test-status.json new file mode 100644 index 000000000..c362d379b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-001-binance-test-status.json @@ -0,0 +1,56 @@ +{ + "topic": "Tested Exchanges", + "pageNumber": "1", + "type": "Binance Test Status", + "definition": { + "text": "Binance is fully tested for data mining and trading.", + "updated": 1615141847424 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Properties", + "updated": 1615143100216 + }, + { + "style": "List", + "text": "1-min OHLCVs Capability [*]: Yes." + }, + { + "style": "List", + "text": "Market History: Starting on September 2017.", + "updated": 1615142912901 + }, + { + "style": "List", + "text": "Trading Capability [**]: Yes.", + "updated": 1615143016205 + }, + { + "style": "List", + "text": "Comments: Fully tested. Starting with Binance is recommended as the experience is seamless.", + "updated": 1615142951363 + }, + { + "style": "Text", + "text": "[*] The ability to fetch historic data for backtesting purposes has been verified." + }, + { + "style": "Text", + "text": "[**] The ability to run strategies in live-trading mode has been verified." + }, + { + "style": "Title", + "text": "Configuration" + }, + { + "style": "Json", + "text": "{\n \"codeName\": \"binance\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"fetchType\": \"by Id\",\n \"fetchTradesMethod\": \"publicGetHistoricalTrades\",\n \"firstId\": \"f\"\n }\n ]\n}", + "updated": 1615143066280 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-002-ftx-test-status.json b/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-002-ftx-test-status.json new file mode 100644 index 000000000..04a95ef1d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-002-ftx-test-status.json @@ -0,0 +1,58 @@ +{ + "topic": "Tested Exchanges", + "pageNumber": "2", + "type": "FTX Test Status", + "definition": { + "text": "FTX is tested for data mining but not for live trading", + "updated": 1615204721150 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Properties", + "updated": 1615143100216 + }, + { + "style": "List", + "text": "1-min OHLCVs Capability [*]: Yes", + "updated": 1615204617519 + }, + { + "style": "List", + "text": "Market History: Starting on September 2019", + "updated": 1615204614502 + }, + { + "style": "List", + "text": "Trading Capability [**]: Unknown", + "updated": 1615204866750 + }, + { + "style": "List", + "text": "Comments: Raw Data mining can be slow due to exchange restrictions on their API that limit the number of data it can be requested via Rest API", + "updated": 1615205045729 + }, + { + "style": "Text", + "text": "[*] The ability to fetch historic data for backtesting purposes has been verified." + }, + { + "style": "Text", + "text": "[**] The ability to run strategies in live-trading mode has not been verified.", + "updated": 1615211002861 + }, + { + "style": "Title", + "text": "Configuration" + }, + { + "style": "Json", + "text": "{\n \"codeName\": \"ftx\"\n}", + "updated": 1615204693035 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-003-binance-us-test-status.json b/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-003-binance-us-test-status.json new file mode 100644 index 000000000..2d35dbb4c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-003-binance-us-test-status.json @@ -0,0 +1,58 @@ +{ + "topic": "Tested Exchanges", + "pageNumber": "3", + "type": "Binance-US Test Status", + "definition": { + "text": "Binance US is tested for data mining and live trading", + "updated": 1615210764406 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Properties", + "updated": 1615143100216 + }, + { + "style": "List", + "text": "1-min OHLCVs Capability [*]: Yes", + "updated": 1615204617519 + }, + { + "style": "List", + "text": "Market History: Starting on Genuary 2020", + "updated": 1615210971704 + }, + { + "style": "List", + "text": "Trading Capability [**]: Yes", + "updated": 1615210793722 + }, + { + "style": "List", + "text": "Comments: Raw Data mining can be slow due to exchange restrictions on their API that limit the number of data it can be requested via Rest API", + "updated": 1615205045729 + }, + { + "style": "Text", + "text": "[*] The ability to fetch historic data for backtesting purposes has been verified." + }, + { + "style": "Text", + "text": "[**] The ability to run strategies in live-trading mode has not been verified.", + "updated": 1615210884706 + }, + { + "style": "Title", + "text": "Configuration" + }, + { + "style": "Json", + "text": "{\n \"codeName\": \"binanceus\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"fetchType\": \"by Id\",\n \"fetchTradesMethod\": \"publicGetHistoricalTrades\",\n \"firstId\": \"f\"\n }\n ]\n}", + "updated": 1615210940971 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-004-bitfinex-test-status.json b/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-004-bitfinex-test-status.json new file mode 100644 index 000000000..3eecff423 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-004-bitfinex-test-status.json @@ -0,0 +1,58 @@ +{ + "topic": "Tested Exchanges", + "pageNumber": "4", + "type": "Bitfinex Test Status", + "definition": { + "text": "Bitfinex is tested for data mining but not for live trading", + "updated": 1615211117153 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Properties", + "updated": 1615143100216 + }, + { + "style": "List", + "text": "1-min OHLCVs Capability [*]: Yes", + "updated": 1615204617519 + }, + { + "style": "List", + "text": "Market History: Starting on Genuary 2020", + "updated": 1615211056787 + }, + { + "style": "List", + "text": "Trading Capability [**]: Unknown", + "updated": 1615204866750 + }, + { + "style": "List", + "text": "Comments: Raw Data mining can be slow due to exchange restrictions on their API that limit the number of data it can be requested via Rest API", + "updated": 1615205045729 + }, + { + "style": "Text", + "text": "[*] The ability to fetch historic data for backtesting purposes has been verified." + }, + { + "style": "Text", + "text": "[**] The ability to run strategies in live-trading mode has not been verified.", + "updated": 1615211026605 + }, + { + "style": "Title", + "text": "Configuration" + }, + { + "style": "Json", + "text": "{\n \"codeName\": \"bitfinex\",\n \"API\": [\n {\n \"rateLimit\": 999\n }\n ]\n}", + "updated": 1615211032603 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-005-kucoin-test-status.json b/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-005-kucoin-test-status.json new file mode 100644 index 000000000..ccce57e20 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-005-kucoin-test-status.json @@ -0,0 +1,59 @@ +{ + "topic": "Tested Exchanges", + "pageNumber": "5", + "type": "Kucoin Test Status", + "definition": { + "text": "Kucoin is not tested for data mining nor for live trading", + "updated": 1615211178818 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Properties", + "updated": 1615143100216 + }, + { + "style": "List", + "text": "1-min OHLCVs Capability [*]: Yes", + "updated": 1615204617519 + }, + { + "style": "List", + "text": "Market History: 1 day", + "updated": 1615211188110 + }, + { + "style": "List", + "text": "Trading Capability [**]: Unknown", + "updated": 1615204866750 + }, + { + "style": "List", + "text": "Comments: While testing with standard configuration it was possible to fetch 1 day of historical Raw Data", + "updated": 1615211286656 + }, + { + "style": "Text", + "text": "[*] The ability to fetch historic data for backtesting purposes has not been verified", + "updated": 1615211296452 + }, + { + "style": "Text", + "text": "[**] The ability to run strategies in live-trading mode has not been verified", + "updated": 1615211304255 + }, + { + "style": "Title", + "text": "Configuration" + }, + { + "style": "Json", + "text": "{\n \"codeName\": \"kucoin\"\n}", + "updated": 1615211313657 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-006-luno-test-status.json b/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-006-luno-test-status.json new file mode 100644 index 000000000..8cfc8ac2a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-006-luno-test-status.json @@ -0,0 +1,59 @@ +{ + "topic": "Tested Exchanges", + "pageNumber": "6", + "type": "Luno Test Status", + "definition": { + "text": "Luno is tested for data mining and for live trading", + "updated": 1615550142553 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Properties", + "updated": 1615143100216 + }, + { + "style": "List", + "text": "1-min OHLCVs Capability [*]: Yes", + "updated": 1615204617519 + }, + { + "style": "List", + "text": "Market History: Unknown", + "updated": 1615204614502 + }, + { + "style": "List", + "text": "Trading Capability [**]: Yes", + "updated": 1615550165906 + }, + { + "style": "List", + "text": "Comments: Raw Data mining is extremely slow due to exchange restrictions on their API that limit the number of data it can be requested via Rest API. One day of Raw Data takes about 5 minutes to download. Keep this in mind when setting a start date. The reason for this is because they do not support fetching of OHCLV data - this data has to be compiled by fetching individual trades. The fetching of trades is limited to 100 trades per request, and the rate limit is 1 second.", + "updated": 1615456853257 + }, + { + "style": "Text", + "text": "[*] The ability to fetch historic data for backtesting purposes has been verified.", + "updated": 1615456911815 + }, + { + "style": "Text", + "text": "[**] The ability to run strategies in live-trading mode is now possible. Ensure that the version of the CCXT library being used by Superalgos is 1.42.77 or better - earlier versions of this library did not correctly apply the precision settings of the exchange in the amounts specified for creating orders.", + "updated": 1615550355806 + }, + { + "style": "Title", + "text": "Configuration" + }, + { + "style": "Json", + "text": "{\n \"codeName\": \"luno\",\n \"API\": [\n {\n \"method\": \"fetch_ohlcv\",\n \"useFetchTradesForFetchOHLCVs\": true,\n \"maxTradesPerFetch\": 100,\n \"limit\": 200,\n \"rateLimit\": 1100\n }\n ]\n}", + "updated": 1615211372349 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-007-kraken-test-status.json b/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-007-kraken-test-status.json new file mode 100644 index 000000000..25549b0aa --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-007-kraken-test-status.json @@ -0,0 +1,59 @@ +{ + "topic": "Tested Exchanges", + "pageNumber": "7", + "type": "Kraken Test Status", + "definition": { + "text": "Kraken is tested for data mining but not for live trading", + "updated": 1615204721150 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Properties", + "updated": 1615143100216 + }, + { + "style": "List", + "text": "1-min OHLCVs Capability [*]: Yes", + "updated": 1615204617519 + }, + { + "style": "List", + "text": "Market History: Unknown", + "updated": 1615204614502 + }, + { + "style": "List", + "text": "Trading Capability [**]: Unknown", + "updated": 1615204866750 + }, + { + "style": "List", + "text": "Comments: With standard settings only one day worth of Raw Data is fetched. To retrieve Raw Data in Kraken, pairs in config are reversed. Backtesting and Live Trading behaviour unknown", + "updated": 1615278620667 + }, + { + "style": "Text", + "text": "[*] The ability to fetch historic data for backtesting purposes has not been verified", + "updated": 1615211359233 + }, + { + "style": "Text", + "text": "[**] The ability to run strategies in live-trading mode has not been verified", + "updated": 1615211364516 + }, + { + "style": "Title", + "text": "Configuration" + }, + { + "style": "Json", + "text": "{\n \"codeName\": \"USDT/BTC\"\n}", + "updated": 1615278483740 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-008-bittrex-test-status.json b/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-008-bittrex-test-status.json new file mode 100644 index 000000000..f3829220a --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-008-bittrex-test-status.json @@ -0,0 +1,59 @@ +{ + "topic": "Tested Exchanges", + "pageNumber": "8", + "type": "Bittrex Test Status", + "definition": { + "text": "Bittrex is not fully tested for data mining nor for live trading", + "updated": 1615450372178 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Properties", + "updated": 1615143100216 + }, + { + "style": "List", + "text": "1-min OHLCVs Capability [*]: Yes", + "updated": 1615204617519 + }, + { + "style": "List", + "text": "Market History: Unknown", + "updated": 1615450231832 + }, + { + "style": "List", + "text": "Trading Capability [**]: Unknown", + "updated": 1615204866750 + }, + { + "style": "List", + "text": "Comments: Raw Data mining it's extremely slow due to API restriction", + "updated": 1615450349464 + }, + { + "style": "Text", + "text": "[*] The ability to fetch historic data for backtesting purposes has not been verified", + "updated": 1615211296452 + }, + { + "style": "Text", + "text": "[**] The ability to run strategies in live-trading mode has not been verified", + "updated": 1615211304255 + }, + { + "style": "Title", + "text": "Configuration" + }, + { + "style": "Json", + "text": "{\n \"codeName\": \"bittrex\",\n \"API\": [\n {\n \"method\": \"fetch_ohlcv\",\n \"limit\": 2\n }\n ]\n}", + "updated": 1615450253869 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-009-coinbasepro-test-status.json b/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-009-coinbasepro-test-status.json new file mode 100644 index 000000000..7abf7f26f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/tested-exchanges-009-coinbasepro-test-status.json @@ -0,0 +1,59 @@ +{ + "topic": "Tested Exchanges", + "pageNumber": "9", + "type": "CoinbasePro Test Status", + "definition": { + "text": "Coinbase Pro is not fully tested for data mining nor for live trading", + "updated": 1615453123690 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Properties", + "updated": 1615143100216 + }, + { + "style": "List", + "text": "1-min OHLCVs Capability [*]: Yes", + "updated": 1615204617519 + }, + { + "style": "List", + "text": "Market History: Unknown", + "updated": 1615453086807 + }, + { + "style": "List", + "text": "Trading Capability [**]: Unknown", + "updated": 1615204866750 + }, + { + "style": "List", + "text": "Comments: Raw Data fetching extremely slow due to API restrictions, see config", + "updated": 1615453110186 + }, + { + "style": "Text", + "text": "[*] The ability to fetch historic data for backtesting purposes has not been fully verified", + "updated": 1615453130798 + }, + { + "style": "Text", + "text": "[**] The ability to run strategies in live-trading mode has not been verified", + "updated": 1615211304255 + }, + { + "style": "Title", + "text": "Configuration" + }, + { + "style": "Json", + "text": "{\n \"codeName\": \"coinbasepro\",\n \"API\": [\n {\n \"method\": \"fetch_ohlcv\",\n \"limit\": 300\n }\n ]\n}", + "updated": 1615453067170 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/troubleshooting-006-perception-issues-my-system-gets-slow.json b/Projects/Superalgos/Schemas/Docs-Topics/troubleshooting-006-perception-issues-my-system-gets-slow.json index bb380a529..aa37281b4 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/troubleshooting-006-perception-issues-my-system-gets-slow.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/troubleshooting-006-perception-issues-my-system-gets-slow.json @@ -56,7 +56,8 @@ }, { "style": "Text", - "text": "Make sure you set the time scale to manual mode and adjust it so that fewer candles are displayed on the screen. Try switching the time frame box to the higher time frames so that candle density decreases." + "text": "Make sure you set the Time Scale to manual mode and adjust it so that fewer candles are displayed on the screen. Try switching the time frame box to the higher time frames so that candle density decreases.", + "updated": 1615810255059 }, { "style": "Text", diff --git a/Projects/Superalgos/Schemas/Docs-Topics/user-examples-for-stop-loss-001-trailing-stop-loss-percentage-of-rate.json b/Projects/Superalgos/Schemas/Docs-Topics/user-examples-for-stop-loss-001-trailing-stop-loss-percentage-of-rate.json new file mode 100644 index 000000000..58f92f209 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/user-examples-for-stop-loss-001-trailing-stop-loss-percentage-of-rate.json @@ -0,0 +1,44 @@ +{ + "topic": "User Examples for Stop Loss ", + "pageNumber": 1, + "type": " Trailing Stop Loss - Percentage of Rate", + "definition": { + "text": "A Trailing Stop Loss tracks the rate and sets the Stop Loss a given distance away from it", + "updated": 1615285882641 + }, + "paragraphs": [ + { + "style": "Note", + "text": "Change the \"trailingStopLoss\" value to what you see fit.", + "updated": 1615286541864 + }, + { + "style": "Subtitle", + "text": "Trailing Stop Loss for a Long Position" + }, + { + "style": "Javascript", + "text": "\nlet trailingStopLoss = 3 // Set the percentage you wish your Trailing Stop Loss to trail\n\nif ( chart.at01min.candle.close * ( 1 - (trailingStopLoss / 100) ) > tradingEngine.tradingCurrent.position.stopLoss.value ) {\nchart.at01min.candle.close * ( 1 - (trailingStopLoss / 100) )\n}\nelse {\ntradingEngine.tradingCurrent.position.stopLoss.value\n}", + "updated": 1615286314820 + }, + { + "style": "Important", + "text": "For a Long Position we want our Stop Loss below the actual rate", + "updated": 1615286643236 + }, + { + "style": "Subtitle", + "text": "Trailing Stop Loss for a Short Position" + }, + { + "style": "Javascript", + "text": "let trailingStopLoss = 3 // Set the percentage you wish your Trailing Stop Loss to trail\n\nif ( chart.at01min.candle.close * ( 1 + (trailingStopLoss / 100) ) < tradingEngine.tradingCurrent.position.stopLoss.value ) {\nchart.at01min.candle.close * ( 1 + (trailingStopLoss / 100) )\n}\nelse {\ntradingEngine.tradingCurrent.position.stopLoss.value\n}", + "updated": 1615297661487 + }, + { + "style": "Important", + "text": "For a Short Position we want our Stop Loss above the actual rate", + "updated": 1615286643236 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/user-examples-for-stop-loss-002-trailing-stop-loss-risk-of-total-quoted-balance.json b/Projects/Superalgos/Schemas/Docs-Topics/user-examples-for-stop-loss-002-trailing-stop-loss-risk-of-total-quoted-balance.json new file mode 100644 index 000000000..4c1c2097f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/user-examples-for-stop-loss-002-trailing-stop-loss-risk-of-total-quoted-balance.json @@ -0,0 +1,46 @@ +{ + "topic": "User Examples for Stop Loss ", + "pageNumber": 2, + "type": " Trailing Stop Loss - Risk of Total Quoted Balance", + "definition": { + "text": "This Trailing Stop Loss sets the Stop Loss according to the percentage you are willing to risk out of your Total Quoted Balance", + "updated": 1615287509462 + }, + "paragraphs": [ + { + "style": "Note", + "text": "Change the \"riskPercentage\" value to what you see fit", + "updated": 1615288038247 + }, + { + "style": "Title", + "text": "Risk of Total Quoted Balance" + }, + { + "style": "Text", + "text": "The idea is based upon that with each position you take, you only want to risk a certain percentage out of your total balance." + }, + { + "style": "Text", + "text": "Given that you might take several positions, this code sets the stop loss at the point where the loss would be equal to the Risk Percentage out of your Total Quoted Balance." + }, + { + "style": "Subtitle", + "text": "Example for a Long Position" + }, + { + "style": "Javascript", + "text": "\nlet riskPercentage = 2\n\nif ( tradingEngine.tradingCurrent.position.entryTargetRate.value * (1 - (( tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset.balance.value * (riskPercentage / 100)) / tradingEngine.tradingCurrent.strategyOpenStage.stageQuotedAsset.sizeFilled.value)) > tradingEngine.tradingCurrent.position.stopLoss.value ) \n\n{\ntradingEngine.tradingCurrent.position.entryTargetRate.value * (1 - (( tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset.balance.value * (riskPercentage / 100)) / tradingEngine.tradingCurrent.strategyOpenStage.stageQuotedAsset.sizeFilled.value))\n}\n\nelse {\ntradingEngine.tradingCurrent.position.stopLoss.value\n}", + "updated": 1615287799360 + }, + { + "style": "Subtitle", + "text": "Example for a Short Position" + }, + { + "style": "Javascript", + "text": "let riskPercentage = 2\n\nif ( tradingEngine.tradingCurrent.position.entryTargetRate.value * (1 + (( tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset.balance.value * (riskPercentage / 100)) / tradingEngine.tradingCurrent.strategyOpenStage.stageQuotedAsset.sizeFilled.value)) < tradingEngine.tradingCurrent.position.stopLoss.value ) \n\n{\ntradingEngine.tradingCurrent.position.entryTargetRate.value * (1 + (( tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset.balance.value * (riskPercentage / 100)) / tradingEngine.tradingCurrent.strategyOpenStage.stageQuotedAsset.sizeFilled.value))\n}\n\nelse {\ntradingEngine.tradingCurrent.position.stopLoss.value\n}", + "updated": 1615297434458 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/user-examples-for-stop-loss-003-trailing-stop-loss-initial-stop-loss-risk-and-targets-combo.json b/Projects/Superalgos/Schemas/Docs-Topics/user-examples-for-stop-loss-003-trailing-stop-loss-initial-stop-loss-risk-and-targets-combo.json new file mode 100644 index 000000000..d62d36c0d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Topics/user-examples-for-stop-loss-003-trailing-stop-loss-initial-stop-loss-risk-and-targets-combo.json @@ -0,0 +1,43 @@ +{ + "topic": "User Examples for Stop Loss ", + "pageNumber": 3, + "type": " Trailing Stop Loss - Initial Stop Loss, Risk and Targets Combo", + "definition": { + "text": "Setting an initial Risk Percentage of your Total Quoted Balance, after reaching the first Profit Target your first Trailing Stop Loss takes place. After reaching second Profit Target, we'll set the Trailing Stop Loss to a fixed percentage.", + "updated": 1615298179984 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Initial Stop Loss, Risk and Target Combo", + "updated": 1615297964577 + }, + { + "style": "Text", + "text": "The idea of this is to initially give the position some space to move." + }, + { + "style": "Text", + "text": "When ever the position reaches the first Profit Target, it will use a Trailing Stop Loss set to the Profit divided by your Profit Divider. After reaching the second Profit Target, the Trailing Stop Loss will use a fixed percentage." + }, + { + "style": "Subtitle", + "text": "Example for a Long Position" + }, + { + "style": "Javascript", + "text": "\nriskPercentage = 1 // Initial Stop Loss is set by this Risk Percentage out of your Total Quoted Balance\n\nprofitTarget1 = 0.5 // First Percent Profit\nprofitDivider = 2 // The profit will be divided with this value and set your Stop Loss to the Entry Rate + Half Profit\n\nprofitTarget2 = 5 // Second Percent Profit\ntrailingStopLoss = 2.5 // Fixed Trailing Percentage\n\nif ( chart.at01min.candle.close > (tradingEngine.tradingCurrent.position.entryTargetRate.value * (1 + (profitTarget2 / 100))) && tradingEngine.tradingCurrent.position.stopLoss.value < (chart.at01min.candle.close * (1 - (trailingStopLoss2 / 100))) ) {\n chart.at01min.candle.close * (1 - (trailingStopLoss / 100))\n}\n\nelse if ( chart.at01min.candle.close > (tradingEngine.tradingCurrent.position.entryTargetRate.value * (1 + (profitTarget1 / 100))) && tradingEngine.tradingCurrent.position.stopLoss.value < chart.at01min.candle.close - ( (chart.at01min.candle.close - tradingEngine.tradingCurrent.position.entryTargetRate.value) / profitDivider) ) {\n chart.at01min.candle.close - ( (chart.at01min.candle.close - tradingEngine.tradingCurrent.position.entryTargetRate.value) / profitDivider)\n}\n\nelse {\n tradingEngine.tradingCurrent.position.entryTargetRate.value * (1 - (( tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset.balance.value * (riskPercentage / 100)) / tradingEngine.tradingCurrent.strategyOpenStage.stageQuotedAsset.sizeFilled.value))\n}", + "updated": 1615298020120 + }, + { + "style": "Subtitle", + "text": "Example for a Short Position", + "updated": 1615298191803 + }, + { + "style": "Javascript", + "text": "\nriskPercentage = 1 // Initial Stop Loss is set by this Risk Percentage out of your Total Quoted Balance\n\nprofitTarget1 = 0.5 // First Percent Profit\nprofitDivider = 2 // The profit will be divided with this value and set your Stop Loss to the Entry Rate + Half Profit\n\nprofitTarget2 = 5 // Second Percent Profit\ntrailingStopLoss = 2.5 // Fixed Trailing Percentage\n\nif ( chart.at01min.candle.close < (tradingEngine.tradingCurrent.position.entryTargetRate.value * (1 - (profitTarget2 / 100))) && tradingEngine.tradingCurrent.position.stopLoss.value > (chart.at01min.candle.close * (1 + (trailingStopLoss2 / 100))) ) {\n chart.at01min.candle.close * (1 + (trailingStopLoss / 100))\n}\n\nelse if ( chart.at01min.candle.close < (tradingEngine.tradingCurrent.position.entryTargetRate.value * (1 - (profitTarget1 / 100))) && tradingEngine.tradingCurrent.position.stopLoss.value > chart.at01min.candle.close + ( (chart.at01min.candle.close - tradingEngine.tradingCurrent.position.entryTargetRate.value) / profitDivider) ) {\n chart.at01min.candle.close + ( (chart.at01min.candle.close + tradingEngine.tradingCurrent.position.entryTargetRate.value) / profitDivider)\n}\n\nelse {\n tradingEngine.tradingCurrent.position.entryTargetRate.value * (1 + (( tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset.balance.value * (riskPercentage / 100)) / tradingEngine.tradingCurrent.strategyOpenStage.stageQuotedAsset.sizeFilled.value))\n}", + "updated": 1615298026442 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-001-tutorial-step-back-to-school.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-001-tutorial-step-back-to-school.json new file mode 100644 index 000000000..101d55d1d --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-001-tutorial-step-back-to-school.json @@ -0,0 +1,29 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "1", + "type": "Tutorial Step - Back to School!", + "definition": { + "text": "I hear my friend the Welcome tutorial showed you around and mesmerized you with a few cheap tricks... What a show-off!", + "updated": 1615310208456, + "icon": { + "name": "tutorial", + "project": "Superalgos" + } + }, + "paragraphs": [ + { + "style": "Note", + "text": "Well, now it's time to work!", + "updated": 1615310150633 + }, + { + "style": "Text", + "text": "Learning Superalgos is quite an endeavor! Not because it's difficult, but because the system is vast, extremely flexible, and is built on a new paradigm that is not obvious in the beginning..." + }, + { + "style": "Callout", + "text": "But don't worry! If you pay attention and do all available tutorials, you will be able to tackle the learning curve like a champ!", + "updated": 1615308273598 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-002-tutorial-step-from-the-ground-up.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-002-tutorial-step-from-the-ground-up.json new file mode 100644 index 000000000..f5808ee98 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-002-tutorial-step-from-the-ground-up.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "2", + "type": "Tutorial Step - From the Ground Up", + "definition": { + "text": "To be fair, my welcoming friend taught you many of the basic operations that you need to know to move around and feel comfortable with the interface...", + "updated": 1615311043130, + "icon": { + "name": "tutorial", + "project": "Superalgos" + } + }, + "paragraphs": [ + { + "style": "Text", + "text": "With me, you are going to complete your basic education! Once you finish this tutorial, you will be ready to start learning how to build your own Trading System... That's what all is about after all, right?", + "updated": 1615459292734 + }, + { + "style": "Callout", + "text": "We will focus on completing the overview of the interface, dealing with workspaces, backups, plugins, and more!", + "updated": 1615311348229 + }, + { + "style": "Success", + "text": "Let's get on with it!", + "updated": 1615311356804 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-003-tutorial-step-lets-start-with-the-menu.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-003-tutorial-step-lets-start-with-the-menu.json new file mode 100644 index 000000000..96b2ea4a9 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-003-tutorial-step-lets-start-with-the-menu.json @@ -0,0 +1,29 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "3", + "type": "Tutorial Step - Let's Start With the Menu", + "definition": { + "text": "The left-hand side of a node's menu is common to most nodes. The right-hand side, however, is specific to the type of node!", + "updated": 1615315122923, + "icon": { + "name": "unpinned-node", + "project": "Superalgos" + } + }, + "paragraphs": [ + { + "style": "Note", + "text": "Let's take a close look at the left-hand side!", + "updated": 1615313694440 + }, + { + "style": "Text", + "text": "The design space functions under the paradigm of a self-organizing workspace in which nodes tend to find their place guided by certain arrangement properties that you may control from the node's menu." + }, + { + "style": "Callout", + "text": "Click the pin button on the top-left corner of the Session Base Asset node. Now drag the node away and release it! Now drag and release any other node without pinning it. See the difference?", + "updated": 1615315170878 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-004-tutorial-step-pinned-nodes-cant-dance.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-004-tutorial-step-pinned-nodes-cant-dance.json new file mode 100644 index 000000000..8b0f441ab --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-004-tutorial-step-pinned-nodes-cant-dance.json @@ -0,0 +1,29 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "4", + "type": "Tutorial Step - Pinned Nodes Can't Dance", + "definition": { + "text": "When a node is pinned, it becomes fixed to a position regardless of the setting of the rest of the arrangement properties!", + "icon": { + "name": "pinned-node", + "project": "Superalgos" + }, + "updated": 1615315595276 + }, + "paragraphs": [ + { + "style": "Text", + "text": "You may pin a node, a structure of nodes, and even the complete hierarchy. Let's try something else...", + "updated": 1615316007384 + }, + { + "style": "Callout", + "text": "Pin the Trading Parameters node and drag it away!" + }, + { + "style": "Note", + "text": "Notice how all offspring nodes follow the parent node. However, the Session Base Asset node remains in position! Before we move on, unpin all nodes to keep the workspace in order!", + "updated": 1615316147113 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-005-tutorial-step-mary-go-round.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-005-tutorial-step-mary-go-round.json new file mode 100644 index 000000000..8e02bb8b8 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-005-tutorial-step-mary-go-round.json @@ -0,0 +1,25 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "5", + "type": "Tutorial Step - Mary Go Round", + "definition": { + "text": "By default, nodes are locked to a rotational symmetry around their parent node. The symmetry may span 360 degrees or less, depending on the setting!", + "updated": 1615316869620, + "icon": { + "name": "set-angle-to-parent-node-to-360-degrees", + "project": "Superalgos" + } + }, + "paragraphs": [ + { + "style": "Text", + "text": "When you click on the Angle to Parent node button, you cycle among five different settings: 360, 180, 90, and 45 degrees, plus the option to dissable the rotational symmetry.", + "updated": 1615459469714 + }, + { + "style": "Callout", + "text": "Take a quick look at the setting selected on each of the offspring of the Lightning Strike Backtesting Session node: Trading Parameters, Trading System Reference, and the Trading Engine Reference. They are all set to 180 degrees, right?", + "updated": 1615317622421 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-006-tutorial-step-180-degrees.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-006-tutorial-step-180-degrees.json new file mode 100644 index 000000000..843618bc1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-006-tutorial-step-180-degrees.json @@ -0,0 +1,29 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "6", + "type": "Tutorial Step - 180 Degrees", + "definition": { + "text": "When all offspring nodes are set to 180 degrees angle, each node takes a slot in a fraction of a circumference spanning 180 degrees, normal to the parent.", + "updated": 1615319473489, + "icon": { + "name": "set-angle-to-parent-node-to-180-degrees", + "project": "Superalgos" + } + }, + "paragraphs": [ + { + "style": "Text", + "text": "But what happens if one of the offspring nodes has a different Angle to Parent setting? Let's run an experiment!", + "updated": 1615459555706 + }, + { + "style": "Callout", + "text": "Click once on the Trading Parameters Angle to Parent setting and exit the menu!" + }, + { + "style": "Text", + "text": "The node takes a slot in a smaller angle — 90 degrees! Do the same with the Trading System Reference and Trading Engine Reference nodes!", + "updated": 1615318799392 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-007-tutorial-step-nodes-independence.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-007-tutorial-step-nodes-independence.json new file mode 100644 index 000000000..564a8ba83 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-007-tutorial-step-nodes-independence.json @@ -0,0 +1,33 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "7", + "type": "Tutorial Step - Node's Independence", + "definition": { + "text": "Notice how you changed the Angle to Parent setting on different siblings and each of them reacted to the new setting independently from the rest!", + "updated": 1615319889017, + "icon": { + "name": "set-angle-to-parent-node-to-90-degrees", + "project": "Superalgos" + } + }, + "paragraphs": [ + { + "style": "Text", + "text": "You control the position of each node from within the node's menu. Not the parent node nor the siblings may affect the position... save for this cool exception:", + "updated": 1615459643749 + }, + { + "style": "Callout", + "text": "Go to the Lightning Strike Backtesting Session and select Add Missing Children from the right-hand side of the menu!" + }, + { + "style": "Success", + "text": "Notice how the Social Bots node inherited the Angle to Parent setting from its closest sibling!", + "updated": 1615322906744 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-008-tutorial-step-free-range-nodes.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-008-tutorial-step-free-range-nodes.json new file mode 100644 index 000000000..eba935364 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-008-tutorial-step-free-range-nodes.json @@ -0,0 +1,25 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "8", + "type": "Tutorial Step - Free-range Nodes", + "definition": { + "text": "When you select the option to cancel the Angle to Parent setting, the node is free to take any angle relative to its parent and siblings!", + "updated": 1615473919848, + "icon": { + "name": "remove-angle-to-parent-node", + "project": "Superalgos" + } + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Open the menu of the Trading Parameters node, select the option to cancel the Angle to Parent setting, and move the node in any direction!", + "updated": 1615474082667 + }, + { + "style": "Note", + "text": "As you can see, the node stays where you leave it, and the dotted line connecting to its parent turns yellow. Notice that both the angle to the parent node and the distance become arbitrary.", + "updated": 1615474122131 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-009-tutorial-step-controlling-distances.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-009-tutorial-step-controlling-distances.json new file mode 100644 index 000000000..3c4c8d49b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-009-tutorial-step-controlling-distances.json @@ -0,0 +1,46 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "9", + "type": "Tutorial Step - Controlling Distances", + "definition": { + "text": "The next option in the menu controls the distance from the node to its parent. Clicking on the button cycles through options.", + "icon": { + "name": "set-distance-to-parent-node-to-one", + "project": "Superalgos" + }, + "updated": 1615474588252 + }, + "paragraphs": [ + { + "style": "Text", + "text": "The distance from a node to its parent is set relative to the distance from the parent to its parent node. The available options are:", + "updated": 1615474735608 + }, + { + "style": "List", + "text": "Pink: 0.25X", + "updated": 1615474784140 + }, + { + "style": "List", + "text": "Orange: 0.5X" + }, + { + "style": "List", + "text": "Green: 1X" + }, + { + "style": "List", + "text": "Blue: 1.5X" + }, + { + "style": "List", + "text": "Red: 2X" + }, + { + "style": "Text", + "text": "Let's say that you choose the green option. The distance from the node to its parent will be the same distance that separates the parent node from its parent!", + "updated": 1615475003479 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-010-tutorial-step-play-with-the-tape.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-010-tutorial-step-play-with-the-tape.json new file mode 100644 index 000000000..9397beae0 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-010-tutorial-step-play-with-the-tape.json @@ -0,0 +1,33 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "10", + "type": "Tutorial Step - Play With The Tape!", + "definition": { + "text": "Try the different distance settings of the Lightning Strike Trading System Reference node! Go ahead! Click the tape button!", + "icon": { + "name": "trading-system-reference", + "project": "Superalgos" + }, + "updated": 1615476811627 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Pretty straightforward, right? Now, what happens when the node you are adjusting has offspring of its own?", + "updated": 1615476877641 + }, + { + "style": "Callout", + "text": "Let's find out! Click the Distance to Parent button once on the Trading Parameters node!" + }, + { + "style": "Note", + "text": "Because you increased the distance separating the Trading Parameters node from the Backtesting Session node, the offspring of the Trading Parameters node also increased proportionally!", + "updated": 1615476086180 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-011-tutorial-step-how-about-the-hierarchy.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-011-tutorial-step-how-about-the-hierarchy.json new file mode 100644 index 000000000..82cd32b83 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-011-tutorial-step-how-about-the-hierarchy.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "11", + "type": "Tutorial Step - How About The Hierarchy?", + "definition": { + "text": "The reason why the distance to the parent node is relative to the distance of the parent to its parent is so that you may affect long structures of nodes!", + "updated": 1615477794893, + "icon": { + "name": "set-distance-to-parent-node-to-one-and-a-half", + "project": "Superalgos" + } + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Click once on the Distance to Parent button of the Network node!", + "updated": 1615477834548 + }, + { + "style": "Text", + "text": "Wow! See? These tools allow you full control over how you visually organize hierarchies!", + "updated": 1615478179417 + }, + { + "style": "Success", + "text": "Try canceling the Distance to Parent setting on the Testing Trading Tasks node! As you can see, you may set any arbitrary distance to the parent node, but the angle to the parent remains fixed.", + "updated": 1615478515588 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-012-tutorial-step-arrangement-style.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-012-tutorial-step-arrangement-style.json new file mode 100644 index 000000000..26d047137 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-012-tutorial-step-arrangement-style.json @@ -0,0 +1,54 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "12", + "type": "Tutorial Step - Arrangement Style", + "definition": { + "text": "The button cycles through several arrangement options that affect where a node is placed in relation to its parent.", + "icon": { + "name": "set-node-arrangement-to-concave", + "project": "Superalgos" + }, + "updated": 1615491939732 + }, + "paragraphs": [ + { + "style": "Text", + "text": "In the drawing, the orange dot represents the parent node, and the blue dots represent the node adopting the specific arrangement style.", + "updated": 1615492521130 + }, + { + "style": "List", + "text": "Concave: This is the default style. The node adopts a slot on a circumsference around its parent node.", + "updated": 1615492168857 + }, + { + "style": "List", + "text": "Convex: The slot is on a convex curve.", + "updated": 1615492208853 + }, + { + "style": "List", + "text": "Vertical-Right: On a vertical line to the right.", + "updated": 1615492432352 + }, + { + "style": "List", + "text": "Vertical-Left: The slot is on a vertical line to the left.", + "updated": 1615492424255 + }, + { + "style": "List", + "text": "Horizontal-Bottom: On a horizontal line below.", + "updated": 1615492441259 + }, + { + "style": "List", + "text": "Horizontal-Top: The slot is on a horizontal line above.", + "updated": 1615492346954 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-003-automating-actions-adding-a-children-node-property.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-013-tutorial-step-shall-we-improve-this-.json similarity index 54% rename from Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-003-automating-actions-adding-a-children-node-property.json rename to Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-013-tutorial-step-shall-we-improve-this-.json index d3ca99af2..9c97a8097 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/how-to-automate-actions-at-the-design-space-003-automating-actions-adding-a-children-node-property.json +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-013-tutorial-step-shall-we-improve-this-.json @@ -1,9 +1,10 @@ { - "topic": "How to Automate Actions at The Design Space", - "pageNumber": "3", - "type": "Automating Actions - Adding a Children Node Property", + "tutorial": "Basic Education", + "pageNumber": "13", + "type": "Tutorial Step - Shall We Improve This?", "definition": { - "text": "Write a summary for this topic page." + "text": "If you experiment with this feature, you will notice that the behavior of each of the settings is not clear or predictable.", + "updated": 1615492937986 }, "paragraphs": [ { diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-013-tutorial-step-shall-we-improve-this.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-013-tutorial-step-shall-we-improve-this.json new file mode 100644 index 000000000..954044c09 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-013-tutorial-step-shall-we-improve-this.json @@ -0,0 +1,25 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "13", + "type": "Tutorial Step - Shall We Improve This?", + "definition": { + "text": "If you experiment with this feature, you will notice that the behavior of each of the settings is not clear or predictable.", + "updated": 1615492937986, + "icon": { + "name": "set-node-arrangement-to-concave", + "project": "Superalgos" + } + }, + "paragraphs": [ + { + "style": "Important", + "text": "The current implementation of this feature is not optimal, and the behavior of some of the options is hard to predict. If you are a developer, this may be a great opportunity to iterate on the existing code and take this feature to a more usable state!", + "updated": 1615493927202 + }, + { + "style": "Callout", + "text": "Feel free to try this feature, but you will most likely want to go back to the default setting!", + "updated": 1615493850572 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-014-tutorial-step-freeze.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-014-tutorial-step-freeze.json new file mode 100644 index 000000000..7c37d5fdc --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-014-tutorial-step-freeze.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "14", + "type": "Tutorial Step - Freeze!", + "definition": { + "text": "The freeze button makes sense under very specific circumstances: when physics are activated at the level of the Design Space.", + "updated": 1615543120064, + "icon": { + "name": "freeze-structure-of-nodes", + "project": "Superalgos" + } + }, + "paragraphs": [ + { + "style": "Text", + "text": "The Design Space offers some customization features, one of which is activating the physics of the universe. When physics is on, the whole space becomes alive!", + "updated": 1615544003132 + }, + { + "style": "Note", + "text": "We won't go into that rabbit hole at this point as it's not in the basic education curriculum!", + "updated": 1615544598765 + }, + { + "style": "Text", + "text": "The freeze option freezes the node’s chain connections with its parent and offspring and connecting lines turn blue. Freezing releases CPU resources when physics animations are on, as the system stops calculating nodes' positions and status.", + "updated": 1615544553909 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-015-tutorial-step-lets-talk-backups.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-015-tutorial-step-lets-talk-backups.json new file mode 100644 index 000000000..7df801462 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-015-tutorial-step-lets-talk-backups.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "15", + "type": "Tutorial Step - Let's Talk Backups", + "definition": { + "text": "Backups are very powerful, and there are multiple use cases! When you click on the backup button, the node and its offspring are saved on a JSON file!", + "updated": 1615546227075, + "icon": { + "name": "backup-entity", + "project": "Superalgos" + } + }, + "paragraphs": [ + { + "style": "Text", + "text": "You may want to backup a structure of nodes to safeguard your work or to keep a copy of the structure in its current state.", + "updated": 1615546257502 + }, + { + "style": "Callout", + "text": "Take a backup of the Lightning Strike trading system and check your downloads folder!", + "updated": 1615546438350 + }, + { + "style": "Note", + "text": "The file is downloaded by the browser and stored in the default Downloads folder. If you take multiple backups of the same file, the browser renames the file with sequential numbers.", + "updated": 1615546360738 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-016-tutorial-step-working-with-versions.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-016-tutorial-step-working-with-versions.json new file mode 100644 index 000000000..2e0616286 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-016-tutorial-step-working-with-versions.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "16", + "type": "Tutorial Step - Working With Versions", + "definition": { + "text": "Let's say you want to test a strategy with different sets of parameters, so you take a backup of the Trading Parameters node!", + "updated": 1615571330616, + "icon": { + "name": "hand-drag", + "project": "Superalgos" + } + }, + "paragraphs": [ + { + "style": "Text", + "text": "Go ahead and take the backup! Now that you have a backup of all Trading Parameters, you may change any of them knowing that you can always go back to your backup! If you are on Chrome, the backup must be visible in the bottom-left corner of the browser window.", + "updated": 1615571301913 + }, + { + "style": "Callout", + "text": "Now drag the backup file and drop it in the Design Space! That's how you restore a backup!", + "updated": 1615571393497 + }, + { + "style": "Text", + "text": "Easy right? In the next step, I'll show you how to get back to using the original version!", + "updated": 1615571399267 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-017-tutorial-step-detaching-and-attaching.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-017-tutorial-step-detaching-and-attaching.json new file mode 100644 index 000000000..1bb3dc126 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-017-tutorial-step-detaching-and-attaching.json @@ -0,0 +1,25 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "17", + "type": "Tutorial Step - Detaching and Attaching", + "definition": { + "text": "Now follow my lead! We are not really going to test the strategy with different parameters... we are just simulating a use case!", + "icon": { + "name": "detach-node", + "project": "Superalgos" + }, + "updated": 1615571995273 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Let's pretend we modified the Trading Parameters and now we want to go back to using the original ones. We already have the backup in the design space — detached from the hierarchy — and we need to replace the existing Trading Parameters node with the backup.", + "updated": 1615572909121 + }, + { + "style": "Callout", + "text": "Go to the Trading Parameters node that is currently in use — the one attached to the Backtesting Session node — and click the Detach Node button. The node separates from the hierarchy! You may now move it to the side!", + "updated": 1615572965552 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-018-tutorial-step-attaching-the-backup.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-018-tutorial-step-attaching-the-backup.json new file mode 100644 index 000000000..98d0874d1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-018-tutorial-step-attaching-the-backup.json @@ -0,0 +1,29 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "18", + "type": "Tutorial Step - Attaching The Backup", + "definition": { + "text": "Now we need to attach the backup of the Trading Parameters node to the Backtesting Session. How do we do that?", + "icon": { + "name": "mouse-right-click", + "project": "Superalgos" + }, + "updated": 1615573035743 + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Right-click on the Trading Parameters node and pull it closer to the Backtesting session node! Release when you see an orange ring surrounding the Backtesting Session node!" + }, + { + "style": "Text", + "text": "That's it! The backup of the Trading Parameters node is restored and back in use.", + "updated": 1615573476475 + }, + { + "style": "Note", + "text": "Notice that you may delete the second Trading Parameters node if you wish, or you can keep it on the side for later use.", + "updated": 1615573597034 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-019-tutorial-step-irrelevant-nodes.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-019-tutorial-step-irrelevant-nodes.json new file mode 100644 index 000000000..69100b02e --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-019-tutorial-step-irrelevant-nodes.json @@ -0,0 +1,25 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "19", + "type": "Tutorial Step - Irrelevant Nodes", + "definition": { + "text": "Nodes that are not attached to a hierarchy are not computed. They exist in the workspace, but they don't affect the workings of the system at any level.", + "updated": 1615575416918, + "icon": { + "name": "detach-node", + "project": "Superalgos" + } + }, + "paragraphs": [ + { + "style": "Text", + "text": "This means that you may keep as many structures of nodes detached from hierarchies, for as long as you wish, keeping them at hand for later use, or for whatever reason.", + "updated": 1615580307483 + }, + { + "style": "Success", + "text": "A common scenario is keeping multiple versions of certain definitions while building strategies, so that you may test a set of rules and switch to other rules for the next run. You may even keep multiple versions of entire strategies!", + "updated": 1615575707975 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-021-tutorial-step-nodes-attaching-rules.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-021-tutorial-step-nodes-attaching-rules.json new file mode 100644 index 000000000..92d2620a5 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-021-tutorial-step-nodes-attaching-rules.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "21", + "type": "Tutorial Step - Nodes' Attaching Rules", + "definition": { + "text": "Click the help button on the Trading Parameters node to access the node's Docs page. I'm going to show you something...", + "icon": { + "name": "help", + "project": "Superalgos" + }, + "updated": 1615580946356 + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Scroll the page all the way to the bottom until you find the Trading Parameters Attaching Rules title.", + "updated": 1615583276420 + }, + { + "style": "Text", + "text": "Each node may be attached to certain node types. These attaching rules are listed on the node's page in the Docs.", + "updated": 1615583315164 + }, + { + "style": "Success", + "text": "When there are several nodes that may accept the connection, each candidate displays a grey ring indicating their readiness to take the attachment. Only the candidate closer to the node to be attached is highlighted in orange.", + "updated": 1615582903959 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-022-tutorial-step-dealing-with-references.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-022-tutorial-step-dealing-with-references.json new file mode 100644 index 000000000..97954025f --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-022-tutorial-step-dealing-with-references.json @@ -0,0 +1,39 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "22", + "type": "Tutorial Step - Dealing with References", + "definition": { + "text": "References are how a node may obtain information about another otherwise unrelated node. This is a crucial concept so pay attention!", + "updated": 1615797468978, + "icon": { + "name": "delink-node", + "project": "Superalgos" + } + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Read this page carefully! If you are not a developer, you may want to read it twice until it sinks in!", + "updated": 1615797106813 + }, + { + "style": "Text", + "text": "In brief, references have...", + "updated": 1615797242493 + }, + { + "style": "List", + "text": "a direction: outgoing or incoming,", + "updated": 1615797236023 + }, + { + "style": "List", + "text": "and a scope: internal or external." + }, + { + "style": "Note", + "text": "The later concept —references' scope— is crucial to understand the differences between Backups and Clones.", + "updated": 1615797959970 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-023-tutorial-step-lets-see-some-references.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-023-tutorial-step-lets-see-some-references.json new file mode 100644 index 000000000..86db0f1f1 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-023-tutorial-step-lets-see-some-references.json @@ -0,0 +1,25 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "23", + "type": "Tutorial Step - Let's See Some References", + "definition": { + "text": "Notice the two nodes under the Backtesting Session: Trading System Reference and Trading Engine Reference. Why do we need these nodes?", + "updated": 1615798435799, + "icon": { + "name": "trading-system-reference", + "project": "Superalgos" + } + }, + "paragraphs": [ + { + "style": "Text", + "text": "The Backtesting Session needs to reference the Trading System so that it may obtain the rules for trading. It must also reference the Trading Engine so that it may store information relative to the trading session. However, a node may establish only one outgoing reference!", + "updated": 1615798936552 + }, + { + "style": "Note", + "text": "That is why these nodes exist: they are an aid to the Backtesting Session node so that each of them may reference one node!", + "updated": 1615798882867 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-024-tutorial-step-visualizing-references.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-024-tutorial-step-visualizing-references.json new file mode 100644 index 000000000..b61183182 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-024-tutorial-step-visualizing-references.json @@ -0,0 +1,35 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "24", + "type": "Tutorial Step - Visualizing References", + "definition": { + "text": "When you hover the mouse pointer over a node with an outgoing reference, the reference becomes visible.", + "icon": { + "name": "key-r", + "project": "Superalgos" + }, + "updated": 1615804514428 + }, + "paragraphs": [ + { + "style": "Text", + "text": "But there's also a way to make all references visible!", + "updated": 1615804582821 + }, + { + "style": "Callout", + "text": "Hit the following key combination:
Ctrl + Shift + Alt + Key-R", + "updated": 1615804638167 + }, + { + "style": "Text", + "text": "Now you can see the references going out from both the Trading System Reference node and the Trading Engine Reference node.", + "updated": 1615805161269 + }, + { + "style": "Success", + "text": "Right-click to access the Design Space map and notice other references that may be visible.", + "updated": 1615805249449 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-025-tutorial-step-establishing-references.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-025-tutorial-step-establishing-references.json new file mode 100644 index 000000000..b59ab0a83 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-025-tutorial-step-establishing-references.json @@ -0,0 +1,34 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "25", + "type": "Tutorial Step - Establishing References", + "definition": { + "text": "At some point, you will need to establish a reference, so let's do some basic training to develop the formidable skills required!", + "updated": 1615806228297, + "icon": { + "name": "delink-node", + "project": "Superalgos" + } + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Click the delink button on the menu of the Trading System Reference node!", + "updated": 1615806300267 + }, + { + "style": "Note", + "text": "You just broke the reference! But don't worry... we'll recreate it in the next steps!", + "updated": 1615806406944 + }, + { + "style": "Text", + "text": "To establish a reference, follow the same process you use to attach a node. That is, right-click on the node where the reference will originate, drag it close to the node with which the reference will be established, and release the click once the orange ring shows up!", + "updated": 1615806699660 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-026-tutorial-step-lets-get-on-with-it.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-026-tutorial-step-lets-get-on-with-it.json new file mode 100644 index 000000000..568a35e85 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-026-tutorial-step-lets-get-on-with-it.json @@ -0,0 +1,37 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "26", + "type": "Tutorial Step - Let's Get On With It!", + "definition": { + "text": "The tricky bit is when the destination node is far away from the originator node, maybe even in different hierarchies!", + "updated": 1615807480540, + "icon": { + "name": "mouse-right-click", + "project": "Superalgos" + } + }, + "paragraphs": [ + { + "style": "Text", + "text": "These UI tricks may make your life easier:", + "updated": 1615807543929 + }, + { + "style": "List", + "text": "Use the design space map as many times as required to find your way from node to node." + }, + { + "style": "List", + "text": "Pin the node you are going to move across the design space, so that you may drop it at any point to check the design space map for directions." + }, + { + "style": "List", + "text": "Use Ctrl / Cmd + arrow keys to drag the node across the screen after clicking on it with the mouse. Keep keys pressed and the node flies!", + "updated": 1615807572088 + }, + { + "style": "List", + "text": "Remove the pin once the reference is established so that the node goes back to its place." + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-027-tutorial-step-is-it-done.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-027-tutorial-step-is-it-done.json new file mode 100644 index 000000000..a48351d31 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-027-tutorial-step-is-it-done.json @@ -0,0 +1,37 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "27", + "type": "Tutorial Step - Is It Done?", + "definition": { + "text": "If you haven't yet, go ahead and establish a reference from the Trading System Reference to the Lightning Strike Trading System!", + "updated": 1615808208398, + "icon": { + "name": "trading-system", + "project": "Superalgos" + } + }, + "paragraphs": [ + { + "style": "Text", + "text": "You may find this technique to establish a reference to be a bit clumsy or impractical. If you have a better idea or know how to improve it, feel free to open a feature request issue. Make sure you consider the following:", + "updated": 1615808367637 + }, + { + "style": "List", + "text": "In a complex workspace, there may be hundreds of nodes that may be able to accept a reference." + }, + { + "style": "List", + "text": "The reference must be established unequivocally from a specific node to another specific node.", + "updated": 1615808355918 + }, + { + "style": "Success", + "text": "In the meantime, let me assure you it's not that hard once you do it a couple of times!" + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-028-tutorial-step-one-last-point.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-028-tutorial-step-one-last-point.json new file mode 100644 index 000000000..beafb21fe --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-028-tutorial-step-one-last-point.json @@ -0,0 +1,25 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "28", + "type": "Tutorial Step - One Last Point!", + "definition": { + "text": "Pretty much like with Node Attaching Rules, nodes that may establish references also have rules in that regard.", + "icon": { + "name": "trading-system-reference", + "project": "Superalgos" + }, + "updated": 1615809225061 + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Go to the Trading System Reference node menu, click the help button, and scroll to the bottom of the page!", + "updated": 1615809494186 + }, + { + "style": "Note", + "text": "If you are a developer, you may want to know that Node Attaching Rules and Node Referencing Rules are defined in the AppSchema.json file in the Schema folder of a Project.", + "updated": 1615809761275 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-029-tutorial-step-back-to-backups.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-029-tutorial-step-back-to-backups.json new file mode 100644 index 000000000..ea633a1ac --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-029-tutorial-step-back-to-backups.json @@ -0,0 +1,40 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "29", + "type": "Tutorial Step - Back to Backups!", + "definition": { + "text": "Now that you understand references, we can go deeper into Backups, and maybe even discuss the differences with Clones!", + "updated": 1615813066430, + "icon": { + "name": "backup-entity", + "project": "Superalgos" + } + }, + "paragraphs": [ + { + "style": "Callout", + "text": "You've got some more reading to do! Please, read this page carefully and let the info sink in!", + "updated": 1615824048748 + }, + { + "style": "Text", + "text": "In summary:", + "updated": 1615823794165 + }, + { + "style": "List", + "text": "Outgoing references: They're always kept intact.", + "updated": 1615824080941 + }, + { + "style": "List", + "text": "Incoming references: They're kept only when the original structure is deleted before restoring the backup.", + "updated": 1615824088439 + }, + { + "style": "List", + "text": "Internal references: They remain internal, only when the original structure is deleted first.", + "updated": 1615824106579 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-030-tutorial-step-hammering-backups-home.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-030-tutorial-step-hammering-backups-home.json new file mode 100644 index 000000000..01de06d4c --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-030-tutorial-step-hammering-backups-home.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "30", + "type": "Tutorial Step - Hammering Backups Home", + "definition": { + "text": "Let's go over the same examples that you just read about so that you learn this by heart!", + "icon": { + "name": "backup-entity", + "project": "Superalgos" + }, + "updated": 1615824452275 + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Take a backup of the Lightning Strike Task and restore it without deleting the original task. Then repeat the operation but deleting the original task before restoring the backup.", + "updated": 1615826657582 + }, + { + "style": "Text", + "text": "Verify that, in both cases, the outgoing references originating at the Trading System Reference and the Trading Engine Reference nodes are preserved.", + "updated": 1615826714283 + }, + { + "style": "Success", + "text": "Remember that outgoing references are always preserved!", + "updated": 1615826789684 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-031-tutorial-step-back-it-up-again.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-031-tutorial-step-back-it-up-again.json new file mode 100644 index 000000000..ee2799cf0 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-031-tutorial-step-back-it-up-again.json @@ -0,0 +1,29 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "31", + "type": "Tutorial Step - Back It Up Again!", + "definition": { + "text": "I told you I was going to hammer home this topic! Let's try the second example!", + "updated": 1615827182099, + "icon": { + "name": "backup-entity", + "project": "Superalgos" + } + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Take a backup of the Lightning Strike Trading System! Restore the back without deleting the original. Then repeat the restore operation but deleting the original trading system first!", + "updated": 1615827877645 + }, + { + "style": "Text", + "text": "Verify how the incoming references are preserved only in the second case!" + }, + { + "style": "Success", + "text": "Remember that, for incoming references to be preserved, you must delete the original structure of nodes before restoring the backup!", + "updated": 1615827931407 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-032-tutorial-step-one-last-backup.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-032-tutorial-step-one-last-backup.json new file mode 100644 index 000000000..41a266018 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-032-tutorial-step-one-last-backup.json @@ -0,0 +1,29 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "32", + "type": "Tutorial Step - One Last Backup!", + "definition": { + "text": "Let's try the third example! Notice the references flowing from polygon vertices to points under the Chart Points node!", + "icon": { + "name": "backup-entity", + "project": "Superalgos" + }, + "updated": 1615828736799 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Take a backup of the Shapes node and restore it on the side without deleting the original. Then repeat, but deleting the original before restoring the backup!", + "updated": 1615828883417 + }, + { + "style": "Callout", + "text": "Notice that in the first case, references point to the original points turning into external references! On the contrary, in the second case, references remain internal!" + }, + { + "style": "Success", + "text": "Remember that references remain internal only when you delete the original structure first!", + "updated": 1615828954919 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-033-tutorial-step-no-need-to-memorize.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-033-tutorial-step-no-need-to-memorize.json new file mode 100644 index 000000000..4122a3787 --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-033-tutorial-step-no-need-to-memorize.json @@ -0,0 +1,25 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "33", + "type": "Tutorial Step - No Need to Memorize", + "definition": { + "text": "I hope you got to grasp the intricacies of backups and how references are affected in each particular restoration case!", + "updated": 1615831565379, + "icon": { + "name": "docs-warning-style", + "project": "Superalgos" + } + }, + "paragraphs": [ + { + "style": "Text", + "text": "You don't need to memorize the individual cases. Instead, if you understand the underlying mechanism involving references, then you may deduce the behavior on each case!", + "updated": 1615838818500 + }, + { + "style": "Note", + "text": "Remember that each node has a specific ID! When a reference is established, both nodes involved have a unique ID. Outgoing references do not depend on the node's ID, but incoming references do! If the backed up node may be restored with the same ID, incoming references will persist; otherwise, they will change or be lost!", + "updated": 1615831079650 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-034-tutorial-step-what-about-clones.json b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-034-tutorial-step-what-about-clones.json new file mode 100644 index 000000000..3a56c9a8b --- /dev/null +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/basic-education-034-tutorial-step-what-about-clones.json @@ -0,0 +1,39 @@ +{ + "tutorial": "Basic Education", + "pageNumber": "34", + "type": "Tutorial Step - What About Clones?", + "definition": { + "text": "Clones differ from backups in that the feature is designed to replicate data structures so that the copies resemble the original.", + "icon": { + "name": "clone-entity", + "project": "Superalgos" + }, + "updated": 1615839114130 + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Read this page carefully!", + "updated": 1615839024514 + }, + { + "style": "Text", + "text": "In summary:", + "updated": 1615839074979 + }, + { + "style": "List", + "text": "Clones behave in the same way whether the original is present upon restoration or not.", + "updated": 1615839267941 + }, + { + "style": "List", + "text": "Incoming references are always discarded." + }, + { + "style": "Success", + "text": "Feel free to test the Clones feature! We'll move on to other topics without further due!", + "updated": 1615839231992 + } + ] +} \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/contribute-to-superalgos-015-tutorial-step-set-up-the-token.json b/Projects/Superalgos/Schemas/Docs-Tutorials/contribute-to-superalgos-015-tutorial-step-set-up-the-token.json index c13be1036..4b149248c 100644 --- a/Projects/Superalgos/Schemas/Docs-Tutorials/contribute-to-superalgos-015-tutorial-step-set-up-the-token.json +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/contribute-to-superalgos-015-tutorial-step-set-up-the-token.json @@ -11,10 +11,14 @@ "updated": 1610815737032 }, "paragraphs": [ + { + "style": "Note", + "text": "Github API is currently at the \"Getting Started\" workspace, under APIs.", + "updated": 1615593559409 + }, { "style": "Callout", - "text": "Copy the token, open the Github API node config, and paste it between the double quotes of the token parameter. Fill in the username parameter with your GitHub.com user, not your email!", - "updated": 1610984794891 + "text": "Copy the token, open the Github API node config, and paste it between the double quotes of the token parameter. Fill in the username parameter with your GitHub.com user, not your email!" }, { "style": "Note", diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-014-tutorial-step-bollinger-bands-rules.json b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-014-tutorial-step-bollinger-bands-rules.json index 0d079211f..8cc4b7c2d 100644 --- a/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-014-tutorial-step-bollinger-bands-rules.json +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/defining-a-trading-idea-014-tutorial-step-bollinger-bands-rules.json @@ -17,8 +17,8 @@ }, { "style": "Link", - "text": "as defined by John Bollinger himself!->https://www.bollingerbands.com/bollinger-band-rules", - "updated": 1610452258290 + "text": "as defined by John Bollinger himself!->www.bollingerbands.com/bollinger-band-rules", + "updated": 1615384340218 }, { "style": "Callout", diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-001-tutorial-install-a-new-market.json b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-001-tutorial-install-a-new-market.json index ecfeb3578..b35f182bd 100644 --- a/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-001-tutorial-install-a-new-market.json +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/install-a-new-market-001-tutorial-install-a-new-market.json @@ -26,13 +26,10 @@ "style": "List", "text": "3. Installing the market " }, - { - "style": "Text", - "text": "Let's get on with it!" - }, { "style": "Callout", - "text": "When you click the Next button below, you will go to the Exchange Assets node under Binance, in the Crypto Ecosystem hierarchy." + "text": "When you click the Next button below, you will go to the Exchange Assets node under Binance, in the Crypto Ecosystem hierarchy. You may learn how to install a market in this exchange so that you may do the same in your exchange of choice later on.", + "updated": 1615202737286 } ] } \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-025-tutorial-step-the-tricks-of-the-trade.json b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-025-tutorial-step-the-tricks-of-the-trade.json index 1813185b5..03194e3c5 100644 --- a/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-025-tutorial-step-the-tricks-of-the-trade.json +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/testing-a-trading-idea-the-other-stages-025-tutorial-step-the-tricks-of-the-trade.json @@ -7,7 +7,8 @@ "project": "Superalgos", "name": "mouse-pointer" }, - "text": "Establishing a reference is kid's play! The only 'challenge' here is that the node to be referenced is far away from the originator." + "text": "Establishing a reference is kid's play! The only \"challenge\" here is that the node to be referenced is far away from the originator.", + "updated": 1615805937875 }, "paragraphs": [ { diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-022-tutorial-step-hungry-for-more-info.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-022-tutorial-step-hungry-for-more-info.json index 176afeabb..65a4e2c47 100644 --- a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-022-tutorial-step-hungry-for-more-info.json +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-022-tutorial-step-hungry-for-more-info.json @@ -12,7 +12,8 @@ { "language": "IT", "text": "Non mi addentrerò in ogni dettaglio mentre proseguiamo, ma se hai bisogno di più info su un nodo il pulsante di help sul menu ti porta direttamente alla relativa documentazione.", - "updated": 1614790878931 + "updated": 1614790878931, + "style": "Definition" } ] }, @@ -24,7 +25,8 @@ { "language": "IT", "text": "La documentazione di un nodo può includere una o più delle seguenti sezioni:", - "updated": 1614790910243 + "updated": 1614790910243, + "style": "Text" } ] }, @@ -35,7 +37,8 @@ { "language": "IT", "text": "Definizione: descrive il nodo o la sua funzione", - "updated": 1614790956373 + "updated": 1614790956373, + "style": "List" } ] }, @@ -46,31 +49,34 @@ { "language": "IT", "text": "Contenuto: descrive come funziona il nodo", - "updated": 1614791022017 + "updated": 1614791022017, + "style": "List" } ] }, { "style": "List", - "text": "Configuration: some node may have one.", - "updated": 1610614516774, + "text": "Configuration: some nodes may have one.", + "updated": 1615304462606, "translations": [ { "language": "IT", "text": "Configurazione: alcuni nodi ne hanno una", - "updated": 1614791040416 + "updated": 1614791040416, + "style": "List" } ] }, { "style": "List", - "text": "Technical: the rest of the infor is usually of a technical nature, oriented to developers.", - "updated": 1610614574015, + "text": "Technical: the rest of the info is usually of a technical nature, oriented to developers.", + "updated": 1615304469703, "translations": [ { "language": "IT", "text": "Info tecniche: il resto delle informazioni sono solitamente di natura tecnica, principalmente per gli sviluppatori.", - "updated": 1614791106174 + "updated": 1614791106174, + "style": "List" } ] }, @@ -81,7 +87,8 @@ { "language": "IT", "text": "Clicca il pulsante di help sul nodo Data Tasks!", - "updated": 1614791129195 + "updated": 1614791129195, + "style": "Callout" } ] } diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-038-tutorial-step-get-in-the-wormhole.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-038-tutorial-step-get-in-the-wormhole.json index 4c5ff41ae..861bc8d04 100644 --- a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-038-tutorial-step-get-in-the-wormhole.json +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-038-tutorial-step-get-in-the-wormhole.json @@ -7,21 +7,49 @@ "project": "Superalgos", "name": "mouse-wheel-up" }, - "text": "It's time to dive into a Time Machine and see what happens! Are you ready for a full-on immersive experience?" + "text": "It's time to dive into a Time Machine and see what happens! Are you ready for a full-on immersive experience?", + "translations": [ + { + "language": "IT", + "text": "È il momento di tuffarci in una Time Machine e vedere che succede! Sei pronto per questa esperienza?", + "updated": 1614892693632 + } + ] }, "paragraphs": [ { "style": "Text", - "text": "The charting space is like the Google Maps of market charts. As you already know, you left-click and drag to move around the landscape... but, how do you zoom in to see the details?" + "text": "The charting space is like the Google Maps of market charts. As you already know, you left-click and drag to move around the landscape... but, how do you zoom in to see the details?", + "translations": [ + { + "language": "IT", + "text": "Il Charting Space è un po'come il Google Maps dei grafici di mercato. Come sai già, si clicca e si trascina per spostarsi al suo interno...ma come si zoomma per vedere i dettagli?", + "updated": 1614892771662 + } + ] }, { "style": "Callout", - "text": "With the wheel of the mouse! Try it!" + "text": "With the wheel of the mouse! Try it!", + "translations": [ + { + "language": "IT", + "text": "Con la rotella del mouse! Provaci!", + "updated": 1614892781701 + } + ] }, { "style": "Text", "text": "Exactly! Just like in Google Maps! Point the mouse to the area of interest, then roll the wheel of the mouse forwards to zoom in, and backwards to zoom out!", - "updated": 1610622413974 + "updated": 1610622413974, + "translations": [ + { + "language": "IT", + "text": "Esatto! Proprio come su Google Maps! Posiziona il mouse su un'area di interesse e gira la rotella in avanti per aumentare lo zoom, e all'indietro per diminuirlo!", + "updated": 1614892836540 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-039-tutorial-step-the-elegant-way..json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-039-tutorial-step-the-elegant-way..json index e450c0eb8..036c790a9 100644 --- a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-039-tutorial-step-the-elegant-way..json +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-039-tutorial-step-the-elegant-way..json @@ -7,21 +7,49 @@ "project": "Superalgos", "name": "mouse-pointer" }, - "text": "I know! Zooming into a random spot is unlikely to position the chart squared with your screen, right? No worries..." + "text": "I know! Zooming into a random spot is unlikely to position the chart squared with your screen, right? No worries...", + "translations": [ + { + "language": "IT", + "text": "Lo so, zoommare su un punto a caso difficilmente farà sì che il grafico si adatti al tuo schermo, vero? No problem...", + "updated": 1614893061080 + } + ] }, "paragraphs": [ { "style": "Text", "text": "I'll show you how to get into a chart so that everything fits nicely. First, use the Ctrl + Shift + Key-A keys to adjust the aspect ratio to fit your screen. Then, zoom out fully with your mouse. From this position...", - "updated": 1610134957920 + "updated": 1610134957920, + "translations": [ + { + "language": "IT", + "text": "Ti mostro come entrare in un grafico lasciando tutto in ordine. Usa Ctrl + Shift + Key-A per adattarlo all'aspect ratio del tuo schermo. Poi, zoomma all'indietro con il mouse. Da qui...", + "updated": 1614893079786 + } + ] }, { "style": "Callout", - "text": "Double-click on the time machine on top! Twice!" + "text": "Double-click on the time machine on top! Twice!", + "translations": [ + { + "language": "IT", + "text": "Fai doppio click sulla Time Machine in cima! Due volte!", + "updated": 1614893194631 + } + ] }, { "style": "Text", - "text": "The first double-click centers the chart, and takes you to a certain level of zoom; some margin is left to fit the name of the chart and the tab on the top-left corner. The second double-click takes you all the way in, to the zoom level on which layer managers emerge." + "text": "The first double-click centers the chart, and takes you to a certain level of zoom; some margin is left to fit the name of the chart and the tab on the top-left corner. The second double-click takes you all the way in, to the zoom level on which layer managers emerge.", + "translations": [ + { + "language": "IT", + "text": "Il primo doppio click centra il grafico e lo zoomma, lasciando un po' di margine per mostrare il nome e la tab in alto a sinistra. Il secondo doppio-click ti trasporta al suo interno, al livello di zoom dove emergono i layer managers.", + "updated": 1614893166373 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-040-tutorial-step-moving-in-wonderland.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-040-tutorial-step-moving-in-wonderland.json index d1b0d1547..c0c806fd9 100644 --- a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-040-tutorial-step-moving-in-wonderland.json +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-040-tutorial-step-moving-in-wonderland.json @@ -7,20 +7,48 @@ "project": "Superalgos", "name": "mouse-left-click" }, - "text": "So, you are finally inside a chart. The first thing you'll want to do is move around and learn what these charts may do for you." + "text": "So, you are finally inside a chart. The first thing you'll want to do is move around and learn what these charts may do for you.", + "translations": [ + { + "language": "IT", + "text": "Ecco, sei finalmente dentro un grafico. La prima cosa che vorrai fare sarà farci un giro e imparare cosa può fare per te.", + "updated": 1614893263479 + } + ] }, "paragraphs": [ { "style": "Text", - "text": "Let's get on with that! Like in the design space—when inside a time machine—you move by using your mouse and your keyboard. This is how:" + "text": "Let's get on with that! Like in the design space—when inside a time machine—you move by using your mouse and your keyboard. This is how:", + "translations": [ + { + "language": "IT", + "text": "Facciamolo subito! Proprio come nel Design Space, puoi muoverti usando mouse e tastiera. Ecco come:", + "updated": 1614893324158 + } + ] }, { "style": "Callout", - "text": "With the mouse, left-click and drag. With the keyboard, use the arrow keys: ← → ↑ ↓" + "text": "With the mouse, left-click and drag. With the keyboard, use the arrow keys: ← → ↑ ↓", + "translations": [ + { + "language": "IT", + "text": "Con il mouse, fai click con il tasto sinistro e trascina. Con la tastiera, usa le frecce: ← → ↑ ↓", + "updated": 1614893357947 + } + ] }, { "style": "Note", - "text": "What? It's not working? Are you stuck with a frozen chart? Like in the video on the next step? Don't worry! I know what's going on..." + "text": "What? It's not working? Are you stuck with a frozen chart? Like in the video on the next step? Don't worry! I know what's going on...", + "translations": [ + { + "language": "IT", + "text": "Come? Non funziona? Il grafico resta fermo? Proprio come nel video nel prossimo step? Ah, non preoccuparti! Lo so io cosa sta succedendo...", + "updated": 1614893399468 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-041-tutorial-step-welcome-charts-scales-auto-locked.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-041-tutorial-step-welcome-charts-scales-auto-locked.json index 159932cc4..06ccaa4ee 100644 --- a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-041-tutorial-step-welcome-charts-scales-auto-locked.json +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-041-tutorial-step-welcome-charts-scales-auto-locked.json @@ -3,7 +3,14 @@ "pageNumber": 41, "type": "Tutorial Step - Welcome Charts Scales Auto Locked", "definition": { - "text": "This step will play a video in full screen mode." + "text": "This step will play a video in full screen mode.", + "translations": [ + { + "language": "IT", + "text": "Questo step eseguirà un video in modalità schermo intero.", + "updated": 1614893428433 + } + ] }, "paragraphs": [ { diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-042-tutorial-step-unlocking-time.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-042-tutorial-step-unlocking-time.json index 1e181c8e0..31b653192 100644 --- a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-042-tutorial-step-unlocking-time.json +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-042-tutorial-step-unlocking-time.json @@ -7,20 +7,48 @@ "project": "Superalgos", "name": "time-scale" }, - "text": "The reason why you can't move is that scales are locked in the automatic mode so that you may easily find the data after your first data mining operation." + "text": "The reason why you can't move is that scales are locked in the automatic mode so that you may easily find the data after your first data mining operation.", + "translations": [ + { + "language": "IT", + "text": "Il motivo per cui non ti puoi muovere è che le scale sono bloccate in modalità automatica, così puoi trovare facilmente i dati dopo la tua prima operazione di mining.", + "updated": 1614893522639 + } + ] }, "paragraphs": [ { "style": "Text", - "text": "Setting the Time Scale in automatic mode forces the whole datetime range of available data into the chart." + "text": "Setting the Time Scale in automatic mode forces the whole datetime range of available data into the chart.", + "translations": [ + { + "language": "IT", + "text": "Settare la Time Scale in modalità automatica fa sì che i dati sull'intera scala temporale vengano mostrati insieme sul grafico.", + "updated": 1614893577134 + } + ] }, { "style": "Callout", - "text": "To toggle between the various automatic modes and manual mode, hit Shift and make a gentle one-step roll with the wheel of your mouse on top of the time scale box." + "text": "To toggle between the various automatic modes and manual mode, hit Shift and make a gentle one-step roll with the wheel of your mouse on top of the time scale box.", + "translations": [ + { + "language": "IT", + "text": "Per cambiare tra automatico e manuale, premi Shift e ruota una volta la rotella del mouse sopra a una time scale box.", + "updated": 1614893644877 + } + ] }, { "style": "Text", - "text": "Once you've taken care of that, you should be able to move freely on the X-axis, that is, the time axis of the chart. See the video on the next step for clarity." + "text": "Once you've taken care of that, you should be able to move freely on the X-axis, that is, the time axis of the chart. See the video on the next step for clarity.", + "translations": [ + { + "language": "IT", + "text": "Fatto questo, dovresti essere libero di muoverti liberamente sull'asse X, quello del tempo. Guarda il prossimo video per maggiori dettagli.", + "updated": 1614893688199 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-043-tutorial-step-welcome-charts-scales-unlock-time-scale.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-043-tutorial-step-welcome-charts-scales-unlock-time-scale.json index e81b10295..a96873988 100644 --- a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-043-tutorial-step-welcome-charts-scales-unlock-time-scale.json +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-043-tutorial-step-welcome-charts-scales-unlock-time-scale.json @@ -3,7 +3,14 @@ "pageNumber": 43, "type": "Tutorial Step - Welcome Charts Scales Unlock Time Scale", "definition": { - "text": "This step will play a video in full screen mode." + "text": "This step will play a video in full screen mode.", + "translations": [ + { + "language": "IT", + "text": "Questo step eseguirà il video in modalità schermo intero.", + "updated": 1614893704588 + } + ] }, "paragraphs": [ { diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-044-tutorial-step-scaling-time.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-044-tutorial-step-scaling-time.json index 09db3e1b7..ecc52f186 100644 --- a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-044-tutorial-step-scaling-time.json +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-044-tutorial-step-scaling-time.json @@ -7,20 +7,48 @@ "project": "Superalgos", "name": "time-scale" }, - "text": "Did you pick up the trick to scale time from the previous video? If not, go to the previous step and watch attentively!" + "text": "Did you pick up the trick to scale time from the previous video? If not, go to the previous step and watch attentively!", + "translations": [ + { + "language": "IT", + "text": "Sei riuscito a mettere in pratica il trucchetto nel video precedente? Se non ce l'hai fatta, torna all'ultimo step e guarda bene!", + "updated": 1614893781372 + } + ] }, "paragraphs": [ { "style": "Text", - "text": "That's it! Scroll it, my friend!" + "text": "That's it! Scroll it, my friend!", + "translations": [ + { + "language": "IT", + "text": "Esatto! Ruota quella rotella, amico!", + "updated": 1614893806439 + } + ] }, { "style": "Callout", - "text": "Scrolling the wheel of the mouse on top of the time scale box shrinks and expands time!" + "text": "Scrolling the wheel of the mouse on top of the time scale box shrinks and expands time!", + "translations": [ + { + "language": "IT", + "text": "Ruotare la rotella del mouse su una time scale box espande e comprime il tempo!", + "updated": 1614893833795 + } + ] }, { "style": "Note", - "text": "There's one more interesting detail worth noting in the previous video: when the time scale exits the automatic mode, the two tiny green triangles indicating each end of the automatic scale disappear!" + "text": "There's one more interesting detail worth noting in the previous video: when the time scale exits the automatic mode, the two tiny green triangles indicating each end of the automatic scale disappear!", + "translations": [ + { + "language": "IT", + "text": "C'è un dettaglio interessante nel video precedente: quando la time scale esce dalla modalità automatica, i due piccoli triangoli verdi che indicano gli estremi della scala automatica scompaiono!", + "updated": 1614893892461 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-045-tutorial-step-playing-with-the-rate-scale.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-045-tutorial-step-playing-with-the-rate-scale.json index 326a5ac93..594828e8a 100644 --- a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-045-tutorial-step-playing-with-the-rate-scale.json +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-045-tutorial-step-playing-with-the-rate-scale.json @@ -7,20 +7,48 @@ "project": "Superalgos", "name": "rate-scale" }, - "text": "Do I need to tell you how the Rate Scale works or can you figure it out on your own? Ok... I'll give you a hint..." + "text": "Do I need to tell you how the Rate Scale works or can you figure it out on your own? Ok... I'll give you a hint...", + "translations": [ + { + "language": "IT", + "text": "Vuoi che ti spieghi come funziona il Rate Scale, o lo immagini già? Ok, ti darò un suggerimento...", + "updated": 1614893948589 + } + ] }, "paragraphs": [ { "style": "Callout", - "text": "The rate scale works like the time scale! Check the video coming next for clarity!" + "text": "The rate scale works like the time scale! Check the video coming next for clarity!", + "translations": [ + { + "language": "IT", + "text": "Funziona esattamente come il Time Scale! Guarda il video al prossimo step per i dettagli.", + "updated": 1614893978290 + } + ] }, { "style": "Note", - "text": "There's one more scale to work with. I'll tell you all about it after the video." + "text": "There's one more scale to work with. I'll tell you all about it after the video.", + "translations": [ + { + "language": "IT", + "text": "C'è ancora una scala con cui lavorare. Te ne parlerò meglio dopo il video.", + "updated": 1614893999920 + } + ] }, { "style": "Success", - "text": "Play with the semi-automatic scale modes too! You know, when a single tiny triangle remains visible after a few flicks of the mouse wheel." + "text": "Play with the semi-automatic scale modes too! You know, when a single tiny triangle remains visible after a few flicks of the mouse wheel.", + "translations": [ + { + "language": "IT", + "text": "Prova anche la modalità semi-automatica per le differenti scale! Ruota la rotella del mouse finchè non vedi un singolo triangolino verde.", + "updated": 1614894098439 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-046-tutorial-step-welcome-charts-scales-unlock-rate-scale.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-046-tutorial-step-welcome-charts-scales-unlock-rate-scale.json index 7c690ee31..8ac81d427 100644 --- a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-046-tutorial-step-welcome-charts-scales-unlock-rate-scale.json +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-046-tutorial-step-welcome-charts-scales-unlock-rate-scale.json @@ -3,7 +3,14 @@ "pageNumber": 46, "type": "Tutorial Step - Welcome Charts Scales Unlock Rate Scale", "definition": { - "text": "This step will play a video in full screen mode." + "text": "This step will play a video in full screen mode.", + "translations": [ + { + "language": "IT", + "text": "Questo step eseguirà un video in modalità schermo intero.", + "updated": 1614894117992 + } + ] }, "paragraphs": [ { diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-047-tutorial-step-time-frames-salad.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-047-tutorial-step-time-frames-salad.json index c78d8c35b..9a8bace2a 100644 --- a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-047-tutorial-step-time-frames-salad.json +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-047-tutorial-step-time-frames-salad.json @@ -7,16 +7,37 @@ "project": "Superalgos", "name": "time-frame-scale" }, - "text": "News-flash about the Time Frame Scale: there is no automatic mode!" + "text": "News-flash about the Time Frame Scale: there is no automatic mode!", + "translations": [ + { + "language": "IT", + "text": "Notizia lampo sulla Time Frame Scale: non esiste una modalità automatica!", + "updated": 1614894147285 + } + ] }, "paragraphs": [ { "style": "Text", - "text": "You may freely toggle through all available time frames! In descending order: 24, 8, 6, 4, 3, 2, and 1 hours, and 45, 40, 30, 20, 15, 10, 5, 4, 3, 2, and 1 minutes." + "text": "You may freely toggle through all available time frames! In descending order: 24, 8, 6, 4, 3, 2, and 1 hours, and 45, 40, 30, 20, 15, 10, 5, 4, 3, 2, and 1 minutes.", + "translations": [ + { + "language": "IT", + "text": "Puoi scegliere liberamente tra tutti i time frame disponibili! In ordine decrescente: 24, 8, 6, 4, 3, 2, e 1 ore, e 45, 40, 30, 20, 15, 10, 5, 4, 3, 2, e 1 minuti.", + "updated": 1614894203571 + } + ] }, { "style": "Important", - "text": "Beware when you switch the time frame scale to lower time frames! Dropping time frames too fast and without adjusting the time scale may cause too much information to be rendered on-screen at a time, slowing down your computer. How much information density your hardware may handle depends on its CPU and GPU performance." + "text": "Beware when you switch the time frame scale to lower time frames! Dropping time frames too fast and without adjusting the time scale may cause too much information to be rendered on-screen at a time, slowing down your computer. How much information density your hardware may handle depends on its CPU and GPU performance.", + "translations": [ + { + "language": "IT", + "text": "Fai attenzione quando selezioni time frame con intervalli di tempo più brevi! Scalare i time frame verso il basso troppo rapidamente può causare il rendering sullo schermo di troppi dati contemporanamente e ciò può rallentare il computer. I limiti a questo proposito dipendono dal tuo hardware.", + "updated": 1614894385185 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-048-tutorial-step-welcome-charts-scales-time-frame-scale.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-048-tutorial-step-welcome-charts-scales-time-frame-scale.json index 0a2668811..852a2f061 100644 --- a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-048-tutorial-step-welcome-charts-scales-time-frame-scale.json +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-048-tutorial-step-welcome-charts-scales-time-frame-scale.json @@ -3,7 +3,14 @@ "pageNumber": 48, "type": "Tutorial Step - Welcome Charts Scales Time Frame Scale", "definition": { - "text": "This step will play a video in full screen mode." + "text": "This step will play a video in full screen mode.", + "translations": [ + { + "language": "IT", + "text": "Questo step eseguirà un video in modalità schermo intero.", + "updated": 1614894425390 + } + ] }, "paragraphs": [ { diff --git a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-049-tutorial-step-scales-best-kept-secrets.json b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-049-tutorial-step-scales-best-kept-secrets.json index a443e4284..e3e28e738 100644 --- a/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-049-tutorial-step-scales-best-kept-secrets.json +++ b/Projects/Superalgos/Schemas/Docs-Tutorials/welcome-to-superalgos-049-tutorial-step-scales-best-kept-secrets.json @@ -7,17 +7,38 @@ "project": "Superalgos", "name": "balance" }, - "text": "You just learned the basics about the three scales governing the charts, but there's more!" + "text": "You just learned the basics about the three scales governing the charts, but there's more!", + "translations": [ + { + "language": "IT", + "text": "Hai imparato le basi delle tre scale che governano i grafici, ma c'è di più!", + "updated": 1614894499111 + } + ] }, "paragraphs": [ { "style": "Text", - "text": "Remember I mentioned that a Time Machine may feature multiple charts from multiple exchanges and markets? There is no limit as to how you may visualize data in Superalgos, and scales play a major role in more complex configurations than the ones we are exploring at this point." + "text": "Remember I mentioned that a Time Machine may feature multiple charts from multiple exchanges and markets? There is no limit as to how you may visualize data in Superalgos, and scales play a major role in more complex configurations than the ones we are exploring at this point.", + "translations": [ + { + "language": "IT", + "text": "Ricordi quando ti ho detto che una Time Machine può contenere più grafici provenienti da molteplici exchange e markets? Non c'è limite al numero di modi in cui puoi visualizzare i dati in Superalgos, e le scale giocano un ruolo chiave in configurazioni più complesse di quelle che abbiamo esplorato finora.", + "updated": 1614894601856 + } + ] }, { "style": "Callout", "text": "If you wish to learn all the details, feel free to go through the Scales section of the documentation.", - "updated": 1610539789707 + "updated": 1610539789707, + "translations": [ + { + "language": "IT", + "text": "Se vuoi imparare tutti i dettagli, consulta la sezione Scales nella documentazione completa.", + "updated": 1614894588673 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/HistoricOHLCVs.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/HistoricOHLCVs.js index a4740e220..1e6f79e12 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/HistoricOHLCVs.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/HistoricOHLCVs.js @@ -17,6 +17,11 @@ exports.newSuperalgosBotModulesHistoricOHLCVs = function (processIndex) { const MAX_OHLCVs_PER_EXECUTION = 10000000 const symbol = TS.projects.superalgos.globals.taskConstants.TASK_NODE.parentNode.parentNode.parentNode.referenceParent.baseAsset.referenceParent.config.codeName + '/' + TS.projects.superalgos.globals.taskConstants.TASK_NODE.parentNode.parentNode.parentNode.referenceParent.quotedAsset.referenceParent.config.codeName const ccxt = require('ccxt') + /* + This next is required when using an exchange that uses fetchTrades in place of fetchOHLCVs + in order to be able to access the method that builds the OHLCVs, and this method is inside the CCTX library. + */ + const ccxtMisc = require('./node_modules/ccxt/js/base/functions/misc') let fetchType = "by Time" let lastId @@ -35,6 +40,25 @@ exports.newSuperalgosBotModulesHistoricOHLCVs = function (processIndex) { let limit = 1000 // This is the default value let hostname let lastCandleOfTheDay + /* + The following variables are used for exchanges that do not provide any method in their API to retrieve OHLCV data. + In the CCTX library, such exchanges have the fetchOHLCV method as being "emulated", and as such, you can only + retrieve raw trade data using the fetchTrades method, and then you have to manually aggregate the received trades + into OHLCV data. + An example of such an exchange is Luno (codeName:luno). + To ensure that the code for other exchanges is not impacted, it is necessary to add into the desired exchange's + UI API settings, the two items shown below. It is also important to set the "rateLimit" in the API correctly to + match what the exchange is prepared to offer when fetching trades. Furthermore, the "limit" in the API also needs + to be set to a value that allows the UI to update at regular intervals (e.g. 200). Finally, do not forget to put + in the UI API settings the "method": "fetch_ohlcv", otherwise none of these other settings will work ! + + useFetchTradesForFetchOHLCVs - this must be set to true to indicate that the code will be using fetchTrades instead + of fetchOHLCVs (or similar exchange-specific method). + maxTradesPerFetch - this is set to a number that indicates the maximum number of trades the exchange will return in + the fetchTrades method (e.g. for the Luno exchange, this number is 100). + */ + let useFetchTradesForFetchOHLCVs = false + let maxTradesPerFetch = 100 return thisObject; @@ -79,6 +103,12 @@ exports.newSuperalgosBotModulesHistoricOHLCVs = function (processIndex) { if (API.limit !== undefined) { limit = API.limit } + if (API.useFetchTradesForFetchOHLCVs !== undefined) { + useFetchTradesForFetchOHLCVs = API.useFetchTradesForFetchOHLCVs + if (API.maxTradesPerFetch !== undefined) { + maxTradesPerFetch = API.maxTradesPerFetch + } + } } } } @@ -130,6 +160,7 @@ exports.newSuperalgosBotModulesHistoricOHLCVs = function (processIndex) { data from the exchange. */ let rawDataArray = [] + let mustLoadRawData = false if (TS.projects.superalgos.globals.taskVariables.IS_TASK_STOPPING === true) { callBackFunction(TS.projects.superalgos.globals.standardResponses.DEFAULT_OK_RESPONSE); @@ -157,7 +188,6 @@ exports.newSuperalgosBotModulesHistoricOHLCVs = function (processIndex) { try { let reportKey - let mustLoadRawData = false reportKey = "Masters" + "-" + "Exchange-Raw-Data" + "-" + "Historic-OHLCVs" TS.projects.superalgos.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, @@ -207,12 +237,10 @@ exports.newSuperalgosBotModulesHistoricOHLCVs = function (processIndex) { } } if (mustLoadRawData) { // there is raw data to load - getRawDataArray() // so fetch it from the file wehere it was saved on the last run of this process + getRawDataArray() // so fetch it from the file where it was saved on the last run of this process } function getRawDataArray() { mustLoadRawData = false - let lastFileTimestamp = lastFile.valueOf() - let currentTimestamp = new Date().valueOf() let fileName = "Data.json" let datetime = new Date(lastFile.valueOf()) let dateForPath = datetime.getUTCFullYear() + '/' + @@ -232,11 +260,8 @@ exports.newSuperalgosBotModulesHistoricOHLCVs = function (processIndex) { rawDataArray = JSON.parse(text); let dataLength = rawDataArray.length if (dataLength > 1) { - let lastData = rawDataArray[dataLength - 1] - let lastTimeStamp = lastData[0] - rawDataArray.pop() // ditch the last ohlcv since it may be incomplete - dataLength = rawDataArray.length - since = lastTimeStamp // we will now start again from the last ohlvc we had (instead of the beginning of the day) + since = rawDataArray[dataLength - 2][0] // set the beginning of the fetch back to the start of the second last ohlcv received + rawDataArray.pop() // ditch the last ohlcv received since it may be incomplete } else { rawDataArrayFile = [] // we got less than two ohlcvs so we might as well start again from the beginning of the day } @@ -354,7 +379,9 @@ exports.newSuperalgosBotModulesHistoricOHLCVs = function (processIndex) { /* Fetching the OHLCVs from the exchange.*/ await new Promise(resolve => setTimeout(resolve, rateLimit)) // rate limit - const OHLCVs = await exchange.fetchOHLCV(symbol, '1m', since, limit, params) + const OHLCVs = useFetchTradesForFetchOHLCVs ? + await fetchTradesForOHLCV(symbol, '1m', since, limit, params) : + await exchange.fetchOHLCV(symbol, '1m', since, limit, params) /* OHLCV Structure @@ -452,6 +479,43 @@ exports.newSuperalgosBotModulesHistoricOHLCVs = function (processIndex) { } } + async function fetchTradesForOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) { + let ohlcvcArray = [] // the array where the trades will be accumulated into ohlcvs + let startOfFetchTrades = since + let endOfFetchTrades + if (lastFile === undefined) { + endOfFetchTrades = (Math.trunc(since / TS.projects.superalgos.globals.timeConstants.ONE_DAY_IN_MILISECONDS) * TS.projects.superalgos.globals.timeConstants.ONE_DAY_IN_MILISECONDS) + } else { + endOfFetchTrades = lastFile.valueOf() + } + endOfFetchTrades += TS.projects.superalgos.globals.timeConstants.ONE_DAY_IN_MILISECONDS + while (TS.projects.superalgos.globals.taskVariables.IS_TASK_STOPPING !== true) { + var trades = await exchange.fetchTrades(symbol, startOfFetchTrades, limit, params) + if (trades.length > 0) { + let lastRetrievedTrade = trades[trades.length - 1] + startOfFetchTrades = lastRetrievedTrade.timestamp + 1 + const ohlcvc = ccxtMisc.buildOHLCVC (trades, timeframe, since, limit) + ohlcvcArray = ohlcvcArray.concat(ohlcvc) // add the latest ohlcvs to the accumulation array + if (startOfFetchTrades > endOfFetchTrades) { + break // end of the day + } else { + if (trades.length < maxTradesPerFetch) { + break // end of the market + } else { + if (ohlcvcArray.length > limit) { + break // got enough ohlcvs for this process loop + } else { + await new Promise(resolve => setTimeout(resolve, rateLimit)) // wait for exchange's rateLimit before requesting again + } + } + } + } else { + break // exchange has no more trades + } + } + return ohlcvcArray.map ((c) => c.slice (0, -1)) + } + async function saveOHLCVs() { /* What we are going to do in this function is to save all the candles @@ -783,6 +847,8 @@ exports.newSuperalgosBotModulesHistoricOHLCVs = function (processIndex) { filesToCreate++ fileStorage.createTextFile(getFilePath(day * TS.projects.superalgos.globals.timeConstants.ONE_DAY_IN_MILISECONDS, OHLCVS_FOLDER_NAME) + '/' + fileName, ohlcvsFileContent + '\n', onFileCreated); mustLoadRawData = true + } else { + mustLoadRawData = false } candlesFileContent = '[' @@ -799,7 +865,6 @@ exports.newSuperalgosBotModulesHistoricOHLCVs = function (processIndex) { */ let rawDataFileData let dataLength = rawDataArray.length - let thisDay = new Date(day * TS.projects.superalgos.globals.timeConstants.ONE_DAY_IN_MILISECONDS) if (dataLength > 0) { // first get the start of the day after this day we are checking let timestamp = (day * TS.projects.superalgos.globals.timeConstants.ONE_DAY_IN_MILISECONDS) + diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/.eslintignore b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/.eslintignore new file mode 100644 index 000000000..a007feab0 --- /dev/null +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/.eslintignore @@ -0,0 +1 @@ +build/* diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/.gitattributes b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/.gitattributes index 147ee79bf..513b2a256 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/.gitattributes +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/.gitattributes @@ -1,4 +1,5 @@ *.* text eol=lf php/test/*.php linguist-generated=true +php/*.php linguist-generated=true python/ccxt/*.py linguist-generated=true python/ccxt/__init__.py linguist-generated=false diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/CONTRIBUTING.md b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/CONTRIBUTING.md index 5ce4a0405..1d3ff05d1 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/CONTRIBUTING.md +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/CONTRIBUTING.md @@ -246,7 +246,7 @@ These files containing derived exchange classes are transpiled from JS into Pyth - `js/[_a-z].js` → `python/ccxt/async/[_a-z].py` - `python/ccxt/async[_a-z].py` → `python/ccxt/[_a-z].py` (Python 3 asyncio → Python 2 sync transpilation stage) -- `python/test/test_async.py` → `python/test/test.py` (the sync test is generated from the async test) +- `python/ccxt/test/test_async.py` → `python/ccxt/test/test_sync.py` (the sync test is generated from the async test) These Python base classes and files are not transpiled: @@ -868,14 +868,6 @@ npm run git-unignore-generated-files ## Financial Contributions We also welcome financial contributions in full transparency on our [open collective](https://opencollective.com/ccxt). -Anyone can file an expense. If the expense makes sense for the development of the community, it will be "merged" in the ledger of our open collective by the core contributors and the person who filed the expense will be reimbursed. - -``` -ETH 0x26a3CB49578F07000575405a57888681249c35Fd (ETH only!) -BTC 33RmVRfhK2WZVQR1R83h2e9yXoqRNDvJva -BCH 1GN9p233TvNcNQFthCgfiHUnj5JRKEc2Ze -LTC LbT8mkAqQBphc4yxLXEDgYDfEax74et3bP -``` ## Credits diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/README.md b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/README.md index ed47b610c..3f8dfeea4 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/README.md +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/README.md @@ -1,11 +1,11 @@ # CCXT – CryptoCurrency eXchange Trading Library -[![Build Status](https://travis-ci.com/ccxt/ccxt.svg?branch=master)](https://travis-ci.com/ccxt/ccxt) [![npm](https://img.shields.io/npm/v/ccxt.svg)](https://npmjs.com/package/ccxt) [![PyPI](https://img.shields.io/pypi/v/ccxt.svg)](https://pypi.python.org/pypi/ccxt) [![NPM Downloads](https://img.shields.io/npm/dm/ccxt.svg)](https://www.npmjs.com/package/ccxt) [![Discord](https://img.shields.io/discord/690203284119617602?logo=discord&logoColor=white)](https://discord.gg/dhzSKYU) [![Supported Exchanges](https://img.shields.io/badge/exchanges-123-blue.svg)](https://github.com/ccxt/ccxt/wiki/Exchange-Markets) [![Open Collective](https://opencollective.com/ccxt/backers/badge.svg)](https://opencollective.com/ccxt) +[![Build Status](https://travis-ci.com/ccxt/ccxt.svg?branch=master)](https://travis-ci.com/ccxt/ccxt) [![npm](https://img.shields.io/npm/v/ccxt.svg)](https://npmjs.com/package/ccxt) [![PyPI](https://img.shields.io/pypi/v/ccxt.svg)](https://pypi.python.org/pypi/ccxt) [![NPM Downloads](https://img.shields.io/npm/dy/ccxt.svg)](https://www.npmjs.com/package/ccxt) [![Discord](https://img.shields.io/discord/690203284119617602?logo=discord&logoColor=white)](https://discord.gg/dhzSKYU) [![Supported Exchanges](https://img.shields.io/badge/exchanges-126-blue.svg)](https://github.com/ccxt/ccxt/wiki/Exchange-Markets) [![Open Collective](https://opencollective.com/ccxt/backers/badge.svg)](https://opencollective.com/ccxt) [![Twitter Follow](https://img.shields.io/twitter/follow/ccxt_official.svg?style=social&label=CCXT)](https://twitter.com/ccxt_official) A JavaScript / Python / PHP library for cryptocurrency trading and e-commerce with support for many bitcoin/ether/altcoin exchange markets and merchant APIs. -### [Install](#install) · [Usage](#usage) · [Manual](https://github.com/ccxt/ccxt/wiki) · [FAQ](https://github.com/ccxt/ccxt/wiki/FAQ) · [Examples](https://github.com/ccxt/ccxt/tree/master/examples) · [Contributing](https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md) · [Social](#social) +### [Install](#install) · [Usage](#usage) · [Manual](https://github.com/ccxt/ccxt/wiki) · [FAQ](https://github.com/ccxt/ccxt/wiki/FAQ) · [Examples](https://github.com/ccxt/ccxt/tree/master/examples) · [Contributing](https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md) · [Social](#social) · [CCXT Pro](https://ccxt.pro) The **CCXT** library is used to connect and trade with cryptocurrency exchanges and payment processing services worldwide. It provides quick access to market data for storage, analysis, visualization, indicator development, algorithmic trading, strategy backtesting, bot programming, and related software engineering. @@ -21,42 +21,44 @@ Current feature list: ## Sponsored Promotion -[![CCXT Pro – A JavaScript / Python / PHP cryptocurrency exchange trading WebSocket API for professionals](https://user-images.githubusercontent.com/1294454/93346896-22dfb080-f83d-11ea-957f-6b8ae008f62a.png)](https://ccxt.pro) **[A JavaScript / Python / PHP cryptocurrency exchange trading WebSocket API for professionals](https://ccxt.pro)** +[![CCXT Pro – A JavaScript / Python / PHP cryptocurrency exchange trading WebSocket API for professionals](https://user-images.githubusercontent.com/1294454/106092533-865ce180-613f-11eb-8d67-0830771fde32.png)](https://ccxt.pro) ## See Also - [![Quadency](https://user-images.githubusercontent.com/1294454/69334382-a0618100-0c6b-11ea-9ba9-40aa97440cfa.png)](https://quadency.com?utm_source=ccxt)  **[Quadency](https://quadency.com?utm_source=ccxt)** — trading automation terminal for leading exchanges with streaming APIs + Python IDE. - [![TabTrader](https://user-images.githubusercontent.com/1294454/66755907-9c3e8880-eea1-11e9-846e-0bff349ceb87.png)](https://tab-trader.com/?utm_source=ccxt)  **[TabTrader](https://tab-trader.com/?utm_source=ccxt)** — trading on all exchanges in one app. Avaliable on [Android](https://play.google.com/store/apps/details?id=com.tabtrader.android&referrer=utm_source%3Dccxt) and [iOS](https://itunes.apple.com/app/apple-store/id1095716562?mt=8). +- [![Pionex](https://user-images.githubusercontent.com/1294454/106112806-c2ec0580-615e-11eb-870c-0b7aef021db2.png)](https://www.pionex.com/en-US/sign?r=8wSFCbNk&utm_source=ad&utm_medium=banner&utm_campaign=ccxt-2)  **[Pionex](https://www.pionex.com/en-US/sign?r=8wSFCbNk&utm_source=ad&utm_medium=banner&utm_campaign=ccxt-2)** — 6 grid bots, spot-futures arb bot, smart trade and DCA bots. Free for [Android](https://play.google.com/store/apps/details?id=com.pionex.client&referrer=utm_source%3Dccxt) and [iOS](https://apps.apple.com/us/app/pionex/id1485348891?pt=ccxt&ct=inline)! +- [![AAX](https://user-images.githubusercontent.com/1294454/106509642-ef957980-64de-11eb-92e0-8323cda7874e.png)](https://www.aaxpro.com/en-US/ad-sign-up/?utm_source=ccxt&utm_medium=one-liner&utm_campaign=futures)  **[AAX](https://www.aaxpro.com/en-US/ad-sign-up/?utm_source=ccxt&utm_medium=one-liner&utm_campaign=futures)** — trade bitcoin futures with fees as low as 0.02% and up to 100x leverage! ## Certified Cryptocurrency Exchanges -| logo | id | name | ver | doc | certified | pro | -|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|-----------------------------------------------------------------------------|:---:|:----------------------------------------------------------------------------------:|-----------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------| -| [![binance](https://user-images.githubusercontent.com/1294454/29604020-d5483cdc-87ee-11e7-94c7-d1a8d9169293.jpg)](https://www.binance.com/?ref=10205187) | binance | [Binance](https://www.binance.com/?ref=10205187) | * | [API](https://binance-docs.github.io/apidocs/spot/en) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | -| [![bitfinex](https://user-images.githubusercontent.com/1294454/27766244-e328a50c-5ed2-11e7-947b-041416579bb3.jpg)](https://www.bitfinex.com/?refcode=P61eYxFL) | bitfinex | [Bitfinex](https://www.bitfinex.com/?refcode=P61eYxFL) | 1 | [API](https://docs.bitfinex.com/v1/docs) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | -| [![bittrex](https://user-images.githubusercontent.com/51840849/87153921-edf53180-c2c0-11ea-96b9-f2a9a95a455b.jpg)](https://bittrex.com/Account/Register?referralCode=1ZE-G0G-M3B) | bittrex | [Bittrex](https://bittrex.com/Account/Register?referralCode=1ZE-G0G-M3B) | 3 | [API](https://bittrex.github.io/api/v3) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | -| [![bitvavo](https://user-images.githubusercontent.com/1294454/83165440-2f1cf200-a116-11ea-9046-a255d09fb2ed.jpg)](https://bitvavo.com/?a=24F34952F7) | bitvavo | [Bitvavo](https://bitvavo.com/?a=24F34952F7) | 2 | [API](https://docs.bitvavo.com/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | -| [![bytetrade](https://user-images.githubusercontent.com/1294454/67288762-2f04a600-f4e6-11e9-9fd6-c60641919491.jpg)](https://www.byte-trade.com) | bytetrade | [ByteTrade](https://www.byte-trade.com) | * | [API](https://docs.byte-trade.com/#description) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | | -| [![currencycom](https://user-images.githubusercontent.com/1294454/83718672-36745c00-a63e-11ea-81a9-677b1f789a4d.jpg)](https://currency.com/trading/signup?c=362jaimv&pid=referral) | currencycom | [Currency.com](https://currency.com/trading/signup?c=362jaimv&pid=referral) | 1 | [API](https://currency.com/api) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | -| [![eterbase](https://user-images.githubusercontent.com/1294454/82067900-faeb0f80-96d9-11ea-9f22-0071cfcb9871.jpg)](https://eterbase.exchange/invite/1wjjh4Pe) | eterbase | [Eterbase](https://eterbase.exchange/invite/1wjjh4Pe) | 1 | [API](https://developers.eterbase.exchange) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | | -| [![ftx](https://user-images.githubusercontent.com/1294454/67149189-df896480-f2b0-11e9-8816-41593e17f9ec.jpg)](https://ftx.com/#a=1623029) | ftx | [FTX](https://ftx.com/#a=1623029) | * | [API](https://github.com/ftexchange/ftx) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | -| [![idex](https://user-images.githubusercontent.com/51840849/94481303-2f222100-01e0-11eb-97dd-bc14c5943a86.jpg)](https://idex.io) | idex | [IDEX](https://idex.io) | 2 | [API](https://docs.idex.io/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | -| [![kraken](https://user-images.githubusercontent.com/51840849/76173629-fc67fb00-61b1-11ea-84fe-f2de582f58a3.jpg)](https://www.kraken.com) | kraken | [Kraken](https://www.kraken.com) | 0 | [API](https://www.kraken.com/features/api) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | -| [![upbit](https://user-images.githubusercontent.com/1294454/49245610-eeaabe00-f423-11e8-9cba-4b0aed794799.jpg)](https://upbit.com) | upbit | [Upbit](https://upbit.com) | 1 | [API](https://docs.upbit.com/docs/%EC%9A%94%EC%B2%AD-%EC%88%98-%EC%A0%9C%ED%95%9C) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | -| [![wavesexchange](https://user-images.githubusercontent.com/1294454/84547058-5fb27d80-ad0b-11ea-8711-78ac8b3c7f31.jpg)](https://waves.exchange) | wavesexchange | [Waves.Exchange](https://waves.exchange) | * | [API](https://docs.waves.exchange) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | | -| [![xena](https://user-images.githubusercontent.com/51840849/87489843-bb469280-c64c-11ea-91aa-69c6326506af.jpg)](https://xena.exchange) | xena | [Xena Exchange](https://xena.exchange) | * | [API](https://support.xena.exchange/support/solutions/44000808700) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | | +| logo | id | name | ver | doc | certified | pro | +|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|-----------------------------------------------------------------------------|:---:|:------------------------------------------------------------------:|-----------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------| +| [![aax](https://user-images.githubusercontent.com/1294454/104140087-a27f2580-53c0-11eb-87c1-5d9e81208fe9.jpg)](https://www.aaxpro.com/invite/sign-up?inviteCode=JXGm5Fy7R2MB) | aax | [AAX](https://www.aaxpro.com/invite/sign-up?inviteCode=JXGm5Fy7R2MB) | 2 | [API](https://www.aaxpro.com/apidoc/index.html) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | | +| [![binance](https://user-images.githubusercontent.com/1294454/29604020-d5483cdc-87ee-11e7-94c7-d1a8d9169293.jpg)](https://www.binance.com/?ref=10205187) | binance | [Binance](https://www.binance.com/?ref=10205187) | * | [API](https://binance-docs.github.io/apidocs/spot/en) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | +| [![bittrex](https://user-images.githubusercontent.com/51840849/87153921-edf53180-c2c0-11ea-96b9-f2a9a95a455b.jpg)](https://bittrex.com/Account/Register?referralCode=1ZE-G0G-M3B) | bittrex | [Bittrex](https://bittrex.com/Account/Register?referralCode=1ZE-G0G-M3B) | 3 | [API](https://bittrex.github.io/api/v3) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | +| [![bitvavo](https://user-images.githubusercontent.com/1294454/83165440-2f1cf200-a116-11ea-9046-a255d09fb2ed.jpg)](https://bitvavo.com/?a=24F34952F7) | bitvavo | [Bitvavo](https://bitvavo.com/?a=24F34952F7) | 2 | [API](https://docs.bitvavo.com/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | +| [![bytetrade](https://user-images.githubusercontent.com/1294454/67288762-2f04a600-f4e6-11e9-9fd6-c60641919491.jpg)](https://www.byte-trade.com) | bytetrade | [ByteTrade](https://www.byte-trade.com) | * | [API](https://docs.byte-trade.com/#description) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | | +| [![currencycom](https://user-images.githubusercontent.com/1294454/83718672-36745c00-a63e-11ea-81a9-677b1f789a4d.jpg)](https://currency.com/trading/signup?c=362jaimv&pid=referral) | currencycom | [Currency.com](https://currency.com/trading/signup?c=362jaimv&pid=referral) | 1 | [API](https://currency.com/api) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | +| [![eterbase](https://user-images.githubusercontent.com/1294454/82067900-faeb0f80-96d9-11ea-9f22-0071cfcb9871.jpg)](https://eterbase.exchange/invite/1wjjh4Pe) | eterbase | [Eterbase](https://eterbase.exchange/invite/1wjjh4Pe) | 1 | [API](https://developers.eterbase.exchange) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | | +| [![ftx](https://user-images.githubusercontent.com/1294454/67149189-df896480-f2b0-11e9-8816-41593e17f9ec.jpg)](https://ftx.com/#a=1623029) | ftx | [FTX](https://ftx.com/#a=1623029) | * | [API](https://github.com/ftexchange/ftx) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | +| [![gopax](https://user-images.githubusercontent.com/1294454/102897212-ae8a5e00-4478-11eb-9bab-91507c643900.jpg)](https://www.gopax.co.kr) | gopax | [GOPAX](https://www.gopax.co.kr) | 1 | [API](https://gopax.github.io/API/index.en.html) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | +| [![idex](https://user-images.githubusercontent.com/51840849/94481303-2f222100-01e0-11eb-97dd-bc14c5943a86.jpg)](https://idex.io) | idex | [IDEX](https://idex.io) | 2 | [API](https://docs.idex.io/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | +| [![kraken](https://user-images.githubusercontent.com/51840849/76173629-fc67fb00-61b1-11ea-84fe-f2de582f58a3.jpg)](https://www.kraken.com) | kraken | [Kraken](https://www.kraken.com) | 0 | [API](https://www.kraken.com/features/api) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | +| [![wavesexchange](https://user-images.githubusercontent.com/1294454/84547058-5fb27d80-ad0b-11ea-8711-78ac8b3c7f31.jpg)](https://waves.exchange) | wavesexchange | [Waves.Exchange](https://waves.exchange) | * | [API](https://docs.waves.exchange) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | | +| [![xena](https://user-images.githubusercontent.com/51840849/87489843-bb469280-c64c-11ea-91aa-69c6326506af.jpg)](https://xena.exchange) | xena | [Xena Exchange](https://xena.exchange) | * | [API](https://support.xena.exchange/support/solutions/44000808700) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | | ## Supported Cryptocurrency Exchange Markets -The CCXT library currently supports the following 123 cryptocurrency exchange markets and trading APIs: +The CCXT library currently supports the following 126 cryptocurrency exchange markets and trading APIs: | logo | id | name | ver | doc | certified | pro | |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------|-----------------------------------------------------------------------------------------|:---:|:-------------------------------------------------------------------------------------------:|-----------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------| +| [![aax](https://user-images.githubusercontent.com/1294454/104140087-a27f2580-53c0-11eb-87c1-5d9e81208fe9.jpg)](https://www.aaxpro.com/invite/sign-up?inviteCode=JXGm5Fy7R2MB) | aax | [AAX](https://www.aaxpro.com/invite/sign-up?inviteCode=JXGm5Fy7R2MB) | 2 | [API](https://www.aaxpro.com/apidoc/index.html) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | | | [![acx](https://user-images.githubusercontent.com/1294454/30247614-1fe61c74-9621-11e7-9e8c-f1a627afa279.jpg)](https://acx.io) | acx | [ACX](https://acx.io) | 2 | [API](https://acx.io/documents/api_v2) | | | | [![aofex](https://user-images.githubusercontent.com/51840849/77670271-056d1080-6f97-11ea-9ac2-4268e9ed0c1f.jpg)](https://aofex.com/#/register?key=9763840) | aofex | [AOFEX](https://aofex.com/#/register?key=9763840) | * | [API](https://aofex.zendesk.com/hc/en-us/sections/360005576574-API) | | | -| [![bcex](https://user-images.githubusercontent.com/51840849/77231516-851c6900-6bac-11ea-8fd6-ee5c23eddbd4.jpg)](https://www.bcex.top/register?invite_code=758978&lang=en) | bcex | [BCEX](https://www.bcex.top/register?invite_code=758978&lang=en) | 1 | [API](https://github.com/BCEX-TECHNOLOGY-LIMITED/API_Docs/wiki/Interface) | | | | [![bequant](https://user-images.githubusercontent.com/1294454/55248342-a75dfe00-525a-11e9-8aa2-05e9dca943c6.jpg)](https://bequant.io) | bequant | [Bequant](https://bequant.io) | 2 | [API](https://api.bequant.io/) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | | [![bibox](https://user-images.githubusercontent.com/51840849/77257418-3262b000-6c85-11ea-8fb8-20bdf20b3592.jpg)](https://w2.bibox365.com/login/register?invite_code=05Kj3I) | bibox | [Bibox](https://w2.bibox365.com/login/register?invite_code=05Kj3I) | 1 | [API](https://biboxcom.github.io/en/) | | | | [![bigone](https://user-images.githubusercontent.com/1294454/69354403-1d532180-0c91-11ea-88ed-44c06cefdf87.jpg)](https://b1.run/users/new?code=D3LLBVFT) | bigone | [BigONE](https://b1.run/users/new?code=D3LLBVFT) | 3 | [API](https://open.big.one/docs/api.html) | | | @@ -66,14 +68,14 @@ The CCXT library currently supports the following 123 cryptocurrency exchange ma | [![bitbank](https://user-images.githubusercontent.com/1294454/37808081-b87f2d9c-2e59-11e8-894d-c1900b7584fe.jpg)](https://bitbank.cc/) | bitbank | [bitbank](https://bitbank.cc/) | 1 | [API](https://docs.bitbank.cc/) | | | | [![bitbay](https://user-images.githubusercontent.com/1294454/27766132-978a7bd8-5ece-11e7-9540-bc96d1e9bbb8.jpg)](https://auth.bitbay.net/ref/jHlbB4mIkdS1) | bitbay | [BitBay](https://auth.bitbay.net/ref/jHlbB4mIkdS1) | * | [API](https://bitbay.net/public-api) | | | | [![bitcoincom](https://user-images.githubusercontent.com/1294454/97296144-514fa300-1861-11eb-952b-3d55d492200b.jpg)](https://exchange.bitcoin.com/referral/da948b21d6c92d69) | bitcoincom | [bitcoin.com](https://exchange.bitcoin.com/referral/da948b21d6c92d69) | 2 | [API](https://api.exchange.bitcoin.com/api/2/explore) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | -| [![bitfinex](https://user-images.githubusercontent.com/1294454/27766244-e328a50c-5ed2-11e7-947b-041416579bb3.jpg)](https://www.bitfinex.com/?refcode=P61eYxFL) | bitfinex | [Bitfinex](https://www.bitfinex.com/?refcode=P61eYxFL) | 1 | [API](https://docs.bitfinex.com/v1/docs) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | +| [![bitfinex](https://user-images.githubusercontent.com/1294454/27766244-e328a50c-5ed2-11e7-947b-041416579bb3.jpg)](https://www.bitfinex.com/?refcode=P61eYxFL) | bitfinex | [Bitfinex](https://www.bitfinex.com/?refcode=P61eYxFL) | 1 | [API](https://docs.bitfinex.com/v1/docs) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | | [![bitfinex2](https://user-images.githubusercontent.com/1294454/27766244-e328a50c-5ed2-11e7-947b-041416579bb3.jpg)](https://www.bitfinex.com/?refcode=P61eYxFL) | bitfinex2 | [Bitfinex](https://www.bitfinex.com/?refcode=P61eYxFL) | 2 | [API](https://docs.bitfinex.com/v2/docs/) | | | | [![bitflyer](https://user-images.githubusercontent.com/1294454/28051642-56154182-660e-11e7-9b0d-6042d1e6edd8.jpg)](https://bitflyer.com) | bitflyer | [bitFlyer](https://bitflyer.com) | 1 | [API](https://lightning.bitflyer.com/docs?lang=en) | | | | [![bitforex](https://user-images.githubusercontent.com/51840849/87295553-1160ec00-c50e-11ea-8ea0-df79276a9646.jpg)](https://www.bitforex.com/en/invitationRegister?inviterId=1867438) | bitforex | [Bitforex](https://www.bitforex.com/en/invitationRegister?inviterId=1867438) | 1 | [API](https://github.com/githubdev2020/API_Doc_en/wiki) | | | | [![bitget](https://user-images.githubusercontent.com/51840849/88317935-a8a21c80-cd22-11ea-8e2b-4b9fac5975eb.jpg)](https://www.bitget.com/expressly?languageType=0&channelCode=ccxt&vipCode=tg9j) | bitget | [Bitget](https://www.bitget.com/expressly?languageType=0&channelCode=ccxt&vipCode=tg9j) | 3 | [API](https://bitgetlimited.github.io/apidoc/en/swap) | | | | [![bithumb](https://user-images.githubusercontent.com/1294454/30597177-ea800172-9d5e-11e7-804c-b9d4fa9b56b0.jpg)](https://www.bithumb.com) | bithumb | [Bithumb](https://www.bithumb.com) | * | [API](https://apidocs.bithumb.com) | | | | [![bitkk](https://user-images.githubusercontent.com/1294454/32859187-cd5214f0-ca5e-11e7-967d-96568e2e2bd1.jpg)](https://www.bitkk.com) | bitkk | [bitkk](https://www.bitkk.com) | 1 | [API](https://www.bitkk.com/i/developer) | | | -| [![bitmart](https://user-images.githubusercontent.com/1294454/61835713-a2662f80-ae85-11e9-9d00-6442919701fd.jpg)](http://www.bitmart.com/?r=rQCFLh) | bitmart | [BitMart](http://www.bitmart.com/?r=rQCFLh) | 1 | [API](https://github.com/bitmartexchange/bitmart-official-api-docs) | | | +| [![bitmart](https://user-images.githubusercontent.com/1294454/61835713-a2662f80-ae85-11e9-9d00-6442919701fd.jpg)](http://www.bitmart.com/?r=rQCFLh) | bitmart | [BitMart](http://www.bitmart.com/?r=rQCFLh) | 1 | [API](https://developer-pro.bitmart.com/) | | | | [![bitmax](https://user-images.githubusercontent.com/1294454/66820319-19710880-ef49-11e9-8fbe-16be62a11992.jpg)](https://bitmax.io/#/register?inviteCode=EL6BXBQM) | bitmax | [BitMax](https://bitmax.io/#/register?inviteCode=EL6BXBQM) | 1 | [API](https://bitmax-exchange.github.io/bitmax-pro-api/#bitmax-pro-api-documentation) | | | | [![bitmex](https://user-images.githubusercontent.com/1294454/27766319-f653c6e6-5ed4-11e7-933d-f0bc3699ae8f.jpg)](https://www.bitmex.com/register/upZpOX) | bitmex | [BitMEX](https://www.bitmex.com/register/upZpOX) | 1 | [API](https://www.bitmex.com/app/apiOverview) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | | [![bitpanda](https://user-images.githubusercontent.com/51840849/87591171-9a377d80-c6f0-11ea-94ac-97a126eac3bc.jpg)](https://www.bitpanda.com/en/pro) | bitpanda | [Bitpanda Pro](https://www.bitpanda.com/en/pro) | 1 | [API](https://developers.bitpanda.com/exchange/) | | | @@ -95,6 +97,7 @@ The CCXT library currently supports the following 123 cryptocurrency exchange ma | [![bw](https://user-images.githubusercontent.com/1294454/69436317-31128c80-0d52-11ea-91d1-eb7bb5818812.jpg)](https://www.bw.com/regGetCommission/N3JuT1R3bWxKTE0) | bw | [BW](https://www.bw.com/regGetCommission/N3JuT1R3bWxKTE0) | 1 | [API](https://github.com/bw-exchange/api_docs_en/wiki) | | | | [![bybit](https://user-images.githubusercontent.com/51840849/76547799-daff5b80-649e-11ea-87fb-3be9bac08954.jpg)](https://www.bybit.com/app/register?ref=X7Prm) | bybit | [Bybit](https://www.bybit.com/app/register?ref=X7Prm) | 2 | [API](https://bybit-exchange.github.io/docs/inverse/) | | | | [![bytetrade](https://user-images.githubusercontent.com/1294454/67288762-2f04a600-f4e6-11e9-9fd6-c60641919491.jpg)](https://www.byte-trade.com) | bytetrade | [ByteTrade](https://www.byte-trade.com) | * | [API](https://docs.byte-trade.com/#description) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | | +| [![cdax](https://user-images.githubusercontent.com/1294454/102157692-fd406280-3e90-11eb-8d46-4511b617cd17.jpg)](https://cdax.io/invite?invite_code=esc74) | cdax | [CDAX](https://cdax.io/invite?invite_code=esc74) | 1 | [API](https://github.com/cloudapidoc/API_Docs) | | | | [![cex](https://user-images.githubusercontent.com/1294454/27766442-8ddc33b0-5ed8-11e7-8b98-f786aef0f3c9.jpg)](https://cex.io/r/0/up105393824/0/) | cex | [CEX.IO](https://cex.io/r/0/up105393824/0/) | * | [API](https://cex.io/cex-api) | | | | [![chilebit](https://user-images.githubusercontent.com/1294454/27991414-1298f0d8-647f-11e7-9c40-d56409266336.jpg)](https://chilebit.net) | chilebit | [ChileBit](https://chilebit.net) | 1 | [API](https://blinktrade.com/docs) | | | | [![coinbase](https://user-images.githubusercontent.com/1294454/40811661-b6eceae2-653a-11e8-829e-10bfadb078cf.jpg)](https://www.coinbase.com/join/58cbe25a355148797479dbd2) | coinbase | [Coinbase](https://www.coinbase.com/join/58cbe25a355148797479dbd2) | 2 | [API](https://developers.coinbase.com/api/v2) | | | @@ -112,9 +115,11 @@ The CCXT library currently supports the following 123 cryptocurrency exchange ma | [![coinspot](https://user-images.githubusercontent.com/1294454/28208429-3cacdf9a-6896-11e7-854e-4c79a772a30f.jpg)](https://www.coinspot.com.au/register?code=PJURCU) | coinspot | [CoinSpot](https://www.coinspot.com.au/register?code=PJURCU) | * | [API](https://www.coinspot.com.au/api) | | | | [![crex24](https://user-images.githubusercontent.com/1294454/47813922-6f12cc00-dd5d-11e8-97c6-70f957712d47.jpg)](https://crex24.com/?refid=slxsjsjtil8xexl9hksr) | crex24 | [CREX24](https://crex24.com/?refid=slxsjsjtil8xexl9hksr) | 2 | [API](https://docs.crex24.com/trade-api/v2) | | | | [![currencycom](https://user-images.githubusercontent.com/1294454/83718672-36745c00-a63e-11ea-81a9-677b1f789a4d.jpg)](https://currency.com/trading/signup?c=362jaimv&pid=referral) | currencycom | [Currency.com](https://currency.com/trading/signup?c=362jaimv&pid=referral) | 1 | [API](https://currency.com/api) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | +| [![delta](https://user-images.githubusercontent.com/1294454/99450025-3be60a00-2931-11eb-9302-f4fd8d8589aa.jpg)](https://www.delta.exchange/app/signup/?code=IULYNB) | delta | [Delta Exchange](https://www.delta.exchange/app/signup/?code=IULYNB) | 2 | [API](https://docs.delta.exchange) | | | | [![deribit](https://user-images.githubusercontent.com/1294454/41933112-9e2dd65a-798b-11e8-8440-5bab2959fcb8.jpg)](https://www.deribit.com/reg-1189.4038) | deribit | [Deribit](https://www.deribit.com/reg-1189.4038) | 2 | [API](https://docs.deribit.com/v2) | | | | [![digifinex](https://user-images.githubusercontent.com/51840849/87443315-01283a00-c5fe-11ea-8628-c2a0feaf07ac.jpg)](https://www.digifinex.com/en-ww/from/DhOzBg?channelCode=ljaUPp) | digifinex | [DigiFinex](https://www.digifinex.com/en-ww/from/DhOzBg?channelCode=ljaUPp) | 3 | [API](https://docs.digifinex.com) | | | | [![dsx](https://user-images.githubusercontent.com/51840849/76909626-cb2bb100-68bc-11ea-99e0-28ba54f04792.jpg)](https://dsxglobal.com) | dsx | [DSX](https://dsxglobal.com) | 3 | [API](https://dsxglobal.com/developers/publicApi) | | | +| [![equos](https://user-images.githubusercontent.com/1294454/107758499-05edd180-6d38-11eb-9e09-0b69602a7a15.jpg)](https://equos.io?referredByCode=zpa8kij4ouvBFup3) | equos | [EQUOS](https://equos.io?referredByCode=zpa8kij4ouvBFup3) | * | [API](https://developer.equos.io) | | | | [![eterbase](https://user-images.githubusercontent.com/1294454/82067900-faeb0f80-96d9-11ea-9f22-0071cfcb9871.jpg)](https://eterbase.exchange/invite/1wjjh4Pe) | eterbase | [Eterbase](https://eterbase.exchange/invite/1wjjh4Pe) | 1 | [API](https://developers.eterbase.exchange) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | | | [![exmo](https://user-images.githubusercontent.com/1294454/27766491-1b0ea956-5eda-11e7-9225-40d67b481b8d.jpg)](https://exmo.me/?ref=131685) | exmo | [EXMO](https://exmo.me/?ref=131685) | 1.1 | [API](https://exmo.me/en/api_doc?ref=131685) | | | | [![exx](https://user-images.githubusercontent.com/1294454/37770292-fbf613d0-2de4-11e8-9f79-f2dc451b8ccb.jpg)](https://www.exx.com/r/fde4260159e53ab8a58cc9186d35501f?recommQd=1) | exx | [EXX](https://www.exx.com/r/fde4260159e53ab8a58cc9186d35501f?recommQd=1) | * | [API](https://www.exx.com/help/restApi) | | | @@ -125,12 +130,12 @@ The CCXT library currently supports the following 123 cryptocurrency exchange ma | [![ftx](https://user-images.githubusercontent.com/1294454/67149189-df896480-f2b0-11e9-8816-41593e17f9ec.jpg)](https://ftx.com/#a=1623029) | ftx | [FTX](https://ftx.com/#a=1623029) | * | [API](https://github.com/ftexchange/ftx) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | | [![gateio](https://user-images.githubusercontent.com/1294454/31784029-0313c702-b509-11e7-9ccc-bc0da6a0e435.jpg)](https://www.gate.io/signup/2436035) | gateio | [Gate.io](https://www.gate.io/signup/2436035) | 2 | [API](https://gate.io/api2) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | | [![gemini](https://user-images.githubusercontent.com/1294454/27816857-ce7be644-6096-11e7-82d6-3c257263229c.jpg)](https://gemini.com/) | gemini | [Gemini](https://gemini.com/) | 1 | [API](https://docs.gemini.com/rest-api) | | | +| [![gopax](https://user-images.githubusercontent.com/1294454/102897212-ae8a5e00-4478-11eb-9bab-91507c643900.jpg)](https://www.gopax.co.kr) | gopax | [GOPAX](https://www.gopax.co.kr) | 1 | [API](https://gopax.github.io/API/index.en.html) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | | [![hbtc](https://user-images.githubusercontent.com/51840849/80134449-70663300-85a7-11ea-8942-e204cdeaab5d.jpg)](https://www.hbtc.com/register/O2S8NS) | hbtc | [HBTC](https://www.hbtc.com/register/O2S8NS) | 1 | [API](https://github.com/bhexopen/BHEX-OpenApi/tree/master/doc) | | | | [![hitbtc](https://user-images.githubusercontent.com/1294454/27766555-8eaec20e-5edc-11e7-9c5b-6dc69fc42f5e.jpg)](https://hitbtc.com/?ref_id=5a5d39a65d466) | hitbtc | [HitBTC](https://hitbtc.com/?ref_id=5a5d39a65d466) | 2 | [API](https://api.hitbtc.com) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | | [![hollaex](https://user-images.githubusercontent.com/1294454/75841031-ca375180-5ddd-11ea-8417-b975674c23cb.jpg)](https://pro.hollaex.com/signup?affiliation_code=QSWA6G) | hollaex | [HollaEx](https://pro.hollaex.com/signup?affiliation_code=QSWA6G) | 1 | [API](https://apidocs.hollaex.com) | | | | [![huobijp](https://user-images.githubusercontent.com/1294454/85734211-85755480-b705-11ea-8b35-0b7f1db33a2f.jpg)](https://www.huobi.co.jp/register/?invite_code=znnq3) | huobijp | [Huobi Japan](https://www.huobi.co.jp/register/?invite_code=znnq3) | 1 | [API](https://api-doc.huobi.co.jp) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | | [![huobipro](https://user-images.githubusercontent.com/1294454/76137448-22748a80-604e-11ea-8069-6e389271911d.jpg)](https://www.huobi.com/en-us/topic/invited/?invite_code=rwrd3) | huobipro | [Huobi Pro](https://www.huobi.com/en-us/topic/invited/?invite_code=rwrd3) | 1 | [API](https://huobiapi.github.io/docs/spot/v1/cn/) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | -| [![huobiru](https://user-images.githubusercontent.com/1294454/52978816-e8552e00-33e3-11e9-98ed-845acfece834.jpg)](https://www.huobi.com.ru/invite?invite_code=esc74) | huobiru | [Huobi Russia](https://www.huobi.com.ru/invite?invite_code=esc74) | 1 | [API](https://github.com/cloudapidoc/API_Docs_en) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | | [![ice3x](https://user-images.githubusercontent.com/51840849/87460809-1dd06c00-c616-11ea-98ad-7d5e1cb7fcdd.jpg)](https://ice3x.com?ref=14341802) | ice3x | [ICE3X](https://ice3x.com?ref=14341802) | 1 | [API](https://ice3x.co.za/ice-cubed-bitcoin-exchange-api-documentation-1-june-2017) | | | | [![idex](https://user-images.githubusercontent.com/51840849/94481303-2f222100-01e0-11eb-97dd-bc14c5943a86.jpg)](https://idex.io) | idex | [IDEX](https://idex.io) | 2 | [API](https://docs.idex.io/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | | [![independentreserve](https://user-images.githubusercontent.com/51840849/87182090-1e9e9080-c2ec-11ea-8e49-563db9a38f37.jpg)](https://www.independentreserve.com) | independentreserve | [Independent Reserve](https://www.independentreserve.com) | * | [API](https://www.independentreserve.com/API) | | | @@ -143,11 +148,11 @@ The CCXT library currently supports the following 123 cryptocurrency exchange ma | [![latoken](https://user-images.githubusercontent.com/1294454/61511972-24c39f00-aa01-11e9-9f7c-471f1d6e5214.jpg)](https://latoken.com) | latoken | [Latoken](https://latoken.com) | 1 | [API](https://api.latoken.com) | | | | [![lbank](https://user-images.githubusercontent.com/1294454/38063602-9605e28a-3302-11e8-81be-64b1e53c4cfb.jpg)](https://www.lbex.io/invite?icode=7QCY) | lbank | [LBank](https://www.lbex.io/invite?icode=7QCY) | 1 | [API](https://github.com/LBank-exchange/lbank-official-api-docs) | | | | [![liquid](https://user-images.githubusercontent.com/1294454/45798859-1a872600-bcb4-11e8-8746-69291ce87b04.jpg)](https://www.liquid.com/sign-up/?affiliate=SbzC62lt30976) | liquid | [Liquid](https://www.liquid.com/sign-up/?affiliate=SbzC62lt30976) | 2 | [API](https://developers.liquid.com) | | | -| [![livecoin](https://user-images.githubusercontent.com/1294454/27980768-f22fc424-638a-11e7-89c9-6010a54ff9be.jpg)](https://livecoin.net/?from=Livecoin-CQ1hfx44) | livecoin | [LiveCoin](https://livecoin.net/?from=Livecoin-CQ1hfx44) | * | [API](https://www.livecoin.net/api?lang=en) | | | | [![luno](https://user-images.githubusercontent.com/1294454/27766607-8c1a69d8-5ede-11e7-930c-540b5eb9be24.jpg)](https://www.luno.com/invite/44893A) | luno | [luno](https://www.luno.com/invite/44893A) | 1 | [API](https://www.luno.com/en/api) | | | | [![lykke](https://user-images.githubusercontent.com/1294454/34487620-3139a7b0-efe6-11e7-90f5-e520cef74451.jpg)](https://www.lykke.com) | lykke | [Lykke](https://www.lykke.com) | 1 | [API](https://hft-api.lykke.com/swagger/ui/) | | | | [![mercado](https://user-images.githubusercontent.com/1294454/27837060-e7c58714-60ea-11e7-9192-f05e86adb83f.jpg)](https://www.mercadobitcoin.com.br) | mercado | [Mercado Bitcoin](https://www.mercadobitcoin.com.br) | 3 | [API](https://www.mercadobitcoin.com.br/api-doc) | | | | [![mixcoins](https://user-images.githubusercontent.com/51840849/87460810-1dd06c00-c616-11ea-9276-956f400d6ffa.jpg)](https://mixcoins.com) | mixcoins | [MixCoins](https://mixcoins.com) | 1 | [API](https://mixcoins.com/help/api/) | | | +| [![ndax](https://user-images.githubusercontent.com/1294454/108623144-67a3ef00-744e-11eb-8140-75c6b851e945.jpg)](https://one.ndax.io/bfQiSL) | ndax | [NDAX](https://one.ndax.io/bfQiSL) | * | [API](https://apidoc.ndax.io/) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | | [![novadax](https://user-images.githubusercontent.com/1294454/92337550-2b085500-f0b3-11ea-98e7-5794fb07dd3b.jpg)](https://www.novadax.com.br/?s=ccxt) | novadax | [NovaDAX](https://www.novadax.com.br/?s=ccxt) | 1 | [API](https://doc.novadax.com/pt-BR/) | | | | [![oceanex](https://user-images.githubusercontent.com/1294454/58385970-794e2d80-8001-11e9-889c-0567cd79b78e.jpg)](https://oceanex.pro/signup?referral=VE24QX) | oceanex | [OceanEx](https://oceanex.pro/signup?referral=VE24QX) | 1 | [API](https://api.oceanex.pro/doc/v1) | | | | [![okcoin](https://user-images.githubusercontent.com/51840849/87295551-102fbf00-c50e-11ea-90a9-462eebba5829.jpg)](https://www.okcoin.com/account/register?flag=activity&channelId=600001513) | okcoin | [OKCoin](https://www.okcoin.com/account/register?flag=activity&channelId=600001513) | 3 | [API](https://www.okcoin.com/docs/en/) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | @@ -166,7 +171,7 @@ The CCXT library currently supports the following 123 cryptocurrency exchange ma | [![tidebit](https://user-images.githubusercontent.com/51840849/87460811-1e690280-c616-11ea-8652-69f187305add.jpg)](http://bit.ly/2IX0LrM) | tidebit | [TideBit](http://bit.ly/2IX0LrM) | 2 | [API](https://www.tidebit.com/documents/api/guide) | | | | [![tidex](https://user-images.githubusercontent.com/1294454/30781780-03149dc4-a12e-11e7-82bb-313b269d24d4.jpg)](https://tidex.com/exchange/?ref=57f5638d9cd7) | tidex | [Tidex](https://tidex.com/exchange/?ref=57f5638d9cd7) | 3 | [API](https://tidex.com/exchange/public-api) | | | | [![timex](https://user-images.githubusercontent.com/1294454/70423869-6839ab00-1a7f-11ea-8f94-13ae72c31115.jpg)](https://timex.io/?refcode=1x27vNkTbP1uwkCck) | timex | [TimeX](https://timex.io/?refcode=1x27vNkTbP1uwkCck) | 1 | [API](https://docs.timex.io) | | | -| [![upbit](https://user-images.githubusercontent.com/1294454/49245610-eeaabe00-f423-11e8-9cba-4b0aed794799.jpg)](https://upbit.com) | upbit | [Upbit](https://upbit.com) | 1 | [API](https://docs.upbit.com/docs/%EC%9A%94%EC%B2%AD-%EC%88%98-%EC%A0%9C%ED%95%9C) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | +| [![upbit](https://user-images.githubusercontent.com/1294454/49245610-eeaabe00-f423-11e8-9cba-4b0aed794799.jpg)](https://upbit.com) | upbit | [Upbit](https://upbit.com) | 1 | [API](https://docs.upbit.com/docs/%EC%9A%94%EC%B2%AD-%EC%88%98-%EC%A0%9C%ED%95%9C) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | | [![vaultoro](https://user-images.githubusercontent.com/1294454/27766880-f205e870-5ee9-11e7-8fe2-0d5b15880752.jpg)](https://www.vaultoro.com) | vaultoro | [Vaultoro](https://www.vaultoro.com) | 1 | [API](https://api.vaultoro.com) | | | | [![vbtc](https://user-images.githubusercontent.com/1294454/27991481-1f53d1d8-6481-11e7-884e-21d17e7939db.jpg)](https://vbtc.exchange) | vbtc | [VBTC](https://vbtc.exchange) | 1 | [API](https://blinktrade.com/docs) | | | | [![vcc](https://user-images.githubusercontent.com/1294454/100545356-8427f500-326c-11eb-9539-7d338242d61b.jpg)](https://vcc.exchange?ref=l4xhrH) | vcc | [VCC Exchange](https://vcc.exchange?ref=l4xhrH) | 3 | [API](https://vcc.exchange/api) | | | @@ -224,13 +229,13 @@ console.log (ccxt.exchanges) // print all available exchanges All-in-one browser bundle (dependencies included), served from a CDN of your choice: -* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@1.38.76/dist/ccxt.browser.js -* unpkg: https://unpkg.com/ccxt@1.38.76/dist/ccxt.browser.js +* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@1.42.77/dist/ccxt.browser.js +* unpkg: https://unpkg.com/ccxt@1.42.77/dist/ccxt.browser.js CDNs are not updated in real-time and may have delays. Defaulting to the most recent version without specifying the version number is not recommended. Please, keep in mind that we are not responsible for the correct operation of those CDN servers. ```HTML - + ``` Creates a global `ccxt` object: @@ -275,6 +280,8 @@ include "ccxt.php"; var_dump (\ccxt\Exchange::$exchanges); // print a list of all available exchange classes ``` +The library supports concurrent asynchronous mode using tools from [RecoilPHP](https://github.com/recoilphp/recoil) and [ReactPHP](https://reactphp.org/) in PHP 7.1+. Read the [Manual](https://github.com/ccxt/ccxt/wiki) for more details. + ### Docker You can get CCXT installed in a container along with all the supported languages and dependencies. This may be useful if you want to contribute to CCXT (e.g. run the build scripts and tests — please see the [Contributing](https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md) document for the details on that). @@ -529,15 +536,6 @@ Thank you to all our backers! [[Become a backer](https://opencollective.com/ccxt -### Crypto - -``` -ETH 0x26a3CB49578F07000575405a57888681249c35Fd (ETH only) -BTC 33RmVRfhK2WZVQR1R83h2e9yXoqRNDvJva -BCH 1GN9p233TvNcNQFthCgfiHUnj5JRKEc2Ze -LTC LgM5hkvPzytEFfQGGDFGKYkE743jwUA7qv -``` - Thank you! ## Social diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/build/transpile.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/build/transpile.js index 0f4d1dcc6..948a34c0f 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/build/transpile.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/build/transpile.js @@ -274,6 +274,7 @@ class Transpiler { [ /(?<=[^\s#]) \]/g, ']' ], // PEP8 E202 remove whitespaces before right ] square bracket [ /(?<=[^\s#]) \}/g, '}' ], // PEP8 E202 remove whitespaces before right } bracket [ /([^a-z])(elif|if|or|else)\(/g, '$1$2 \(' ], // a correction for PEP8 E225 side-effect for compound and ternary conditionals + [ /\!\=\sTrue/g, 'is not True' ], // a correction for PEP8 E712, it likes "is not True", not "!= True" [ /\=\=\sTrue/g, 'is True' ], // a correction for PEP8 E712, it likes "is True", not "== True" [ /\sdelete\s/g, ' del ' ], [ /(?\=]+(\<=|\>=|<|>)\s*(.*)\s*\;([^\)]+)\)\s*{/g, 'for ($1 = $2; $1 $3 $4;$5) {' ], [ /([^\s]+)\.length\;/g, 'is_array($1) ? count($1) : 0;' ], [ /\.push\s*\(([\s\S]+?)\)\;/g, '[] = $1;' ], - [ /(\s)await(\s)/g, '$1' ], + [ /(\b)await(\b)/g, 'yield' ], [ /([\S])\: /g, '$1 => ' ], // add {}-array syntax conversions up to 20 levels deep @@ -441,7 +448,7 @@ class Transpiler { "import os", "import sys", "", - "root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))", + "root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))", "sys.path.append(root)", "", "# ----------------------------------------------------------------------------", @@ -598,11 +605,11 @@ class Transpiler { return 'class ' + className + ' extends ' + baseClass + ' {' } - createPHPClassHeader (className, baseClass, bodyAsString) { + createPHPClassHeader (className, baseClass, bodyAsString, namespace) { return [ " sync PHP + let phpBody = this.transpileAsyncPHPToSyncPHP (phpAsyncBody) + + return { python3Body, python2Body, phpBody, phpAsyncBody } } //----------------------------------------------------------------------------- transpilePythonAsyncToSync () { - const async = './python/test/test_async.py' - const sync = './python/test/test.py' + const async = './python/ccxt/test/test_async.py' + const sync = './python/ccxt/test/test_sync.py' log.magenta ('Transpiling ' + async .yellow + ' → ' + sync.yellow) const fileContents = fs.readFileSync (async, 'utf8') let lines = fileContents.split ("\n") lines = lines.filter (line => ![ 'import asyncio' ].includes (line)) - .map (line => { - return ( - line.replace ('asyncio.get_event_loop().run_until_complete(main())', 'main()') - .replace ('import ccxt.async_support as ccxt', 'import ccxt') - .replace (/.*token\_bucket.*/g, '') - .replace ('await asyncio.sleep', 'time.sleep') - .replace ('async ', '') - .replace ('await ', '')) - }) + .map (line => { + return ( + line.replace ('asyncio.get_event_loop().run_until_complete(main())', 'main()') + .replace ('import ccxt.async_support as ccxt', 'import ccxt') + .replace (/.*token\_bucket.*/g, '') + .replace ('await asyncio.sleep', 'time.sleep') + .replace ('async ', '') + .replace ('await ', '')) + }) // lines.forEach (line => log (line)) @@ -803,22 +822,47 @@ class Transpiler { fs.writeFileSync (sync, newContents) } + //----------------------------------------------------------------------------- + + transpilePhpAsyncToSync () { + + const async = './php/test/test_async.php' + const sync = './php/test/test_sync.php' + log.magenta ('Transpiling ' + async .yellow + ' → ' + sync.yellow) + const fileContents = fs.readFileSync (async, 'utf8') + const syncBody = this.transpileAsyncPHPToSyncPHP (fileContents) + + const phpSyncRegexes = [ + [ /\$kernel->execute\(\$main\)/, '\$main()' ], + [ /\$kernel->run\(\);\n/, '' ], + [ /\$kernel = async\\Exchange::get_kernel\(\);\n/, '' ], + [ /ccxt\\\\async/, 'ccxt' ], + ] + + const newContents = this.regexAll (syncBody, phpSyncRegexes) + + fs.truncateSync (sync) + fs.writeFileSync (sync, newContents) + } + + // ------------------------------------------------------------------------ + + getExchangeClassDeclarationMatches (contents) { + return contents.match (/^module\.exports\s*=\s*class\s+([\S]+)\s+extends\s+([\S]+)\s+{([\s\S]+?)^};*/m) + } + // ------------------------------------------------------------------------ transpileDerivedExchangeClass (contents, methodNames = undefined) { - let exchangeClassDeclarationMatches = contents.match (/^module\.exports\s*=\s*class\s+([\S]+)\s+extends\s+([\S]+)\s+{([\s\S]+?)^};*/m) + const [ _, className, baseClass, methodMatches ] = this.getExchangeClassDeclarationMatches (contents) - // log.green (file, exchangeClassDeclarationMatches[3]) - - let className = exchangeClassDeclarationMatches[1] - let baseClass = exchangeClassDeclarationMatches[2] - - let methods = exchangeClassDeclarationMatches[3].trim ().split (/\n\s*\n/) + const methods = methodMatches.trim ().split (/\n\s*\n/) let python2 = [] let python3 = [] let php = [] + let phpAsync = [] methodNames = [] // methodNames || [] @@ -838,14 +882,6 @@ class Transpiler { // async or not let keyword = matches[1] - // try { - // keyword = matches[1] - // } catch (e) { - // log.red (e) - // log.green (methods[i]) - // log.yellow (exchangeClassDeclarationMatches[3].trim ().split (/\n\s*\n/)) - // process.exit () - // } // method name let method = matches[2] @@ -869,17 +905,17 @@ class Transpiler { // remove excessive spacing from argument defaults in Python method signature let pythonArgs = args.map (x => x.replace (' = ', '=')) - .join (', ') - .replace (/undefined/g, 'None') - .replace (/false/g, 'False') - .replace (/true/g, 'True') + .join (', ') + .replace (/undefined/g, 'None') + .replace (/false/g, 'False') + .replace (/true/g, 'True') // method body without the signature (first line) // and without the closing bracket (last line) let js = lines.slice (1, -1).join ("\n") // transpile everything - let { python3Body, python2Body, phpBody } = this.transpileJavaScriptToPythonAndPHP ({ js, className, variables, removeEmptyLines: true }) + let { python3Body, python2Body, phpBody, phpAsyncBody } = this.transpileJavaScriptToPythonAndPHP ({ js, className, variables, removeEmptyLines: true }) // compile the final Python code for the method signature let pythonString = 'def ' + method + '(self' + (pythonArgs.length ? ', ' + pythonArgs : '') + '):' @@ -900,14 +936,19 @@ class Transpiler { php.push (phpBody); php.push (' }') + phpAsync.push (''); + phpAsync.push (' public function ' + method + '(' + phpArgs + ') {'); + phpAsync.push (phpAsyncBody); + phpAsync.push (' }') } return { - // altogether in PHP, Python 2 and 3 (async) - python2: this.createPythonClass (className, baseClass, python2, methodNames), - python3: this.createPythonClass (className, baseClass, python3, methodNames, true), - php: this.createPHPClass (className, baseClass, php, methodNames), + // altogether in PHP, async PHP, Python 2 and 3 (async) + python2: this.createPythonClass (className, baseClass, python2, methodNames), + python3: this.createPythonClass (className, baseClass, python3, methodNames, true), + php: this.createPHPClass (className, baseClass, php, methodNames), + phpAsync: this.createPHPClass (className, baseClass, phpAsync, methodNames, true), className, baseClass, @@ -916,46 +957,58 @@ class Transpiler { // ======================================================================== - transpileDerivedExchangeFile (jsFolder, filename, options) { + transpileDerivedExchangeFile (jsFolder, filename, options, force = false) { // todo normalize jsFolder and other arguments try { - const { python2Folder, python3Folder, phpFolder } = options - const path = jsFolder + filename - const contents = fs.readFileSync (path, 'utf8') + const { python2Folder, python3Folder, phpFolder, phpAsyncFolder } = options + const pythonFilename = filename.replace ('.js', '.py') + const phpFilename = filename.replace ('.js', '.php') - // function getMethodNames (object) { - // let functions = [] - // let o = object - // do { - // functions = functions.concat (Object.getOwnPropertyNames (o)) - // } while (o = Object.getPrototypeOf (o)) - // return unique (functions.filter (f => (typeof object[f] === 'function'))) - // } - // const exchangeClass = require ('.' + path) - // const exchange = new exchangeClass () - // const methodNames = getMethodNames (exchange) - // const { python2, python3, php, className, baseClass } = - // this.transpileDerivedExchangeClass (contents, methodNames) + const jsMtime = fs.statSync (jsFolder + filename).mtime.getTime () - const { python2, python3, php, className, baseClass } = - this.transpileDerivedExchangeClass (contents) + const python2Path = python2Folder ? (python2Folder + pythonFilename) : undefined + const python3Path = python3Folder ? (python3Folder + pythonFilename) : undefined + const phpPath = phpFolder ? (phpFolder + phpFilename) : undefined + const phpAsyncPath = phpAsyncFolder ? (phpAsyncFolder + phpFilename) : undefined - log.cyan ('Transpiling from', filename.yellow) + const python2Mtime = python2Folder ? (fs.existsSync (python2Path) ? fs.statSync (python2Path).mtime.getTime () : 0) : undefined + const python3Mtime = python3Path ? (fs.existsSync (python3Path) ? fs.statSync (python3Path).mtime.getTime () : 0) : undefined + const phpAsyncMtime = phpAsyncFolder ? (fs.existsSync (phpAsyncPath) ? fs.statSync (phpAsyncPath).mtime.getTime () : 0) : undefined + const phpMtime = phpPath ? (fs.existsSync (phpPath) ? fs.statSync (phpPath).mtime.getTime () : 0) : undefined - ;[ - [ python2Folder, filename.replace ('.js', '.py'), python2 ], - [ python3Folder, filename.replace ('.js', '.py'), python3 ], - [ phpFolder, filename.replace ('.js', '.php'), php ], - ].forEach (([ folder, filename, code ]) => { - if (folder) { - overwriteFile (folder + filename, code) - } - }) + const contents = fs.readFileSync (jsFolder + filename, 'utf8') - return { className, baseClass } + if (force || + (python3Folder && (jsMtime > python3Mtime)) || + (phpFolder && (jsMtime > phpMtime)) || + (phpAsyncFolder && (jsMtime > phpAsyncMtime)) || + (python2Folder && (jsMtime > python2Mtime))) { + const { python2, python3, php, phpAsync, className, baseClass } = this.transpileDerivedExchangeClass (contents) + log.cyan ('Transpiling from', filename.yellow) + + ;[ + [ python2Folder, pythonFilename, python2 ], + [ python3Folder, pythonFilename, python3 ], + [ phpFolder, phpFilename, php ], + [ phpAsyncFolder, phpFilename, phpAsync ], + ].forEach (([ folder, filename, code ]) => { + if (folder) { + overwriteFile (folder + filename, code) + fs.utimesSync (folder + filename, new Date (), new Date (jsMtime)) + } + }) + + return { className, baseClass } + + } else { + + const [ _, className, baseClass ] = this.getExchangeClassDeclarationMatches (contents) + log.green ('Already transpiled', filename.yellow) + return { className, baseClass } + } } catch (e) { @@ -967,11 +1020,11 @@ class Transpiler { //------------------------------------------------------------------------- - transpileDerivedExchangeFiles (jsFolder, options, pattern = '.js') { + transpileDerivedExchangeFiles (jsFolder, options, pattern = '.js', force = false) { // todo normalize jsFolder and other arguments - const { python2Folder, python3Folder, phpFolder } = options + const { python2Folder, python3Folder, phpFolder, phpAsyncFolder } = options // exchanges.json accounts for ids included in exchanges.cfg let ids = undefined @@ -984,7 +1037,7 @@ class Transpiler { const classNames = fs.readdirSync (jsFolder) .filter (file => file.match (regex) && (!ids || ids.includes (basename (file, '.js')))) - .map (file => this.transpileDerivedExchangeFile (jsFolder, file, options)) + .map (file => this.transpileDerivedExchangeFile (jsFolder, file, options, force)) const classes = {} @@ -1013,6 +1066,7 @@ class Transpiler { [ python2Folder, /\.pyc?$/ ], [ python3Folder, /\.pyc?$/ ], [ phpFolder, /\.php$/ ], + [ phpAsyncFolder, /\.php$/ ], ].forEach (([ folder, pattern ]) => { if (folder) { deleteOldTranspiledFiles (folder, pattern) @@ -1026,19 +1080,37 @@ class Transpiler { // ======================================================================== - exportTypeScriptDeclarations (file, classes) { + exportTypeScriptClassNames (file, classes) { - log.bright.cyan ('Exporting TypeScript declarations →', file.yellow) + log.bright.cyan ('Exporting TypeScript class names →', file.yellow) const regex = /\/[\n]{2}(?: export class [^\s]+ extends [^\s]+ \{\}[\r]?[\n])+/ const replacement = "/\n\n" + Object.keys (classes).map (className => { - const baseClass = classes[className] + const baseClass = classes[className].replace (/ccxt\.[a-z_]+/, 'Exchange') return ' export class ' + className + ' extends ' + baseClass + " {}" }).join ("\n") + "\n" replaceInFile (file, regex, replacement) } + exportTypeScriptExchangeIds (file, classes) { + + log.bright.cyan ('Exporting TypeScript exchange ids →', file.yellow) + + const regex = /\/[\n]{2} export type ExchangeId =\n(?: \| \'[a-z0-9_]+\'[\r]?[\n])+/ + const replacement = "/\n\n export type ExchangeId =\n" + Object.keys (classes).map (className => { + return " | '" + className + "'" + }).join ("\n") + "\n" + + replaceInFile (file, regex, replacement) + } + + exportTypeScriptDeclarations (file, classes) { + + this.exportTypeScriptClassNames (file, classes) + this.exportTypeScriptExchangeIds (file, classes) + } + // ======================================================================== transpileErrorHierarchy () { @@ -1092,7 +1164,7 @@ class Transpiler { const quote = (s) => "'" + s + "'" // helper to add quotes around class names - const pythonExports = [ 'error_hierarchy' ] + const pythonExports = [ 'error_hierarchy', 'BaseError' ] const pythonErrors = intellisense (root, 'BaseError', pythonDeclareErrorClass, pythonExports) const pythonAll = '__all__ = [\n ' + pythonExports.map (quote).join (',\n ') + '\n]' @@ -1157,7 +1229,7 @@ class Transpiler { transpileDateTimeTests () { const jsFile = './js/test/base/functions/test.datetime.js' - const pyFile = './python/test/test_exchange_datetime_functions.py' + const pyFile = './python/ccxt/test/test_exchange_datetime_functions.py' const phpFile = './php/test/test_exchange_datetime_functions.php' log.magenta ('Transpiling from', jsFile.yellow) @@ -1169,7 +1241,7 @@ class Transpiler { [/^\/\*.*\s+/mg, ''], ]) - let { python3Body, python2Body, phpBody } = this.transpileJavaScriptToPythonAndPHP ({ js, removeEmptyLines: false }) + let { python3Body, python2Body, phpBody, phpAsyncBody } = this.transpileJavaScriptToPythonAndPHP ({ js, removeEmptyLines: false }) // phpBody = phpBody.replace (/exchange\./g, 'Exchange::') @@ -1198,7 +1270,7 @@ class Transpiler { transpilePrecisionTests () { const jsFile = './js/test/base/functions/test.number.js' - const pyFile = './python/test/test_decimal_to_precision.py' + const pyFile = './python/ccxt/test/test_decimal_to_precision.py' const phpFile = './php/test/decimal_to_precision.php' log.magenta ('Transpiling from', jsFile.yellow) @@ -1212,7 +1284,7 @@ class Transpiler { [ /numberToString/g, 'number_to_string' ], ]) - let { python3Body, python2Body, phpBody } = this.transpileJavaScriptToPythonAndPHP ({ js, removeEmptyLines: false }) + let { python3Body, python2Body, phpBody, phpAsyncBody } = this.transpileJavaScriptToPythonAndPHP ({ js, removeEmptyLines: false }) const pythonHeader = [ "", @@ -1283,7 +1355,7 @@ class Transpiler { transpileCryptoTests () { const jsFile = './js/test/base/functions/test.crypto.js' - const pyFile = './python/test/test_crypto.py' + const pyFile = './python/ccxt/test/test_crypto.py' const phpFile = './php/test/test_crypto.php' log.magenta ('Transpiling from', jsFile.yellow) @@ -1295,7 +1367,7 @@ class Transpiler { [ /function equals \([\S\s]+?return true\n}\n/g, '' ], ]) - let { python3Body, python2Body, phpBody } = this.transpileJavaScriptToPythonAndPHP ({ js, removeEmptyLines: false }) + let { python3Body, python2Body, phpBody, phpAsyncBody } = this.transpileJavaScriptToPythonAndPHP ({ js, removeEmptyLines: false }) const pythonHeader = [ "", @@ -1352,22 +1424,22 @@ class Transpiler { const tests = [ { 'jsFile': './js/test/Exchange/test.trade.js', - 'pyFile': './python/test/test_trade.py', + 'pyFile': './python/ccxt/test/test_trade.py', 'phpFile': './php/test/test_trade.php', }, { 'jsFile': './js/test/Exchange/test.order.js', - 'pyFile': './python/test/test_order.py', + 'pyFile': './python/ccxt/test/test_order.py', 'phpFile': './php/test/test_order.php', }, { 'jsFile': './js/test/Exchange/test.transaction.js', - 'pyFile': './python/test/test_transaction.py', + 'pyFile': './python/ccxt/test/test_transaction.py', 'phpFile': './php/test/test_transaction.php', }, { 'jsFile': './js/test/Exchange/test.ohlcv.js', - 'pyFile': './python/test/test_ohlcv.py', + 'pyFile': './python/ccxt/test/test_ohlcv.py', 'phpFile': './php/test/test_ohlcv.php', }, ] @@ -1389,7 +1461,6 @@ class Transpiler { ]) const pythonHeader = [ - '', 'import numbers # noqa: E402', 'try:', ' basestring # basestring was removed in Python 3', @@ -1400,7 +1471,7 @@ class Transpiler { ].join('\n') let { python3Body, python2Body, phpBody } = this.transpileJavaScriptToPythonAndPHP ({ js, removeEmptyLines: false }) - const python = this.getPythonPreamble () + pythonHeader + python3Body; + const python = pythonHeader + python3Body; const php = this.getPHPPreamble (false) + phpBody; log.magenta ('→', test.pyFile.yellow) @@ -1423,22 +1494,53 @@ class Transpiler { // ============================================================================ - transpileEverything () { + transpilePhpBaseClassMethods () { + const baseMethods = this.getPHPBaseMethods () + const indent = 4 + const space = ' '.repeat (indent) + const result = [ + 'public static $camelcase_methods = array(', + ] + for (const method of baseMethods) { + const underscoreCase = unCamelCase (method) + if (underscoreCase !== method) { + result.push (space.repeat (2) + '\'' + method + '\' => ' + '\'' + underscoreCase + '\',') + } + } + result.push (space + ');') + const string = result.join ('\n') + + const phpBaseClass = './php/base/Exchange.php'; + const phpBody = fs.readFileSync (phpBaseClass, 'utf8') + const regex = /public static \$camelcase_methods = array\([\s\S]+?\);/g + const bodyArray = phpBody.split (regex) + + const newBody = bodyArray[0] + string + bodyArray[1] + + log.magenta ('Transpiling from ', phpBaseClass.yellow, '→', phpBaseClass.yellow) + overwriteFile (phpBaseClass, newBody) + } + + // ============================================================================ + + transpileEverything (force = false) { // default pattern is '.js' - const [ /* node */, /* script */, pattern ] = process.argv - , python2Folder = './python/ccxt/' - , python3Folder = './python/ccxt/async_support/' - , phpFolder = './php/' - , options = { python2Folder, python3Folder, phpFolder } + const [ /* node */, /* script */, pattern ] = process.argv.filter (x => !x.startsWith ('--')) + , python2Folder = './python/ccxt/' + , python3Folder = './python/ccxt/async_support/' + , phpFolder = './php/' + , phpAsyncFolder = './php/async/' + , options = { python2Folder, python3Folder, phpFolder, phpAsyncFolder } createFolderRecursively (python2Folder) createFolderRecursively (python3Folder) createFolderRecursively (phpFolder) + createFolderRecursively (phpAsyncFolder) //* - const classes = this.transpileDerivedExchangeFiles ('./js/', options, pattern) + const classes = this.transpileDerivedExchangeFiles ('./js/', options, pattern, force) if (classes === null) { log.bright.yellow ('0 files transpiled.') @@ -1457,6 +1559,10 @@ class Transpiler { this.transpilePythonAsyncToSync () + this.transpilePhpAsyncToSync () + + this.transpilePhpBaseClassMethods () + log.bright.green ('Transpiled successfully.') } } @@ -1469,12 +1575,14 @@ if (require.main === module) { // called directly like `node module` const transpiler = new Transpiler () const test = process.argv.includes ('--test') || process.argv.includes ('--tests') const errors = process.argv.includes ('--error') || process.argv.includes ('--errors') + const force = process.argv.includes ('--force') + log.bright.green ({ force }) if (test) { transpiler.transpileTests () } else if (errors) { transpiler.transpileErrorHierarchy () } else { - transpiler.transpileEverything () + transpiler.transpileEverything (force) } } else { // if required as a module diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/build/vss.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/build/vss.js index 24db17ce1..0d98e3c07 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/build/vss.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/build/vss.js @@ -52,6 +52,8 @@ function vssEverything () { vss ('./ccxt.js', "const version = '{version}'", version) vss ('./php/base/Exchange.php', "$version = '{version}'", version) + vss ('./php/async/base/Exchange.php', "VERSION = '{version}'", version) + vss ('./php/async/base/Exchange.php', "$version = '{version}'", version) vss ('./php/base/Exchange.php', "VERSION = '{version}'", version) vss ('./python/ccxt/__init__.py', "__version__ = '{version}'", version) vss ('./python/ccxt/base/exchange.py', "__version__ = '{version}'", version) diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/ccxt.d.ts b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/ccxt.d.ts index eae728f4c..823f7825b 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/ccxt.d.ts +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/ccxt.d.ts @@ -56,16 +56,21 @@ declare module 'ccxt' { symbol: string; base: string; quote: string; - baseId: string, - quoteId: string, + baseId: string; + quoteId: string; + type?: string; + spot?: boolean; + margin?: boolean; + swap?: boolean; + future?: boolean; active: boolean; precision: { base: number, quote: number, amount: number, price: number }; limits: { amount: MinMax, price: MinMax, cost?: MinMax }; - tierBased: boolean, - percentage: boolean, - taker: number, - maker: number, - info: any, + tierBased: boolean; + percentage: boolean; + taker: number; + maker: number; + info: any; } export interface Order { @@ -417,9 +422,9 @@ declare module 'ccxt' { /* tslint:disable */ + export class aax extends Exchange {} export class acx extends Exchange {} export class aofex extends Exchange {} - export class bcex extends Exchange {} export class bequant extends hitbtc {} export class bibox extends Exchange {} export class bigone extends Exchange {} @@ -458,6 +463,7 @@ declare module 'ccxt' { export class bw extends Exchange {} export class bybit extends Exchange {} export class bytetrade extends Exchange {} + export class cdax extends huobipro {} export class cex extends Exchange {} export class chilebit extends foxbit {} export class coinbase extends Exchange {} @@ -475,9 +481,11 @@ declare module 'ccxt' { export class coinspot extends Exchange {} export class crex24 extends Exchange {} export class currencycom extends Exchange {} + export class delta extends Exchange {} export class deribit extends Exchange {} export class digifinex extends Exchange {} export class dsx extends Exchange {} + export class equos extends Exchange {} export class eterbase extends Exchange {} export class exmo extends Exchange {} export class exx extends Exchange {} @@ -488,12 +496,12 @@ declare module 'ccxt' { export class ftx extends Exchange {} export class gateio extends Exchange {} export class gemini extends Exchange {} + export class gopax extends Exchange {} export class hbtc extends Exchange {} export class hitbtc extends Exchange {} export class hollaex extends Exchange {} export class huobijp extends huobipro {} export class huobipro extends Exchange {} - export class huobiru extends huobipro {} export class ice3x extends Exchange {} export class idex extends Exchange {} export class independentreserve extends Exchange {} @@ -506,11 +514,11 @@ declare module 'ccxt' { export class latoken extends Exchange {} export class lbank extends Exchange {} export class liquid extends Exchange {} - export class livecoin extends Exchange {} export class luno extends Exchange {} export class lykke extends Exchange {} export class mercado extends Exchange {} export class mixcoins extends Exchange {} + export class ndax extends Exchange {} export class novadax extends Exchange {} export class oceanex extends Exchange {} export class okcoin extends okex {} @@ -543,4 +551,132 @@ declare module 'ccxt' { /* tslint:enable */ + export type ExchangeId = + | 'aax' + | 'acx' + | 'aofex' + | 'bequant' + | 'bibox' + | 'bigone' + | 'binance' + | 'binanceus' + | 'bit2c' + | 'bitbank' + | 'bitbay' + | 'bitcoincom' + | 'bitfinex' + | 'bitfinex2' + | 'bitflyer' + | 'bitforex' + | 'bitget' + | 'bithumb' + | 'bitkk' + | 'bitmart' + | 'bitmax' + | 'bitmex' + | 'bitpanda' + | 'bitso' + | 'bitstamp' + | 'bitstamp1' + | 'bittrex' + | 'bitvavo' + | 'bitz' + | 'bl3p' + | 'bleutrade' + | 'braziliex' + | 'btcalpha' + | 'btcbox' + | 'btcmarkets' + | 'btctradeua' + | 'btcturk' + | 'buda' + | 'bw' + | 'bybit' + | 'bytetrade' + | 'cdax' + | 'cex' + | 'chilebit' + | 'coinbase' + | 'coinbaseprime' + | 'coinbasepro' + | 'coincheck' + | 'coinegg' + | 'coinex' + | 'coinfalcon' + | 'coinfloor' + | 'coingi' + | 'coinmarketcap' + | 'coinmate' + | 'coinone' + | 'coinspot' + | 'crex24' + | 'currencycom' + | 'delta' + | 'deribit' + | 'digifinex' + | 'dsx' + | 'equos' + | 'eterbase' + | 'exmo' + | 'exx' + | 'fcoin' + | 'fcoinjp' + | 'flowbtc' + | 'foxbit' + | 'ftx' + | 'gateio' + | 'gemini' + | 'gopax' + | 'hbtc' + | 'hitbtc' + | 'hollaex' + | 'huobijp' + | 'huobipro' + | 'ice3x' + | 'idex' + | 'independentreserve' + | 'indodax' + | 'itbit' + | 'kraken' + | 'kucoin' + | 'kuna' + | 'lakebtc' + | 'latoken' + | 'lbank' + | 'liquid' + | 'luno' + | 'lykke' + | 'mercado' + | 'mixcoins' + | 'ndax' + | 'novadax' + | 'oceanex' + | 'okcoin' + | 'okex' + | 'paymium' + | 'phemex' + | 'poloniex' + | 'probit' + | 'qtrade' + | 'rightbtc' + | 'ripio' + | 'southxchange' + | 'stex' + | 'surbitcoin' + | 'therock' + | 'tidebit' + | 'tidex' + | 'timex' + | 'upbit' + | 'vaultoro' + | 'vbtc' + | 'vcc' + | 'wavesexchange' + | 'whitebit' + | 'xbtce' + | 'xena' + | 'yobit' + | 'zaif' + | 'zb' + } diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/ccxt.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/ccxt.js index 20640ac7b..1d5c72642 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/ccxt.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/ccxt.js @@ -35,16 +35,16 @@ const Exchange = require ('./js/base/Exchange') //----------------------------------------------------------------------------- // this is updated by vss.js when building -const version = '1.38.76' +const version = '1.42.77' Exchange.ccxtVersion = version //----------------------------------------------------------------------------- const exchanges = { + 'aax': require ('./js/aax.js'), 'acx': require ('./js/acx.js'), 'aofex': require ('./js/aofex.js'), - 'bcex': require ('./js/bcex.js'), 'bequant': require ('./js/bequant.js'), 'bibox': require ('./js/bibox.js'), 'bigone': require ('./js/bigone.js'), @@ -83,6 +83,7 @@ const exchanges = { 'bw': require ('./js/bw.js'), 'bybit': require ('./js/bybit.js'), 'bytetrade': require ('./js/bytetrade.js'), + 'cdax': require ('./js/cdax.js'), 'cex': require ('./js/cex.js'), 'chilebit': require ('./js/chilebit.js'), 'coinbase': require ('./js/coinbase.js'), @@ -100,9 +101,11 @@ const exchanges = { 'coinspot': require ('./js/coinspot.js'), 'crex24': require ('./js/crex24.js'), 'currencycom': require ('./js/currencycom.js'), + 'delta': require ('./js/delta.js'), 'deribit': require ('./js/deribit.js'), 'digifinex': require ('./js/digifinex.js'), 'dsx': require ('./js/dsx.js'), + 'equos': require ('./js/equos.js'), 'eterbase': require ('./js/eterbase.js'), 'exmo': require ('./js/exmo.js'), 'exx': require ('./js/exx.js'), @@ -113,12 +116,12 @@ const exchanges = { 'ftx': require ('./js/ftx.js'), 'gateio': require ('./js/gateio.js'), 'gemini': require ('./js/gemini.js'), + 'gopax': require ('./js/gopax.js'), 'hbtc': require ('./js/hbtc.js'), 'hitbtc': require ('./js/hitbtc.js'), 'hollaex': require ('./js/hollaex.js'), 'huobijp': require ('./js/huobijp.js'), 'huobipro': require ('./js/huobipro.js'), - 'huobiru': require ('./js/huobiru.js'), 'ice3x': require ('./js/ice3x.js'), 'idex': require ('./js/idex.js'), 'independentreserve': require ('./js/independentreserve.js'), @@ -131,11 +134,11 @@ const exchanges = { 'latoken': require ('./js/latoken.js'), 'lbank': require ('./js/lbank.js'), 'liquid': require ('./js/liquid.js'), - 'livecoin': require ('./js/livecoin.js'), 'luno': require ('./js/luno.js'), 'lykke': require ('./js/lykke.js'), 'mercado': require ('./js/mercado.js'), 'mixcoins': require ('./js/mixcoins.js'), + 'ndax': require ('./js/ndax.js'), 'novadax': require ('./js/novadax.js'), 'oceanex': require ('./js/oceanex.js'), 'okcoin': require ('./js/okcoin.js'), diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/cleanup.sh b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/cleanup.sh new file mode 100644 index 000000000..0dc60ed78 --- /dev/null +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/cleanup.sh @@ -0,0 +1,2 @@ +#!/bin/bash +git checkout HEAD package.json README.md ccxt.d.ts ccxt.js wiki python php dist doc diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/dist/ccxt.browser.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/dist/ccxt.browser.js index 7dff379a3..e8b439fb1 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/dist/ccxt.browser.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/dist/ccxt.browser.js @@ -43,16 +43,16 @@ const Exchange = require ('./js/base/Exchange') //----------------------------------------------------------------------------- // this is updated by vss.js when building -const version = '1.38.76' +const version = '1.42.77' Exchange.ccxtVersion = version //----------------------------------------------------------------------------- const exchanges = { + 'aax': require ('./js/aax.js'), 'acx': require ('./js/acx.js'), 'aofex': require ('./js/aofex.js'), - 'bcex': require ('./js/bcex.js'), 'bequant': require ('./js/bequant.js'), 'bibox': require ('./js/bibox.js'), 'bigone': require ('./js/bigone.js'), @@ -91,6 +91,7 @@ const exchanges = { 'bw': require ('./js/bw.js'), 'bybit': require ('./js/bybit.js'), 'bytetrade': require ('./js/bytetrade.js'), + 'cdax': require ('./js/cdax.js'), 'cex': require ('./js/cex.js'), 'chilebit': require ('./js/chilebit.js'), 'coinbase': require ('./js/coinbase.js'), @@ -108,9 +109,11 @@ const exchanges = { 'coinspot': require ('./js/coinspot.js'), 'crex24': require ('./js/crex24.js'), 'currencycom': require ('./js/currencycom.js'), + 'delta': require ('./js/delta.js'), 'deribit': require ('./js/deribit.js'), 'digifinex': require ('./js/digifinex.js'), 'dsx': require ('./js/dsx.js'), + 'equos': require ('./js/equos.js'), 'eterbase': require ('./js/eterbase.js'), 'exmo': require ('./js/exmo.js'), 'exx': require ('./js/exx.js'), @@ -121,12 +124,12 @@ const exchanges = { 'ftx': require ('./js/ftx.js'), 'gateio': require ('./js/gateio.js'), 'gemini': require ('./js/gemini.js'), + 'gopax': require ('./js/gopax.js'), 'hbtc': require ('./js/hbtc.js'), 'hitbtc': require ('./js/hitbtc.js'), 'hollaex': require ('./js/hollaex.js'), 'huobijp': require ('./js/huobijp.js'), 'huobipro': require ('./js/huobipro.js'), - 'huobiru': require ('./js/huobiru.js'), 'ice3x': require ('./js/ice3x.js'), 'idex': require ('./js/idex.js'), 'independentreserve': require ('./js/independentreserve.js'), @@ -139,11 +142,11 @@ const exchanges = { 'latoken': require ('./js/latoken.js'), 'lbank': require ('./js/lbank.js'), 'liquid': require ('./js/liquid.js'), - 'livecoin': require ('./js/livecoin.js'), 'luno': require ('./js/luno.js'), 'lykke': require ('./js/lykke.js'), 'mercado': require ('./js/mercado.js'), 'mixcoins': require ('./js/mixcoins.js'), + 'ndax': require ('./js/ndax.js'), 'novadax': require ('./js/novadax.js'), 'oceanex': require ('./js/oceanex.js'), 'okcoin': require ('./js/okcoin.js'), @@ -181,7 +184,1793 @@ module.exports = Object.assign ({ version, Exchange, 'exchanges': Object.keys (e //----------------------------------------------------------------------------- -},{"./js/acx.js":3,"./js/aofex.js":4,"./js/base/Exchange":5,"./js/base/errors":7,"./js/base/functions":8,"./js/bcex.js":19,"./js/bequant.js":20,"./js/bibox.js":21,"./js/bigone.js":22,"./js/binance.js":23,"./js/binanceus.js":24,"./js/bit2c.js":25,"./js/bitbank.js":26,"./js/bitbay.js":27,"./js/bitcoincom.js":28,"./js/bitfinex.js":29,"./js/bitfinex2.js":30,"./js/bitflyer.js":31,"./js/bitforex.js":32,"./js/bitget.js":33,"./js/bithumb.js":34,"./js/bitkk.js":35,"./js/bitmart.js":36,"./js/bitmax.js":37,"./js/bitmex.js":38,"./js/bitpanda.js":39,"./js/bitso.js":40,"./js/bitstamp.js":41,"./js/bitstamp1.js":42,"./js/bittrex.js":43,"./js/bitvavo.js":44,"./js/bitz.js":45,"./js/bl3p.js":46,"./js/bleutrade.js":47,"./js/braziliex.js":48,"./js/btcalpha.js":49,"./js/btcbox.js":50,"./js/btcmarkets.js":51,"./js/btctradeua.js":52,"./js/btcturk.js":53,"./js/buda.js":54,"./js/bw.js":55,"./js/bybit.js":56,"./js/bytetrade.js":57,"./js/cex.js":58,"./js/chilebit.js":59,"./js/coinbase.js":60,"./js/coinbaseprime.js":61,"./js/coinbasepro.js":62,"./js/coincheck.js":63,"./js/coinegg.js":64,"./js/coinex.js":65,"./js/coinfalcon.js":66,"./js/coinfloor.js":67,"./js/coingi.js":68,"./js/coinmarketcap.js":69,"./js/coinmate.js":70,"./js/coinone.js":71,"./js/coinspot.js":72,"./js/crex24.js":73,"./js/currencycom.js":74,"./js/deribit.js":75,"./js/digifinex.js":76,"./js/dsx.js":77,"./js/eterbase.js":78,"./js/exmo.js":79,"./js/exx.js":80,"./js/fcoin.js":81,"./js/fcoinjp.js":82,"./js/flowbtc.js":83,"./js/foxbit.js":84,"./js/ftx.js":85,"./js/gateio.js":86,"./js/gemini.js":87,"./js/hbtc.js":88,"./js/hitbtc.js":89,"./js/hollaex.js":90,"./js/huobijp.js":91,"./js/huobipro.js":92,"./js/huobiru.js":93,"./js/ice3x.js":94,"./js/idex.js":95,"./js/independentreserve.js":96,"./js/indodax.js":97,"./js/itbit.js":98,"./js/kraken.js":99,"./js/kucoin.js":100,"./js/kuna.js":101,"./js/lakebtc.js":102,"./js/latoken.js":103,"./js/lbank.js":104,"./js/liquid.js":105,"./js/livecoin.js":106,"./js/luno.js":107,"./js/lykke.js":108,"./js/mercado.js":109,"./js/mixcoins.js":110,"./js/novadax.js":111,"./js/oceanex.js":112,"./js/okcoin.js":113,"./js/okex.js":114,"./js/paymium.js":115,"./js/phemex.js":116,"./js/poloniex.js":117,"./js/probit.js":118,"./js/qtrade.js":119,"./js/rightbtc.js":120,"./js/ripio.js":121,"./js/southxchange.js":122,"./js/stex.js":163,"./js/surbitcoin.js":164,"./js/therock.js":165,"./js/tidebit.js":166,"./js/tidex.js":167,"./js/timex.js":168,"./js/upbit.js":169,"./js/vaultoro.js":170,"./js/vbtc.js":171,"./js/vcc.js":172,"./js/wavesexchange.js":173,"./js/whitebit.js":174,"./js/xbtce.js":175,"./js/xena.js":176,"./js/yobit.js":177,"./js/zaif.js":178,"./js/zb.js":179}],3:[function(require,module,exports){ +},{"./js/aax.js":3,"./js/acx.js":4,"./js/aofex.js":5,"./js/base/Exchange":6,"./js/base/errors":8,"./js/base/functions":9,"./js/bequant.js":20,"./js/bibox.js":21,"./js/bigone.js":22,"./js/binance.js":23,"./js/binanceus.js":24,"./js/bit2c.js":25,"./js/bitbank.js":26,"./js/bitbay.js":27,"./js/bitcoincom.js":28,"./js/bitfinex.js":29,"./js/bitfinex2.js":30,"./js/bitflyer.js":31,"./js/bitforex.js":32,"./js/bitget.js":33,"./js/bithumb.js":34,"./js/bitkk.js":35,"./js/bitmart.js":36,"./js/bitmax.js":37,"./js/bitmex.js":38,"./js/bitpanda.js":39,"./js/bitso.js":40,"./js/bitstamp.js":41,"./js/bitstamp1.js":42,"./js/bittrex.js":43,"./js/bitvavo.js":44,"./js/bitz.js":45,"./js/bl3p.js":46,"./js/bleutrade.js":47,"./js/braziliex.js":48,"./js/btcalpha.js":49,"./js/btcbox.js":50,"./js/btcmarkets.js":51,"./js/btctradeua.js":52,"./js/btcturk.js":53,"./js/buda.js":54,"./js/bw.js":55,"./js/bybit.js":56,"./js/bytetrade.js":57,"./js/cdax.js":58,"./js/cex.js":59,"./js/chilebit.js":60,"./js/coinbase.js":61,"./js/coinbaseprime.js":62,"./js/coinbasepro.js":63,"./js/coincheck.js":64,"./js/coinegg.js":65,"./js/coinex.js":66,"./js/coinfalcon.js":67,"./js/coinfloor.js":68,"./js/coingi.js":69,"./js/coinmarketcap.js":70,"./js/coinmate.js":71,"./js/coinone.js":72,"./js/coinspot.js":73,"./js/crex24.js":74,"./js/currencycom.js":75,"./js/delta.js":76,"./js/deribit.js":77,"./js/digifinex.js":78,"./js/dsx.js":79,"./js/equos.js":80,"./js/eterbase.js":81,"./js/exmo.js":82,"./js/exx.js":83,"./js/fcoin.js":84,"./js/fcoinjp.js":85,"./js/flowbtc.js":86,"./js/foxbit.js":87,"./js/ftx.js":88,"./js/gateio.js":89,"./js/gemini.js":90,"./js/gopax.js":91,"./js/hbtc.js":92,"./js/hitbtc.js":93,"./js/hollaex.js":94,"./js/huobijp.js":95,"./js/huobipro.js":96,"./js/ice3x.js":97,"./js/idex.js":98,"./js/independentreserve.js":99,"./js/indodax.js":100,"./js/itbit.js":101,"./js/kraken.js":102,"./js/kucoin.js":103,"./js/kuna.js":104,"./js/lakebtc.js":105,"./js/latoken.js":106,"./js/lbank.js":107,"./js/liquid.js":108,"./js/luno.js":109,"./js/lykke.js":110,"./js/mercado.js":111,"./js/mixcoins.js":112,"./js/ndax.js":113,"./js/novadax.js":114,"./js/oceanex.js":115,"./js/okcoin.js":116,"./js/okex.js":117,"./js/paymium.js":118,"./js/phemex.js":119,"./js/poloniex.js":120,"./js/probit.js":121,"./js/qtrade.js":122,"./js/rightbtc.js":123,"./js/ripio.js":124,"./js/southxchange.js":125,"./js/stex.js":166,"./js/surbitcoin.js":167,"./js/therock.js":168,"./js/tidebit.js":169,"./js/tidex.js":170,"./js/timex.js":171,"./js/upbit.js":172,"./js/vaultoro.js":173,"./js/vbtc.js":174,"./js/vcc.js":175,"./js/wavesexchange.js":176,"./js/whitebit.js":177,"./js/xbtce.js":178,"./js/xena.js":179,"./js/yobit.js":180,"./js/zaif.js":181,"./js/zb.js":182}],3:[function(require,module,exports){ +'use strict'; + +// ---------------------------------------------------------------------------- + +const Exchange = require ('./base/Exchange'); +const { ArgumentsRequired, AuthenticationError, ExchangeError, ExchangeNotAvailable, OrderNotFound, InvalidOrder, CancelPending, RateLimitExceeded, InsufficientFunds, BadRequest, BadSymbol, PermissionDenied } = require ('./base/errors'); +const { TICK_SIZE } = require ('./base/functions/number'); + +// ---------------------------------------------------------------------------- + +module.exports = class aax extends Exchange { + describe () { + return this.deepExtend (super.describe (), { + 'id': 'aax', + 'name': 'AAX', + 'countries': [ 'MT' ], // Malta + 'enableRateLimit': true, + 'rateLimit': 500, + 'version': 'v2', + 'hostname': 'aaxpro.com', // aax.com + 'certified': true, + 'has': { + 'cancelAllOrders': true, + 'cancelOrder': true, + 'createOrder': true, + 'editOrder': true, + 'fetchBalance': true, + 'fetchCanceledOrders': true, + 'fetchClosedOrders': true, + 'fetchDepositAddress': true, + 'fetchMarkets': true, + 'fetchMyTrades': true, + 'fetchOHLCV': true, + 'fetchOpenOrders': true, + 'fetchOrder': true, + 'fetchOrderBook': true, + 'fetchOrders': true, + 'fetchTicker': 'emulated', + 'fetchTickers': true, + 'fetchTrades': true, + }, + 'timeframes': { + '1m': '1m', + '5m': '5m', + '15m': '15m', + '30m': '30m', + '1h': '1h', + '2h': '2h', + '4h': '4h', + '12h': '12h', + '1d': '1d', + '3d': '3d', + '1w': '1w', + }, + 'urls': { + 'logo': 'https://user-images.githubusercontent.com/1294454/104140087-a27f2580-53c0-11eb-87c1-5d9e81208fe9.jpg', + 'test': { + 'v1': 'https://api.testnet.{hostname}/marketdata/v1', + 'public': 'https://api.testnet.{hostname}', + 'private': 'https://api.testnet.{hostname}', + }, + 'api': { + 'v1': 'https://api.{hostname}/marketdata/v1', + 'public': 'https://api.{hostname}', + 'private': 'https://api.{hostname}', + }, + 'www': 'https://www.aaxpro.com', // string website URL + 'doc': 'https://www.aaxpro.com/apidoc/index.html', + 'fees': 'https://www.aaxpro.com/en-US/fees/', + 'referral': 'https://www.aaxpro.com/invite/sign-up?inviteCode=JXGm5Fy7R2MB', + }, + 'api': { + 'v1': { + 'get': [ + 'getHistMarketData', // Get OHLC k line of specific market + ], + }, + 'public': { + // these endpoints are not documented + // 'get': [ + // 'order_book', // Get the order book of specified market + // 'order_book/{market}', + // 'trades', // Get recent trades on market, each trade is included only once Trades are sorted in reverse creation order. + // 'trades/{market}', + // 'tickers', // Get ticker of all markets + // 'tickers/{market}', // Get ticker of specific market + // ], + 'get': [ + 'announcement/maintenance', // System Maintenance Notice + 'instruments', // Retrieve all trading pairs information + 'market/orderbook', // Order Book + 'futures/position/openInterest', // Open Interest + 'market/tickers', // Get the Last 24h Market Summary + 'market/candles', // Get Current Candlestick + 'market/history/candles', // Get Current Candlestick + 'market/trades', // Get the Most Recent Trades + 'market/markPrice', // Get Current Mark Price + 'futures/funding/predictedFunding/{symbol}', // Get Predicted Funding Rate + 'futures/funding/prevFundingRate/{symbol}', // Get Last Funding Rate + 'market/candles/index', // Get Current Index Candlestick + ], + }, + 'private': { + 'get': [ + 'user/info', // Retrieve user information + 'account/balances', // Get Account Balances + 'account/deposit/address', // undocumented + 'spot/trades', // Retrieve trades details for a spot order + 'spot/openOrders', // Retrieve spot open orders + 'spot/orders', // Retrieve historical spot orders + 'futures/position', // Get positions for all contracts + 'futures/position/closed', // Get closed positions + 'futures/trades', // Retrieve trade details for a futures order + 'futures/openOrders', // Retrieve futures open orders + 'futures/orders', // Retrieve historical futures orders + 'futures/funding/predictedFundingFee/{symbol}', // Get predicted funding fee + ], + 'post': [ + 'account/transfer', // Asset Transfer + 'spot/orders', // Create a new spot order + 'spot/orders/cancelAllOnTimeout', // Automatically cancel all your spot orders after a specified timeout. + 'futures/orders', // Create a new futures order + 'futures/orders/cancelAllOnTimeout', // Automatically cancel all your futures orders after a specified timeout. + 'futures/position/sltp', // Set take profit and stop loss orders for an opening position + 'futures/position/close', // Close position + 'futures/position/leverage', // Update leverage for position + 'futures/position/margin', // Modify Isolated Position Margin + ], + 'put': [ + 'spot/orders', // Amend spot order + 'futures/orders', // Amend the quantity of an open futures order + ], + 'delete': [ + 'spot/orders/cancel/{orderID}', // Cancel a spot order + 'spot/orders/cancel/all', // Batch cancel spot orders + 'futures/orders/cancel/{orderID}', // Cancel a futures order + 'futures/orders/cancel/all', // Batch cancel futures orders + ], + }, + }, + 'fees': { + 'trading': { + 'tierBased': false, + 'percentage': true, + 'maker': 0.06 / 100, + 'taker': 0.10 / 100, + }, + 'funding': { + 'tierBased': false, + 'percentage': true, + 'withdraw': {}, // There is only 1% fee on withdrawals to your bank account. + }, + }, + 'commonCurrencies': { + 'XBT': 'XBT', + }, + 'exceptions': { + 'exact': { + '2002': InsufficientFunds, + '2003': OrderNotFound, + '10003': BadRequest, // Parameter validation error + '10006': AuthenticationError, // Session expired, please relogin + '10007': AuthenticationError, // Invalid authentication key or token + '11007': AuthenticationError, // Invalid key format + '20001': InsufficientFunds, // Insufficient balance. Please deposit to trade. + '20009': InvalidOrder, // Order amount must be positive + '30000': OrderNotFound, // {"code":30000,"data":null,"message":"The order does not exist","ts":1610259732263} + '30001': InvalidOrder, // The order is being submitted, please try again later + '30004': InvalidOrder, // Minimum quantity is {0} + '30005': InvalidOrder, // Quantity maximum precision is {0} decimal places + '30006': InvalidOrder, // Price maximum precision is {0} decimal places + '30007': InvalidOrder, // Minimum price is {0} + '30008': InvalidOrder, // Stop price maximum precision is {0} decimal places + '30009': InvalidOrder, // Stop Price cannot be less than {0} + '30010': InvalidOrder, // Market price cannot be empty + '30011': CancelPending, // The order is being cancelled, please wait. + '30012': BadRequest, // Unknown currency + '30013': BadSymbol, // Unknown symbol + '30014': OrderNotFound, // Futures order cannot be found + '30015': InvalidOrder, // This is not an open order and cannot modified + '30016': ExchangeError, // No position found + '30017': InvalidOrder, // The current close position is 0. It is recommended that you cancel the current order closing order. + '30018': InvalidOrder, // Order price cannot be greater than {0} + '30019': InvalidOrder, // Order quantity cannot be greater than {0} + '30020': InvalidOrder, // Order price must be a multiple of {0} + '30021': InvalidOrder, // Margin adjustement must be greater than 0 + '30022': InvalidOrder, // New quantity must be greater than filled quantity + '30023': InvalidOrder, // Order failed, please try again + '30024': InvalidOrder, // TimeInForce error, only GTC or IOC are allowed + '30025': InvalidOrder, // TimeInForce error, only GTC is allowed + '30026': InvalidOrder, // Quantity is not a multiple of {0} + '30027': InvalidOrder, // Close position failed, it is recommended that you cancel the current order and then close the position. + '30028': BadSymbol, // Symbol cannot be traded at this time + '30029': InvalidOrder, // Modified quantity or price cannot be empty + '30030': InvalidOrder, // Price cannot be specified for market orders + '30031': InvalidOrder, // Liquidation orders cannot be modified + '30032': InvalidOrder, // Leverage cannot be greater than {0} + '30033': InvalidOrder, // Leverage cannot be smaller than {0} + '30034': RateLimitExceeded, // The max number of open orders is {0}. To place a new order, please cancel a previous one + '30035': RateLimitExceeded, // The max number of {0} open orders is {1}. To place a new order, please cancel a previous one + '30036': ExchangeNotAvailable, // Liquidation is in progress, please try again later + '30037': InvalidOrder, // Once stop limit order triggered, stop price cannot be amended + '30038': ExchangeError, // The total value of your orders has exceeded the current risk limit. Please adjust the risk limit + '30039': InsufficientFunds, // Your risk limit has now been changed to {0}, your maximum leverage less than 1, please readjust accordingly + '30040': InvalidOrder, // Order status has changed, please try again later + '30041': InvalidOrder, // Liquidation orders cannot be cancelled + '30042': InvalidOrder, // Order cannot be placed as you will be breaching you max limit value of {1} BTC for {0} + '30043': InvalidOrder, // The risk limit cannot be less than 0 + '30044': BadRequest, // Timeout cannot be greater than 60 minutes + '30045': InvalidOrder, // Side is not valid, it should be BUY or SELL + '30046': InvalidOrder, // Order type is not valid, it should be MARKET or LIMIT or STOP-LIMIT or STOP + '30047': InvalidOrder, // The order is closed. Can't cancel + '30048': InvalidOrder, // Market orders cannot be modified + '30049': InvalidOrder, // The order is being modified, please wait + '30050': InvalidOrder, // Maximum 10 orders + '40004': BadRequest, // Requested resource doesn't exist + '40009': RateLimitExceeded, // Too many requests + '40102': AuthenticationError, // {"code":40102,"message":"Unauthorized(invalid key)"} + '40103': AuthenticationError, // {"code":40103,"message":"Unauthorized(invalid sign)"} + '40303': PermissionDenied, // {"code":40303,"message":"Forbidden(invalid scopes)"} + '41001': BadRequest, // Incorrect HTTP request + '41002': BadRequest, // Unsupported HTTP request method + '42001': ExchangeNotAvailable, // Duplicated data entry, please check and try again + '50001': ExchangeError, // Server side exception, please try again later + '50002': ExchangeError, // Server is busy, please try again later + }, + 'broad': {}, + }, + 'precisionMode': TICK_SIZE, + 'options': { + 'defaultType': 'spot', // 'spot', 'future' + }, + }); + } + + async fetchMarkets (params = {}) { + const response = await this.publicGetInstruments (params); + // + // { + // "code":1, + // "message":"success", + // "ts":1610159448962, + // "data":[ + // { + // "tickSize":"0.01", + // "lotSize":"1", + // "base":"BTC", + // "quote":"USDT", + // "minQuantity":"1.0000000000", + // "maxQuantity":"30000", + // "minPrice":"0.0100000000", + // "maxPrice":"999999.0000000000", + // "status":"readOnly", + // "symbol":"BTCUSDTFP", + // "code":"FP", + // "takerFee":"0.00040", + // "makerFee":"0.00020", + // "multiplier":"0.001000000000", + // "mmRate":"0.00500", + // "imRate":"0.01000", + // "type":"futures", + // "settleType":"Vanilla", + // "settleCurrency":"USDT" + // }, + // { + // "tickSize":"0.5", + // "lotSize":"10", + // "base":"BTC", + // "quote":"USD", + // "minQuantity":"10.0000000000", + // "maxQuantity":"300000", + // "minPrice":"0.5000000000", + // "maxPrice":"999999.0000000000", + // "status":"readOnly", + // "symbol":"BTCUSDFP", + // "code":"FP", + // "takerFee":"0.00040", + // "makerFee":"0.00020", + // "multiplier":"1.000000000000", + // "mmRate":"0.00500", + // "imRate":"0.01000", + // "type":"futures", + // "settleType":"Inverse", + // "settleCurrency":"BTC" + // }, + // { + // "tickSize":"0.0001", + // "lotSize":"0.01", + // "base":"AAB", + // "quote":"USDT", + // "minQuantity":"5.0000000000", + // "maxQuantity":"50000.0000000000", + // "minPrice":"0.0001000000", + // "maxPrice":"999999.0000000000", + // "status":"readOnly", + // "symbol":"AABUSDT", + // "code":null, + // "takerFee":"0.00100", + // "makerFee":"0.00100", + // "multiplier":"1.000000000000", + // "mmRate":"0.02500", + // "imRate":"0.05000", + // "type":"spot", + // "settleType":null, + // "settleCurrency":null + // }, + // ] + // } + // + const data = this.safeValue (response, 'data'); + const result = []; + for (let i = 0; i < data.length; i++) { + const market = data[i]; + const id = this.safeString (market, 'symbol'); + const baseId = this.safeString (market, 'base'); + const quoteId = this.safeString (market, 'quote'); + const base = this.safeCurrencyCode (baseId); + const quote = this.safeCurrencyCode (quoteId); + const status = this.safeString (market, 'status'); + const active = (status === 'enable'); + const taker = this.safeFloat (market, 'takerFee'); + const maker = this.safeFloat (market, 'makerFee'); + const type = this.safeString (market, 'type'); + let inverse = undefined; + let linear = undefined; + let quanto = undefined; + const spot = (type === 'spot'); + const futures = (type === 'futures'); + const settleType = this.safeStringLower (market, 'settleType'); + if (settleType !== undefined) { + inverse = (settleType === 'inverse'); + linear = (settleType === 'vanilla'); + quanto = (settleType === 'quanto'); + } + let symbol = id; + if (type === 'spot') { + symbol = base + '/' + quote; + } + const precision = { + 'amount': this.safeFloat (market, 'lotSize'), + 'price': this.safeFloat (market, 'tickSize'), + }; + result.push ({ + 'id': id, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'baseId': baseId, + 'quoteId': quoteId, + 'type': type, + 'spot': spot, + 'futures': futures, + 'inverse': inverse, + 'linear': linear, + 'quanto': quanto, + 'precision': precision, + 'info': market, + 'active': active, + 'taker': taker, + 'maker': maker, + 'percentage': false, + 'tierBased': true, + 'limits': { + 'amount': { + 'min': this.safeString (market, 'minQuantity'), + 'max': this.safeString (market, 'maxQuantity'), + }, + 'price': { + 'min': this.safeString (market, 'minPrice'), + 'max': this.safeString (market, 'maxPrice'), + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + }, + }); + } + return result; + } + + parseTicker (ticker, market = undefined) { + // + // { + // "t":1610162685342, // timestamp + // "a":"0.00000000", // trading volume in USD in the last 24 hours, futures only + // "c":"435.20000000", // close + // "d":"4.22953489", // change + // "h":"455.04000000", // high + // "l":"412.78000000", // low + // "o":"417.54000000", // open + // "s":"BCHUSDTFP", // market id + // "v":"2031068.00000000", // trading volume in quote currency of last 24 hours + // } + // + const timestamp = this.safeInteger (ticker, 't'); + const marketId = this.safeString (ticker, 's'); + const symbol = this.safeSymbol (marketId, market); + const last = this.safeFloat (ticker, 'c'); + const open = this.safeFloat (ticker, 'o'); + let change = undefined; + let percentage = undefined; + let average = undefined; + if (last !== undefined && open !== undefined) { + change = last - open; + if (open > 0) { + percentage = change / open * 100; + } + average = this.sum (last, open) / 2; + } + const quoteVolume = this.safeFloat (ticker, 'v'); + return { + 'symbol': symbol, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'high': this.safeFloat (ticker, 'h'), + 'low': this.safeFloat (ticker, 'l'), + 'bid': undefined, + 'bidVolume': undefined, + 'ask': undefined, + 'askVolume': undefined, + 'vwap': undefined, + 'open': open, + 'close': last, + 'last': last, + 'previousClose': undefined, + 'change': change, + 'percentage': percentage, + 'average': average, + 'baseVolume': undefined, + 'quoteVolume': quoteVolume, + 'info': ticker, + }; + } + + async fetchTicker (symbol, params = {}) { + const tickers = await this.fetchTickers (undefined, params); + if (symbol in tickers) { + return tickers[symbol]; + } + throw new BadSymbol (this.id + ' fetchTicker() symbol ' + symbol + ' ticker not found'); + } + + async fetchTickers (symbols = undefined, params = {}) { + await this.loadMarkets (); + const response = await this.publicGetMarketTickers (params); + // + // { + // "e":"tickers", + // "t":1610162685342, + // "tickers":[ + // { + // "a":"0.00000000", + // "c":"435.20000000", + // "d":"4.22953489", + // "h":"455.04000000", + // "l":"412.78000000", + // "o":"417.54000000", + // "s":"BCHUSDTFP", + // "v":"2031068.00000000", + // }, + // ], + // } + // + const tickers = this.safeValue (response, 'tickers', []); + const result = []; + const timestamp = this.safeInteger (response, 't'); + for (let i = 0; i < tickers.length; i++) { + const ticker = this.parseTicker (this.extend (tickers[i], { 't': timestamp })); + result.push (ticker); + } + return this.filterByArray (result, 'symbol', symbols); + } + + async fetchOrderBook (symbol, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + if (limit === undefined) { + limit = 20; + } else { + if ((limit !== 20) && (limit !== 50)) { + throw new BadRequest (this.id + ' fetchOrderBook() limit argument must be undefined, 20 or 50'); + } + } + const request = { + 'symbol': market['id'], + 'level': limit, // required + }; + // + const response = await this.publicGetMarketOrderbook (this.extend (request, params)); + // + // { + // "asks":[ + // ["10823.00000000","0.004000"], + // ["10823.10000000","0.100000"], + // ["10823.20000000","0.010000"] + // ], + // "bids":[ + // ["10821.20000000","0.002000"], + // ["10821.10000000","0.005000"], + // ["10820.40000000","0.013000"] + // ], + // "e":"BTCUSDT@book_50", + // "t":1561543614756 + // } + // + const timestamp = this.safeInteger (response, 't'); // need unix type + return this.parseOrderBook (response, timestamp); + } + + parseTrade (trade, market = undefined) { + // + // public fetchTrades + // + // { + // "p":"9395.50000000", + // "q":"50.000000", + // "t":1592563996718 + // } + // + // private fetchMyTrades + // + // { + // "avgPrice":"1199.8", + // "base":"ETH", + // "clOrdID":null, + // "commission":"0.00002", + // "createTime":"2021-01-11T02:47:51.512Z", + // "cumQty":"0.02", + // "filledOrderID":"1eUD4F5rwK", + // "filledPrice":"1199.8", + // "filledQty":"0.02", + // "leavesQty":"0", + // "oCreateTime":"2021-01-11T02:47:51.377Z", + // "orderID":"1eUD4EHfdU", + // "orderQty":"0.02", + // "orderStatus":3, + // "orderType":1, + // "price":"1198.25", + // "quote":"USDT", + // "rejectCode":null, + // "rejectReason":null, + // "side":1, + // "stopPrice":"0", + // "symbol":"ETHUSDT", + // "taker":true, + // "tradeID":"E04WTIgfmULU", + // "transactTime":"2021-01-11T02:47:51.389Z", + // "updateTime":null, + // "userID":"1362494" + // } + // + let timestamp = this.safeInteger (trade, 't'); + if (timestamp === undefined) { + timestamp = this.parse8601 (this.safeString (trade, 'createTime')); + } + const id = this.safeString2 (trade, 'tid', 'tradeID'); + let symbol = undefined; + const marketId = this.safeString (trade, 'symbol'); + market = this.safeMarket (marketId, market); + if (market !== undefined) { + symbol = market['symbol']; + } + let price = this.safeFloat2 (trade, 'p', 'filledPrice'); + const amount = this.safeFloat2 (trade, 'q', 'filledQty'); + const orderId = this.safeString (trade, 'orderID'); + const isTaker = this.safeValue (trade, 'taker'); + let takerOrMaker = undefined; + if (isTaker !== undefined) { + takerOrMaker = isTaker ? 'taker' : 'maker'; + } + let side = this.safeString (trade, 'side'); + if (side === '1') { + side = 'buy'; + } else if (side === '2') { + side = 'sell'; + } + if (side === undefined) { + side = (price > 0) ? 'buy' : 'sell'; + } + side = (price > 0) ? 'buy' : 'sell'; + price = Math.abs (price); + let cost = undefined; + if ((price !== undefined) && (amount !== undefined)) { + cost = price * amount; + } + const orderType = this.parseOrderType (this.safeString (trade, 'orderType')); + let fee = undefined; + const feeCost = this.safeFloat (trade, 'commission'); + if (feeCost !== undefined) { + let feeCurrency = undefined; + if (market !== undefined) { + if (side === 'buy') { + feeCurrency = market['base']; + } else if (side === 'sell') { + feeCurrency = market['quote']; + } + } + fee = { + 'currency': feeCurrency, + 'cost': feeCost, + }; + } + return { + 'info': trade, + 'id': id, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'symbol': symbol, + 'type': orderType, + 'side': side, + 'order': orderId, + 'takerOrMaker': takerOrMaker, + 'price': price, + 'amount': amount, + 'cost': cost, + 'fee': fee, + }; + } + + async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + limit = (limit === undefined) ? 2000 : limit; + limit = Math.min (limit, 2000); + const request = { + 'symbol': market['id'], + 'limit': limit, + }; + const response = await this.publicGetMarketTrades (request); + // + // { + // "e":"BTCUSDFP@trades", + // "trades": [ + // {"p":"9395.50000000","q":"50.000000","t":1592563996718}, + // {"p":"9395.50000000","q":"50.000000","t":1592563993577}, + // ], + // } + // + const trades = this.safeValue (response, 'trades', []); + return this.parseTrades (trades, market, since, limit); + } + + parseOHLCV (ohlcv, market = undefined) { + // + // [ + // 0.042398, // 0 open + // 0.042684, // 1 high + // 0.042366, // 2 low + // 0.042386, // 3 close + // 0.93734243, // 4 volume + // 1611514800, // 5 timestamp + // ] + // + return [ + this.safeTimestamp (ohlcv, 5), + this.safeFloat (ohlcv, 0), + this.safeFloat (ohlcv, 1), + this.safeFloat (ohlcv, 2), + this.safeFloat (ohlcv, 3), + this.safeFloat (ohlcv, 4), + ]; + } + + async fetchOHLCV (symbol, timeframe = '1h', since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + // 'limit': limit, // if set counts from now into the past + 'symbol': market['id'], + 'timeFrame': this.timeframes[timeframe], + }; + limit = (limit === undefined) ? 500 : limit; + const duration = this.parseTimeframe (timeframe); + if (since === undefined) { + const end = this.seconds (); + request['start'] = end - duration * limit; + request['end'] = end; + } else { + const start = parseInt (since / 1000); + request['start'] = start; + request['end'] = this.sum (start, duration * limit); + } + const response = await this.publicGetMarketHistoryCandles (this.extend (request, params)); + // + // { + // "data":[ + // [0.042398,0.042684,0.042366,0.042386,0.93734243,1611514800], + // [0.042386,0.042602,0.042234,0.042373,1.01925239,1611518400], + // [0.042373,0.042558,0.042362,0.042389,0.93801705,1611522000], + // ], + // "success":true, + // "t":1611875157 + // } + // + const data = this.safeValue (response, 'data', []); + return this.parseOHLCVs (data, market, timeframe, since, limit); + } + + async fetchBalance (params = {}) { + await this.loadMarkets (); + const defaultType = this.safeString2 (this.options, 'fetchBalance', 'defaultType', 'spot'); + const type = this.safeString (params, 'type', defaultType); + const types = { + 'spot': 'SPTP', + 'future': 'FUTP', + 'otc': 'F2CP', + 'saving': 'VLTP', + }; + const purseType = this.safeString (types, type, type); + const request = { + 'purseType': purseType, + }; + params = this.omit (params, 'type'); + const response = await this.privateGetAccountBalances (this.extend (request, params)); + // + // { + // "code":1, + // "data":[ + // { + // "purseType":"FUTP", + // "currency":"BTC", + // "available":"0.41000000", + // "unavailable":"0.00000000" + // }, + // { + // "purseType":"FUTP", + // "currency":"USDT", + // "available":"0.21000000", + // "unvaliable":"0.00000000" + // } + // ] + // "message":"success", + // "ts":1573530401020 + // } + // + const data = this.safeValue (response, 'data'); + const result = { 'info': response }; + for (let i = 0; i < data.length; i++) { + const balance = data[i]; + const balanceType = this.safeString (balance, 'purseType'); + if (balanceType === purseType) { + const currencyId = this.safeString (balance, 'currency'); + const code = this.safeCurrencyCode (currencyId); + const account = this.account (); + account['free'] = this.safeFloat (balance, 'available'); + account['used'] = this.safeFloat (balance, 'unavailable'); + result[code] = account; + } + } + return this.parseBalance (result); + } + + async createOrder (symbol, type, side, amount, price = undefined, params = {}) { + let orderType = type.toUpperCase (); + const orderSide = side.toUpperCase (); + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + // 'orderType': orderType, // MARKET, LIMIT, STOP, STOP-LIMIT + 'symbol': market['id'], + 'orderQty': this.amountToPrecision (symbol, amount), + 'side': orderSide, + // 'stopPrice': this.priceToPrecision (symbol, stopPrice), + // 'clOrdID': clientOrderId, // up to 20 chars, lowercase and uppercase letters only + // 'timeInForce': 'GTC', // GTC, IOC, FOK, default is GTC + // 'execInst': 'Post-Only', // the only value supported by the exchange, futures-only + }; + const timeInForce = this.safeString (params, 'timeInForce'); + if (timeInForce !== undefined) { + request['timeInForce'] = timeInForce; + params = this.omit (params, 'timeInForce'); + } + const clientOrderId = this.safeString2 (params, 'clOrdID', 'clientOrderId'); + if (clientOrderId !== undefined) { + request['clOrdID'] = clientOrderId; + params = this.omit (params, [ 'clOrdID', 'clientOrderId' ]); + } + const stopPrice = this.safeFloat (params, 'stopPrice'); + if (stopPrice === undefined) { + if ((orderType === 'STOP-LIMIT') || (orderType === 'STOP')) { + throw new ArgumentsRequired (this.id + ' createOrder() requires a stopPrice parameter for ' + orderType + ' orders'); + } + } else { + if (orderType === 'LIMIT') { + orderType = 'STOP-LIMIT'; + } else if (orderType === 'MARKET') { + orderType = 'STOP'; + } + request['stopPrice'] = this.priceToPrecision (symbol, stopPrice); + params = this.omit (params, 'stopPrice'); + } + if (orderType === 'LIMIT' || orderType === 'STOP-LIMIT') { + request['price'] = this.priceToPrecision (symbol, price); + } + request['orderType'] = orderType; + let method = undefined; + if (market['spot']) { + method = 'privatePostSpotOrders'; + } else if (market['futures']) { + method = 'privatePostFuturesOrders'; + } + const response = await this[method] (this.extend (request, params)); + // + // spot + // + // { + // "code":1, + // "data":{ + // "symbol":"ETHUSDT", + // "orderType":2, + // "avgPrice":"0", + // "execInst":null, + // "orderStatus":0, + // "userID":"1362494", + // "quote":"USDT", + // "rejectReason":null, + // "rejectCode":null, + // "price":"1500", + // "orderQty":"1", + // "commission":"0", + // "id":"268323430253735936", + // "timeInForce":1, + // "isTriggered":false, + // "side":2, + // "orderID":"1eO51MDSpQ", + // "leavesQty":"0", + // "cumQty":"0", + // "updateTime":null, + // "lastQty":"0", + // "clOrdID":null, + // "stopPrice":null, + // "createTime":null, + // "transactTime":null, + // "base":"ETH", + // "lastPrice":"0" + // }, + // "message":"success", + // "ts":1610245290980 + // } + // + // futures + // + // { + // "code":1, + // "data":{ + // "liqType":0, + // "symbol":"ETHUSDTFP", + // "orderType":2, + // "leverage":"1", + // "marketPrice":"1318.3150000000", + // "code":"FP", + // "avgPrice":"0", + // "execInst":null, + // "orderStatus":0, + // "userID":"1362494", + // "quote":"USDT", + // "rejectReason":null, + // "rejectCode":null, + // "price":"500", + // "orderQty":"1", + // "commission":"0", + // "id":"268346885133053953", + // "timeInForce":1, + // "isTriggered":false, + // "side":1, + // "orderID":"1eOuPUAAkq", + // "leavesQty":"1", + // "cumQty":"0", + // "updateTime":null, + // "lastQty":null, + // "clOrdID":null, + // "stopPrice":null, + // "createTime":null, + // "transactTime":null, + // "settleType":"VANILLA", + // "base":"ETH", + // "lastPrice":"0" + // }, + // "message":"success", + // "ts":1610250883059 + // } + // + const data = this.safeValue (response, 'data', {}); + return this.parseOrder (data, market); + } + + async editOrder (id, symbol, type, side, amount, price = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'orderID': id, + // 'orderQty': this.amountToPrecision (symbol, amount), + // 'price': this.priceToPrecision (symbol, price), + // 'stopPrice': this.priceToPrecision (symbol, stopPrice), + }; + const stopPrice = this.safeFloat (params, 'stopPrice'); + if (stopPrice !== undefined) { + request['stopPrice'] = this.priceToPrecision (symbol, stopPrice); + params = this.omit (params, 'stopPrice'); + } + if (price !== undefined) { + request['price'] = this.priceToPrecision (symbol, price); + } + if (amount !== undefined) { + request['orderQty'] = this.amountToPrecision (symbol, amount); + } + let method = undefined; + if (market['spot']) { + method = 'privatePutSpotOrders'; + } else if (market['futures']) { + method = 'privatePutFuturesOrders'; + } + const response = await this[method] (this.extend (request, params)); + // + // spot + // + // { + // "code":1, + // "data":{ + // "symbol":"ETHUSDT", + // "orderType":2, + // "avgPrice":"0", + // "execInst":null, + // "orderStatus":0, + // "userID":"1362494", + // "quote":"USDT", + // "rejectReason":null, + // "rejectCode":null, + // "price":"1500", + // "orderQty":"1", + // "commission":"0", + // "id":"268323430253735936", + // "timeInForce":1, + // "isTriggered":false, + // "side":2, + // "orderID":"1eO51MDSpQ", + // "leavesQty":"0", + // "cumQty":"0", + // "updateTime":null, + // "lastQty":"0", + // "clOrdID":null, + // "stopPrice":null, + // "createTime":null, + // "transactTime":null, + // "base":"ETH", + // "lastPrice":"0" + // }, + // "message":"success", + // "ts":1610245290980 + // } + // + // futures + // + // { + // "code":1, + // "data":{ + // "liqType":0, + // "symbol":"ETHUSDTFP", + // "orderType":2, + // "leverage":"1", + // "marketPrice":"1318.3150000000", + // "code":"FP", + // "avgPrice":"0", + // "execInst":null, + // "orderStatus":0, + // "userID":"1362494", + // "quote":"USDT", + // "rejectReason":null, + // "rejectCode":null, + // "price":"500", + // "orderQty":"1", + // "commission":"0", + // "id":"268346885133053953", + // "timeInForce":1, + // "isTriggered":false, + // "side":1, + // "orderID":"1eOuPUAAkq", + // "leavesQty":"1", + // "cumQty":"0", + // "updateTime":null, + // "lastQty":null, + // "clOrdID":null, + // "stopPrice":null, + // "createTime":null, + // "transactTime":null, + // "settleType":"VANILLA", + // "base":"ETH", + // "lastPrice":"0" + // }, + // "message":"success", + // "ts":1610250883059 + // } + // + const data = this.safeValue (response, 'data', {}); + return this.parseOrder (data, market); + } + + async cancelOrder (id, symbol = undefined, params = {}) { + await this.loadMarkets (); + const request = { + 'orderID': id, + }; + let method = undefined; + const defaultType = this.safeString2 (this.options, 'cancelOrder', 'defaultType', 'spot'); + let type = this.safeString (params, 'type', defaultType); + params = this.omit (params, 'type'); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + type = market['type']; + } + if (type === 'spot') { + method = 'privateDeleteSpotOrdersCancelOrderID'; + } else if (type === 'futures') { + method = 'privateDeleteFuturesOrdersCancelOrderID'; + } + const response = await this[method] (this.extend (request, params)); + // + // spot + // + // { + // "code":1, + // "data":{ + // "avgPrice":"0", + // "base":"BTC", + // "clOrdID":"aax", + // "commission":"0", + // "createTime":"2019-11-12T03:46:41Z", + // "cumQty":"0", + // "id":"114330021504606208", + // "isTriggered":false, + // "lastPrice":"0", + // "lastQty":"0", + // "leavesQty":"0", + // "orderID":"wJ4L366KB", + // "orderQty":"0.05", + // "orderStatus":1, + // "orderType":2, + // "price":"8000", + // "quote":"USDT", + // "rejectCode":0, + // "rejectReason":null, + // "side":1, + // "stopPrice":"0", + // "symbol":"BTCUSDT", + // "transactTime":null, + // "updateTime":"2019-11-12T03:46:41Z", + // "timeInForce":1, + // "userID":"216214" + // }, + // "message":"success", + // "ts":1573530402029 + // } + // + // futures + // + // { + // "code":1, + // "data":{ + // "avgPrice":"0", + // "base":"BTC", + // "clOrdID":"aax_futures", + // "code":"FP", + // "commission":"0", + // "createTime":"2019-11-12T06:48:58Z", + // "cumQty":"0", + // "id":"114375893764395008", + // "isTriggered":false, + // "lastPrice":"0", + // "lastQty":null, + // "leavesQty":"300", + // "leverage":"1", + // "liqType":0, + // "marketPrice":"8760.75", + // "orderID":"wJTewQc81", + // "orderQty":"300", + // "orderStatus":1, + // "orderType":2, + // "price":"8000", + // "quote":"USD", + // "rejectCode":0, + // "rejectReason":null, + // "settleType":"INVERSE", + // "side":1, + // "stopPrice":"0", + // "symbol":"BTCUSDFP", + // "transactTime":"2019-11-12T06:48:58Z", + // "updateTime":"2019-11-12T06:48:58Z", + // "timeInForce":1, + // "execInst": "", + // "userID":"216214" + // }, + // "message":"success", + // "ts":1573541642970 + // } + // + const data = this.safeValue (response, 'data', {}); + return this.parseOrder (data, market); + } + + async cancelAllOrders (symbol = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + ' cancelAllOrders() requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'symbol': market['id'], + }; + let method = undefined; + if (market['spot']) { + method = 'privateDeleteSpotOrdersCancelAll'; + } else if (market['futures']) { + method = 'privateDeleteFuturesOrdersCancelAll'; + } + const response = await this[method] (this.extend (request, params)); + // + // { + // "code":1, + // "data":[ + // "vBC9rXsEE", + // "vBCc46OI0" + // ], + // "message":"success", + // "ts":1572597435470 + // } + // + return response; + } + + async fetchOrder (id, symbol = undefined, params = {}) { + await this.loadMarkets (); + const defaultType = this.safeString2 (this.options, 'fetchOrder', 'defaultType', 'spot'); + params['type'] = this.safeString (params, 'type', defaultType); + const request = {}; + const clientOrderId = this.safeString2 (params, 'clOrdID', 'clientOrderId'); + if (clientOrderId === undefined) { + request['orderID'] = id; + } else { + request['clOrdID'] = clientOrderId; + params = this.omit (params, [ 'clOrdID', 'clientOrderId' ]); + } + const orders = await this.fetchOrders (symbol, undefined, undefined, this.extend (request, params)); + const order = this.safeValue (orders, 0); + if (order === undefined) { + if (clientOrderId === undefined) { + throw new OrderNotFound (this.id + ' fetchOrder() could not find order id ' + id); + } else { + throw new OrderNotFound (this.id + ' fetchOrder() could not find order clientOrderID ' + clientOrderId); + } + } + return order; + } + + async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'pageNum': '1', + // 'pageSize': '10', + // 'symbol': market['id'], + // 'orderID': id, + // 'side': 'undefined', // BUY, SELL + // 'clOrdID': clientOrderId, + }; + const defaultType = this.safeString2 (this.options, 'fetchOpenOrders', 'defaultType', 'spot'); + let type = this.safeString (params, 'type', defaultType); + params = this.omit (params, 'type'); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['symbol'] = market['id']; + type = market['type']; + } + const clientOrderId = this.safeString2 (params, 'clOrdID', 'clientOrderId'); + if (clientOrderId !== undefined) { + request['clOrdID'] = clientOrderId; + params = this.omit (params, [ 'clOrdID', 'clientOrderId' ]); + } + let method = undefined; + if (type === 'spot') { + method = 'privateGetSpotOpenOrders'; + } else if (type === 'futures') { + method = 'privateGetFuturesOpenOrders'; + } + if (limit !== undefined) { + request['pageSize'] = limit; // default 10 + } + const response = await this[method] (this.extend (request, params)); + // + // spot + // + // { + // "code":1, + // "data":{ + // "total":19, + // "pageSize":10, + // "list":[ + // { + // "orderType":2, + // "symbol":"BTCUSDT", + // "avgPrice":"0", + // "orderStatus":0, + // "userID":"7225", + // "quote":"USDT", + // "rejectReason":null, + // "rejectCode":null, + // "price":"0", + // "orderQty":"0.002", + // "commission":"0", + // "id":"110419975166304256", + // "isTriggered":null, + // "side":1, + // "orderID":"vBGlDcLwk", + // "cumQty":"0", + // "leavesQty":"0", + // "updateTime":null, + // "clOrdID":"0001", + // "lastQty":"0", + // "stopPrice":"0", + // "createTime":"2019-11-01T08:49:33Z", + // "transactTime":null, + // "timeInForce":1, + // "base":"BTC", + // "lastPrice":"0" + // } + // ], + // "pageNum":1 + // }, + // "message":"success", + // "ts":1572598173682 + // } + // + // futures + // + // { + // "code":1, + // "data":{ + // "list":[ + // { + // "avgPrice":"8768.99999999484997", + // "base":"BTC", + // "clOrdID":null, + // "code":"FP", + // "commission":"0.00000913", + // "createTime":"2019-11-12T07:05:52.000Z, + // "cumQty":"100", + // "id":"114380149603028993", + // "isTriggered":false, + // "lastPrice":"8769", + // "lastQty":"100", + // "leavesQty":"0", + // "leverage":"1", + // "liqType":1, + // "marketPrice":"8769.75", + // "orderID":"wJXURIFBT", + // "orderQty":"100", + // "orderStatus":3, + // "orderType":1, + // "price":"8769.75", + // "quote":"USD", + // "rejectCode":0, + // "rejectReason":null, + // "settleType":"INVERSE", + // "side":2, + // "stopPrice":"0", + // "symbol":"BTCUSDFP", + // "transactTime":"2019-11-12T07:05:52.000Z, + // "updateTime":"2019-11-12T07:05:52.000Z, + // "timeInForce":1, + // "execInst": "", + // "userID":"216214" + // }, + // ], + // "pageNum":1, + // "pageSize":10, + // "total":21 + // }, + // "message":"success", + // "ts":1573546960172 + // } + // + const data = this.safeValue (response, 'data', {}); + const orders = this.safeValue (data, 'list', []); + return this.parseOrders (orders, market, since, limit); + } + + async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const request = { + 'orderStatus': '2', // 1 new, 2 filled, 3 canceled + }; + return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); + } + + async fetchCanceledOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const request = { + 'orderStatus': '3', // 1 new, 2 filled, 3 canceled + }; + return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); + } + + async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'pageNum': '1', + // 'pageSize': '10', + // 'symbol': market['id'], + // 'orderID': id, + // 'base': market['baseId'], + // 'quote': market['quoteId'], + // 'orderStatus': undefined, // 1 new, 2 filled, 3 canceled + // 'startDate': this.ymd (since), + // 'endDate': this.ymd (this.milliseconds()), + // 'orderType': undefined, // MARKET, LIMIT, STOP, STOP-LIMIT + // 'side': 'undefined', // BUY, SELL + // 'clOrdID': clientOrderId, + }; + let method = undefined; + const defaultType = this.safeString2 (this.options, 'fetchOrders', 'defaultType', 'spot'); + let type = this.safeString (params, 'type', defaultType); + params = this.omit (params, 'type'); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['symbol'] = market['id']; + type = market['type']; + } + if (type === 'spot') { + method = 'privateGetSpotOrders'; + } else if (type === 'futures') { + method = 'privateGetFuturesOrders'; + } + const clientOrderId = this.safeString2 (params, 'clOrdID', 'clientOrderId'); + if (clientOrderId !== undefined) { + request['clOrdID'] = clientOrderId; + params = this.omit (params, [ 'clOrdID', 'clientOrderId' ]); + } + if (limit !== undefined) { + request['pageSize'] = limit; // default 10 + } + if (since !== undefined) { + request['startDate'] = this.ymd (since); + } + const response = await this[method] (this.extend (request, params)); + // + // spot + // + // { + // "code":1, + // "data":{ + // "total":19, + // "pageSize":10, + // "list":[ + // { + // "orderType":2, + // "symbol":"BTCUSDT", + // "avgPrice":"0", + // "orderStatus":0, + // "userID":"7225", + // "quote":"USDT", + // "rejectReason":null, + // "rejectCode":null, + // "price":"0", + // "orderQty":"0.002", + // "commission":"0", + // "id":"110419975166304256", + // "isTriggered":null, + // "side":1, + // "orderID":"vBGlDcLwk", + // "cumQty":"0", + // "leavesQty":"0", + // "updateTime":null, + // "clOrdID":"0001", + // "lastQty":"0", + // "stopPrice":"0", + // "createTime":"2019-11-01T08:49:33Z", + // "transactTime":null, + // "timeInForce":1, + // "base":"BTC", + // "lastPrice":"0" + // } + // ], + // "pageNum":1 + // }, + // "message":"success", + // "ts":1572598173682 + // } + // + // futures + // + // { + // "code":1, + // "data":{ + // "list":[ + // { + // "avgPrice":"8768.99999999484997", + // "base":"BTC", + // "clOrdID":null, + // "code":"FP", + // "commission":"0.00000913", + // "createTime":"2019-11-12T07:05:52.000Z, + // "cumQty":"100", + // "id":"114380149603028993", + // "isTriggered":false, + // "lastPrice":"8769", + // "lastQty":"100", + // "leavesQty":"0", + // "leverage":"1", + // "liqType":1, + // "marketPrice":"8769.75", + // "orderID":"wJXURIFBT", + // "orderQty":"100", + // "orderStatus":3, + // "orderType":1, + // "price":"8769.75", + // "quote":"USD", + // "rejectCode":0, + // "rejectReason":null, + // "settleType":"INVERSE", + // "side":2, + // "stopPrice":"0", + // "symbol":"BTCUSDFP", + // "transactTime":"2019-11-12T07:05:52.000Z, + // "updateTime":"2019-11-12T07:05:52.000Z, + // "timeInForce":1, + // "execInst": "", + // "userID":"216214" + // }, + // ], + // "pageNum":1, + // "pageSize":10, + // "total":21 + // }, + // "message":"success", + // "ts":1573546960172 + // } + // + const data = this.safeValue (response, 'data', {}); + const orders = this.safeValue (data, 'list', []); + return this.parseOrders (orders, market, since, limit); + } + + parseOrderStatus (status) { + const statuses = { + '0': 'open', // pending new + '1': 'open', // new + '2': 'open', // partially-filled + '3': 'closed', // filled + '4': 'canceled', // cancel-reject + '5': 'canceled', // canceled + '6': 'rejected', // rejected + '10': 'expired', // expired + '11': 'rejected', // business-reject + }; + return this.safeString (statuses, status, status); + } + + parseOrderType (status) { + const statuses = { + '1': 'market', + '2': 'limit', + '3': 'stop', + '4': 'stop-limit', + '7': 'stop-loss', + '8': 'take-profit', + }; + return this.safeString (statuses, status, status); + } + + parseTimeInForce (timeInForce) { + const timeInForces = { + '1': 'GTC', + '3': 'IOC', + '4': 'FOK', + }; + return this.safeString (timeInForces, timeInForce, timeInForce); + } + + parseOrder (order, market = undefined) { + // + // { + // "avgPrice":"8768.99999999484997", + // "base":"BTC", + // "clOrdID":null, + // "code":"FP", // futures only + // "commission":"0.00000913", + // "createTime":"2019-11-12T07:05:52.000Z, + // "cumQty":"100", + // "id":"114380149603028993", // futures only + // "isTriggered":false, + // "lastPrice":"8769", + // "lastQty":"100", + // "leavesQty":"0", + // "leverage":"1", // futures only + // "liqType":1, // futures only + // "marketPrice":"8769.75", // futures only + // "orderID":"wJXURIFBT", + // "orderQty":"100", + // "orderStatus":3, + // "orderType":1, + // "price":"8769.75", + // "quote":"USD", + // "rejectCode":0, + // "rejectReason":null, + // "settleType":"INVERSE", // futures only + // "side":2, + // "stopPrice":"0", + // "symbol":"BTCUSDFP", + // "transactTime":"2019-11-12T07:05:52.000Z, + // "updateTime":"2019-11-12T07:05:52.000Z, + // "timeInForce":1, + // "execInst": "", + // "userID":"216214" + // } + // + // sometimes the timestamp is returned in milliseconds + let timestamp = this.safeValue (order, 'createTime'); + if (typeof timestamp === 'string') { + timestamp = this.parse8601 (timestamp); + } + const status = this.parseOrderStatus (this.safeString (order, 'orderStatus')); + const type = this.parseOrderType (this.safeString (order, 'orderType')); + let side = this.safeString (order, 'side'); + if (side === '1') { + side = 'buy'; + } else if (side === '2') { + side = 'sell'; + } + const id = this.safeString (order, 'orderID'); + const clientOrderId = this.safeString (order, 'clOrdID'); + const marketId = this.safeString (order, 'symbol'); + market = this.safeMarket (marketId, market); + const symbol = market['symbol']; + const price = this.safeFloat (order, 'price'); + const stopPrice = this.safeFloat (order, 'stopPrice'); + const timeInForce = this.parseTimeInForce (this.safeString (order, 'timeInForce')); + const execInst = this.safeString (order, 'execInst'); + const postOnly = (execInst === 'Post-Only'); + const average = this.safeFloat (order, 'avgPrice'); + const amount = this.safeFloat (order, 'orderQty'); + const filled = this.safeFloat (order, 'cumQty'); + const remaining = this.safeString (order, 'leavesQty'); + let cost = undefined; + let lastTradeTimestamp = undefined; + if (filled !== undefined) { + if (price !== undefined) { + cost = filled * price; + } + if (filled > 0) { + lastTradeTimestamp = this.safeValue (order, 'transactTime'); + if (typeof lastTradeTimestamp === 'string') { + lastTradeTimestamp = this.parse8601 (lastTradeTimestamp); + } + } + } + let fee = undefined; + const feeCost = this.safeFloat (order, 'commission'); + if (feeCost !== undefined) { + let feeCurrency = undefined; + if (market !== undefined) { + if (side === 'buy') { + feeCurrency = market['base']; + } else if (side === 'sell') { + feeCurrency = market['quote']; + } + } + fee = { + 'currency': feeCurrency, + 'cost': feeCost, + }; + } + return { + 'id': id, + 'info': order, + 'clientOrderId': clientOrderId, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'lastTradeTimestamp': lastTradeTimestamp, + 'status': status, + 'symbol': symbol, + 'type': type, + 'timeInForce': timeInForce, + 'postOnly': postOnly, + 'side': side, + 'price': price, + 'stopPrice': stopPrice, + 'average': average, + 'amount': amount, + 'filled': filled, + 'remaining': remaining, + 'cost': cost, + 'trades': undefined, + 'fee': fee, + }; + } + + async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'pageNum': '1', + // 'pageSize': '10', + // 'symbol': market['id'], + // 'orderID': id, + // 'base': market['baseId'], + // 'quote': market['quoteId'], + // 'startDate': this.ymd (since), + // 'endDate': this.ymd (this.milliseconds()), + // 'orderType': undefined, // MARKET, LIMIT, STOP, STOP-LIMIT + // 'side': 'undefined', // BUY, SELL + }; + let method = undefined; + const defaultType = this.safeString2 (this.options, 'fetchMyTrades', 'defaultType', 'spot'); + let type = this.safeString (params, 'type', defaultType); + params = this.omit (params, 'type'); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['symbol'] = market['id']; + type = market['type']; + } + if (type === 'spot') { + method = 'privateGetSpotTrades'; + } else if (type === 'futures') { + method = 'privateGetFuturesTrades'; + } + if (limit !== undefined) { + request['pageSize'] = limit; // default 10 + } + if (since !== undefined) { + request['startDate'] = this.ymd (since); + } + const response = await this[method] (this.extend (request, params)); + // + // { + // "code":1, + // "data":{ + // "list":[ + // { + // "avgPrice":"1199.8", + // "base":"ETH", + // "clOrdID":null, + // "commission":"0.00002", + // "createTime":"2021-01-11T02:47:51.512Z", + // "cumQty":"0.02", + // "filledOrderID":"1eUD4F5rwK", + // "filledPrice":"1199.8", + // "filledQty":"0.02", + // "leavesQty":"0", + // "oCreateTime":"2021-01-11T02:47:51.377Z", + // "orderID":"1eUD4EHfdU", + // "orderQty":"0.02", + // "orderStatus":3, + // "orderType":1, + // "price":"1198.25", + // "quote":"USDT", + // "rejectCode":null, + // "rejectReason":null, + // "side":1, + // "stopPrice":"0", + // "symbol":"ETHUSDT", + // "taker":true, + // "tradeID":"E04WTIgfmULU", + // "transactTime":"2021-01-11T02:47:51.389Z", + // "updateTime":null, + // "userID":"1362494" + // } + // ], + // "pageNum":1, + // "pageSize":10, + // "total":1 + // }, + // "message":"success", + // "ts":1610333278042 + // } + // + const data = this.safeValue (response, 'data', {}); + const trades = this.safeValue (data, 'list', []); + return this.parseTrades (trades, market, since, limit); + } + + async fetchDepositAddress (code, params = {}) { + await this.loadMarkets (); + const currency = this.currency (code); + const request = { + 'currency': currency['id'], + // 'network': undefined, // 'ERC20 + }; + const response = await this.privateGetAccountDepositAddress (this.extend (request, params)); + // + // { + // "code":1, + // "data":{ + // "address":"0x080c5c667381404cca9be0be9a04b2e47691ff86", + // "tag":null, + // "currency":"USDT", + // "network":"ERC20" + // }, + // "message":"success", + // "ts":1610270465132 + // } + // + const data = this.safeValue (response, 'data', {}); + return this.parseDepositAddress (data, currency); + } + + parseDepositAddress (depositAddress, currency = undefined) { + // + // { + // "address":"0x080c5c667381404cca9be0be9a04b2e47691ff86", + // "tag":null, + // "currency":"USDT", + // "network":"ERC20" + // } + // + const address = this.safeString (depositAddress, 'address'); + const tag = this.safeString (depositAddress, 'tag'); + const currencyId = this.safeString (depositAddress, 'currency'); + const code = this.safeCurrencyCode (currencyId); + return { + 'info': depositAddress, + 'code': code, + 'address': address, + 'tag': tag, + }; + } + + nonce () { + return this.milliseconds (); + } + + sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { + let url = '/' + this.implodeParams (path, params); + const query = this.omit (params, this.extractParams (path)); + if (api === 'v1') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } else { + url = '/' + this.version + url; + if (api === 'public') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } else if (api === 'private') { + this.checkRequiredCredentials (); + const nonce = this.nonce ().toString (); + headers = { + 'X-ACCESS-KEY': this.apiKey, + 'X-ACCESS-NONCE': nonce, + }; + let auth = nonce + ':' + method; + if (method === 'GET') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + auth += url; + } else { + headers['Content-Type'] = 'application/json'; + body = this.json (query); + auth += url + body; + } + const signature = this.hmac (this.encode (auth), this.encode (this.secret)); + headers['X-ACCESS-SIGN'] = signature; + } + } + url = this.implodeParams (this.urls['api'][api], { 'hostname': this.hostname }) + url; + return { 'url': url, 'method': method, 'body': body, 'headers': headers }; + } + + handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { + if (response === undefined) { + return; // fallback to default error handler + } + // + // {"code":40102,"message":"Unauthorized(invalid key)"} + // + const errorCode = this.safeString (response, 'code'); + if ((errorCode !== undefined) && (errorCode !== '1')) { + const feedback = this.id + ' ' + this.json (response); + this.throwExactlyMatchedException (this.exceptions['exact'], errorCode, feedback); + this.throwBroadlyMatchedException (this.exceptions['broad'], body, feedback); + } + } +}; + +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],4:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -530,6 +2319,7 @@ module.exports = class acx extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': this.safeFloat (order, 'price'), 'stopPrice': undefined, @@ -669,7 +2459,7 @@ module.exports = class acx extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],4:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],5:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -804,6 +2594,9 @@ module.exports = class aofex extends Exchange { 'show_all': '0', // '1' to show zero balances }, }, + 'commonCurrencies': { + 'CPC': 'Consensus Planet Coin', + }, }); } @@ -1470,6 +3263,7 @@ module.exports = class aofex extends Exchange { 'symbol': market['symbol'], 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -1767,7 +3561,7 @@ module.exports = class aofex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],5:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],6:[function(require,module,exports){ "use strict"; // ---------------------------------------------------------------------------- @@ -2181,20 +3975,20 @@ module.exports = class Exchange { if (!!enabled) { // eslint-disable-line no-extra-boolean-cast if ('test' in this.urls) { if (typeof this.urls['api'] === 'string') { - this.urls['api_backup'] = this.urls['api'] + this.urls['apiBackup'] = this.urls['api'] this.urls['api'] = this.urls['test'] } else { - this.urls['api_backup'] = clone (this.urls['api']) + this.urls['apiBackup'] = clone (this.urls['api']) this.urls['api'] = clone (this.urls['test']) } } else { throw new NotSupported (this.id + ' does not have a sandbox URL') } - } else if ('api_backup' in this.urls) { + } else if ('apiBackup' in this.urls) { if (typeof this.urls['api'] === 'string') { - this.urls['api'] = this.urls['api_backup'] + this.urls['api'] = this.urls['apiBackup'] } else { - this.urls['api'] = clone (this.urls['api_backup']) + this.urls['api'] = clone (this.urls['apiBackup']) } } } @@ -2346,34 +4140,31 @@ module.exports = class Exchange { handleRestResponse (response, url, method = 'GET', requestHeaders = undefined, requestBody = undefined) { return response.text ().then ((responseBody) => { - - const json = this.parseJson (responseBody) - const responseHeaders = this.getResponseHeaders (response) - + const bodyText = this.onRestResponse (response.status, response.statusText, url, method, responseHeaders, responseBody, requestHeaders, requestBody); + const json = this.parseJson (bodyText) if (this.enableLastResponseHeaders) { this.last_response_headers = responseHeaders } - if (this.enableLastHttpResponse) { this.last_http_response = responseBody } - if (this.enableLastJsonResponse) { this.last_json_response = json } - if (this.verbose) { this.print ("handleRestResponse:\n", this.id, method, url, response.status, response.statusText, "\nResponse:\n", responseHeaders, "\n", responseBody, "\n") } - this.handleErrors (response.status, response.statusText, url, method, responseHeaders, responseBody, json, requestHeaders, requestBody) this.handleHttpStatusCode (response.status, response.statusText, url, method, responseBody) - return json || responseBody }) } + onRestResponse (statusCode, statusText, url, method, responseHeaders, responseBody, requestHeaders, requestBody) { + return responseBody.trim ().replace (/:(\d{15,}),/g, ':"$1",'); + } + setMarkets (markets, currencies = undefined) { const values = Object.values (markets).map ((market) => deepExtend ({ 'limits': this.limits, @@ -2673,6 +4464,10 @@ module.exports = class Exchange { return symbols.map ((symbol) => this.marketId (symbol)) } + currencyIds (codes) { + return codes.map ((code) => this.currencyId (code)) + } + symbol (symbol) { return this.market (symbol).symbol || symbol } @@ -2806,7 +4601,7 @@ module.exports = class Exchange { array = array.filter ((entry) => entry[key] >= since) } if (limit !== undefined && limit !== null) { - array = (tail && !sinceIsDefined) ? array.slice (-limit) : array.slice (0, limit) + array = tail ? array.slice (-limit) : array.slice (0, limit) } return array } @@ -2824,18 +4619,18 @@ module.exports = class Exchange { } if (limit !== undefined && limit !== null) { - array = (tail && !sinceIsDefined) ? array.slice (-limit) : array.slice (0, limit) + array = tail ? array.slice (-limit) : array.slice (0, limit) } return array } - filterBySymbolSinceLimit (array, symbol = undefined, since = undefined, limit = undefined) { - return this.filterByValueSinceLimit (array, 'symbol', symbol, since, limit) + filterBySymbolSinceLimit (array, symbol = undefined, since = undefined, limit = undefined, tail = false) { + return this.filterByValueSinceLimit (array, 'symbol', symbol, since, limit, 'timestamp', tail) } - filterByCurrencySinceLimit (array, code = undefined, since = undefined, limit = undefined) { - return this.filterByValueSinceLimit (array, 'currency', code, since, limit) + filterByCurrencySinceLimit (array, code = undefined, since = undefined, limit = undefined, tail = false) { + return this.filterByValueSinceLimit (array, 'currency', code, since, limit, 'timestamp', tail) } filterByArray (objects, key, values = undefined, indexed = true) { @@ -2865,7 +4660,8 @@ module.exports = class Exchange { let result = Object.values (trades || []).map ((trade) => this.extend (this.parseTrade (trade, market), params)) result = sortBy (result, 'timestamp') const symbol = (market !== undefined) ? market['symbol'] : undefined - return this.filterBySymbolSinceLimit (result, symbol, since, limit) + const tail = since === undefined + return this.filterBySymbolSinceLimit (result, symbol, since, limit, tail) } parseTransactions (transactions, currency = undefined, since = undefined, limit = undefined, params = {}) { @@ -2876,7 +4672,8 @@ module.exports = class Exchange { let result = Object.values (transactions || []).map ((transaction) => this.extend (this.parseTransaction (transaction, currency), params)) result = this.sortBy (result, 'timestamp'); const code = (currency !== undefined) ? currency['code'] : undefined; - return this.filterByCurrencySinceLimit (result, code, since, limit); + const tail = since === undefined; + return this.filterByCurrencySinceLimit (result, code, since, limit, tail); } parseLedger (data, currency = undefined, since = undefined, limit = undefined, params = {}) { @@ -2894,7 +4691,8 @@ module.exports = class Exchange { } result = this.sortBy (result, 'timestamp'); const code = (currency !== undefined) ? currency['code'] : undefined; - return this.filterByCurrencySinceLimit (result, code, since, limit); + const tail = since === undefined; + return this.filterByCurrencySinceLimit (result, code, since, limit, tail); } parseOrders (orders, market = undefined, since = undefined, limit = undefined, params = {}) { @@ -2924,7 +4722,8 @@ module.exports = class Exchange { Object.entries (orders).map (([ id, order ]) => this.extend (this.parseOrder (this.extend ({ 'id': id }, order), market), params)) result = sortBy (result, 'timestamp') const symbol = (market !== undefined) ? market['symbol'] : undefined - return this.filterBySymbolSinceLimit (result, symbol, since, limit) + const tail = since === undefined + return this.filterBySymbolSinceLimit (result, symbol, since, limit, tail) } safeCurrency (currencyId, currency = undefined) { @@ -2995,19 +4794,10 @@ module.exports = class Exchange { // if (!this.isArray (ohlcvs)) { // throw new ExchangeError (this.id + ' parseOHLCVs expected an array in the ohlcvs argument, but got ' + typeof ohlcvs); // } - ohlcvs = Object.values (ohlcvs || []) - const result = [] - for (let i = 0; i < ohlcvs.length; i++) { - if (limit && (result.length >= limit)) { - break; - } - const ohlcv = this.parseOHLCV (ohlcvs[i], market) - if (since && (ohlcv[0] < since)) { - continue - } - result.push (ohlcv) - } - return this.sortBy (result, 0) + const parsed = ohlcvs.map ((ohlcv) => this.parseOHLCV (ohlcv, market)) + const sorted = this.sortBy (parsed, 0) + const tail = since === undefined + return this.filterBySinceLimit (sorted, since, limit, 0, tail) } editLimitBuyOrder (id, symbol, ...args) { @@ -3030,20 +4820,20 @@ module.exports = class Exchange { return this.createOrder (symbol, ...args) } - createLimitOrder (symbol, ...args) { - return this.createOrder (symbol, 'limit', ...args) + createLimitOrder (symbol, side, amount, price = undefined, params = {}) { + return this.createOrder (symbol, 'limit', side, amount, price, params) } - createMarketOrder (symbol, ...args) { - return this.createOrder (symbol, 'market', ...args) + createMarketOrder (symbol, side, amount, price = undefined, params = {}) { + return this.createOrder (symbol, 'market', side, amount, price, params) } - createLimitBuyOrder (symbol, ...args) { - return this.createOrder (symbol, 'limit', 'buy', ...args) + createLimitBuyOrder (symbol, amount, price = undefined, params = {}) { + return this.createOrder (symbol, 'limit', 'buy', amount, price, params) } - createLimitSellOrder (symbol, ...args) { - return this.createOrder (symbol, 'limit', 'sell', ...args) + createLimitSellOrder (symbol, amount, price = undefined, params = {}) { + return this.createOrder (symbol, 'limit', 'sell', amount, price, params) } createMarketBuyOrder (symbol, amount, params = {}) { @@ -3055,7 +4845,7 @@ module.exports = class Exchange { } costToPrecision (symbol, cost) { - return decimalToPrecision (cost, ROUND, this.markets[symbol].precision.price, this.precisionMode, this.paddingMode) + return decimalToPrecision (cost, TRUNCATE, this.markets[symbol].precision.price, this.precisionMode, this.paddingMode) } priceToPrecision (symbol, price) { @@ -3142,7 +4932,7 @@ module.exports = class Exchange { // still takes the input as a hex string // same as above but returns a string instead of an object const signature = this.signMessage (message, privateKey) - return signature['r'] + this.remove0xPrefix (signature['s']) + this.binaryToBase16 (this.numberToBE (signature['v'])); + return signature['r'] + this.remove0xPrefix (signature['s']) + this.binaryToBase16 (this.numberToBE (signature['v'])) } oath () { @@ -3166,10 +4956,79 @@ module.exports = class Exchange { integerPow (a, b) { return new BN (a).pow (new BN (b)) } + + safeOrder (order) { + // Cost + // Remaining + // Average + // Price + // Amount + // Filled + // + // First we try to calculate filled from the trades + const parseFilled = order['filled'] === undefined; + const parseCost = order['cost'] === undefined; + if (parseFilled) { + order['filled'] = 0 + } + if (parseCost) { + order['cost'] = 0 + } + if (parseFilled || parseCost) { + if (Array.isArray (order['trades'])) { + for (let i = 0; i < order['trades'].length; i++) { + const trade = order['trades'][i] + if (parseFilled) { + order['filled'] = this.sum (order['filled'], trade['amount']) + } + if (parseCost) { + order['cost'] = this.sum (order['cost'], trade['cost']) + } + } + } + } + // We ensure amount = filled + remaining + if (order['amount'] === undefined) { + if (order['filled'] !== undefined && order['remaining'] !== undefined) { + order['amount'] = this.sum (order['filled'], order['remaining']) + } + } + if (order['filled'] === undefined) { + if (order['amount'] !== undefined && order['remaining'] !== undefined) { + order['filled'] = Math.max (this.sum (order['amount'], -order['remaining']), 0) + } + } + if (order['remaining'] === undefined) { + if (order['amount'] !== undefined && order['filled'] !== undefined) { + order['remaining'] = Math.max (this.sum (order['amount'], -order['filled']), 0) + } + } + // We ensure that the average field is calculated correctly + if (order['average'] === undefined) { + if (order['filled'] !== undefined && order['cost'] !== undefined && order['cost'] > 0) { + order['average'] = order['filled'] / order['cost'] + } + } + // We also ensure the cost field is calculated correctly + const costPriceExists = (order['average'] !== undefined) || (order['price'] !== undefined) + if ((order['filled'] !== undefined) && costPriceExists) { + let costPrice = undefined; + if (order['average'] === undefined) { + costPrice = order['price'] + } else { + costPrice = order['average'] + } + order['cost'] = costPrice * order['filled'] + } + // We add support for market orders + if (order['price'] === undefined && order['type'] === 'market') { + order['price'] = order['average'] + } + return order + } } - -},{"../static_dependencies/BN/bn":123,"./errors":7,"./functions":8}],6:[function(require,module,exports){ +},{"../static_dependencies/BN/bn":126,"./errors":8,"./functions":9}],7:[function(require,module,exports){ 'use strict'; const errorHierarchy = { @@ -3215,7 +5074,7 @@ const errorHierarchy = { module.exports = errorHierarchy; -},{}],7:[function(require,module,exports){ +},{}],8:[function(require,module,exports){ 'use strict'; const errorHierarchy = require ('./errorHierarchy.js') @@ -3248,6 +5107,10 @@ function subclass (BaseClass, classes, namespace = {}) { this.__proto__ = Class.prototype this.name = className this.message = message + + // https://github.com/Microsoft/TypeScript/wiki/FAQ#why-doesnt-extending-built-ins-like-error-array-and-map-work + + Object.setPrototypeOf (this, Class.prototype) } } @@ -3268,7 +5131,7 @@ module.exports = subclass ( errorHierarchy ) -},{"./errorHierarchy.js":6}],8:[function(require,module,exports){ +},{"./errorHierarchy.js":7}],9:[function(require,module,exports){ 'use strict'; /* ------------------------------------------------------------------------ */ @@ -3298,7 +5161,7 @@ module.exports = unCamelCasePropertyNames (Object.assign ({} /* ------------------------------------------------------------------------ */ -},{"./functions/crypto":9,"./functions/encode":10,"./functions/generic":11,"./functions/misc":12,"./functions/number":13,"./functions/platform":14,"./functions/string":15,"./functions/throttle":16,"./functions/time":17,"./functions/type":18}],9:[function(require,module,exports){ +},{"./functions/crypto":10,"./functions/encode":11,"./functions/generic":12,"./functions/misc":13,"./functions/number":14,"./functions/platform":15,"./functions/string":16,"./functions/throttle":17,"./functions/time":18,"./functions/type":19}],10:[function(require,module,exports){ 'use strict' /* ------------------------------------------------------------------------ */ @@ -3458,7 +5321,7 @@ module.exports = { /* ------------------------------------------------------------------------ */ -},{"../../static_dependencies/BN/bn.js":123,"../../static_dependencies/crypto-js/crypto-js":124,"./../../static_dependencies/elliptic/lib/elliptic":125,"./../../static_dependencies/node-rsa/NodeRSA":143,"./../errors":7,"./encode":10,"./string":15}],10:[function(require,module,exports){ +},{"../../static_dependencies/BN/bn.js":126,"../../static_dependencies/crypto-js/crypto-js":127,"./../../static_dependencies/elliptic/lib/elliptic":128,"./../../static_dependencies/node-rsa/NodeRSA":146,"./../errors":8,"./encode":11,"./string":16}],11:[function(require,module,exports){ "use strict"; /* ------------------------------------------------------------------------ */ @@ -3578,7 +5441,7 @@ module.exports['byteArrayToWordArray'] = byteArrayToWordArray /* ------------------------------------------------------------------------ */ -},{"../../static_dependencies/BN/bn":123,"../../static_dependencies/crypto-js/crypto-js":124,"../../static_dependencies/qs/index":159}],11:[function(require,module,exports){ +},{"../../static_dependencies/BN/bn":126,"../../static_dependencies/crypto-js/crypto-js":127,"../../static_dependencies/qs/index":162}],12:[function(require,module,exports){ "use strict"; // ---------------------------------------------------------------------------- @@ -3816,7 +5679,7 @@ module.exports = { } -},{"./type":18}],12:[function(require,module,exports){ +},{"./type":19}],13:[function(require,module,exports){ 'use strict'; const { ROUND_UP, ROUND_DOWN } = require ('./number') @@ -3956,7 +5819,7 @@ module.exports = { /* ------------------------------------------------------------------------ */ -},{"../errors":7,"./number":13}],13:[function(require,module,exports){ +},{"../errors":8,"./number":14}],14:[function(require,module,exports){ 'use strict' /* ------------------------------------------------------------------------ @@ -4297,7 +6160,7 @@ module.exports = { /* ------------------------------------------------------------------------ */ -},{}],14:[function(require,module,exports){ +},{}],15:[function(require,module,exports){ (function (process){ "use strict"; @@ -4338,30 +6201,27 @@ module.exports = { defaultFetch, } }).call(this,require('_process')) -},{"../../static_dependencies/fetch-ponyfill/fetch-node":141,"_process":207}],15:[function(require,module,exports){ +},{"../../static_dependencies/fetch-ponyfill/fetch-node":144,"_process":210}],16:[function(require,module,exports){ "use strict"; -/* ------------------------------------------------------------------------ */ +// ---------------------------------------------------------------------------- -const uuid = a => a ? (a ^ Math.random () * 16 >> a / 4).toString (16) - : ([1e7]+-1e3+-4e3+-8e3+-1e11).replace (/[018]/g, uuid) +const uuid = a => a ? (a ^ Math.random () * 16 >> a / 4).toString (16) : ([1e7]+-1e3+-4e3+-8e3+-1e11).replace (/[018]/g, uuid) +const uuid22 = a => a ? (a ^ Math.random () * 16 >> a / 4).toString (16) : ([1e7]+1e3+4e3+8e5).replace (/[018]/g, uuid22) -module.exports = +// ---------------------------------------------------------------------------- - { uuid +module.exports = { - // hasFetchOHLCV → has_fetch_ohlcv; parseHTTPResponse → parse_http_response + uuid + , uuid22 + // hasFetchOHLCV → has_fetch_ohlcv; parseHTTPResponse → parse_http_response , unCamelCase: s => s.match (/^[A-Z0-9_]+$/) ? s : (s.replace (/[a-z0-9][A-Z]/g, x => x[0] + '_' + x[1]).replace(/[A-Z0-9][A-Z0-9][a-z]/g, x => x[0] + '_' + x[1] + x[2]).toLowerCase ()) - - , capitalize: s => s.length - ? (s.charAt (0).toUpperCase () + s.slice (1)) - : s + , capitalize: s => s.length ? (s.charAt (0).toUpperCase () + s.slice (1)) : s , strip: s => s.replace(/^\s+|\s+$/g, '') - } +} -/* ------------------------------------------------------------------------ */ - -},{}],16:[function(require,module,exports){ +},{}],17:[function(require,module,exports){ "use strict"; /* ------------------------------------------------------------------------ */ @@ -4427,7 +6287,7 @@ module.exports = { /* ------------------------------------------------------------------------ */ -},{"./time":17}],17:[function(require,module,exports){ +},{"./time":18}],18:[function(require,module,exports){ 'use strict'; /* ------------------------------------------------------------------------ */ @@ -4631,7 +6491,7 @@ module.exports = /* ------------------------------------------------------------------------ */ -},{}],18:[function(require,module,exports){ +},{}],19:[function(require,module,exports){ "use strict"; /* ------------------------------------------------------------------------ */ @@ -4699,696 +6559,7 @@ module.exports = { /* ------------------------------------------------------------------------ */ -},{}],19:[function(require,module,exports){ -'use strict'; - -// --------------------------------------------------------------------------- - -const Exchange = require ('./base/Exchange'); -const { ExchangeError, ArgumentsRequired, AuthenticationError, InsufficientFunds, InvalidOrder, OrderNotFound } = require ('./base/errors'); - -// --------------------------------------------------------------------------- - -module.exports = class bcex extends Exchange { - describe () { - return this.deepExtend (super.describe (), { - 'id': 'bcex', - 'name': 'BCEX', - 'countries': [ 'CN', 'HK' ], - 'version': '1', - 'has': { - 'cancelOrder': true, - 'createOrder': true, - 'fetchBalance': true, - 'fetchClosedOrders': 'emulated', - 'fetchMarkets': true, - 'fetchMyTrades': true, - 'fetchOpenOrders': true, - 'fetchOrder': true, - 'fetchOrders': true, - 'fetchOrderBook': true, - 'fetchTicker': true, - 'fetchTickers': false, - 'fetchTrades': true, - 'fetchTradingLimits': true, - }, - 'urls': { - 'logo': 'https://user-images.githubusercontent.com/51840849/77231516-851c6900-6bac-11ea-8fd6-ee5c23eddbd4.jpg', - 'api': 'https://www.bcex.top', - 'www': 'https://www.bcex.top', - 'doc': 'https://github.com/BCEX-TECHNOLOGY-LIMITED/API_Docs/wiki/Interface', - 'fees': 'https://bcex.udesk.cn/hc/articles/57085', - 'referral': 'https://www.bcex.top/register?invite_code=758978&lang=en', - }, - 'status': { - 'status': 'error', - 'updated': undefined, - 'eta': undefined, - 'url': undefined, - }, - 'api': { - 'public': { - 'get': [ - 'Api_Market/getPriceList', // tickers - 'Api_Order/ticker', // last ohlcv candle (ticker) - 'Api_Order/depth', // orderbook - 'Api_Market/getCoinTrade', // ticker - 'Api_Order/marketOrder', // trades... - ], - 'post': [ - 'Api_Market/getPriceList', // tickers - 'Api_Order/ticker', // last ohlcv candle (ticker) - 'Api_Order/depth', // orderbook - 'Api_Market/getCoinTrade', // ticker - 'Api_Order/marketOrder', // trades... - ], - }, - 'private': { - 'post': [ - 'Api_Order/cancel', - 'Api_Order/coinTrust', // limit order - 'Api_Order/orderList', // open / all orders (my trades?) - 'Api_Order/orderInfo', - 'Api_Order/tradeList', // open / all orders - 'Api_Order/trustList', // ? - 'Api_User/userBalance', - ], - }, - }, - 'fees': { - 'trading': { - 'tierBased': false, - 'percentage': true, - 'maker': 0.1 / 100, - 'taker': 0.2 / 100, - }, - 'funding': { - 'tierBased': false, - 'percentage': false, - 'withdraw': { - 'ckusd': 0.0, - 'other': 0.05 / 100, - }, - 'deposit': {}, - }, - }, - 'exceptions': { - '该币不存在,非法操作': ExchangeError, // { code: 1, msg: "该币不存在,非法操作" } - returned when a required symbol parameter is missing in the request (also, maybe on other types of errors as well) - '公钥不合法': AuthenticationError, // { code: 1, msg: '公钥不合法' } - wrong public key - '您的可用余额不足': InsufficientFunds, // { code: 1, msg: '您的可用余额不足' } - your available balance is insufficient - '您的btc不足': InsufficientFunds, // { code: 1, msg: '您的btc不足' } - your btc is insufficient - '参数非法': InvalidOrder, // {'code': 1, 'msg': '参数非法'} - 'Parameter illegal' - '订单信息不存在': OrderNotFound, // {'code': 1, 'msg': '订单信息不存在'} - 'Order information does not exist' - }, - 'commonCurrencies': { - 'UNI': 'UNI COIN', - 'PNT': 'Penta', - }, - 'options': { - 'limits': { - // hardcoding is deprecated, using these predefined values is not recommended, use loadTradingLimits instead - 'AFC/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 6, 'max': 120000 }}}, - 'AFC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 6, 'max': 120000 }}}, - 'AFT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 15, 'max': 300000 }}}, - 'AICC/CNET': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 5, 'max': 50000 }}}, - 'AIDOC/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 5, 'max': 100000 }}}, - 'AISI/ETH': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.001, 'max': 500 }}}, - 'AIT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 20, 'max': 400000 }}}, - 'ANS/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.1, 'max': 500 }}}, - 'ANS/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.1, 'max': 1000 }}}, - 'ARC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 60, 'max': 600000 }}}, - 'AXF/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 100, 'max': 1000000 }}}, - 'BASH/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 250, 'max': 3000000 }}}, - 'BATT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 60, 'max': 1500000 }}}, - 'BCD/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 0.3, 'max': 7000 }}}, - 'BHPC/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 2, 'max': 70000 }}}, - 'BHPC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 2, 'max': 60000 }}}, - 'BOPO/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 100, 'max': 2000000 }}}, - 'BOPO/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 100, 'max': 10000000 }}}, - 'BTC/CKUSD': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.001, 'max': 10 }}}, - 'BTC/CNET': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.0005, 'max': 5 }}}, - 'BTC/USDT': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.0002, 'max': 4 }}}, - 'BTE/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 25, 'max': 250000 }}}, - 'BU/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 20, 'max': 400000 }}}, - 'CIC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 3000, 'max': 30000000 }}}, - 'CIT/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 4, 'max': 40000 }}}, - 'CIT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 4, 'max': 40000 }}}, - 'CMT/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 5, 'max': 2500000 }}}, - 'CNET/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 12, 'max': 120000 }}}, - 'CNMC/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 4, 'max': 50000 }}}, - 'CTC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 5, 'max': 550000 }}}, - 'CZR/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 12, 'max': 500000 }}}, - 'DCON/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 8, 'max': 300000 }}}, - 'DCT/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 2, 'max': 40000 }}}, - 'DCT/CKUSD': { 'precision': { 'amount': 2, 'price': 3 }, 'limits': { 'amount': { 'min': 2, 'max': 2000 }}}, - 'DOGE/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 3000, 'max': 14000000 }}}, - 'DOGE/CKUSD': { 'precision': { 'amount': 2, 'price': 6 }, 'limits': { 'amount': { 'min': 500, 'max': 2000000 }}}, - 'DRCT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 16, 'max': 190000 }}}, - 'ELA/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 0.02, 'max': 500 }}}, - 'ELF/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 0.1, 'max': 100000 }}}, - 'ELF/CKUSD': { 'precision': { 'amount': 2, 'price': 3 }, 'limits': { 'amount': { 'min': 0.01, 'max': 100000 }}}, - 'EOS/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.5, 'max': 5000 }}}, - 'EOS/CNET': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 2.5, 'max': 30000 }}}, - 'EOS/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 0.18, 'max': 1800 }}}, - 'ETC/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.2, 'max': 2500 }}}, - 'ETC/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.2, 'max': 2500 }}}, - 'ETF/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 7, 'max': 150000 }}}, - 'ETH/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.015, 'max': 100 }}}, - 'ETH/CKUSD': { 'precision': { 'amount': 4, 'price': 4 }, 'limits': { 'amount': { 'min': 0.005, 'max': 100 }}}, - 'ETH/USDT': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.005, 'max': 100 }}}, - 'FCT/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.24, 'max': 1000 }}}, - 'FCT/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.24, 'max': 1000 }}}, - 'GAME/CNET': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 1, 'max': 10000 }}}, - 'GOOC/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 200, 'max': 2000000 }}}, - 'GP/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 600, 'max': 6000000 }}}, - 'HSC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 1000, 'max': 20000000 }}}, - 'IFISH/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 300, 'max': 8000000 }}}, - 'IIC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 50, 'max': 4000000 }}}, - 'IMOS/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 15, 'max': 300000 }}}, - 'JC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 300, 'max': 3000000 }}}, - 'LBTC/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 0.1, 'max': 3000 }}}, - 'LEC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 500, 'max': 5000000 }}}, - 'LKY/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 10, 'max': 70000 }}}, - 'LKY/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 10, 'max': 100000 }}}, - 'LMC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 25, 'max': 250000 }}}, - 'LSK/CNET': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.3, 'max': 3000 }}}, - 'LTC/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.01, 'max': 500 }}}, - 'LTC/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.01, 'max': 500 }}}, - 'LTC/USDT': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.02, 'max': 450 }}}, - 'MC/CNET': { 'precision': { 'amount': 2, 'price': 6 }, 'limits': { 'amount': { 'min': 10000, 'max': 100000000 }}}, - 'MCC/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 30, 'max': 350000 }}}, - 'MOC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 25, 'max': 600000 }}}, - 'MRYC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 300, 'max': 3000000 }}}, - 'MT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 200, 'max': 6000000 }}}, - 'MXI/CNET': { 'precision': { 'amount': 2, 'price': 6 }, 'limits': { 'amount': { 'min': 5000, 'max': 60000000 }}}, - 'NAI/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 10, 'max': 100000 }}}, - 'NAS/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.2, 'max': 15000 }}}, - 'NAS/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.5, 'max': 5000 }}}, - 'NEWOS/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 65, 'max': 700000 }}}, - 'NKN/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 3, 'max': 350000 }}}, - 'NTK/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 2, 'max': 30000 }}}, - 'ONT/CKUSD': { 'precision': { 'amount': 2, 'price': 3 }, 'limits': { 'amount': { 'min': 0.2, 'max': 2000 }}}, - 'ONT/ETH': { 'precision': { 'amount': 3, 'price': 8 }, 'limits': { 'amount': { 'min': 0.01, 'max': 1000 }}}, - 'PNT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 80, 'max': 800000 }}}, - 'PST/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 5, 'max': 100000 }}}, - 'PTT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 450, 'max': 10000000 }}}, - 'QTUM/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.4, 'max': 2800 }}}, - 'QTUM/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.1, 'max': 1000 }}}, - 'RATING/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 500, 'max': 10000000 }}}, - 'RHC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 1000, 'max': 10000000 }}}, - 'SDA/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 20, 'max': 500000 }}}, - 'SDD/CKUSD': { 'precision': { 'amount': 2, 'price': 3 }, 'limits': { 'amount': { 'min': 10, 'max': 100000 }}}, - 'SHC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 250, 'max': 2500000 }}}, - 'SHE/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 100, 'max': 5000000 }}}, - 'SMC/CNET': { 'precision': { 'amount': 2, 'price': 6 }, 'limits': { 'amount': { 'min': 1000, 'max': 10000000 }}}, - 'SOP/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 50, 'max': 1000000 }}}, - 'TAC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 35, 'max': 800000 }}}, - 'TIP/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 7, 'max': 200000 }}}, - 'TKT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 40, 'max': 400000 }}}, - 'TLC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 500, 'max': 10000000 }}}, - 'TNC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 10, 'max': 110000 }}}, - 'TUB/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 200, 'max': 8000000 }}}, - 'UC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 100, 'max': 3000000 }}}, - 'UDB/CNET': { 'precision': { 'amount': 2, 'price': 6 }, 'limits': { 'amount': { 'min': 2000, 'max': 40000000 }}}, - 'UIC/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 5, 'max': 150000 }}}, - 'VAAC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 10, 'max': 250000 }}}, - 'VPN/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 200, 'max': 2000000 }}}, - 'VSC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 30, 'max': 650000 }}}, - 'WAVES/CKUSD': { 'precision': { 'amount': 2, 'price': 3 }, 'limits': { 'amount': { 'min': 0.15, 'max': 1500 }}}, - 'WDNA/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 100, 'max': 250000 }}}, - 'WIC/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 3, 'max': 30000 }}}, - 'XAS/CNET': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 2.5, 'max': 25000 }}}, - 'XLM/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 10, 'max': 300000 }}}, - 'XLM/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 1, 'max': 300000 }}}, - 'XLM/USDT': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 5, 'max': 150000 }}}, - 'XRP/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 24, 'max': 100000 }}}, - 'XRP/CKUSD': { 'precision': { 'amount': 2, 'price': 3 }, 'limits': { 'amount': { 'min': 5, 'max': 50000 }}}, - 'YBCT/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 15, 'max': 200000 }}}, - 'YBCT/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 10, 'max': 200000 }}}, - 'YBY/CNET': { 'precision': { 'amount': 2, 'price': 6 }, 'limits': { 'amount': { 'min': 25000, 'max': 250000000 }}}, - 'ZEC/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.02, 'max': 100 }}}, - 'ZEC/CKUSD': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.02, 'max': 100 }}}, - }, - }, - }); - } - - async fetchTradingLimits (symbols = undefined, params = {}) { - // this method should not be called directly, use loadTradingLimits () instead - // by default it will try load withdrawal fees of all currencies (with separate requests, sequentially) - // however if you define symbols = [ 'ETH/BTC', 'LTC/BTC' ] in args it will only load those - await this.loadMarkets (); - if (symbols === undefined) { - symbols = this.symbols; - } - const result = {}; - for (let i = 0; i < symbols.length; i++) { - const symbol = symbols[i]; - result[symbol] = await this.fetchTradingLimitsById (this.marketId (symbol), params); - } - return result; - } - - async fetchTradingLimitsById (id, params = {}) { - const request = { - 'symbol': id, - }; - const response = await this.publicPostApiOrderTicker (this.extend (request, params)); - // - // { code: 0, - // msg: "获取牌价信息成功", - // data: { high: 0.03721392, - // low: 0.03335362, - // buy: "0.03525757", - // sell: "0.03531160", - // last: 0.0352634, - // vol: "184742.4176", - // min_trade: "0.01500000", - // max_trade: "100.00000000", - // number_float: "4", - // price_float: "8" } } } - // - return this.parseTradingLimits (this.safeValue (response, 'data', {})); - } - - parseTradingLimits (limits, symbol = undefined, params = {}) { - // - // { high: 0.03721392, - // low: 0.03335362, - // buy: "0.03525757", - // sell: "0.03531160", - // last: 0.0352634, - // vol: "184742.4176", - // min_trade: "0.01500000", - // max_trade: "100.00000000", - // number_float: "4", - // price_float: "8" } - // - return { - 'info': limits, - 'precision': { - 'amount': this.safeInteger (limits, 'number_float'), - 'price': this.safeInteger (limits, 'price_float'), - }, - 'limits': { - 'amount': { - 'min': this.safeFloat (limits, 'min_trade'), - 'max': this.safeFloat (limits, 'max_trade'), - }, - }, - }; - } - - async fetchMarkets (params = {}) { - const response = await this.publicGetApiMarketGetPriceList (params); - const result = []; - const keys = Object.keys (response); - for (let i = 0; i < keys.length; i++) { - const currentMarketId = keys[i]; - const currentMarkets = response[currentMarketId]; - for (let j = 0; j < currentMarkets.length; j++) { - const market = currentMarkets[j]; - const baseId = this.safeString (market, 'coin_from'); - const quoteId = this.safeString (market, 'coin_to'); - let base = baseId.toUpperCase (); - let quote = quoteId.toUpperCase (); - base = this.safeCurrencyCode (base); - quote = this.safeCurrencyCode (quote); - const id = baseId + '2' + quoteId; - const symbol = base + '/' + quote; - const active = true; - const defaults = this.safeValue (this.options['limits'], symbol, {}); - result.push (this.extend ({ - 'id': id, - 'symbol': symbol, - 'base': base, - 'quote': quote, - 'baseId': baseId, - 'quoteId': quoteId, - 'active': active, - // overrided by defaults from this.options['limits'] - 'precision': { - 'amount': undefined, - 'price': undefined, - }, - // overrided by defaults from this.options['limits'] - 'limits': { - 'amount': { 'min': undefined, 'max': undefined }, - 'price': { 'min': undefined, 'max': undefined }, - 'cost': { 'min': undefined, 'max': undefined }, - }, - 'info': market, - }, defaults)); - } - } - return result; - } - - parseTrade (trade, market = undefined) { - let symbol = undefined; - if (market !== undefined) { - symbol = market['symbol']; - } - const timestamp = this.safeTimestamp2 (trade, 'date', 'created'); - const id = this.safeString (trade, 'tid'); - const orderId = this.safeString (trade, 'order_id'); - const amount = this.safeFloat2 (trade, 'number', 'amount'); - const price = this.safeFloat (trade, 'price'); - let cost = undefined; - if (price !== undefined) { - if (amount !== undefined) { - cost = amount * price; - } - } - let side = this.safeString (trade, 'side'); - if (side === 'sale') { - side = 'sell'; - } - return { - 'info': trade, - 'id': id, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'symbol': symbol, - 'type': undefined, - 'side': side, - 'price': price, - 'amount': amount, - 'cost': cost, - 'order': orderId, - 'fee': undefined, - 'takerOrMaker': undefined, - }; - } - - async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const request = { - 'symbol': this.marketId (symbol), - }; - if (limit !== undefined) { - request['limit'] = limit; - } - const market = this.market (symbol); - const response = await this.publicPostApiOrderMarketOrder (this.extend (request, params)); - return this.parseTrades (response['data'], market, since, limit); - } - - async fetchBalance (params = {}) { - await this.loadMarkets (); - const response = await this.privatePostApiUserUserBalance (params); - const data = this.safeValue (response, 'data'); - let keys = Object.keys (data); - const result = { }; - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - const amount = this.safeFloat (data, key); - const parts = key.split ('_'); - const currencyId = parts[0]; - const lockOrOver = parts[1]; - const code = this.safeCurrencyCode (currencyId); - if (!(code in result)) { - result[code] = this.account (); - } - if (lockOrOver === 'lock') { - result[code]['used'] = parseFloat (amount); - } else { - result[code]['free'] = parseFloat (amount); - } - } - keys = Object.keys (result); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - const total = this.sum (result[key]['used'], result[key]['free']); - result[key]['total'] = total; - } - result['info'] = data; - return this.parseBalance (result); - } - - async fetchTicker (symbol, params = {}) { - await this.loadMarkets (); - const market = this.markets[symbol]; - const request = { - 'part': market['quoteId'], - 'coin': market['baseId'], - }; - const response = await this.publicPostApiMarketGetCoinTrade (this.extend (request, params)); - const timestamp = this.milliseconds (); - return { - 'symbol': symbol, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'high': this.safeFloat (response, 'max'), - 'low': this.safeFloat (response, 'min'), - 'bid': this.safeFloat (response, 'buy'), - 'bidVolume': undefined, - 'ask': this.safeFloat (response, 'sale'), - 'askVolume': undefined, - 'vwap': undefined, - 'open': undefined, - 'close': this.safeFloat (response, 'price'), - 'last': this.safeFloat (response, 'price'), - 'previousClose': undefined, - 'change': undefined, - 'percentage': this.safeFloat (response, 'change_24h'), - 'average': undefined, - 'baseVolume': this.safeFloat (response, 'volume_24h'), - 'quoteVolume': undefined, - 'info': response, - }; - } - - async fetchOrderBook (symbol, limit = undefined, params = {}) { - await this.loadMarkets (); - const marketId = this.marketId (symbol); - const request = { - 'symbol': marketId, - }; - const response = await this.publicPostApiOrderDepth (this.extend (request, params)); - const data = this.safeValue (response, 'data'); - const timestamp = this.safeTimestamp (data, 'date'); - return this.parseOrderBook (data, timestamp); - } - - async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const market = this.market (symbol); - const request = { - 'symbol': market['id'], - }; - const response = await this.privatePostApiOrderOrderList (this.extend (request, params)); - return this.parseTrades (response['data'], market, since, limit); - } - - parseOrderStatus (status) { - const statuses = { - '0': 'open', - '1': 'open', // partially filled - '2': 'closed', - '3': 'canceled', - }; - return this.safeString (statuses, status, status); - } - - async fetchOrder (id, symbol = undefined, params = {}) { - if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a `symbol` argument'); - } - await this.loadMarkets (); - const request = { - 'symbol': this.marketId (symbol), - 'trust_id': id, - }; - const response = await this.privatePostApiOrderOrderInfo (this.extend (request, params)); - const order = this.safeValue (response, 'data'); - const timestamp = this.safeTimestamp (order, 'created'); - const status = this.parseOrderStatus (this.safeString (order, 'status')); - let side = this.safeString (order, 'flag'); - if (side === 'sale') { - side = 'sell'; - } - // Can't use parseOrder because the data format is different btw endpoint for fetchOrder and fetchOrders - return { - 'info': order, - 'id': id, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'lastTradeTimestamp': undefined, - 'symbol': symbol, - 'type': undefined, - 'side': side, - 'price': this.safeFloat (order, 'price'), - 'cost': undefined, - 'average': this.safeFloat (order, 'avg_price'), - 'amount': this.safeFloat (order, 'number'), - 'filled': this.safeFloat (order, 'numberdeal'), - 'remaining': this.safeFloat (order, 'numberover'), - 'status': status, - 'fee': undefined, - 'clientOrderId': undefined, - 'trades': undefined, - }; - } - - parseOrder (order, market = undefined) { - const id = this.safeString (order, 'id'); - const timestamp = this.safeTimestamp (order, 'datetime'); - let symbol = undefined; - if (market !== undefined) { - symbol = market['symbol']; - } - const type = undefined; - let side = this.safeString (order, 'type'); - if (side === 'sale') { - side = 'sell'; - } - const price = this.safeFloat (order, 'price'); - const average = this.safeFloat (order, 'avg_price'); - const amount = this.safeFloat (order, 'amount'); - const remaining = this.safeFloat (order, 'amount_outstanding'); - const filled = amount - remaining; - const status = this.parseOrderStatus (this.safeString (order, 'status')); - const cost = filled * price; - const fee = undefined; - const result = { - 'info': order, - 'id': id, - 'clientOrderId': undefined, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'lastTradeTimestamp': undefined, - 'symbol': symbol, - 'type': type, - 'timeInForce': undefined, - 'side': side, - 'price': price, - 'stopPrice': undefined, - 'cost': cost, - 'average': average, - 'amount': amount, - 'filled': filled, - 'remaining': remaining, - 'status': status, - 'fee': fee, - 'trades': undefined, - }; - return result; - } - - async fetchOrdersByType (type, symbol = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const request = { - 'type': type, - }; - let market = undefined; - if (symbol !== undefined) { - market = this.market (symbol); - request['symbol'] = market['id']; - } - const response = await this.privatePostApiOrderTradeList (this.extend (request, params)); - if ('data' in response) { - return this.parseOrders (response['data'], market, since, limit); - } - return []; - } - - async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - return this.fetchOrdersByType ('open', symbol, since, limit, params); - } - - async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - const orders = await this.fetchOrders (symbol, since, limit, params); - return this.filterBy (orders, 'status', 'closed'); - } - - async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - return this.fetchOrdersByType ('all', symbol, since, limit, params); - } - - async createOrder (symbol, type, side, amount, price = undefined, params = {}) { - await this.loadMarkets (); - const request = { - 'symbol': this.marketId (symbol), - 'type': side, - 'price': this.priceToPrecision (symbol, price), - 'number': this.amountToPrecision (symbol, amount), - }; - const response = await this.privatePostApiOrderCoinTrust (this.extend (request, params)); - const data = this.safeValue (response, 'data', {}); - const id = this.safeString (data, 'order_id'); - return { - 'info': response, - 'id': id, - }; - } - - async cancelOrder (id, symbol = undefined, params = {}) { - if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a `symbol` argument'); - } - await this.loadMarkets (); - const request = {}; - if (symbol !== undefined) { - request['symbol'] = this.marketId (symbol); - } - if (id !== undefined) { - request['order_id'] = id; - } - return await this.privatePostApiOrderCancel (this.extend (request, params)); - } - - sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { - let url = this.urls['api'] + '/' + this.implodeParams (path, params); - const query = this.omit (params, this.extractParams (path)); - if (api === 'public') { - if (Object.keys (query).length) { - url += '?' + this.urlencode (query); - } - } else { - this.checkRequiredCredentials (); - let payload = this.urlencode ({ 'api_key': this.apiKey }); - if (Object.keys (query).length) { - payload += '&' + this.urlencode (this.keysort (query)); - } - const auth = payload + '&secret_key=' + this.secret; - const signature = this.hash (this.encode (auth)); - body = payload + '&sign=' + signature; - headers = { - 'Content-Type': 'application/x-www-form-urlencoded', - }; - } - return { 'url': url, 'method': method, 'body': body, 'headers': headers }; - } - - handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { - if (response === undefined) { - return; // fallback to default error handler - } - const errorCode = this.safeValue (response, 'code'); - if (errorCode !== undefined) { - if (errorCode !== 0) { - // - // { code: 1, msg: "该币不存在,非法操作" } - returned when a required symbol parameter is missing in the request (also, maybe on other types of errors as well) - // { code: 1, msg: '公钥不合法' } - wrong public key - // { code: 1, msg: '价格输入有误,请检查你的数值精度' } - 'The price input is incorrect, please check your numerical accuracy' - // { code: 1, msg: '单笔最小交易数量不能小于0.00100000,请您重新挂单'} - - // 'The minimum number of single transactions cannot be less than 0.00100000. Please re-post the order' - // - const message = this.safeString (response, 'msg'); - const feedback = this.id + ' ' + message; - this.throwExactlyMatchedException (this.exceptions, message, feedback); - if (message.indexOf ('请您重新挂单') >= 0) { // minimum limit - throw new InvalidOrder (feedback); - } else { - throw new ExchangeError (feedback); - } - } - } - } -}; - -},{"./base/Exchange":5,"./base/errors":7}],20:[function(require,module,exports){ +},{}],20:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -5422,13 +6593,13 @@ module.exports = class bequant extends hitbtc { } }; -},{"./hitbtc":89}],21:[function(require,module,exports){ +},{"./hitbtc":93}],21:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { ExchangeError, AccountSuspended, ArgumentsRequired, AuthenticationError, DDoSProtection, ExchangeNotAvailable, InvalidOrder, OrderNotFound, PermissionDenied, InsufficientFunds, BadSymbol } = require ('./base/errors'); +const { ExchangeError, AccountSuspended, ArgumentsRequired, AuthenticationError, DDoSProtection, ExchangeNotAvailable, InvalidOrder, OrderNotFound, PermissionDenied, InsufficientFunds, BadSymbol, RateLimitExceeded, BadRequest } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -5496,6 +6667,7 @@ module.exports = class bibox extends Exchange { 'get': [ 'cquery', 'mdata', + 'cdata', ], }, 'private': { @@ -5533,9 +6705,16 @@ module.exports = class bibox extends Exchange { '2021': InsufficientFunds, // Insufficient balance available for withdrawal '2027': InsufficientFunds, // Insufficient balance available (for trade) '2033': OrderNotFound, // operation failed! Orders have been completed or revoked + '2065': InvalidOrder, // Precatory price is exorbitant, please reset + '2066': InvalidOrder, // Precatory price is low, please reset '2067': InvalidOrder, // Does not support market orders '2068': InvalidOrder, // The number of orders can not be less than + '2078': InvalidOrder, // unvalid order price '2085': InvalidOrder, // Order quantity is too small + '2091': RateLimitExceeded, // request is too frequency, please try again later + '2092': InvalidOrder, // Minimum amount not met + '3000': BadRequest, // Requested parameter incorrect + '3002': BadRequest, // Parameter cannot be null '3012': AuthenticationError, // invalid apiKey '3016': BadSymbol, // Trading pair error '3024': PermissionDenied, // wrong apikey permissions @@ -5549,6 +6728,10 @@ module.exports = class bibox extends Exchange { 'KEY': 'Bihu', 'MTC': 'MTC Mesh Network', // conflict with MTC Docademic doc.com Token https://github.com/ccxt/ccxt/issues/6081 https://github.com/ccxt/ccxt/issues/3025 'PAI': 'PCHAIN', + 'TERN': 'Ternio-ERC20', + }, + 'options': { + 'fetchCurrencies': 'fetch_currencies_public', // or 'fetch_currencies_private' with apiKey and secret }, }); } @@ -5848,6 +7031,78 @@ module.exports = class bibox extends Exchange { } async fetchCurrencies (params = {}) { + const method = this.safeString (this.options, 'fetchCurrencies', 'fetch_currencies_public'); + return await this[method] (params); + } + + async fetchCurrenciesPublic (params = {}) { + const request = { + 'cmd': 'currencies', + }; + const response = await this.publicGetCdata (this.extend (request, params)); + // + // publicGetCdata + // + // { + // "result":[ + // { + // "symbol":"BTC", + // "name":"BTC", + // "valid_decimals":8, + // "original_decimals":8, + // "is_erc20":0, + // "enable_withdraw":1, + // "enable_deposit":1, + // "withdraw_min":0.005, + // "describe_summary":"[{\"lang\":\"zh-cn\",\"text\":\"Bitcoin 比特币的概念最初由中本聪在2009年提出,是点对点的基于 SHA-256 算法的一种P2P形式的数字货币,点对点的传输意味着一个去中心化的支付系统。\"},{\"lang\":\"en-ww\",\"text\":\"Bitcoin is a digital asset and a payment system invented by Satoshi Nakamoto who published a related paper in 2008 and released it as open-source software in 2009. The system featured as peer-to-peer; users can transact directly without an intermediary.\"}]" + // } + // ], + // "cmd":"currencies" + // } + // + const currencies = this.safeValue (response, 'result'); + const result = {}; + for (let i = 0; i < currencies.length; i++) { + const currency = currencies[i]; + const id = this.safeString (currency, 'symbol'); + const name = this.safeString (currency, 'name'); // contains hieroglyphs causing python ASCII bug + const code = this.safeCurrencyCode (id); + const precision = this.safeInteger (currency, 'valid_decimals'); + const deposit = this.safeValue (currency, 'enable_deposit'); + const withdraw = this.safeValue (currency, 'enable_withdraw'); + const active = (deposit && withdraw); + result[code] = { + 'id': id, + 'code': code, + 'info': currency, + 'name': name, + 'active': active, + 'fee': undefined, + 'precision': precision, + 'limits': { + 'amount': { + 'min': Math.pow (10, -precision), + 'max': undefined, + }, + 'price': { + 'min': Math.pow (10, -precision), + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + 'withdraw': { + 'min': this.safeFloat (currency, 'withdraw_min'), + 'max': undefined, + }, + }, + }; + } + return result; + } + + async fetchCurrenciesPrivate (params = {}) { if (!this.apiKey || !this.secret) { throw new AuthenticationError (this.id + " fetchCurrencies is an authenticated endpoint, therefore it requires 'apiKey' and 'secret' credentials. If you don't need currency details, set exchange.has['fetchCurrencies'] = false before calling its methods."); } @@ -5860,46 +7115,42 @@ module.exports = class bibox extends Exchange { // { // "result":[ // { - // "result":[ - // { - // "totalBalance":"14.57582269", - // "balance":"14.57582269", - // "freeze":"0.00000000", - // "id":60, - // "symbol":"USDT", - // "icon_url":"/appimg/USDT_icon.png", - // "describe_url":"[{\"lang\":\"zh-cn\",\"link\":\"https://bibox.zendesk.com/hc/zh-cn/articles/115004798234\"},{\"lang\":\"en-ww\",\"link\":\"https://bibox.zendesk.com/hc/en-us/articles/115004798234\"}]", - // "name":"USDT", - // "enable_withdraw":1, - // "enable_deposit":1, - // "enable_transfer":1, - // "confirm_count":2, - // "is_erc20":1, - // "forbid_info":null, - // "describe_summary":"[{\"lang\":\"zh-cn\",\"text\":\"USDT 是 Tether 公司推出的基于稳定价值货币美元(USD)的代币 Tether USD(简称USDT),1USDT=1美元,用户可以随时使用 USDT 与 USD 进行1:1的兑换。\"},{\"lang\":\"en-ww\",\"text\":\"USDT is a cryptocurrency asset issued on the Bitcoin blockchain via the Omni Layer Protocol. Each USDT unit is backed by a U.S Dollar held in the reserves of the Tether Limited and can be redeemed through the Tether Platform.\"}]", - // "total_amount":4776930644, - // "supply_amount":4642367414, - // "price":"--", - // "contract_father":"OMNI", - // "supply_time":"--", - // "comment":null, - // "contract":"31", - // "original_decimals":8, - // "deposit_type":0, - // "hasCobo":0, - // "BTCValue":"0.00126358", - // "CNYValue":"100.93381445", - // "USDValue":"14.57524654", - // "children":[ - // {"type":"OMNI","symbol":"USDT","enable_deposit":1,"enable_withdraw":1,"confirm_count":2}, - // {"type":"TRC20","symbol":"tUSDT","enable_deposit":1,"enable_withdraw":1,"confirm_count":20}, - // {"type":"ERC20","symbol":"eUSDT","enable_deposit":1,"enable_withdraw":1,"confirm_count":25} - // ] - // }, - // ], - // "cmd":"transfer/coinList" - // } - // ] + // "totalBalance":"14.57582269", + // "balance":"14.57582269", + // "freeze":"0.00000000", + // "id":60, + // "symbol":"USDT", + // "icon_url":"/appimg/USDT_icon.png", + // "describe_url":"[{\"lang\":\"zh-cn\",\"link\":\"https://bibox.zendesk.com/hc/zh-cn/articles/115004798234\"},{\"lang\":\"en-ww\",\"link\":\"https://bibox.zendesk.com/hc/en-us/articles/115004798234\"}]", + // "name":"USDT", + // "enable_withdraw":1, + // "enable_deposit":1, + // "enable_transfer":1, + // "confirm_count":2, + // "is_erc20":1, + // "forbid_info":null, + // "describe_summary":"[{\"lang\":\"zh-cn\",\"text\":\"USDT 是 Tether 公司推出的基于稳定价值货币美元(USD)的代币 Tether USD(简称USDT),1USDT=1美元,用户可以随时使用 USDT 与 USD 进行1:1的兑换。\"},{\"lang\":\"en-ww\",\"text\":\"USDT is a cryptocurrency asset issued on the Bitcoin blockchain via the Omni Layer Protocol. Each USDT unit is backed by a U.S Dollar held in the reserves of the Tether Limited and can be redeemed through the Tether Platform.\"}]", + // "total_amount":4776930644, + // "supply_amount":4642367414, + // "price":"--", + // "contract_father":"OMNI", + // "supply_time":"--", + // "comment":null, + // "contract":"31", + // "original_decimals":8, + // "deposit_type":0, + // "hasCobo":0, + // "BTCValue":"0.00126358", + // "CNYValue":"100.93381445", + // "USDValue":"14.57524654", + // "children":[ + // {"type":"OMNI","symbol":"USDT","enable_deposit":1,"enable_withdraw":1,"confirm_count":2}, + // {"type":"TRC20","symbol":"tUSDT","enable_deposit":1,"enable_withdraw":1,"confirm_count":20}, + // {"type":"ERC20","symbol":"eUSDT","enable_deposit":1,"enable_withdraw":1,"confirm_count":25} + // ] + // }, + // ], + // "cmd":"transfer/coinList" // } // const currencies = this.safeValue (response, 'result'); @@ -6224,6 +7475,7 @@ module.exports = class bibox extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -6276,7 +7528,7 @@ module.exports = class bibox extends Exchange { async fetchClosedOrders (symbol = undefined, since = undefined, limit = 200, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchClosedOrders requires a `symbol` argument'); + throw new ArgumentsRequired (this.id + ' fetchClosedOrders() requires a `symbol` argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -6296,7 +7548,7 @@ module.exports = class bibox extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a `symbol` argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a `symbol` argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -6423,7 +7675,7 @@ module.exports = class bibox extends Exchange { } } else if (api === 'v2private') { this.checkRequiredCredentials (); - url = this.urls['api'] + '/v2/' + path; + url = this.implodeParams (this.urls['api'], { 'hostname': this.hostname }) + '/v2/' + path; const json_params = this.json (params); body = { 'body': json_params, @@ -6473,7 +7725,7 @@ module.exports = class bibox extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],22:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],22:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -6554,6 +7806,7 @@ module.exports = class bigone extends Exchange { 'private': { 'get': [ 'accounts', + 'fund/accounts', 'assets/{asset_symbol}/address', 'orders', 'orders/{id}', @@ -6567,6 +7820,7 @@ module.exports = class bigone extends Exchange { 'orders/{id}/cancel', 'orders/cancel', 'withdrawals', + 'transfer', ], }, }, @@ -7121,7 +8375,10 @@ module.exports = class bigone extends Exchange { async fetchBalance (params = {}) { await this.loadMarkets (); - const response = await this.privateGetAccounts (params); + const type = this.safeString (params, 'type', ''); + params = this.omit (params, 'type'); + const method = 'privateGet' + this.capitalize (type) + 'Accounts'; + const response = await this[method] (params); // // { // "code":0, @@ -7197,6 +8454,7 @@ module.exports = class bigone extends Exchange { 'symbol': symbol, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -7234,7 +8492,7 @@ module.exports = class bigone extends Exchange { if (isStopLimit || isStopMarket) { const stopPrice = this.safeFloat2 (params, 'stop_price', 'stopPrice'); if (stopPrice === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires a stop_price parameter'); + throw new ArgumentsRequired (this.id + ' createOrder() requires a stop_price parameter'); } request['stop_price'] = this.priceToPrecision (symbol, stopPrice); params = this.omit (params, [ 'stop_price', 'stopPrice' ]); @@ -7742,13 +9000,13 @@ module.exports = class bigone extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],23:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],23:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { ExchangeError, ArgumentsRequired, ExchangeNotAvailable, InsufficientFunds, OrderNotFound, InvalidOrder, DDoSProtection, InvalidNonce, AuthenticationError, InvalidAddress, RateLimitExceeded, PermissionDenied, NotSupported, BadRequest, BadSymbol, AccountSuspended, OrderImmediatelyFillable } = require ('./base/errors'); +const { ExchangeError, ArgumentsRequired, ExchangeNotAvailable, InsufficientFunds, OrderNotFound, InvalidOrder, DDoSProtection, InvalidNonce, AuthenticationError, RateLimitExceeded, PermissionDenied, NotSupported, BadRequest, BadSymbol, AccountSuspended, OrderImmediatelyFillable } = require ('./base/errors'); const { ROUND, TRUNCATE } = require ('./base/functions/number'); // --------------------------------------------------------------------------- @@ -7768,6 +9026,7 @@ module.exports = class binance extends Exchange { 'cancelOrder': true, 'CORS': false, 'createOrder': true, + 'fetchCurrencies': true, 'fetchBalance': true, 'fetchBidsAsks': true, 'fetchClosedOrders': 'emulated', @@ -7858,6 +9117,7 @@ module.exports = class binance extends Exchange { 'margin/priceIndex', // these endpoints require this.apiKey + this.secret 'asset/assetDividend', + 'asset/transfer', 'margin/loan', 'margin/repay', 'margin/account', @@ -7899,6 +9159,7 @@ module.exports = class binance extends Exchange { 'sub-account/spotSummary', 'sub-account/status', 'sub-account/transfer/subUserHistory', + 'sub-account/universalTransfer', // lending endpoints 'lending/daily/product/list', 'lending/daily/userLeftQuota', @@ -7924,9 +9185,23 @@ module.exports = class binance extends Exchange { 'bswap/liquidityOps', 'bswap/quote', 'bswap/swap', + // leveraged token endpoints + 'blvt/tokenInfo', + 'blvt/subscribe/record', + 'blvt/redeem/record', + 'blvt/userLimit', + // broker api + 'apiReferral/ifNewUser', + 'apiReferral/customization', + 'apiReferral/userCustomization', + 'apiReferral/rebate/recentRecord', + 'apiReferral/rebate/historicalRecord', + 'apiReferral/kickback/recentRecord', + 'apiReferral/kickback/historicalRecord', ], 'post': [ 'asset/dust', + 'asset/transfer', 'account/disableFastWithdrawSwitch', 'account/enableFastWithdrawSwitch', 'capital/withdraw/apply', @@ -7944,6 +9219,7 @@ module.exports = class binance extends Exchange { 'sub-account/futures/internalTransfer', 'sub-account/transfer/subToSub', 'sub-account/transfer/subToMaster', + 'sub-account/universalTransfer', 'userDataStream', 'userDataStream/isolated', 'futures/transfer', @@ -7958,12 +9234,21 @@ module.exports = class binance extends Exchange { 'bswap/liquidityAdd', 'bswap/liquidityRemove', 'bswap/swap', + // leveraged token endpoints + 'blvt/subscribe', + 'blvt/redeem', + // broker api + 'apiReferral/customization', + 'apiReferral/userCustomization', + 'apiReferral/rebate/historicalRecord', + 'apiReferral/kickback/historicalRecord', ], 'put': [ 'userDataStream', 'userDataStream/isolated', ], 'delete': [ + 'margin/openOrders', 'margin/order', 'userDataStream', 'userDataStream/isolated', @@ -8068,6 +9353,7 @@ module.exports = class binance extends Exchange { 'historicalTrades', 'aggTrades', 'klines', + 'continuousKlines', 'fundingRate', 'premiumIndex', 'ticker/24hr', @@ -8102,6 +9388,15 @@ module.exports = class binance extends Exchange { 'positionSide/dual', 'userTrades', 'income', + // broker endpoints + 'apiReferral/ifNewUser', + 'apiReferral/customization', + 'apiReferral/userCustomization', + 'apiReferral/traderNum', + 'apiReferral/overview', + 'apiReferral/tradeVol', + 'apiReferral/rebateVol', + 'apiReferral/traderSummary', ], 'post': [ 'batchOrders', @@ -8112,6 +9407,9 @@ module.exports = class binance extends Exchange { 'leverage', 'listenKey', 'countdownCancelAll', + // broker endpoints + 'apiReferral/customization', + 'apiReferral/userCustomization', ], 'put': [ 'listenKey', @@ -8191,6 +9489,7 @@ module.exports = class binance extends Exchange { }, // exchange-specific options 'options': { + 'fetchCurrencies': false, // this is a private call and it requires API keys // 'fetchTradesMethod': 'publicGetAggTrades', // publicGetTrades, publicGetHistoricalTrades 'defaultTimeInForce': 'GTC', // 'GTC' = Good To Cancel (default), 'IOC' = Immediate Or Cancel 'defaultType': 'spot', // 'spot', 'future', 'margin', 'delivery' @@ -8205,11 +9504,20 @@ module.exports = class binance extends Exchange { 'limit': 'RESULT', // we change it from 'ACK' by default to 'RESULT' }, 'quoteOrderQty': true, // whether market orders support amounts in quote currency + 'broker': { + 'spot': 'x-R4BD3S82', + 'margin': 'x-R4BD3S82', + 'future': 'x-xcKtGhcu', + 'delivery': 'x-xcKtGhcu', + }, }, // https://binance-docs.github.io/apidocs/spot/en/#error-codes-2 'exceptions': { + 'System abnormality': ExchangeError, // {"code":-1000,"msg":"System abnormality"} + 'You are not authorized to execute this request.': PermissionDenied, // {"msg":"You are not authorized to execute this request."} 'API key does not exist': AuthenticationError, 'Order would trigger immediately.': OrderImmediatelyFillable, + 'Stop price would trigger immediately.': OrderImmediatelyFillable, // {"code":-2010,"msg":"Stop price would trigger immediately."} 'Order would immediately match and take.': OrderImmediatelyFillable, // {"code":-2010,"msg":"Order would immediately match and take."} 'Account has insufficient balance for requested action.': InsufficientFunds, 'Rest API trading is not enabled.': ExchangeNotAvailable, @@ -8253,14 +9561,21 @@ module.exports = class binance extends Exchange { '-2013': OrderNotFound, // fetchOrder (1, 'BTC/USDT') -> 'Order does not exist' '-2014': AuthenticationError, // { "code":-2014, "msg": "API-key format invalid." } '-2015': AuthenticationError, // "Invalid API-key, IP, or permissions for action." + '-2019': InsufficientFunds, // {"code":-2019,"msg":"Margin is insufficient."} '-3005': InsufficientFunds, // {"code":-3005,"msg":"Transferring out not allowed. Transfer out amount exceeds max amount."} '-3008': InsufficientFunds, // {"code":-3008,"msg":"Borrow not allowed. Your borrow amount has exceed maximum borrow amount."} '-3010': ExchangeError, // {"code":-3010,"msg":"Repay not allowed. Repay amount exceeds borrow amount."} '-3022': AccountSuspended, // You account's trading is banned. + '-4028': BadRequest, // {"code":-4028,"msg":"Leverage 100 is not valid"} + '-5013': InsufficientFunds, // Asset transfer failed: insufficient balance" }, }); } + currencyToPrecision (currency, fee) { + return this.numberToString (fee); + } + nonce () { return this.milliseconds () - this.options['timeDifference']; } @@ -8284,6 +9599,145 @@ module.exports = class binance extends Exchange { return this.options['timeDifference']; } + async fetchCurrencies (params = {}) { + const fetchCurrenciesEnabled = this.safeValue (this.options, 'fetchCurrencies'); + if (!fetchCurrenciesEnabled) { + return undefined; + } + // this endpoint requires authentication + // while fetchCurrencies is a public API method by design + // therefore we check the keys here + // and fallback to generating the currencies from the markets + if (!this.checkRequiredCredentials (false)) { + return undefined; + } + // sandbox/testnet does not support sapi endpoints + const apiBackup = this.safeString (this.urls, 'apiBackup'); + if (apiBackup !== undefined) { + return undefined; + } + const response = await this.sapiGetCapitalConfigGetall (params); + const result = {}; + for (let i = 0; i < response.length; i++) { + // + // { + // coin: 'LINK', + // depositAllEnable: true, + // withdrawAllEnable: true, + // name: 'ChainLink', + // free: '0.06168', + // locked: '0', + // freeze: '0', + // withdrawing: '0', + // ipoing: '0', + // ipoable: '0', + // storage: '0', + // isLegalMoney: false, + // trading: true, + // networkList: [ + // { + // network: 'BNB', + // coin: 'LINK', + // withdrawIntegerMultiple: '0', + // isDefault: false, + // depositEnable: true, + // withdrawEnable: true, + // depositDesc: '', + // withdrawDesc: '', + // specialTips: 'Both a MEMO and an Address are required to successfully deposit your LINK BEP2 tokens to Binance.', + // name: 'BEP2', + // resetAddressStatus: false, + // addressRegex: '^(bnb1)[0-9a-z]{38}$', + // memoRegex: '^[0-9A-Za-z\\-_]{1,120}$', + // withdrawFee: '0.002', + // withdrawMin: '0.01', + // withdrawMax: '9999999', + // minConfirm: 1, + // unLockConfirm: 0 + // }, + // { + // network: 'BSC', + // coin: 'LINK', + // withdrawIntegerMultiple: '0.00000001', + // isDefault: false, + // depositEnable: true, + // withdrawEnable: true, + // depositDesc: '', + // withdrawDesc: '', + // specialTips: '', + // name: 'BEP20 (BSC)', + // resetAddressStatus: false, + // addressRegex: '^(0x)[0-9A-Fa-f]{40}$', + // memoRegex: '', + // withdrawFee: '0.005', + // withdrawMin: '0.01', + // withdrawMax: '9999999', + // minConfirm: 15, + // unLockConfirm: 0 + // }, + // { + // network: 'ETH', + // coin: 'LINK', + // withdrawIntegerMultiple: '0.00000001', + // isDefault: true, + // depositEnable: true, + // withdrawEnable: true, + // depositDesc: '', + // withdrawDesc: '', + // name: 'ERC20', + // resetAddressStatus: false, + // addressRegex: '^(0x)[0-9A-Fa-f]{40}$', + // memoRegex: '', + // withdrawFee: '0.34', + // withdrawMin: '0.68', + // withdrawMax: '0', + // minConfirm: 12, + // unLockConfirm: 0 + // } + // ] + // } + // + const entry = response[i]; + const id = this.safeString (entry, 'coin'); + const name = this.safeString (entry, 'name'); + const code = this.safeCurrencyCode (id); + const precision = undefined; + let isWithdrawEnabled = true; + let isDepositEnabled = true; + const networkList = this.safeValue (entry, 'networkList', []); + const fees = {}; + let fee = undefined; + for (let j = 0; j < networkList.length; j++) { + const networkItem = networkList[j]; + const name = this.safeString (networkItem, 'name'); + const withdrawFee = this.safeFloat (networkItem, 'withdrawFee'); + const depositEnable = this.safeValue (networkItem, 'depositEnable'); + const withdrawEnable = this.safeValue (networkItem, 'withdrawEnable'); + isDepositEnabled = isDepositEnabled || depositEnable; + isWithdrawEnabled = isWithdrawEnabled || withdrawEnable; + fees[name] = withdrawFee; + const isDefault = this.safeValue (networkItem, 'isDefault'); + if (isDefault || fee === undefined) { + fee = withdrawFee; + } + } + const trading = this.safeValue (entry, 'trading'); + const active = (isWithdrawEnabled && isDepositEnabled && trading); + result[code] = { + 'id': id, + 'name': name, + 'code': code, + 'precision': precision, + 'info': entry, + 'active': active, + 'fee': fee, + 'fees': fees, + 'limits': this.limits, + }; + } + return result; + } + async fetchMarkets (params = {}) { const defaultType = this.safeString2 (this.options, 'fetchMarkets', 'defaultType', 'spot'); const type = this.safeString (params, 'type', defaultType); @@ -8460,9 +9914,8 @@ module.exports = class binance extends Exchange { const quoteId = this.safeString (market, 'quoteAsset'); const base = this.safeCurrencyCode (baseId); const quote = this.safeCurrencyCode (quoteId); - const parts = id.split ('_'); - const lastPart = this.safeString (parts, 1); - const idSymbol = (delivery) && (lastPart !== 'PERP'); + const contractType = this.safeString (market, 'contractType'); + const idSymbol = (future || delivery) && (contractType !== 'PERPETUAL'); const symbol = idSymbol ? id : (base + '/' + quote); const filters = this.safeValue (market, 'filters', []); const filtersByType = this.indexBy (filters, 'filterType'); @@ -8540,7 +9993,7 @@ module.exports = class binance extends Exchange { } if ('MIN_NOTIONAL' in filtersByType) { const filter = this.safeValue (filtersByType, 'MIN_NOTIONAL', {}); - entry['limits']['cost']['min'] = this.safeFloat (filter, 'minNotional'); + entry['limits']['cost']['min'] = this.safeFloat2 (filter, 'minNotional', 'notional'); } result.push (entry); } @@ -8942,15 +10395,24 @@ module.exports = class binance extends Exchange { async fetchOHLCV (symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); const market = this.market (symbol); + // binance docs say that the default limit 500, max 1500 for futures, max 1000 for spot markets + // the reality is that the time range wider than 500 candles won't work right + const defaultLimit = 500; + const maxLimit = 1500; + limit = (limit === undefined) ? defaultLimit : Math.min (limit, maxLimit); const request = { 'symbol': market['id'], 'interval': this.timeframes[timeframe], + 'limit': limit, }; + const duration = this.parseTimeframe (timeframe); if (since !== undefined) { request['startTime'] = since; - } - if (limit !== undefined) { - request['limit'] = limit; // default == max == 500 + if (since > 0) { + const endTime = this.sum (since, limit * duration * 1000 - 1); + const now = this.milliseconds (); + request['endTime'] = Math.min (now, endTime); + } } let method = 'publicGetKlines'; if (market['future']) { @@ -9038,6 +10500,23 @@ module.exports = class binance extends Exchange { // "symbol": "BTCUSDT", // "time": 1569514978020 // } + // { + // "symbol": "BTCUSDT", + // "id": 477128891, + // "orderId": 13809777875, + // "side": "SELL", + // "price": "38479.55", + // "qty": "0.001", + // "realizedPnl": "-0.00009534", + // "marginAsset": "USDT", + // "quoteQty": "38.47955", + // "commission": "-0.00076959", + // "commissionAsset": "USDT", + // "time": 1612733566708, + // "positionSide": "BOTH", + // "maker": true, + // "buyer": false + // } // const timestamp = this.safeInteger2 (trade, 'T', 'time'); const price = this.safeFloat2 (trade, 'p', 'price'); @@ -9067,6 +10546,9 @@ module.exports = class binance extends Exchange { if ('isMaker' in trade) { takerOrMaker = trade['isMaker'] ? 'maker' : 'taker'; } + if ('maker' in trade) { + takerOrMaker = trade['maker'] ? 'maker' : 'taker'; + } const marketId = this.safeString (trade, 'symbol'); const symbol = this.safeSymbol (marketId, market); let cost = undefined; @@ -9184,7 +10666,7 @@ module.exports = class binance extends Exchange { 'CANCELED': 'canceled', 'PENDING_CANCEL': 'canceling', // currently unused 'REJECTED': 'rejected', - 'EXPIRED': 'canceled', + 'EXPIRED': 'expired', }; return this.safeString (statuses, status, status); } @@ -9310,6 +10792,8 @@ module.exports = class binance extends Exchange { } const clientOrderId = this.safeString (order, 'clientOrderId'); const timeInForce = this.safeString (order, 'timeInForce'); + const postOnly = (type === 'limit_maker') || (timeInForce === 'GTX'); + const stopPrice = this.safeFloat (order, 'stopPrice'); return { 'info': order, 'id': id, @@ -9320,8 +10804,10 @@ module.exports = class binance extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, + 'stopPrice': stopPrice, 'amount': amount, 'cost': cost, 'average': average, @@ -9366,7 +10852,15 @@ module.exports = class binance extends Exchange { 'type': uppercaseType, 'side': side.toUpperCase (), }; - if (clientOrderId !== undefined) { + if (clientOrderId === undefined) { + const broker = this.safeValue (this.options, 'broker'); + if (broker) { + const brokerId = this.safeString (broker, orderType); + if (brokerId !== undefined) { + request['newClientOrderId'] = brokerId + this.uuid22 (); + } + } + } else { request['newClientOrderId'] = clientOrderId; } if (market['spot']) { @@ -9445,7 +10939,7 @@ module.exports = class binance extends Exchange { quantityIsRequired = true; const callbackRate = this.safeFloat (params, 'callbackRate'); if (callbackRate === undefined) { - throw new InvalidOrder (this.id + ' createOrder method requires a callbackRate extra param for a ' + type + ' order'); + throw new InvalidOrder (this.id + ' createOrder() requires a callbackRate extra param for a ' + type + ' order'); } } if (quantityIsRequired) { @@ -9453,7 +10947,7 @@ module.exports = class binance extends Exchange { } if (priceIsRequired) { if (price === undefined) { - throw new InvalidOrder (this.id + ' createOrder method requires a price argument for a ' + type + ' order'); + throw new InvalidOrder (this.id + ' createOrder() requires a price argument for a ' + type + ' order'); } request['price'] = this.priceToPrecision (symbol, price); } @@ -9463,7 +10957,7 @@ module.exports = class binance extends Exchange { if (stopPriceIsRequired) { const stopPrice = this.safeFloat (params, 'stopPrice'); if (stopPrice === undefined) { - throw new InvalidOrder (this.id + ' createOrder method requires a stopPrice extra param for a ' + type + ' order'); + throw new InvalidOrder (this.id + ' createOrder() requires a stopPrice extra param for a ' + type + ' order'); } else { params = this.omit (params, 'stopPrice'); request['stopPrice'] = this.priceToPrecision (symbol, stopPrice); @@ -9475,7 +10969,7 @@ module.exports = class binance extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -9496,7 +10990,7 @@ module.exports = class binance extends Exchange { if (clientOrderId !== undefined) { request['origClientOrderId'] = clientOrderId; } else { - request['orderId'] = parseInt (id); + request['orderId'] = id; } const query = this.omit (params, [ 'type', 'clientOrderId', 'origClientOrderId' ]); const response = await this[method] (this.extend (request, query)); @@ -9505,7 +10999,7 @@ module.exports = class binance extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -9618,7 +11112,7 @@ module.exports = class binance extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -9628,11 +11122,11 @@ module.exports = class binance extends Exchange { const origClientOrderId = this.safeValue2 (params, 'origClientOrderId', 'clientOrderId'); const request = { 'symbol': market['id'], - // 'orderId': parseInt (id), + // 'orderId': id, // 'origClientOrderId': id, }; if (origClientOrderId === undefined) { - request['orderId'] = parseInt (id); + request['orderId'] = id; } else { request['origClientOrderId'] = origClientOrderId; } @@ -9651,7 +11145,7 @@ module.exports = class binance extends Exchange { async cancelAllOrders (symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelAllOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelAllOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -9662,7 +11156,9 @@ module.exports = class binance extends Exchange { const type = this.safeString (params, 'type', defaultType); const query = this.omit (params, 'type'); let method = 'privateDeleteOpenOrders'; - if (type === 'future') { + if (type === 'margin') { + method = 'sapiDeleteMarginOpenOrders'; + } else if (type === 'future') { method = 'fapiPrivateDeleteAllOpenOrders'; } else if (type === 'delivery') { method = 'dapiPrivateDeleteAllOpenOrders'; @@ -9728,20 +11224,23 @@ module.exports = class binance extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); - const type = this.safeValue (params, 'type', market['type']); + const defaultType = this.safeString2 (this.options, 'fetchMyTrades', 'defaultType', market['type']); + const type = this.safeString (params, 'type', defaultType); + params = this.omit (params, 'type'); let method = undefined; if (type === 'spot') { method = 'privateGetMyTrades'; + } else if (type === 'margin') { + method = 'sapiGetMarginMyTrades'; } else if (type === 'future') { method = 'fapiPrivateGetUserTrades'; } else if (type === 'delivery') { method = 'dapiPrivateGetUserTrades'; } - params = this.omit (params, 'type'); const request = { 'symbol': market['id'], }; @@ -10025,7 +11524,10 @@ module.exports = class binance extends Exchange { tag = undefined; } } - const txid = this.safeString (transaction, 'txId'); + let txid = this.safeString (transaction, 'txId'); + if ((txid !== undefined) && (txid.indexOf ('Internal transfer ') >= 0)) { + txid = txid.slice (18); + } const currencyId = this.safeString (transaction, 'asset'); const code = this.safeCurrencyCode (currencyId, currency); let timestamp = undefined; @@ -10074,15 +11576,27 @@ module.exports = class binance extends Exchange { await this.loadMarkets (); const currency = this.currency (code); const request = { - 'asset': currency['id'], + 'coin': currency['id'], + // 'network': 'ETH', // 'BSC', 'XMR', you can get network and isDefault in networkList in the response of sapiGetCapitalConfigDetail }; - const response = await this.wapiGetDepositAddress (this.extend (request, params)); - const success = this.safeValue (response, 'success'); - if ((success === undefined) || !success) { - throw new InvalidAddress (this.id + ' fetchDepositAddress returned an empty response – create the deposit address in the user settings first.'); - } + // has support for the 'network' parameter + // https://binance-docs.github.io/apidocs/spot/en/#deposit-address-supporting-network-user_data + const response = await this.sapiGetCapitalDepositAddress (this.extend (request, params)); + // + // { + // currency: 'XRP', + // address: 'rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh', + // tag: '108618262', + // info: { + // coin: 'XRP', + // address: 'rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh', + // tag: '108618262', + // url: 'https://bithomp.com/explorer/rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh' + // } + // } + // const address = this.safeString (response, 'address'); - const tag = this.safeString (response, 'addressTag'); + const tag = this.safeString (response, 'tag'); this.checkAddress (address); return { 'currency': code, @@ -10260,7 +11774,7 @@ module.exports = class binance extends Exchange { 'timestamp': this.nonce (), 'recvWindow': recvWindow, }, params)); - } else if (path === 'batchOrders') { + } else if ((path === 'batchOrders') || (path.indexOf ('sub-account') >= 0)) { query = this.rawencode (this.extend ({ 'timestamp': this.nonce (), 'recvWindow': recvWindow, @@ -10371,7 +11885,7 @@ module.exports = class binance extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],24:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],24:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -10416,6 +11930,10 @@ module.exports = class binanceus extends binance { }, }); } + + async fetchCurrencies (params = {}) { + return undefined; + } }; @@ -10728,6 +12246,7 @@ module.exports = class bit2c extends Exchange { 'symbol': symbol, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -10879,7 +12398,7 @@ module.exports = class bit2c extends Exchange { }; -},{"./base/Exchange":5,"./base/errors":7}],26:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],26:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -10964,6 +12483,8 @@ module.exports = class bitbank extends Exchange { 'BCH/JPY': { 'id': 'bcc_jpy', 'symbol': 'BCH/JPY', 'base': 'BCH', 'quote': 'JPY', 'baseId': 'bcc', 'quoteId': 'jpy' }, 'MONA/BTC': { 'id': 'mona_btc', 'symbol': 'MONA/BTC', 'base': 'MONA', 'quote': 'BTC', 'baseId': 'mona', 'quoteId': 'btc' }, 'MONA/JPY': { 'id': 'mona_jpy', 'symbol': 'MONA/JPY', 'base': 'MONA', 'quote': 'JPY', 'baseId': 'mona', 'quoteId': 'jpy' }, + 'QTUM/BTC': { 'id': 'qtum_btc', 'symbol': 'QTUM/BTC', 'base': 'QTUM', 'quote': 'BTC', 'baseId': 'qtum', 'quoteId': 'btc' }, + 'QTUM/JPY': { 'id': 'qtum_jpy', 'symbol': 'QTUM/JPY', 'base': 'QTUM', 'quote': 'JPY', 'baseId': 'qtum', 'quoteId': 'jpy' }, 'ETH/BTC': { 'id': 'eth_btc', 'symbol': 'ETH/BTC', 'base': 'ETH', 'quote': 'BTC', 'baseId': 'eth', 'quoteId': 'btc' }, 'LTC/BTC': { 'id': 'ltc_btc', 'symbol': 'LTC/BTC', 'base': 'LTC', 'quote': 'BTC', 'baseId': 'ltc', 'quoteId': 'btc' }, 'XRP/JPY': { 'id': 'xrp_jpy', 'symbol': 'XRP/JPY', 'base': 'XRP', 'quote': 'JPY', 'baseId': 'xrp', 'quoteId': 'jpy' }, @@ -10972,6 +12493,7 @@ module.exports = class bitbank extends Exchange { 'ETH/JPY': { 'id': 'eth_jpy', 'symbol': 'ETH/JPY', 'base': 'ETH', 'quote': 'JPY', 'baseId': 'eth', 'quoteId': 'jpy' }, 'LTC/JPY': { 'id': 'ltc_jpy', 'symbol': 'LTC/JPY', 'base': 'LTC', 'quote': 'JPY', 'baseId': 'ltc', 'quoteId': 'jpy' }, 'XRP/BTC': { 'id': 'xrp_btc', 'symbol': 'XRP/BTC', 'base': 'XRP', 'quote': 'BTC', 'baseId': 'xrp', 'quoteId': 'btc' }, + 'XLM/BTC': { 'id': 'xlm_btc', 'symbol': 'XLM/BTC', 'base': 'XLM', 'quote': 'BTC', 'baseId': 'xlm', 'quoteId': 'btc' }, }, 'fees': { 'trading': { @@ -11089,8 +12611,8 @@ module.exports = class bitbank extends Exchange { const feeCost = this.safeFloat (trade, 'fee_amount_quote'); if (feeCost !== undefined) { fee = { - 'currency': market['quote'], - 'cost': feeCurrency, + 'currency': feeCurrency, + 'cost': feeCost, }; } const orderId = this.safeString (trade, 'order_id'); @@ -11249,6 +12771,7 @@ module.exports = class bitbank extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -11267,7 +12790,7 @@ module.exports = class bitbank extends Exchange { await this.loadMarkets (); const market = this.market (symbol); if (price === undefined) { - throw new InvalidOrder (this.id + ' createOrder requires a price argument for both market and limit orders'); + throw new InvalidOrder (this.id + ' createOrder() requires a price argument for both market and limit orders'); } const request = { 'pair': market['id'], @@ -11503,7 +13026,7 @@ module.exports = class bitbank extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],27:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],27:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -11857,6 +13380,7 @@ module.exports = class bitbay extends Exchange { filled = Math.max (0, amount - remaining); } } + const postOnly = this.safeValue (order, 'postOnly'); return { 'id': this.safeString (order, 'id'), 'clientOrderId': undefined, @@ -11868,6 +13392,7 @@ module.exports = class bitbay extends Exchange { 'symbol': symbol, 'type': this.safeString (order, 'mode'), 'timeInForce': undefined, + 'postOnly': postOnly, 'side': this.safeStringLower (order, 'offerType'), 'price': this.safeFloat (order, 'rate'), 'stopPrice': undefined, @@ -12777,7 +14302,7 @@ module.exports = class bitbay extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],28:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],28:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -12813,7 +14338,7 @@ module.exports = class bitcoincom extends hitbtc { } }; -},{"./hitbtc.js":89}],29:[function(require,module,exports){ +},{"./hitbtc.js":93}],29:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -12832,7 +14357,6 @@ module.exports = class bitfinex extends Exchange { 'countries': [ 'VG' ], 'version': 'v1', 'rateLimit': 1500, - 'certified': true, 'pro': true, // new metainfo interface 'has': { @@ -12870,6 +14394,7 @@ module.exports = class bitfinex extends Exchange { '30m': '30m', '1h': '1h', '3h': '3h', + '4h': '4h', '6h': '6h', '12h': '12h', '1d': '1D', @@ -13416,13 +14941,32 @@ module.exports = class bitfinex extends Exchange { async fetchBalance (params = {}) { await this.loadMarkets (); + const types = { + 'exchange': 'exchange', + 'deposit': 'funding', + 'trading': 'margin', + }; const balanceType = this.safeString (params, 'type', 'exchange'); const query = this.omit (params, 'type'); const response = await this.privatePostBalances (query); + // [ { type: 'deposit', + // currency: 'btc', + // amount: '0.00116721', + // available: '0.00116721' }, + // { type: 'exchange', + // currency: 'ust', + // amount: '0.0000002', + // available: '0.0000002' }, + // { type: 'trading', + // currency: 'btc', + // amount: '0.0005', + // available: '0.0005' } ], const result = { 'info': response }; for (let i = 0; i < response.length; i++) { const balance = response[i]; - if (balance['type'] === balanceType) { + const type = this.safeString (balance, 'type'); + const parsedType = this.safeString (types, type); + if ((parsedType === balanceType) || (type === balanceType)) { const currencyId = this.safeString (balance, 'currency'); const code = this.safeCurrencyCode (currencyId); // bitfinex had BCH previously, now it's BAB, but the old @@ -13585,7 +15129,7 @@ module.exports = class bitfinex extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a `symbol` argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a `symbol` argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -13703,6 +15247,7 @@ module.exports = class bitfinex extends Exchange { 'symbol': symbol, 'type': orderType, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': this.safeFloat (order, 'price'), 'stopPrice': undefined, @@ -14078,13 +15623,13 @@ module.exports = class bitfinex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],30:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],30:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const bitfinex = require ('./bitfinex.js'); -const { ExchangeError, InvalidAddress, ArgumentsRequired, InsufficientFunds, AuthenticationError, OrderNotFound, InvalidOrder, BadRequest, InvalidNonce, BadSymbol, OnMaintenance } = require ('./base/errors'); +const { ExchangeError, InvalidAddress, ArgumentsRequired, InsufficientFunds, AuthenticationError, OrderNotFound, InvalidOrder, BadRequest, InvalidNonce, BadSymbol, OnMaintenance, NotSupported } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -14134,6 +15679,7 @@ module.exports = class bitfinex2 extends bitfinex { '30m': '30m', '1h': '1h', '3h': '3h', + '4h': '4h', '6h': '6h', '12h': '12h', '1d': '1D', @@ -14252,7 +15798,9 @@ module.exports = class bitfinex2 extends bitfinex { 'auth/w/position/claim', 'auth/r/positions/hist', 'auth/r/positions/audit', + 'auth/r/positions/snap', 'auth/w/deriv/collateral/set', + 'auth/w/deriv/collateral/limits', 'auth/r/funding/offers', 'auth/r/funding/offers/{symbol}', 'auth/w/funding/offer/submit', @@ -14664,6 +16212,10 @@ module.exports = class bitfinex2 extends bitfinex { return this.parseBalance (result); } + async fetchOrder (id, symbol = undefined, params = {}) { + throw new NotSupported (this.id + ' fetchOrder is not implemented yet'); + } + async fetchOrderBook (symbol, limit = undefined, params = {}) { await this.loadMarkets (); const precision = this.safeValue (this.options, 'precision', 'R0'); @@ -15004,6 +16556,7 @@ module.exports = class bitfinex2 extends bitfinex { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -15022,16 +16575,43 @@ module.exports = class bitfinex2 extends bitfinex { await this.loadMarkets (); const market = this.market (symbol); const orderTypes = this.safeValue (this.options, 'orderTypes', {}); - const orderType = this.safeString (orderTypes, type, type); + const orderType = this.safeStringUpper (orderTypes, type, type); amount = (side === 'sell') ? -amount : amount; const request = { 'symbol': market['id'], 'type': orderType, 'amount': this.numberToString (amount), }; - if (type !== 'market') { + if ((orderType === 'LIMIT') || (orderType === 'EXCHANGE LIMIT')) { + request['price'] = this.numberToString (price); + } else if ((orderType === 'STOP') || (orderType === 'EXCHANGE STOP')) { + const stopPrice = this.safeFloat (params, 'stopPrice', price); + request['price'] = this.numberToString (stopPrice); + } else if ((orderType === 'STOP LIMIT') || (orderType === 'EXCHANGE STOP LIMIT')) { + const priceAuxLimit = this.safeFloat (params, 'price_aux_limit'); + let stopPrice = this.safeFloat (params, 'stopPrice'); + if (priceAuxLimit === undefined) { + if (stopPrice === undefined) { + throw new ArgumentsRequired (this.id + ' createOrder() requires a stopPrice parameter or a price_aux_limit parameter for a ' + orderType + ' order'); + } else { + request['price_aux_limit'] = this.numberToString (price); + } + } else { + request['price_aux_limit'] = this.numberToString (priceAuxLimit); + if (stopPrice === undefined) { + stopPrice = price; + } + } + request['price'] = this.numberToString (stopPrice); + } else if ((orderType === 'TRAILING STOP') || (orderType === 'EXCHANGE TRAILING STOP')) { + const priceTrailing = this.safeFloat (params, 'price_trailing'); + request['price_trailing'] = this.numberToString (priceTrailing); + const stopPrice = this.safeFloat (params, 'stopPrice', price); + request['price'] = this.numberToString (stopPrice); + } else if ((orderType === 'FOK') || (orderType === 'EXCHANGE FOK') || (orderType === 'IOC') || (orderType === 'EXCHANGE IOC')) { request['price'] = this.numberToString (price); } + params = this.omit (params, [ 'stopPrice', 'price_aux_limit', 'price_trailing' ]); const clientOrderId = this.safeValue2 (params, 'cid', 'clientOrderId'); if (clientOrderId !== undefined) { request['cid'] = clientOrderId; @@ -15617,7 +17197,7 @@ module.exports = class bitfinex2 extends bitfinex { } }; -},{"./base/errors":7,"./bitfinex.js":29}],31:[function(require,module,exports){ +},{"./base/errors":8,"./bitfinex.js":29}],31:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -15985,6 +17565,7 @@ module.exports = class bitflyer extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -16044,7 +17625,7 @@ module.exports = class bitflyer extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a `symbol` argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a `symbol` argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -16060,7 +17641,7 @@ module.exports = class bitflyer extends Exchange { async fetchPositions (symbols = undefined, since = undefined, limit = undefined, params = {}) { if (symbols === undefined) { - throw new ArgumentsRequired (this.id + ' fetchPositions requires a `symbols` argument, exactly one symbol in an array'); + throw new ArgumentsRequired (this.id + ' fetchPositions() requires a `symbols` argument, exactly one symbol in an array'); } await this.loadMarkets (); const request = { @@ -16142,13 +17723,13 @@ module.exports = class bitflyer extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],32:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],32:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { ExchangeError, AuthenticationError, OrderNotFound, InsufficientFunds, DDoSProtection, PermissionDenied } = require ('./base/errors'); +const { ExchangeError, AuthenticationError, OrderNotFound, InsufficientFunds, DDoSProtection, PermissionDenied, BadSymbol } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -16368,6 +17949,7 @@ module.exports = class bitforex extends Exchange { }, 'commonCurrencies': { 'CREDIT': 'TerraCredit', + 'HBC': 'Hybrid Bank Cash', 'IQ': 'IQ.Cash', 'UOS': 'UOS Network', }, @@ -16376,6 +17958,7 @@ module.exports = class bitforex extends Exchange { '1013': AuthenticationError, '1016': AuthenticationError, '1017': PermissionDenied, // {"code":"1017","success":false,"time":1602670594367,"message":"IP not allow"} + '1019': BadSymbol, // {"code":"1019","success":false,"time":1607087743778,"message":"Symbol Invalid"} '3002': InsufficientFunds, '10204': DDoSProtection, }, @@ -16644,6 +18227,7 @@ module.exports = class bitforex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -16772,7 +18356,7 @@ module.exports = class bitforex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],33:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],33:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -18479,7 +20063,7 @@ module.exports = class bitget extends Exchange { const type = this.safeString (params, 'type', defaultType); params = this.omit (params, 'type'); if (type === undefined) { - throw new ArgumentsRequired (this.id + " requires an 'accountId' parameter"); + throw new ArgumentsRequired (this.id + " getAccountId() requires an 'accountId' parameter"); } const account = await this.findAccountByType (type); return account['id']; @@ -18491,7 +20075,7 @@ module.exports = class bitget extends Exchange { const defaultType = this.safeString2 (this.options, 'fetchBalance', 'defaultType'); const type = this.safeString (params, 'type', defaultType); if (type === undefined) { - throw new ArgumentsRequired (this.id + " fetchBalance requires a 'type' parameter, one of 'spot', 'swap'"); + throw new ArgumentsRequired (this.id + " fetchBalance() requires a 'type' parameter, one of 'spot', 'swap'"); } let method = undefined; const query = this.omit (params, 'type'); @@ -18735,6 +20319,7 @@ module.exports = class bitget extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -18817,7 +20402,7 @@ module.exports = class bitget extends Exchange { request['client_oid'] = clientOrderId; const orderType = this.safeString (params, 'type'); if (orderType === undefined) { - throw new ArgumentsRequired (this.id + " createOrder requires a type parameter, '1' = open long, '2' = open short, '3' = close long, '4' = close short for " + market['type'] + ' orders'); + throw new ArgumentsRequired (this.id + " createOrder() requires a type parameter, '1' = open long, '2' = open short, '3' = close long, '4' = close short for " + market['type'] + ' orders'); } request['size'] = this.amountToPrecision (symbol, amount); request['type'] = orderType; @@ -18859,7 +20444,7 @@ module.exports = class bitget extends Exchange { const type = this.safeString (params, 'type', defaultType); if (type === 'spot') { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument for spot orders'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument for spot orders'); } } } else { @@ -18900,14 +20485,15 @@ module.exports = class bitget extends Exchange { async cancelOrders (ids, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); const type = this.safeString (params, 'type', market['type']); if (type === undefined) { - throw new ArgumentsRequired (this.id + " cancelOrders requires a type parameter (one of 'spot', 'swap')."); + throw new ArgumentsRequired (this.id + " cancelOrders() requires a type parameter (one of 'spot', 'swap')."); } + params = this.omit (params, 'type'); const request = {}; let method = undefined; if (type === 'spot') { @@ -18964,13 +20550,13 @@ module.exports = class bitget extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); const type = this.safeString (params, 'type', market['type']); if (type === undefined) { - throw new ArgumentsRequired (this.id + " fetchOrder requires a type parameter (one of 'spot', 'swap')."); + throw new ArgumentsRequired (this.id + " fetchOrder() requires a type parameter (one of 'spot', 'swap')."); } let method = undefined; const request = {}; @@ -19041,7 +20627,7 @@ module.exports = class bitget extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -19126,7 +20712,7 @@ module.exports = class bitget extends Exchange { async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchClosedOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchClosedOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -19218,7 +20804,7 @@ module.exports = class bitget extends Exchange { async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchDeposits requires a currency code argument'); + throw new ArgumentsRequired (this.id + ' fetchDeposits() requires a currency code argument'); } await this.loadMarkets (); const currency = this.currency (code); @@ -19255,7 +20841,7 @@ module.exports = class bitget extends Exchange { async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchWithdrawals requires a currency code argument'); + throw new ArgumentsRequired (this.id + ' fetchWithdrawals() requires a currency code argument'); } await this.loadMarkets (); const currency = this.currency (code); @@ -19378,14 +20964,14 @@ module.exports = class bitget extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); const type = this.safeString (params, 'type', market['type']); const query = this.omit (params, 'type'); if (type === 'swap') { - throw new ArgumentsRequired (this.id + ' fetchMyTrades is not supported for ' + type + ' type'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() is not supported for ' + type + ' type'); } // // spot @@ -19442,12 +21028,12 @@ module.exports = class bitget extends Exchange { async fetchOrderTrades (id, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrderTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrderTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); const type = this.safeString (params, 'type', market['type']); - const query = this.omit (params, 'type'); + params = this.omit (params, 'type'); let method = undefined; const request = {}; if (type === 'spot') { @@ -19459,7 +21045,7 @@ module.exports = class bitget extends Exchange { request['symbol'] = market['id']; method = 'swapGetOrderFills'; } - const response = await this[method] (this.extend (request, query)); + const response = await this[method] (this.extend (request, params)); // // spot // @@ -19678,7 +21264,7 @@ module.exports = class bitget extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],34:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],34:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -19703,6 +21289,7 @@ module.exports = class bithumb extends Exchange { 'createOrder': true, 'fetchBalance': true, 'fetchMarkets': true, + 'fetchOHLCV': true, 'fetchOpenOrders': true, 'fetchOrder': true, 'fetchOrderBook': true, @@ -19726,10 +21313,13 @@ module.exports = class bithumb extends Exchange { 'get': [ 'ticker/{currency}', 'ticker/all', + 'ticker/ALL_BTC', + 'ticker/ALL_KRW', 'orderbook/{currency}', 'orderbook/all', 'transaction_history/{currency}', 'transaction_history/all', + 'candlestick/{currency}/{interval}', ], }, 'private': { @@ -19773,6 +21363,27 @@ module.exports = class bithumb extends Exchange { 'Unknown Error': ExchangeError, 'After May 23th, recent_transactions is no longer, hence users will not be able to connect to recent_transactions': ExchangeError, // {"status":"5100","message":"After May 23th, recent_transactions is no longer, hence users will not be able to connect to recent_transactions"} }, + 'timeframes': { + '1m': '1m', + '3m': '3m', + '5m': '5m', + '10m': '10m', + '30m': '30m', + '1h': '1h', + '6h': '6h', + '12h': '12h', + '1d': '24h', + }, + 'options': { + 'quoteCurrencies': { + 'BTC': { + 'precision': { + 'price': 8, + }, + }, + 'KRW': {}, + }, + }, }); } @@ -19781,54 +21392,61 @@ module.exports = class bithumb extends Exchange { } async fetchMarkets (params = {}) { - const response = await this.publicGetTickerAll (params); - const data = this.safeValue (response, 'data'); - const currencyIds = Object.keys (data); const result = []; - const quote = this.safeCurrencyCode ('KRW'); - for (let i = 0; i < currencyIds.length; i++) { - const currencyId = currencyIds[i]; - if (currencyId === 'date') { - continue; - } - const market = data[currencyId]; - const base = this.safeCurrencyCode (currencyId); - const symbol = currencyId + '/' + quote; - let active = true; - if (Array.isArray (market)) { - const numElements = market.length; - if (numElements === 0) { - active = false; + const quoteCurrencies = this.safeValue (this.options, 'quoteCurrencies', {}); + const quotes = Object.keys (quoteCurrencies); + for (let i = 0; i < quotes.length; i++) { + const quote = quotes[i]; + const extension = this.safeValue (quoteCurrencies, quote, {}); + const method = 'publicGetTickerALL' + quote; + const response = await this[method] (params); + const data = this.safeValue (response, 'data'); + const currencyIds = Object.keys (data); + for (let j = 0; j < currencyIds.length; j++) { + const currencyId = currencyIds[j]; + if (currencyId === 'date') { + continue; } + const market = data[currencyId]; + const base = this.safeCurrencyCode (currencyId); + const symbol = currencyId + '/' + quote; + let active = true; + if (Array.isArray (market)) { + const numElements = market.length; + if (numElements === 0) { + active = false; + } + } + const entry = this.deepExtend ({ + 'id': currencyId, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'info': market, + 'active': active, + 'precision': { + 'amount': 4, + 'price': 4, + }, + 'limits': { + 'amount': { + 'min': undefined, + 'max': undefined, + }, + 'price': { + 'min': undefined, + 'max': undefined, + }, + 'cost': { + 'min': 500, + 'max': 5000000000, + }, + }, + 'baseId': undefined, + 'quoteId': undefined, + }, extension); + result.push (entry); } - result.push ({ - 'id': currencyId, - 'symbol': symbol, - 'base': base, - 'quote': quote, - 'info': market, - 'active': active, - 'precision': { - 'amount': 4, - 'price': 4, - }, - 'limits': { - 'amount': { - 'min': undefined, - 'max': undefined, - }, - 'price': { - 'min': undefined, - 'max': undefined, - }, - 'cost': { - 'min': 500, - 'max': 5000000000, - }, - }, - 'baseId': undefined, - 'quoteId': undefined, - }); } return result; } @@ -20030,6 +21648,62 @@ module.exports = class bithumb extends Exchange { return this.parseTicker (data, market); } + parseOHLCV (ohlcv, market = undefined) { + // + // [ + // 1576823400000, // 기준 시간 + // '8284000', // 시가 + // '8286000', // 종가 + // '8289000', // 고가 + // '8276000', // 저가 + // '15.41503692' // 거래량 + // ] + // + return [ + this.safeInteger (ohlcv, 0), + this.safeFloat (ohlcv, 1), + this.safeFloat (ohlcv, 3), + this.safeFloat (ohlcv, 4), + this.safeFloat (ohlcv, 2), + this.safeFloat (ohlcv, 5), + ]; + } + + async fetchOHLCV (symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'currency': market['base'], + 'interval': this.timeframes[timeframe], + }; + const response = await this.publicGetCandlestickCurrencyInterval (this.extend (request, params)); + // + // { + // 'status': '0000', + // 'data': { + // [ + // 1576823400000, // 기준 시간 + // '8284000', // 시가 + // '8286000', // 종가 + // '8289000', // 고가 + // '8276000', // 저가 + // '15.41503692' // 거래량 + // ], + // [ + // 1576824000000, // 기준 시간 + // '8284000', // 시가 + // '8281000', // 종가 + // '8289000', // 고가 + // '8275000', // 저가 + // '6.19584467' // 거래량 + // ], + // } + // } + // + const data = this.safeValue (response, 'data', []); + return this.parseOHLCVs (data, market, timeframe, since, limit); + } + parseTrade (trade, market = undefined) { // // fetchTrades (public) @@ -20151,7 +21825,7 @@ module.exports = class bithumb extends Exchange { const market = this.market (symbol); const request = { 'order_currency': market['id'], - 'Payment_currency': market['quote'], + 'payment_currency': market['quote'], 'units': amount, }; let method = 'privatePostTradePlace'; @@ -20164,7 +21838,7 @@ module.exports = class bithumb extends Exchange { const response = await this[method] (this.extend (request, params)); const id = this.safeString (response, 'order_id'); if (id === undefined) { - throw new InvalidOrder (this.id + ' createOrder did not return an order id'); + throw new InvalidOrder (this.id + ' createOrder() did not return an order id'); } return { 'info': response, @@ -20177,7 +21851,7 @@ module.exports = class bithumb extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -20389,6 +22063,7 @@ module.exports = class bithumb extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -20411,7 +22086,7 @@ module.exports = class bithumb extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -20451,10 +22126,10 @@ module.exports = class bithumb extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { const side_in_params = ('side' in params); if (!side_in_params) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a `symbol` argument and a `side` parameter (sell or buy)'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a `symbol` argument and a `side` parameter (sell or buy)'); } if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a `symbol` argument and a `side` parameter (sell or buy)'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a `symbol` argument and a `side` parameter (sell or buy)'); } const market = this.market (symbol); const side = (params['side'] === 'buy') ? 'bid' : 'ask'; @@ -20485,7 +22160,7 @@ module.exports = class bithumb extends Exchange { 'address': address, 'currency': currency['id'], }; - if (currency === 'XRP' || currency === 'XMR') { + if (currency === 'XRP' || currency === 'XMR' || currency === 'EOS' || currency === 'STEEM') { const destination = this.safeString (params, 'destination'); if ((tag === undefined) && (destination === undefined)) { throw new ArgumentsRequired (this.id + ' ' + code + ' withdraw() requires a tag argument or an extra destination param'); @@ -20566,7 +22241,7 @@ module.exports = class bithumb extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],35:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],35:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -20590,11 +22265,14 @@ module.exports = class bitkk extends zb { 'doc': 'https://www.bitkk.com/i/developer', 'fees': 'https://www.bitkk.com/i/rate', }, + 'commonCurrencies': { + 'BCH': 'BCHOLD', + }, }); } }; -},{"./zb.js":179}],36:[function(require,module,exports){ +},{"./zb.js":182}],36:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -20645,7 +22323,7 @@ module.exports = class bitmart extends Exchange { 'logo': 'https://user-images.githubusercontent.com/1294454/61835713-a2662f80-ae85-11e9-9d00-6442919701fd.jpg', 'api': 'https://api-cloud.{hostname}', // bitmart.info for Hong Kong users 'www': 'https://www.bitmart.com/', - 'doc': 'https://github.com/bitmartexchange/bitmart-official-api-docs', + 'doc': 'https://developer-pro.bitmart.com/', 'referral': 'http://www.bitmart.com/?r=rQCFLh', 'fees': 'https://www.bitmart.com/fee/en', }, @@ -20758,8 +22436,8 @@ module.exports = class bitmart extends Exchange { 'trading': { 'tierBased': true, 'percentage': true, - 'taker': 0.002, - 'maker': 0.001, + 'taker': 0.0025, + 'maker': 0.0025, 'tiers': { 'taker': [ [0, 0.20 / 100], @@ -20893,6 +22571,8 @@ module.exports = class bitmart extends Exchange { 'broad': {}, }, 'commonCurrencies': { + 'COT': 'Community Coin', + 'CPC': 'CPCoin', 'ONE': 'Menlo One', 'PLA': 'Plair', }, @@ -21838,7 +23518,7 @@ module.exports = class bitmart extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -21846,7 +23526,7 @@ module.exports = class bitmart extends Exchange { const request = {}; if (market['spot']) { request['symbol'] = market['id']; - request['offset'] = 1; + request['offset'] = 1; // max offset * limit < 500 if (limit === undefined) { limit = 100; // max 100 } @@ -21919,7 +23599,7 @@ module.exports = class bitmart extends Exchange { async fetchOrderTrades (id, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrderTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrderTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -22197,6 +23877,7 @@ module.exports = class bitmart extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -22302,7 +23983,7 @@ module.exports = class bitmart extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -22330,6 +24011,15 @@ module.exports = class bitmart extends Exchange { // } // } // + // spot alternative + // + // { + // "code": 1000, + // "trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1", + // "message": "OK", + // "data": true + // } + // // contract // // { @@ -22345,16 +24035,19 @@ module.exports = class bitmart extends Exchange { // } // const data = this.safeValue (response, 'data'); + if (data === true) { + return this.parseOrder (id, market); + } const succeeded = this.safeValue (data, 'succeed'); if (succeeded !== undefined) { id = this.safeString (succeeded, 0); if (id === undefined) { - throw new InvalidOrder (this.id + ' cancelOrder failed to cancel ' + symbol + ' order id ' + id); + throw new InvalidOrder (this.id + ' cancelOrder() failed to cancel ' + symbol + ' order id ' + id); } } else { const result = this.safeValue (data, 'result'); if (!result) { - throw new InvalidOrder (this.id + ' cancelOrder ' + symbol + ' order id ' + id + ' is filled or canceled'); + throw new InvalidOrder (this.id + ' cancelOrder() ' + symbol + ' order id ' + id + ' is filled or canceled'); } } const order = this.parseOrder (id, market); @@ -22363,16 +24056,16 @@ module.exports = class bitmart extends Exchange { async cancelAllOrders (symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelAllOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelAllOrders() requires a symbol argument'); } const side = this.safeString (params, 'side'); if (side === undefined) { - throw new ArgumentsRequired (this.id + " cancelAllOrders requires a `side` parameter ('buy' or 'sell')"); + throw new ArgumentsRequired (this.id + " cancelAllOrders() requires a `side` parameter ('buy' or 'sell')"); } await this.loadMarkets (); const market = this.market (symbol); if (!market['spot']) { - throw new NotSupported (this.id + ' cancelAllOrders does not support ' + market['type'] + ' orders, only spot orders are accepted'); + throw new NotSupported (this.id + ' cancelAllOrders() does not support ' + market['type'] + ' orders, only spot orders are accepted'); } const request = { 'symbol': market['id'], @@ -22392,12 +24085,12 @@ module.exports = class bitmart extends Exchange { async cancelOrders (ids, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' canelOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' canelOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); if (!market['spot']) { - throw new NotSupported (this.id + ' cancelOrders does not support ' + market['type'] + ' orders, only contract orders are accepted'); + throw new NotSupported (this.id + ' cancelOrders() does not support ' + market['type'] + ' orders, only contract orders are accepted'); } const orders = []; for (let i = 0; i < ids.length; i++) { @@ -22438,7 +24131,7 @@ module.exports = class bitmart extends Exchange { async fetchOrdersByStatus (status, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrdersByStatus requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrdersByStatus() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -22560,7 +24253,7 @@ module.exports = class bitmart extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -22572,7 +24265,7 @@ module.exports = class bitmart extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const request = {}; @@ -22650,7 +24343,7 @@ module.exports = class bitmart extends Exchange { const orders = this.safeValue (data, 'orders', []); const firstOrder = this.safeValue (orders, 0); if (firstOrder === undefined) { - throw new OrderNotFound (this.id + ' fetchOrder could not find ' + symbol + ' order id ' + id); + throw new OrderNotFound (this.id + ' fetchOrder() could not find ' + symbol + ' order id ' + id); } return this.parseOrder (firstOrder, market); } else { @@ -22944,7 +24637,7 @@ module.exports = class bitmart extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],37:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],37:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -23080,8 +24773,8 @@ module.exports = class bitmax extends Exchange { 'trading': { 'tierBased': true, 'percentage': true, - 'taker': 0.001, - 'maker': 0.001, + 'taker': 0.002, + 'maker': 0.002, }, }, 'precisionMode': TICK_SIZE, @@ -23986,6 +25679,7 @@ module.exports = class bitmax extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -24036,7 +25730,7 @@ module.exports = class bitmax extends Exchange { if ((type === 'stop_limit') || (type === 'stop_market')) { const stopPrice = this.safeFloat (params, 'stopPrice'); if (stopPrice === undefined) { - throw new InvalidOrder (this.id + ' createOrder requires a stopPrice parameter for ' + type + ' orders'); + throw new InvalidOrder (this.id + ' createOrder() requires a stopPrice parameter for ' + type + ' orders'); } else { request['stopPrice'] = this.priceToPrecision (symbol, stopPrice); params = this.omit (params, 'stopPrice'); @@ -24291,7 +25985,7 @@ module.exports = class bitmax extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); await this.loadAccounts (); @@ -24671,14 +26365,14 @@ module.exports = class bitmax extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],38:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],38:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); const { TICK_SIZE } = require ('./base/functions/number'); -const { AuthenticationError, BadRequest, DDoSProtection, ExchangeError, ExchangeNotAvailable, InsufficientFunds, InvalidOrder, OrderNotFound, PermissionDenied } = require ('./base/errors'); +const { AuthenticationError, BadRequest, DDoSProtection, ExchangeError, ExchangeNotAvailable, InsufficientFunds, InvalidOrder, OrderNotFound, PermissionDenied, ArgumentsRequired } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -24841,6 +26535,7 @@ module.exports = class bitmex extends Exchange { 'Account has insufficient Available Balance': InsufficientFunds, 'Service unavailable': ExchangeNotAvailable, // {"error":{"message":"Service unavailable","name":"HTTPError"}} 'Server Error': ExchangeError, // {"error":{"message":"Server Error","name":"HTTPError"}} + 'Unable to cancel order due to existing state': InvalidOrder, }, }, 'precisionMode': TICK_SIZE, @@ -25893,6 +27588,43 @@ module.exports = class bitmex extends Exchange { } parseOrder (order, market = undefined) { + // + // { + // "orderID":"56222c7a-9956-413a-82cf-99f4812c214b", + // "clOrdID":"", + // "clOrdLinkID":"", + // "account":1455728, + // "symbol":"XBTUSD", + // "side":"Sell", + // "simpleOrderQty":null, + // "orderQty":1, + // "price":40000, + // "displayQty":null, + // "stopPx":null, + // "pegOffsetValue":null, + // "pegPriceType":"", + // "currency":"USD", + // "settlCurrency":"XBt", + // "ordType":"Limit", + // "timeInForce":"GoodTillCancel", + // "execInst":"", + // "contingencyType":"", + // "exDestination":"XBME", + // "ordStatus":"New", + // "triggered":"", + // "workingIndicator":true, + // "ordRejReason":"", + // "simpleLeavesQty":null, + // "leavesQty":1, + // "simpleCumQty":null, + // "cumQty":0, + // "avgPx":null, + // "multiLegReportingType":"SingleSecurity", + // "text":"Submitted via API.", + // "transactTime":"2021-01-02T21:38:49.246Z", + // "timestamp":"2021-01-02T21:38:49.246Z" + // } + // const status = this.parseOrderStatus (this.safeString (order, 'ordStatus')); const marketId = this.safeString (order, 'symbol'); const symbol = this.safeSymbol (marketId, market); @@ -25922,6 +27654,8 @@ module.exports = class bitmex extends Exchange { const clientOrderId = this.safeString (order, 'clOrdID'); const timeInForce = this.parseTimeInForce (this.safeString (order, 'timeInForce')); const stopPrice = this.safeFloat (order, 'stopPx'); + const execInst = this.safeString (order, 'execInst'); + const postOnly = (execInst === 'ParticipateDoNotInitiate'); return { 'info': order, 'id': id, @@ -25932,6 +27666,7 @@ module.exports = class bitmex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -26000,18 +27735,21 @@ module.exports = class bitmex extends Exchange { const request = { 'symbol': market['id'], 'side': this.capitalize (side), - 'orderQty': amount, + 'orderQty': parseFloat (this.amountToPrecision (symbol, amount)), 'ordType': orderType, }; - if (price !== undefined) { - if (orderType === 'Stop') { - const stopPrice = this.safeFloat2 (params, 'stopPx', 'stopPrice'); - request['stopPx'] = stopPrice; - params = this.omit (params, [ 'stopPx', 'stopPrice' ]); + if ((orderType === 'Stop') || (orderType === 'StopLimit') || (orderType === 'MarketIfTouched') || (orderType === 'LimitIfTouched')) { + const stopPrice = this.safeFloat2 (params, 'stopPx', 'stopPrice'); + if (stopPrice === undefined) { + throw new ArgumentsRequired (this.id + ' createOrder() requires a stopPx or stopPrice parameter for the ' + orderType + ' order type'); } else { - request['price'] = price; + request['stopPx'] = parseFloat (this.priceToPrecision (symbol, stopPrice)); + params = this.omit (params, [ 'stopPx', 'stopPrice' ]); } } + if ((orderType === 'Limit') || (orderType === 'StopLimit') || (orderType === 'LimitIfTouched')) { + request['price'] = parseFloat (this.priceToPrecision (symbol, price)); + } const clientOrderId = this.safeString2 (params, 'clOrdID', 'clientOrderId'); if (clientOrderId !== undefined) { request['clOrdID'] = clientOrderId; @@ -26313,7 +28051,7 @@ module.exports = class bitmex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],39:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],39:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -27106,7 +28844,10 @@ module.exports = class bitpanda extends Exchange { // const feeInfo = this.safeValue (trade, 'fee', {}); trade = this.safeValue (trade, 'trade', trade); - const timestamp = this.parse8601 (this.safeString (trade, 'time')); + let timestamp = this.safeInteger (trade, 'trade_timestamp'); + if (timestamp === undefined) { + timestamp = this.parse8601 (this.safeString (trade, 'time')); + } const side = this.safeStringLower2 (trade, 'side', 'taker_side'); const price = this.safeFloat (trade, 'price'); const amount = this.safeFloat (trade, 'amount'); @@ -27281,7 +29022,7 @@ module.exports = class bitpanda extends Exchange { if (since !== undefined) { const to = this.safeString (params, 'to'); if (to === undefined) { - throw new ArgumentsRequired (this.id + ' fetchDeposits requires a "to" iso8601 string param with the since argument is specified'); + throw new ArgumentsRequired (this.id + ' fetchDeposits() requires a "to" iso8601 string param with the since argument is specified'); } request['from'] = this.iso8601 (since); } @@ -27336,7 +29077,7 @@ module.exports = class bitpanda extends Exchange { if (since !== undefined) { const to = this.safeString (params, 'to'); if (to === undefined) { - throw new ArgumentsRequired (this.id + ' fetchWithdrawals requires a "to" iso8601 string param with the since argument is specified'); + throw new ArgumentsRequired (this.id + ' fetchWithdrawals() requires a "to" iso8601 string param with the since argument is specified'); } request['from'] = this.iso8601 (since); } @@ -27641,6 +29382,7 @@ module.exports = class bitpanda extends Exchange { } const timeInForce = this.parseTimeInForce (this.safeString (order, 'time_in_force')); const stopPrice = this.safeFloat (order, 'trigger_price'); + const postOnly = this.safeValue (order, 'is_post_only'); const result = { 'id': id, 'clientOrderId': clientOrderId, @@ -27651,6 +29393,7 @@ module.exports = class bitpanda extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -27725,7 +29468,7 @@ module.exports = class bitpanda extends Exchange { if (uppercaseType === 'STOP') { const triggerPrice = this.safeFloat (params, 'trigger_price'); if (triggerPrice === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires a trigger_price param for ' + type + ' orders'); + throw new ArgumentsRequired (this.id + ' createOrder() requires a trigger_price param for ' + type + ' orders'); } request['trigger_price'] = this.priceToPrecision (symbol, triggerPrice); params = this.omit (params, 'trigger_price'); @@ -27876,7 +29619,7 @@ module.exports = class bitpanda extends Exchange { if (since !== undefined) { const to = this.safeString (params, 'to'); if (to === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a "to" iso8601 string param with the since argument is specified, max range is 100 days'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a "to" iso8601 string param with the since argument is specified, max range is 100 days'); } request['from'] = this.iso8601 (since); } @@ -28040,7 +29783,7 @@ module.exports = class bitpanda extends Exchange { if (since !== undefined) { const to = this.safeString (params, 'to'); if (to === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a "to" iso8601 string param with the since argument is specified, max range is 100 days'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a "to" iso8601 string param with the since argument is specified, max range is 100 days'); } request['from'] = this.iso8601 (since); } @@ -28126,14 +29869,14 @@ module.exports = class bitpanda extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],40:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],40:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); const { ExchangeError, InvalidNonce, AuthenticationError, OrderNotFound } = require ('./base/errors'); -const { TICK_SIZE } = require ('./base/functions/number'); +const { TICK_SIZE, ROUND } = require ('./base/functions/number'); // --------------------------------------------------------------------------- @@ -28310,23 +30053,25 @@ module.exports = class bitso extends Exchange { const taker = this.safeFloat (flatRate, 'taker'); const feeTiers = this.safeValue (fees, 'structure', []); const fee = { - 'maker': maker, - 'taker': taker, + 'taker': parseFloat (this.decimalToPrecision (taker / 100, ROUND, 0.00000001, TICK_SIZE)), + 'maker': parseFloat (this.decimalToPrecision (maker / 100, ROUND, 0.00000001, TICK_SIZE)), 'percentage': true, 'tierBased': true, }; const takerFees = []; const makerFees = []; - for (let i = 0; i < feeTiers.length; i++) { - const tier = feeTiers[i]; + for (let j = 0; j < feeTiers.length; j++) { + const tier = feeTiers[j]; const volume = this.safeFloat (tier, 'volume'); const takerFee = this.safeFloat (tier, 'taker'); const makerFee = this.safeFloat (tier, 'maker'); - takerFees.push ([ volume, takerFee ]); - makerFees.push ([ volume, makerFee ]); - if (i === 0) { - fee['taker'] = taker; - fee['maker'] = maker; + const takerFeeToPrecision = parseFloat (this.decimalToPrecision (takerFee / 100, ROUND, 0.00000001, TICK_SIZE)); + const makerFeeToPrecision = parseFloat (this.decimalToPrecision (makerFee / 100, ROUND, 0.00000001, TICK_SIZE)); + takerFees.push ([ volume, takerFeeToPrecision ]); + makerFees.push ([ volume, makerFeeToPrecision ]); + if (j === 0) { + fee['taker'] = parseFloat (this.decimalToPrecision (taker / 100, ROUND, 0.00000001, TICK_SIZE)); + fee['maker'] = parseFloat (this.decimalToPrecision (maker / 100, ROUND, 0.00000001, TICK_SIZE)); } } const tiers = { @@ -28563,6 +30308,7 @@ module.exports = class bitso extends Exchange { 'symbol': symbol, 'type': orderType, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -28750,13 +30496,13 @@ module.exports = class bitso extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],41:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],41:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { AuthenticationError, ExchangeError, NotSupported, PermissionDenied, InvalidNonce, OrderNotFound, InsufficientFunds, InvalidAddress, InvalidOrder, ArgumentsRequired, OnMaintenance } = require ('./base/errors'); +const { AuthenticationError, ExchangeError, NotSupported, PermissionDenied, InvalidNonce, OrderNotFound, InsufficientFunds, InvalidAddress, InvalidOrder, ArgumentsRequired, OnMaintenance, ExchangeNotAvailable } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -28976,6 +30722,7 @@ module.exports = class bitstamp extends Exchange { 'Order not found': OrderNotFound, 'Price is more than 20% below market price.': InvalidOrder, 'Bitstamp.net is under scheduled maintenance.': OnMaintenance, // { "error": "Bitstamp.net is under scheduled maintenance. We'll be back soon." } + 'Order could not be placed.': ExchangeNotAvailable, // Order could not be placed (perhaps due to internal error or trade halt). Please retry placing order. }, 'broad': { 'Minimum order size is': InvalidOrder, // Minimum order size is 5.0 EUR. @@ -29458,7 +31205,7 @@ module.exports = class bitstamp extends Exchange { const duration = this.parseTimeframe (timeframe); if (limit === undefined) { if (since === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a since argument or a limit argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a since argument or a limit argument'); } else { limit = 1000; const start = parseInt (since / 1000); @@ -29524,8 +31271,8 @@ module.exports = class bitstamp extends Exchange { return { 'info': balance, 'symbol': symbol, - 'maker': balance.fee, - 'taker': balance.fee, + 'maker': balance['fee'], + 'taker': balance['fee'], }; } @@ -30015,6 +31762,7 @@ module.exports = class bitstamp extends Exchange { 'symbol': symbol, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -30357,7 +32105,7 @@ module.exports = class bitstamp extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],42:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],42:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -30658,13 +32406,13 @@ module.exports = class bitstamp1 extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],43:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],43:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { BadSymbol, ExchangeError, ExchangeNotAvailable, AuthenticationError, InvalidOrder, InsufficientFunds, OrderNotFound, DDoSProtection, PermissionDenied, AddressPending, OnMaintenance, BadRequest } = require ('./base/errors'); +const { BadSymbol, ExchangeError, ExchangeNotAvailable, AuthenticationError, InvalidOrder, InsufficientFunds, OrderNotFound, DDoSProtection, PermissionDenied, AddressPending, OnMaintenance, BadRequest, InvalidAddress } = require ('./base/errors'); const { TRUNCATE, DECIMAL_PLACES } = require ('./base/functions/number'); // --------------------------------------------------------------------------- @@ -30684,6 +32432,7 @@ module.exports = class bittrex extends Exchange { 'CORS': false, 'cancelAllOrders': true, 'cancelOrder': true, + 'createDepositAddress': true, 'createMarketOrder': true, 'createOrder': true, 'fetchBalance': true, @@ -30798,10 +32547,10 @@ module.exports = class bittrex extends Exchange { }, 'fees': { 'trading': { - 'tierBased': false, + 'tierBased': true, 'percentage': true, - 'maker': 0.0025, - 'taker': 0.0025, + 'maker': 0.0035, + 'taker': 0.0035, }, 'funding': { 'tierBased': false, @@ -31419,7 +33168,22 @@ module.exports = class bittrex extends Exchange { const isCeilingMarket = (uppercaseType === 'CEILING_MARKET'); const isCeilingOrder = isCeilingLimit || isCeilingMarket; if (isCeilingOrder) { - request['ceiling'] = this.priceToPrecision (symbol, price); + let cost = undefined; + if (isCeilingLimit) { + request['limit'] = this.priceToPrecision (symbol, price); + cost = this.safeFloat2 (params, 'ceiling', 'cost', amount); + } else if (isCeilingMarket) { + cost = this.safeFloat2 (params, 'ceiling', 'cost'); + if (cost === undefined) { + if (price === undefined) { + cost = amount; + } else { + cost = amount * price; + } + } + } + params = this.omit (params, [ 'ceiling', 'cost' ]); + request['ceiling'] = this.costToPrecision (symbol, cost); // bittrex only accepts IMMEDIATE_OR_CANCEL or FILL_OR_KILL for ceiling orders request['timeInForce'] = 'IMMEDIATE_OR_CANCEL'; } else { @@ -31636,7 +33400,7 @@ module.exports = class bittrex extends Exchange { 'GOOD_TIL_CANCELLED': 'GTC', 'IMMEDIATE_OR_CANCEL': 'IOC', 'FILL_OR_KILL': 'FOK', - 'POST_ONLY_GOOD_TIL_CANCELLED': 'POST_ONLY_GOOD_TIL_CANCELLED', + 'POST_ONLY_GOOD_TIL_CANCELLED': 'PO', }; return this.safeString (timeInForces, timeInForce, timeInForce); } @@ -31706,6 +33470,7 @@ module.exports = class bittrex extends Exchange { status = 'canceled'; } const timeInForce = this.parseTimeInForce (this.safeString (order, 'timeInForce')); + const postOnly = (timeInForce === 'PO'); return { 'id': this.safeString (order, 'id'), 'clientOrderId': undefined, @@ -31715,6 +33480,7 @@ module.exports = class bittrex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': direction, 'price': limit, 'stopPrice': undefined, @@ -31852,6 +33618,40 @@ module.exports = class bittrex extends Exchange { return this.parseOrders (response, market, since, limit); } + async createDepositAddress (code, params = {}) { + await this.loadMarkets (); + const currency = this.currency (code); + const request = { + 'currencySymbol': currency['id'], + }; + const response = await this.privatePostAddresses (this.extend (request, params)); + // + // { + // "status":"PROVISIONED", + // "currencySymbol":"XRP", + // "cryptoAddress":"rPVMhWBsfF9iMXYj3aAzJVkPDTFNSyWdKy", + // "cryptoAddressTag":"392034158" + // } + // + let address = this.safeString (response, 'cryptoAddress'); + const message = this.safeString (response, 'status'); + if (!address || message === 'REQUESTED') { + throw new AddressPending (this.id + ' the address for ' + code + ' is being generated (pending, not ready yet, retry again later)'); + } + let tag = this.safeString (response, 'cryptoAddressTag'); + if ((tag === undefined) && (currency['type'] in this.options['tag'])) { + tag = address; + address = currency['address']; + } + this.checkAddress (address); + return { + 'currency': code, + 'address': address, + 'tag': tag, + 'info': response, + }; + } + async fetchDepositAddress (code, params = {}) { await this.loadMarkets (); const currency = this.currency (code); @@ -31859,18 +33659,21 @@ module.exports = class bittrex extends Exchange { 'currencySymbol': currency['id'], }; const response = await this.privateGetAddressesCurrencySymbol (this.extend (request, params)); - // { - // "status": "PROVISIONED", - // "currencySymbol": "BTC", - // "cryptoAddress": "1PhmYjnJPZH5NUwV8AUjqkeDkCBpbE2xqX" - // } + // + // { + // "status":"PROVISIONED", + // "currencySymbol":"XRP", + // "cryptoAddress":"rPVMhWBsfF9iMXYj3aAzJVkPDTFNSyWdKy", + // "cryptoAddressTag":"392034158" + // } + // let address = this.safeString (response, 'cryptoAddress'); const message = this.safeString (response, 'status'); if (!address || message === 'REQUESTED') { throw new AddressPending (this.id + ' the address for ' + code + ' is being generated (pending, not ready yet, retry again later)'); } - let tag = undefined; - if (currency['type'] in this.options['tag']) { + let tag = this.safeString (response, 'cryptoAddressTag'); + if ((tag === undefined) && (currency['type'] in this.options['tag'])) { tag = address; address = currency['address']; } @@ -31970,6 +33773,9 @@ module.exports = class bittrex extends Exchange { this.throwExactlyMatchedException (this.exceptions['exact'], code, feedback); this.throwBroadlyMatchedException (this.exceptions['broad'], code, feedback); } + if ((code === 'NOT_FOUND') && (url.indexOf ('addresses') >= 0)) { + throw new InvalidAddress (feedback); + } // throw new ExchangeError (this.id + ' malformed response ' + this.json (response)); return; } @@ -32033,14 +33839,14 @@ module.exports = class bittrex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],44:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],44:[function(require,module,exports){ 'use strict'; // ---------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); const { ExchangeError, BadSymbol, AuthenticationError, InsufficientFunds, InvalidOrder, ArgumentsRequired, OrderNotFound, InvalidAddress, BadRequest, RateLimitExceeded, PermissionDenied, ExchangeNotAvailable, AccountSuspended, OnMaintenance } = require ('./base/errors'); -const { TRUNCATE } = require ('./base/functions/number'); +const { SIGNIFICANT_DIGITS, DECIMAL_PLACES, TRUNCATE, ROUND } = require ('./base/functions/number'); // ---------------------------------------------------------------------------- @@ -32257,12 +34063,33 @@ module.exports = class bitvavo extends Exchange { 'expires': 1000, // 1 second }, }, + 'precisionMode': SIGNIFICANT_DIGITS, 'commonCurrencies': { 'MIOTA': 'IOTA', // https://github.com/ccxt/ccxt/issues/7487 }, }); } + currencyToPrecision (currency, fee) { + return this.decimalToPrecision (fee, 0, this.currencies[currency]['precision']); + } + + amountToPrecision (symbol, amount) { + // https://docs.bitfinex.com/docs/introduction#amount-precision + // The amount field allows up to 8 decimals. + // Anything exceeding this will be rounded to the 8th decimal. + return this.decimalToPrecision (amount, TRUNCATE, this.markets[symbol]['precision']['amount'], DECIMAL_PLACES); + } + + priceToPrecision (symbol, price) { + price = this.decimalToPrecision (price, ROUND, this.markets[symbol]['precision']['price'], this.precisionMode); + // https://docs.bitfinex.com/docs/introduction#price-precision + // The precision level of all trading prices is based on significant figures. + // All pairs on Bitfinex use up to 5 significant digits and up to 8 decimals (e.g. 1.2345, 123.45, 1234.5, 0.00012345). + // Prices submit with a precision larger than 5 will be cut by the API. + return this.decimalToPrecision (price, TRUNCATE, 8, DECIMAL_PLACES); + } + async fetchTime (params = {}) { const response = await this.publicGetTime (params); // @@ -32804,16 +34631,18 @@ module.exports = class bitvavo extends Exchange { const request = { 'market': market['id'], 'side': side, - 'orderType': type, + 'orderType': type, // 'market', 'limit', 'stopLoss', 'stopLossLimit', 'takeProfit', 'takeProfitLimit' // 'amount': this.amountToPrecision (symbol, amount), // 'price': this.priceToPrecision (symbol, price), // 'amountQuote': this.costToPrecision (symbol, cost), - // 'timeInForce': 'GTC', // "GTC" "IOC" "FOK" - // 'selfTradePrevention': "decrementAndCancel", // "decrementAndCancel" "cancelOldest" "cancelNewest" "cancelBoth" + // 'timeInForce': 'GTC', // 'GTC', 'IOC', 'FOK' + // 'selfTradePrevention': 'decrementAndCancel', // 'decrementAndCancel', 'cancelOldest', 'cancelNewest', 'cancelBoth' // 'postOnly': false, // 'disableMarketProtection': false, // don't cancel if the next fill price is 10% worse than the best fill price // 'responseRequired': true, // false is faster }; + const isStopLimit = (type === 'stopLossLimit') || (type === 'takeProfitLimit'); + const isStopMarket = (type === 'stopLoss') || (type === 'takeProfit'); if (type === 'market') { let cost = undefined; if (price !== undefined) { @@ -32831,6 +34660,26 @@ module.exports = class bitvavo extends Exchange { } else if (type === 'limit') { request['price'] = this.priceToPrecision (symbol, price); request['amount'] = this.amountToPrecision (symbol, amount); + } else if (isStopMarket || isStopLimit) { + let stopPrice = this.safeFloat2 (params, 'stopPrice', 'triggerAmount'); + if (stopPrice === undefined) { + if (isStopLimit) { + throw new ArgumentsRequired (this.id + ' createOrder requires a stopPrice parameter for a ' + type + ' order'); + } else if (isStopMarket) { + if (price === undefined) { + throw new ArgumentsRequired (this.id + ' createOrder requires a price argument or a stopPrice parameter for a ' + type + ' order'); + } else { + stopPrice = price; + } + } + } + if (isStopLimit) { + request['price'] = this.priceToPrecision (symbol, price); + } + params = this.omit (params, [ 'stopPrice', 'triggerAmount' ]); + request['triggerAmount'] = this.priceToPrecision (symbol, stopPrice); + request['triggerType'] = 'price'; + request['amount'] = this.amountToPrecision (symbol, amount); } const response = await this.privatePostOrder (this.extend (request, params)); // @@ -32892,13 +34741,13 @@ module.exports = class bitvavo extends Exchange { const response = await this.privatePutOrder (this.extend (request, params)); return this.parseOrder (response, market); } else { - throw new ArgumentsRequired (this.id + ' editOrder requires an amount argument, or a price argument, or non-empty params'); + throw new ArgumentsRequired (this.id + ' editOrder() requires an amount argument, or a price argument, or non-empty params'); } } async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -32936,7 +34785,7 @@ module.exports = class bitvavo extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); await this.loadMarkets (); @@ -32985,7 +34834,7 @@ module.exports = class bitvavo extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -33046,24 +34895,13 @@ module.exports = class bitvavo extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); const request = { - // 'market': market['id'], - // 'limit': 500, - // 'start': since, - // 'end': this.milliseconds (), - // 'orderIdFrom': 'af76d6ce-9f7c-4006-b715-bb5d430652d0', - // 'orderIdTo': 'af76d6ce-9f7c-4006-b715-bb5d430652d0', + // 'market': market['id'], // rate limit 25 without a market, 1 with market specified }; let market = undefined; if (symbol !== undefined) { market = this.market (symbol); request['market'] = market['id']; } - if (since !== undefined) { - request['start'] = since; - } - if (limit !== undefined) { - request['limit'] = limit; // default 500, max 1000 - } const response = await this.privateGetOrdersOpen (this.extend (request, params)); // // [ @@ -33118,6 +34956,7 @@ module.exports = class bitvavo extends Exchange { 'partiallyFilled': 'open', 'expired': 'canceled', 'rejected': 'canceled', + 'awaitingTrigger': 'open', // https://github.com/ccxt/ccxt/issues/8489 }; return this.safeString (statuses, status, status); } @@ -33219,6 +35058,9 @@ module.exports = class bitvavo extends Exchange { } } const timeInForce = this.safeString (order, 'timeInForce'); + const postOnly = this.safeValue (order, 'postOnly'); + // https://github.com/ccxt/ccxt/issues/8489 + const stopPrice = this.safeFloat (order, 'triggerPrice'); return { 'info': order, 'id': id, @@ -33229,9 +35071,10 @@ module.exports = class bitvavo extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, - 'stopPrice': undefined, + 'stopPrice': stopPrice, 'amount': amount, 'cost': cost, 'average': average, @@ -33245,7 +35088,7 @@ module.exports = class bitvavo extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -33530,7 +35373,7 @@ module.exports = class bitvavo extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],45:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],45:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -34208,7 +36051,7 @@ module.exports = class bitz extends Exchange { } } else { if (since !== undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a limit argument if the since argument is specified'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a limit argument if the since argument is specified'); } } const response = await this.marketGetKline (this.extend (request, params)); @@ -34312,6 +36155,7 @@ module.exports = class bitz extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -34481,7 +36325,7 @@ module.exports = class bitz extends Exchange { async fetchOrdersWithMethod (method, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -34817,7 +36661,7 @@ module.exports = class bitz extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],46:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],46:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -35055,7 +36899,7 @@ module.exports = class bl3p extends Exchange { } }; -},{"./base/Exchange":5}],47:[function(require,module,exports){ +},{"./base/Exchange":6}],47:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -35720,6 +37564,7 @@ module.exports = class bleutrade extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -35870,7 +37715,7 @@ module.exports = class bleutrade extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],48:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],48:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -36333,6 +38178,7 @@ module.exports = class braziliex extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -36513,7 +38359,7 @@ module.exports = class braziliex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],49:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],49:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -36864,6 +38710,7 @@ module.exports = class btcalpha extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -37017,7 +38864,7 @@ module.exports = class btcalpha extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],50:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],50:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -37326,6 +39173,7 @@ module.exports = class btcbox extends Exchange { 'side': side, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'status': status, 'symbol': symbol, 'price': price, @@ -37444,7 +39292,7 @@ module.exports = class btcbox extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],51:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],51:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -38312,6 +40160,7 @@ module.exports = class btcmarkets extends Exchange { const clientOrderId = this.safeString (order, 'clientOrderId'); const timeInForce = this.safeString (order, 'timeInForce'); const stopPrice = this.safeFloat (order, 'triggerPrice'); + const postOnly = this.safeValue (order, 'postOnly'); return { 'info': order, 'id': id, @@ -38322,6 +40171,7 @@ module.exports = class btcmarkets extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -38501,7 +40351,7 @@ module.exports = class btcmarkets extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],52:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],52:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -38839,6 +40689,7 @@ module.exports = class btctradeua extends Exchange { 'symbol': symbol, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'side': this.safeString (order, 'type'), 'price': this.safeFloat (order, 'price'), 'stopPrice': undefined, @@ -38855,7 +40706,7 @@ module.exports = class btctradeua extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -38896,7 +40747,7 @@ module.exports = class btctradeua extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],53:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],53:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -39174,7 +41025,7 @@ module.exports = class btcturk extends Exchange { }; if (type === 'market') { if (!('Total' in params)) { - throw new ExchangeError (this.id + ' createOrder requires the "Total" extra parameter for market orders (amount and price are both ignored)'); + throw new ExchangeError (this.id + ' createOrder() requires the "Total" extra parameter for market orders (amount and price are both ignored)'); } } else { request['Price'] = price; @@ -39225,7 +41076,7 @@ module.exports = class btcturk extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],54:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],54:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -39765,29 +41616,65 @@ module.exports = class buda extends Exchange { } parseOrder (order, market = undefined) { + // + // { + // 'id': 63679183, + // 'uuid': 'f9697bee-627e-4175-983f-0d5a41963fec', + // 'market_id': 'ETH-CLP', + // 'account_id': 51590, + // 'type': 'Ask', + // 'state': 'received', + // 'created_at': '2021-01-04T08:29:52.730Z', + // 'fee_currency': 'CLP', + // 'price_type': 'limit', + // 'source': None, + // 'limit': ['741000.0', 'CLP'], + // 'amount': ['0.001', 'ETH'], + // 'original_amount': ['0.001', 'ETH'], + // 'traded_amount': ['0.0', 'ETH'], + // 'total_exchanged': ['0.0', 'CLP'], + // 'paid_fee': ['0.0', 'CLP'] + // } + // const id = this.safeString (order, 'id'); const timestamp = this.parse8601 (this.safeString (order, 'created_at')); const marketId = this.safeString (order, 'market_id'); - const symbol = this.safeSymbol (marketId, market); + const symbol = this.safeSymbol (marketId, market, '-'); const type = this.safeString (order, 'price_type'); const side = this.safeStringLower (order, 'type'); const status = this.parseOrderStatus (this.safeString (order, 'state')); - const amount = parseFloat (order['original_amount'][0]); - const remaining = parseFloat (order['amount'][0]); - const filled = parseFloat (order['traded_amount'][0]); - const cost = parseFloat (order['total_exchanged'][0]); - let price = this.safeFloat (order, 'limit'); - if (price !== undefined) { - price = parseFloat (price[0]); + const originalAmount = this.safeValue (order, 'original_amount', []); + const amount = this.safeFloat (originalAmount, 0); + const remainingAmount = this.safeValue (order, 'amount', []); + const remaining = this.safeFloat (remainingAmount, 0); + const tradedAmount = this.safeValue (order, 'traded_amount', []); + const filled = this.safeFloat (tradedAmount, 0); + const totalExchanged = this.safeValue (order, 'totalExchanged', []); + const cost = this.safeFloat (totalExchanged, 0); + const limitPrice = this.safeValue (order, 'limit', []); + let price = this.safeFloat (limitPrice, 0); + if (price === undefined) { + if (limitPrice !== undefined) { + price = limitPrice; + } } - if (cost > 0 && filled > 0) { - price = this.priceToPrecision (symbol, cost / filled); + let average = undefined; + if ((cost !== undefined) && (filled !== undefined) && (filled > 0)) { + average = this.priceToPrecision (symbol, cost / filled); + } + const paidFee = this.safeValue (order, 'paid_fee', []); + const feeCost = this.safeFloat (paidFee, 0); + let fee = undefined; + if (feeCost !== undefined) { + const feeCurrencyId = this.safeString (paidFee, 1); + const feeCurrencyCode = this.safeCurrencyCode (feeCurrencyId); + fee = { + 'cost': feeCost, + 'code': feeCurrencyCode, + }; } - const fee = { - 'cost': parseFloat (order['paid_fee'][0]), - 'currency': order['paid_fee'][1], - }; return { + 'info': order, 'id': id, 'clientOrderId': undefined, 'datetime': this.iso8601 (timestamp), @@ -39797,17 +41684,17 @@ module.exports = class buda extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, + 'average': average, 'cost': cost, 'amount': amount, 'filled': filled, 'remaining': remaining, 'trades': undefined, 'fee': fee, - 'info': order, - 'average': undefined, }; } @@ -40015,7 +41902,7 @@ module.exports = class buda extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],55:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],55:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -40779,6 +42666,7 @@ module.exports = class bw extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -40795,7 +42683,7 @@ module.exports = class bw extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -40830,7 +42718,7 @@ module.exports = class bw extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -41222,7 +43110,7 @@ module.exports = class bw extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],56:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],56:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -41242,6 +43130,7 @@ module.exports = class bybit extends Exchange { 'version': 'v2', 'userAgent': undefined, 'rateLimit': 100, + 'hostname': 'bybit.com', // bybit.com, bytick.com 'has': { 'cancelOrder': true, 'CORS': true, @@ -41284,9 +43173,9 @@ module.exports = class bybit extends Exchange { '1y': 'Y', }, 'urls': { - 'test': 'https://api-testnet.bybit.com', + 'test': 'https://api-testnet.{hostname}', 'logo': 'https://user-images.githubusercontent.com/51840849/76547799-daff5b80-649e-11ea-87fb-3be9bac08954.jpg', - 'api': 'https://api.bybit.com', + 'api': 'https://api.{hostname}', 'www': 'https://www.bybit.com', 'doc': [ 'https://bybit-exchange.github.io/docs/inverse/', @@ -41297,117 +43186,112 @@ module.exports = class bybit extends Exchange { 'referral': 'https://www.bybit.com/app/register?ref=X7Prm', }, 'api': { + 'v2': { + 'public': { + 'get': [ + 'orderBook/L2', + 'kline/list', + 'tickers', + 'trading-records', + 'symbols', + 'liq-records', + 'mark-price-kline', + 'index-price-kline', + 'premium-index-kline', + 'open-interest', + 'big-deal', + 'account-ratio', + 'time', + 'announcement', + ], + }, + 'private': { + 'get': [ + 'order/list', + 'order', + 'stop-order/list', + 'stop-order', + 'position/list', + 'execution/list', + 'trade/closed-pnl/list', + 'funding/prev-funding-rate', + 'funding/prev-funding', + 'funding/predicted-funding', + 'account/api-key', + 'account/lcp', + 'wallet/balance', + 'wallet/fund/records', + 'wallet/withdraw/list', + 'exchange-order/list', + ], + 'post': [ + 'order/create', + 'order/cancel', + 'order/cancelAll', + 'order/replace', + 'stop-order/create', + 'stop-order/cancel', + 'stop-order/cancelAll', + 'stop-order/replace', + 'position/change-position-margin', + 'position/trading-stop', + 'position/leverage/save', + ], + }, + }, 'public': { - 'get': [ - 'orderBook/L2', - 'kline/list', - 'tickers', - 'trading-records', - 'symbols', - 'liq-records', - 'mark-price-kline', - 'open-interest', - 'big-deal', - 'account-ratio', - 'time', - 'announcement', - ], + 'linear': { + 'get': [ + 'kline', + 'recent-trading-records', + 'funding/prev-funding-rate', + 'mark-price-kline', + 'index-price-kline', + 'premium-index-kline', + 'risk-limit', + ], + }, }, 'private': { - 'get': [ - 'order/list', - 'order', - 'stop-order/list', - 'stop-order', - 'position/list', - 'wallet/balance', - 'execution/list', - 'trade/closed-pnl/list', - 'account/lcp', - 'exchange-order/list', - ], - 'post': [ - 'order/create', - 'order/cancel', - 'order/cancelAll', - 'order/replace', - 'stop-order/create', - 'stop-order/cancel', - 'stop-order/cancelAll', - 'stop-order/replace', - ], + 'linear': { + 'get': [ + 'order/list', + 'order/search', + 'stop-order/list', + 'stop-order/search', + 'position/list', + 'trade/execution/list', + 'trade/closed-pnl/list', + 'funding/predicted-funding', + 'funding/prev-funding', + ], + 'post': [ + 'order/create', + 'order/cancel', + 'order/cancel-all', + 'order/replace', + 'stop-order/create', + 'stop-order/cancel', + 'stop-order/cancel-all', + 'stop-order/replace', + 'position/set-auto-add-margin', + 'position/switch-isolated', + 'tpsl/switch-mode', + 'position/add-margin', + 'position/set-leverage', + 'position/trading-stop', + ], + }, }, 'openapi': { - 'get': [ - 'order/list', // deprecated - 'stop-order/list', // deprecated - 'wallet/risk-limit/list', - 'funding/prev-funding-rate', - 'funding/prev-funding', - 'funding/predicted-funding', - 'api-key', - 'wallet/fund/records', - 'wallet/withdraw/list', - ], - 'post': [ - 'order/replace', // deprecated - 'stop-order/create', // deprecated - 'stop-order/cancel', // deprecated - 'stop-order/replace', // deprecated - 'position/trading-stop', - 'wallet/risk-limit', - ], - }, - 'publicLinear': { - 'get': [ - 'kline', - 'recent-trading-records', - 'funding/prev-funding-rate', - 'mark-price-kline', - 'risk-limit', - ], - }, - 'privateLinear': { - 'get': [ - 'order/list', - 'order/search', - 'stop-order/list', - 'stop-order/search', - 'position/list', - 'trade/execution/list', - 'trade/closed-pnl/list', - 'funding/prev-funding', - 'funding/predicted-funding', - ], - 'post': [ - 'order/create', - 'order/cancel', - 'order/cancel-all', - 'order/replace', - 'stop-order/create', - 'stop-order/cancel', - 'stop-order/cancel-all', - 'stop-order/replace', - 'position/switch-isolated', - 'position/set-auto-add-margin', - 'tpsl/switch-mode', - 'position/set-leverage', - 'position/trading-stop', - 'position/add-margin', - ], - }, - 'position': { - 'post': [ - 'change-position-margin', - ], - }, - 'user': { - 'get': [ - 'leverage', // deprecated - ], - 'post': [ - 'leverage/save', - ], + 'wallet': { + 'get': [ + 'risk-limit/list', + ], + 'post': [ + 'risk-limit', + ], + }, }, }, 'httpExceptions': { @@ -41510,6 +43394,7 @@ module.exports = class bybit extends Exchange { 'options': { 'marketTypes': { 'BTC/USDT': 'linear', + 'BCH/USDT': 'linear', 'ETH/USDT': 'linear', 'LTC/USDT': 'linear', 'XTZ/USDT': 'linear', @@ -41517,10 +43402,10 @@ module.exports = class bybit extends Exchange { }, 'code': 'BTC', 'cancelAllOrders': { - 'method': 'privatePostOrderCancelAll', // privatePostStopOrderCancelAll + // 'method': 'v2PrivatePostOrderCancelAll', // v2PrivatePostStopOrderCancelAll }, 'recvWindow': 5 * 1000, // 5 sec default - 'timeDifference': 0, // the difference between system clock and Binance clock + 'timeDifference': 0, // the difference between system clock and exchange server clock 'adjustForTimeDifference': false, // controls the adjustment logic upon instantiation }, 'fees': { @@ -41552,7 +43437,7 @@ module.exports = class bybit extends Exchange { } async fetchTime (params = {}) { - const response = await this.publicGetTime (params); + const response = await this.v2PublicGetTime (params); // // { // ret_code: 0, @@ -41570,30 +43455,7 @@ module.exports = class bybit extends Exchange { if (this.options['adjustForTimeDifference']) { await this.loadTimeDifference (); } - const response = await this.publicGetSymbols (params); - // - // { - // ret_code: 0, - // ret_msg: 'OK', - // ext_code: '', - // ext_info: '', - // result: [ - // { - // name: 'BTCUSD', - // base_currency: 'BTC', - // quote_currency: 'USD', - // price_scale: 2, - // taker_fee: '0.00075', - // maker_fee: '-0.00025', - // leverage_filter: { min_leverage: 1, max_leverage: 100, leverage_step: '0.01' }, - // price_filter: { min_price: '0.5', max_price: '999999.5', tick_size: '0.5' }, - // lot_size_filter: { max_trading_qty: 1000000, min_trading_qty: 1, qty_step: 1 } - // }, - // ], - // time_now: '1583930495.454196' - // } - // - // sandbox/testnet + const response = await this.v2PublicGetSymbols (params); // // { // "ret_code":0, @@ -41602,8 +43464,8 @@ module.exports = class bybit extends Exchange { // "ext_info":"", // "result":[ // { - // "symbol":"BTCUSD", - // "symbol_alias":"BTCUSD", + // "name":"BTCUSD", + // "alias":"BTCUSD", // "status":"Trading", // "base_currency":"BTC", // "quote_currency":"USD", @@ -41613,9 +43475,22 @@ module.exports = class bybit extends Exchange { // "leverage_filter":{"min_leverage":1,"max_leverage":100,"leverage_step":"0.01"}, // "price_filter":{"min_price":"0.5","max_price":"999999.5","tick_size":"0.5"}, // "lot_size_filter":{"max_trading_qty":1000000,"min_trading_qty":1,"qty_step":1} - // } + // }, + // { + // "name":"BTCUSDT", + // "alias":"BTCUSDT", + // "status":"Trading", + // "base_currency":"BTC", + // "quote_currency":"USDT", + // "price_scale":2, + // "taker_fee":"0.00075", + // "maker_fee":"-0.00025", + // "leverage_filter":{"min_leverage":1,"max_leverage":100,"leverage_step":"0.01"}, + // "price_filter":{"min_price":"0.5","max_price":"999999.5","tick_size":"0.5"}, + // "lot_size_filter":{"max_trading_qty":100,"min_trading_qty":0.001,"qty_step":0.001} + // }, // ], - // "time_now":"1605916574.118500" + // "time_now":"1610539664.818033" // } // const markets = this.safeValue (response, 'result', []); @@ -41682,65 +43557,6 @@ module.exports = class bybit extends Exchange { return result; } - async fetchBalance (params = {}) { - await this.loadMarkets (); - const request = {}; - const coin = this.safeString (params, 'coin'); - const code = this.safeString (params, 'code'); - if (coin !== undefined) { - request['coin'] = coin; - } else if (code !== undefined) { - const currency = this.currency (code); - request['coin'] = currency['id']; - } - const response = await this.privateGetWalletBalance (this.extend (request, params)); - // - // { - // ret_code: 0, - // ret_msg: 'OK', - // ext_code: '', - // ext_info: '', - // result: { - // BTC: { - // equity: 0, - // available_balance: 0, - // used_margin: 0, - // order_margin: 0, - // position_margin: 0, - // occ_closing_fee: 0, - // occ_funding_fee: 0, - // wallet_balance: 0, - // realised_pnl: 0, - // unrealised_pnl: 0, - // cum_realised_pnl: 0, - // given_cash: 0, - // service_cash: 0 - // } - // }, - // time_now: '1583937810.370020', - // rate_limit_status: 119, - // rate_limit_reset_ms: 1583937810367, - // rate_limit: 120 - // } - // - const result = { - 'info': response, - }; - const balances = this.safeValue (response, 'result', {}); - const currencyIds = Object.keys (balances); - for (let i = 0; i < currencyIds.length; i++) { - const currencyId = currencyIds[i]; - const balance = balances[currencyId]; - const code = this.safeCurrencyCode (currencyId); - const account = this.account (); - account['free'] = this.safeFloat (balance, 'available_balance'); - account['used'] = this.safeFloat (balance, 'used_margin'); - account['total'] = this.safeFloat (balance, 'equity'); - result[code] = account; - } - return this.parseBalance (result); - } - parseTicker (ticker, market = undefined) { // // fetchTicker @@ -41819,7 +43635,7 @@ module.exports = class bybit extends Exchange { const request = { 'symbol': market['id'], }; - const response = await this.publicGetTickers (this.extend (request, params)); + const response = await this.v2PublicGetTickers (this.extend (request, params)); // // { // ret_code: 0, @@ -41867,7 +43683,7 @@ module.exports = class bybit extends Exchange { async fetchTickers (symbols = undefined, params = {}) { await this.loadMarkets (); - const response = await this.publicGetTickers (params); + const response = await this.v2PublicGetTickers (params); // // { // ret_code: 0, @@ -41965,7 +43781,7 @@ module.exports = class bybit extends Exchange { const now = this.seconds (); if (since === undefined) { if (limit === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a since argument or a limit argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a since argument or a limit argument'); } else { request['from'] = now - limit * duration; } @@ -41977,7 +43793,7 @@ module.exports = class bybit extends Exchange { } const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - const method = (marketType === 'linear') ? 'publicLinearGetKline' : 'publicGetKlineList'; + const method = (marketType === 'linear') ? 'publicLinearGetKline' : 'v2PublicGetKlineList'; const response = await this[method] (this.extend (request, params)); // // inverse perpetual BTC/USD @@ -42132,7 +43948,7 @@ module.exports = class bybit extends Exchange { } const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - const method = (marketType === 'linear') ? 'publicLinearGetRecentTradingRecords' : 'publicGetTradingRecords'; + const method = (marketType === 'linear') ? 'publicLinearGetRecentTradingRecords' : 'v2PublicGetTradingRecords'; const response = await this[method] (this.extend (request, params)); // // { @@ -42186,7 +44002,7 @@ module.exports = class bybit extends Exchange { const request = { 'symbol': market['id'], }; - const response = await this.publicGetOrderBookL2 (this.extend (request, params)); + const response = await this.v2PublicGetOrderBookL2 (this.extend (request, params)); // // { // ret_code: 0, @@ -42209,6 +44025,65 @@ module.exports = class bybit extends Exchange { return this.parseOrderBook (result, timestamp, 'Buy', 'Sell', 'price', 'size'); } + async fetchBalance (params = {}) { + await this.loadMarkets (); + const request = {}; + const coin = this.safeString (params, 'coin'); + const code = this.safeString (params, 'code'); + if (coin !== undefined) { + request['coin'] = coin; + } else if (code !== undefined) { + const currency = this.currency (code); + request['coin'] = currency['id']; + } + const response = await this.v2PrivateGetWalletBalance (this.extend (request, params)); + // + // { + // ret_code: 0, + // ret_msg: 'OK', + // ext_code: '', + // ext_info: '', + // result: { + // BTC: { + // equity: 0, + // available_balance: 0, + // used_margin: 0, + // order_margin: 0, + // position_margin: 0, + // occ_closing_fee: 0, + // occ_funding_fee: 0, + // wallet_balance: 0, + // realised_pnl: 0, + // unrealised_pnl: 0, + // cum_realised_pnl: 0, + // given_cash: 0, + // service_cash: 0 + // } + // }, + // time_now: '1583937810.370020', + // rate_limit_status: 119, + // rate_limit_reset_ms: 1583937810367, + // rate_limit: 120 + // } + // + const result = { + 'info': response, + }; + const balances = this.safeValue (response, 'result', {}); + const currencyIds = Object.keys (balances); + for (let i = 0; i < currencyIds.length; i++) { + const currencyId = currencyIds[i]; + const balance = balances[currencyId]; + const code = this.safeCurrencyCode (currencyId); + const account = this.account (); + account['free'] = this.safeFloat (balance, 'available_balance'); + account['used'] = this.safeFloat (balance, 'used_margin'); + account['total'] = this.safeFloat (balance, 'equity'); + result[code] = account; + } + return this.parseBalance (result); + } + parseOrderStatus (status) { const statuses = { // basic orders @@ -42391,6 +44266,7 @@ module.exports = class bybit extends Exchange { } const timeInForce = this.parseTimeInForce (this.safeString (order, 'time_in_force')); const stopPrice = this.safeFloat (order, 'stop_px'); + const postOnly = (timeInForce === 'PO'); return { 'info': order, 'id': id, @@ -42401,6 +44277,7 @@ module.exports = class bybit extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -42417,7 +44294,7 @@ module.exports = class bybit extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -42431,7 +44308,7 @@ module.exports = class bybit extends Exchange { }; const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - let method = (marketType === 'linear') ? 'privateLinearGetOrderSearch' : 'privateGetOrder'; + let method = (marketType === 'linear') ? 'privateLinearGetOrderSearch' : 'v2PrivateGetOrder'; const stopOrderId = this.safeString (params, 'stop_order_id'); if (stopOrderId === undefined) { const orderLinkId = this.safeString (params, 'order_link_id'); @@ -42439,7 +44316,7 @@ module.exports = class bybit extends Exchange { request['order_id'] = id; } } else { - method = (marketType === 'linear') ? 'privateLinearGetStopOrderSearch' : 'privateGetStopOrder'; + method = (marketType === 'linear') ? 'privateLinearGetStopOrderSearch' : 'v2PrivateGetStopOrder'; } const response = await this[method] (this.extend (request, params)); // @@ -42552,7 +44429,7 @@ module.exports = class bybit extends Exchange { if (price !== undefined) { request['price'] = parseFloat (this.priceToPrecision (symbol, price)); } else { - throw new ArgumentsRequired (this.id + ' createOrder requires a price argument for a ' + type + ' order'); + throw new ArgumentsRequired (this.id + ' createOrder() requires a price argument for a ' + type + ' order'); } } const clientOrderId = this.safeString2 (params, 'order_link_id', 'clientOrderId'); @@ -42564,7 +44441,7 @@ module.exports = class bybit extends Exchange { const basePrice = this.safeValue (params, 'base_price'); const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - let method = (marketType === 'linear') ? 'privateLinearPostOrderCreate' : 'privatePostOrderCreate'; + let method = (marketType === 'linear') ? 'privateLinearPostOrderCreate' : 'v2PrivatePostOrderCreate'; if (marketType === 'linear') { method = 'privateLinearPostOrderCreate'; request['reduce_only'] = false; @@ -42572,15 +44449,15 @@ module.exports = class bybit extends Exchange { } if (stopPx !== undefined) { if (basePrice === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires both the stop_px and base_price params for a conditional ' + type + ' order'); + throw new ArgumentsRequired (this.id + ' createOrder() requires both the stop_px and base_price params for a conditional ' + type + ' order'); } else { - method = (marketType === 'linear') ? 'privateLinearPostStopOrderCreate' : 'openapiPostStopOrderCreate'; + method = (marketType === 'linear') ? 'privateLinearPostStopOrderCreate' : 'v2PrivatePostStopOrderCreate'; request['stop_px'] = parseFloat (this.priceToPrecision (symbol, stopPx)); request['base_price'] = parseFloat (this.priceToPrecision (symbol, basePrice)); params = this.omit (params, [ 'stop_px', 'stopPrice', 'base_price' ]); } } else if (basePrice !== undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires both the stop_px and base_price params for a conditional ' + type + ' order'); + throw new ArgumentsRequired (this.id + ' createOrder() requires both the stop_px and base_price params for a conditional ' + type + ' order'); } const response = await this[method] (this.extend (request, params)); // @@ -42666,7 +44543,7 @@ module.exports = class bybit extends Exchange { async editOrder (id, symbol, type, side, amount = undefined, price = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' editOrder requires an symbol argument'); + throw new ArgumentsRequired (this.id + ' editOrder() requires an symbol argument'); } const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); @@ -42682,17 +44559,23 @@ module.exports = class bybit extends Exchange { // 'stop_order_id': id, // only for conditional orders // 'p_r_trigger_price': 123.45, // new trigger price also known as stop_px }; - let method = (marketType === 'linear') ? 'privateLinearPostOrderReplace' : 'openapiPostOrderReplace'; + let method = (marketType === 'linear') ? 'privateLinearPostOrderReplace' : 'v2PrivatePostOrderReplace'; const stopOrderId = this.safeString (params, 'stop_order_id'); if (stopOrderId !== undefined) { - method = (marketType === 'linear') ? 'privateLinearPostStopOrderReplace' : 'openapiPostStopOrderReplace'; + method = (marketType === 'linear') ? 'privateLinearPostStopOrderReplace' : 'v2PrivatePostStopOrderReplace'; request['stop_order_id'] = stopOrderId; params = this.omit (params, [ 'stop_order_id' ]); } else { request['order_id'] = id; } if (amount !== undefined) { - request['p_r_qty'] = parseInt (this.amountToPrecision (symbol, amount)); + let qty = this.amountToPrecision (symbol, amount); + if (market['inverse']) { + qty = parseInt (qty); + } else { + qty = parseFloat (qty); + } + request['p_r_qty'] = qty; } if (price !== undefined) { request['p_r_price'] = parseFloat (this.priceToPrecision (symbol, price)); @@ -42735,7 +44618,7 @@ module.exports = class bybit extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -42749,7 +44632,7 @@ module.exports = class bybit extends Exchange { }; const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeValue (marketTypes, symbol); - let method = (marketType === 'linear') ? 'privateLinearPostOrderCancel' : 'privatePostOrderCancel'; + let method = (marketType === 'linear') ? 'privateLinearPostOrderCancel' : 'v2PrivatePostOrderCancel'; const stopOrderId = this.safeString (params, 'stop_order_id'); if (stopOrderId === undefined) { const orderLinkId = this.safeString (params, 'order_link_id'); @@ -42757,7 +44640,7 @@ module.exports = class bybit extends Exchange { request['order_id'] = id; } } else { - method = (marketType === 'linear') ? 'privateLinearPostStopOrderCancel' : 'openapiPostStopOrderCancel'; + method = (marketType === 'linear') ? 'privateLinearPostStopOrderCancel' : 'v2PrivatePostStopOrderCancel'; } const response = await this[method] (this.extend (request, params)); const result = this.safeValue (response, 'result', {}); @@ -42766,17 +44649,17 @@ module.exports = class bybit extends Exchange { async cancelAllOrders (symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelAllOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelAllOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); const request = { 'symbol': market['id'], }; - const options = this.safeValue (this.options, 'cancelAllOrders'); + const options = this.safeValue (this.options, 'cancelAllOrders', {}); const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - const defaultMethod = (marketType === 'linear') ? 'privateLinearPostOrderCancelAll' : 'privatePostOrderCancelAll'; + const defaultMethod = (marketType === 'linear') ? 'privateLinearPostOrderCancelAll' : 'v2PrivatePostOrderCancelAll'; const method = this.safeString (options, 'method', defaultMethod); const response = await this[method] (this.extend (request, params)); const result = this.safeValue (response, 'result', []); @@ -42808,7 +44691,7 @@ module.exports = class bybit extends Exchange { const options = this.safeValue (this.options, 'fetchOrders', {}); const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - let defaultMethod = (marketType === 'linear') ? 'privateLinearGetOrderList' : 'openapiGetOrderList'; + let defaultMethod = (marketType === 'linear') ? 'privateLinearGetOrderList' : 'v2PrivateGetOrderList'; let query = params; if (('stop_order_id' in params) || ('stop_order_status' in params)) { let stopOrderStatus = this.safeValue (params, 'stopOrderStatus'); @@ -42819,7 +44702,7 @@ module.exports = class bybit extends Exchange { request['stop_order_status'] = stopOrderStatus; query = this.omit (params, 'stop_order_status'); } - defaultMethod = (marketType === 'linear') ? 'privateLinearGetStopOrderList' : 'openapiGetStopOrderList'; + defaultMethod = (marketType === 'linear') ? 'privateLinearGetStopOrderList' : 'v2PrivateGetStopOrderList'; } const method = this.safeString (options, 'method', defaultMethod); const response = await this[method] (this.extend (request, query)); @@ -42985,7 +44868,7 @@ module.exports = class bybit extends Exchange { if (symbol === undefined) { const orderId = this.safeString (params, 'order_id'); if (orderId === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument or an order_id param'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument or an order_id param'); } else { request['order_id'] = orderId; params = this.omit (params, 'order_id'); @@ -43002,7 +44885,7 @@ module.exports = class bybit extends Exchange { } const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - const method = (marketType === 'linear') ? 'privateLinearGetTradeExecutionList' : 'privateGetExecutionList'; + const method = (marketType === 'linear') ? 'privateLinearGetTradeExecutionList' : 'v2PrivateGetExecutionList'; const response = await this[method] (this.extend (request, params)); // // inverse @@ -43092,41 +44975,60 @@ module.exports = class bybit extends Exchange { } async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { - if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchWithdrawals() requires a currency code argument'); - } await this.loadMarkets (); - const currency = this.currency (code); const request = { - 'currency': currency['id'], + // 'coin': currency['id'], + // 'currency': currency['id'], // alias + // 'start_date': this.iso8601 (since), + // 'end_date': this.iso8601 (till), + 'wallet_fund_type': 'Deposit', // Deposit, Withdraw, RealisedPNL, Commission, Refund, Prize, ExchangeOrderWithdraw, ExchangeOrderDeposit + // 'page': 1, + // 'limit': 20, // max 50 }; - if (limit !== undefined) { - request['count'] = limit; + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + request['coin'] = currency['id']; } - const response = await this.privateGetGetDeposits (this.extend (request, params)); + if (since !== undefined) { + request['start_date'] = this.ymd (since); + } + if (limit !== undefined) { + request['limit'] = limit; + } + const response = await this.v2PrivateGetWalletFundRecords (this.extend (request, params)); // // { - // "jsonrpc": "2.0", - // "id": 5611, + // "ret_code": 0, + // "ret_msg": "ok", + // "ext_code": "", // "result": { - // "count": 1, // "data": [ // { - // "address": "2N35qDKDY22zmJq9eSyiAerMD4enJ1xx6ax", - // "amount": 5, - // "currency": "BTC", - // "received_timestamp": 1549295017670, - // "state": "completed", - // "transaction_id": "230669110fdaf0a0dbcdc079b6b8b43d5af29cc73683835b9bc6b3406c065fda", - // "updated_timestamp": 1549295130159 + // "id": 234467, + // "user_id": 1, + // "coin": "BTC", + // "wallet_id": 27913, + // "type": "Realized P&L", + // "amount": "-0.00000006", + // "tx_id": "", + // "address": "BTCUSD", + // "wallet_balance": "0.03000330", + // "exec_time": "2019-12-09T00:00:25.000Z", + // "cross_seq": 0 // } // ] - // } + // }, + // "ext_info": null, + // "time_now": "1577481867.115552", + // "rate_limit_status": 119, + // "rate_limit_reset_ms": 1577481867122, + // "rate_limit": 120 // } // const result = this.safeValue (response, 'result', {}); const data = this.safeValue (result, 'data', []); - return this.parseTransactions (data, currency, since, limit, params); + return this.parseTransactions (data, currency, since, limit); } async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { @@ -43145,12 +45047,12 @@ module.exports = class bybit extends Exchange { request['coin'] = currency['id']; } if (since !== undefined) { - request['start_date'] = this.iso8601 (since); + request['start_date'] = this.ymd (since); } if (limit !== undefined) { request['limit'] = limit; } - const response = await this.openapiGetWalletWithdrawList (this.extend (request, params)); + const response = await this.v2PrivateGetWalletWithdrawList (this.extend (request, params)); // // { // "ret_code": 0, @@ -43216,9 +45118,25 @@ module.exports = class bybit extends Exchange { // "updated_at": "2019-06-11T02:20:24.000Z" // } // + // fetchDeposits ledger entries + // + // { + // "id": 234467, + // "user_id": 1, + // "coin": "BTC", + // "wallet_id": 27913, + // "type": "Realized P&L", + // "amount": "-0.00000006", + // "tx_id": "", + // "address": "BTCUSD", + // "wallet_balance": "0.03000330", + // "exec_time": "2019-12-09T00:00:25.000Z", + // "cross_seq": 0 + // } + // const currencyId = this.safeString (transaction, 'coin'); const code = this.safeCurrencyCode (currencyId, currency); - const timestamp = this.parse8601 (this.safeString (transaction, 'submited_at')); + const timestamp = this.parse8601 (this.safeString2 (transaction, 'submited_at', 'exec_time')); const updated = this.parse8601 (this.safeString (transaction, 'updated_at')); const status = this.parseTransactionStatus (this.safeString (transaction, 'status')); const address = this.safeString (transaction, 'address'); @@ -43268,12 +45186,12 @@ module.exports = class bybit extends Exchange { request['coin'] = currency['id']; } if (since !== undefined) { - request['start_date'] = this.iso8601 (since); + request['start_date'] = this.ymd (since); } if (limit !== undefined) { request['limit'] = limit; } - const response = await this.openapiGetWalletFundRecords (this.extend (request, params)); + const response = await this.v2PrivateGetWalletFundRecords (this.extend (request, params)); // // { // "ret_code": 0, @@ -43372,45 +45290,28 @@ module.exports = class bybit extends Exchange { } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { - let url = this.urls['api']; - let request = path; + let url = this.implodeParams (this.urls['api'], { 'hostname': this.hostname }); + const type = this.safeString (api, 0); + const section = this.safeString (api, 1); + let request = '/' + type + '/' + section + '/' + path; // public v2 - if (api === 'public') { - request = '/' + this.version + '/' + api + '/' + request; + if (section === 'public') { if (Object.keys (params).length) { request += '?' + this.rawencode (params); } - } else if (api === 'publicLinear') { - request = '/public/linear/' + request; + } else if (type === 'public') { if (Object.keys (params).length) { request += '?' + this.rawencode (params); } } else { this.checkRequiredCredentials (); - if (api === 'openapi') { - request = '/open-api/' + request; - } else if (api === 'private') { - // private v2 - request = '/' + this.version + '/' + api + '/' + request; - } else if (api === 'privateLinear') { - request = '/private/linear/' + request; - } else { - // position, user - request = '/' + api + '/' + request; - } const timestamp = this.nonce (); const query = this.extend (params, { 'api_key': this.apiKey, 'recv_window': this.options['recvWindow'], 'timestamp': timestamp, }); - let auth = this.rawencode (this.keysort (query)); - // https://github.com/ccxt/ccxt/issues/7377 - // https://github.com/ccxt/ccxt/issues/7515 - // bybit encodes whole floats as integers without .0 for conditional stop-orders only - if (path.indexOf ('stop-order') >= 0) { - auth = auth.replace ('.0&', '&'); - } + const auth = this.rawencode (this.keysort (query)); const signature = this.hmac (this.encode (auth), this.encode (this.secret)); if (method === 'POST') { body = this.json (this.extend (query, { @@ -43453,7 +45354,7 @@ module.exports = class bybit extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],57:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],57:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -43741,7 +45642,7 @@ module.exports = class bytetrade extends Exchange { async fetchBalance (params = {}) { if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired (this.id + ' fetchDeposits requires this.apiKey or userid argument'); + throw new ArgumentsRequired (this.id + ' fetchDeposits() requires this.apiKey or userid argument'); } await this.loadMarkets (); const request = { @@ -44036,6 +45937,7 @@ module.exports = class bytetrade extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -44053,7 +45955,7 @@ module.exports = class bytetrade extends Exchange { async createOrder (symbol, type, side, amount, price = undefined, params = {}) { this.checkRequiredDependencies (); if (this.apiKey === undefined) { - throw new ArgumentsRequired ('createOrder requires this.apiKey or userid in params'); + throw new ArgumentsRequired ('createOrder() requires this.apiKey or userid in params'); } await this.loadMarkets (); const market = this.market (symbol); @@ -44237,7 +46139,7 @@ module.exports = class bytetrade extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchOrder requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchOrder() requires this.apiKey or userid argument'); } await this.loadMarkets (); const request = { @@ -44255,7 +46157,7 @@ module.exports = class bytetrade extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchOpenOrders requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchOpenOrders() requires this.apiKey or userid argument'); } await this.loadMarkets (); const request = { @@ -44275,7 +46177,7 @@ module.exports = class bytetrade extends Exchange { async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchClosedOrders requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchClosedOrders() requires this.apiKey or userid argument'); } await this.loadMarkets (); let market = undefined; @@ -44295,7 +46197,7 @@ module.exports = class bytetrade extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchOrders requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchOrders() requires this.apiKey or userid argument'); } await this.loadMarkets (); let market = undefined; @@ -44315,10 +46217,10 @@ module.exports = class bytetrade extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (this.apiKey === undefined) { - throw new ArgumentsRequired ('cancelOrder requires hasAlreadyAuthenticatedSuccessfully'); + throw new ArgumentsRequired ('cancelOrder() requires hasAlreadyAuthenticatedSuccessfully'); } if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -44416,7 +46318,7 @@ module.exports = class bytetrade extends Exchange { async transfer (code, amount, address, message = '', params = {}) { this.checkRequiredDependencies (); if (this.apiKey === undefined) { - throw new ArgumentsRequired ('transfer requires this.apiKey'); + throw new ArgumentsRequired ('transfer() requires this.apiKey'); } await this.loadMarkets (); const currency = this.currency (code); @@ -44522,7 +46424,7 @@ module.exports = class bytetrade extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchMyTrades requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchMyTrades() requires this.apiKey or userid argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -44542,7 +46444,7 @@ module.exports = class bytetrade extends Exchange { async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchDeposits requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchDeposits() requires this.apiKey or userid argument'); } let currency = undefined; const request = { @@ -44565,7 +46467,7 @@ module.exports = class bytetrade extends Exchange { async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchWithdrawals requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchWithdrawals() requires this.apiKey or userid argument'); } let currency = undefined; const request = { @@ -44649,7 +46551,7 @@ module.exports = class bytetrade extends Exchange { async fetchDepositAddress (code, params = {}) { await this.loadMarkets (); if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchDepositAddress requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchDepositAddress() requires this.apiKey or userid argument'); } const currency = this.currency (code); const request = { @@ -44675,7 +46577,7 @@ module.exports = class bytetrade extends Exchange { this.checkAddress (address); await this.loadMarkets (); if (this.apiKey === undefined) { - throw new ArgumentsRequired ('withdraw requires this.apiKey'); + throw new ArgumentsRequired (this.id + ' withdraw() requires this.apiKey'); } const addressResponse = await this.fetchDepositAddress (code); const chainTypeString = this.safeString (addressResponse, 'chainType'); @@ -44885,7 +46787,42 @@ module.exports = class bytetrade extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],58:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],58:[function(require,module,exports){ +'use strict'; + +// --------------------------------------------------------------------------- + +const huobipro = require ('./huobipro.js'); + +// --------------------------------------------------------------------------- + +module.exports = class cdax extends huobipro { + describe () { + return this.deepExtend (super.describe (), { + 'id': 'cdax', + 'name': 'CDAX', + 'countries': [ 'RU' ], + 'hostname': 'cdax.io', + 'pro': false, + 'urls': { + 'logo': 'https://user-images.githubusercontent.com/1294454/102157692-fd406280-3e90-11eb-8d46-4511b617cd17.jpg', + 'api': { + 'market': 'https://{hostname}/api', + 'public': 'https://{hostname}/api', + 'private': 'https://{hostname}/api', + 'v2Public': 'https://{hostname}/api', + 'v2Private': 'https://{hostname}/api', + }, + 'www': 'https://cdax.io', + 'referral': 'https://cdax.io/invite?invite_code=esc74', + 'doc': 'https://github.com/cloudapidoc/API_Docs', + 'fees': 'https://cdax.io/about/fee', + }, + }); + } +}; + +},{"./huobipro.js":96}],59:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -45564,10 +47501,9 @@ module.exports = class cex extends Exchange { let cost = undefined; if (market !== undefined) { symbol = market['symbol']; - cost = this.safeFloat (order, 'ta:' + market['quote']); - if (cost === undefined) { - cost = this.safeFloat (order, 'tta:' + market['quote']); - } + const taCost = this.safeFloat (order, 'ta:' + market['quote']); + const ttaCost = this.safeFloat (order, 'tta:' + market['quote']); + cost = this.sum (taCost, ttaCost); const baseFee = 'fa:' + market['base']; const baseTakerFee = 'tfa:' + market['base']; const quoteFee = 'fa:' + market['quote']; @@ -45771,6 +47707,7 @@ module.exports = class cex extends Exchange { 'symbol': symbol, 'type': (price === undefined) ? 'market' : 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -45806,7 +47743,7 @@ module.exports = class cex extends Exchange { await this.loadMarkets (); const method = 'privatePostArchivedOrdersPair'; if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchClosedOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchClosedOrders() requires a symbol argument'); } const market = this.market (symbol); const request = { 'pair': market['id'] }; @@ -46140,10 +48077,10 @@ module.exports = class cex extends Exchange { async editOrder (id, symbol, type, side, amount = undefined, price = undefined, params = {}) { if (amount === undefined) { - throw new ArgumentsRequired (this.id + ' editOrder requires a amount argument'); + throw new ArgumentsRequired (this.id + ' editOrder() requires a amount argument'); } if (price === undefined) { - throw new ArgumentsRequired (this.id + ' editOrder requires a price argument'); + throw new ArgumentsRequired (this.id + ' editOrder() requires a price argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -46235,7 +48172,7 @@ module.exports = class cex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],59:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],60:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -46269,13 +48206,13 @@ module.exports = class chilebit extends foxbit { } }; -},{"./foxbit.js":84}],60:[function(require,module,exports){ +},{"./foxbit.js":87}],61:[function(require,module,exports){ 'use strict'; // ---------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { ExchangeError, ArgumentsRequired, AuthenticationError, RateLimitExceeded } = require ('./base/errors'); +const { ExchangeError, ArgumentsRequired, AuthenticationError, RateLimitExceeded, InvalidNonce } = require ('./base/errors'); // ---------------------------------------------------------------------------- @@ -46395,23 +48332,28 @@ module.exports = class coinbase extends Exchange { }, }, 'exceptions': { - 'two_factor_required': AuthenticationError, // 402 When sending money over 2fa limit - 'param_required': ExchangeError, // 400 Missing parameter - 'validation_error': ExchangeError, // 400 Unable to validate POST/PUT - 'invalid_request': ExchangeError, // 400 Invalid request - 'personal_details_required': AuthenticationError, // 400 User’s personal detail required to complete this request - 'identity_verification_required': AuthenticationError, // 400 Identity verification is required to complete this request - 'jumio_verification_required': AuthenticationError, // 400 Document verification is required to complete this request - 'jumio_face_match_verification_required': AuthenticationError, // 400 Document verification including face match is required to complete this request - 'unverified_email': AuthenticationError, // 400 User has not verified their email - 'authentication_error': AuthenticationError, // 401 Invalid auth (generic) - 'invalid_token': AuthenticationError, // 401 Invalid Oauth token - 'revoked_token': AuthenticationError, // 401 Revoked Oauth token - 'expired_token': AuthenticationError, // 401 Expired Oauth token - 'invalid_scope': AuthenticationError, // 403 User hasn’t authenticated necessary scope - 'not_found': ExchangeError, // 404 Resource not found - 'rate_limit_exceeded': RateLimitExceeded, // 429 Rate limit exceeded - 'internal_server_error': ExchangeError, // 500 Internal server error + 'exact': { + 'two_factor_required': AuthenticationError, // 402 When sending money over 2fa limit + 'param_required': ExchangeError, // 400 Missing parameter + 'validation_error': ExchangeError, // 400 Unable to validate POST/PUT + 'invalid_request': ExchangeError, // 400 Invalid request + 'personal_details_required': AuthenticationError, // 400 User’s personal detail required to complete this request + 'identity_verification_required': AuthenticationError, // 400 Identity verification is required to complete this request + 'jumio_verification_required': AuthenticationError, // 400 Document verification is required to complete this request + 'jumio_face_match_verification_required': AuthenticationError, // 400 Document verification including face match is required to complete this request + 'unverified_email': AuthenticationError, // 400 User has not verified their email + 'authentication_error': AuthenticationError, // 401 Invalid auth (generic) + 'invalid_token': AuthenticationError, // 401 Invalid Oauth token + 'revoked_token': AuthenticationError, // 401 Revoked Oauth token + 'expired_token': AuthenticationError, // 401 Expired Oauth token + 'invalid_scope': AuthenticationError, // 403 User hasn’t authenticated necessary scope + 'not_found': ExchangeError, // 404 Resource not found + 'rate_limit_exceeded': RateLimitExceeded, // 429 Rate limit exceeded + 'internal_server_error': ExchangeError, // 500 Internal server error + }, + 'broad': { + 'request timestamp expired': InvalidNonce, // {"errors":[{"id":"authentication_error","message":"request timestamp expired"}]} + }, }, 'commonCurrencies': { 'CGLD': 'CELO', @@ -46444,7 +48386,11 @@ module.exports = class coinbase extends Exchange { } async fetchAccounts (params = {}) { - const response = await this.privateGetAccounts (params); + await this.loadMarkets (); + const request = { + 'limit': 100, + }; + const response = await this.privateGetAccounts (this.extend (request, params)); // // { // "id": "XLM", @@ -46975,7 +48921,10 @@ module.exports = class coinbase extends Exchange { async fetchBalance (params = {}) { await this.loadMarkets (); - const response = await this.privateGetAccounts (params); + const request = { + 'limit': 100, + }; + const response = await this.privateGetAccounts (this.extend (request, params)); const balances = this.safeValue (response, 'data'); const accounts = this.safeValue (params, 'type', this.options['accounts']); const result = { 'info': response }; @@ -47447,7 +49396,9 @@ module.exports = class coinbase extends Exchange { // let errorCode = this.safeString (response, 'error'); if (errorCode !== undefined) { - this.throwExactlyMatchedException (this.exceptions, errorCode, feedback); + const errorMessage = this.safeString (response, 'error_description'); + this.throwExactlyMatchedException (this.exceptions['exact'], errorCode, feedback); + this.throwBroadlyMatchedException (this.exceptions['broad'], errorMessage, feedback); throw new ExchangeError (feedback); } const errors = this.safeValue (response, 'errors'); @@ -47456,8 +49407,10 @@ module.exports = class coinbase extends Exchange { const numErrors = errors.length; if (numErrors > 0) { errorCode = this.safeString (errors[0], 'id'); + const errorMessage = this.safeString (errors[0], 'message'); if (errorCode !== undefined) { - this.throwExactlyMatchedException (this.exceptions, errorCode, feedback); + this.throwExactlyMatchedException (this.exceptions['exact'], errorCode, feedback); + this.throwBroadlyMatchedException (this.exceptions['broad'], errorMessage, feedback); throw new ExchangeError (feedback); } } @@ -47471,7 +49424,7 @@ module.exports = class coinbase extends Exchange { }; -},{"./base/Exchange":5,"./base/errors":7}],61:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],62:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -47504,7 +49457,7 @@ module.exports = class coinbaseprime extends coinbasepro { } }; -},{"./coinbasepro.js":62}],62:[function(require,module,exports){ +},{"./coinbasepro.js":63}],63:[function(require,module,exports){ 'use strict'; // ---------------------------------------------------------------------------- @@ -47852,6 +49805,7 @@ module.exports = class coinbasepro extends Exchange { } async fetchAccounts (params = {}) { + await this.loadMarkets (); const response = await this.privateGetAccounts (params); // // [ @@ -48030,12 +49984,20 @@ module.exports = class coinbasepro extends Exchange { // trade_id: 82047307, // maker_order_id: '0f358725-2134-435e-be11-753912a326e0', // taker_order_id: '252b7002-87a3-425c-ac73-f5b9e23f3caf', + // order_id: 'd50ec984-77a8-460a-b958-66f114b0de9b', // side: 'sell', // size: '0.00513192', // price: '9314.78', // product_id: 'BTC-USD', + // profile_id: '6244401d-c078-40d9-b305-7ad3551bc3b0', // sequence: 12038915443, // time: '2020-01-31T20:03:41.158814Z' + // created_at: '2014-11-07T22:19:28.578544Z', + // liquidity: 'T', + // fee: '0.00025', + // settled: true, + // usd_volume: '0.0924556000000000', + // user_id: '595eb864313c2b02ddf2937d' // } // const timestamp = this.parse8601 (this.safeString2 (trade, 'time', 'created_at')); @@ -48044,10 +50006,15 @@ module.exports = class coinbasepro extends Exchange { let feeRate = undefined; let feeCurrency = undefined; let takerOrMaker = undefined; + let cost = undefined; if (market !== undefined) { + const feeCurrencyId = this.safeStringLower (market, 'quoteId'); + const costField = feeCurrencyId + '_value'; + cost = this.safeFloat (trade, costField); feeCurrency = market['quote']; - if ('liquidity' in trade) { - takerOrMaker = (trade['liquidity'] === 'T') ? 'taker' : 'maker'; + const liquidity = this.safeString (trade, 'liquidity'); + if (liquidity !== undefined) { + takerOrMaker = (liquidity === 'T') ? 'taker' : 'maker'; feeRate = market[takerOrMaker]; } } @@ -48067,6 +50034,9 @@ module.exports = class coinbasepro extends Exchange { } const price = this.safeFloat (trade, 'price'); const amount = this.safeFloat (trade, 'size'); + if (cost === undefined) { + cost = amount * price; + } return { 'id': id, 'order': orderId, @@ -48080,14 +50050,14 @@ module.exports = class coinbasepro extends Exchange { 'price': price, 'amount': amount, 'fee': fee, - 'cost': price * amount, + 'cost': cost, }; } async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { // as of 2018-08-23 if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -48107,6 +50077,9 @@ module.exports = class coinbasepro extends Exchange { const request = { 'id': market['id'], // fixes issue #2 }; + if (limit !== undefined) { + request['limit'] = limit; // default 100 + } const response = await this.publicGetProductsIdTrades (this.extend (request, params)); return this.parseTrades (response, market, since, limit); } @@ -48183,6 +50156,27 @@ module.exports = class coinbasepro extends Exchange { } parseOrder (order, market = undefined) { + // + // createOrder + // + // { + // "id": "d0c5340b-6d6c-49d9-b567-48c4bfca13d2", + // "price": "0.10000000", + // "size": "0.01000000", + // "product_id": "BTC-USD", + // "side": "buy", + // "stp": "dc", + // "type": "limit", + // "time_in_force": "GTC", + // "post_only": false, + // "created_at": "2016-12-08T20:02:28.53864Z", + // "fill_fees": "0.0000000000000000", + // "filled_size": "0.00000000", + // "executed_value": "0.0000000000000000", + // "status": "pending", + // "settled": false + // } + // const timestamp = this.parse8601 (this.safeString (order, 'created_at')); const marketId = this.safeString (order, 'product_id'); market = this.safeMarket (marketId, market, '-'); @@ -48213,9 +50207,13 @@ module.exports = class coinbasepro extends Exchange { const id = this.safeString (order, 'id'); const type = this.safeString (order, 'type'); const side = this.safeString (order, 'side'); + const timeInForce = this.safeString (order, 'time_in_force'); + const postOnly = this.safeValue (order, 'post_only'); + const stopPrice = this.safeFloat (order, 'stop_price'); + const clientOrderId = this.safeString (order, 'client_oid'); return { 'id': id, - 'clientOrderId': undefined, + 'clientOrderId': clientOrderId, 'info': order, 'timestamp': timestamp, 'datetime': this.iso8601 (timestamp), @@ -48223,10 +50221,11 @@ module.exports = class coinbasepro extends Exchange { 'status': status, 'symbol': market['symbol'], 'type': type, - 'timeInForce': undefined, + 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, - 'stopPrice': undefined, + 'stopPrice': stopPrice, 'cost': cost, 'amount': amount, 'filled': filled, @@ -48239,10 +50238,18 @@ module.exports = class coinbasepro extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { await this.loadMarkets (); - const request = { - 'id': id, - }; - const response = await this.privateGetOrdersId (this.extend (request, params)); + const request = {}; + const clientOrderId = this.safeString2 (params, 'clientOrderId', 'client_oid'); + let method = undefined; + if (clientOrderId === undefined) { + method = 'privateGetOrdersId'; + request['id'] = id; + } else { + method = 'privateGetOrdersClientClientOid'; + request['client_oid'] = clientOrderId; + params = this.omit (params, [ 'clientOrderId', 'client_oid' ]); + } + const response = await this[method] (this.extend (request, params)); return this.parseOrder (response); } @@ -48260,17 +50267,10 @@ module.exports = class coinbasepro extends Exchange { } async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); const request = { 'status': 'all', }; - let market = undefined; - if (symbol !== undefined) { - market = this.market (symbol); - request['product_id'] = market['id']; - } - const response = await this.privateGetOrders (this.extend (request, params)); - return this.parseOrders (response, market, since, limit); + return await this.fetchOpenOrders (symbol, since, limit, this.extend (request, params)); } async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { @@ -48281,47 +50281,131 @@ module.exports = class coinbasepro extends Exchange { market = this.market (symbol); request['product_id'] = market['id']; } + if (limit !== undefined) { + request['limit'] = limit; // default 100 + } const response = await this.privateGetOrders (this.extend (request, params)); return this.parseOrders (response, market, since, limit); } async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); const request = { 'status': 'done', }; - let market = undefined; - if (symbol !== undefined) { - market = this.market (symbol); - request['product_id'] = market['id']; - } - const response = await this.privateGetOrders (this.extend (request, params)); - return this.parseOrders (response, market, since, limit); + return await this.fetchOpenOrders (symbol, since, limit, this.extend (request, params)); } async createOrder (symbol, type, side, amount, price = undefined, params = {}) { await this.loadMarkets (); - // let oid = this.nonce ().toString (); + const market = this.market (symbol); const request = { - 'product_id': this.marketId (symbol), - 'side': side, - 'size': this.amountToPrecision (symbol, amount), + // common params -------------------------------------------------- + // 'client_oid': clientOrderId, 'type': type, + 'side': side, + 'product_id': market['id'], + // 'size': this.amountToPrecision (symbol, amount), + // 'stp': 'dc', // self-trade prevention, dc = decrease and cancel, co = cancel oldest, cn = cancel newest, cb = cancel both + // 'stop': 'loss', // "loss" = stop loss below price, "entry" = take profit above price + // 'stop_price': this.priceToPrecision (symbol, price), + // limit order params --------------------------------------------- + // 'price': this.priceToPrecision (symbol, price), + // 'size': this.amountToPrecision (symbol, amount), + // 'time_in_force': 'GTC', // GTC, GTT, IOC, or FOK + // 'cancel_after' [optional]* min, hour, day, requires time_in_force to be GTT + // 'post_only': false, // invalid when time_in_force is IOC or FOK + // market order params -------------------------------------------- + // 'size': this.amountToPrecision (symbol, amount), + // 'funds': this.costToPrecision (symbol, amount), }; + const clientOrderId = this.safeString2 (params, 'clientOrderId', 'client_oid'); + if (clientOrderId !== undefined) { + request['client_oid'] = clientOrderId; + params = this.omit (params, [ 'clientOrderId', 'client_oid' ]); + } + const stopPrice = this.safeFloat2 (params, 'stopPrice', 'stop_price'); + if (stopPrice !== undefined) { + request['stop_price'] = this.priceToPrecision (symbol, stopPrice); + params = this.omit (params, [ 'stopPrice', 'stop_price' ]); + } + const timeInForce = this.safeString2 (params, 'timeInForce', 'time_in_force'); + if (timeInForce !== undefined) { + request['time_in_force'] = timeInForce; + params = this.omit (params, [ 'timeInForce', 'time_in_force' ]); + } if (type === 'limit') { request['price'] = this.priceToPrecision (symbol, price); + request['size'] = this.amountToPrecision (symbol, amount); + } else if (type === 'market') { + let cost = this.safeFloat2 (params, 'cost', 'funds'); + if (cost === undefined) { + if (price !== undefined) { + cost = amount * price; + } + } else { + params = this.omit (params, [ 'cost', 'funds' ]); + } + if (cost !== undefined) { + request['funds'] = this.costToPrecision (symbol, cost); + } else { + request['size'] = this.amountToPrecision (symbol, amount); + } } const response = await this.privatePostOrders (this.extend (request, params)); - return this.parseOrder (response); + // + // { + // "id": "d0c5340b-6d6c-49d9-b567-48c4bfca13d2", + // "price": "0.10000000", + // "size": "0.01000000", + // "product_id": "BTC-USD", + // "side": "buy", + // "stp": "dc", + // "type": "limit", + // "time_in_force": "GTC", + // "post_only": false, + // "created_at": "2016-12-08T20:02:28.53864Z", + // "fill_fees": "0.0000000000000000", + // "filled_size": "0.00000000", + // "executed_value": "0.0000000000000000", + // "status": "pending", + // "settled": false + // } + // + return this.parseOrder (response, market); } async cancelOrder (id, symbol = undefined, params = {}) { await this.loadMarkets (); - return await this.privateDeleteOrdersId ({ 'id': id }); + const request = { + // 'product_id': market['id'], // the request will be more performant if you include it + }; + const clientOrderId = this.safeString2 (params, 'clientOrderId', 'client_oid'); + let method = undefined; + if (clientOrderId === undefined) { + method = 'privateDeleteOrdersId'; + request['id'] = id; + } else { + method = 'privateDeleteOrdersClientClientOid'; + request['client_oid'] = clientOrderId; + params = this.omit (params, [ 'clientOrderId', 'client_oid' ]); + } + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['product_id'] = market['symbol']; // the request will be more performant if you include it + } + return await this[method] (this.extend (request, params)); } async cancelAllOrders (symbol = undefined, params = {}) { - return await this.privateDeleteOrders (params); + await this.loadMarkets (); + const request = {}; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['product_id'] = market['symbol']; // the request will be more performant if you include it + } + return await this.privateDeleteOrders (this.extend (request, params)); } calculateFee (symbol, type, side, amount, price, takerOrMaker = 'taker', params = {}) { @@ -48387,6 +50471,9 @@ module.exports = class coinbasepro extends Exchange { } else { method += 'Crypto'; request['crypto_address'] = address; + if (tag !== undefined) { + request['destination_tag'] = tag; + } } const response = await this[method] (this.extend (request, params)); if (!response) { @@ -48472,7 +50559,7 @@ module.exports = class coinbasepro extends Exchange { const currencyId = this.safeString (transaction, 'currency'); const code = this.safeCurrencyCode (currencyId, currency); const status = this.parseTransactionStatus (transaction); - const amount = this.safeFloat (transaction, 'amount'); + let amount = this.safeFloat (transaction, 'amount'); let type = this.safeString (transaction, 'type'); let address = this.safeString (details, 'crypto_address'); const tag = this.safeString (details, 'destination_tag'); @@ -48483,9 +50570,12 @@ module.exports = class coinbasepro extends Exchange { address = this.safeString (details, 'sent_to_address', address); const feeCost = this.safeFloat (details, 'fee'); if (feeCost !== undefined) { + if (amount !== undefined) { + amount -= feeCost; + } fee = { 'cost': feeCost, - 'code': code, + 'currency': code, }; } } @@ -48592,7 +50682,7 @@ module.exports = class coinbasepro extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],63:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],64:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -48676,10 +50766,11 @@ module.exports = class coincheck extends Exchange { 'markets': { 'BTC/JPY': { 'id': 'btc_jpy', 'symbol': 'BTC/JPY', 'base': 'BTC', 'quote': 'JPY', 'baseId': 'btc', 'quoteId': 'jpy' }, // the only real pair // 'ETH/JPY': { 'id': 'eth_jpy', 'symbol': 'ETH/JPY', 'base': 'ETH', 'quote': 'JPY', 'baseId': 'eth', 'quoteId': 'jpy' }, - // 'ETC/JPY': { 'id': 'etc_jpy', 'symbol': 'ETC/JPY', 'base': 'ETC', 'quote': 'JPY', 'baseId': 'etc', 'quoteId': 'jpy' }, + 'ETC/JPY': { 'id': 'etc_jpy', 'symbol': 'ETC/JPY', 'base': 'ETC', 'quote': 'JPY', 'baseId': 'etc', 'quoteId': 'jpy' }, // 'DAO/JPY': { 'id': 'dao_jpy', 'symbol': 'DAO/JPY', 'base': 'DAO', 'quote': 'JPY', 'baseId': 'dao', 'quoteId': 'jpy' }, // 'LSK/JPY': { 'id': 'lsk_jpy', 'symbol': 'LSK/JPY', 'base': 'LSK', 'quote': 'JPY', 'baseId': 'lsk', 'quoteId': 'jpy' }, - // 'FCT/JPY': { 'id': 'fct_jpy', 'symbol': 'FCT/JPY', 'base': 'FCT', 'quote': 'JPY', 'baseId': 'fct', 'quoteId': 'jpy' }, + 'FCT/JPY': { 'id': 'fct_jpy', 'symbol': 'FCT/JPY', 'base': 'FCT', 'quote': 'JPY', 'baseId': 'fct', 'quoteId': 'jpy' }, + 'MONA/JPY': { 'id': 'mona_jpy', 'symbol': 'MONA/JPY', 'base': 'MONA', 'quote': 'JPY', 'baseId': 'mona', 'quoteId': 'jpy' }, // 'XMR/JPY': { 'id': 'xmr_jpy', 'symbol': 'XMR/JPY', 'base': 'XMR', 'quote': 'JPY', 'baseId': 'xmr', 'quoteId': 'jpy' }, // 'REP/JPY': { 'id': 'rep_jpy', 'symbol': 'REP/JPY', 'base': 'REP', 'quote': 'JPY', 'baseId': 'rep', 'quoteId': 'jpy' }, // 'XRP/JPY': { 'id': 'xrp_jpy', 'symbol': 'XRP/JPY', 'base': 'XRP', 'quote': 'JPY', 'baseId': 'xrp', 'quoteId': 'jpy' }, @@ -48688,7 +50779,7 @@ module.exports = class coincheck extends Exchange { // 'LTC/JPY': { 'id': 'ltc_jpy', 'symbol': 'LTC/JPY', 'base': 'LTC', 'quote': 'JPY', 'baseId': 'ltc', 'quoteId': 'jpy' }, // 'DASH/JPY': { 'id': 'dash_jpy', 'symbol': 'DASH/JPY', 'base': 'DASH', 'quote': 'JPY', 'baseId': 'dash', 'quoteId': 'jpy' }, // 'ETH/BTC': { 'id': 'eth_btc', 'symbol': 'ETH/BTC', 'base': 'ETH', 'quote': 'BTC', 'baseId': 'eth', 'quoteId': 'btc' }, - // 'ETC/BTC': { 'id': 'etc_btc', 'symbol': 'ETC/BTC', 'base': 'ETC', 'quote': 'BTC', 'baseId': 'etc', 'quoteId': 'btc' }, + 'ETC/BTC': { 'id': 'etc_btc', 'symbol': 'ETC/BTC', 'base': 'ETC', 'quote': 'BTC', 'baseId': 'etc', 'quoteId': 'btc' }, // 'LSK/BTC': { 'id': 'lsk_btc', 'symbol': 'LSK/BTC', 'base': 'LSK', 'quote': 'BTC', 'baseId': 'lsk', 'quoteId': 'btc' }, // 'FCT/BTC': { 'id': 'fct_btc', 'symbol': 'FCT/BTC', 'base': 'FCT', 'quote': 'BTC', 'baseId': 'fct', 'quoteId': 'btc' }, // 'XMR/BTC': { 'id': 'xmr_btc', 'symbol': 'XMR/BTC', 'base': 'XMR', 'quote': 'BTC', 'baseId': 'xmr', 'quoteId': 'btc' }, @@ -48792,6 +50883,7 @@ module.exports = class coincheck extends Exchange { 'side': side, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'status': status, 'symbol': symbol, 'price': price, @@ -48805,11 +50897,12 @@ module.exports = class coincheck extends Exchange { } async fetchOrderBook (symbol, limit = undefined, params = {}) { - if (symbol !== 'BTC/JPY') { - throw new BadSymbol (this.id + ' fetchOrderBook () supports BTC/JPY only'); - } await this.loadMarkets (); - const response = await this.publicGetOrderBooks (params); + const market = this.market (symbol); + const request = { + 'pair': market['id'], + }; + const response = await this.publicGetOrderBooks (this.extend (request, params)); return this.parseOrderBook (response); } @@ -48818,7 +50911,11 @@ module.exports = class coincheck extends Exchange { throw new BadSymbol (this.id + ' fetchTicker () supports BTC/JPY only'); } await this.loadMarkets (); - const ticker = await this.publicGetTicker (params); + const market = this.market (symbol); + const request = { + 'pair': market['id'], + }; + const ticker = await this.publicGetTicker (this.extend (request, params)); const timestamp = this.safeTimestamp (ticker, 'timestamp'); const last = this.safeFloat (ticker, 'last'); return { @@ -48932,9 +51029,6 @@ module.exports = class coincheck extends Exchange { } async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { - if (symbol !== 'BTC/JPY') { - throw new BadSymbol (this.id + ' fetchTrades () supports BTC/JPY only'); - } await this.loadMarkets (); const market = this.market (symbol); const request = { @@ -49024,7 +51118,7 @@ module.exports = class coincheck extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],64:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],65:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -49181,6 +51275,7 @@ module.exports = class coinegg extends Exchange { }, 'commonCurrencies': { 'JBC': 'JubaoCoin', + 'SBTC': 'Super Bitcoin', }, }); } @@ -49394,6 +51489,7 @@ module.exports = class coinegg extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -49541,7 +51637,7 @@ module.exports = class coinegg extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],65:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],66:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -49636,6 +51732,8 @@ module.exports = class coinex extends Exchange { 'order/status', 'order/status/batch', 'order/user/deals', + 'sub_account/balance', + 'sub_account/transfer/history', ], 'post': [ 'balance/coin/withdraw', @@ -50043,6 +52141,7 @@ module.exports = class coinex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -50106,7 +52205,7 @@ module.exports = class coinex extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -50303,7 +52402,7 @@ module.exports = class coinex extends Exchange { const timestamp = this.safeTimestamp (transaction, 'create_time'); const type = ('coin_withdraw_id' in transaction) ? 'withdraw' : 'deposit'; const status = this.parseTransactionStatus (this.safeString (transaction, 'status')); - const amount = this.safeFloat (transaction, 'amount'); + let amount = this.safeFloat (transaction, 'amount'); let feeCost = this.safeFloat (transaction, 'tx_fee'); if (type === 'deposit') { feeCost = 0; @@ -50312,6 +52411,10 @@ module.exports = class coinex extends Exchange { 'cost': feeCost, 'currency': code, }; + // https://github.com/ccxt/ccxt/issues/8321 + if (amount !== undefined) { + amount = amount - feeCost; + } return { 'info': transaction, 'id': id, @@ -50331,7 +52434,7 @@ module.exports = class coinex extends Exchange { async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchWithdrawals requires a currency code argument'); + throw new ArgumentsRequired (this.id + ' fetchWithdrawals() requires a currency code argument'); } await this.loadMarkets (); const currency = this.currency (code); @@ -50389,7 +52492,7 @@ module.exports = class coinex extends Exchange { async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchDeposits requires a currency code argument'); + throw new ArgumentsRequired (this.id + ' fetchDeposits() requires a currency code argument'); } await this.loadMarkets (); const currency = this.currency (code); @@ -50454,7 +52557,7 @@ module.exports = class coinex extends Exchange { 'tonce': nonce.toString (), }, query); query = this.keysort (query); - const urlencoded = this.urlencode (query); + const urlencoded = this.rawencode (query); const signature = this.hash (this.encode (urlencoded + '&secret_key=' + this.secret)); headers = { 'Authorization': signature.toUpperCase (), @@ -50491,7 +52594,7 @@ module.exports = class coinex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],66:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],67:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -50711,7 +52814,7 @@ module.exports = class coinfalcon extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -50814,6 +52917,7 @@ module.exports = class coinfalcon extends Exchange { type = type[0]; } const side = this.safeString (order, 'order_type'); + const postOnly = this.safeValue (order, 'post_only'); return { 'id': this.safeString (order, 'id'), 'clientOrderId': undefined, @@ -50823,6 +52927,7 @@ module.exports = class coinfalcon extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': undefined, @@ -50945,7 +53050,7 @@ module.exports = class coinfalcon extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],67:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],68:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -50975,7 +53080,7 @@ module.exports = class coinfloor extends Exchange { }, 'urls': { 'logo': 'https://user-images.githubusercontent.com/51840849/87153925-ef265e80-c2c0-11ea-91b5-020c804b90e0.jpg', - 'api': 'https://webapi.coinfloor.co.uk/bist', + 'api': 'https://webapi.coinfloor.co.uk/v2/bist', 'www': 'https://www.coinfloor.co.uk', 'doc': [ 'https://github.com/coinfloor/api', @@ -51038,7 +53143,7 @@ module.exports = class coinfloor extends Exchange { market = this.markets_by_id[marketId]; } if (market === undefined) { - throw new ArgumentsRequired (this.id + ' fetchBalance requires a symbol param'); + throw new ArgumentsRequired (this.id + ' fetchBalance() requires a symbol param'); } const request = { 'id': market['id'], @@ -51171,7 +53276,7 @@ module.exports = class coinfloor extends Exchange { if (code !== undefined) { market = this.market (code); if (market === undefined) { - throw new ArgumentsRequired (this.id + ' fetchTransactions requires a code argument (a market symbol)'); + throw new ArgumentsRequired (this.id + ' fetchTransactions() requires a code argument (a market symbol)'); } } const request = { @@ -51379,7 +53484,7 @@ module.exports = class coinfloor extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -51428,6 +53533,7 @@ module.exports = class coinfloor extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -51443,7 +53549,7 @@ module.exports = class coinfloor extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol param'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol param'); } await this.loadMarkets (); const market = this.market (symbol); @@ -51497,7 +53603,7 @@ module.exports = class coinfloor extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],68:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],69:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -51847,7 +53953,7 @@ module.exports = class coingi extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],69:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],70:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -52000,6 +54106,8 @@ module.exports = class coinmarketcap extends Exchange { // https://github.com/ccxt/ccxt/issues/6081 // https://github.com/ccxt/ccxt/issues/3365 // https://github.com/ccxt/ccxt/issues/2873 + 'SBTCT': 'SiamBitcoin', // conflict with sBTC + 'Super Bitcoin': 'Super Bitcoin', // conflict with sBTC 'TerraCredit': 'TerraCredit', // conflict with CREDIT (PROXI) 'Themis': 'Themis', // conflict with GET (Guaranteed Entrance Token, GET Protocol) 'UNI COIN': 'UNI COIN', // conflict with UNI (Uniswap) @@ -52194,7 +54302,7 @@ module.exports = class coinmarketcap extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],70:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],71:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -52726,7 +54834,7 @@ module.exports = class coinmate extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -52838,6 +54946,7 @@ module.exports = class coinmate extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -52955,7 +55064,7 @@ module.exports = class coinmate extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],71:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],72:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -53331,7 +55440,7 @@ module.exports = class coinone extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -53476,6 +55585,7 @@ module.exports = class coinone extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -53525,7 +55635,7 @@ module.exports = class coinone extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -53560,14 +55670,14 @@ module.exports = class coinone extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { // eslint-disable-next-line quotes - throw new ArgumentsRequired (this.id + " cancelOrder requires a symbol argument. To cancel the order, pass a symbol argument and {'price': 12345, 'qty': 1.2345, 'is_ask': 0} in the params argument of cancelOrder."); + throw new ArgumentsRequired (this.id + " cancelOrder() requires a symbol argument. To cancel the order, pass a symbol argument and {'price': 12345, 'qty': 1.2345, 'is_ask': 0} in the params argument of cancelOrder."); } const price = this.safeFloat (params, 'price'); const qty = this.safeFloat (params, 'qty'); const isAsk = this.safeInteger (params, 'is_ask'); if ((price === undefined) || (qty === undefined) || (isAsk === undefined)) { // eslint-disable-next-line quotes - throw new ArgumentsRequired (this.id + " cancelOrder requires {'price': 12345, 'qty': 1.2345, 'is_ask': 0} in the params argument."); + throw new ArgumentsRequired (this.id + " cancelOrder() requires {'price': 12345, 'qty': 1.2345, 'is_ask': 0} in the params argument."); } await this.loadMarkets (); const request = { @@ -53638,13 +55748,13 @@ module.exports = class coinone extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],72:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],73:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { ExchangeError, AuthenticationError, NotSupported } = require ('./base/errors'); +const { ExchangeError, ArgumentsRequired, AuthenticationError } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -53711,27 +55821,72 @@ module.exports = class coinspot extends Exchange { }, 'markets': { 'BTC/AUD': { 'id': 'btc', 'symbol': 'BTC/AUD', 'base': 'BTC', 'quote': 'AUD', 'baseId': 'btc', 'quoteId': 'aud' }, + 'ETH/AUD': { 'id': 'eth', 'symbol': 'ETH/AUD', 'base': 'ETH', 'quote': 'AUD', 'baseId': 'eth', 'quoteId': 'aud' }, + 'XRP/AUD': { 'id': 'xrp', 'symbol': 'XRP/AUD', 'base': 'XRP', 'quote': 'AUD', 'baseId': 'xrp', 'quoteId': 'aud' }, 'LTC/AUD': { 'id': 'ltc', 'symbol': 'LTC/AUD', 'base': 'LTC', 'quote': 'AUD', 'baseId': 'ltc', 'quoteId': 'aud' }, 'DOGE/AUD': { 'id': 'doge', 'symbol': 'DOGE/AUD', 'base': 'DOGE', 'quote': 'AUD', 'baseId': 'doge', 'quoteId': 'aud' }, + 'RFOX/AUD': { 'id': 'rfox', 'symbol': 'RFOX/AUD', 'base': 'RFOX', 'quote': 'AUD', 'baseId': 'rfox', 'quoteId': 'aud' }, + 'POWR/AUD': { 'id': 'powr', 'symbol': 'POWR/AUD', 'base': 'POWR', 'quote': 'AUD', 'baseId': 'powr', 'quoteId': 'aud' }, + 'NEO/AUD': { 'id': 'neo', 'symbol': 'NEO/AUD', 'base': 'NEO', 'quote': 'AUD', 'baseId': 'neo', 'quoteId': 'aud' }, + 'TRX/AUD': { 'id': 'trx', 'symbol': 'TRX/AUD', 'base': 'TRX', 'quote': 'AUD', 'baseId': 'trx', 'quoteId': 'aud' }, + 'EOS/AUD': { 'id': 'eos', 'symbol': 'EOS/AUD', 'base': 'EOS', 'quote': 'AUD', 'baseId': 'eos', 'quoteId': 'aud' }, + 'XLM/AUD': { 'id': 'xlm', 'symbol': 'XLM/AUD', 'base': 'XLM', 'quote': 'AUD', 'baseId': 'xlm', 'quoteId': 'aud' }, + 'RHOC/AUD': { 'id': 'rhoc', 'symbol': 'RHOC/AUD', 'base': 'RHOC', 'quote': 'AUD', 'baseId': 'rhoc', 'quoteId': 'aud' }, + 'GAS/AUD': { 'id': 'gas', 'symbol': 'GAS/AUD', 'base': 'GAS', 'quote': 'AUD', 'baseId': 'gas', 'quoteId': 'aud' }, }, 'commonCurrencies': { 'DRK': 'DASH', }, + 'options': { + 'fetchBalance': 'private_post_my_balances', + }, }); } async fetchBalance (params = {}) { await this.loadMarkets (); - const response = await this.privatePostMyBalances (params); + const method = this.safeString (this.options, 'fetchBalance', 'private_post_my_balances'); + const response = await this[method] (params); + // + // read-write api keys + // + // ... + // + // read-only api keys + // + // { + // "status":"ok", + // "balances":[ + // { + // "LTC":{"balance":0.1,"audbalance":16.59,"rate":165.95} + // } + // ] + // } + // const result = { 'info': response }; - const balances = this.safeValue (response, 'balance', {}); - const currencyIds = Object.keys (balances); - for (let i = 0; i < currencyIds.length; i++) { - const currencyId = currencyIds[i]; - const code = this.safeCurrencyCode (currencyId); - const account = this.account (); - account['total'] = this.safeFloat (balances, currencyId); - result[code] = account; + const balances = this.safeValue2 (response, 'balance', 'balances'); + if (Array.isArray (balances)) { + for (let i = 0; i < balances.length; i++) { + const currencies = balances[i]; + const currencyIds = Object.keys (currencies); + for (let j = 0; j < currencyIds.length; j++) { + const currencyId = currencyIds[j]; + const balance = currencies[currencyId]; + const code = this.safeCurrencyCode (currencyId); + const account = this.account (); + account['total'] = this.safeFloat (balance, 'balance'); + result[code] = account; + } + } + } else { + const currencyIds = Object.keys (balances); + for (let i = 0; i < currencyIds.length; i++) { + const currencyId = currencyIds[i]; + const code = this.safeCurrencyCode (currencyId); + const account = this.account (); + account['total'] = this.safeFloat (balances, currencyId); + result[code] = account; + } } return this.parseBalance (result); } @@ -53851,9 +56006,16 @@ module.exports = class coinspot extends Exchange { } async cancelOrder (id, symbol = undefined, params = {}) { - throw new NotSupported (this.id + ' cancelOrder () is not fully implemented yet'); - // let method = 'privatePostMyBuy'; - // return await this[method] ({ 'id': id }); + const side = this.safeString (params, 'side'); + if (side !== 'buy' && side !== 'sell') { + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a side parameter, "buy" or "sell"'); + } + params = this.omit (params, 'side'); + const method = 'privatePostMy' + this.capitalize (side) + 'Cancel'; + const request = { + 'id': id, + }; + return await this[method] (this.extend (request, params)); } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { @@ -53875,7 +56037,7 @@ module.exports = class coinspot extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],73:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],74:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -54011,6 +56173,7 @@ module.exports = class crex24 extends Exchange { 'GHOST': 'GHOSTPRISM', 'IQ': 'IQ.Cash', 'PUT': 'PutinCoin', + 'SBTC': 'SBTCT', // SiamBitcoin 'UNI': 'Universe', 'YOYO': 'YOYOW', }, @@ -54036,6 +56199,7 @@ module.exports = class crex24 extends Exchange { "Parameter 'instrument' contains invalid value.": BadSymbol, }, 'broad': { + 'try again later': ExchangeNotAvailable, // {"errorDescription":"Failed to process the request. Please, try again later."} 'API Key': AuthenticationError, // "API Key '9edc48de-d5b0-4248-8e7e-f59ffcd1c7f1' doesn't exist." 'Insufficient funds': InsufficientFunds, // "Insufficient funds: new order requires 10 ETH which is more than the available balance." 'has been delisted.': BadSymbol, // {"errorDescription":"Instrument '$PAC-BTC' has been delisted."} @@ -54635,14 +56799,14 @@ module.exports = class crex24 extends Exchange { } if (priceIsRequired) { if (price === undefined) { - throw new InvalidOrder (this.id + ' createOrder method requires a price argument for a ' + type + ' order'); + throw new InvalidOrder (this.id + ' createOrder() requires a price argument for a ' + type + ' order'); } request['price'] = this.priceToPrecision (symbol, price); } if (stopPriceIsRequired) { const stopPrice = this.safeFloat (params, 'stopPrice'); if (stopPrice === undefined) { - throw new InvalidOrder (this.id + ' createOrder method requires a stopPrice extra param for a ' + type + ' order'); + throw new InvalidOrder (this.id + ' createOrder() requires a stopPrice extra param for a ' + type + ' order'); } else { request['stopPrice'] = this.priceToPrecision (symbol, stopPrice); } @@ -55185,7 +57349,7 @@ module.exports = class crex24 extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],74:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],75:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -56104,7 +58268,7 @@ module.exports = class currencycom extends Exchange { if (market['margin']) { accountId = this.safeInteger (params, 'accountId'); if (accountId === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires an accountId parameter for ' + market['type'] + ' market ' + symbol); + throw new ArgumentsRequired (this.id + ' createOrder() requires an accountId parameter for ' + market['type'] + ' market ' + symbol); } } const uppercaseType = type.toUpperCase (); @@ -56165,7 +58329,7 @@ module.exports = class currencycom extends Exchange { const symbols = this.symbols; const numSymbols = symbols.length; const fetchOpenOrdersRateLimit = parseInt (numSymbols / 2); - throw new ExchangeError (this.id + ' fetchOpenOrders WARNING: fetching open orders without specifying a symbol is rate-limited to one call per ' + fetchOpenOrdersRateLimit.toString () + ' seconds. Do not call this method frequently to avoid ban. Set ' + this.id + '.options["warnOnFetchOpenOrdersWithoutSymbol"] = false to suppress this warning message.'); + throw new ExchangeError (this.id + ' fetchOpenOrders() WARNING: fetching open orders without specifying a symbol is rate-limited to one call per ' + fetchOpenOrdersRateLimit.toString () + ' seconds. Do not call this method frequently to avoid ban. Set ' + this.id + '.options["warnOnFetchOpenOrdersWithoutSymbol"] = false to suppress this warning message.'); } const response = await this.privateGetOpenOrders (this.extend (request, params)); return this.parseOrders (response, market, since, limit); @@ -56173,7 +58337,7 @@ module.exports = class currencycom extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -56208,7 +58372,7 @@ module.exports = class currencycom extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -56306,7 +58470,1492 @@ module.exports = class currencycom extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],75:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],76:[function(require,module,exports){ +'use strict'; + +// --------------------------------------------------------------------------- + +const Exchange = require ('./base/Exchange'); +const { ExchangeError, InsufficientFunds, BadRequest, BadSymbol, InvalidOrder, AuthenticationError, ArgumentsRequired, OrderNotFound, ExchangeNotAvailable } = require ('./base/errors'); +const { TICK_SIZE } = require ('./base/functions/number'); + +// --------------------------------------------------------------------------- + +module.exports = class delta extends Exchange { + describe () { + return this.deepExtend (super.describe (), { + 'id': 'delta', + 'name': 'Delta Exchange', + 'countries': [ 'VC' ], // Saint Vincent and the Grenadines + 'rateLimit': 300, + 'version': 'v2', + // new metainfo interface + 'has': { + 'cancelAllOrders': true, + 'cancelOrder': true, + 'createOrder': true, + 'editOrder': true, + 'fetchBalance': true, + 'fetchClosedOrders': true, + 'fetchDepositAddress': true, + 'fetchCurrencies': true, + 'fetchLedger': true, + 'fetchMarkets': true, + 'fetchMyTrades': true, + 'fetchOHLCV': true, + 'fetchOpenOrders': true, + 'fetchOrderBook': true, + 'fetchStatus': true, + 'fetchTicker': true, + 'fetchTickers': true, + 'fetchTime': true, + 'fetchTrades': true, + }, + 'timeframes': { + '1m': '1m', + '3m': '3m', + '5m': '5m', + '15m': '15m', + '30m': '30m', + '1h': '1h', + '2h': '2h', + '4h': '4h', + '6h': '6h', + '1d': '1d', + '7d': '7d', + '1w': '1w', + '2w': '2w', + '1M': '30d', + }, + 'urls': { + 'logo': 'https://user-images.githubusercontent.com/1294454/99450025-3be60a00-2931-11eb-9302-f4fd8d8589aa.jpg', + 'test': { + 'public': 'https://testnet-api.delta.exchange', + 'private': 'https://testnet-api.delta.exchange', + }, + 'api': { + 'public': 'https://api.delta.exchange', + 'private': 'https://api.delta.exchange', + }, + 'www': 'https://www.delta.exchange', + 'doc': [ + 'https://docs.delta.exchange', + ], + 'fees': 'https://www.delta.exchange/fees', + 'referral': 'https://www.delta.exchange/app/signup/?code=IULYNB', + }, + 'api': { + 'public': { + 'get': [ + 'assets', + 'settings', + 'indices', + 'products', + 'tickers', + 'tickers/{symbol}', + 'l2orderbook/{symbol}', + 'trades/{symbol}', + 'history/candles', + 'history/sparklines', + ], + }, + 'private': { + 'get': [ + 'orders', + 'orders/leverage', + 'positions', + 'positions/margined', + 'orders/history', + 'fills', + 'fills/history/download/csv', + 'wallet/balances', + 'wallet/transactions', + 'wallet/transactions/download', + 'deposits/address', + ], + 'post': [ + 'orders', + 'orders/batch', + 'orders/leverage', + 'positions/change_margin', + ], + 'put': [ + 'orders', + 'orders/batch', + ], + 'delete': [ + 'orders', + 'orders/all', + 'orders/batch', + ], + }, + }, + 'fees': { + 'trading': { + 'tierBased': true, + 'percentage': true, + 'taker': 0.15 / 100, + 'maker': 0.10 / 100, + 'tiers': { + 'taker': [ + [0, 0.15 / 100], + [100, 0.13 / 100], + [250, 0.13 / 100], + [1000, 0.1 / 100], + [5000, 0.09 / 100], + [10000, 0.075 / 100], + [20000, 0.065 / 100], + ], + 'maker': [ + [0, 0.1 / 100], + [100, 0.1 / 100], + [250, 0.09 / 100], + [1000, 0.075 / 100], + [5000, 0.06 / 100], + [10000, 0.05 / 100], + [20000, 0.05 / 100], + ], + }, + }, + }, + 'precisionMode': TICK_SIZE, + 'requiredCredentials': { + 'apiKey': true, + 'secret': false, + }, + 'exceptions': { + 'exact': { + // Margin required to place order with selected leverage and quantity is insufficient. + 'insufficient_margin': InsufficientFunds, // {"error":{"code":"insufficient_margin","context":{"available_balance":"0.000000000000000000","required_additional_balance":"1.618626000000000000000000000"}},"success":false} + 'order_size_exceed_available': InvalidOrder, // The order book doesn't have sufficient liquidity, hence the order couldnt be filled, for example, ioc orders + 'risk_limits_breached': BadRequest, // orders couldn't be placed as it will breach allowed risk limits. + 'invalid_contract': BadSymbol, // The contract/product is either doesn't exist or has already expired. + 'immediate_liquidation': InvalidOrder, // Order will cause immediate liquidation. + 'out_of_bankruptcy': InvalidOrder, // Order prices are out of position bankruptcy limits. + 'self_matching_disrupted_post_only': InvalidOrder, // Self matching is not allowed during auction. + 'immediate_execution_post_only': InvalidOrder, // orders couldn't be placed as it includes post only orders which will be immediately executed + 'bad_schema': BadRequest, // {"error":{"code":"bad_schema","context":{"schema_errors":[{"code":"validation_error","message":"id is required","param":""}]}},"success":false} + 'invalid_api_key': AuthenticationError, // {"success":false,"error":{"code":"invalid_api_key"}} + 'invalid_signature': AuthenticationError, // {"success":false,"error":{"code":"invalid_signature"}} + 'open_order_not_found': OrderNotFound, // {"error":{"code":"open_order_not_found"},"success":false} + 'unavailable': ExchangeNotAvailable, // {"error":{"code":"unavailable"},"success":false} + }, + 'broad': { + }, + }, + }); + } + + async fetchTime (params = {}) { + const response = await this.publicGetSettings (params); + // + // { + // "result":{ + // "server_time":1605472733766141, + // "deto_referral_mining_daily_reward":"25000", + // "deto_total_reward_pool":"100000000", + // "deto_trade_mining_daily_reward":"75000", + // "kyc_deposit_limit":"20", + // "kyc_withdrawal_limit":"2", + // "under_maintenance":"false" + // }, + // "success":true + // } + // + const result = this.safeValue (response, 'result', {}); + return this.safeIntegerProduct (result, 'server_time', 0.001); + } + + async fetchStatus (params = {}) { + const response = await this.publicGetSettings (params); + const result = this.safeValue (response, 'result', {}); + const underMaintenance = this.safeValue (result, 'under_maintenance'); + const status = (underMaintenance === 'true') ? 'maintenance' : 'ok'; + const updated = this.safeIntegerProduct (result, 'server_time', 0.001); + this.status = this.extend (this.status, { + 'status': status, + 'updated': updated, + }); + return this.status; + } + + async fetchCurrencies (params = {}) { + const response = await this.publicGetAssets (params); + // + // { + // "result":[ + // { + // "base_withdrawal_fee":"0.0005", + // "deposit_status":"enabled", + // "id":2, + // "interest_credit":true, + // "interest_slabs":[ + // {"limit":"0.1","rate":"0"}, + // {"limit":"1","rate":"0.05"}, + // {"limit":"5","rate":"0.075"}, + // {"limit":"10","rate":"0.1"}, + // {"limit":"9999999999999999","rate":"0"} + // ], + // "kyc_deposit_limit":"10", + // "kyc_withdrawal_limit":"2", + // "min_withdrawal_amount":"0.001", + // "minimum_precision":4, + // "name":"Bitcoin", + // "precision":8, + // "sort_priority":1, + // "symbol":"BTC", + // "variable_withdrawal_fee":"0", + // "withdrawal_status":"enabled" + // }, + // ], + // "success":true + // } + // + const currencies = this.safeValue (response, 'result', []); + const result = {}; + for (let i = 0; i < currencies.length; i++) { + const currency = currencies[i]; + const id = this.safeString (currency, 'symbol'); + const numericId = this.safeInteger (currency, 'id'); + const code = this.safeCurrencyCode (id); + const depositStatus = this.safeString (currency, 'deposit_status'); + const withdrawalStatus = this.safeString (currency, 'withdrawal_status'); + const depositsEnabled = (depositStatus === 'enabled'); + const withdrawalsEnabled = (withdrawalStatus === 'enabled'); + const active = depositsEnabled && withdrawalsEnabled; + const precision = this.safeInteger (currency, 'precision'); + result[code] = { + 'id': id, + 'numericId': numericId, + 'code': code, + 'name': this.safeString (currency, 'name'), + 'info': currency, // the original payload + 'active': active, + 'fee': this.safeFloat (currency, 'base_withdrawal_fee'), + 'precision': 1 / Math.pow (10, precision), + 'limits': { + 'amount': { 'min': undefined, 'max': undefined }, + 'price': { 'min': undefined, 'max': undefined }, + 'cost': { 'min': undefined, 'max': undefined }, + 'withdraw': { + 'min': this.safeFloat (currency, 'min_withdrawal_amount'), + 'max': undefined, + }, + }, + }; + } + return result; + } + + async loadMarkets (reload = false, params = {}) { + const markets = await super.loadMarkets (reload, params); + const currenciesByNumericId = this.safeValue (this.options, 'currenciesByNumericId'); + if ((currenciesByNumericId === undefined) || reload) { + this.options['currenciesByNumericId'] = this.indexBy (this.currencies, 'numericId'); + } + const marketsByNumericId = this.safeValue (this.options, 'marketsByNumericId'); + if ((marketsByNumericId === undefined) || reload) { + this.options['marketsByNumericId'] = this.indexBy (this.markets, 'numericId'); + } + return markets; + } + + async fetchMarkets (params = {}) { + const response = await this.publicGetProducts (params); + // + // { + // "meta":{ + // "after":null, + // "before":null, + // "limit":100, + // "total_count":81 + // }, + // "result":[ + // { + // "annualized_funding":"5.475000000000000000", + // "is_quanto":false, + // "ui_config":{ + // "default_trading_view_candle":"15", + // "leverage_slider_values":[1,3,5,10,25,50], + // "price_clubbing_values":[0.001,0.005,0.05,0.1,0.5,1,5], + // "show_bracket_orders":false, + // "sort_priority":29, + // "tags":[] + // }, + // "basis_factor_max_limit":"0.15", + // "symbol":"P-LINK-D-151120", + // "id":1584, + // "default_leverage":"5.000000000000000000", + // "maker_commission_rate":"0.0005", + // "contract_unit_currency":"LINK", + // "strike_price":"12.507948", + // "settling_asset":{ + // // asset structure + // }, + // "auction_start_time":null, + // "auction_finish_time":null, + // "settlement_time":"2020-11-15T12:00:00Z", + // "launch_time":"2020-11-14T11:55:05Z", + // "spot_index":{ + // // index structure + // }, + // "trading_status":"operational", + // "tick_size":"0.001", + // "position_size_limit":100000, + // "notional_type":"vanilla", // vanilla, inverse + // "price_band":"0.4", + // "barrier_price":null, + // "description":"Daily LINK PUT options quoted in USDT and settled in USDT", + // "insurance_fund_margin_contribution":"1", + // "quoting_asset":{ + // // asset structure + // }, + // "liquidation_penalty_factor":"0.2", + // "product_specs":{"max_volatility":3,"min_volatility":0.3,"spot_price_band":"0.40"}, + // "initial_margin_scaling_factor":"0.0001", + // "underlying_asset":{ + // // asset structure + // }, + // "state":"live", + // "contract_value":"1", + // "initial_margin":"2", + // "impact_size":5000, + // "settlement_price":null, + // "contract_type":"put_options", // put_options, call_options, move_options, perpetual_futures, interest_rate_swaps, futures, spreads + // "taker_commission_rate":"0.0005", + // "maintenance_margin":"1", + // "short_description":"LINK Daily PUT Options", + // "maintenance_margin_scaling_factor":"0.00005", + // "funding_method":"mark_price", + // "max_leverage_notional":"20000" + // }, + // ], + // "success":true + // } + // + const markets = this.safeValue (response, 'result', []); + const result = []; + for (let i = 0; i < markets.length; i++) { + const market = markets[i]; + let type = this.safeString (market, 'contract_type'); + // const settlingAsset = this.safeValue (market, 'settling_asset', {}); + const quotingAsset = this.safeValue (market, 'quoting_asset', {}); + const underlyingAsset = this.safeValue (market, 'underlying_asset', {}); + const baseId = this.safeString (underlyingAsset, 'symbol'); + const quoteId = this.safeString (quotingAsset, 'symbol'); + const id = this.safeString (market, 'symbol'); + const numericId = this.safeInteger (market, 'id'); + const base = this.safeCurrencyCode (baseId); + const quote = this.safeCurrencyCode (quoteId); + let symbol = id; + let swap = false; + let future = false; + let option = false; + if (type === 'perpetual_futures') { + type = 'swap'; + swap = true; + future = false; + option = false; + if (id.indexOf ('_') < 0) { + symbol = base + '/' + quote; + } + } else if ((type === 'call_options') || (type === 'put_options') || (type === 'move_options')) { + type = 'option'; + swap = false; + option = true; + future = false; + } else if (type === 'futures') { + type = 'future'; + swap = false; + option = false; + future = true; + } + const precision = { + 'amount': 1.0, // number of contracts + 'price': this.safeFloat (market, 'tick_size'), + }; + const limits = { + 'amount': { + 'min': 1.0, + 'max': this.safeFloat (market, 'position_size_limit'), + }, + 'price': { + 'min': precision['price'], + 'max': undefined, + }, + 'cost': { + 'min': this.safeFloat (market, 'min_size'), + 'max': undefined, + }, + }; + const state = this.safeString (market, 'state'); + const active = (state === 'live'); + const maker = this.safeFloat (market, 'maker_commission_rate'); + const taker = this.safeFloat (market, 'taker_commission_rate'); + result.push ({ + 'id': id, + 'numericId': numericId, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'baseId': baseId, + 'quoteId': quoteId, + 'type': type, + 'option': option, + 'swap': swap, + 'future': future, + 'maker': maker, + 'taker': taker, + 'precision': precision, + 'limits': limits, + 'info': market, + 'active': active, + }); + } + return result; + } + + parseTicker (ticker, market = undefined) { + // + // fetchTicker, fetchTickers + // + // { + // "close":15837.5, + // "high":16354, + // "low":15751.5, + // "mark_price":"15820.100867", + // "open":16140.5, + // "product_id":139, + // "size":640552, + // "spot_price":"15827.050000000001", + // "symbol":"BTCUSDT", + // "timestamp":1605373550208262, + // "turnover":10298630.3735, + // "turnover_symbol":"USDT", + // "turnover_usd":10298630.3735, + // "volume":640.5520000000001 + // } + // + const timestamp = this.safeIntegerProduct (ticker, 'timestamp', 0.001); + const marketId = this.safeString (ticker, 'symbol'); + const symbol = this.safeSymbol (marketId, market); + const last = this.safeFloat (ticker, 'close'); + const open = this.safeFloat (ticker, 'open'); + let change = undefined; + let average = undefined; + let percentage = undefined; + if ((open !== undefined) && (last !== undefined)) { + change = last - open; + average = this.sum (last, open) / 2; + if (open !== 0.0) { + percentage = (change / open) * 100; + } + } + const baseVolume = this.safeFloat (ticker, 'volume'); + const quoteVolume = this.safeFloat (ticker, 'turnover'); + const vwap = this.vwap (baseVolume, quoteVolume); + return { + 'symbol': symbol, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'high': this.safeFloat (ticker, 'high'), + 'low': this.safeFloat (ticker, 'low'), + 'bid': undefined, + 'bidVolume': undefined, + 'ask': undefined, + 'askVolume': undefined, + 'vwap': vwap, + 'open': open, + 'close': last, + 'last': last, + 'previousClose': undefined, + 'change': change, + 'percentage': percentage, + 'average': average, + 'baseVolume': baseVolume, + 'quoteVolume': quoteVolume, + 'info': ticker, + }; + } + + async fetchTicker (symbol, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'symbol': market['id'], + }; + const response = await this.publicGetTickersSymbol (this.extend (request, params)); + // + // { + // "result":{ + // "close":15837.5, + // "high":16354, + // "low":15751.5, + // "mark_price":"15820.100867", + // "open":16140.5, + // "product_id":139, + // "size":640552, + // "spot_price":"15827.050000000001", + // "symbol":"BTCUSDT", + // "timestamp":1605373550208262, + // "turnover":10298630.3735, + // "turnover_symbol":"USDT", + // "turnover_usd":10298630.3735, + // "volume":640.5520000000001 + // }, + // "success":true + // } + // + const result = this.safeValue (response, 'result', {}); + return this.parseTicker (result, market); + } + + async fetchTickers (symbols = undefined, params = {}) { + await this.loadMarkets (); + const response = await this.publicGetTickers (params); + // + // { + // "result":[ + // { + // "close":0.003966, + // "high":0.004032, + // "low":0.003606, + // "mark_price":"0.00396328", + // "open":0.003996, + // "product_id":1327, + // "size":6242, + // "spot_price":"0.0039555", + // "symbol":"AAVEBTC", + // "timestamp":1605374143864107, + // "turnover":23.997904999999996, + // "turnover_symbol":"BTC", + // "turnover_usd":387957.4544782897, + // "volume":6242 + // }, + // ], + // "success":true + // } + // + const tickers = this.safeValue (response, 'result', []); + const result = {}; + for (let i = 0; i < tickers.length; i++) { + const ticker = this.parseTicker (tickers[i]); + const symbol = ticker['symbol']; + result[symbol] = ticker; + } + return this.filterByArray (result, 'symbol', symbols); + } + + async fetchOrderBook (symbol, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + 'symbol': this.marketId (symbol), + }; + if (limit !== undefined) { + request['depth'] = limit; + } + const response = await this.publicGetL2orderbookSymbol (this.extend (request, params)); + // + // { + // "result":{ + // "buy":[ + // {"price":"15814.0","size":912}, + // {"price":"15813.5","size":1279}, + // {"price":"15813.0","size":1634}, + // ], + // "sell":[ + // {"price":"15814.5","size":625}, + // {"price":"15815.0","size":982}, + // {"price":"15815.5","size":1328}, + // ], + // "symbol":"BTCUSDT" + // }, + // "success":true + // } + // + const result = this.safeValue (response, 'result', {}); + return this.parseOrderBook (result, undefined, 'buy', 'sell', 'price', 'size'); + } + + parseTrade (trade, market = undefined) { + // + // public fetchTrades + // + // { + // "buyer_role":"maker", + // "price":"15896.5", + // "seller_role":"taker", + // "size":241, + // "symbol":"BTCUSDT", + // "timestamp":1605376684714595 + // } + // + // private fetchMyTrades + // + // { + // "commission":"0.008335000000000000", + // "created_at":"2020-11-16T19:07:19Z", + // "fill_type":"normal", + // "id":"e7ff05c233a74245b72381f8dd91d1ce", + // "meta_data":{ + // "effective_commission_rate":"0.0005", + // "order_price":"16249", + // "order_size":1, + // "order_type":"market_order", + // "order_unfilled_size":0, + // "trading_fee_credits_used":"0" + // }, + // "order_id":"152999629", + // "price":"16669", + // "product":{ + // "contract_type":"perpetual_futures", + // "contract_unit_currency":"BTC", + // "contract_value":"0.001", + // "id":139, + // "notional_type":"vanilla", + // "quoting_asset":{"minimum_precision":2,"precision":6,"symbol":"USDT"}, + // "settling_asset":{"minimum_precision":2,"precision":6,"symbol":"USDT"}, + // "symbol":"BTCUSDT", + // "tick_size":"0.5", + // "underlying_asset":{"minimum_precision":4,"precision":8,"symbol":"BTC"} + // }, + // "product_id":139, + // "role":"taker", + // "side":"sell", + // "size":1 + // } + // + const id = this.safeString (trade, 'id'); + const orderId = this.safeString (trade, 'order_id'); + let timestamp = this.parse8601 (this.safeString (trade, 'created_at')); + timestamp = this.safeIntegerProduct (trade, 'timestamp', 0.001, timestamp); + const price = this.safeFloat (trade, 'price'); + const amount = this.safeFloat (trade, 'size'); + let cost = undefined; + if ((amount !== undefined) && (price !== undefined)) { + cost = amount * price; + } + const product = this.safeValue (trade, 'product', {}); + const marketId = this.safeString (product, 'symbol'); + const symbol = this.safeSymbol (marketId, market); + const sellerRole = this.safeString (trade, 'seller_role'); + let side = this.safeString (trade, 'side'); + if (side === undefined) { + if (sellerRole === 'taker') { + side = 'sell'; + } else if (sellerRole === 'maker') { + side = 'buy'; + } + } + const takerOrMaker = this.safeString (trade, 'role'); + const metaData = this.safeValue (trade, 'meta_data', {}); + let type = this.safeString (metaData, 'order_type'); + if (type !== undefined) { + type = type.replace ('_order', ''); + } + const feeCost = this.safeFloat (trade, 'commission'); + let fee = undefined; + if (feeCost !== undefined) { + const settlingAsset = this.safeValue (product, 'settling_asset', {}); + const feeCurrencyId = this.safeString (settlingAsset, 'symbol'); + const feeCurrencyCode = this.safeCurrencyCode (feeCurrencyId); + fee = { + 'cost': feeCost, + 'currency': feeCurrencyCode, + }; + } + return { + 'id': id, + 'order': orderId, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'symbol': symbol, + 'type': type, + 'side': side, + 'price': price, + 'amount': amount, + 'cost': cost, + 'takerOrMaker': takerOrMaker, + 'fee': fee, + 'info': trade, + }; + } + + async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'symbol': market['id'], + }; + const response = await this.publicGetTradesSymbol (this.extend (request, params)); + // + // { + // "result":[ + // { + // "buyer_role":"maker", + // "price":"15896.5", + // "seller_role":"taker", + // "size":241, + // "symbol":"BTCUSDT", + // "timestamp":1605376684714595 + // } + // ], + // "success":true + // } + // + const result = this.safeValue (response, 'result', []); + return this.parseTrades (result, market, since, limit); + } + + parseOHLCV (ohlcv, market = undefined) { + // + // { + // "time":1605393120, + // "open":15989, + // "high":15989, + // "low":15987.5, + // "close":15987.5, + // "volume":565 + // } + // + return [ + this.safeTimestamp (ohlcv, 'time'), + this.safeFloat (ohlcv, 'open'), + this.safeFloat (ohlcv, 'high'), + this.safeFloat (ohlcv, 'low'), + this.safeFloat (ohlcv, 'close'), + this.safeFloat (ohlcv, 'volume'), + ]; + } + + async fetchOHLCV (symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'symbol': market['id'], + 'resolution': this.timeframes[timeframe], + }; + const duration = this.parseTimeframe (timeframe); + limit = limit ? limit : 2000; // max 2000 + if (since === undefined) { + const end = this.seconds (); + request['end'] = end; + request['start'] = end - limit * duration; + } else { + const start = parseInt (since / 1000); + request['start'] = start; + request['end'] = this.sum (start, limit * duration); + } + const response = await this.publicGetHistoryCandles (this.extend (request, params)); + // + // { + // "success":true, + // "result":[ + // {"time":1605393120,"open":15989,"high":15989,"low":15987.5,"close":15987.5,"volume":565}, + // {"time":1605393180,"open":15966,"high":15966,"low":15959,"close":15959,"volume":24}, + // {"time":1605393300,"open":15973,"high":15973,"low":15973,"close":15973,"volume":1288}, + // ] + // } + // + const result = this.safeValue (response, 'result', []); + return this.parseOHLCVs (result, market, timeframe, since, limit); + } + + async fetchBalance (params = {}) { + await this.loadMarkets (); + const response = await this.privateGetWalletBalances (params); + // + // { + // "result":[ + // { + // "asset_id":1, + // "available_balance":"0", + // "balance":"0", + // "commission":"0", + // "id":154883, + // "interest_credit":"0", + // "order_margin":"0", + // "pending_referral_bonus":"0", + // "pending_trading_fee_credit":"0", + // "position_margin":"0", + // "trading_fee_credit":"0", + // "user_id":22142 + // }, + // ], + // "success":true + // } + // + const balances = this.safeValue (response, 'result', []); + const result = { 'info': response }; + const currenciesByNumericId = this.safeValue (this.options, 'currenciesByNumericId', {}); + for (let i = 0; i < balances.length; i++) { + const balance = balances[i]; + const currencyId = this.safeString (balance, 'asset_id'); + const currency = this.safeValue (currenciesByNumericId, currencyId); + const code = (currency === undefined) ? currencyId : currency['code']; + const account = this.account (); + account['total'] = this.safeFloat (balance, 'balance'); + account['free'] = this.safeFloat (balance, 'available_balance'); + result[code] = account; + } + return this.parseBalance (result); + } + + async fetchPosition (symbol, params = undefined) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'product_id': market['numericId'], + }; + const response = await this.privateGetPositions (this.extend (request, params)); + // + // { + // "result":{ + // "entry_price":null, + // "size":0, + // "timestamp":1605454074268079 + // }, + // "success":true + // } + // + const result = this.safeValue (response, 'result', {}); + return result; + } + + async fetchPositions (symbols = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const response = await this.privateGetPositionsMargined (params); + // + // { + // "success": true, + // "result": [ + // { + // "user_id": 0, + // "size": 0, + // "entry_price": "string", + // "margin": "string", + // "liquidation_price": "string", + // "bankruptcy_price": "string", + // "adl_level": 0, + // "product_id": 0 + // } + // ] + // } + // + const result = this.safeValue (response, 'result', []); + return result; + } + + parseOrderStatus (status) { + const statuses = { + 'open': 'open', + 'pending': 'open', + 'closed': 'closed', + 'cancelled': 'canceled', + }; + return this.safeString (statuses, status, status); + } + + parseOrder (order, market = undefined) { + // + // createOrder, cancelOrder, editOrder, fetchOpenOrders, fetchClosedOrders + // + // { + // "average_fill_price":null, + // "bracket_order":null, + // "bracket_stop_loss_limit_price":null, + // "bracket_stop_loss_price":null, + // "bracket_take_profit_limit_price":null, + // "bracket_take_profit_price":null, + // "bracket_trail_amount":null, + // "cancellation_reason":null, + // "client_order_id":null, + // "close_on_trigger":"false", + // "commission":"0", + // "created_at":"2020-11-16T02:38:26Z", + // "id":152870626, + // "limit_price":"10000", + // "meta_data":{"source":"api"}, + // "order_type":"limit_order", + // "paid_commission":"0", + // "product_id":139, + // "reduce_only":false, + // "side":"buy", + // "size":0, + // "state":"open", + // "stop_order_type":null, + // "stop_price":null, + // "stop_trigger_method":"mark_price", + // "time_in_force":"gtc", + // "trail_amount":null, + // "unfilled_size":0, + // "user_id":22142 + // } + // + const id = this.safeString (order, 'id'); + const clientOrderId = this.safeString (order, 'client_order_id'); + const timestamp = this.parse8601 (this.safeString (order, 'created_at')); + const marketId = this.safeString (order, 'product_id'); + const marketsByNumericId = this.safeValue (this.options, 'marketsByNumericId', {}); + market = this.safeValue (marketsByNumericId, marketId, market); + const symbol = (market === undefined) ? marketId : market['symbol']; + const status = this.parseOrderStatus (this.safeString (order, 'state')); + const side = this.safeString (order, 'side'); + let type = this.safeString (order, 'order_type'); + type = type.replace ('_order', ''); + const price = this.safeFloat (order, 'limit_price'); + const amount = this.safeFloat (order, 'size'); + const remaining = this.safeFloat (order, 'unfilled_size'); + let filled = undefined; + if ((amount !== undefined) && (remaining !== undefined)) { + filled = Math.max (0, amount - remaining); + } + let cost = undefined; + const average = this.safeFloat (order, 'average_fill_price'); + if ((average !== undefined) && filled) { + cost = average * filled; + } + let fee = undefined; + const feeCost = this.safeFloat (order, 'paid_commission'); + if (feeCost !== undefined) { + let feeCurrencyCode = undefined; + if (market !== undefined) { + const settlingAsset = this.safeValue (market['info'], 'settling_asset', {}); + const feeCurrencyId = this.safeString (settlingAsset, 'symbol'); + feeCurrencyCode = this.safeCurrencyCode (feeCurrencyId); + } + fee = { + 'cost': feeCost, + 'currency': feeCurrencyCode, + }; + } + return { + 'info': order, + 'id': id, + 'clientOrderId': clientOrderId, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'lastTradeTimestamp': undefined, + 'symbol': symbol, + 'type': type, + 'side': side, + 'price': price, + 'amount': amount, + 'cost': cost, + 'average': average, + 'filled': filled, + 'remaining': remaining, + 'status': status, + 'fee': fee, + 'trades': undefined, + }; + } + + async createOrder (symbol, type, side, amount, price = undefined, params = {}) { + await this.loadMarkets (); + const orderType = type + '_order'; + const market = this.market (symbol); + const request = { + 'product_id': market['numericId'], + // 'limit_price': this.priceToPrecision (symbol, price), + 'size': this.amountToPrecision (symbol, amount), + 'side': side, + 'order_type': orderType, + // 'client_order_id': 'string', + // 'time_in_force': 'gtc', // gtc, ioc, fok + // 'post_only': 'false', // 'true', + // 'reduce_only': 'false', // 'true', + }; + if (type === 'limit') { + request['limit_price'] = this.priceToPrecision (symbol, price); + } + const clientOrderId = this.safeString2 (params, 'clientOrderId', 'client_order_id'); + params = this.omit (params, [ 'clientOrderId', 'client_order_id' ]); + if (clientOrderId !== undefined) { + request['client_order_id'] = clientOrderId; + } + const response = await this.privatePostOrders (this.extend (request, params)); + // + // { + // "result":{ + // "average_fill_price":null, + // "bracket_order":null, + // "bracket_stop_loss_limit_price":null, + // "bracket_stop_loss_price":null, + // "bracket_take_profit_limit_price":null, + // "bracket_take_profit_price":null, + // "bracket_trail_amount":null, + // "cancellation_reason":null, + // "client_order_id":null, + // "close_on_trigger":"false", + // "commission":"0", + // "created_at":"2020-11-16T02:38:26Z", + // "id":152870626, + // "limit_price":"10000", + // "meta_data":{"source":"api"}, + // "order_type":"limit_order", + // "paid_commission":"0", + // "product_id":139, + // "reduce_only":false, + // "side":"buy", + // "size":0, + // "state":"open", + // "stop_order_type":null, + // "stop_price":null, + // "stop_trigger_method":"mark_price", + // "time_in_force":"gtc", + // "trail_amount":null, + // "unfilled_size":0, + // "user_id":22142 + // }, + // "success":true + // } + // + const result = this.safeValue (response, 'result', {}); + return this.parseOrder (result, market); + } + + async editOrder (id, symbol, type, side, amount, price = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'id': parseInt (id), + 'product_id': market['numericId'], + // 'limit_price': this.priceToPrecision (symbol, price), + // 'size': this.amountToPrecision (symbol, amount), + }; + if (amount !== undefined) { + request['size'] = parseInt (this.amountToPrecision (symbol, amount)); + } + if (price !== undefined) { + request['limit_price'] = this.priceToPrecision (symbol, price); + } + const response = await this.privatePutOrders (this.extend (request, params)); + // + // { + // "success": true, + // "result": { + // "id": "ashb1212", + // "product_id": 27, + // "limit_price": "9200", + // "side": "buy", + // "size": 100, + // "unfilled_size": 50, + // "user_id": 1, + // "order_type": "limit_order", + // "state": "open", + // "created_at": "..." + // } + // } + // + const result = this.safeValue (response, 'result'); + return this.parseOrder (result, market); + } + + async cancelOrder (id, symbol = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'id': parseInt (id), + 'product_id': market['numericId'], + }; + const response = await this.privateDeleteOrders (this.extend (request, params)); + // + // { + // "result":{ + // "average_fill_price":null, + // "bracket_order":null, + // "bracket_stop_loss_limit_price":null, + // "bracket_stop_loss_price":null, + // "bracket_take_profit_limit_price":null, + // "bracket_take_profit_price":null, + // "bracket_trail_amount":null, + // "cancellation_reason":"cancelled_by_user", + // "client_order_id":null, + // "close_on_trigger":"false", + // "commission":"0", + // "created_at":"2020-11-16T02:38:26Z", + // "id":152870626, + // "limit_price":"10000", + // "meta_data":{"source":"api"}, + // "order_type":"limit_order", + // "paid_commission":"0", + // "product_id":139, + // "reduce_only":false, + // "side":"buy", + // "size":0, + // "state":"cancelled", + // "stop_order_type":null, + // "stop_price":null, + // "stop_trigger_method":"mark_price", + // "time_in_force":"gtc", + // "trail_amount":null, + // "unfilled_size":0, + // "user_id":22142 + // }, + // "success":true + // } + // + const result = this.safeValue (response, 'result'); + return this.parseOrder (result, market); + } + + async cancelAllOrders (symbol = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + ' cancelAllOrders() requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'product_id': market['numericId'], + // 'cancel_limit_orders': 'true', + // 'cancel_stop_orders': 'true', + }; + const response = this.privateDeleteOrdersAll (this.extend (request, params)); + // + // { + // "result":{}, + // "success":true + // } + // + return response; + } + + async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + return await this.fetchOrdersWithMethod ('privateGetOrders', symbol, since, limit, params); + } + + async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + return await this.fetchOrdersWithMethod ('privateGetOrdersHistory', symbol, since, limit, params); + } + + async fetchOrdersWithMethod (method, symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'product_ids': market['id'], // comma-separated + // 'contract_types': types, // comma-separated, futures, perpetual_futures, call_options, put_options, interest_rate_swaps, move_options, spreads + // 'order_types': types, // comma-separated, market, limit, stop_market, stop_limit, all_stop + // 'start_time': since * 1000, + // 'end_time': this.microseconds (), + // 'after': string, // after cursor for pagination + // 'before': string, // before cursor for pagination + // 'page_size': limit, // number of records per page + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['product_ids'] = market['numericId']; // accepts a comma-separated list of ids + } + if (since !== undefined) { + request['start_time'] = since.toString () + '000'; + } + if (limit !== undefined) { + request['page_size'] = limit; + } + const response = await this[method] (this.extend (request, params)); + // + // { + // "success": true, + // "result": [ + // { + // "id": "ashb1212", + // "product_id": 27, + // "limit_price": "9200", + // "side": "buy", + // "size": 100, + // "unfilled_size": 50, + // "user_id": 1, + // "order_type": "limit_order", + // "state": "open", + // "created_at": "..." + // } + // ], + // "meta": { + // "after": "string", + // "before": "string" + // } + // } + // + const result = this.safeValue (response, 'result', []); + return this.parseOrders (result, market, since, limit); + } + + async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'product_ids': market['id'], // comma-separated + // 'contract_types': types, // comma-separated, futures, perpetual_futures, call_options, put_options, interest_rate_swaps, move_options, spreads + // 'start_time': since * 1000, + // 'end_time': this.microseconds (), + // 'after': string, // after cursor for pagination + // 'before': string, // before cursor for pagination + // 'page_size': limit, // number of records per page + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['product_ids'] = market['numericId']; // accepts a comma-separated list of ids + } + if (since !== undefined) { + request['start_time'] = since.toString () + '000'; + } + if (limit !== undefined) { + request['page_size'] = limit; + } + const response = await this.privateGetFills (this.extend (request, params)); + // + // { + // "meta":{ + // "after":null, + // "before":null, + // "limit":10, + // "total_count":2 + // }, + // "result":[ + // { + // "commission":"0.008335000000000000", + // "created_at":"2020-11-16T19:07:19Z", + // "fill_type":"normal", + // "id":"e7ff05c233a74245b72381f8dd91d1ce", + // "meta_data":{ + // "effective_commission_rate":"0.0005", + // "order_price":"16249", + // "order_size":1, + // "order_type":"market_order", + // "order_unfilled_size":0, + // "trading_fee_credits_used":"0" + // }, + // "order_id":"152999629", + // "price":"16669", + // "product":{ + // "contract_type":"perpetual_futures", + // "contract_unit_currency":"BTC", + // "contract_value":"0.001", + // "id":139, + // "notional_type":"vanilla", + // "quoting_asset":{"minimum_precision":2,"precision":6,"symbol":"USDT"}, + // "settling_asset":{"minimum_precision":2,"precision":6,"symbol":"USDT"}, + // "symbol":"BTCUSDT", + // "tick_size":"0.5", + // "underlying_asset":{"minimum_precision":4,"precision":8,"symbol":"BTC"} + // }, + // "product_id":139, + // "role":"taker", + // "side":"sell", + // "size":1 + // } + // ], + // "success":true + // } + // + const result = this.safeValue (response, 'result', []); + return this.parseTrades (result, market, since, limit); + } + + async fetchLedger (code = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'asset_id': currency['numericId'], + // 'end_time': this.seconds (), + // 'after': 'string', // after cursor for pagination + // 'before': 'string', // before cursor for pagination + // 'page_size': limit, + }; + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + request['asset_id'] = currency['numericId']; + } + if (limit !== undefined) { + request['page_size'] = limit; + } + const response = await this.privateGetWalletTransactions (this.extend (request, params)); + // + // { + // "meta":{"after":null,"before":null,"limit":10,"total_count":1}, + // "result":[ + // { + // "amount":"29.889184", + // "asset_id":5, + // "balance":"29.889184", + // "created_at":"2020-11-15T21:25:01Z", + // "meta_data":{ + // "deposit_id":3884, + // "transaction_id":"0x41a60174849828530abb5008e98fc63c9b598288743ec4ba9620bcce900a3b8d" + // }, + // "transaction_type":"deposit", + // "user_id":22142, + // "uuid":"70bb5679da3c4637884e2dc63efaa846" + // } + // ], + // "success":true + // } + // + const result = this.safeValue (response, 'result', []); + return this.parseLedger (result, currency, since, limit); + } + + parseLedgerEntryType (type) { + const types = { + 'pnl': 'pnl', + 'deposit': 'transaction', + 'withdrawal': 'transaction', + 'commission': 'fee', + 'conversion': 'trade', + // 'perpetual_futures_funding': 'perpetual_futures_funding', + // 'withdrawal_cancellation': 'withdrawal_cancellation', + 'referral_bonus': 'referral', + 'commission_rebate': 'rebate', + // 'promo_credit': 'promo_credit', + }; + return this.safeString (types, type, type); + } + + parseLedgerEntry (item, currency = undefined) { + // + // { + // "amount":"29.889184", + // "asset_id":5, + // "balance":"29.889184", + // "created_at":"2020-11-15T21:25:01Z", + // "meta_data":{ + // "deposit_id":3884, + // "transaction_id":"0x41a60174849828530abb5008e98fc63c9b598288743ec4ba9620bcce900a3b8d" + // }, + // "transaction_type":"deposit", + // "user_id":22142, + // "uuid":"70bb5679da3c4637884e2dc63efaa846" + // } + // + const id = this.safeString (item, 'uuid'); + let direction = undefined; + const account = undefined; + const metaData = this.safeValue (item, 'meta_data', {}); + const referenceId = this.safeString (metaData, 'transaction_id'); + const referenceAccount = undefined; + let type = this.safeString (item, 'transaction_type'); + if ((type === 'deposit') || (type === 'commission_rebate') || (type === 'referral_bonus') || (type === 'pnl') || (type === 'withdrawal_cancellation') || (type === 'promo_credit')) { + direction = 'in'; + } else if ((type === 'withdrawal') || (type === 'commission') || (type === 'conversion') || (type === 'perpetual_futures_funding')) { + direction = 'out'; + } + type = this.parseLedgerEntryType (type); + const currencyId = this.safeInteger (item, 'asset_id'); + const currenciesByNumericId = this.safeValue (this.options, 'currenciesByNumericId'); + currency = this.safeValue (currenciesByNumericId, currencyId, currency); + const code = (currency === undefined) ? undefined : currency['code']; + const amount = this.safeFloat (item, 'amount'); + const timestamp = this.parse8601 (this.safeString (item, 'created_at')); + const after = this.safeFloat (item, 'balance'); + const before = Math.max (0, after - amount); + const status = 'ok'; + return { + 'info': item, + 'id': id, + 'direction': direction, + 'account': account, + 'referenceId': referenceId, + 'referenceAccount': referenceAccount, + 'type': type, + 'currency': code, + 'amount': amount, + 'before': before, + 'after': after, + 'status': status, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'fee': undefined, + }; + } + + async fetchDepositAddress (code, params = {}) { + await this.loadMarkets (); + const currency = this.currency (code); + const request = { + 'asset_symbol': currency['id'], + }; + const response = await this.privateGetDepositsAddress (this.extend (request, params)); + // + // { + // "success":true, + // "result":{ + // "id":19628, + // "user_id":22142, + // "address":"0x0eda26523397534f814d553a065d8e46b4188e9a", + // "status":"active", + // "updated_at":"2020-11-15T20:25:53.000Z", + // "created_at":"2020-11-15T20:25:53.000Z", + // "asset_symbol":"USDT", + // "custodian":"onc" + // } + // } + // + const result = this.safeValue (response, 'result', {}); + const address = this.safeString (result, 'address'); + this.checkAddress (address); + return { + 'currency': code, + 'address': address, + 'tag': undefined, + 'info': response, + }; + } + + sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { + const requestPath = '/' + this.version + '/' + this.implodeParams (path, params); + let url = this.urls['api'][api] + requestPath; + const query = this.omit (params, this.extractParams (path)); + if (api === 'public') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } else if (api === 'private') { + this.checkRequiredCredentials (); + const timestamp = this.seconds ().toString (); + headers = { + 'api-key': this.apiKey, + 'timestamp': timestamp, + }; + let auth = method + timestamp + requestPath; + if ((method === 'GET') || (method === 'DELETE')) { + if (Object.keys (query).length) { + const queryString = '?' + this.urlencode (query); + auth += queryString; + url += queryString; + } + } else { + body = this.json (query); + auth += body; + headers['Content-Type'] = 'application/json'; + } + const signature = this.hmac (this.encode (auth), this.encode (this.secret)); + headers['signature'] = signature; + } + return { 'url': url, 'method': method, 'body': body, 'headers': headers }; + } + + handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { + if (response === undefined) { + return; + } + // + // {"error":{"code":"insufficient_margin","context":{"available_balance":"0.000000000000000000","required_additional_balance":"1.618626000000000000000000000"}},"success":false} + // + const error = this.safeValue (response, 'error', {}); + const errorCode = this.safeString (error, 'code'); + if (errorCode !== undefined) { + const feedback = this.id + ' ' + body; + this.throwExactlyMatchedException (this.exceptions['exact'], errorCode, feedback); + this.throwBroadlyMatchedException (this.exceptions['broad'], errorCode, feedback); + throw new ExchangeError (feedback); // unknown message + } + } +}; + +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],77:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -57087,7 +60736,7 @@ module.exports = class deribit extends Exchange { const now = this.milliseconds (); if (since === undefined) { if (limit === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a since argument or a limit argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a since argument or a limit argument'); } else { request['start_timestamp'] = now - (limit - 1) * duration * 1000; request['end_timestamp'] = now; @@ -57320,7 +60969,7 @@ module.exports = class deribit extends Exchange { 'cancelled': 'canceled', 'filled': 'closed', 'rejected': 'rejected', - // 'untriggered': 'open', + 'untriggered': 'open', }; return this.safeString (statuses, status, status); } @@ -57405,7 +61054,8 @@ module.exports = class deribit extends Exchange { trades = this.parseTrades (trades, market); } const timeInForce = this.parseTimeInForce (this.safeString (order, 'time_in_force')); - const stopPrice = undefined; + const stopPrice = this.safeValue (order, 'stop_price'); + const postOnly = this.safeValue (order, 'post_only'); return { 'info': order, 'id': id, @@ -57416,6 +61066,7 @@ module.exports = class deribit extends Exchange { 'symbol': market['symbol'], 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -57500,13 +61151,13 @@ module.exports = class deribit extends Exchange { if (price !== undefined) { request['price'] = this.priceToPrecision (symbol, price); } else { - throw new ArgumentsRequired (this.id + ' createOrder requires a price argument for a ' + type + ' order'); + throw new ArgumentsRequired (this.id + ' createOrder() requires a price argument for a ' + type + ' order'); } } if (stopPriceIsRequired) { const stopPrice = this.safeFloat2 (params, 'stop_price', 'stopPrice'); if (stopPrice === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires a stop_price or stopPrice param for a ' + type + ' order'); + throw new ArgumentsRequired (this.id + ' createOrder() requires a stop_price or stopPrice param for a ' + type + ' order'); } else { request['stop_price'] = this.priceToPrecision (symbol, stopPrice); } @@ -57575,10 +61226,10 @@ module.exports = class deribit extends Exchange { async editOrder (id, symbol, type, side, amount = undefined, price = undefined, params = {}) { if (amount === undefined) { - throw new ArgumentsRequired (this.id + ' editOrder requires an amount argument'); + throw new ArgumentsRequired (this.id + ' editOrder() requires an amount argument'); } if (price === undefined) { - throw new ArgumentsRequired (this.id + ' editOrder requires a price argument'); + throw new ArgumentsRequired (this.id + ' editOrder() requires a price argument'); } await this.loadMarkets (); const request = { @@ -57940,7 +61591,7 @@ module.exports = class deribit extends Exchange { const request = { 'instrument_name': market['id'], }; - const response = await this.privateGetPosition (this.extend (request, params)); + const response = await this.privateGetGetPosition (this.extend (request, params)); // // { // "jsonrpc": "2.0", @@ -57979,7 +61630,7 @@ module.exports = class deribit extends Exchange { const request = { 'currency': currency['id'], }; - const response = await this.privateGetPositions (this.extend (request, params)); + const response = await this.privateGetGetPositions (this.extend (request, params)); // // { // "jsonrpc": "2.0", @@ -58093,7 +61744,7 @@ module.exports = class deribit extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],76:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],78:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -58598,7 +62249,7 @@ module.exports = class digifinex extends Exchange { async fetchTickers (symbols = undefined, params = {}) { const apiKey = this.safeValue (params, 'apiKey', this.apiKey); if (!apiKey) { - throw new ArgumentsRequired (this.id + ' fetchTicker is a private v2 endpoint that requires an `exchange.apiKey` credential or an `apiKey` extra parameter'); + throw new ArgumentsRequired (this.id + ' fetchTickers() is a private v2 endpoint that requires an `exchange.apiKey` credential or an `apiKey` extra parameter'); } await this.loadMarkets (); const request = { @@ -58644,7 +62295,7 @@ module.exports = class digifinex extends Exchange { async fetchTicker (symbol, params = {}) { const apiKey = this.safeValue (params, 'apiKey', this.apiKey); if (!apiKey) { - throw new ArgumentsRequired (this.id + ' fetchTicker is a private v2 endpoint that requires an `exchange.apiKey` credential or an `apiKey` extra parameter'); + throw new ArgumentsRequired (this.id + ' fetchTicker() is a private v2 endpoint that requires an `exchange.apiKey` credential or an `apiKey` extra parameter'); } await this.loadMarkets (); const market = this.market (symbol); @@ -59090,6 +62741,7 @@ module.exports = class digifinex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -59380,7 +63032,7 @@ module.exports = class digifinex extends Exchange { const address = this.safeString (depositAddress, 'address'); const tag = this.safeString (depositAddress, 'addressTag'); const currencyId = this.safeStringUpper (depositAddress, 'currency'); - const code = this.safeCurrencCode (currencyId); + const code = this.safeCurrencyCode (currencyId); return { 'info': depositAddress, 'code': code, @@ -59623,7 +63275,7 @@ module.exports = class digifinex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],77:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],79:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -60279,7 +63931,7 @@ module.exports = class dsx extends Exchange { await this.loadMarkets (); const market = this.market (symbol); if (type === 'market' && price === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires a price argument even for market orders, that is the worst price that you agree to fill your order for'); + throw new ArgumentsRequired (this.id + ' createOrder() requires a price argument even for market orders, that is the worst price that you agree to fill your order for'); } const request = { 'pair': market['id'], @@ -60466,6 +64118,7 @@ module.exports = class dsx extends Exchange { 'lastTradeTimestamp': lastTradeTimestamp, 'type': orderType, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -60898,7 +64551,1557 @@ module.exports = class dsx extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],78:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],80:[function(require,module,exports){ +'use strict'; + +// ---------------------------------------------------------------------------- + +const Exchange = require ('./base/Exchange'); +const { ExchangeError, ArgumentsRequired, BadSymbol } = require ('./base/errors'); + +// ---------------------------------------------------------------------------- + +module.exports = class equos extends Exchange { + describe () { + return this.deepExtend (super.describe (), { + 'id': 'equos', + 'name': 'EQUOS', + 'countries': [ 'US', 'SG' ], // United States, Singapore + 'rateLimit': 10, + 'has': { + 'CORS': false, + 'cancelOrder': true, + 'createOrder': true, + 'editOrder': true, + 'fetchBalance': true, + 'fetchCanceledOrders': true, + 'fetchClosedOrders': true, + 'fetchCurrencies': true, + 'fetchDepositAddress': true, + 'fetchDeposits': true, + 'fetchMarkets': true, + 'fetchMyTrades': true, + 'fetchOHLCV': true, + 'fetchOrder': true, + 'fetchOrderBook': true, + 'fetchOrders': true, + 'fetchTicker': false, + 'fetchTrades': true, + 'fetchTradingFees': true, + 'fetchWithdrawals': true, + 'withdraw': true, + }, + 'timeframes': { + '1m': 1, + '5m': 2, + '15m': 3, + '1h': 4, + '6h': 5, + '1d': 6, + '7d': 7, + }, + 'urls': { + 'logo': 'https://user-images.githubusercontent.com/1294454/107758499-05edd180-6d38-11eb-9e09-0b69602a7a15.jpg', + 'test': { + 'public': 'https://testnet.equos.io/api', + 'private': 'https://testnet.equos.io/api', + }, + 'api': { + 'public': 'https://equos.io/api', + 'private': 'https://equos.io/api', + }, + 'www': 'https://equos.io', + 'doc': [ + 'https://developer.equos.io', + ], + 'referral': 'https://equos.io?referredByCode=zpa8kij4ouvBFup3', + }, + 'api': { + 'public': { + 'get': [ + 'health', + 'getInstruments', + 'getInstrumentPairs', + 'getOrderBook', + 'getRisk', + 'getTradeHistory', + 'getFundingRateHistory', + 'getChart', + 'getExchangeInfo', // not documented + ], + }, + 'private': { + 'post': [ + 'logon', + 'order', + 'cancelOrder', + 'cancelReplaceOrder', + 'getOrder', + 'getOrders', + 'getOrderStatus', + 'getOrderHistory', + 'userTrades', + 'getPositions', + 'cancelAll', + 'getUserHistory', + 'getRisk', + 'getDepositAddresses', + 'getDepositHistory', // not documented + 'getWithdrawRequests', + 'sendWithdrawRequest', + 'getTransferHistory', + ], + }, + }, + 'requiredCredentials': { + 'apiKey': true, + 'secret': true, + 'uid': true, + }, + 'exceptions': { + 'broad': { + 'symbol not found': BadSymbol, + }, + }, + }); + } + + async fetchMarkets (params = {}) { + const request = { + 'verbose': true, + }; + const response = await this.publicGetGetInstrumentPairs (this.extend (request, params)); + // + // { + // "instrumentPairs":[ + // { + // "instrumentId":52, + // "symbol":"BTC/USDC", + // "quoteId":1, + // "baseId":3, + // "price_scale":2, + // "quantity_scale":6, + // "securityStatus":1, + // "securityDesc":"BTC/USDC", // "BTC/USDC[F]" + // "assetType":"PAIR", // "PERPETUAL_SWAP" + // "currency":"BTC", + // "contAmtCurr":"USDC", + // "settlCurrency":"USDC", + // "commCurrency":"USDC", + // "cfiCode":"XXXXXX", + // "securityExchange":"XXXX", + // "instrumentPricePrecision":2, + // "minPriceIncrement":1.0, + // "minPriceIncrementAmount":1.0, + // "roundLot":1, + // "minTradeVol":0.001000, + // "maxTradeVol":0.000000 + // // contracts onlye + // "qtyType":0, + // "contractMultiplier":1.0, + // "issueDate":1598608087000 + // }, + // ] + // } + // + const instrumentPairs = this.safeValue (response, 'instrumentPairs', []); + const markets = []; + for (let i = 0; i < instrumentPairs.length; i++) { + const market = this.parseMarket (instrumentPairs[i]); + markets.push (market); + } + return markets; + } + + parseMarket (market) { + // + // { + // "instrumentId":52, + // "symbol":"BTC/USDC", // "BTC/USDC[F]" + // "quoteId":1, + // "baseId":3, + // "price_scale":2, + // "quantity_scale":6, + // "securityStatus":1, + // "securityDesc":"BTC/USDC", // "BTC/USDC[F]" + // "assetType":"PAIR", // "PERPETUAL_SWAP" + // "currency":"BTC", + // "contAmtCurr":"USDC", + // "settlCurrency":"USDC", + // "commCurrency":"USDC", + // "cfiCode":"XXXXXX", + // "securityExchange":"XXXX", + // "instrumentPricePrecision":2, + // "minPriceIncrement":1.0, + // "minPriceIncrementAmount":1.0, + // "roundLot":1, + // "minTradeVol":0.001000, + // "maxTradeVol":0.000000 + // // contracts onlye + // "qtyType":0, + // "contractMultiplier":1.0, + // "issueDate":1598608087000 + // } + // + const id = this.safeString (market, 'instrumentId'); + const uppercaseId = this.safeString (market, 'symbol'); + const assetType = this.safeString (market, 'assetType'); + const spot = (assetType === 'PAIR'); + const swap = (assetType === 'PERPETUAL_SWAP'); + const type = swap ? 'swap' : 'spot'; + const baseId = this.safeString (market, 'currency'); + const quoteId = this.safeString (market, 'contAmtCurr'); + const base = this.safeCurrencyCode (baseId); + const quote = this.safeCurrencyCode (quoteId); + const symbol = swap ? uppercaseId : (base + '/' + quote); + const status = this.safeInteger (market, 'securityStatus'); + const active = (status === 1); + const precision = { + 'amount': this.safeInteger (market, 'quantity_scale'), + 'price': this.safeInteger (market, 'price_scale'), + }; + return { + 'id': id, + 'uppercaseId': uppercaseId, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'baseId': baseId, + 'quoteId': quoteId, + 'type': type, + 'spot': spot, + 'swap': swap, + 'active': active, + 'precision': precision, + 'limits': { + 'amount': { + 'min': this.safeFloat (market, 'minTradeVol'), + 'max': undefined, + }, + 'price': { + 'min': undefined, + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + }, + 'info': market, + }; + } + + async fetchCurrencies (params = {}) { + const response = await this.publicGetGetInstruments (params); + // + // { + // "instruments": [ + // [ + // 3, // id + // "BTC", // symbol + // 2, // price_scale + // 6, // amount_scale + // 1, // status + // 0, // withdraw_fee + // "BTC", // name + // true, // withdrawal_pct + // ], + // ] + // } + // + const currencies = {}; + const instruments = this.safeValue (response, 'instruments', []); + for (let i = 0; i < instruments.length; i++) { + const currency = this.parseCurrency (instruments[i]); + const code = currency['code']; + currencies[code] = currency; + } + return currencies; + } + + parseCurrency (currency) { + // + // [ + // 3, // 0 id + // "BTC", // 1 symbol + // 2, // 2 price_scale + // 6, // 3 amount_scale + // 1, // 4 status + // 0, // 5 withdraw_fee + // "BTC", // 6 name + // true, // 7 withdrawal_pct + // ], + // + const id = this.safeString (currency, 0); + const uppercaseId = this.safeString (currency, 1); + const code = this.safeCurrencyCode (uppercaseId); + const priceScale = this.safeInteger (currency, 2); + const amountScale = this.safeInteger (currency, 3); + const precision = Math.max (priceScale, amountScale); + const name = this.safeString (currency, 6); + const status = this.safeInteger (currency, 4); + const active = (status === 1); + const fee = this.safeFloat (currency, 5); // withdraw_fee + return { + 'id': id, + 'info': currency, + 'uppercaseId': uppercaseId, + 'code': code, + 'name': name, + 'precision': precision, + 'fee': fee, + 'active': active, + 'limits': { + 'amount': { + 'min': undefined, + 'max': undefined, + }, + 'price': { + 'min': undefined, + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + 'withdraw': { + 'min': undefined, + 'max': undefined, + }, + }, + }; + } + + async fetchOHLCV (symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'pairId': parseInt (market['id']), + 'timespan': this.timeframes[timeframe], + }; + if (limit !== undefined) { + request['limit'] = limit; + } + const response = await this.publicGetGetChart (this.extend (request, params)); + // + // { + // "pairId":57, + // "t":1, + // "s":"ETH/BTC", + // "lastPx":44099, + // "lastQty":100000, + // "o":0.043831000000000016, + // "h":0.04427100000000002, + // "l":0.032000000000000015, + // "c":0.04409900000000002, + // "v":0.21267333000000016, + // "q":4.850000000000001, + // "chart":[ + // [1612519260000,44099,44099,44099,44099,0,441], + // [1612519200000,44099,44099,44099,44099,0,440], + // [1612519140000,44269,44271,44269,44271,0,439], + // ] + // } + // + const chart = this.safeValue (response, 'chart', []); + return this.parseOHLCVs (chart, market, timeframe, since, limit); + } + + parseOHLCV (ohlcv, market = undefined) { + // + // [ + // 1612519260000, // timestamp + // 44099, // open + // 44099, // high + // 44099, // low + // 44099, // close + // 0, // base volume + // 441, // seqNumber + // ] + // + const timestamp = this.safeInteger (ohlcv, 0); + const open = this.convertFromScale (ohlcv[1], market['precision']['price']); + const high = this.convertFromScale (ohlcv[2], market['precision']['price']); + const low = this.convertFromScale (ohlcv[3], market['precision']['price']); + const close = this.convertFromScale (ohlcv[4], market['precision']['price']); + const volume = this.convertFromScale (ohlcv[5], market['precision']['amount']); + // volume = ohlcv[5]; + return [timestamp, open, high, low, close, volume]; + } + + parseBidAsk (bidask, priceKey = 0, amountKey = 1, market = undefined) { + if (market === undefined) { + throw new ArgumentsRequired (this.id + ' parseBidAsk() requires a market argument'); + } + const price = this.safeFloat (bidask, priceKey); + const amount = this.safeFloat (bidask, amountKey); + return [ + this.convertFromScale (price, market['precision']['price']), + this.convertFromScale (amount, market['precision']['amount']), + ]; + } + + parseOrderBook (orderbook, timestamp = undefined, bidsKey = 'bids', asksKey = 'asks', priceKey = 0, amountKey = 1, market = undefined) { + const result = { + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'nonce': undefined, + }; + const sides = [ bidsKey, asksKey ]; + for (let i = 0; i < sides.length; i++) { + const side = sides[i]; + const orders = []; + const bidasks = this.safeValue (orderbook, side); + for (let k = 0; k < bidasks.length; k++) { + orders.push (this.parseBidAsk (bidasks[k], priceKey, amountKey, market)); + } + result[side] = orders; + } + result[bidsKey] = this.sortBy (result[bidsKey], 0, true); + result[asksKey] = this.sortBy (result[asksKey], 0); + return result; + } + + async fetchOrderBook (symbol, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'pairId': parseInt (market['id']), + }; + const response = await this.publicGetGetOrderBook (this.extend (request, params)); + // + // { + // "bids":[ + // [4000480,30000,1612644984667], + // [3999304,200000,1612644984667], + // [3998862,50000,1612644984667], + // ], + // "asks":[ + // [4001962,1790000,1612644984667], + // [4002616,1000,1612644984667], + // [4003889,1000,1612644984667], + // ], + // "usdMark":40011.02, + // "marketStatus":0, + // "estFundingRate":0.0, + // "fundingRateTime":0, + // "auctionPrice":0.0, + // "auctionVolume":0.0 + // } + // + return this.parseOrderBook (response, undefined, 'bids', 'asks', 0, 1, market); + } + + async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'pairId': parseInt (market['id']), + }; + const response = await this.publicGetGetTradeHistory (this.extend (request, params)); + // + // { + // "trades":[ + // [4022800,47000,"20210206-21:39:12.886",256323,1], + // [4023066,1000,"20210206-21:38:55.030",256322,1], + // [4022406,50000,"20210206-21:36:56.334",256321,1], + // ] + // } + // + const trades = this.safeValue (response, 'trades', []); + return this.parseTrades (trades, market, since, limit, params); + } + + parseTrade (trade, market = undefined) { + // + // public fetchTrades + // + // [ + // 4022800, // 0 price + // 47000, // 1 quantity + // "20210206-21:39:12.886", // 2 timestamp + // 256323, // 3 sequence number + // 1 // 4 taker side 1 = buy, 2 = sell + // ] + // + // private fetchMyTrades + // + // { + // "account":3583, + // "commission":"-0.015805", + // "commCurrency":"USDC", + // "execId":265757, + // "ordType":"2", + // "ordStatus":"2", + // "execType":"F", + // "aggressorIndicator":true, + // "orderId":388953019, + // "price":"1842.04", + // "qty":"0.010000", + // "lastPx":"1756.22", + // "avgPx":"1756.22", + // "cumQty":"0.010000", + // "quoteQty":"0.010000", + // "side":"BUY", + // "symbol":"ETH/USDC", + // "clOrdId":"1613106766970339107", + // "submitterId":3583, + // "targetStrategy":"0", + // "time":1613106766971, + // "date":"20210212-05:12:46.971" + // } + // + let id = undefined; + let timestamp = undefined; + let orderId = undefined; + let type = undefined; + let side = undefined; + let price = undefined; + let amount = undefined; + let cost = undefined; + let fee = undefined; + let symbol = undefined; + if (Array.isArray (trade)) { + id = this.safeString (trade, 3); + price = this.convertFromScale (this.safeInteger (trade, 0), market['precision']['price']); + amount = this.convertFromScale (this.safeInteger (trade, 1), market['precision']['amount']); + timestamp = this.toMilliseconds (this.safeString (trade, 2)); + const takerSide = this.safeInteger (trade, 4); + if (takerSide === 1) { + side = 'buy'; + } else if (takerSide === 2) { + side = 'sell'; + } + } else { + id = this.safeString (trade, 'execId'); + timestamp = this.safeInteger (trade, 'time'); + const marketId = this.safeString (trade, 'symbol'); + symbol = this.safeSymbol (marketId, market); + orderId = this.safeString (trade, 'orderId'); + side = this.safeStringLower (trade, 'side'); + type = this.parseOrderType (this.safeString (trade, 'ordType')); + price = this.safeFloat (trade, 'lastPx'); + amount = this.safeFloat (trade, 'quoteQty'); + let feeCost = this.safeFloat (trade, 'commission'); + if (feeCost !== undefined) { + feeCost = -feeCost; + const feeCurrencyId = this.safeString (trade, 'commCurrency'); + const feeCurrencyCode = this.safeCurrencyCode (feeCurrencyId); + fee = { + 'cost': feeCost, + 'currency': feeCurrencyCode, + }; + } + } + if ((symbol === undefined) && (market !== undefined)) { + symbol = market['symbol']; + } + if (cost === undefined) { + if ((amount !== undefined) && (price !== undefined)) { + cost = amount * price; + } + } + return { + 'info': trade, + 'id': id, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'symbol': symbol, + 'order': orderId, + 'type': type, + 'side': side, + 'takerOrMaker': undefined, + 'price': price, + 'amount': amount, + 'cost': cost, + 'fee': fee, + }; + } + + async fetchBalance (params = {}) { + await this.loadMarkets (); + const response = await this.privatePostGetPositions (params); + // { + // "positions":[ + // { + // "instrumentId":1, + // "userId":3583, + // "quantity":0, + // "availableQuantity":0, + // "quantity_scale":6, + // "symbol":"USDC", + // "assetType":"ASSET", + // "usdCostBasis":0.0, + // "usdAvgCostBasis":0.0, + // "usdValue":0.0, + // "usdUnrealized":0.0, + // "usdRealized":0.0, + // "baseUsdMark":1.0, + // "settleCoinUsdMark":0.0, + // "settleCoinUnrealized":0.0, + // "settleCoinRealized":0.0 + // }, + // ] + // } + const positions = this.safeValue (response, 'positions', []); + const result = { + 'info': response, + }; + for (let i = 0; i < positions.length; i++) { + const position = positions[i]; + const assetType = this.safeString (position, 'assetType'); + if (assetType === 'ASSET') { + const currencyId = this.safeString (position, 'symbol'); + const code = this.safeCurrencyCode (currencyId); + const quantity = this.safeFloat (position, 'quantity'); + const availableQuantity = this.safeFloat (position, 'availableQuantity'); + const scale = this.safeInteger (position, 'quantity_scale'); + const account = this.account (); + account['free'] = this.convertFromScale (availableQuantity, scale); + account['total'] = this.convertFromScale (quantity, scale); + result[code] = account; + } + } + return this.parseBalance (result); + } + + async createOrder (symbol, type, side, amount, price = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const orderSide = (side === 'buy') ? 1 : 2; + const quantityScale = this.getScale (amount); + const request = { + // 'id': 0, + // 'account': 0, // required for institutional users + 'instrumentId': parseInt (market['id']), + 'symbol': market['uppercaseId'], + // 'clOrdId': '', + 'side': orderSide, // 1 = buy, 2 = sell + // 'ordType': 1, // 1 = market, 2 = limit, 3 = stop market, 4 = stop limit + // 'price': this.priceToPrecision (symbol, price), // required for limit and stop limit orders + // 'price_scale': this.getScale (price), + 'quantity': this.convertToScale (amount, quantityScale), + 'quantity_scale': quantityScale, + // 'stopPx': this.priceToPrecision (symbol, stopPx), + // 'stopPx_scale': this.getScale (stopPx), + // 'targetStrategy': 0, + // 'isHidden': false, + // 'timeInForce': 1, // 1 = Good Till Cancel (GTC), 3 = Immediate or Cancel (IOC), 4 = Fill or Kill (FOK), 5 = Good Till Crossing (GTX), 6 = Good Till Date (GTD) + // 'interval': 0, + // 'intervalCount': 0, + // 'intervalDelay': 0, + // 'price2': 0, + // 'price2_scale': this.getScale (price2), + // 'blockWaitAck': 0, // 1 = wait for order acknowledgement, when set, response will include the matching engine "orderId" field + }; + if (type === 'market') { + request['ordType'] = 1; + } else if (type === 'limit') { + request['ordType'] = 2; + request['price'] = this.convertToScale (price, this.getScale (price)); + } else { + const stopPrice = this.safeFloat2 (params, 'stopPrice', 'stopPx'); + params = this.omit (params, [ 'stopPrice', 'stopPx' ]); + if (stopPrice === undefined) { + if (type === 'stop') { + if (price === undefined) { + throw new ArgumentsRequired (this.id + ' createOrder() requires a price argument or a stopPrice parameter or a stopPx parameter for ' + type + ' orders'); + } + request['ordType'] = 3; + request['stopPx'] = this.convertToScale (price, this.getScale (price)); + } else if (type === 'stop limit') { + throw new ArgumentsRequired (this.id + ' createOrder() requires a stopPrice parameter or a stopPx parameter for ' + type + ' orders'); + } + } else { + if (type === 'stop') { + request['ordType'] = 3; + request['stopPx'] = this.convertToScale (stopPrice, this.getScale (stopPrice)); + } else if (type === 'stop limit') { + request['ordType'] = 4; + const priceScale = this.getScale (price); + const stopPriceScale = this.getScale (stopPrice); + request['price_scale'] = priceScale; + request['stopPx_scale'] = stopPriceScale; + request['stopPx'] = this.convertToScale (stopPrice, stopPriceScale); + request['price'] = this.convertToScale (price, priceScale); + } + } + } + const response = await this.privatePostOrder (this.extend (request, params)); + // + // { + // "status":"sent", + // "id":385617863, + // "instrumentId":53, + // "clOrdId":"1613037510849637345", + // "userId":3583, + // "price":2000, + // "quantity":200, + // "ordType":2 + // } + // + return this.parseOrder (response, market); + } + + async cancelOrder (id, symbol = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'origOrderId': parseInt (id), + 'instrumentId': parseInt (market['id']), + }; + const response = await this.privatePostCancelOrder (this.extend (request, params)); + // + // { + // "status":"sent", + // "id":0, + // "origOrderId":385613629, + // "instrumentId":53, + // "userId":3583, + // "price":0, + // "quantity":0, + // "ordType":0 + // } + // + return this.parseOrder (response, market); + } + + async editOrder (id, symbol, type, side, amount, price = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const orderSide = (side === 'buy') ? 1 : 2; + const quantityScale = this.getScale (amount); + const request = { + // 'id': 0, + 'origOrderId': id, + // 'account': 0, // required for institutional users + 'instrumentId': parseInt (market['id']), + 'symbol': market['uppercaseId'], + // 'clOrdId': '', + 'side': orderSide, // 1 = buy, 2 = sell + // 'ordType': 1, // 1 = market, 2 = limit, 3 = stop market, 4 = stop limit + // 'price': this.priceToPrecision (symbol, price), // required for limit and stop limit orders + // 'price_scale': this.getScale (price), + 'quantity': this.convertToScale (amount, quantityScale), + 'quantity_scale': quantityScale, + // 'stopPx': this.priceToPrecision (symbol, stopPx), + // 'stopPx_scale': this.getScale (stopPx), + // 'timeInForce': 1, // 1 = Good Till Cancel (GTC), 3 = Immediate or Cancel (IOC), 4 = Fill or Kill (FOK), 5 = Good Till Crossing (GTX), 6 = Good Till Date (GTD) + }; + if (type === 'market') { + request['ordType'] = 1; + } else if (type === 'limit') { + request['ordType'] = 2; + request['price'] = this.convertToScale (price, this.getScale (price)); + } else { + const stopPrice = this.safeFloat2 (params, 'stopPrice', 'stopPx'); + params = this.omit (params, [ 'stopPrice', 'stopPx' ]); + if (stopPrice === undefined) { + if (type === 'stop') { + if (price === undefined) { + throw new ArgumentsRequired (this.id + ' editOrder() requires a price argument or a stopPrice parameter or a stopPx parameter for ' + type + ' orders'); + } + request['ordType'] = 3; + request['stopPx'] = this.convertToScale (price, this.getScale (price)); + } else if (type === 'stop limit') { + throw new ArgumentsRequired (this.id + ' editOrder() requires a stopPrice parameter or a stopPx parameter for ' + type + ' orders'); + } + } else { + if (type === 'stop') { + request['ordType'] = 3; + request['stopPx'] = this.convertToScale (stopPrice, this.getScale (stopPrice)); + } else if (type === 'stop limit') { + request['ordType'] = 4; + const priceScale = this.getScale (price); + const stopPriceScale = this.getScale (stopPrice); + request['price_scale'] = priceScale; + request['stopPx_scale'] = stopPriceScale; + request['stopPx'] = this.convertToScale (stopPrice, stopPriceScale); + request['price'] = this.convertToScale (price, priceScale); + } + } + } + const response = await this.privatePostOrder (this.extend (request, params)); + // + // { + // "status":"sent", + // "id":385617863, + // "instrumentId":53, + // "clOrdId":"1613037510849637345", + // "userId":3583, + // "price":2000, + // "quantity":200, + // "ordType":2 + // } + // + return this.parseOrder (response, market); + } + + async fetchOrder (id, symbol = undefined, params = {}) { + await this.loadMarkets (); + const request = { + 'orderId': parseInt (id), + }; + const response = await this.privatePostGetOrderStatus (this.extend (request, params)); + // + // { + // "orderId":388953019, + // "clOrdId":"1613106766970339107", + // "symbol":"ETH/USDC", + // "instrumentId":53, + // "side":"1", + // "userId":3583, + // "account":3583, + // "execType":"F", + // "ordType":"2", + // "ordStatus":"2", + // "timeInForce":"3", + // "timeStamp":"20210212-05:12:46.971", + // "execId":265757, + // "targetStrategy":0, + // "isHidden":false, + // "isReduceOnly":false, + // "isLiquidation":false, + // "fee":0, + // "fee_scale":6, + // "feeInstrumentId":1, + // "price":184204, + // "price_scale":2, + // "quantity":10000, + // "quantity_scale":6, + // "leavesQty":0, + // "leavesQty_scale":6, + // "cumQty":10000, + // "cumQty_scale":6, + // "lastPx":175622, + // "lastPx_scale":2, + // "avgPx":175622, + // "avgPx_scale":2, + // "lastQty":10000, + // "lastQty_scale":6 + // } + // + return this.parseOrder (response); + } + + async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const request = { + 'ordStatus': '2', // '0' = New, '1' = Partially filled, '2' = Filled, '4' = Cancelled, '8' = Rejected, 'C' = Expired + }; + return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); + } + + async fetchCanceledOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const request = { + 'ordStatus': '4', // '0' = New, '1' = Partially filled, '2' = Filled, '4' = Cancelled, '8' = Rejected, 'C' = Expired + }; + return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); + } + + async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + let market = undefined; + const request = { + // 'account': id, // for institutional users + // 'symbol': marketSymbol, // cannot be used with instrumentId + // 'instrumentId': market['numericId'], + // 'limit': limit, + // 'execType': execType, // '0' = New, '4' = Canceled, '5' = Replace, '8' = Rejected, 'C' = Expired, 'F' = Fill Status, 'I' = Order Status + // 'ordStatus': ordStatus, // '0' = New, '1' = Partially filled, '2' = Filled, '4' = Cancelled, '8' = Rejected, 'C' = Expired + }; + if (symbol !== undefined) { + market = this.market (symbol); + request['instrumentId'] = parseInt (market['id']); + } + if (limit !== undefined) { + request['limit'] = limit; + } + const response = await this.privatePostGetOrders (this.extend (request, params)); + // + // { + // "isInitialSnap":false, + // "orders":[ + // { + // "orderId":385613629, + // "orderUpdateSeq":1, + // "clOrdId":"1613037448945798198", + // "symbol":"ETH/USDC", + // "instrumentId":53, + // "side":"1", + // "userId":3583, + // "account":3583, + // "execType":"4", + // "ordType":"2", + // "ordStatus":"C", + // "timeInForce":"3", + // "timeStamp":"20210211-09:57:28.944", + // "execId":0, + // "targetStrategy":0, + // "isHidden":false, + // "isReduceOnly":false, + // "isLiquidation":false, + // "fee":0, + // "feeTotal":0, + // "fee_scale":0, + // "feeInstrumentId":0, + // "price":999, + // "price_scale":2, + // "quantity":10000000, + // "quantity_scale":6, + // "leavesQty":10000000, + // "leavesQty_scale":6, + // "cumQty":0, + // "cumQty_scale":0, + // "lastPx":0, + // "lastPx_scale":2, + // "avgPx":0, + // "avgPx_scale":0, + // "lastQty":0, + // "lastQty_scale":6 + // } + // ] + // } + // + const orders = this.safeValue (response, 'orders', []); + return this.parseOrders (orders, market, since, limit, params); + } + + async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'account': 123, // for institutional users + // 'instrumentId': market['id'], + // 'startTime': since, + // 'endTime': this.milliseconds (), + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['instrumentId'] = market['id']; + } + if (since !== undefined) { + request['startTime'] = since; + } + const response = await this.privatePostUserTrades (this.extend (request, params)); + // + // { + // "trades":[ + // { + // "account":3583, + // "commission":"-0.015805", + // "commCurrency":"USDC", + // "execId":265757, + // "ordType":"2", + // "ordStatus":"2", + // "execType":"F", + // "aggressorIndicator":true, + // "orderId":388953019, + // "price":"1842.04", + // "qty":"0.010000", + // "lastPx":"1756.22", + // "avgPx":"1756.22", + // "cumQty":"0.010000", + // "quoteQty":"0.010000", + // "side":"BUY", + // "symbol":"ETH/USDC", + // "clOrdId":"1613106766970339107", + // "submitterId":3583, + // "targetStrategy":"0", + // "time":1613106766971, + // "date":"20210212-05:12:46.971" + // } + // ] + // } + // + const trades = this.safeValue (response, 'trades', []); + return this.parseTrades (trades, market, since, limit, params); + } + + async fetchDepositAddress (code, params = {}) { + await this.loadMarkets (); + const currency = this.currency (code); + const request = { + 'instrumentId': parseInt (currency['id']), + }; + const response = await this.privatePostGetDepositAddresses (this.extend (request, params)); + // + // { + // "addresses":[ + // {"instrumentId":1,"userId":3583,"symbol":"USDC","address":"0xdff47af071ea3c537e57278290516cda32a78b97","status":1} + // ] + // } + // + const addresses = this.safeValue (response, 'addresses', []); + const address = this.safeValue (addresses, 0); + return this.parseDepositAddress (address, currency); + } + + parseDepositAddress (depositAddress, currency = undefined) { + // + // { + // "instrumentId":1, + // "userId":3583, + // "symbol":"USDC", + // "address":"0xdff47af071ea3c537e57278290516cda32a78b97", + // "status":1 + // } + // + const currencyId = this.safeString (depositAddress, 'symbol'); + const code = this.safeCurrencyCode (currencyId, currency); + const address = this.safeString (depositAddress, 'address'); + this.checkAddress (address); + return { + 'currency': code, + 'address': address, + 'tag': undefined, + 'info': depositAddress, + }; + } + + async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = {}; + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + request['instrumentId'] = parseInt (currency['id']); + } + const response = await this.privatePostGetDepositHistory (this.extend (request, params)); + // + // { + // "deposits":[ + // { + // "id":4309, + // "instrumentId":1, + // "userId":3583, + // "symbol":"USDC", + // "address":"null", + // "timestamp":"1613021112189", + // "status":1, + // "balance":0.0, + // "balance_change":100.0, + // "confirms":1, + // "transactionId":"caba4500-489f-424e-abd7-b4dabc09a800" + // } + // ] + // } + // + const deposits = this.safeValue (response, 'deposits', []); + return this.parseTransactions (deposits, currency, since, limit, { 'type': 'deposit' }); + } + + async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = {}; + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + request['instrumentId'] = parseInt (currency['id']); + } + const response = await this.privatePostGetWithdrawRequests (this.extend (request, params)); + // + // { + // "addresses":[ + // { + // "id":3841, + // "instrumentId":3, + // "userId":4245, + // "symbol":"BTC", + // "address":"XXXXXYYYYYZZZZZ", + // "timestamp":"20200806-11:04:35.053", + // "status":0, + // "balance":1, + // "balance_scale":3, + // "confirms":0, + // "transactionId":"null" + // } + // ] + // } + // + const withdrawals = this.safeValue (response, 'addresses', []); + return this.parseTransactions (withdrawals, currency, since, limit, { 'type': 'withdrawal' }); + } + + parseTransaction (transaction, currency = undefined) { + // + // fetchDeposits, fetchWithdrawals + // + // { + // "id":4309, + // "instrumentId":1, + // "userId":3583, + // "symbol":"USDC", + // "address":"null", + // "timestamp":"1613021112189", + // "status":1, + // "balance":0.0, + // "balance_change":100.0, + // "confirms":1, + // "transactionId":"caba4500-489f-424e-abd7-b4dabc09a800" + // } + // + // withdraw + // + // { + // "instrumentId": 1, + // "userId": 23750, + // "symbol": "USDC", + // "timestamp": "20200201-05:37:16.584", + // "status": 1, + // "userUuid": "b9e33713-c28f-468f-99bd-f6deab0dd854", + // "currencyCode": "USDC", + // "address": "2MvW97yT6E2Kq8bWc1aj1DqfbgMzjRNk2LE", + // "quantity": 20, + // "requestUuid": "56782b34-8a78-4f5f-b164-4b8f7d583b7f", + // "transactionUuid": "1004eb0f-41e1-41e9-9d48-8eefcc6c09f2", + // "transactionId": "WS23436", + // "destinationWalletAlias": "Test", + // "quantity_scale": 0 + // } + // + const id = this.safeString (transaction, 'id', 'transactionId'); + const txid = this.safeString (transaction, 'transactionUuid'); + const timestamp = this.safeInteger (transaction, 'timestamp'); + let address = this.safeString (transaction, 'address'); + if (address === 'null') { + address = undefined; + } + const type = this.safeString (transaction, 'type'); + let amount = this.safeFloat (transaction, 'balance_change'); + if (amount === undefined) { + amount = this.safeInteger (transaction, 'quantity'); + const amountScale = this.safeInteger (transaction, 'quantity_scale'); + amount = this.convertFromScale (amount, amountScale); + } + const currencyId = this.safeString (transaction, 'symbol'); + const code = this.safeCurrencyCode (currencyId, currency); + const status = this.parseTransactionStatus (this.safeString (transaction, 'status')); + return { + 'info': transaction, + 'id': id, + 'txid': txid, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'addressFrom': undefined, + 'address': address, + 'addressTo': undefined, + 'tagFrom': undefined, + 'tag': undefined, + 'tagTo': undefined, + 'type': type, + 'amount': amount, + 'currency': code, + 'status': status, + 'updated': undefined, + 'comment': undefined, + 'fee': undefined, + }; + } + + parseTransactionStatus (status) { + const statuses = { + '0': 'pending', + '1': 'ok', + }; + return this.safeString (statuses, status, status); + } + + async withdraw (code, amount, address, tag = undefined, params = {}) { + this.checkAddress (address); + await this.loadMarkets (); + const currency = this.currency (code); + const scale = this.getScale (amount); + const quantity = this.convertToScale (amount, scale); + const request = { + 'instrumentId': parseInt (currency['id']), + 'symbol': currency['uppercaseId'], + 'quantity': quantity, + 'quantity_scale': scale, + 'address': address, + }; + const response = await this.privatePostSendWithdrawRequest (this.extend (request, params)); + // + // { + // "instrumentId": 1, + // "userId": 23750, + // "symbol": "USDC", + // "timestamp": "20200201-05:37:16.584", + // "status": 1, + // "userUuid": "b9e33713-c28f-468f-99bd-f6deab0dd854", + // "currencyCode": "USDC", + // "address": "2MvW97yT6E2Kq8bWc1aj1DqfbgMzjRNk2LE", + // "quantity": 20, + // "requestUuid": "56782b34-8a78-4f5f-b164-4b8f7d583b7f", + // "transactionUuid": "1004eb0f-41e1-41e9-9d48-8eefcc6c09f2", + // "transactionId": "WS23436", + // "destinationWalletAlias": "Test", + // "quantity_scale": 0 + // } + // + return this.parseTransaction (response, currency); + } + + async fetchTradingFees (params = {}) { + // getExchangeInfo + const response = await this.publicGetGetExchangeInfo (params); + const tradingFees = this.safeValue (response, 'spotFees', []); + const taker = {}; + const maker = {}; + for (let i = 0; i < tradingFees.length; i++) { + const tradingFee = tradingFees[i]; + if (this.safeString (tradingFee, 'tier') !== undefined) { + taker[tradingFee['tier']] = this.safeFloat (tradingFee, 'taker'); + maker[tradingFee['tier']] = this.safeFloat (tradingFee, 'maker'); + } + } + return { + 'info': tradingFees, + 'tierBased': true, + 'maker': maker, + 'taker': taker, + }; + } + + async fetchTradingLimits (symbols = undefined, params = {}) { + await this.loadMarkets (); + // getExchangeInfo + const response = await this.publicGetGetExchangeInfo (params); + const tradingLimits = this.safeValue (response, 'tradingLimits', []); + // To-do parsing response when available + return { + 'info': tradingLimits, + 'limits': { + 'amount': { + 'min': undefined, + 'max': undefined, + }, + 'price': { + 'min': undefined, + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + }, + }; + } + + async fetchFundingLimits (params = {}) { + // getExchangeInfo + const response = await this.publicGetGetExchangeInfo (params); + const withdrawLimits = this.safeValue (response, 'withdrawLimits', []); + // TO-DO parse response when available + return { + 'info': withdrawLimits, + 'withdraw': undefined, + }; + } + + parseOrder (order, market = undefined) { + // + // createOrder, editOrder, cancelOrder + // + // { + // "status":"sent", + // "id":385617863, + // "instrumentId":53, + // "clOrdId":"1613037510849637345", + // "userId":3583, + // "price":2000, + // "quantity":200, + // "ordType":2 + // } + // + // fetchOrders, fetchOrder + // + // { + // "orderId":385613629, + // "orderUpdateSeq":1, + // "clOrdId":"1613037448945798198", + // "symbol":"ETH/USDC", + // "instrumentId":53, + // "side":"1", + // "userId":3583, + // "account":3583, + // "execType":"4", + // "ordType":"2", + // "ordStatus":"C", + // "timeInForce":"3", + // "timeStamp":"20210211-09:57:28.944", + // "execId":0, + // "targetStrategy":0, + // "isHidden":false, + // "isReduceOnly":false, + // "isLiquidation":false, + // "fee":0, + // "feeTotal":0, + // "fee_scale":0, + // "feeInstrumentId":0, + // "price":999, + // "price_scale":2, + // "quantity":10000000, + // "quantity_scale":6, + // "leavesQty":10000000, + // "leavesQty_scale":6, + // "cumQty":0, + // "cumQty_scale":0, + // "lastPx":0, + // "lastPx_scale":2, + // "avgPx":0, + // "avgPx_scale":0, + // "lastQty":0, + // "lastQty_scale":6 + // } + // + let id = this.safeString2 (order, 'orderId', 'id'); + id = this.safeString (order, 'origOrderId', id); + const clientOrderId = this.safeString (order, 'clOrdId'); + const type = this.parseOrderType (this.safeString (order, 'ordType')); + const side = this.parseOrderSide (this.safeString (order, 'side')); + const status = this.parseOrderStatus (this.safeString (order, 'ordStatus')); + const marketId = this.safeString (order, 'instrumentId'); + const symbol = this.safeSymbol (marketId, market); + const timestamp = this.toMilliseconds (this.safeString (order, 'timeStamp')); + const lastTradeTimestamp = undefined; + let price = this.safeInteger (order, 'price'); + if (price === 0) { + price = undefined; + } + const priceScale = this.safeInteger (order, 'price_scale'); + price = this.convertFromScale (price, priceScale); + let amount = this.safeInteger (order, 'quantity'); + if (amount === 0) { + amount = undefined; + } + const amountScale = this.safeInteger (order, 'quantity_scale'); + amount = this.convertFromScale (amount, amountScale); + let filled = this.safeInteger (order, 'cumQty'); + const filledScale = this.safeInteger (order, 'cumQty_scale'); + filled = this.convertFromScale (filled, filledScale); + let remaining = this.safeInteger (order, 'leavesQty'); + const remainingScale = this.safeInteger (order, 'leavesQty_scale'); + remaining = this.convertFromScale (remaining, remainingScale); + if (remaining <= 0) { + if ((filled !== undefined) && (amount !== undefined) && (filled < amount)) { + remaining = undefined; + } + } + if ((remaining === undefined) && (amount !== undefined) && (filled !== undefined)) { + remaining = Math.max (amount - filled, 0); + } + let average = this.safeInteger (order, 'price', 0); + if (average === 0) { + average = undefined; + } + const averageScale = this.safeInteger (order, 'price_scale'); + average = this.convertFromScale (average, averageScale); + let cost = undefined; + if (filled !== 0) { + if (average > 0) { + cost = average * filled; + } else if (price > 0) { + cost = price * filled; + } + } + let fee = undefined; + const currencyId = this.safeInteger (order, 'feeInstrumentId'); + const feeCurrencyCode = this.safeCurrencyCode (currencyId); + let feeCost = this.safeInteger (order, 'feeTotal'); + const feeScale = this.safeInteger (order, 'fee_scale'); + if (feeCost !== undefined) { + feeCost = -feeCost; + feeCost = this.convertFromScale (feeCost, feeScale); + } + if (feeCost !== undefined) { + fee = { + 'currency': feeCurrencyCode, + 'cost': feeCost, + 'rate': undefined, + }; + } + let timeInForce = this.parseTimeInForce (this.safeString (order, 'timeInForce')); + if (timeInForce === '0') { + timeInForce = undefined; + } + const stopPriceScale = this.safeInteger (order, 'stopPx_scale', 0); + const stopPrice = this.convertFromScale (this.safeInteger (order, 'stopPx'), stopPriceScale); + return { + 'info': order, + 'id': id, + 'clientOrderId': clientOrderId, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'lastTradeTimestamp': lastTradeTimestamp, + 'symbol': symbol, + 'type': type, + 'timeInForce': timeInForce, + 'postOnly': undefined, + 'side': side, + 'price': price, + 'stopPrice': stopPrice, + 'amount': amount, + 'cost': cost, + 'average': average, + 'filled': filled, + 'remaining': remaining, + 'status': status, + 'fee': fee, + 'trades': undefined, + }; + } + + parseOrderStatus (status) { + const statuses = { + '0': 'open', + '1': 'open', // 'partially filled', + '2': 'closed', // 'filled', + '3': 'open', // 'done for day', + '4': 'canceled', + '5': 'canceled', // 'replaced', + '6': 'canceling', // 'pending cancel', + '7': 'canceled', // 'stopped', + '8': 'rejected', // 'rejected', + '9': 'canceled', // 'suspended', + 'A': 'open', // 'pending new', + 'B': 'open', // 'calculated', + 'C': 'expired', + 'D': 'open', // 'accepted for bidding', + 'E': 'canceling', // 'pending replace', + 'F': 'open', // 'partial fill or fill', + }; + return this.safeString (statuses, status, status); + } + + parseOrderSide (side) { + const sides = { + '1': 'buy', + '2': 'sell', + }; + return this.safeString (sides, side, side); + } + + parseOrderType (type) { + const types = { + '1': 'market', + '2': 'limit', + '3': 'stop', + '4': 'stop limit', + }; + return this.safeString (types, type, type); + } + + parseTimeInForce (timeInForce) { + const timeInForces = { + '1': 'GTC', // Good Till Canceled + '3': 'IOC', // Immediate or Cancel + '4': 'FOK', // Fill or Kill + '5': 'GTX', // Good Till Crossing (GTX) + '6': 'GTD', // Good Till Date + }; + return this.safeString (timeInForces, timeInForce, timeInForce); + } + + toMilliseconds (dateString) { + if (dateString === undefined) { + return dateString; + } + // '20200328-10:31:01.575' -> '2020-03-28 12:42:48.000' + const splits = dateString.split ('-'); + const partOne = this.safeString (splits, 0); + const partTwo = this.safeString (splits, 1); + if (partOne === undefined || partTwo === undefined) { + return undefined; + } + if (partOne.length !== 8) { + return undefined; + } + const date = partOne.slice (0, 4) + '-' + partOne.slice (4, 6) + '-' + partOne.slice (6, 8); + return this.parse8601 (date + ' ' + partTwo); + } + + convertFromScale (number, scale) { + if ((number === undefined) || (scale === undefined)) { + return undefined; + } + return this.fromWei (number, scale); + } + + getScale (num) { + const s = this.numberToString (num); + return this.precisionFromString (s); + } + + convertToScale (number, scale) { + if ((number === undefined) || (scale === undefined)) { + return undefined; + } + return parseInt (this.toWei (number, scale)); + } + + nonce () { + return this.milliseconds (); + } + + handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { + if (response === undefined) { + return; // fallback to default error handler + } + const error = this.safeString (response, 'error'); + if (error !== undefined) { + const feedback = this.id + ' ' + body; + this.throwExactlyMatchedException (this.exceptions, error, feedback); + this.throwBroadlyMatchedException (this.exceptions, body, feedback); + throw new ExchangeError (this.id + ' ' + body); + } + } + + sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { + let url = this.implodeParams (path, params); + let query = this.omit (params, this.extractParams (path)); + if (api === 'public') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } else if (api === 'private') { + // special case for getUserHistory + const format = this.safeValue (params, 'format'); + const type = this.safeValue (params, 'type'); + const extension = {}; + if (format !== undefined) { + extension['format'] = format; + } + if (type !== undefined) { + extension['type'] = type; + } + if (Object.keys (extension).length) { + url += '?' + this.urlencode (extension); + } + params = this.omit (params, [ 'format', 'type' ]); + this.checkRequiredCredentials (); + const nonce = this.nonce (); + query = this.extend (query, { + 'userId': this.uid, + 'nonce': nonce, + }); + params['nonce'] = this.nonce (); + body = this.json (query); + const signature = this.hmac (this.encode (body), this.encode (this.secret), 'sha384'); + headers = { + 'Content-Type': 'application/json', + 'requestToken': this.apiKey, + 'signature': signature, + }; + } + url = this.urls['api'][api] + '/' + url; + return { 'url': url, 'method': method, 'body': body, 'headers': headers }; + } +}; + +},{"./base/Exchange":6,"./base/errors":8}],81:[function(require,module,exports){ 'use strict'; // ---------------------------------------------------------------------------- @@ -61506,7 +66709,7 @@ module.exports = class eterbase extends Exchange { request['start'] = now - duration * limit * 1000; request['end'] = now; } else { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a since argument, or a limit argument, or both'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a since argument, or a limit argument, or both'); } await this.loadMarkets (); const market = this.market (symbol); @@ -61708,6 +66911,7 @@ module.exports = class eterbase extends Exchange { } const timeInForce = this.safeString (order, 'timeInForce'); const stopPrice = this.safeFloat (order, 'stopPrice'); + const postOnly = this.safeValue (order, 'postOnly'); return { 'info': order, 'id': id, @@ -61717,8 +66921,9 @@ module.exports = class eterbase extends Exchange { 'lastTradeTimestamp': undefined, 'symbol': symbol, 'type': type, - 'side': side, 'timeInForce': timeInForce, + 'postOnly': postOnly, + 'side': side, 'price': price, 'stopPrice': stopPrice, 'amount': amount, @@ -62041,7 +67246,7 @@ module.exports = class eterbase extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],79:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],82:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -62746,7 +67951,7 @@ module.exports = class exmo extends Exchange { const now = this.milliseconds (); if (since === undefined) { if (limit === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a since argument or a limit argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a since argument or a limit argument'); } else { if (limit > maxLimit) { throw new BadRequest (this.id + ' fetchOHLCV will serve ' + maxLimit.toString () + ' candles at most'); @@ -63362,6 +68567,7 @@ module.exports = class exmo extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -63480,12 +68686,21 @@ module.exports = class exmo extends Exchange { const type = this.safeString (transaction, 'type'); const currencyId = this.safeString (transaction, 'curr'); const code = this.safeCurrencyCode (currencyId, currency); - let address = this.safeString (transaction, 'account'); - if (address !== undefined) { - const parts = address.split (':'); - const numParts = parts.length; - if (numParts === 2) { - address = parts[1].replace (' ', ''); + let address = undefined; + const tag = undefined; + let comment = undefined; + const account = this.safeString (transaction, 'account'); + if (type === 'deposit') { + comment = account; + } else if (type === 'withdrawal') { + address = account; + if (address !== undefined) { + const parts = address.split (':'); + const numParts = parts.length; + if (numParts === 2) { + address = this.safeString (parts, 1); + address = address.replace (' ', ''); + } } } let fee = undefined; @@ -63513,16 +68728,21 @@ module.exports = class exmo extends Exchange { return { 'info': transaction, 'id': undefined, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), 'currency': code, 'amount': amount, 'address': address, - 'tag': undefined, // refix it properly + 'addressTo': address, + 'addressFrom': undefined, + 'tag': tag, + 'tagTo': tag, + 'tagFrom': undefined, 'status': status, 'type': type, 'updated': undefined, + 'comment': comment, 'txid': txid, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), 'fee': fee, }; } @@ -63634,7 +68854,7 @@ module.exports = class exmo extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],80:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],83:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -63963,6 +69183,7 @@ module.exports = class exx extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': order['type'], 'price': price, 'stopPrice': undefined, @@ -64024,7 +69245,7 @@ module.exports = class exx extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } const market = this.market (symbol); const request = { @@ -64099,7 +69320,7 @@ module.exports = class exx extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],81:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],84:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -64694,6 +69915,7 @@ module.exports = class fcoin extends Exchange { 'symbol': symbol, 'type': orderType, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -64843,7 +70065,7 @@ module.exports = class fcoin extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],82:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],85:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -64869,7 +70091,7 @@ module.exports = class fcoinjp extends fcoin { } }; -},{"./fcoin.js":81}],83:[function(require,module,exports){ +},{"./fcoin.js":84}],86:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -65118,7 +70340,7 @@ module.exports = class flowbtc extends Exchange { }; return await this.privatePostCancelOrder (this.extend (request, params)); } - throw new ExchangeError (this.id + ' requires `ins` symbol parameter for cancelling an order'); + throw new ExchangeError (this.id + ' cancelOrder() requires an `ins` symbol parameter for cancelling an order'); } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { @@ -65155,7 +70377,7 @@ module.exports = class flowbtc extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],84:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],87:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -65420,14 +70642,14 @@ module.exports = class foxbit extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],85:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],88:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); const { TICK_SIZE } = require ('./base/functions/number'); -const { ExchangeError, InvalidOrder, BadRequest, InsufficientFunds, OrderNotFound, AuthenticationError } = require ('./base/errors'); +const { ExchangeError, InvalidOrder, BadRequest, InsufficientFunds, OrderNotFound, AuthenticationError, RateLimitExceeded, ExchangeNotAvailable, CancelPending } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -65437,7 +70659,7 @@ module.exports = class ftx extends Exchange { 'id': 'ftx', 'name': 'FTX', 'countries': [ 'HK' ], - 'rateLimit': 100, + 'rateLimit': 50, 'certified': true, 'pro': true, 'hostname': 'ftx.com', // or ftx.us @@ -65522,9 +70744,12 @@ module.exports = class ftx extends Exchange { 'wallet/coins', 'wallet/balances', 'wallet/all_balances', - 'wallet/deposit_address/{coin}', + 'wallet/deposit_address/{coin}', // ?method={method} 'wallet/deposits', 'wallet/withdrawals', + 'wallet/withdrawal_fee', + 'wallet/airdrops', + 'wallet/saved_addresses', 'orders', // ?market={market} 'orders/history', // ?market={market} 'orders/{order_id}', @@ -65532,6 +70757,14 @@ module.exports = class ftx extends Exchange { 'conditional_orders', // ?market={market} 'conditional_orders/{conditional_order_id}/triggers', 'conditional_orders/history', // ?market={market} + 'spot_margin/borrow_rates', + 'spot_margin/lending_rates', + 'spot_margin/borrow_summary', + 'spot_margin/market_info', // ?market={market} + 'spot_margin/borrow_history', + 'spot_margin/lending_history', + 'spot_margin/offers', + 'spot_margin/lending_info', 'fills', // ?market={market} 'funding_payments', // leverage tokens @@ -65550,15 +70783,23 @@ module.exports = class ftx extends Exchange { 'options/account_info', 'options/positions', 'options/fills', + // staking + 'staking/stakes', + 'staking/unstake_requests', + 'staking/balances', + 'staking/staking_rewards', ], 'post': [ 'account/leverage', 'wallet/withdrawals', + 'wallet/saved_addresses', 'orders', 'conditional_orders', 'orders/{order_id}/modify', 'orders/by_client_id/{client_order_id}/modify', 'conditional_orders/{order_id}/modify', + // spot margin + 'spot_margin/offers', // leverage tokens 'lt/{token_name}/create', 'lt/{token_name}/redeem', @@ -65573,8 +70814,12 @@ module.exports = class ftx extends Exchange { 'options/requests', 'options/requests/{request_id}/quotes', 'options/quotes/{quote_id}/accept', + // staking + 'staking/unstake_requests', + 'srm_stakes/stakes', ], 'delete': [ + 'wallet/saved_addresses/{saved_address_id}', 'orders/{order_id}', 'orders/by_client_id/{client_order_id}', 'orders', @@ -65584,6 +70829,8 @@ module.exports = class ftx extends Exchange { // options 'options/requests/{request_id}', 'options/quotes/{quote_id}', + // staking + 'staking/unstake_requests/{request_id}', ], }, }, @@ -65618,6 +70865,8 @@ module.exports = class ftx extends Exchange { }, 'exceptions': { 'exact': { + 'Please slow down': RateLimitExceeded, // {"error":"Please slow down","success":false} + 'Size too small for provide': InvalidOrder, // {"error":"Size too small for provide","success":false} 'Not logged in': AuthenticationError, // {"error":"Not logged in","success":false} 'Not enough balances': InsufficientFunds, // {"error":"Not enough balances","success":false} 'InvalidPrice': InvalidOrder, // {"error":"Invalid price","success":false} @@ -65625,13 +70874,20 @@ module.exports = class ftx extends Exchange { 'Missing parameter price': InvalidOrder, // {"error":"Missing parameter price","success":false} 'Order not found': OrderNotFound, // {"error":"Order not found","success":false} 'Order already closed': InvalidOrder, // {"error":"Order already closed","success":false} + 'Trigger price too high': InvalidOrder, // {"error":"Trigger price too high","success":false} + 'Trigger price too low': InvalidOrder, // {"error":"Trigger price too low","success":false} + 'Order already queued for cancellation': CancelPending, // {"error":"Order already queued for cancellation","success":false} }, 'broad': { + 'Account does not have enough margin for order': InsufficientFunds, 'Invalid parameter': BadRequest, // {"error":"Invalid parameter start_time","success":false} 'The requested URL was not found on the server': BadRequest, 'No such coin': BadRequest, 'No such market': BadRequest, - 'An unexpected error occurred': ExchangeError, // {"error":"An unexpected error occurred, please try again later (58BC21C795).","success":false} + 'Do not send more than': RateLimitExceeded, + 'An unexpected error occurred': ExchangeNotAvailable, // {"error":"An unexpected error occurred, please try again later (58BC21C795).","success":false} + 'Please retry request': ExchangeNotAvailable, // {"error":"Please retry request","success":false} + 'Please try again': ExchangeNotAvailable, // {"error":"Please try again","success":false} }, }, 'precisionMode': TICK_SIZE, @@ -65761,7 +71017,7 @@ module.exports = class ftx extends Exchange { 'amount': sizeIncrement, 'price': priceIncrement, }; - const entry = { + result.push ({ 'id': id, 'symbol': symbol, 'base': base, @@ -65788,8 +71044,7 @@ module.exports = class ftx extends Exchange { }, }, 'info': market, - }; - result.push (entry); + }); } return result; } @@ -66088,22 +71343,39 @@ module.exports = class ftx extends Exchange { // "type": "order" // } // + // { + // "baseCurrency": "BTC", + // "fee": 0, + // "feeCurrency": "USD", + // "feeRate": 0, + // "future": null, + // "id": 664079556, + // "liquidity": "taker", + // "market": null, + // "orderId": null, + // "price": 34830.61359, + // "quoteCurrency": "USD", + // "side": "sell", + // "size": 0.0005996, + // "time": "2021-01-15T16:05:29.246135+00:00", + // "tradeId": null, + // "type": "otc" + // } + // const id = this.safeString (trade, 'id'); const takerOrMaker = this.safeString (trade, 'liquidity'); const marketId = this.safeString (trade, 'market'); let symbol = undefined; - if (marketId !== undefined) { - if (marketId in this.markets_by_id) { - market = this.markets_by_id[marketId]; - symbol = market['symbol']; + if (marketId in this.markets_by_id) { + market = this.markets_by_id[marketId]; + symbol = market['symbol']; + } else { + const base = this.safeCurrencyCode (this.safeString (trade, 'baseCurrency')); + const quote = this.safeCurrencyCode (this.safeString (trade, 'quoteCurrency')); + if ((base !== undefined) && (quote !== undefined)) { + symbol = base + '/' + quote; } else { - const base = this.safeCurrencyCode (this.safeString (trade, 'baseCurrency')); - const quote = this.safeCurrencyCode (this.safeString (trade, 'quoteCurrency')); - if ((base !== undefined) && (quote !== undefined)) { - symbol = base + '/' + quote; - } else { - symbol = marketId; - } + symbol = marketId; } } const timestamp = this.parse8601 (this.safeString (trade, 'time')); @@ -66421,6 +71693,7 @@ module.exports = class ftx extends Exchange { const lastTradeTimestamp = this.parse8601 (this.safeString (order, 'triggeredAt')); const clientOrderId = this.safeString (order, 'clientId'); const stopPrice = this.safeFloat (order, 'triggerPrice'); + const postOnly = this.safeValue (order, 'postOnly'); return { 'info': order, 'id': id, @@ -66431,6 +71704,7 @@ module.exports = class ftx extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -66568,12 +71842,12 @@ module.exports = class ftx extends Exchange { } } else { if (clientOrderId === undefined) { + method = 'privatePostOrdersOrderIdModify'; + request['order_id'] = id; + } else { method = 'privatePostOrdersByClientIdClientOrderIdModify'; request['client_order_id'] = clientOrderId; // request['clientId'] = clientOrderId; - } else { - method = 'privatePostOrdersOrderIdModify'; - request['order_id'] = id; } if (price !== undefined) { request['price'] = parseFloat (this.priceToPrecision (symbol, price)); @@ -66639,9 +71913,7 @@ module.exports = class ftx extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { await this.loadMarkets (); - const request = { - 'order_id': parseInt (id), - }; + const request = {}; // support for canceling conditional orders // https://github.com/ccxt/ccxt/issues/6669 const options = this.safeValue (this.options, 'cancelOrder', {}); @@ -66674,8 +71946,8 @@ module.exports = class ftx extends Exchange { await this.loadMarkets (); const request = { // 'market': market['id'], // optional - 'conditionalOrdersOnly': false, // cancel conditional orders only - 'limitOrdersOnly': false, // cancel existing limit orders (non-conditional orders) only + // 'conditionalOrdersOnly': false, // cancel conditional orders only + // 'limitOrdersOnly': false, // cancel existing limit orders (non-conditional orders) only }; const marketId = this.getMarketId (symbol, 'market', params); if (marketId !== undefined) { @@ -66844,6 +72116,7 @@ module.exports = class ftx extends Exchange { } if (since !== undefined) { request['start_time'] = parseInt (since / 1000); + request['end_time'] = this.seconds (); } const response = await this.privateGetFills (this.extend (request, params)); // @@ -67033,6 +72306,15 @@ module.exports = class ftx extends Exchange { // "txid": "0x8078356ae4b06a036d64747546c274af19581f1c78c510b60505798a7ffcaf1" // } // + // { + // "coin": 'BTC', + // "id": 1969806, + // "notes": 'Transfer to Dd6gi7m2Eg4zzBbPAxuwfEaHs6tYvyUX5hbPpsTcNPXo', + // "size": 0.003, + // "status": 'complete', + // "time": '2021-02-03T20:28:54.918146+00:00' + // } + // const code = this.safeCurrencyCode (this.safeString (transaction, 'coin')); const id = this.safeString (transaction, 'id'); const amount = this.safeFloat (transaction, 'size'); @@ -67045,8 +72327,14 @@ module.exports = class ftx extends Exchange { tag = this.safeString (address, 'tag'); address = this.safeString (address, 'address'); } + if (address === undefined) { + // parse address from internal transfer + const notes = this.safeString (transaction, 'notes'); + if (notes !== undefined) { + address = notes.slice (12); + } + } const fee = this.safeFloat (transaction, 'fee'); - const type = ('destinationName' in transaction) ? 'withdrawal' : 'deposit'; return { 'info': transaction, 'id': id, @@ -67059,7 +72347,7 @@ module.exports = class ftx extends Exchange { 'tagFrom': undefined, 'tag': tag, 'tagTo': tag, - 'type': type, + 'type': undefined, 'amount': amount, 'currency': code, 'status': status, @@ -67097,7 +72385,7 @@ module.exports = class ftx extends Exchange { if (code !== undefined) { currency = this.currency (code); } - return this.parseTransactions (result, currency, since, limit); + return this.parseTransactions (result, currency, since, limit, { 'type': 'deposit' }); } async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { @@ -67124,7 +72412,7 @@ module.exports = class ftx extends Exchange { if (code !== undefined) { currency = this.currency (code); } - return this.parseTransactions (result, currency, since, limit); + return this.parseTransactions (result, currency, since, limit, { 'type': 'withdrawal' }); } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { @@ -67181,7 +72469,7 @@ module.exports = class ftx extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],86:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],89:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -67351,6 +72639,7 @@ module.exports = class gateio extends Exchange { 'BOX': 'DefiBox', 'BTCBEAR': 'BEAR', 'BTCBULL': 'BULL', + 'SBTC': 'Super Bitcoin', 'TNC': 'Trinity Network Credit', }, }); @@ -67874,6 +73163,7 @@ module.exports = class gateio extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -67914,7 +73204,7 @@ module.exports = class gateio extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires symbol argument'); } await this.loadMarkets (); const request = { @@ -67937,13 +73227,13 @@ module.exports = class gateio extends Exchange { if ((address !== undefined) && (address.indexOf ('address') >= 0)) { throw new InvalidAddress (this.id + ' queryDepositAddress ' + address); } - if (code === 'XRP') { + if ((code === 'XRP') || (code === 'HBAR') || (code === 'STEEM') || (code === 'XLM') || (code === 'EOS')) { const parts = address.split (' '); address = parts[0]; tag = parts[1]; } return { - 'currency': currency, + 'currency': code, 'address': address, 'tag': tag, 'info': response, @@ -67970,7 +73260,7 @@ module.exports = class gateio extends Exchange { async fetchOrderTrades (id, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrderTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -67984,7 +73274,7 @@ module.exports = class gateio extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -68066,21 +73356,21 @@ module.exports = class gateio extends Exchange { // withdrawal // // { - // 'id': 'w5864259', - // 'currency': 'ETH', - // 'address': '0x72632f462....', - // 'amount': '0.4947', - // 'txid': '0x111167d120f736....', - // 'timestamp': '1553123688', - // 'status': 'DONE', - // 'type': 'withdrawal' - // } + // "id": "w6754336", + // "fee": "0.1", + // "txid": "zzyy", + // "amount": "1", + // "status": "DONE", + // "address": "tz11234", + // "currency": "XTZ", + // "timestamp": "1561030206" + // } // const currencyId = this.safeString (transaction, 'currency'); const code = this.safeCurrencyCode (currencyId, currency); const id = this.safeString (transaction, 'id'); const txid = this.safeString (transaction, 'txid'); - const amount = this.safeFloat (transaction, 'amount'); + let amount = this.safeFloat (transaction, 'amount'); let address = this.safeString (transaction, 'address'); if (address === 'false') { address = undefined; @@ -68088,6 +73378,17 @@ module.exports = class gateio extends Exchange { const timestamp = this.safeTimestamp (transaction, 'timestamp'); const status = this.parseTransactionStatus (this.safeString (transaction, 'status')); const type = this.parseTransactionType (id[0]); + const feeCost = this.safeFloat (transaction, 'fee'); + let fee = undefined; + if (feeCost !== undefined) { + fee = { + 'currency': code, + 'cost': feeCost, + }; + if (amount !== undefined) { + amount = amount - feeCost; + } + } return { 'info': transaction, 'id': id, @@ -68100,7 +73401,7 @@ module.exports = class gateio extends Exchange { 'type': type, 'timestamp': timestamp, 'datetime': this.iso8601 (timestamp), - 'fee': undefined, + 'fee': fee, }; } @@ -68166,7 +73467,7 @@ module.exports = class gateio extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],87:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],90:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -68838,6 +74139,7 @@ module.exports = class gemini extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -68901,7 +74203,7 @@ module.exports = class gemini extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -69078,7 +74380,1356 @@ module.exports = class gemini extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],88:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],91:[function(require,module,exports){ +'use strict'; + +// --------------------------------------------------------------------------- + +const Exchange = require ('./base/Exchange'); +const { ExchangeError, InvalidOrder, AuthenticationError, InsufficientFunds, BadSymbol, OrderNotFound, InvalidAddress, BadRequest } = require ('./base/errors'); +const { TRUNCATE, ROUND, TICK_SIZE } = require ('./base/functions/number'); + +// --------------------------------------------------------------------------- + +module.exports = class gopax extends Exchange { + describe () { + return this.deepExtend (super.describe (), { + 'id': 'gopax', + 'name': 'GOPAX', + 'countries': [ 'KR' ], // South Korea + 'version': 'v1', + 'rateLimit': 50, + 'hostname': 'gopax.co.kr', // or 'gopax.com' + 'certified': true, + 'pro': true, + 'has': { + 'cancelOrder': true, + 'createMarketOrder': true, + 'createOrder': true, + 'fetchBalance': true, + 'fetchCurrencies': true, + 'fetchDepositAddress': 'emulated', + 'fetchDepositAddresses': true, + 'fetchMarkets': true, + 'fetchMyTrades': true, + 'fetchOHLCV': true, + 'fetchOpenOrders': true, + 'fetchOrder': true, + 'fetchOrderBook': true, + 'fetchOrders': true, + 'fetchTicker': true, + 'fetchTickers': true, + 'fetchTime': true, + 'fetchTrades': true, + 'fetchTransactions': true, + }, + 'timeframes': { + '1m': '1', + '5m': '5', + '30m': '30', + '1d': '1440', + }, + 'urls': { + 'logo': 'https://user-images.githubusercontent.com/1294454/102897212-ae8a5e00-4478-11eb-9bab-91507c643900.jpg', + 'api': { + 'public': 'https://api.{hostname}', // or 'https://api.gopax.co.kr' + 'private': 'https://api.{hostname}', + }, + 'www': 'https://www.gopax.co.kr', + 'doc': 'https://gopax.github.io/API/index.en.html', + 'fees': 'https://www.gopax.com/feeinfo', + }, + 'api': { + 'public': { + 'get': [ + 'notices', + 'assets', + 'price-tick-size', + 'trading-pairs', + 'trading-pairs/{tradingPair}/ticker', + 'trading-pairs/{tradingPair}/book', + 'trading-pairs/{tradingPair}/trades', + 'trading-pairs/{tradingPair}/stats', + 'trading-pairs/{tradingPair}/price-tick-size', + 'trading-pairs/stats', + 'trading-pairs/{tradingPair}/candles', + 'time', + ], + }, + 'private': { + 'get': [ + 'balances', + 'balances/{assetName}', + 'orders', + 'orders/{orderId}', + 'orders/clientOrderId/{clientOrderId}', + 'trades', + 'deposit-withdrawal-status', + 'crypto-deposit-addresses', + 'crypto-withdrawal-addresses', + ], + 'post': [ + 'orders', + ], + 'delete': [ + 'orders/{orderId}', + 'orders/clientOrderId/{clientOrderId}', + ], + }, + }, + 'fees': { + 'trading': { + 'percentage': true, + 'tierBased': false, + 'maker': 0.04 / 100, + 'taker': 0.04 / 100, + }, + }, + 'exceptions': { + 'broad': { + 'ERROR_INVALID_ORDER_TYPE': InvalidOrder, + 'ERROR_INVALID_AMOUNT': InvalidOrder, + 'ERROR_INVALID_TRADING_PAIR': BadSymbol, // Unlikely to be triggered, due to ccxt.gopax.js implementation + 'No such order ID': OrderNotFound, // {"errorMessage":"No such order ID","errorCode":202,"errorData":"Order server error: 202"} + // 'Not enough amount': InsufficientFunds, // {"errorMessage":"Not enough amount, try increasing your order amount","errorCode":10212,"errorData":{}} + 'Forbidden order type': InvalidOrder, + 'the client order ID will be reusable which order has already been completed or canceled': InvalidOrder, + 'ERROR_NO_SUCH_TRADING_PAIR': BadSymbol, // Unlikely to be triggered, due to ccxt.gopax.js implementation + 'ERROR_INVALID_ORDER_SIDE': InvalidOrder, + 'ERROR_NOT_HEDGE_TOKEN_USER': InvalidOrder, + 'ORDER_EVENT_ERROR_NOT_ALLOWED_BID_ORDER': InvalidOrder, // Triggered only when the exchange is locked + 'ORDER_EVENT_ERROR_INSUFFICIENT_BALANCE': InsufficientFunds, + 'Invalid option combination': InvalidOrder, + 'No such client order ID': OrderNotFound, + }, + 'exact': { + '100': BadSymbol, // Invalid asset name + '101': BadSymbol, // Invalid trading pair + '103': InvalidOrder, // Invalid order type + '104': BadSymbol, // Invalid trading pair + '105': BadSymbol, // Trading pair temporarily disabled + '106': BadSymbol, // Invalid asset name + '107': InvalidOrder, // Invalid order amount + '108': InvalidOrder, // Invalid order price + '111': InvalidOrder, // Invalid event type + '201': InsufficientFunds, // Not enough balance + '202': InvalidOrder, // Invalid order ID + '203': InvalidOrder, // Order amount X order price too large + '204': InvalidOrder, // Bid order temporarily unavailable + '205': InvalidOrder, // Invalid side + '206': InvalidOrder, // Invalid order option combination + '10004': AuthenticationError, // Not authorized + // '10004': ExchangeError, // API key not exist + // '10004': ExchangeError, // User KYC not approved + // '10004': ExchangeError, // User account is frozen + // '10004': ExchangeError, // User is under deactivation process + // '10004': ExchangeError, // 2FA is not enabled + // '10004': ExchangeError, // Invalid signature + '10041': BadRequest, // Invalid exchange + '10056': BadRequest, // No registered asset + '10057': BadSymbol, // No registered trading pair + '10059': BadSymbol, // Invalid trading pair + '10062': BadRequest, // Invalid chart interval + '10069': OrderNotFound, // {"errorMessage":"No such order ID: 73152094","errorCode":10069,"errorData":"73152094"} + '10155': AuthenticationError, // {"errorMessage":"Invalid API key","errorCode":10155} + '10166': BadRequest, // Invalid chart range + '10212': InvalidOrder, // {"errorMessage":"Not enough amount, try increasing your order amount","errorCode":10212,"errorData":{}} + '10221': OrderNotFound, // No such client order ID + '10222': InvalidOrder, // Client order ID being used + '10223': InvalidOrder, // Soon the client order ID will be reusable which order has already been completed or canceled + '10227': InvalidOrder, // Invalid client order ID format + '10319': BadRequest, // Pagination is required as you have too many orders + '10358': InvalidOrder, // Invalid order type + '10359': InvalidOrder, // Invalid order side + '10360': InvalidOrder, // Invalid order status + '10361': InvalidOrder, // Invalid order time in force + '10362': InvalidOrder, // Invalid order protection + '10363': InvalidOrder, // Invalid forced completion reason + }, + }, + 'options': { + 'createMarketBuyOrderRequiresPrice': true, + }, + }); + } + + async fetchTime (params = {}) { + const response = await this.publicGetTime (params); + // + // {"serverTime":1608327726656} + // + return this.safeInteger (response, 'serverTime'); + } + + async fetchMarkets (params = {}) { + const response = await this.publicGetTradingPairs (params); + // + // [ + // { + // "id":1, + // "name":"ETH-KRW", + // "baseAsset":"ETH", + // "quoteAsset":"KRW", + // "baseAssetScale":8, + // "quoteAssetScale":0, + // "priceMin":1, + // "restApiOrderAmountMin":{ + // "limitAsk":{"amount":10000,"unit":"KRW"}, + // "limitBid":{"amount":10000,"unit":"KRW"}, + // "marketAsk":{"amount":0.001,"unit":"ETH"}, + // "marketBid":{"amount":10000,"unit":"KRW"}, + // }, + // "makerFeePercent":0.2, + // "takerFeePercent":0.2, + // }, + // ] + // + const result = []; + for (let i = 0; i < response.length; i++) { + const market = response[i]; + const id = this.safeString (market, 'name'); + const numericId = this.safeInteger (market, 'id'); + const baseId = this.safeString (market, 'baseAsset'); + const quoteId = this.safeString (market, 'quoteAsset'); + const base = this.safeCurrencyCode (baseId); + const quote = this.safeCurrencyCode (quoteId); + const symbol = base + '/' + quote; + const precision = { + 'price': this.safeInteger (market, 'quoteAssetScale'), + 'amount': this.safeInteger (market, 'baseAssetScale'), + }; + const minimums = this.safeValue (market, 'restApiOrderAmountMin', {}); + const marketAsk = this.safeValue (minimums, 'marketAsk', {}); + const marketBid = this.safeValue (minimums, 'marketBid', {}); + const takerFeePercent = this.safeFloat (market, 'takerFeePercent'); + const makerFeePercent = this.safeFloat (market, 'makerFeePercent'); + const taker = parseFloat (this.decimalToPrecision (takerFeePercent / 100, ROUND, 0.00000001, TICK_SIZE)); + const maker = parseFloat (this.decimalToPrecision (makerFeePercent / 100, ROUND, 0.00000001, TICK_SIZE)); + result.push ({ + 'id': id, + 'info': market, + 'numericId': numericId, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'baseId': this.safeString (market, 'baseAsset'), + 'quoteId': this.safeString (market, 'quoteAsset'), + 'active': true, + 'taker': taker, + 'maker': maker, + 'precision': precision, + 'limits': { + 'amount': { + 'min': this.safeFloat (marketAsk, 'amount'), + 'max': undefined, + }, + 'price': { + 'min': this.safeFloat (market, 'priceMin'), + 'max': undefined, + }, + 'cost': { + 'min': this.safeFloat (marketBid, 'amount'), + 'max': undefined, + }, + }, + }); + } + return result; + } + + async fetchCurrencies (params = {}) { + const response = await this.publicGetAssets (params); + // + // [ + // { + // "id":"KRW", + // "name":"대한민국 원", + // "scale":0, + // "withdrawalFee":1000, + // "withdrawalAmountMin":5000 + // }, + // { + // "id":"ETH", + // "name":"이더리움", + // "scale":8, + // "withdrawalFee":0.03, + // "withdrawalAmountMin":0.015 + // }, + // ] + // + const result = {}; + for (let i = 0; i < response.length; i++) { + const currency = response[i]; + const id = this.safeString (currency, 'id'); + const code = this.safeCurrencyCode (id); + const name = this.safeString (currency, 'name'); + const fee = this.safeFloat (currency, 'withdrawalFee'); + const precision = this.safeFloat (currency, 'scale'); + result[code] = { + 'id': id, + 'info': currency, + 'code': code, + 'name': name, + 'active': true, + 'fee': fee, + 'precision': precision, + 'limits': { + 'amount': { + 'min': undefined, + 'max': undefined, + }, + 'price': { + 'min': undefined, + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + 'withdraw': { + 'min': this.safeFloat (currency, 'withdrawalAmountMin'), + 'max': undefined, + }, + }, + }; + } + return result; + } + + async fetchOrderBook (symbol, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'tradingPair': market['id'], + // 'level': 3, // 1 best bidask, 2 top 50 bidasks, 3 all bidasks + }; + const response = await this.publicGetTradingPairsTradingPairBook (this.extend (request, params)); + // + // { + // "sequence":17691957, + // "bid":[ + // ["17690499",25019000,0.00008904,"1608326468921"], + // ["17691894",25010000,0.4295,"1608326499940"], + // ["17691895",25009000,0.2359,"1608326499953"], + // ], + // "ask":[ + // ["17689176",25024000,0.000098,"1608326442006"], + // ["17691351",25031000,0.206,"1608326490418"], + // ["17691571",25035000,0.3996,"1608326493742"], + // ] + // } + // + const nonce = this.safeInteger (response, 'sequence'); + const result = this.parseOrderBook (response, undefined, 'bid', 'ask', 1, 2); + result['nonce'] = nonce; + return result; + } + + parseTicker (ticker, market = undefined) { + // + // fetchTicker + // + // { + // "price":25087000, + // "ask":25107000, + // "askVolume":0.05837704, + // "bid":25087000, + // "bidVolume":0.00398628, + // "volume":350.09171591, + // "quoteVolume":8721016926.06529, + // "time":"2020-12-18T21:42:13.774Z", + // } + // + // fetchTickers + // + // { + // "name":"ETH-KRW", + // "open":690500, + // "high":719500, + // "low":681500, + // "close":709500, + // "volume":2784.6081544, + // "time":"2020-12-18T21:54:50.795Z" + // } + // + const marketId = this.safeString (ticker, 'name'); + const symbol = this.safeSymbol (marketId, market, '-'); + const timestamp = this.parse8601 (this.safeString (ticker, 'time')); + const open = this.safeFloat (ticker, 'open'); + const last = this.safeFloat2 (ticker, 'price', 'close'); + let change = undefined; + let percentage = undefined; + let average = undefined; + if ((last !== undefined) && (open !== undefined)) { + average = this.sum (last, open) / 2; + change = last - open; + if (open > 0) { + percentage = change / open * 100; + } + } + const baseVolume = this.safeFloat (ticker, 'volume'); + const quoteVolume = this.safeFloat (ticker, 'quoteVolume'); + const vwap = this.vwap (baseVolume, quoteVolume); + return { + 'symbol': symbol, + 'info': ticker, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'high': this.safeFloat (ticker, 'high'), + 'low': this.safeFloat (ticker, 'low'), + 'bid': this.safeFloat (ticker, 'bid'), + 'bidVolume': this.safeFloat (ticker, 'bidVolume'), + 'ask': this.safeFloat (ticker, 'ask'), + 'askVolume': this.safeFloat (ticker, 'askVolume'), + 'vwap': vwap, + 'open': open, + 'close': last, + 'last': last, + 'previousClose': undefined, + 'change': change, + 'percentage': percentage, + 'average': average, + 'baseVolume': baseVolume, + 'quoteVolume': quoteVolume, + }; + } + + async fetchTicker (symbol, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'tradingPair': market['id'], + }; + const response = await this.publicGetTradingPairsTradingPairTicker (this.extend (request, params)); + // + // { + // "price":25087000, + // "ask":25107000, + // "askVolume":0.05837704, + // "bid":25087000, + // "bidVolume":0.00398628, + // "volume":350.09171591, + // "quoteVolume":8721016926.06529, + // "time":"2020-12-18T21:42:13.774Z", + // } + // + return this.parseTicker (response, market); + } + + parseTickers (rawTickers, symbols = undefined) { + const tickers = []; + for (let i = 0; i < rawTickers.length; i++) { + tickers.push (this.parseTicker (rawTickers[i])); + } + return this.filterByArray (tickers, 'symbol', symbols); + } + + async fetchTickers (symbols = undefined, params = {}) { + await this.loadMarkets (); + const response = await this.publicGetTradingPairsStats (params); + // + // [ + // { + // "name":"ETH-KRW", + // "open":690500, + // "high":719500, + // "low":681500, + // "close":709500, + // "volume":2784.6081544, + // "time":"2020-12-18T21:54:50.795Z" + // } + // ] + // + return this.parseTickers (response, symbols); + } + + parsePublicTrade (trade, market = undefined) { + const timestamp = this.parse8601 (this.safeString (trade, 'time')); + const price = this.safeFloat (trade, 'price'); + const amount = this.safeFloat (trade, 'amount'); + let symbol = undefined; + if ('symbol' in market) { + symbol = this.safeString (market, 'symbol'); + } + return { + 'info': trade, + 'id': this.safeString (trade, 'id'), + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'symbol': symbol, + 'order': undefined, // Not mandatory to specify + 'type': undefined, // Not mandatory to specify + 'side': this.safeString (trade, 'side'), + 'takerOrMaker': undefined, + 'price': price, + 'amount': amount, + 'cost': price * amount, + 'fee': undefined, + }; + } + + parsePrivateTrade (trade, market = undefined) { + const timestamp = this.parse8601 (this.safeString (trade, 'timestamp')); + const symbol = this.safeString (trade, 'tradingPairName').replace ('-', '/'); + const side = this.safeString (trade, 'side'); + const price = this.safeFloat (trade, 'price'); + const amount = this.safeFloat (trade, 'baseAmount'); + let feeCurrency = symbol.slice (0, 3); + if (side === 'sell') { + feeCurrency = symbol.slice (4); + } + const fee = { + 'cost': this.safeFloat (trade, 'fee'), + 'currency': feeCurrency, + 'rate': undefined, + }; + return { + 'info': trade, + 'id': this.safeString (trade, 'id'), + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'symbol': symbol, + 'order': this.safeInteger (trade, 'orderId'), + 'type': undefined, + 'side': side, + 'takerOrMaker': this.safeString (trade, 'position'), + 'price': price, + 'amount': amount, + 'cost': price * amount, + 'fee': fee, + }; + } + + parseTrade (trade, market = undefined) { + // + // public fetchTrades + // + // { + // "time":"2020-12-19T12:17:43.000Z", + // "date":1608380263, + // "id":23903608, + // "price":25155000, + // "amount":0.0505, + // "side":"sell", + // } + // + // private fetchMyTrades + // + // { + // "id": 73953, // trading event ID + // "orderId": 453324, // order ID + // "baseAmount": 3, // traded base asset amount + // "quoteAmount": 3000000, // traded quote asset amount + // "fee": 0.0012, // fee + // "price": 1000000, // price + // "timestamp": "2020-09-25T04:06:30.000Z", // trading time + // "side": "buy", // buy, sell + // "tradingPairName": "ZEC-KRW", // order book + // "position": "maker" // maker, taker + // } + // + // { + // "tradeId": 74072, // trade ID + // "orderId": 453529, // order ID + // "side": 2, // 1(bid), 2(ask) + // "type": 1, // 1(limit), 2(market) + // "baseAmount": 0.01, // filled base asset amount (in ZEC for this case) + // "quoteAmount": 1, // filled quote asset amount (in KRW for this case) + // "fee": 0.0004, // fee + // "price": 100, // price + // "isSelfTrade": false, // whether both of matching orders are yours + // "occurredAt": 1603932107, // trade occurrence time + // "tradingPairName": "ZEC-KRW" // order book + // } + // + const id = this.safeString2 (trade, 'id', 'tradeId'); + const orderId = this.safeInteger (trade, 'orderId'); + let timestamp = this.parse8601 (this.safeString2 (trade, 'time', 'timestamp')); + timestamp = this.safeTimestamp (trade, 'occuredAt', timestamp); + const marketId = this.safeString (trade, 'tradingPairName'); + market = this.safeMarket (marketId, market, '-'); + const symbol = market['symbol']; + let side = this.safeString (trade, 'side'); + if (side === '1') { + side = 'buy'; + } else if (side === '2') { + side = 'sell'; + } + let type = this.safeString (trade, 'type'); + if (type === '1') { + type = 'limit'; + } else if (type === '2') { + type = 'market'; + } + const price = this.safeFloat (trade, 'price'); + const amount = this.safeFloat2 (trade, 'amount', 'baseAmount'); + let cost = this.safeFloat (trade, 'quoteAmount'); + if (cost === undefined) { + if ((price !== undefined) && (amount !== undefined)) { + cost = price * amount; + } + } + const feeCost = this.safeFloat (trade, 'fee'); + let fee = undefined; + if (feeCost !== undefined) { + fee = { + 'cost': feeCost, + 'currency': market['base'], + }; + } + const takerOrMaker = this.safeString (trade, 'position'); + return { + 'info': trade, + 'id': id, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'symbol': symbol, + 'order': orderId, + 'type': undefined, + 'side': side, + 'takerOrMaker': takerOrMaker, + 'price': price, + 'amount': amount, + 'cost': cost, + 'fee': fee, + }; + } + + async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'tradingPair': market['id'], + // 'limit': limit, + // 'pastmax': id, // read data older than this ID + // 'latestmin': id, // read data newer than this ID + // 'after': parseInt (since / 1000), + // 'before': this.seconds (), + }; + if (since !== undefined) { + request['after'] = parseInt (since / 1000); + } + if (limit !== undefined) { + request['limit'] = limit; + } + const response = await this.publicGetTradingPairsTradingPairTrades (this.extend (request, params)); + // + // [ + // {"time":"2020-12-19T12:17:43.000Z","date":1608380263,"id":23903608,"price":25155000,"amount":0.0505,"side":"sell"}, + // {"time":"2020-12-19T12:17:13.000Z","date":1608380233,"id":23903604,"price":25140000,"amount":0.019,"side":"sell"}, + // {"time":"2020-12-19T12:16:49.000Z","date":1608380209,"id":23903599,"price":25140000,"amount":0.0072,"side":"sell"}, + // ] + // + return this.parseTrades (response, market, since, limit); + } + + parseOHLCV (ohlcv, market = undefined) { + // + // [ + // 1606780800000, // timestamp + // 21293000, // low + // 21300000, // high + // 21294000, // open + // 21300000, // close + // 1.019126, // volume + // ] + // + return [ + this.safeInteger (ohlcv, 0), + this.safeFloat (ohlcv, 3), + this.safeFloat (ohlcv, 2), + this.safeFloat (ohlcv, 1), + this.safeFloat (ohlcv, 4), + this.safeFloat (ohlcv, 5), + ]; + } + + async fetchOHLCV (symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + limit = (limit === undefined) ? 1024 : limit; // default 1024 + const request = { + 'tradingPair': market['id'], + // 'start': since, + // 'end': this.milliseconds (), + 'interval': this.timeframes[timeframe], + }; + const duration = this.parseTimeframe (timeframe); + if (since === undefined) { + const end = this.milliseconds (); + request['end'] = end; + request['start'] = end - limit * duration * 1000; + } else { + request['start'] = since; + request['end'] = this.sum (since, limit * duration * 1000); + } + const response = await this.publicGetTradingPairsTradingPairCandles (this.extend (request, params)); + // + // [ + // [1606780800000,21293000,21300000,21294000,21300000,1.019126], + // [1606780860000,21237000,21293000,21293000,21263000,0.96800057], + // [1606780920000,21240000,21240000,21240000,21240000,0.11068715], + // ] + // + return this.parseOHLCVs (response, market, timeframe, since, limit); + } + + parseBalanceResponse (response) { + const result = { 'info': response }; + for (let i = 0; i < response.length; i++) { + const balance = response[i]; + const currencyId = this.safeString2 (balance, 'asset', 'isoAlpha3'); + const code = this.safeCurrencyCode (currencyId); + const hold = this.safeFloat (balance, 'hold'); + const pendingWithdrawal = this.safeFloat (balance, 'pendingWithdrawal'); + const account = this.account (); + account['free'] = this.safeFloat (balance, 'avail'); + account['used'] = this.sum (hold, pendingWithdrawal); + result[code] = account; + } + return this.parseBalance (result); + } + + async fetchBalance (params = {}) { + await this.loadMarkets (); + const response = await this.privateGetBalances (params); + // + // [ + // { + // "asset": "KRW", // asset name + // "avail": 1759466.76, // available amount to place order + // "hold": 16500, // outstanding amount on order books + // "pendingWithdrawal": 0, // amount being withdrawn + // "lastUpdatedAt": "1600684352032", // balance last update time + // }, + // ] + // + return this.parseBalanceResponse (response); + } + + parseOrderStatus (status) { + const statuses = { + 'placed': 'open', + 'cancelled': 'canceled', + 'completed': 'closed', + 'updated': 'open', + 'reserved': 'open', + }; + return this.safeString (statuses, status, status); + } + + parseOrder (order, market = undefined) { + // + // cancelOrder + // + // {} // empty object + // + // fetchOrder, fetchOrders, fetchOpenOrders, createOrder + // + // { + // "id": "453324", // order ID + // "clientOrderId": "zeckrw23456", // client order ID (showed only when it exists) + // "status": "updated", // placed, cancelled, completed, updated, reserved + // "forcedCompletionReason": undefined, // the reason in case it was canceled in the middle (protection or timeInForce) + // "tradingPairName": "ZEC-KRW", // order book + // "side": "buy", // buy, sell + // "type": "limit", // limit, market + // "price": 1000000, // price + // "stopPrice": undefined, // stop price (showed only for stop orders) + // "amount": 4, // initial amount + // "remaining": 1, // outstanding amount + // "protection": "yes", // whether protection is activated (yes or no) + // "timeInForce": "gtc", // limit order's time in force (gtc/po/ioc/fok) + // "createdAt": "2020-09-25T04:06:20.000Z", // order placement time + // "updatedAt": "2020-09-25T04:06:29.000Z", // order last update time + // "balanceChange": { + // "baseGross": 3, // base asset balance's gross change (in ZEC for this case) + // "baseFee": { + // "taking": 0, // base asset fee imposed as taker + // "making": -0.0012 // base asset fee imposed as maker + // }, + // "baseNet": 2.9988, // base asset balance's net change (in ZEC for this case) + // "quoteGross": -3000000, // quote asset balance's gross change (in KRW for + // "quoteFee": { + // "taking": 0, // quote asset fee imposed as taker + // "making": 0 // quote asset fee imposed as maker + // }, + // "quoteNet": -3000000 // quote asset balance's net change (in KRW for this case) + // } + // } + // + const id = this.safeString (order, 'id'); + const clientOrderId = this.safeString (order, 'clientOrderId'); + const timestamp = this.parse8601 (this.safeString (order, 'createdAt')); + const type = this.safeString (order, 'type'); + const side = this.safeString (order, 'side'); + const timeInForce = this.safeStringUpper (order, 'timeInForce'); + const price = this.safeFloat (order, 'price'); + const amount = this.safeFloat (order, 'amount'); + const stopPrice = this.safeFloat (order, 'stopPrice'); + const remaining = this.safeFloat (order, 'remaining'); + const marketId = this.safeString (order, 'tradingPairName'); + market = this.safeMarket (marketId, market, '-'); + const status = this.parseOrderStatus (this.safeString (order, 'status')); + const balanceChange = this.safeValue (order, 'balanceChange', {}); + let filled = this.safeFloat (balanceChange, 'baseNet'); + let cost = this.safeFloat (balanceChange, 'quoteNet'); + if (cost !== undefined) { + cost = Math.abs (cost); + } + let updated = undefined; + if ((filled === undefined) && (amount !== undefined) && (remaining !== undefined)) { + filled = Math.max (0, amount - remaining); + } + if ((filled !== undefined) && (filled > 0)) { + updated = this.parse8601 (this.safeString (order, 'updatedAt')); + } + if ((cost === undefined) && (price !== undefined) && (filled !== undefined)) { + cost = filled * price; + } + let fee = undefined; + if (side === 'buy') { + const baseFee = this.safeValue (balanceChange, 'baseFee', {}); + const taking = this.safeFloat (baseFee, 'taking'); + const making = this.safeFloat (baseFee, 'making'); + fee = { + 'currency': market['base'], + 'cost': this.sum (taking, making), + }; + } else { + const quoteFee = this.safeValue (balanceChange, 'quoteFee', {}); + const taking = this.safeFloat (quoteFee, 'taking'); + const making = this.safeFloat (quoteFee, 'making'); + fee = { + 'currency': market['quote'], + 'cost': this.sum (taking, making), + }; + } + let postOnly = undefined; + if (timeInForce !== undefined) { + postOnly = (timeInForce === 'PO'); + } + return { + 'id': id, + 'clientOrderId': clientOrderId, + 'datetime': this.iso8601 (timestamp), + 'timestamp': timestamp, + 'lastTradeTimestamp': updated, + 'status': status, + 'symbol': market['symbol'], + 'type': type, + 'timeInForce': timeInForce, + 'postOnly': postOnly, + 'side': side, + 'price': price, + 'stopPrice': stopPrice, + 'average': undefined, + 'amount': amount, + 'filled': filled, + 'remaining': remaining, + 'cost': cost, + 'trades': undefined, + 'fee': fee, + 'info': order, + }; + } + + async fetchOrder (id, symbol = undefined, params = {}) { + await this.loadMarkets (); + let method = undefined; + const clientOrderId = this.safeString (params, 'clientOrderId'); + params = this.omit (params, 'clientOrderId'); + const request = {}; + if (clientOrderId === undefined) { + method = 'privateGetOrdersOrderId'; + request['orderId'] = id; + } else { + method = 'privateGetOrdersClientOrderIdClientOrderId'; + request['clientOrderId'] = clientOrderId; + } + const response = await this[method] (this.extend (request, params)); + // + // { + // "id": "453324", // order ID + // "clientOrderId": "zeckrw23456", // client order ID (showed only when it exists) + // "status": "updated", // placed, cancelled, completed, updated, reserved + // "forcedCompletionReason": undefined, // the reason in case it was canceled in the middle (protection or timeInForce) + // "tradingPairName": "ZEC-KRW", // order book + // "side": "buy", // buy, sell + // "type": "limit", // limit, market + // "price": 1000000, // price + // "stopPrice": undefined, // stop price (showed only for stop orders) + // "amount": 4, // initial amount + // "remaining": 1, // outstanding amount + // "protection": "yes", // whether protection is activated (yes or no) + // "timeInForce": "gtc", // limit order's time in force (gtc/po/ioc/fok) + // "createdAt": "2020-09-25T04:06:20.000Z", // order placement time + // "updatedAt": "2020-09-25T04:06:29.000Z", // order last update time + // "balanceChange": { + // "baseGross": 3, // base asset balance's gross change (in ZEC for this case) + // "baseFee": { + // "taking": 0, // base asset fee imposed as taker + // "making": -0.0012 // base asset fee imposed as maker + // }, + // "baseNet": 2.9988, // base asset balance's net change (in ZEC for this case) + // "quoteGross": -3000000, // quote asset balance's gross change (in KRW for + // "quoteFee": { + // "taking": 0, // quote asset fee imposed as taker + // "making": 0 // quote asset fee imposed as maker + // }, + // "quoteNet": -3000000 // quote asset balance's net change (in KRW for this case) + // } + // } + // + return this.parseOrder (response); + } + + async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + 'includePast': 'true', // if true, completed and canceled orders are included as the result, they are accessible for one hour only from its completion or cancellation time + // 'pagination': 'false', // if the result is more than 3,000 orders, set this value as true to access 1000 orders at max per each page + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + } + const response = await this.privateGetOrders (this.extend (request, params)); + // + // [ + // { + // "id": "453324", // order ID + // "clientOrderId": "zeckrw23456", // client order ID (showed only when it exists) + // "status": "updated", // placed, cancelled, completed, updated, reserved + // "forcedCompletionReason": undefined, // the reason in case it was canceled in the middle (protection or timeInForce) + // "tradingPairName": "ZEC-KRW", // order book + // "side": "buy", // buy, sell + // "type": "limit", // limit, market + // "price": 1000000, // price + // "stopPrice": undefined, // stop price (showed only for stop orders) + // "amount": 4, // initial amount + // "remaining": 1, // outstanding amount + // "protection": "yes", // whether protection is activated (yes or no) + // "timeInForce": "gtc", // limit order's time in force (gtc/po/ioc/fok) + // "createdAt": "2020-09-25T04:06:20.000Z", // order placement time + // "updatedAt": "2020-09-25T04:06:29.000Z", // order last update time + // "balanceChange": { + // "baseGross": 3, // base asset balance's gross change (in ZEC for this case) + // "baseFee": { + // "taking": 0, // base asset fee imposed as taker + // "making": -0.0012 // base asset fee imposed as maker + // }, + // "baseNet": 2.9988, // base asset balance's net change (in ZEC for this case) + // "quoteGross": -3000000, // quote asset balance's gross change (in KRW for + // "quoteFee": { + // "taking": 0, // quote asset fee imposed as taker + // "making": 0 // quote asset fee imposed as maker + // }, + // "quoteNet": -3000000 // quote asset balance's net change (in KRW for this case) + // } + // }, + // ] + // + return this.parseOrders (response, market, since, limit); + } + + async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const request = { + 'includePast': 'false', + }; + return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); + } + + async createOrder (symbol, type, side, amount, price = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + // 'clientOrderId': 'test4321', // max 20 characters of [a-zA-Z0-9_-] + 'tradingPairName': market['id'], + 'side': side, // buy, sell + 'type': type, // limit, market + // 'price': this.priceToPrecision (symbol, price), + // 'stopPrice': this.priceToPrecision (symbol, stopPrice), // optional, becomes a stop order if set + // 'amount': this.amountToPrecision (symbol, amount), + // 'protection': 'no', // whether protection is activated + // 'timeInForce': 'gtc', // gtc, po, ioc, fok + }; + if (type === 'limit') { + request['price'] = this.priceToPrecision (symbol, price); + request['amount'] = this.amountToPrecision (symbol, amount); + } else if (type === 'market') { + // for market buy it requires the amount of quote currency to spend + if (side === 'buy') { + let total = amount; + const createMarketBuyOrderRequiresPrice = this.safeValue (this.options, 'createMarketBuyOrderRequiresPrice', true); + if (createMarketBuyOrderRequiresPrice) { + if (price === undefined) { + throw new InvalidOrder (this.id + " createOrder() requires the price argument with market buy orders to calculate total order cost (amount to spend), where cost = amount * price. Supply a price argument to createOrder() call if you want the cost to be calculated for you from price and amount, or, alternatively, add .options['createMarketBuyOrderRequiresPrice'] = false and supply the total cost value in the 'amount' argument"); + } + total = price * amount; + } + const precision = market['precision']['price']; + request['amount'] = this.decimalToPrecision (total, TRUNCATE, precision, this.precisionMode); + } else { + request['amount'] = this.amountToPrecision (symbol, amount); + } + } + const clientOrderId = this.safeString (params, 'clientOrderId'); + if (clientOrderId !== undefined) { + request['clientOrderId'] = clientOrderId; + params = this.omit (params, 'clientOrderId'); + } + const stopPrice = this.safeFloat (params, 'stopPrice'); + if (stopPrice !== undefined) { + request['stopPrice'] = this.priceToPrecision (symbol, stopPrice); + params = this.omit (params, 'stopPrice'); + } + const timeInForce = this.safeStringLower (params, 'timeInForce'); + if (timeInForce !== undefined) { + request['timeInForce'] = timeInForce; + params = this.omit (params, 'timeInForce'); + } + const response = await this.privatePostOrders (this.extend (request, params)); + // + // { + // "id": "453327", // order ID + // "clientOrderId": "test4321", // client order ID (showed only when it exists) + // "status": "reserved", // placed, cancelled, completed, updated, reserved + // "forcedCompletionReason": undefined, // the reason in case it was canceled in the middle (protection or timeInForce) + // "tradingPairName": "BCH-KRW", // order book + // "side": "sell", // buy, sell + // "type": "limit", // limit, market + // "price": 11000000, // price + // "stopPrice": 12000000, // stop price (showed only for stop orders) + // "amount": 0.5, // initial amount + // "remaining": 0.5, // outstanding amount + // "protection": "no", // whether protection is activated (yes or no) + // "timeInForce": "gtc", // limit order's time in force (gtc/po/ioc/fok) + // "createdAt": "2020-09-25T04:51:31.000Z", // order placement time + // "balanceChange": { + // "baseGross": 0, // base asset balance's gross change (in BCH for this case) + // "baseFee": { + // "taking": 0, // base asset fee imposed as taker + // "making": 0 // base asset fee imposed as maker + // }, + // "baseNet": 0, // base asset balance's net change (in BCH for this case) + // "quoteGross": 0, // quote asset balance's gross change (in KRW for + // "quoteFee": { + // "taking": 0, // quote asset fee imposed as taker + // "making": 0 // quote asset fee imposed as maker + // }, + // "quoteNet": 0 // quote asset balance's net change (in KRW for this case) + // } + // } + // + return this.parseOrder (response, market); + } + + async cancelOrder (id, symbol = undefined, params = {}) { + await this.loadMarkets (); + const request = {}; + const clientOrderId = this.safeString (params, 'clientOrderId'); + let method = undefined; + if (clientOrderId === undefined) { + method = 'privateDeleteOrdersOrderId'; + request['orderId'] = id; + } else { + method = 'privateDeleteOrdersClientOrderIdClientOrderId'; + request['clientOrderId'] = clientOrderId; + params = this.omit (params, 'clientOrderId'); + } + const response = await this[method] (this.extend (request, params)); + // + // {} + // + const order = this.parseOrder (response); + return this.extend (order, { 'id': id }); + } + + async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'limit': limit, // max 100 + // 'pastmax': id, // read data older than this id + // 'latestmin': id, // read data newer than this id + // 'after': parseInt (since / 1000), // Read data after this timestamp in seconds + // 'before': this.seconds (), // Read data before this timestamp in seconds + 'deepSearch': 'true', // read data older than one month ago are inclusively looked up only when it is "true" + }; + if (since !== undefined) { + request['after'] = parseInt (since / 1000); + } + if (limit !== undefined) { + request['limit'] = limit; + } + const response = await this.privateGetTrades (this.extend (request, params)); + // + // [ + // { + // "id": 73953, // trading event ID + // "orderId": 453324, // order ID + // "baseAmount": 3, // traded base asset amount + // "quoteAmount": 3000000, // traded quote asset amount + // "fee": 0.0012, // fee + // "price": 1000000, // price + // "timestamp": "2020-09-25T04:06:30.000Z", // trading time + // "side": "buy", // buy, sell + // "tradingPairName": "ZEC-KRW", // order book + // "position": "maker" // maker, taker + // }, + // ] + // + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + } + return this.parseTrades (response, market, since, limit); + } + + parseDepositAddress (depositAddress, currency = undefined) { + // + // { + // "asset": "BTC", // asset name + // "address": "1CwC2cMFu1jRQUBtw925cENbT1kctJBMdm", // deposit address + // "memoId": null, // memo ID (showed only for assets using memo ID) + // "createdAt": 1594802312 // deposit address creation time + // } + // + const address = this.safeString (depositAddress, 'address'); + const tag = this.safeString (depositAddress, 'memoId'); + const currencyId = this.safeString (depositAddress, 'asset'); + const code = this.safeCurrencyCode (currencyId); + this.checkAddress (address); + return { + 'currency': code, + 'address': address, + 'tag': tag, + 'info': depositAddress, + }; + } + + parseDepositAddresses (addresses, codes = undefined) { + let result = []; + for (let i = 0; i < addresses.length; i++) { + const address = this.parseDepositAddress (addresses[i]); + result.push (address); + } + if (codes) { + result = this.filterByArray (result, 'currency', codes); + } + return this.indexBy (result, 'currency'); + } + + async fetchDepositAddresses (codes = undefined, params = {}) { + await this.loadMarkets (); + const response = await this.privateGetCryptoDepositAddresses (params); + // + // [ + // { + // "asset": "BTC", // asset name + // "address": "1CwC2cMFu1jRQUBtw925cENbT1kctJBMdm", // deposit address + // "memoId": null, // memo ID (showed only for assets using memo ID) + // "createdAt": 1594802312 // deposit address creation time + // }, + // ] + // + return this.parseDepositAddresses (response, codes); + } + + async fetchDepositAddress (code, params = {}) { + await this.loadMarkets (); + const response = await this.fetchDepositAddresses (undefined, params); + const address = this.safeValue (response, code); + if (address === undefined) { + throw new InvalidAddress (this.id + ' fetchDepositAddress() ' + code + ' address not found'); + } + return address; + } + + parseTransactionStatus (status) { + const statuses = { + 'reviewing': 'pending', + 'rejected': 'rejected', + 'processing': 'pending', + 'failed': 'failed', + 'completed': 'ok', + }; + return this.safeString (statuses, status, status); + } + + parseTransaction (transaction, currency = undefined) { + // + // { + // "id": 640, // deposit/withdrawal event ID + // "asset": "BTC", // asset name + // "type": "crypto_withdrawal", // fiat_withdrawal, fiat_deposit, crypto_withdrawal, crypto_deposit + // "netAmount": 0.0001, // amount + // "feeAmount": 0.0005, // fee (null if there is no imposed fee) + // "status": "completed", // reviewing, rejected, processing, failed, completed + // "reviewStartedAt": 1595556218, // request time + // "completedAt": 1595556902, // completion time (showed only in case of completed) + // "txId": "eaca5ad3...", // tx ID + // "sourceAddress": null, // sender address (showed only in case of crypto_deposit) + // "destinationAddress: "3H8...", // recipient address (showed only in case of crypto_withdrawal) + // "destinationMemoId": null // recipient address's memo ID + // } + // + const id = this.safeString (transaction, 'id'); + const txid = this.safeString (transaction, 'txId'); + const currencyId = this.safeString (transaction, 'asset'); + const code = this.safeCurrencyCode (currencyId, currency); + let type = this.safeString (transaction, 'type'); + if ((type === 'crypto_withdrawal') || (type === 'fiat_withdrawal')) { + type = 'withdrawal'; + } else if ((type === 'crypto_deposit' || type === 'fiat_deposit')) { + type = 'deposit'; + } + const amount = this.safeFloat (transaction, 'netAmount'); + const feeCost = this.safeFloat (transaction, 'feeAmount'); + let fee = undefined; + if (feeCost !== undefined) { + fee = { + 'cost': feeCost, + 'currency': code, + }; + } + const timestamp = this.safeTimestamp (transaction, 'reviewStartedAt'); + const updated = this.safeTimestamp (transaction, 'completedAt'); + const addressFrom = this.safeString (transaction, 'sourceAddress'); + const addressTo = this.safeString (transaction, 'destinationAddress'); + const tagFrom = this.safeString (transaction, 'sourceMemoId'); + const tagTo = this.safeString (transaction, 'destinationMemoId'); + const status = this.parseTransactionStatus (this.safeString (transaction, 'status')); + return { + 'info': transaction, + 'id': id, + 'txid': txid, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'addressFrom': addressFrom, + 'address': addressTo, + 'addressTo': addressTo, + 'tagFrom': tagFrom, + 'tag': tagTo, + 'tagTo': tagTo, + 'type': type, + 'amount': amount, + 'currency': code, + 'status': status, + 'updated': updated, + 'comment': undefined, + 'fee': fee, + }; + } + + async fetchTransactions (code = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'limit': limit, // max 20 + // 'latestmin': limit, // read data older than this id + // 'after': this.milliseconds (), + // 'before': since, + // 'completedOnly': 'no', + }; + if (since !== undefined) { + request['before'] = since; + } + if (limit !== undefined) { + request['limit'] = limit; + } + const response = await this.privateGetDepositWithdrawalStatus (this.extend (request, params)); + // + // [ + // { + // "id": 640, // deposit/withdrawal event ID + // "asset": "BTC", // asset name + // "type": "crypto_withdrawal", // fiat_withdrawal, fiat_deposit, crypto_withdrawal, crypto_deposit + // "netAmount": 0.0001, // amount + // "feeAmount": 0.0005, // fee (null if there is no imposed fee) + // "status": "completed", // reviewing, rejected, processing, failed, completed + // "reviewStartedAt": 1595556218, // request time + // "completedAt": 1595556902, // completion time (showed only in case of completed) + // "txId": "eaca5ad3...", // tx ID + // "sourceAddress": null, // sender address (showed only in case of crypto_deposit) + // "destinationAddress: "3H8...", // recipient address (showed only in case of crypto_withdrawal) + // "destinationMemoId": null // recipient address's memo ID + // }, + // ] + // + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + } + return this.parseTransactions (response, currency, since, limit, params); + } + + nonce () { + return this.milliseconds (); + } + + sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { // for authentication in private API calls + const endpoint = '/' + this.implodeParams (path, params); + let url = this.implodeParams (this.urls['api'][api], { 'hostname': this.hostname }) + endpoint; + const query = this.omit (params, this.extractParams (path)); + if (api === 'public') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } else if (api === 'private') { + this.checkRequiredCredentials (); + const timestamp = this.nonce ().toString (); + let auth = 't' + timestamp + method + endpoint; + headers = { + 'api-key': this.apiKey, + 'timestamp': timestamp, + }; + if (method === 'POST') { + headers['Content-Type'] = 'application/json'; + body = this.json (params); + auth += body; + } else if (endpoint === '/orders') { + if (Object.keys (query).length) { + const urlQuery = '?' + this.urlencode (query); + auth += urlQuery; + url += urlQuery; + } + } else if (method === 'GET') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } + const rawSecret = this.base64ToBinary (this.secret); + const signature = this.hmac (this.encode (auth), rawSecret, 'sha512', 'base64'); + headers['signature'] = signature; + } + return { 'url': url, 'method': method, 'body': body, 'headers': headers }; + } + + handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { + if (response === undefined) { + return; + } + // + // {"errorMessage":"Invalid API key","errorCode":10155} + // + if (!Array.isArray (response)) { + const errorCode = this.safeString (response, 'errorCode'); + const errorMessage = this.safeString (response, 'errorMessage'); + const feedback = this.id + ' ' + body; + if (errorMessage !== undefined) { + this.throwBroadlyMatchedException (this.exceptions['broad'], body, feedback); + } + if (errorCode !== undefined) { + this.throwExactlyMatchedException (this.exceptions['exact'], errorCode, feedback); + } + if ((errorCode !== undefined) || (errorMessage !== undefined)) { + throw new ExchangeError (feedback); + } + } + } +}; + +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],92:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -69922,7 +76573,7 @@ module.exports = class hbtc extends Exchange { method = 'optionGetMyTrades'; } else { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a `symbol` argument for ' + type + ' markets'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a `symbol` argument for ' + type + ' markets'); } const market = this.market (symbol); request['symbol'] = market['id']; @@ -71035,6 +77686,7 @@ module.exports = class hbtc extends Exchange { 'NEW': 'open', 'CANCELED': 'canceled', 'FILLED': 'closed', + 'PARTIALLY_FILLED': 'open', 'PENDING_CANCEL': 'canceled', }; return this.safeString (statuses, status, status); @@ -71088,7 +77740,7 @@ module.exports = class hbtc extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],89:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],93:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -71150,6 +77802,10 @@ module.exports = class hitbtc extends Exchange { }, 'urls': { 'logo': 'https://user-images.githubusercontent.com/1294454/27766555-8eaec20e-5edc-11e7-9c5b-6dc69fc42f5e.jpg', + 'test': { + 'public': 'https://api.demo.hitbtc.com', + 'private': 'https://api.demo.hitbtc.com', + }, 'api': { 'public': 'https://api.hitbtc.com', 'private': 'https://api.hitbtc.com', @@ -71251,6 +77907,7 @@ module.exports = class hitbtc extends Exchange { 'LNC': 'LinkerCoin', 'PLA': 'PlayChip', 'PNT': 'Penta', + 'SBTC': 'Super Bitcoin', 'TV': 'Tokenville', 'USD': 'USDT', 'XPNT': 'PNT', @@ -71888,22 +78545,44 @@ module.exports = class hitbtc extends Exchange { // // createMarketOrder // - // { clientOrderId: "fe36aa5e190149bf9985fb673bbb2ea0", - // createdAt: "2018-10-25T16:41:44.780Z", - // cumQuantity: "1", - // id: "66799540063", - // quantity: "1", - // side: "sell", - // status: "filled", - // symbol: "XRPUSDT", - // timeInForce: "FOK", - // tradesReport: [ { fee: "0.0004644", - // id: 386394956, - // price: "0.4644", - // quantity: "1", - // timestamp: "2018-10-25T16:41:44.780Z" } ], - // type: "market", - // updatedAt: "2018-10-25T16:41:44.780Z" } + // { + // clientOrderId: "fe36aa5e190149bf9985fb673bbb2ea0", + // createdAt: "2018-10-25T16:41:44.780Z", + // cumQuantity: "1", + // id: "66799540063", + // quantity: "1", + // side: "sell", + // status: "filled", + // symbol: "XRPUSDT", + // timeInForce: "FOK", + // tradesReport: [ + // { + // fee: "0.0004644", + // id: 386394956, + // price: "0.4644", + // quantity: "1", + // timestamp: "2018-10-25T16:41:44.780Z" + // } + // ], + // type: "market", + // updatedAt: "2018-10-25T16:41:44.780Z" + // } + // + // { + // "id": 119499457455, + // "clientOrderId": "87baab109d58401b9202fa0749cb8288", + // "symbol": "ETHUSD", + // "side": "buy", + // "status": "filled", + // "type": "market", + // "timeInForce": "FOK", + // "quantity": "0.0007", + // "price": "181.487", + // "avgPrice": "164.989", + // "cumQuantity": "0.0007", + // "createdAt": "2019-04-17T13:27:38.062Z", + // "updatedAt": "2019-04-17T13:27:38.062Z" + // } // const created = this.parse8601 (this.safeString (order, 'createdAt')); const updated = this.parse8601 (this.safeString (order, 'updatedAt')); @@ -71933,7 +78612,7 @@ module.exports = class hitbtc extends Exchange { const side = this.safeString (order, 'side'); let trades = this.safeValue (order, 'tradesReport'); let fee = undefined; - let average = undefined; + let average = this.safeValue (order, 'avgPrice'); if (trades !== undefined) { trades = this.parseTrades (trades, market); let feeCost = undefined; @@ -71952,7 +78631,9 @@ module.exports = class hitbtc extends Exchange { } cost = tradesCost; if ((filled !== undefined) && (filled > 0)) { - average = cost / filled; + if (average === undefined) { + average = cost / filled; + } if (type === 'market') { if (price === undefined) { price = average; @@ -72249,7 +78930,7 @@ module.exports = class hitbtc extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],90:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],94:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -72772,7 +79453,7 @@ module.exports = class hollaex extends Exchange { const duration = this.parseTimeframe (timeframe); if (since === undefined) { if (limit === undefined) { - throw new ArgumentsRequired (this.id + " fetchOHLCV requires a 'since' or a 'limit' argument"); + throw new ArgumentsRequired (this.id + " fetchOHLCV() requires a 'since' or a 'limit' argument"); } else { const end = this.seconds (); const start = end - duration * limit; @@ -72954,6 +79635,7 @@ module.exports = class hollaex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -73423,7 +80105,7 @@ module.exports = class hollaex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],91:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],95:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -73464,7 +80146,7 @@ module.exports = class huobijp extends huobipro { } }; -},{"./base/errors":7,"./huobipro.js":92}],92:[function(require,module,exports){ +},{"./base/errors":8,"./huobipro.js":96}],96:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -73565,6 +80247,7 @@ module.exports = class huobipro extends Exchange { 'user/api-key', // 母子用户API key信息查询 ], 'post': [ + 'account/transfer', 'point/transfer', // 点卡划转 'sub-user/management', // 冻结/解冻子用户 'sub-user/creation', // 子用户创建 @@ -73662,9 +80345,14 @@ module.exports = class huobipro extends Exchange { }, }, 'exceptions': { + 'broad': { + 'contract is restricted of closing positions on API. Please contact customer service': OnMaintenance, + 'maintain': OnMaintenance, + }, 'exact': { // err-code 'bad-request': BadRequest, + 'base-date-limit-error': BadRequest, // {"status":"error","err-code":"base-date-limit-error","err-msg":"date less than system limit","data":null} 'api-not-support-temp-addr': PermissionDenied, // {"status":"error","err-code":"api-not-support-temp-addr","err-msg":"API withdrawal does not support temporary addresses","data":null} 'timeout': RequestTimeout, // {"ts":1571653730865,"status":"error","err-code":"timeout","err-msg":"Request Timeout"} 'gateway-internal-error': ExchangeNotAvailable, // {"status":"error","err-code":"gateway-internal-error","err-msg":"Failed to load data. Try again later.","data":null} @@ -73675,6 +80363,8 @@ module.exports = class huobipro extends Exchange { 'order-marketorder-amount-min-error': InvalidOrder, // market order amount error, min: `0.01` 'order-limitorder-price-min-error': InvalidOrder, // limit order price error 'order-limitorder-price-max-error': InvalidOrder, // limit order price error + 'order-holding-limit-failed': InvalidOrder, // {"status":"error","err-code":"order-holding-limit-failed","err-msg":"Order failed, exceeded the holding limit of this currency","data":null} + 'order-orderprice-precision-error': InvalidOrder, // {"status":"error","err-code":"order-orderprice-precision-error","err-msg":"order price precision error, scale: `4`","data":null} 'order-orderstate-error': OrderNotFound, // canceling an already canceled order 'order-queryorder-invalid': OrderNotFound, // querying a non-existent order 'order-update-error': ExchangeNotAvailable, // undocumented error @@ -73710,6 +80400,7 @@ module.exports = class huobipro extends Exchange { // https://coinmarketcap.com/currencies/penta/markets/ // https://en.cryptonomist.ch/blog/eidoo/the-edo-to-pnt-upgrade-what-you-need-to-know-updated/ 'PNT': 'Penta', + 'SBTC': 'Super Bitcoin', }, }); } @@ -74142,7 +80833,8 @@ module.exports = class huobipro extends Exchange { request['size'] = limit; // 1-100 orders, default is 100 } if (since !== undefined) { - request['start-date'] = this.ymd (since); // maximum query window size is 2 days, query window shift should be within past 120 days + request['start-date'] = this.ymd (since); // a date within 61 days from today + request['end-date'] = this.ymd (this.sum (since, 86400000)); } const response = await this.privateGetOrderMatchresults (this.extend (request, params)); const trades = this.parseTrades (response['data'], market, since, limit); @@ -74410,7 +81102,7 @@ module.exports = class huobipro extends Exchange { async fetchOpenOrdersV1 (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrdersV1 requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrdersV1() requires a symbol argument'); } return await this.fetchOrdersByStates ('pre-submitted,submitted,partial-filled', symbol, since, limit, params); } @@ -74422,7 +81114,7 @@ module.exports = class huobipro extends Exchange { async fetchOpenOrdersV2 (symbol = undefined, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } const market = this.market (symbol); let accountId = this.safeString (params, 'account-id'); @@ -74572,6 +81264,7 @@ module.exports = class huobipro extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -74951,6 +81644,7 @@ module.exports = class huobipro extends Exchange { if (status === 'error') { const code = this.safeString (response, 'err-code'); const feedback = this.id + ' ' + body; + this.throwBroadlyMatchedException (this.exceptions['broad'], body, feedback); this.throwExactlyMatchedException (this.exceptions['exact'], code, feedback); const message = this.safeString (response, 'err-msg'); this.throwExactlyMatchedException (this.exceptions['exact'], message, feedback); @@ -74960,40 +81654,7 @@ module.exports = class huobipro extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],93:[function(require,module,exports){ -'use strict'; - -// --------------------------------------------------------------------------- - -const huobipro = require ('./huobipro.js'); - -// --------------------------------------------------------------------------- - -module.exports = class huobiru extends huobipro { - describe () { - return this.deepExtend (super.describe (), { - 'id': 'huobiru', - 'name': 'Huobi Russia', - 'countries': [ 'RU' ], - 'hostname': 'www.huobi.com.ru', - 'pro': true, - 'urls': { - 'logo': 'https://user-images.githubusercontent.com/1294454/52978816-e8552e00-33e3-11e9-98ed-845acfece834.jpg', - 'api': { - 'market': 'https://{hostname}/api', - 'public': 'https://{hostname}/api', - 'private': 'https://{hostname}/api', - }, - 'www': 'https://www.huobi.com.ru/ru-ru', - 'referral': 'https://www.huobi.com.ru/invite?invite_code=esc74', - 'doc': 'https://github.com/cloudapidoc/API_Docs_en', - 'fees': 'https://www.huobi.com.ru/ru-ru/about/fee/', - }, - }); - } -}; - -},{"./huobipro.js":92}],94:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],97:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -75221,7 +81882,7 @@ module.exports = class ice3x extends Exchange { const type = this.safeString (params, 'type'); if ((type !== 'ask') && (type !== 'bid')) { // eslint-disable-next-line quotes - throw new ArgumentsRequired (this.id + " fetchOrderBook requires an exchange-specific extra 'type' param ('bid' or 'ask') when used with a limit"); + throw new ArgumentsRequired (this.id + " fetchOrderBook() requires an exchange-specific extra 'type' param ('bid' or 'ask') when used with a limit"); } else { request['items_per_page'] = limit; } @@ -75341,6 +82002,7 @@ module.exports = class ice3x extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': this.safeString (order, 'type'), 'price': price, 'stopPrice': undefined, @@ -75489,7 +82151,7 @@ module.exports = class ice3x extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],95:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],98:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -75548,8 +82210,8 @@ module.exports = class idex extends Exchange { }, 'logo': 'https://user-images.githubusercontent.com/51840849/94481303-2f222100-01e0-11eb-97dd-bc14c5943a86.jpg', 'api': { - 'public': 'https://api.idex.io', - 'private': 'https://api.idex.io', + 'ETH': 'https://api-eth.idex.io', + 'BSC': 'https://api-bsc.idex.io', }, 'www': 'https://idex.io', 'doc': [ @@ -75595,6 +82257,7 @@ module.exports = class idex extends Exchange { 'options': { 'defaultTimeInForce': 'gtc', 'defaultSelfTradePrevention': 'cn', + 'network': 'ETH', // also supports BSC }, 'exceptions': { 'INVALID_ORDER_QUANTITY': InvalidOrder, @@ -76314,16 +82977,8 @@ module.exports = class idex extends Exchange { const type = this.safeString (order, 'type'); const amount = this.safeFloat (order, 'originalQuantity'); const filled = this.safeFloat (order, 'executedQuantity'); - let remaining = undefined; - if ((amount !== undefined) && (filled !== undefined)) { - remaining = amount - filled; - } const average = this.safeFloat (order, 'avgExecutionPrice'); - const price = this.safeFloat (order, 'price', average); // for market orders - let cost = undefined; - if ((amount !== undefined) && (price !== undefined)) { - cost = amount * price; - } + const price = this.safeFloat (order, 'price'); const rawStatus = this.safeString (order, 'status'); const status = this.parseOrderStatus (rawStatus); const fee = { @@ -76337,7 +82992,7 @@ module.exports = class idex extends Exchange { fee['cost'] = this.sum (fee['cost'], lastTrade['fee']['cost']); } const lastTradeTimestamp = this.safeInteger (lastTrade, 'timestamp'); - return { + return this.safeOrder ({ 'info': order, 'id': id, 'clientOrderId': clientOrderId, @@ -76347,18 +83002,19 @@ module.exports = class idex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, 'amount': amount, - 'cost': cost, + 'cost': undefined, 'average': average, 'filled': filled, - 'remaining': remaining, + 'remaining': undefined, 'status': status, 'fee': fee, 'trades': trades, - }; + }); } async associateWallet (walletAddress, params = {}) { @@ -76435,7 +83091,8 @@ module.exports = class idex extends Exchange { } const sideEnum = (side === 'buy') ? 0 : 1; const walletBytes = this.remove0xPrefix (this.walletAddress); - const orderVersion = 1; + const network = this.safeString (this.options, 'network', 'ETH'); + const orderVersion = (network === 'ETH') ? 1 : 2; const amountString = this.amountToPrecision (symbol, amount); // https://docs.idex.io/#time-in-force const timeInForceEnums = { @@ -76764,8 +83421,9 @@ module.exports = class idex extends Exchange { } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { + const network = this.safeString (this.options, 'network', 'ETH'); const version = this.safeString (this.options, 'version', 'v1'); - let url = this.urls['api'][api] + '/' + version + '/' + path; + let url = this.urls['api'][network] + '/' + version + '/' + path; const keys = Object.keys (params); const length = keys.length; let query = undefined; @@ -76796,7 +83454,7 @@ module.exports = class idex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],96:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],99:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -77086,6 +83744,7 @@ module.exports = class independentreserve extends Exchange { 'symbol': symbol, 'type': orderType, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -77193,10 +83852,13 @@ module.exports = class independentreserve extends Exchange { cost = price * amount; } } - let symbol = undefined; - if (market !== undefined) { - symbol = market['symbol']; + const baseId = this.safeString (trade, 'PrimaryCurrencyCode'); + const quoteId = this.safeString (trade, 'SecondaryCurrencyCode'); + let marketId = undefined; + if ((baseId !== undefined) && (quoteId !== undefined)) { + marketId = baseId + '/' + quoteId; } + const symbol = this.safeSymbol (marketId, market, '/'); let side = this.safeString (trade, 'OrderType'); if (side !== undefined) { if (side.indexOf ('Bid') >= 0) { @@ -77302,7 +83964,7 @@ module.exports = class independentreserve extends Exchange { } }; -},{"./base/Exchange":5}],97:[function(require,module,exports){ +},{"./base/Exchange":6}],100:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -77704,6 +84366,7 @@ module.exports = class indodax extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -77720,7 +84383,7 @@ module.exports = class indodax extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol'); } await this.loadMarkets (); const market = this.market (symbol); @@ -77767,7 +84430,7 @@ module.exports = class indodax extends Exchange { async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const request = {}; @@ -77811,11 +84474,11 @@ module.exports = class indodax extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } const side = this.safeValue (params, 'side'); if (side === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires an extra "side" param'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires an extra "side" param'); } await this.loadMarkets (); const market = this.market (symbol); @@ -77922,7 +84585,7 @@ module.exports = class indodax extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],98:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],101:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -78193,7 +84856,7 @@ module.exports = class itbit extends Exchange { await this.loadMarkets (); const walletId = this.safeString (params, 'walletId'); if (walletId === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a walletId parameter'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a walletId parameter'); } const request = { 'walletId': walletId, @@ -78262,7 +84925,7 @@ module.exports = class itbit extends Exchange { await this.loadMarkets (); const walletId = this.safeString (params, 'walletId'); if (walletId === undefined) { - throw new ExchangeError (this.id + ' fetchMyTrades requires a walletId parameter'); + throw new ExchangeError (this.id + ' fetchMyTrades() requires a walletId parameter'); } const request = { 'walletId': walletId, @@ -78352,7 +85015,7 @@ module.exports = class itbit extends Exchange { async fetchWallets (params = {}) { await this.loadMarkets (); if (!this.uid) { - throw new AuthenticationError (this.id + ' fetchWallets requires uid API credential'); + throw new AuthenticationError (this.id + ' fetchWallets() requires uid API credential'); } const request = { 'userId': this.uid, @@ -78390,7 +85053,7 @@ module.exports = class itbit extends Exchange { } const walletIdInParams = ('walletId' in params); if (!walletIdInParams) { - throw new ExchangeError (this.id + ' fetchOrders requires a walletId parameter'); + throw new ExchangeError (this.id + ' fetchOrders() requires a walletId parameter'); } const walletId = params['walletId']; const request = { @@ -78454,6 +85117,8 @@ module.exports = class itbit extends Exchange { } const clientOrderId = this.safeString (order, 'clientOrderIdentifier'); const id = this.safeString (order, 'id'); + const postOnlyString = this.safeString (order, 'postOnly'); + const postOnly = (postOnlyString === 'True'); return { 'id': id, 'clientOrderId': clientOrderId, @@ -78465,6 +85130,7 @@ module.exports = class itbit extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': undefined, @@ -78490,7 +85156,7 @@ module.exports = class itbit extends Exchange { } const walletIdInParams = ('walletId' in params); if (!walletIdInParams) { - throw new ExchangeError (this.id + ' createOrder requires a walletId parameter'); + throw new ExchangeError (this.id + ' createOrder() requires a walletId parameter'); } amount = amount.toString (); price = price.toString (); @@ -78515,7 +85181,7 @@ module.exports = class itbit extends Exchange { await this.loadMarkets (); const walletIdInParams = ('walletId' in params); if (!walletIdInParams) { - throw new ExchangeError (this.id + ' fetchOrder requires a walletId parameter'); + throw new ExchangeError (this.id + ' fetchOrder() requires a walletId parameter'); } const request = { 'id': id, @@ -78527,7 +85193,7 @@ module.exports = class itbit extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { const walletIdInParams = ('walletId' in params); if (!walletIdInParams) { - throw new ExchangeError (this.id + ' cancelOrder requires a walletId parameter'); + throw new ExchangeError (this.id + ' cancelOrder() requires a walletId parameter'); } const request = { 'id': id, @@ -78574,13 +85240,13 @@ module.exports = class itbit extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],99:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],102:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { BadSymbol, ExchangeNotAvailable, ArgumentsRequired, PermissionDenied, AuthenticationError, ExchangeError, OrderNotFound, DDoSProtection, InvalidNonce, InsufficientFunds, CancelPending, InvalidOrder, InvalidAddress } = require ('./base/errors'); +const { BadSymbol, ExchangeNotAvailable, ArgumentsRequired, PermissionDenied, AuthenticationError, ExchangeError, OrderNotFound, DDoSProtection, InvalidNonce, InsufficientFunds, CancelPending, InvalidOrder, InvalidAddress, RateLimitExceeded } = require ('./base/errors'); const { TRUNCATE, DECIMAL_PLACES } = require ('./base/functions/number'); // --------------------------------------------------------------------------- @@ -78596,6 +85262,7 @@ module.exports = class kraken extends Exchange { 'certified': true, 'pro': true, 'has': { + 'cancelAllOrders': true, 'cancelOrder': true, 'CORS': false, 'createDepositAddress': true, @@ -78756,6 +85423,7 @@ module.exports = class kraken extends Exchange { 'AddOrder', 'AddExport', 'Balance', + 'CancelAll', 'CancelOrder', 'ClosedOrders', 'DepositAddresses', @@ -78783,6 +85451,7 @@ module.exports = class kraken extends Exchange { }, 'commonCurrencies': { 'XBT': 'BTC', + 'XBT.M': 'BTC.M', // https://support.kraken.com/hc/en-us/articles/360039879471-What-is-Asset-S-and-Asset-M- 'XDG': 'DOGE', 'REPV2': 'REP', 'REP': 'REPV1', @@ -78926,13 +85595,17 @@ module.exports = class kraken extends Exchange { return result; } - safeCurrencyCode (currencyId, currency = undefined) { + safeCurrency (currencyId, currency = undefined) { if (currencyId.length > 3) { if ((currencyId.indexOf ('X') === 0) || (currencyId.indexOf ('Z') === 0)) { - currencyId = currencyId.slice (1); + if (currencyId.indexOf ('.') > 0) { + return super.safeCurrency (currencyId, currency); + } else { + currencyId = currencyId.slice (1); + } } } - return super.safeCurrencyCode (currencyId, currency); + return super.safeCurrency (currencyId, currency); } appendInactiveMarkets (result) { @@ -79397,7 +86070,7 @@ module.exports = class kraken extends Exchange { let amount = undefined; let cost = undefined; let id = undefined; - let order = undefined; + let orderId = undefined; let fee = undefined; let symbol = undefined; if (Array.isArray (trade)) { @@ -79421,7 +86094,7 @@ module.exports = class kraken extends Exchange { // delisted market ids go here market = this.getDelistedMarketById (marketId); } - order = trade['ordertxid']; + orderId = this.safeString (trade, 'ordertxid'); id = this.safeString2 (trade, 'id', 'postxid'); timestamp = this.safeTimestamp (trade, 'time'); side = this.safeString (trade, 'type'); @@ -79449,7 +86122,7 @@ module.exports = class kraken extends Exchange { } return { 'id': id, - 'order': order, + 'order': orderId, 'info': trade, 'timestamp': timestamp, 'datetime': this.iso8601 (timestamp), @@ -79512,6 +86185,7 @@ module.exports = class kraken extends Exchange { } async fetchBalance (params = {}) { + await this.loadMarkets (); const response = await this.privatePostBalance (params); const balances = this.safeValue (response, 'result', {}); const result = { 'info': balances }; @@ -79536,18 +86210,50 @@ module.exports = class kraken extends Exchange { 'volume': this.amountToPrecision (symbol, amount), }; const clientOrderId = this.safeString2 (params, 'userref', 'clientOrderId'); - const query = this.omit (params, [ 'userref', 'clientOrderId' ]); + params = this.omit (params, [ 'userref', 'clientOrderId' ]); if (clientOrderId !== undefined) { request['userref'] = clientOrderId; } - const priceIsDefined = (price !== undefined); - const marketOrder = (type === 'market'); - const limitOrder = (type === 'limit'); - const shouldIncludePrice = limitOrder || (!marketOrder && priceIsDefined); - if (shouldIncludePrice) { + // + // market + // limit (price = limit price) + // stop-loss (price = stop loss price) + // take-profit (price = take profit price) + // stop-loss-limit (price = stop loss trigger price, price2 = triggered limit price) + // take-profit-limit (price = take profit trigger price, price2 = triggered limit price) + // settle-position + // + if (type === 'limit') { request['price'] = this.priceToPrecision (symbol, price); + } else if ((type === 'stop-loss') || (type === 'take-profit')) { + const stopPrice = this.safeFloat2 (params, 'price', 'stopPrice', price); + if (stopPrice === undefined) { + throw new ArgumentsRequired (this.id + ' createOrder() requires a price argument or a price/stopPrice parameter for a ' + type + ' order'); + } else { + request['price'] = this.priceToPrecision (symbol, stopPrice); + } + } else if ((type === 'stop-loss-limit') || (type === 'take-profit-limit')) { + const stopPrice = this.safeFloat2 (params, 'price', 'stopPrice'); + const limitPrice = this.safeFloat (params, 'price2'); + const stopPriceDefined = (stopPrice !== undefined); + const limitPriceDefined = (limitPrice !== undefined); + if (stopPriceDefined && limitPriceDefined) { + request['price'] = this.priceToPrecision (symbol, stopPrice); + request['price2'] = this.priceToPrecision (symbol, limitPrice); + } else if ((price === undefined) || (!(stopPriceDefined || limitPriceDefined))) { + throw new ArgumentsRequired (this.id + ' createOrder() requires a price argument and/or price/stopPrice/price2 parameters for a ' + type + ' order'); + } else { + if (stopPriceDefined) { + request['price'] = this.priceToPrecision (symbol, stopPrice); + request['price2'] = this.priceToPrecision (symbol, price); + } else if (limitPriceDefined) { + request['price'] = this.priceToPrecision (symbol, price); + request['price2'] = this.priceToPrecision (symbol, limitPrice); + } + } } - const response = await this.privatePostAddOrder (this.extend (request, query)); + params = this.omit (params, [ 'price', 'stopPrice', 'price2' ]); + const response = await this.privatePostAddOrder (this.extend (request, params)); // // { // error: [], @@ -79710,6 +86416,7 @@ module.exports = class kraken extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -79776,8 +86483,11 @@ module.exports = class kraken extends Exchange { // } // } // - const orders = this.safeValue (response, 'result', []); - const order = this.parseOrder (this.extend ({ 'id': id }, orders[id])); + const result = this.safeValue (response, 'result', []); + if (!(id in result)) { + throw new OrderNotFound (this.id + ' fetchOrder() could not find order id ' + id); + } + const order = this.parseOrder (this.extend ({ 'id': id }, result[id])); return this.extend ({ 'info': response }, order); } @@ -79785,7 +86495,7 @@ module.exports = class kraken extends Exchange { const orderTrades = this.safeValue (params, 'trades'); const tradeIds = []; if (orderTrades === undefined) { - throw new ArgumentsRequired (this.id + " fetchOrderTrades requires a unified order structure in the params argument or a 'trades' param (an array of trade id strings)"); + throw new ArgumentsRequired (this.id + " fetchOrderTrades() requires a unified order structure in the params argument or a 'trades' param (an array of trade id strings)"); } else { for (let i = 0; i < orderTrades.length; i++) { const orderTrade = orderTrades[i]; @@ -79934,6 +86644,11 @@ module.exports = class kraken extends Exchange { return response; } + async cancelAllOrders (symbol = undefined, params = {}) { + await this.loadMarkets (); + return await this.privatePostCancelAll (params); + } + async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); const request = {}; @@ -80105,7 +86820,7 @@ module.exports = class kraken extends Exchange { async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { // https://www.kraken.com/en-us/help/api#deposit-status if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchDeposits requires a currency code argument'); + throw new ArgumentsRequired (this.id + ' fetchDeposits() requires a currency code argument'); } await this.loadMarkets (); const currency = this.currency (code); @@ -80148,7 +86863,7 @@ module.exports = class kraken extends Exchange { async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { // https://www.kraken.com/en-us/help/api#withdraw-status if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchWithdrawals requires a currency code argument'); + throw new ArgumentsRequired (this.id + ' fetchWithdrawals() requires a currency code argument'); } await this.loadMarkets (); const currency = this.currency (code); @@ -80239,7 +86954,65 @@ module.exports = class kraken extends Exchange { 'id': response['result'], }; } - throw new ExchangeError (this.id + " withdraw requires a 'key' parameter (withdrawal key name, as set up on your account)"); + throw new ExchangeError (this.id + " withdraw() requires a 'key' parameter (withdrawal key name, as set up on your account)"); + } + + async fetchPositions (symbols = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'txid': 'comma delimited list of transaction ids to restrict output to', + // 'docalcs': false, // whether or not to include profit/loss calculations + // 'consolidation': 'market', // what to consolidate the positions data around, market will consolidate positions based on market pair + }; + const response = await this.privatePostOpenPositions (this.extend (request, params)); + // + // no consolidation + // + // { + // error: [], + // result: { + // 'TGUFMY-FLESJ-VYIX3J': { + // ordertxid: "O3LRNU-ZKDG5-XNCDFR", + // posstatus: "open", + // pair: "ETHUSDT", + // time: 1611557231.4584, + // type: "buy", + // ordertype: "market", + // cost: "28.49800", + // fee: "0.07979", + // vol: "0.02000000", + // vol_closed: "0.00000000", + // margin: "14.24900", + // terms: "0.0200% per 4 hours", + // rollovertm: "1611571631", + // misc: "", + // oflags: "" + // } + // } + // } + // + // consolidation by market + // + // { + // error: [], + // result: [ + // { + // pair: "ETHUSDT", + // positions: "1", + // type: "buy", + // leverage: "2.00000", + // cost: "28.49800", + // fee: "0.07979", + // vol: "0.02000000", + // vol_closed: "0.00000000", + // margin: "14.24900" + // } + // ] + // } + // + const result = this.safeValue (response, 'result'); + // todo unify parsePosition/parsePositions + return result; } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { @@ -80294,6 +87067,12 @@ module.exports = class kraken extends Exchange { if (body.indexOf ('Invalid arguments:volume') >= 0) { throw new InvalidOrder (this.id + ' ' + body); } + if (body.indexOf ('Rate limit exceeded') >= 0) { + throw new RateLimitExceeded (this.id + ' ' + body); + } + if (response === undefined) { + return; + } if (body[0] === '{') { if (typeof response !== 'string') { if ('error' in response) { @@ -80312,7 +87091,7 @@ module.exports = class kraken extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],100:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],103:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -80335,30 +87114,31 @@ module.exports = class kucoin extends Exchange { 'comment': 'Platform 2.0', 'has': { 'CORS': false, - 'fetchStatus': true, - 'fetchTime': true, - 'fetchMarkets': true, + 'cancelAllOrders': true, + 'cancelOrder': true, + 'createDepositAddress': true, + 'createOrder': true, + 'fetchAccounts': true, + 'fetchBalance': true, + 'fetchClosedOrders': true, 'fetchCurrencies': true, + 'fetchDepositAddress': true, + 'fetchDeposits': true, + 'fetchFundingFee': true, + 'fetchLedger': true, + 'fetchMarkets': true, + 'fetchMyTrades': true, + 'fetchOHLCV': true, + 'fetchOpenOrders': true, + 'fetchOrder': true, + 'fetchOrderBook': true, + 'fetchStatus': true, 'fetchTicker': true, 'fetchTickers': true, - 'fetchOrderBook': true, - 'fetchOrder': true, - 'fetchClosedOrders': true, - 'fetchOpenOrders': true, - 'fetchDepositAddress': true, - 'createDepositAddress': true, - 'withdraw': true, - 'fetchDeposits': true, - 'fetchWithdrawals': true, - 'fetchBalance': true, + 'fetchTime': true, 'fetchTrades': true, - 'fetchMyTrades': true, - 'createOrder': true, - 'cancelOrder': true, - 'fetchAccounts': true, - 'fetchFundingFee': true, - 'fetchOHLCV': true, - 'fetchLedger': true, + 'fetchWithdrawals': true, + 'withdraw': true, }, 'urls': { 'logo': 'https://user-images.githubusercontent.com/51840849/87295558-132aaf80-c50e-11ea-9801-a2fb0c57c799.jpg', @@ -80389,6 +87169,7 @@ module.exports = class kucoin extends Exchange { 'symbols', 'markets', 'market/allTickers', + 'market/orderbook/level{level}_{limit}', 'market/orderbook/level{level}', 'market/orderbook/level2', 'market/orderbook/level2_20', @@ -80425,6 +87206,7 @@ module.exports = class kucoin extends Exchange { 'withdrawals', 'withdrawals/quotas', 'orders', + 'order/client-order/{clientOid}', 'orders/{orderId}', 'limit/orders', 'fills', @@ -80440,6 +87222,9 @@ module.exports = class kucoin extends Exchange { 'margin/lend/assets', 'margin/market', 'margin/trade/last', + 'stop-order/{orderId}', + 'stop-order', + 'stop-order/queryOrderByClientOid', ], 'post': [ 'accounts', @@ -80450,17 +87235,23 @@ module.exports = class kucoin extends Exchange { 'orders', 'orders/multi', 'margin/borrow', + 'margin/order', 'margin/repay/all', 'margin/repay/single', 'margin/lend', 'margin/toggle-auto-lend', 'bullet-private', + 'stop-order', ], 'delete': [ 'withdrawals/{withdrawalId}', 'orders', + 'orders/client-order/{clientOid}', 'orders/{orderId}', 'margin/lend/{orderId}', + 'stop-order/cancelOrderByClientOid', + 'stop-order/{orderId}', + 'stop-order/cancel', ], }, }, @@ -80551,10 +87342,12 @@ module.exports = class kucoin extends Exchange { 'public': { 'GET': { 'status': 'v1', - 'market/orderbook/level{level}': 'v1', 'market/orderbook/level2': 'v2', + 'market/orderbook/level3': 'v2', 'market/orderbook/level2_20': 'v1', 'market/orderbook/level2_100': 'v1', + 'market/orderbook/level{level}': 'v2', + 'market/orderbook/level{level}_{limit}': 'v1', }, }, 'private': { @@ -80997,7 +87790,10 @@ module.exports = class kucoin extends Exchange { address = address.replace ('bitcoincash:', ''); } const tag = this.safeString (data, 'memo'); - this.checkAddress (address); + if (code !== 'NIM') { + // contains spaces + this.checkAddress (address); + } return { 'info': response, 'currency': code, @@ -81014,13 +87810,12 @@ module.exports = class kucoin extends Exchange { // BCH {"code":"200000","data":{"address":"bitcoincash:qza3m4nj9rx7l9r0cdadfqxts6f92shvhvr5ls4q7z","memo":""}} // BTC {"code":"200000","data":{"address":"36SjucKqQpQSvsak9A7h6qzFjrVXpRNZhE","memo":""}} const data = this.safeValue (response, 'data', {}); - let address = this.safeString (data, 'address'); - // BCH/BSV is returned with a "bitcoincash:" prefix, which we cut off here and only keep the address - if (address !== undefined) { - address = address.replace ('bitcoincash:', ''); - } + const address = this.safeString (data, 'address'); const tag = this.safeString (data, 'memo'); - this.checkAddress (address); + if (code !== 'NIM') { + // contains spaces + this.checkAddress (address); + } return { 'info': response, 'currency': code, @@ -81034,20 +87829,22 @@ module.exports = class kucoin extends Exchange { } async fetchOrderBook (symbol, limit = undefined, params = {}) { - const level = this.safeInteger (params, 'level', 2); - let levelLimit = level.toString (); - if (levelLimit === '2') { - if (limit !== undefined) { - if ((limit !== 20) && (limit !== 100)) { - throw new ExchangeError (this.id + ' fetchOrderBook limit argument must be undefined, 20 or 100'); - } - levelLimit += '_' + limit.toString (); - } - } await this.loadMarkets (); const marketId = this.marketId (symbol); - const request = { 'symbol': marketId, 'level': levelLimit }; - const response = await this.publicGetMarketOrderbookLevelLevel (this.extend (request, params)); + const level = this.safeInteger (params, 'level', 2); + const request = { 'symbol': marketId, 'level': level }; + let method = 'publicGetMarketOrderbookLevelLevel'; + if (level === 2) { + if (limit !== undefined) { + if ((limit === 20) || (limit === 100)) { + request['limit'] = limit; + method = 'publicGetMarketOrderbookLevelLevelLimit'; + } else { + throw new ExchangeError (this.id + ' fetchOrderBook limit argument must be undefined, 20 or 100'); + } + } + } + const response = await this[method] (this.extend (request, params)); // // 'market/orderbook/level2' // 'market/orderbook/level2_20' @@ -81109,7 +87906,29 @@ module.exports = class kucoin extends Exchange { 'clientOid': clientOrderId, 'side': side, 'symbol': marketId, - 'type': type, + 'type': type, // limit or market + // 'remark': '', // optional remark for the order, length cannot exceed 100 utf8 characters + // 'stp': '', // self trade prevention, CN, CO, CB or DC + // To improve the system performance and to accelerate order placing and processing, KuCoin has added a new interface for margin orders + // The current one will no longer accept margin orders by May 1st, 2021 (UTC) + // At the time, KuCoin will notify users via the announcement, please pay attention to it + // 'tradeType': 'TRADE', // TRADE, MARGIN_TRADE // not used with margin orders + // limit orders --------------------------------------------------- + // 'timeInForce': 'GTC', // GTC, GTT, IOC, or FOK (default is GTC), limit orders only + // 'cancelAfter': long, // cancel after n seconds, requires timeInForce to be GTT + // 'postOnly': false, // Post only flag, invalid when timeInForce is IOC or FOK + // 'hidden': false, // Order will not be displayed in the order book + // 'iceberg': false, // Only a portion of the order is displayed in the order book + // 'visibleSize': this.amountToPrecision (symbol, visibleSize), // The maximum visible size of an iceberg order + // market orders -------------------------------------------------- + // 'size': this.amountToPrecision (symbol, amount), // Amount in base currency + // 'funds': this.costToPrecision (symbol, cost), // Amount of quote currency to use + // stop orders ---------------------------------------------------- + // 'stop': 'loss', // loss or entry, the default is loss, requires stopPrice + // 'stopPrice': this.priceToPrecision (symbol, amount), // need to be defined if stop is specified + // margin orders -------------------------------------------------- + // 'marginMode': 'cross', // cross (cross mode) and isolated (isolated mode), set to cross by default, the isolated mode will be released soon, stay tuned + // 'autoBorrow': false, // The system will first borrow you funds at the optimal interest rate and then place an order for you }; if (type !== 'market') { request['price'] = this.priceToPrecision (symbol, price); @@ -81161,9 +87980,32 @@ module.exports = class kucoin extends Exchange { } async cancelOrder (id, symbol = undefined, params = {}) { - const request = { 'orderId': id }; - const response = await this.privateDeleteOrdersOrderId (this.extend (request, params)); - return response; + await this.loadMarkets (); + const request = {}; + const clientOrderId = this.safeString2 (params, 'clientOid', 'clientOrderId'); + let method = 'privateDeleteOrdersOrderId'; + if (clientOrderId !== undefined) { + request['clientOid'] = clientOrderId; + method = 'privateDeleteOrdersClientOrderClientOid'; + } else { + request['orderId'] = id; + } + params = this.omit (params, [ 'clientOid', 'clientOrderId' ]); + return await this[method] (this.extend (request, params)); + } + + async cancelAllOrders (symbol = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'symbol': market['id'], + // 'tradeType': 'TRADE', // default is to cancel the spot trading order + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['symbol'] = market['id']; + } + return await this.privateDeleteOrders (this.extend (request, params)); } async fetchOrdersByStatus (status, symbol = undefined, since = undefined, limit = undefined, params = {}) { @@ -81241,20 +88083,27 @@ module.exports = class kucoin extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { await this.loadMarkets (); - // a special case for undefined ids - // otherwise a wrong endpoint for all orders will be triggered - // https://github.com/ccxt/ccxt/issues/7234 - if (id === undefined) { - throw new InvalidOrder (this.id + ' fetchOrder requires an order id'); + const request = {}; + const clientOrderId = this.safeString2 (params, 'clientOid', 'clientOrderId'); + let method = 'privateGetOrdersOrderId'; + if (clientOrderId !== undefined) { + request['clientOid'] = clientOrderId; + method = 'privateGetOrdersClientOrderClientOid'; + } else { + // a special case for undefined ids + // otherwise a wrong endpoint for all orders will be triggered + // https://github.com/ccxt/ccxt/issues/7234 + if (id === undefined) { + throw new InvalidOrder (this.id + ' fetchOrder() requires an order id'); + } + request['orderId'] = id; } - const request = { - 'orderId': id, - }; + params = this.omit (params, [ 'clientOid', 'clientOrderId' ]); + const response = await this[method] (this.extend (request, params)); let market = undefined; if (symbol !== undefined) { market = this.market (symbol); } - const response = await this.privateGetOrdersOrderId (this.extend (request, params)); const responseData = this.safeValue (response, 'data'); return this.parseOrder (responseData, market); } @@ -81331,12 +88180,14 @@ module.exports = class kucoin extends Exchange { const clientOrderId = this.safeString (order, 'clientOid'); const timeInForce = this.safeString (order, 'timeInForce'); const stopPrice = this.safeFloat (order, 'stopPrice'); + const postOnly = this.safeValue (order, 'postOnly'); return { 'id': orderId, 'clientOrderId': clientOrderId, 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'amount': amount, 'price': price, @@ -81665,6 +88516,7 @@ module.exports = class kucoin extends Exchange { // "status": "SUCCESS", // "createdAt": 1544178843000, // "updatedAt": 1544178891000 + // "remark":"foobar" // } // // fetchWithdrawals @@ -81681,6 +88533,7 @@ module.exports = class kucoin extends Exchange { // "status": "FAILURE", // "createdAt": 1546503758000, // "updatedAt": 1546504603000 + // "remark":"foobar" // } // const currencyId = this.safeString (transaction, 'currency'); @@ -81731,20 +88584,26 @@ module.exports = class kucoin extends Exchange { updated = updated * 1000; } } + const comment = this.safeString (transaction, 'remark'); return { 'id': id, + 'info': transaction, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), 'address': address, + 'addressTo': address, + 'addressFrom': undefined, 'tag': tag, + 'tagTo': tag, + 'tagFrom': undefined, 'currency': code, 'amount': amount, 'txid': txid, 'type': type, 'status': status, + 'comment': comment, 'fee': fee, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), 'updated': updated, - 'info': transaction, }; } @@ -81792,6 +88651,7 @@ module.exports = class kucoin extends Exchange { // "status": "SUCCESS", // "createdAt": 1544178843000, // "updatedAt": 1544178891000 + // "remark":"foobar" // }, // //-------------------------------------------------- // // version 1 (historical) deposit response structure @@ -81921,7 +88781,7 @@ module.exports = class kucoin extends Exchange { async fetchLedger (code = undefined, since = undefined, limit = undefined, params = {}) { if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchLedger requires a code param'); + throw new ArgumentsRequired (this.id + ' fetchLedger() requires a code param'); } await this.loadMarkets (); await this.loadAccounts (); @@ -82064,7 +88924,7 @@ module.exports = class kucoin extends Exchange { // † ↑ // const versions = this.safeValue (this.options, 'versions', {}); - const apiVersions = this.safeValue (versions, api); + const apiVersions = this.safeValue (versions, api, {}); const methodVersions = this.safeValue (apiVersions, method, {}); const defaultVersion = this.safeString (methodVersions, path, this.options['version']); const version = this.safeString (params, 'version', defaultVersion); @@ -82087,10 +88947,17 @@ module.exports = class kucoin extends Exchange { this.checkRequiredCredentials (); const timestamp = this.nonce ().toString (); headers = this.extend ({ + 'KC-API-KEY-VERSION': '2', 'KC-API-KEY': this.apiKey, 'KC-API-TIMESTAMP': timestamp, - 'KC-API-PASSPHRASE': this.password, }, headers); + const apiKeyVersion = this.safeString (headers, 'KC-API-KEY-VERSION'); + if (apiKeyVersion === '2') { + const passphrase = this.hmac (this.encode (this.password), this.encode (this.secret), 'sha256', 'base64'); + headers['KC-API-PASSPHRASE'] = passphrase; + } else { + headers['KC-API-PASSPHRASE'] = this.password; + } const payload = timestamp + method + endpoint + endpart; const signature = this.hmac (this.encode (payload), this.encode (this.secret), 'sha256', 'base64'); headers['KC-API-SIGN'] = signature; @@ -82125,7 +88992,7 @@ module.exports = class kucoin extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],101:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],104:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -82248,7 +89115,7 @@ module.exports = class kuna extends acx { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -82310,7 +89177,7 @@ module.exports = class kuna extends acx { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -82341,7 +89208,7 @@ module.exports = class kuna extends acx { } }; -},{"./acx.js":3,"./base/errors":7}],102:[function(require,module,exports){ +},{"./acx.js":4,"./base/errors":8}],105:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -82671,7 +89538,7 @@ module.exports = class lakebtc extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],103:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],106:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -83208,7 +90075,7 @@ module.exports = class latoken extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -83320,6 +90187,7 @@ module.exports = class latoken extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -83354,7 +90222,7 @@ module.exports = class latoken extends Exchange { async fetchOrdersWithMethod (method, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrdersWithMethod requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrdersWithMethod() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -83470,7 +90338,7 @@ module.exports = class latoken extends Exchange { async cancelAllOrders (symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelAllOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelAllOrders() requires a symbol argument'); } await this.loadMarkets (); const marketId = this.marketId (symbol); @@ -83560,7 +90428,7 @@ module.exports = class latoken extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],104:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],107:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -83921,10 +90789,10 @@ module.exports = class lbank extends Exchange { await this.loadMarkets (); const market = this.market (symbol); if (since === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a `since` argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a `since` argument'); } if (limit === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a `limit` argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a `limit` argument'); } const request = { 'symbol': market['id'], @@ -84049,6 +90917,7 @@ module.exports = class lbank extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -84260,7 +91129,7 @@ module.exports = class lbank extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],105:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],108:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -84449,6 +91318,7 @@ module.exports = class liquid extends Exchange { 'must_be_positive': InvalidOrder, 'less_than_order_size': InvalidOrder, 'price_too_high': InvalidOrder, + 'price_too_small': InvalidOrder, // {"errors":{"order":["price_too_small"]}} }, 'commonCurrencies': { 'WIN': 'WCOIN', @@ -84986,7 +91856,7 @@ module.exports = class liquid extends Exchange { async editOrder (id, symbol, type, side, amount, price = undefined, params = {}) { await this.loadMarkets (); if (price === undefined) { - throw new ArgumentsRequired (this.id + ' editOrder requires the price argument'); + throw new ArgumentsRequired (this.id + ' editOrder() requires the price argument'); } const request = { 'order': { @@ -85127,6 +91997,7 @@ module.exports = class liquid extends Exchange { 'lastTradeTimestamp': lastTradeTimestamp, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'status': status, 'symbol': symbol, 'side': side, @@ -85396,940 +92267,7 @@ module.exports = class liquid extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],106:[function(require,module,exports){ -'use strict'; - -// --------------------------------------------------------------------------- - -const Exchange = require ('./base/Exchange'); -const { ExchangeError, OnMaintenance, BadResponse, ArgumentsRequired, AuthenticationError, NotSupported, InvalidOrder, OrderNotFound, ExchangeNotAvailable, RateLimitExceeded, InsufficientFunds } = require ('./base/errors'); -const { TRUNCATE, DECIMAL_PLACES } = require ('./base/functions/number'); - -// --------------------------------------------------------------------------- - -module.exports = class livecoin extends Exchange { - describe () { - return this.deepExtend (super.describe (), { - 'id': 'livecoin', - 'name': 'LiveCoin', - 'countries': [ 'US', 'UK', 'RU' ], - 'rateLimit': 1000, - 'userAgent': this.userAgents['chrome'], - 'has': { - 'cancelOrder': true, - 'CORS': false, - 'createOrder': true, - 'fetchBalance': true, - 'fetchClosedOrders': true, - 'fetchCurrencies': true, - 'fetchDepositAddress': true, - 'fetchDeposits': true, - 'fetchMarkets': true, - 'fetchMyTrades': true, - 'fetchOpenOrders': true, - 'fetchOrder': true, - 'fetchOrderBook': true, - 'fetchOrders': true, - 'fetchTicker': true, - 'fetchTickers': true, - 'fetchTrades': true, - 'fetchTradingFee': true, - 'fetchTradingFees': true, - 'fetchWithdrawals': true, - 'withdraw': true, - }, - 'urls': { - 'logo': 'https://user-images.githubusercontent.com/1294454/27980768-f22fc424-638a-11e7-89c9-6010a54ff9be.jpg', - 'api': 'https://api.livecoin.net', - 'www': 'https://www.livecoin.net', - 'doc': 'https://www.livecoin.net/api?lang=en', - 'referral': 'https://livecoin.net/?from=Livecoin-CQ1hfx44', - }, - 'api': { - 'public': { - 'get': [ - 'exchange/all/order_book', - 'exchange/last_trades', - 'exchange/maxbid_minask', - 'exchange/order_book', - 'exchange/restrictions', - 'exchange/ticker', // omit params to get all tickers at once - 'info/coinInfo', - ], - }, - 'private': { - 'get': [ - 'exchange/client_orders', - 'exchange/order', - 'exchange/trades', - 'exchange/commission', - 'exchange/commissionCommonInfo', - 'payment/balances', - 'payment/balance', - 'payment/get/address', - 'payment/history/size', - 'payment/history/transactions', - ], - 'post': [ - 'exchange/buylimit', - 'exchange/buymarket', - 'exchange/cancellimit', - 'exchange/selllimit', - 'exchange/sellmarket', - 'payment/out/capitalist', - 'payment/out/card', - 'payment/out/coin', - 'payment/out/okpay', - 'payment/out/payeer', - 'payment/out/perfectmoney', - 'payment/voucher/amount', - 'payment/voucher/make', - 'payment/voucher/redeem', - ], - }, - }, - 'fees': { - 'trading': { - 'tierBased': false, - 'percentage': true, - 'maker': 0.18 / 100, - 'taker': 0.18 / 100, - }, - }, - 'commonCurrencies': { - 'BIT': 'First Bitcoin', - 'BTCH': 'Bithash', - 'CPC': 'Capricoin', - 'CBC': 'CryptoBossCoin', // conflict with CBC (CashBet Coin) - 'CPT': 'Cryptos', // conflict with CPT = Contents Protocol https://github.com/ccxt/ccxt/issues/4920 and https://github.com/ccxt/ccxt/issues/6081 - 'EDR': 'E-Dinar Coin', // conflicts with EDR for Endor Protocol and EDRCoin - 'eETT': 'EETT', - 'FirstBlood': '1ST', - 'FORTYTWO': '42', - 'LEO': 'LeoCoin', - 'MIOTA': 'IOTA', // https://github.com/ccxt/ccxt/issues/7487 - 'ORE': 'Orectic', - 'PLN': 'Plutaneum', // conflict with Polish Zloty - 'RUR': 'RUB', - 'SCT': 'SpaceCoin', - 'TPI': 'ThaneCoin', - 'UNUS': 'LEO', // https://github.com/ccxt/ccxt/issues/7496 - 'WAX': 'WAXP', - 'wETT': 'WETT', - 'XBT': 'Bricktox', - }, - 'exceptions': { - 'exact': { - '1': ExchangeError, - '10': AuthenticationError, - '100': ExchangeError, // invalid parameters - '101': AuthenticationError, - '102': AuthenticationError, - '103': InvalidOrder, // invalid currency - '104': InvalidOrder, // invalid amount - '105': InvalidOrder, // unable to block funds - '11': AuthenticationError, - '12': AuthenticationError, - '2': AuthenticationError, // "User not found" - '20': AuthenticationError, - '30': AuthenticationError, - '31': NotSupported, - '32': ExchangeError, - '429': RateLimitExceeded, - '503': ExchangeNotAvailable, - }, - 'broad': { - 'insufficient funds': InsufficientFunds, // https://github.com/ccxt/ccxt/issues/5749 - 'NOT FOUND': OrderNotFound, - 'Cannot find order': OrderNotFound, - 'Minimal amount is': InvalidOrder, - }, - }, - }); - } - - async fetchMarkets (params = {}) { - const response = await this.publicGetExchangeTicker (params); - const restrictions = await this.publicGetExchangeRestrictions (); - const restrictionsById = this.indexBy (restrictions['restrictions'], 'currencyPair'); - const result = []; - for (let i = 0; i < response.length; i++) { - const market = response[i]; - const id = this.safeString (market, 'symbol'); - const [ baseId, quoteId ] = id.split ('/'); - const base = this.safeCurrencyCode (baseId); - const quote = this.safeCurrencyCode (quoteId); - const symbol = base + '/' + quote; - const coinRestrictions = this.safeValue (restrictionsById, symbol); - const precision = { - 'price': 5, - 'amount': 8, - 'cost': 8, - }; - const limits = { - 'amount': { - 'min': Math.pow (10, -precision['amount']), - 'max': Math.pow (10, precision['amount']), - }, - }; - if (coinRestrictions) { - precision['price'] = this.safeInteger (coinRestrictions, 'priceScale', 5); - limits['amount']['min'] = this.safeFloat (coinRestrictions, 'minLimitQuantity', limits['amount']['min']); - } - limits['price'] = { - 'min': Math.pow (10, -precision['price']), - 'max': Math.pow (10, precision['price']), - }; - result.push ({ - 'id': id, - 'symbol': symbol, - 'base': base, - 'quote': quote, - 'baseId': baseId, - 'quoteId': quoteId, - 'active': true, - 'precision': precision, - 'limits': limits, - 'info': market, - }); - } - return result; - } - - async fetchCurrencies (params = {}) { - const response = await this.publicGetInfoCoinInfo (params); - if (typeof response === 'string') { - if (response.indexOf ('site is under maintenance') >= 0) { - throw new OnMaintenance (this.id + ' fetchCurrencies() failed to fetch the currencies, the exchange is on maintenance'); - } else { - throw new BadResponse (this.id + ' fetchCurrencies() failed to fetch the currencies'); - } - } - const currencies = this.safeValue (response, 'info'); - let result = {}; - for (let i = 0; i < currencies.length; i++) { - const currency = currencies[i]; - const id = this.safeString (currency, 'symbol'); - // todo: will need to rethink the fees - // to add support for multiple withdrawal/deposit methods and - // differentiated fees for each particular method - const code = this.safeCurrencyCode (id); - const precision = 8; // default precision, todo: fix "magic constants" - const walletStatus = this.safeString (currency, 'walletStatus'); - const active = (walletStatus === 'normal'); - const name = this.safeString (currency, 'name'); - const fee = this.safeFloat (currency, 'withdrawFee'); - result[code] = { - 'id': id, - 'code': code, - 'info': currency, - 'name': name, - 'active': active, - 'fee': fee, - 'precision': precision, - 'limits': { - 'amount': { - 'min': this.safeFloat (currency, 'minOrderAmount'), - 'max': Math.pow (10, precision), - }, - 'price': { - 'min': Math.pow (10, -precision), - 'max': Math.pow (10, precision), - }, - 'cost': { - 'min': this.safeFloat (currency, 'minOrderAmount'), - 'max': undefined, - }, - 'withdraw': { - 'min': this.safeFloat (currency, 'minWithdrawAmount'), - 'max': Math.pow (10, precision), - }, - 'deposit': { - 'min': this.safeFloat (currency, 'minDepositAmount'), - 'max': undefined, - }, - }, - }; - } - result = this.appendFiatCurrencies (result); - return result; - } - - appendFiatCurrencies (result) { - const precision = 8; - const defaults = { - 'info': undefined, - 'active': true, - 'fee': undefined, - 'precision': precision, - 'limits': { - 'withdraw': { 'min': undefined, 'max': undefined }, - 'deposit': { 'min': undefined, 'max': undefined }, - 'amount': { 'min': undefined, 'max': undefined }, - 'cost': { 'min': undefined, 'max': undefined }, - 'price': { - 'min': Math.pow (10, -precision), - 'max': Math.pow (10, precision), - }, - }, - 'id': undefined, - 'code': undefined, - 'name': undefined, - }; - const currencies = [ - { 'id': 'USD', 'code': 'USD', 'name': 'US Dollar' }, - { 'id': 'EUR', 'code': 'EUR', 'name': 'Euro' }, - // { 'id': 'RUR', 'code': 'RUB', 'name': 'Russian ruble' }, - ]; - currencies.push ({ - 'id': 'RUR', - 'code': this.safeCurrencyCode ('RUR'), - 'name': 'Russian ruble', - }); - for (let i = 0; i < currencies.length; i++) { - const currency = currencies[i]; - const code = currency['code']; - result[code] = this.extend (defaults, currency); - } - return result; - } - - async fetchBalance (params = {}) { - await this.loadMarkets (); - const response = await this.privateGetPaymentBalances (params); - const result = { 'info': response }; - for (let i = 0; i < response.length; i++) { - const balance = response[i]; - const currencyId = this.safeString (balance, 'currency'); - const code = this.safeCurrencyCode (currencyId); - let account = undefined; - if (code in result) { - account = result[code]; - } else { - account = this.account (); - } - if (balance['type'] === 'total') { - account['total'] = this.safeFloat (balance, 'value'); - } - if (balance['type'] === 'available') { - account['free'] = this.safeFloat (balance, 'value'); - } - if (balance['type'] === 'trade') { - account['used'] = this.safeFloat (balance, 'value'); - } - result[code] = account; - } - return this.parseBalance (result); - } - - async fetchTradingFees (params = {}) { - await this.loadMarkets (); - const response = await this.privateGetExchangeCommissionCommonInfo (params); - const commission = this.safeFloat (response, 'commission'); - return { - 'info': response, - 'maker': commission, - 'taker': commission, - }; - } - - async fetchOrderBook (symbol, limit = undefined, params = {}) { - await this.loadMarkets (); - const request = { - 'currencyPair': this.marketId (symbol), - 'groupByPrice': 'false', - }; - if (limit !== undefined) { - request['depth'] = limit; // 100 - } - const response = await this.publicGetExchangeOrderBook (this.extend (request, params)); - const timestamp = this.safeInteger (response, 'timestamp'); - return this.parseOrderBook (response, timestamp); - } - - parseTicker (ticker, market = undefined) { - const timestamp = this.milliseconds (); - let symbol = undefined; - if (market) { - symbol = market['symbol']; - } - const vwap = this.safeFloat (ticker, 'vwap'); - const baseVolume = this.safeFloat (ticker, 'volume'); - let quoteVolume = undefined; - if (baseVolume !== undefined && vwap !== undefined) { - quoteVolume = baseVolume * vwap; - } - const last = this.safeFloat (ticker, 'last'); - return { - 'symbol': symbol, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'high': this.safeFloat (ticker, 'high'), - 'low': this.safeFloat (ticker, 'low'), - 'bid': this.safeFloat (ticker, 'best_bid'), - 'bidVolume': undefined, - 'ask': this.safeFloat (ticker, 'best_ask'), - 'askVolume': undefined, - 'vwap': this.safeFloat (ticker, 'vwap'), - 'open': undefined, - 'close': last, - 'last': last, - 'previousClose': undefined, - 'change': undefined, - 'percentage': undefined, - 'average': undefined, - 'baseVolume': baseVolume, - 'quoteVolume': quoteVolume, - 'info': ticker, - }; - } - - async fetchTickers (symbols = undefined, params = {}) { - await this.loadMarkets (); - const response = await this.publicGetExchangeTicker (params); - const tickers = this.indexBy (response, 'symbol'); - const ids = Object.keys (tickers); - const result = {}; - for (let i = 0; i < ids.length; i++) { - const id = ids[i]; - const market = this.safeMarket (id); - const symbol = market['symbol']; - const ticker = tickers[id]; - result[symbol] = this.parseTicker (ticker, market); - } - return this.filterByArray (result, 'symbol', symbols); - } - - async fetchTicker (symbol, params = {}) { - await this.loadMarkets (); - const market = this.market (symbol); - const request = { - 'currencyPair': market['id'], - }; - const ticker = await this.publicGetExchangeTicker (this.extend (request, params)); - return this.parseTicker (ticker, market); - } - - parseTrade (trade, market = undefined) { - // - // fetchTrades (public) - // - // { - // "time": 1409935047, - // "id": 99451, - // "price": 350, - // "quantity": 2.85714285, - // "type": "BUY" - // } - // - // fetchMyTrades (private) - // - // { - // "datetime": 1435844369, - // "id": 30651619, - // "type": "sell", - // "symbol": "BTC/EUR", - // "price": 230, - // "quantity": 0.1, - // "commission": 0, - // "clientorderid": 1472837650 - // } - const timestamp = this.safeTimestamp2 (trade, 'time', 'datetime'); - let fee = undefined; - const feeCost = this.safeFloat (trade, 'commission'); - if (feeCost !== undefined) { - const feeCurrency = market ? market['quote'] : undefined; - fee = { - 'cost': feeCost, - 'currency': feeCurrency, - }; - } - const orderId = this.safeString (trade, 'clientorderid'); - const id = this.safeString (trade, 'id'); - const side = this.safeStringLower (trade, 'type'); - const amount = this.safeFloat (trade, 'quantity'); - const price = this.safeFloat (trade, 'price'); - let cost = undefined; - if (amount !== undefined) { - if (price !== undefined) { - cost = amount * price; - } - } - const marketId = this.safeString (trade, 'symbol'); - const symbol = this.safeSymbol (marketId, market, '/'); - return { - 'id': id, - 'info': trade, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'symbol': symbol, - 'order': orderId, - 'type': undefined, - 'side': side, - 'takerOrMaker': undefined, - 'price': price, - 'amount': amount, - 'cost': cost, - 'fee': fee, - }; - } - - async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const request = { - // 'currencyPair': market['id'], - // 'orderDesc': 'true', // or 'false', if true then new orders will be first, otherwise old orders will be first. - // 'offset': 0, // page offset, position of the first item on the page - }; - let market = undefined; - if (symbol !== undefined) { - market = this.market (symbol); - request['currencyPair'] = market['id']; - } - if (limit !== undefined) { - request['limit'] = limit; - } - const response = await this.privateGetExchangeTrades (this.extend (request, params)); - // - // [ - // { - // "datetime": 1435844369, - // "id": 30651619, - // "type": "sell", - // "symbol": "BTC/EUR", - // "price": 230, - // "quantity": 0.1, - // "commission": 0, - // "clientorderid": 1472837650 - // }, - // { - // "datetime": 1435844356, - // "id": 30651618, - // "type": "sell", - // "symbol": "BTC/EUR", - // "price": 230, - // "quantity": 0.2, - // "commission": 0.092, - // "clientorderid": 1472837651 - // } - // ] - // - return this.parseTrades (response, market, since, limit); - } - - async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const market = this.market (symbol); - const request = { - 'currencyPair': market['id'], - }; - const response = await this.publicGetExchangeLastTrades (this.extend (request, params)); - // - // [ - // { - // "time": 1409935047, - // "id": 99451, - // "price": 350, - // "quantity": 2.85714285, - // "type": "BUY" - // }, - // { - // "time": 1409934792, - // "id": 99450, - // "price": 350, - // "quantity": 0.57142857, - // "type": "SELL" - // } - // ] - // - return this.parseTrades (response, market, since, limit); - } - - async fetchOrder (id, symbol = undefined, params = {}) { - await this.loadMarkets (); - const request = { - 'orderId': id, - }; - const response = await this.privateGetExchangeOrder (this.extend (request, params)); - return this.parseOrder (response); - } - - parseOrderStatus (status) { - const statuses = { - 'OPEN': 'open', - 'PARTIALLY_FILLED': 'open', - 'EXECUTED': 'closed', - 'CANCELLED': 'canceled', - 'PARTIALLY_FILLED_AND_CANCELLED': 'canceled', - }; - return this.safeString (statuses, status, status); - } - - parseOrder (order, market = undefined) { - let timestamp = undefined; - if ('lastModificationTime' in order) { - timestamp = this.safeString (order, 'lastModificationTime'); - if (timestamp !== undefined) { - if (timestamp.indexOf ('T') >= 0) { - timestamp = this.parse8601 (timestamp); - } else { - timestamp = this.safeInteger (order, 'lastModificationTime'); - } - } - } - // TODO currently not supported by livecoin - // let trades = this.parseTrades (order['trades'], market, since, limit); - const trades = undefined; - const status = this.parseOrderStatus (this.safeString2 (order, 'status', 'orderStatus')); - const marketId = this.safeString2 (order, 'symbol', 'currencyPair'); - const symbol = this.safeSymbol (marketId, market, '/'); - let type = this.safeStringLower (order, 'type'); - let side = undefined; - if (type !== undefined) { - const orderType = type.split ('_'); - type = orderType[0]; - side = orderType[1]; - } - const price = this.safeFloat (order, 'price'); - // of the next two lines the latter overrides the former, if present in the order structure - let remaining = this.safeFloat (order, 'remainingQuantity'); - remaining = this.safeFloat (order, 'remaining_quantity', remaining); - const amount = this.safeFloat (order, 'quantity', remaining); - let filled = undefined; - if (remaining !== undefined) { - filled = amount - remaining; - } - let cost = undefined; - if (filled !== undefined && price !== undefined) { - cost = filled * price; - } - const feeRate = this.safeFloat (order, 'commission_rate'); - let feeCost = undefined; - if (cost !== undefined && feeRate !== undefined) { - feeCost = cost * feeRate; - } - if ((market === undefined) && (symbol in this.markets)) { - market = this.markets[symbol]; - } - let feeCurrency = undefined; - if (market !== undefined) { - feeCurrency = market['quote']; - } - return { - 'info': order, - 'id': order['id'], - 'clientOrderId': undefined, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'lastTradeTimestamp': undefined, - 'status': status, - 'symbol': symbol, - 'type': type, - 'timeInForce': undefined, - 'side': side, - 'price': price, - 'stopPrice': undefined, - 'amount': amount, - 'cost': cost, - 'filled': filled, - 'remaining': remaining, - 'trades': trades, - 'fee': { - 'cost': feeCost, - 'currency': feeCurrency, - 'rate': feeRate, - }, - 'average': undefined, - }; - } - - async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - let market = undefined; - const request = {}; - if (symbol !== undefined) { - market = this.market (symbol); - request['currencyPair'] = market['id']; - } - if (since !== undefined) { - request['issuedFrom'] = parseInt (since); - } - if (limit !== undefined) { - request['endRow'] = limit - 1; - } - const response = await this.privateGetExchangeClientOrders (this.extend (request, params)); - const result = []; - let rawOrders = []; - if (response['data']) { - rawOrders = response['data']; - } - for (let i = 0; i < rawOrders.length; i++) { - const order = rawOrders[i]; - result.push (this.parseOrder (order, market)); - } - return this.sortBy (result, 'timestamp'); - } - - async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - const request = { - 'openClosed': 'OPEN', - }; - return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); - } - - async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - const request = { - 'openClosed': 'CLOSED', - }; - return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); - } - - async createOrder (symbol, type, side, amount, price = undefined, params = {}) { - await this.loadMarkets (); - const method = 'privatePostExchange' + this.capitalize (side) + type; - const market = this.market (symbol); - const request = { - 'quantity': this.amountToPrecision (symbol, amount), - 'currencyPair': market['id'], - }; - if (type === 'limit') { - request['price'] = this.priceToPrecision (symbol, price); - } - const response = await this[method] (this.extend (request, params)); - const result = { - 'info': response, - 'id': response['orderId'].toString (), - }; - const success = this.safeValue (response, 'success'); - if (success) { - result['status'] = 'open'; - } - return result; - } - - async cancelOrder (id, symbol = undefined, params = {}) { - if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); - } - await this.loadMarkets (); - const market = this.market (symbol); - const request = { - 'orderId': id, - 'currencyPair': market['id'], - }; - const response = await this.privatePostExchangeCancellimit (this.extend (request, params)); - const message = this.safeString (response, 'message', this.json (response)); - if ('success' in response) { - if (!response['success']) { - throw new InvalidOrder (message); - } else if ('cancelled' in response) { - if (response['cancelled']) { - return { - 'status': 'canceled', - 'info': response, - }; - } else { - throw new OrderNotFound (message); - } - } - } - throw new ExchangeError (this.id + ' cancelOrder() failed: ' + this.json (response)); - } - - async withdraw (code, amount, address, tag = undefined, params = {}) { - // Sometimes the response with be { key: null } for all keys. - // An example is if you attempt to withdraw more than is allowed when withdrawal fees are considered. - this.checkAddress (address); - await this.loadMarkets (); - const currency = this.currency (code); - let wallet = address; - if (tag !== undefined) { - wallet += '::' + tag; - } - const request = { - 'amount': this.decimalToPrecision (amount, TRUNCATE, currency['precision'], DECIMAL_PLACES), - 'currency': currency['id'], - 'wallet': wallet, - }; - const response = await this.privatePostPaymentOutCoin (this.extend (request, params)); - const id = this.safeInteger (response, 'id'); - if (id === undefined) { - throw new InsufficientFunds (this.id + ' insufficient funds to cover requested withdrawal amount post fees ' + this.json (response)); - } - return { - 'info': response, - 'id': id, - }; - } - - parseTransaction (transaction, currency = undefined) { - // { - // "id": "c853093d5aa06df1c92d79c2...", (tx on deposits, address on withdrawals) - // "type": "DEPOSIT", - // "date": 1553186482676, - // "amount": 712.61266, - // "fee": 0, - // "fixedCurrency": "XVG", - // "taxCurrency": "XVG", - // "variableAmount": null, - // "variableCurrency": null, - // "external": "Coin", - // "login": "USERNAME", - // "externalKey": "....87diPBy......3hTtuwUT78Yi", (address on deposits, tx on withdrawals) - // "documentId": 1110662453 - // }, - let txid = undefined; - let address = undefined; - const id = this.safeString (transaction, 'documentId'); - const amount = this.safeFloat (transaction, 'amount'); - const timestamp = this.safeInteger (transaction, 'date'); - const type = this.safeStringLower (transaction, 'type'); - const currencyId = this.safeString (transaction, 'fixedCurrency'); - const feeCost = this.safeFloat (transaction, 'fee'); - const code = this.safeCurrencyCode (currencyId, currency); - if (type === 'withdrawal') { - txid = this.safeString (transaction, 'externalKey'); - address = this.safeString (transaction, 'id'); - } else if (type === 'deposit') { - address = this.safeString (transaction, 'externalKey'); - txid = this.safeString (transaction, 'id'); - } - let status = undefined; - if (type === 'deposit') { - status = 'ok'; // Deposits is not registered until they are in account. Withdrawals are left as undefined, not entirely sure about theyre status. - } - return { - 'info': transaction, - 'id': id, - 'currency': code, - 'amount': amount, - 'address': address, - 'tag': undefined, - 'status': status, - 'type': type, - 'updated': undefined, - 'txid': txid, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'fee': { - 'currency': code, - 'cost': feeCost, - }, - }; - } - - async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const endtime = 2505600000; // 29 days - exchange has maximum 30 days. - const now = this.milliseconds (); - const request = { - 'types': 'DEPOSIT', - 'end': now, - 'start': (since !== undefined) ? parseInt (since) : now - endtime, - }; - let currency = undefined; - if (code !== undefined) { - currency = this.currency (code); - } - if (limit !== undefined) { - request['limit'] = limit; // default is 100 - } - const response = await this.privateGetPaymentHistoryTransactions (this.extend (request, params)); - return this.parseTransactions (response, currency, since, limit); - } - - async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const endtime = 2505600000; // 29 days - exchange has maximum 30 days. - const now = this.milliseconds (); - const request = { - 'types': 'WITHDRAWAL', - 'end': now, - 'start': (since !== undefined) ? parseInt (since) : now - endtime, - }; - let currency = undefined; - if (code !== undefined) { - currency = this.currency (code); - } - if (limit !== undefined) { - request['limit'] = limit; // default is 100 - } - if (since !== undefined) { - request['start'] = since; - } - const response = await this.privateGetPaymentHistoryTransactions (this.extend (request, params)); - return this.parseTransactions (response, currency, since, limit); - } - - async fetchDepositAddress (currency, params = {}) { - const request = { - 'currency': currency, - }; - const response = await this.privateGetPaymentGetAddress (this.extend (request, params)); - let address = this.safeString (response, 'wallet'); - let tag = undefined; - if (address.indexOf (':') >= 0) { - const parts = address.split (':'); - address = parts[0]; - tag = parts[2]; - } - this.checkAddress (address); - return { - 'currency': currency, - 'address': address, - 'tag': tag, - 'info': response, - }; - } - - sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { - let url = this.urls['api'] + '/' + path; - const query = this.urlencode (this.keysort (params)); - if (method === 'GET') { - if (Object.keys (params).length) { - url += '?' + query; - } - } - if (api === 'private') { - this.checkRequiredCredentials (); - if (method === 'POST') { - body = query; - } - const signature = this.hmac (this.encode (query), this.encode (this.secret), 'sha256'); - headers = { - 'Api-Key': this.apiKey, - 'Sign': signature.toUpperCase (), - 'Content-Type': 'application/x-www-form-urlencoded', - }; - } - return { 'url': url, 'method': method, 'body': body, 'headers': headers }; - } - - handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { - if (response === undefined) { - return; // fallback to default error handler - } - if (code >= 300) { - const feedback = this.id + ' ' + body; - const errorCode = this.safeString (response, 'errorCode'); - this.throwExactlyMatchedException (this.exceptions['exact'], errorCode, feedback); - throw new ExchangeError (feedback); - } - // returns status code 200 even if success === false - const success = this.safeValue (response, 'success', true); - if (!success) { - const feedback = this.id + ' ' + body; - const message = this.safeString2 (response, 'message', 'exception'); - if (message !== undefined) { - this.throwBroadlyMatchedException (this.exceptions['broad'], message, feedback); - } - throw new ExchangeError (feedback); - } - } -}; - - -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],107:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],109:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -86370,7 +92308,11 @@ module.exports = class luno extends Exchange { 'urls': { 'referral': 'https://www.luno.com/invite/44893A', 'logo': 'https://user-images.githubusercontent.com/1294454/27766607-8c1a69d8-5ede-11e7-930c-540b5eb9be24.jpg', - 'api': 'https://api.luno.com/api', + 'api': { + 'public': 'https://api.luno.com/api', + 'private': 'https://api.luno.com/api', + 'exchange': 'https://api.luno.com/api/exchange', + }, 'www': 'https://www.luno.com', 'doc': [ 'https://www.luno.com/en/api', @@ -86379,6 +92321,11 @@ module.exports = class luno extends Exchange { ], }, 'api': { + 'exchange': { + 'get': [ + 'markets', + ], + }, 'public': { 'get': [ 'orderbook', @@ -86429,16 +92376,42 @@ module.exports = class luno extends Exchange { } async fetchMarkets (params = {}) { - const response = await this.publicGetTickers (params); + const response = await this.exchangeGetMarkets (params); + // + // { + // "markets":[ + // { + // "market_id":"BCHXBT", + // "trading_status":"ACTIVE", + // "base_currency":"BCH", + // "counter_currency":"XBT", + // "min_volume":"0.01", + // "max_volume":"100.00", + // "volume_scale":2, + // "min_price":"0.0001", + // "max_price":"1.00", + // "price_scale":6, + // "fee_scale":8, + // }, + // ] + // } + // const result = []; - for (let i = 0; i < response['tickers'].length; i++) { - const market = response['tickers'][i]; - const id = market['pair']; - const baseId = id.slice (0, 3); - const quoteId = id.slice (3, 6); + const markets = this.safeValue (response, 'markets', []); + for (let i = 0; i < markets.length; i++) { + const market = markets[i]; + const id = this.safeString (market, 'market_id'); + const baseId = this.safeString (market, 'base_currency'); + const quoteId = this.safeString (market, 'counter_currency'); const base = this.safeCurrencyCode (baseId); const quote = this.safeCurrencyCode (quoteId); const symbol = base + '/' + quote; + const status = this.safeString (market, 'trading_status'); + const active = (status === 'ACTIVE'); + const precision = { + 'amount': this.safeInteger (market, 'volume_scale'), + 'price': this.safeInteger (market, 'price_scale'), + }; result.push ({ 'id': id, 'symbol': symbol, @@ -86446,10 +92419,23 @@ module.exports = class luno extends Exchange { 'quote': quote, 'baseId': baseId, 'quoteId': quoteId, + 'active': active, + 'precision': precision, + 'limits': { + 'amount': { + 'min': this.safeFloat (market, 'min_volume'), + 'max': this.safeFloat (market, 'max_volume'), + }, + 'price': { + 'min': this.safeFloat (market, 'min_price'), + 'max': this.safeFloat (market, 'max_price'), + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + }, 'info': market, - 'active': undefined, - 'precision': this.precision, - 'limits': this.limits, }); } return result; @@ -86477,6 +92463,16 @@ module.exports = class luno extends Exchange { async fetchBalance (params = {}) { await this.loadMarkets (); const response = await this.privateGetBalance (params); + // + // { + // 'balance': [ + // {'account_id': '119...1336','asset': 'XBT','balance': '0.00','reserved': '0.00','unconfirmed': '0.00'}, + // {'account_id': '66...289','asset': 'XBT','balance': '0.00','reserved': '0.00','unconfirmed': '0.00'}, + // {'account_id': '718...5300','asset': 'ETH','balance': '0.00','reserved': '0.00','unconfirmed': '0.00'}, + // {'account_id': '818...7072','asset': 'ZAR','balance': '0.001417','reserved': '0.00','unconfirmed': '0.00'}]} + // ] + // } + // const wallets = this.safeValue (response, 'balance', []); const result = { 'info': response }; for (let i = 0; i < wallets.length; i++) { @@ -86486,10 +92482,15 @@ module.exports = class luno extends Exchange { const reserved = this.safeFloat (wallet, 'reserved'); const unconfirmed = this.safeFloat (wallet, 'unconfirmed'); const balance = this.safeFloat (wallet, 'balance'); - const account = this.account (); - account['used'] = this.sum (reserved, unconfirmed); - account['total'] = this.sum (balance, unconfirmed); - result[code] = account; + if (code in result) { + result[code]['used'] = this.sum (result[code]['used'], reserved, unconfirmed); + result[code]['total'] = this.sum (result[code]['total'], balance, unconfirmed); + } else { + const account = this.account (); + account['used'] = this.sum (reserved, unconfirmed); + account['total'] = this.sum (balance, unconfirmed); + result[code] = account; + } } return this.parseBalance (result); } @@ -86577,6 +92578,7 @@ module.exports = class luno extends Exchange { 'symbol': symbol, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -86757,7 +92759,7 @@ module.exports = class luno extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -86794,15 +92796,16 @@ module.exports = class luno extends Exchange { if (type === 'market') { method += 'Marketorder'; request['type'] = side.toUpperCase (); + // todo add createMarketBuyOrderRequires price logic as it is implemented in the other exchanges if (side === 'buy') { - request['counter_volume'] = amount; + request['counter_volume'] = parseFloat (this.amountToPrecision (symbol, amount)); } else { - request['base_volume'] = amount; + request['base_volume'] = parseFloat (this.amountToPrecision (symbol, amount)); } } else { method += 'Postorder'; - request['volume'] = amount; - request['price'] = price; + request['volume'] = parseFloat (this.amountToPrecision (symbol, amount)); + request['price'] = parseFloat (this.priceToPrecision (symbol, price)); request['type'] = (side === 'buy') ? 'BID' : 'ASK'; } const response = await this[method] (this.extend (request, params)); @@ -86961,7 +92964,7 @@ module.exports = class luno extends Exchange { } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { - let url = this.urls['api'] + '/' + this.version + '/' + this.implodeParams (path, params); + let url = this.urls['api'][api] + '/' + this.version + '/' + this.implodeParams (path, params); const query = this.omit (params, this.extractParams (path)); if (Object.keys (query).length) { url += '?' + this.urlencode (query); @@ -86985,7 +92988,7 @@ module.exports = class luno extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],108:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],110:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -87487,6 +93490,7 @@ module.exports = class lykke extends Exchange { 'symbol': symbol, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -87600,7 +93604,7 @@ module.exports = class lykke extends Exchange { } }; -},{"./base/Exchange":5}],109:[function(require,module,exports){ +},{"./base/Exchange":6}],111:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -87624,6 +93628,8 @@ module.exports = class mercado extends Exchange { 'createMarketOrder': true, 'createOrder': true, 'fetchBalance': true, + 'fetchMarkets': true, + 'fetchMyTrades': 'emulated', 'fetchOHLCV': true, 'fetchOpenOrders': true, 'fetchOrder': true, @@ -87663,6 +93669,7 @@ module.exports = class mercado extends Exchange { 'api': { 'public': { 'get': [ + 'coins', '{coin}/orderbook/', // last slash critical '{coin}/ticker/', '{coin}/trades/', @@ -87693,23 +93700,90 @@ module.exports = class mercado extends Exchange { ], }, }, - 'markets': { - 'BTC/BRL': { 'id': 'BRLBTC', 'symbol': 'BTC/BRL', 'base': 'BTC', 'quote': 'BRL', 'precision': { 'amount': 8, 'price': 5 }, 'suffix': 'Bitcoin' }, - 'LTC/BRL': { 'id': 'BRLLTC', 'symbol': 'LTC/BRL', 'base': 'LTC', 'quote': 'BRL', 'precision': { 'amount': 8, 'price': 5 }, 'suffix': 'Litecoin' }, - 'BCH/BRL': { 'id': 'BRLBCH', 'symbol': 'BCH/BRL', 'base': 'BCH', 'quote': 'BRL', 'precision': { 'amount': 8, 'price': 5 }, 'suffix': 'BCash' }, - 'XRP/BRL': { 'id': 'BRLXRP', 'symbol': 'XRP/BRL', 'base': 'XRP', 'quote': 'BRL', 'precision': { 'amount': 8, 'price': 5 }, 'suffix': 'Ripple' }, - 'ETH/BRL': { 'id': 'BRLETH', 'symbol': 'ETH/BRL', 'base': 'ETH', 'quote': 'BRL', 'precision': { 'amount': 8, 'price': 5 }, 'suffix': 'Ethereum' }, - 'USDC/BRL': { 'id': 'BRLUSDC', 'symbol': 'USDC/BRL', 'base': 'USDC', 'quote': 'BRL', 'precision': { 'amount': 8, 'price': 5 }, 'suffix': 'USDC' }, - }, 'fees': { 'trading': { - 'maker': 0.3 / 100, - 'taker': 0.7 / 100, + 'maker': 0.003, + 'taker': 0.007, + }, + }, + 'options': { + 'limits': { + 'BTC': 0.001, + 'BCH': 0.001, + 'ETH': 0.01, + 'LTC': 0.01, + 'XRP': 0.1, }, }, }); } + async fetchMarkets (params = {}) { + const response = await this.publicGetCoins (params); + // + // [ + // "BCH", + // "BTC", + // "ETH", + // "LTC", + // "XRP", + // "MBPRK01", + // "MBPRK02", + // "MBPRK03", + // "MBPRK04", + // "MBCONS01", + // "USDC", + // "WBX", + // "CHZ", + // "MBCONS02", + // "PAXG", + // "MBVASCO01", + // "LINK" + // ] + // + const result = []; + const amountLimits = this.safeValue (this.options, 'limits', {}); + for (let i = 0; i < response.length; i++) { + const coin = response[i]; + const baseId = coin; + const quoteId = 'BRL'; + const base = this.safeCurrencyCode (baseId); + const quote = this.safeCurrencyCode (quoteId); + const symbol = base + '/' + quote; + const id = quote + base; + const precision = { + 'amount': 8, + 'price': 5, + }; + result.push ({ + 'id': id, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'baseId': baseId, + 'quoteId': quoteId, + 'active': undefined, + 'info': coin, + 'precision': precision, + 'limits': { + 'amount': { + 'min': this.safeFloat (amountLimits, baseId), + 'max': undefined, + }, + 'price': { + 'min': 1 / Math.pow (10, precision['price']), + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + }, + }); + } + return result; + } + async fetchOrderBook (symbol, limit = undefined, params = {}) { await this.loadMarkets (); const market = this.market (symbol); @@ -87755,22 +93829,30 @@ module.exports = class mercado extends Exchange { } parseTrade (trade, market = undefined) { - const timestamp = this.safeTimestamp (trade, 'date'); + const timestamp = this.safeTimestamp2 (trade, 'date', 'executed_timestamp'); let symbol = undefined; if (market !== undefined) { symbol = market['symbol']; } - const id = this.safeString (trade, 'tid'); + const id = this.safeString2 (trade, 'tid', 'operation_id'); const type = undefined; const side = this.safeString (trade, 'type'); const price = this.safeFloat (trade, 'price'); - const amount = this.safeFloat (trade, 'amount'); + const amount = this.safeFloat2 (trade, 'amount', 'quantity'); let cost = undefined; if (price !== undefined) { if (amount !== undefined) { cost = price * amount; } } + const feeCost = this.safeFloat (trade, 'fee_rate'); + let fee = undefined; + if (feeCost !== undefined) { + fee = { + 'cost': feeCost, + 'currency': undefined, + }; + } return { 'id': id, 'info': trade, @@ -87784,7 +93866,7 @@ module.exports = class mercado extends Exchange { 'price': price, 'amount': amount, 'cost': cost, - 'fee': undefined, + 'fee': fee, }; } @@ -87952,6 +94034,11 @@ module.exports = class mercado extends Exchange { const remaining = amount - filled; const cost = filled * average; const lastTradeTimestamp = this.safeTimestamp (order, 'updated_timestamp'); + const rawTrades = this.safeValue (order, 'operations', []); + const trades = this.parseTrades (rawTrades, market, undefined, undefined, { + 'side': side, + 'order': id, + }); return { 'info': order, 'id': id, @@ -87962,6 +94049,7 @@ module.exports = class mercado extends Exchange { 'symbol': market['symbol'], 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -87972,7 +94060,7 @@ module.exports = class mercado extends Exchange { 'remaining': remaining, 'status': status, 'fee': fee, - 'trades': undefined, // todo parse trades (operations) + 'trades': trades, }; } @@ -88004,17 +94092,17 @@ module.exports = class mercado extends Exchange { if (code === 'BRL') { const account_ref = ('account_ref' in params); if (!account_ref) { - throw new ArgumentsRequired (this.id + ' requires account_ref parameter to withdraw ' + code); + throw new ArgumentsRequired (this.id + ' withdraw() requires account_ref parameter to withdraw ' + code); } } else if (code !== 'LTC') { const tx_fee = ('tx_fee' in params); if (!tx_fee) { - throw new ArgumentsRequired (this.id + ' requires tx_fee parameter to withdraw ' + code); + throw new ArgumentsRequired (this.id + ' withdraw() requires tx_fee parameter to withdraw ' + code); } if (code === 'XRP') { if (tag === undefined) { if (!('destination_tag' in params)) { - throw new ArgumentsRequired (this.id + ' requires a tag argument or destination_tag parameter to withdraw ' + code); + throw new ArgumentsRequired (this.id + ' withdraw() requires a tag argument or destination_tag parameter to withdraw ' + code); } } else { request['destination_tag'] = tag; @@ -88076,6 +94164,51 @@ module.exports = class mercado extends Exchange { return this.parseOrders (orders, market, since, limit); } + async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + ' fetchOpenOrders () requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'coin_pair': market['id'], + 'status_list': '[2]', // open only + }; + const response = await this.privatePostListOrders (this.extend (request, params)); + const responseData = this.safeValue (response, 'response_data', {}); + const orders = this.safeValue (responseData, 'orders', []); + return this.parseOrders (orders, market, since, limit); + } + + async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + ' fetchMyTrades () requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'coin_pair': market['id'], + 'has_fills': true, + }; + const response = await this.privatePostListOrders (this.extend (request, params)); + const responseData = this.safeValue (response, 'response_data', {}); + const ordersRaw = this.safeValue (responseData, 'orders', []); + const orders = this.parseOrders (ordersRaw, market, since, limit); + const trades = this.ordersToTrades (orders); + return this.filterBySymbolSinceLimit (trades, symbol, since, limit); + } + + ordersToTrades (orders) { + const result = []; + for (let i = 0; i < orders.length; i++) { + const trades = this.safeValue (orders[i], 'trades', []); + for (let y = 0; y < trades.length; y++) { + result.push (trades[y]); + } + } + return result; + } + sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { let url = this.urls['api'][api] + '/'; const query = this.omit (params, this.extractParams (path)); @@ -88111,7 +94244,7 @@ module.exports = class mercado extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],110:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],112:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -88342,7 +94475,2024 @@ module.exports = class mixcoins extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],111:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],113:[function(require,module,exports){ +'use strict'; + +// --------------------------------------------------------------------------- + +const Exchange = require ('./base/Exchange'); +const { ExchangeError, AuthenticationError, InsufficientFunds, BadSymbol, OrderNotFound } = require ('./base/errors'); +const { TICK_SIZE } = require ('./base/functions/number'); + +// --------------------------------------------------------------------------- + +module.exports = class ndax extends Exchange { + describe () { + return this.deepExtend (super.describe (), { + 'id': 'ndax', + 'name': 'NDAX', + 'countries': [ 'US' ], // United States + 'rateLimit': 1000, + 'pro': true, + 'has': { + 'cancelAllOrders': true, + 'cancelOrder': true, + 'createDepositAddress': true, + 'createOrder': true, + 'editOrder': true, + 'fetchAccounts': true, + 'fetchBalance': true, + 'fetchCurrencies': true, + 'fetchDepositAddress': true, + 'fetchDeposits': true, + 'fetchLedger': true, + 'fetchMarkets': true, + 'fetchMyTrades': true, + 'fetchOHLCV': true, + 'fetchOpenOrders': true, + 'fetchOrders': true, + 'fetchOrder': true, + 'fetchOrderBook': true, + 'fetchOrderTrades': true, + 'fetchTicker': true, + 'fetchTrades': true, + }, + 'timeframes': { + '1m': '60', + '5m': '300', + '15m': '900', + '30m': '1800', + '1h': '3600', + '2h': '7200', + '4h': '14400', + '6h': '21600', + '12h': '43200', + '1d': '86400', + '1w': '604800', + '1M': '2419200', + '4M': '9676800', + }, + 'urls': { + 'logo': 'https://user-images.githubusercontent.com/1294454/108623144-67a3ef00-744e-11eb-8140-75c6b851e945.jpg', + 'test': { + 'public': 'https://ndaxmarginstaging.cdnhop.net:8443/AP', + 'private': 'https://ndaxmarginstaging.cdnhop.net:8443/AP', + }, + 'api': { + 'public': 'https://api.ndax.io:8443/AP', + 'private': 'https://api.ndax.io:8443/AP', + }, + 'www': 'https://ndax.io', + 'doc': [ + 'https://apidoc.ndax.io/', + ], + 'fees': 'https://ndax.io/fees', + 'referral': 'https://one.ndax.io/bfQiSL', + }, + 'api': { + 'public': { + 'get': [ + 'Activate2FA', + 'Authenticate2FA', + 'AuthenticateUser', + 'GetL2Snapshot', + 'GetLevel1', + 'GetValidate2FARequiredEndpoints', + 'LogOut', + 'GetTickerHistory', + 'GetProduct', + 'GetProducts', + 'GetInstrument', + 'GetInstruments', + 'Ping', + 'trades', // undocumented + 'GetLastTrades', // undocumented + 'SubscribeLevel1', + 'SubscribeLevel2', + 'SubscribeTicker', + 'SubscribeTrades', + 'SubscribeBlockTrades', + 'UnsubscribeBlockTrades', + 'UnsubscribeLevel1', + 'UnsubscribeLevel2', + 'UnsubscribeTicker', + 'UnsubscribeTrades', + 'Authenticate', // undocumented + ], + }, + 'private': { + 'get': [ + 'GetUserAccountInfos', + 'GetUserAccounts', + 'GetUserAffiliateCount', + 'GetUserAffiliateTag', + 'GetUserConfig', + 'GetAllUnredactedUserConfigsForUser', + 'GetUnredactedUserConfigByKey', + 'GetUserDevices', + 'GetUserReportTickets', + 'GetUserReportWriterResultRecords', + 'GetAccountInfo', + 'GetAccountPositions', + 'GetAllAccountConfigs', + 'GetTreasuryProductsForAccount', + 'GetAccountTrades', + 'GetAccountTransactions', + 'GetOpenTradeReports', + 'GetAllOpenTradeReports', + 'GetTradesHistory', + 'GetOpenOrders', + 'GetOpenQuotes', + 'GetOrderFee', + 'GetOrderHistory', + 'GetOrdersHistory', + 'GetOrderStatus', + 'GetOmsFeeTiers', + 'GetAccountDepositTransactions', + 'GetAccountWithdrawTransactions', + 'GetAllDepositRequestInfoTemplates', + 'GetDepositInfo', + 'GetDepositRequestInfoTemplate', + 'GetDeposits', + 'GetDepositTicket', + 'GetDepositTickets', + 'GetOMSWithdrawFees', + 'GetWithdrawFee', + 'GetWithdraws', + 'GetWithdrawTemplate', + 'GetWithdrawTemplateTypes', + 'GetWithdrawTicket', + 'GetWithdrawTickets', + ], + 'post': [ + 'AddUserAffiliateTag', + 'CancelUserReport', + 'RegisterNewDevice', + 'SubscribeAccountEvents', + 'UpdateUserAffiliateTag', + 'GenerateTradeActivityReport', + 'GenerateTransactionActivityReport', + 'GenerateTreasuryActivityReport', + 'ScheduleTradeActivityReport', + 'ScheduleTransactionActivityReport', + 'ScheduleTreasuryActivityReport', + 'CancelAllOrders', + 'CancelOrder', + 'CancelQuote', + 'CancelReplaceOrder', + 'CreateQuote', + 'ModifyOrder', + 'SendOrder', + 'SubmitBlockTrade', + 'UpdateQuote', + 'CancelWithdraw', + 'CreateDepositTicket', + 'CreateWithdrawTicket', + 'SubmitDepositTicketComment', + 'SubmitWithdrawTicketComment', + 'GetOrderHistoryByOrderId', + ], + }, + }, + 'fees': { + 'trading': { + 'tierBased': false, + 'percentage': true, + 'maker': 0.2 / 100, + 'taker': 0.25 / 100, + }, + }, + 'requiredCredentials': { + 'apiKey': true, + 'secret': true, + 'uid': true, + }, + 'precisionMode': TICK_SIZE, + 'exceptions': { + 'exact': { + 'Not_Enough_Funds': InsufficientFunds, // {"status":"Rejected","errormsg":"Not_Enough_Funds","errorcode":101} + 'Server Error': ExchangeError, // {"result":false,"errormsg":"Server Error","errorcode":102,"detail":null} + 'Resource Not Found': OrderNotFound, // {"result":false,"errormsg":"Resource Not Found","errorcode":104,"detail":null} + }, + 'broad': { + 'Invalid InstrumentId': BadSymbol, // {"result":false,"errormsg":"Invalid InstrumentId: 10000","errorcode":100,"detail":null} + }, + }, + 'options': { + 'omsId': 1, + 'orderTypes': { + 'Market': 1, + 'Limit': 2, + 'StopMarket': 3, + 'StopLimit': 4, + 'TrailingStopMarket': 5, + 'TrailingStopLimit': 6, + 'BlockTrade': 7, + }, + }, + }); + } + + async fetchCurrencies (params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + const request = { + 'omsId': omsId, + }; + const response = await this.publicGetGetProducts (this.extend (request, params)); + // + // [ + // { + // "OMSId":1, + // "ProductId":1, + // "Product":"BTC", + // "ProductFullName":"Bitcoin", + // "ProductType":"CryptoCurrency", + // "DecimalPlaces":8, + // "TickSize":0.0000000100000000000000000000, + // "NoFees":false, + // "IsDisabled":false, + // "MarginEnabled":false + // }, + // ] + // + const result = {}; + for (let i = 0; i < response.length; i++) { + const currency = response[i]; + const id = this.safeString (currency, 'ProductId'); + const name = this.safeString (currency, 'ProductFullName'); + const type = this.safeString (currency, 'ProductType'); + const code = this.safeCurrencyCode (this.safeString (currency, 'Product')); + const precision = this.safeFloat (currency, 'TickSize'); + const isDisabled = this.safeValue (currency, 'IsDisabled'); + const active = !isDisabled; + result[code] = { + 'id': id, + 'name': name, + 'code': code, + 'type': type, + 'precision': precision, + 'info': currency, + 'active': active, + 'fee': undefined, + 'limits': this.limits, + }; + } + return result; + } + + async fetchMarkets (params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + const request = { + 'omsId': omsId, + }; + const response = await this.publicGetGetInstruments (this.extend (request, params)); + // + // [ + // { + // "OMSId":1, + // "InstrumentId":3, + // "Symbol":"LTCBTC", + // "Product1":3, + // "Product1Symbol":"LTC", + // "Product2":1, + // "Product2Symbol":"BTC", + // "InstrumentType":"Standard", + // "VenueInstrumentId":3, + // "VenueId":1, + // "SortIndex":0, + // "SessionStatus":"Running", + // "PreviousSessionStatus":"Stopped", + // "SessionStatusDateTime":"2020-11-25T19:42:15.245Z", + // "SelfTradePrevention":true, + // "QuantityIncrement":0.0000000100000000000000000000, + // "PriceIncrement":0.0000000100000000000000000000, + // "MinimumQuantity":0.0100000000000000000000000000, + // "MinimumPrice":0.0000010000000000000000000000, + // "VenueSymbol":"LTCBTC", + // "IsDisable":false, + // "MasterDataId":0, + // "PriceCollarThreshold":0.0000000000000000000000000000, + // "PriceCollarPercent":0.0000000000000000000000000000, + // "PriceCollarEnabled":false, + // "PriceFloorLimit":0.0000000000000000000000000000, + // "PriceFloorLimitEnabled":false, + // "PriceCeilingLimit":0.0000000000000000000000000000, + // "PriceCeilingLimitEnabled":false, + // "CreateWithMarketRunning":true, + // "AllowOnlyMarketMakerCounterParty":false, + // "PriceCollarIndexDifference":0.0000000000000000000000000000, + // "PriceCollarConvertToOtcEnabled":false, + // "PriceCollarConvertToOtcClientUserId":0, + // "PriceCollarConvertToOtcAccountId":0, + // "PriceCollarConvertToOtcThreshold":0.0000000000000000000000000000, + // "OtcConvertSizeThreshold":0.0000000000000000000000000000, + // "OtcConvertSizeEnabled":false, + // "OtcTradesPublic":true, + // "PriceTier":0 + // }, + // ] + // + const result = []; + for (let i = 0; i < response.length; i++) { + const market = response[i]; + const id = this.safeString (market, 'InstrumentId'); + // const lowercaseId = this.safeStringLower (market, 'symbol'); + const baseId = this.safeString (market, 'Product1'); + const quoteId = this.safeString (market, 'Product2'); + const base = this.safeCurrencyCode (this.safeString (market, 'Product1Symbol')); + const quote = this.safeCurrencyCode (this.safeString (market, 'Product2Symbol')); + const symbol = base + '/' + quote; + const precision = { + 'amount': this.safeFloat (market, 'QuantityIncrement'), + 'price': this.safeFloat (market, 'PriceIncrement'), + }; + const sessionStatus = this.safeString (market, 'SessionStatus'); + const isDisable = this.safeValue (market, 'IsDisable'); + const sessionRunning = (sessionStatus === 'Running'); + const active = (sessionRunning && !isDisable) ? true : false; + result.push ({ + 'id': id, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'baseId': baseId, + 'quoteId': quoteId, + 'info': market, + 'active': active, + 'precision': precision, + 'limits': { + 'amount': { + 'min': this.safeFloat (market, 'MinimumQuantity'), + 'max': undefined, + }, + 'price': { + 'min': this.safeFloat (market, 'MinimumPrice'), + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + }, + }); + } + return result; + } + + parseOrderBook (orderbook, timestamp = undefined, bidsKey = 'bids', asksKey = 'asks', priceKey = 6, amountKey = 8) { + let nonce = undefined; + const result = { + 'bids': [], + 'asks': [], + 'timestamp': undefined, + 'datetime': undefined, + 'nonce': undefined, + }; + for (let i = 0; i < orderbook.length; i++) { + const level = orderbook[i]; + if (timestamp === undefined) { + timestamp = this.safeInteger (level, 2); + } else { + const newTimestamp = this.safeInteger (level, 2); + timestamp = Math.max (timestamp, newTimestamp); + } + if (nonce === undefined) { + nonce = this.safeInteger (level, 0); + } else { + const newNonce = this.safeInteger (level, 0); + nonce = Math.max (nonce, newNonce); + } + const bidask = this.parseBidAsk (level, priceKey, amountKey); + const levelSide = this.safeValue (level, 9); + const side = levelSide ? asksKey : bidsKey; + result[side].push (bidask); + } + result['bids'] = this.sortBy (result['bids'], 0, true); + result['asks'] = this.sortBy (result['asks'], 0); + result['timestamp'] = timestamp; + result['datetime'] = this.iso8601 (timestamp); + result['nonce'] = nonce; + return result; + } + + async fetchOrderBook (symbol, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + const market = this.market (symbol); + limit = (limit === undefined) ? 100 : limit; // default 100 + const request = { + 'omsId': omsId, + 'InstrumentId': market['id'], + 'Depth': limit, // default 100 + }; + const response = await this.publicGetGetL2Snapshot (this.extend (request, params)); + // + // [ + // [ + // 0, // 0 MDUpdateId + // 1, // 1 Number of Unique Accounts + // 123, // 2 ActionDateTime in Posix format X 1000 + // 0, // 3 ActionType 0 (New), 1 (Update), 2(Delete) + // 0.0, // 4 LastTradePrice + // 0, // 5 Number of Orders + // 0.0, // 6 Price + // 0, // 7 ProductPairCode + // 0.0, // 8 Quantity + // 0, // 9 Side + // ], + // [97244115,1,1607456142963,0,19069.32,1,19069.31,8,0.140095,0], + // [97244115,0,1607456142963,0,19069.32,1,19068.64,8,0.0055,0], + // [97244115,0,1607456142963,0,19069.32,1,19068.26,8,0.021291,0], + // [97244115,1,1607456142964,0,19069.32,1,19069.32,8,0.099636,1], + // [97244115,0,1607456142964,0,19069.32,1,19069.98,8,0.1,1], + // [97244115,0,1607456142964,0,19069.32,1,19069.99,8,0.141604,1], + // ] + // + return this.parseOrderBook (response); + } + + parseTicker (ticker, market = undefined) { + // + // fetchTicker + // + // { + // "OMSId":1, + // "InstrumentId":8, + // "BestBid":19069.31, + // "BestOffer":19069.32, + // "LastTradedPx":19069.32, + // "LastTradedQty":0.0001, + // "LastTradeTime":1607040406424, + // "SessionOpen":19069.32, + // "SessionHigh":19069.32, + // "SessionLow":19069.32, + // "SessionClose":19069.32, + // "Volume":0.0001, + // "CurrentDayVolume":0.0001, + // "CurrentDayNotional":1.906932, + // "CurrentDayNumTrades":1, + // "CurrentDayPxChange":0.00, + // "Rolling24HrVolume":0.000000000000000000000000000, + // "Rolling24HrNotional":0.00000000000000000000000, + // "Rolling24NumTrades":0, + // "Rolling24HrPxChange":0, + // "TimeStamp":"1607040406425", + // "BidQty":0, + // "AskQty":0, + // "BidOrderCt":0, + // "AskOrderCt":0, + // "Rolling24HrPxChangePercent":0, + // } + // + const timestamp = this.safeInteger (ticker, 'TimeStamp'); + const marketId = this.safeString (ticker, 'InstrumentId'); + const symbol = this.safeSymbol (marketId, market); + const last = this.safeFloat (ticker, 'LastTradedPx'); + const percentage = this.safeFloat (ticker, 'Rolling24HrPxChangePercent'); + const change = this.safeFloat (ticker, 'Rolling24HrPxChange'); + const open = this.safeFloat (ticker, 'SessionOpen'); + let average = undefined; + if ((last !== undefined) && (change !== undefined)) { + average = this.sum (last, open) / 2; + } + const baseVolume = this.safeFloat (ticker, 'Rolling24HrVolume'); + const quoteVolume = this.safeFloat (ticker, 'Rolling24HrNotional'); + const vwap = this.vwap (baseVolume, quoteVolume); + return { + 'symbol': symbol, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'high': this.safeFloat (ticker, 'SessionHigh'), + 'low': this.safeFloat (ticker, 'SessionLow'), + 'bid': this.safeFloat (ticker, 'BestBid'), + 'bidVolume': undefined, // this.safeFloat (ticker, 'BidQty'), always shows 0 + 'ask': this.safeFloat (ticker, 'BestOffer'), + 'askVolume': undefined, // this.safeFloat (ticker, 'AskQty'), always shows 0 + 'vwap': vwap, + 'open': open, + 'close': last, + 'last': last, + 'previousClose': undefined, + 'change': change, + 'percentage': percentage, + 'average': average, + 'baseVolume': baseVolume, + 'quoteVolume': quoteVolume, + 'info': ticker, + }; + } + + async fetchTicker (symbol, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'omsId': omsId, + 'InstrumentId': market['id'], + }; + const response = await this.publicGetGetLevel1 (this.extend (request, params)); + // + // { + // "OMSId":1, + // "InstrumentId":8, + // "BestBid":19069.31, + // "BestOffer":19069.32, + // "LastTradedPx":19069.32, + // "LastTradedQty":0.0001, + // "LastTradeTime":1607040406424, + // "SessionOpen":19069.32, + // "SessionHigh":19069.32, + // "SessionLow":19069.32, + // "SessionClose":19069.32, + // "Volume":0.0001, + // "CurrentDayVolume":0.0001, + // "CurrentDayNotional":1.906932, + // "CurrentDayNumTrades":1, + // "CurrentDayPxChange":0.00, + // "Rolling24HrVolume":0.000000000000000000000000000, + // "Rolling24HrNotional":0.00000000000000000000000, + // "Rolling24NumTrades":0, + // "Rolling24HrPxChange":0, + // "TimeStamp":"1607040406425", + // "BidQty":0, + // "AskQty":0, + // "BidOrderCt":0, + // "AskOrderCt":0, + // "Rolling24HrPxChangePercent":0, + // } + // + return this.parseTicker (response, market); + } + + parseOHLCV (ohlcv, market = undefined) { + // + // [ + // 1501603632000, // 0 DateTime + // 2700.33, // 1 High + // 2687.01, // 2 Low + // 2687.01, // 3 Open + // 2687.01, // 4 Close + // 24.86100992, // 5 Volume + // 0, // 6 Inside Bid Price + // 2870.95, // 7 Inside Ask Price + // 1 // 8 InstrumentId + // ] + // + return [ + this.safeInteger (ohlcv, 0), + this.safeFloat (ohlcv, 3), + this.safeFloat (ohlcv, 1), + this.safeFloat (ohlcv, 2), + this.safeFloat (ohlcv, 4), + this.safeFloat (ohlcv, 5), + ]; + } + + async fetchOHLCV (symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'omsId': omsId, + 'InstrumentId': market['id'], + 'Interval': this.timeframes[timeframe], + }; + const duration = this.parseTimeframe (timeframe); + const now = this.milliseconds (); + if (since === undefined) { + if (limit !== undefined) { + request['FromDate'] = this.ymd (now - duration * limit * 1000); + request['ToDate'] = this.ymd (now); + } + } else { + request['FromDate'] = this.ymd (since); + if (limit === undefined) { + request['ToDate'] = this.ymd (now); + } else { + request['ToDate'] = this.ymd (this.sum (since, duration * limit * 1000)); + } + } + const response = await this.publicGetGetTickerHistory (this.extend (request, params)); + // + // [ + // [1607299260000,19069.32,19069.32,19069.32,19069.32,0,19069.31,19069.32,8,1607299200000], + // [1607299320000,19069.32,19069.32,19069.32,19069.32,0,19069.31,19069.32,8,1607299260000], + // [1607299380000,19069.32,19069.32,19069.32,19069.32,0,19069.31,19069.32,8,1607299320000], + // ] + // + return this.parseOHLCVs (response, market, timeframe, since, limit); + } + + parseTrade (trade, market = undefined) { + // + // fetchTrades (public) + // + // [ + // 6913253, // 0 TradeId + // 8, // 1 ProductPairCode + // 0.03340802, // 2 Quantity + // 19116.08, // 3 Price + // 2543425077, // 4 Order1 + // 2543425482, // 5 Order2 + // 1606935922416, // 6 Tradetime + // 0, // 7 Direction + // 1, // 8 TakerSide + // 0, // 9 BlockTrade + // 0, // 10 Either Order1ClientId or Order2ClientId + // ] + // + // fetchMyTrades (private) + // + // { + // "OMSId":1, + // "ExecutionId":16916567, + // "TradeId":14476351, + // "OrderId":2543565231, + // "AccountId":449, + // "AccountName":"igor@ccxt.trade", + // "SubAccountId":0, + // "ClientOrderId":0, + // "InstrumentId":8, + // "Side":"Sell", + // "OrderType":"Market", + // "Quantity":0.1230000000000000000000000000, + // "RemainingQuantity":0.0000000000000000000000000000, + // "Price":19069.310000000000000000000000, + // "Value":2345.5251300000000000000000000, + // "CounterParty":"7", + // "OrderTradeRevision":1, + // "Direction":"NoChange", + // "IsBlockTrade":false, + // "Fee":1.1727625650000000000000000000, + // "FeeProductId":8, + // "OrderOriginator":446, + // "UserName":"igor@ccxt.trade", + // "TradeTimeMS":1607565031569, + // "MakerTaker":"Taker", + // "AdapterTradeId":0, + // "InsideBid":19069.310000000000000000000000, + // "InsideBidSize":0.2400950000000000000000000000, + // "InsideAsk":19069.320000000000000000000000, + // "InsideAskSize":0.0997360000000000000000000000, + // "IsQuote":false, + // "CounterPartyClientUserId":1, + // "NotionalProductId":2, + // "NotionalRate":1.0000000000000000000000000000, + // "NotionalValue":2345.5251300000000000000000000, + // "NotionalHoldAmount":0, + // "TradeTime":637431618315686826 + // } + // + // fetchOrderTrades + // + // { + // "Side":"Sell", + // "OrderId":2543565235, + // "Price":18600.000000000000000000000000, + // "Quantity":0.0000000000000000000000000000, + // "DisplayQuantity":0.0000000000000000000000000000, + // "Instrument":8, + // "Account":449, + // "AccountName":"igor@ccxt.trade", + // "OrderType":"Limit", + // "ClientOrderId":0, + // "OrderState":"FullyExecuted", + // "ReceiveTime":1607585844956, + // "ReceiveTimeTicks":637431826449564182, + // "LastUpdatedTime":1607585844959, + // "LastUpdatedTimeTicks":637431826449593893, + // "OrigQuantity":0.1230000000000000000000000000, + // "QuantityExecuted":0.1230000000000000000000000000, + // "GrossValueExecuted":2345.3947500000000000000000000, + // "ExecutableValue":0.0000000000000000000000000000, + // "AvgPrice":19068.250000000000000000000000, + // "CounterPartyId":0, + // "ChangeReason":"Trade", + // "OrigOrderId":2543565235, + // "OrigClOrdId":0, + // "EnteredBy":446, + // "UserName":"igor@ccxt.trade", + // "IsQuote":false, + // "InsideAsk":19069.320000000000000000000000, + // "InsideAskSize":0.0997360000000000000000000000, + // "InsideBid":19068.250000000000000000000000, + // "InsideBidSize":1.3300010000000000000000000000, + // "LastTradePrice":19068.250000000000000000000000, + // "RejectReason":"", + // "IsLockedIn":false, + // "CancelReason":"", + // "OrderFlag":"0", + // "UseMargin":false, + // "StopPrice":0.0000000000000000000000000000, + // "PegPriceType":"Unknown", + // "PegOffset":0.0000000000000000000000000000, + // "PegLimitOffset":0.0000000000000000000000000000, + // "IpAddress":"5.228.233.138", + // "ClientOrderIdUuid":null, + // "OMSId":1 + // } + // + let price = undefined; + let amount = undefined; + let cost = undefined; + let timestamp = undefined; + let id = undefined; + let marketId = undefined; + let side = undefined; + let orderId = undefined; + let takerOrMaker = undefined; + let fee = undefined; + let type = undefined; + if (Array.isArray (trade)) { + price = this.safeFloat (trade, 3); + amount = this.safeFloat (trade, 2); + if ((price !== undefined) && (amount !== undefined)) { + cost = price * amount; + } + timestamp = this.safeInteger (trade, 6); + id = this.safeString (trade, 0); + marketId = this.safeInteger (trade, 1); + const takerSide = this.safeValue (trade, 8); + side = takerSide ? 'sell' : 'buy'; + orderId = this.safeString (trade, 4); + } else { + timestamp = this.safeInteger2 (trade, 'TradeTimeMS', 'ReceiveTime'); + id = this.safeString (trade, 'TradeId'); + orderId = this.safeString2 (trade, 'OrderId', 'OrigOrderId'); + marketId = this.safeString2 (trade, 'InstrumentId', 'Instrument'); + price = this.safeFloat (trade, 'Price'); + amount = this.safeFloat (trade, 'Quantity'); + cost = this.safeFloat2 (trade, 'Value', 'GrossValueExecuted'); + takerOrMaker = this.safeStringLower (trade, 'MakerTaker'); + side = this.safeStringLower (trade, 'Side'); + type = this.safeStringLower (trade, 'OrderType'); + const feeCost = this.safeFloat (trade, 'Fee'); + if (feeCost !== undefined) { + const feeCurrencyId = this.safeString (trade, 'FeeProductId'); + const feeCurrencyCode = this.safeCurrencyCode (feeCurrencyId); + fee = { + 'cost': feeCost, + 'currency': feeCurrencyCode, + }; + } + } + const symbol = this.safeSymbol (marketId, market); + return { + 'info': trade, + 'id': id, + 'symbol': symbol, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'order': orderId, + 'type': type, + 'side': side, + 'takerOrMaker': takerOrMaker, + 'price': price, + 'amount': amount, + 'cost': cost, + 'fee': fee, + }; + } + + async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'omsId': omsId, + 'InstrumentId': market['id'], + }; + if (limit !== undefined) { + request['Count'] = limit; + } + const response = await this.publicGetGetLastTrades (this.extend (request, params)); + // + // [ + // [6913253,8,0.03340802,19116.08,2543425077,2543425482,1606935922416,0,1,0,0], + // [6913254,8,0.01391671,19117.42,2543427510,2543427811,1606935927998,1,1,0,0], + // [6913255,8,0.000006,19107.81,2543430495,2543430793,1606935933881,2,0,0,0], + // ] + // + return this.parseTrades (response, market, since, limit); + } + + async fetchAccounts (params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + this.checkRequiredCredentials (); + const request = { + 'omsId': omsId, + 'UserId': this.uid, + 'UserName': 'igor@ccxt.trade', + }; + const response = await this.privateGetGetUserAccounts (this.extend (request, params)); + // + // [ 449 ] // comma-separated list of account ids + // + const result = []; + for (let i = 0; i < response.length; i++) { + const accountId = this.safeString (response, i); + result.push ({ + 'id': accountId, + 'type': undefined, + 'currency': undefined, + 'info': accountId, + }); + } + return result; + } + + async fetchBalance (params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + const request = { + 'omsId': omsId, + 'AccountId': accountId, + }; + const response = await this.privateGetGetAccountPositions (this.extend (request, params)); + // + // [ + // { + // "OMSId":1, + // "AccountId":449, + // "ProductSymbol":"BTC", + // "ProductId":1, + // "Amount":10.000000000000000000000000000, + // "Hold":0, + // "PendingDeposits":0.0000000000000000000000000000, + // "PendingWithdraws":0.0000000000000000000000000000, + // "TotalDayDeposits":10.000000000000000000000000000, + // "TotalMonthDeposits":10.000000000000000000000000000, + // "TotalYearDeposits":10.000000000000000000000000000, + // "TotalDayDepositNotional":10.000000000000000000000000000, + // "TotalMonthDepositNotional":10.000000000000000000000000000, + // "TotalYearDepositNotional":10.000000000000000000000000000, + // "TotalDayWithdraws":0, + // "TotalMonthWithdraws":0, + // "TotalYearWithdraws":0, + // "TotalDayWithdrawNotional":0, + // "TotalMonthWithdrawNotional":0, + // "TotalYearWithdrawNotional":0, + // "NotionalProductId":8, + // "NotionalProductSymbol":"USDT", + // "NotionalValue":10.000000000000000000000000000, + // "NotionalHoldAmount":0, + // "NotionalRate":1 + // }, + // ] + // + const result = { 'info': response }; + for (let i = 0; i < response.length; i++) { + const balance = response[i]; + const currencyId = this.safeString (balance, 'ProductId'); + const code = this.safeCurrencyCode (currencyId); + const account = this.account (); + account['total'] = this.safeFloat (balance, 'Amount'); + account['used'] = this.safeFloat (balance, 'Hold'); + result[code] = account; + } + return this.parseBalance (result); + } + + parseLedgerEntryType (type) { + const types = { + 'Trade': 'trade', + 'Deposit': 'transaction', + 'Withdraw': 'transaction', + 'Transfer': 'transfer', + 'OrderHold': 'trade', + 'WithdrawHold': 'transaction', + 'DepositHold': 'transaction', + 'MarginHold': 'trade', + 'ManualHold': 'trade', + 'ManualEntry': 'trade', + 'MarginAcquisition': 'trade', + 'MarginRelinquish': 'trade', + 'MarginQuoteHold': 'trade', + }; + return this.safeString (types, type, type); + } + + parseLedgerEntry (item, currency = undefined) { + // + // { + // "TransactionId":2663709493, + // "ReferenceId":68, + // "OMSId":1, + // "AccountId":449, + // "CR":10.000000000000000000000000000, + // "DR":0.0000000000000000000000000000, + // "Counterparty":3, + // "TransactionType":"Other", + // "ReferenceType":"Deposit", + // "ProductId":1, + // "Balance":10.000000000000000000000000000, + // "TimeStamp":1607532331591 + // } + // + const id = this.safeString (item, 'TransactionId'); + const account = this.safeString (item, 'AccountId'); + const referenceId = this.safeString (item, 'ReferenceId'); + const referenceAccount = this.safeString (item, 'Counterparty'); + const type = this.parseLedgerEntryType (this.safeString (item, 'ReferenceType')); + const currencyId = this.safeString (item, 'ProductId'); + const code = this.safeCurrencyCode (currencyId, currency); + const credit = this.safeFloat (item, 'CR'); + const debit = this.safeFloat (item, 'DR'); + let amount = undefined; + let direction = undefined; + if (credit > 0) { + amount = credit; + direction = 'in'; + } else if (debit > 0) { + amount = debit; + direction = 'out'; + } + const timestamp = this.safeInteger (item, 'TimeStamp'); + let before = undefined; + const after = this.safeFloat (item, 'Balance'); + if (direction === 'out') { + before = this.sum (after, amount); + } else if (direction === 'in') { + before = Math.max (0, after - amount); + } + const status = 'ok'; + return { + 'info': item, + 'id': id, + 'direction': direction, + 'account': account, + 'referenceId': referenceId, + 'referenceAccount': referenceAccount, + 'type': type, + 'currency': code, + 'amount': amount, + 'before': before, + 'after': after, + 'status': status, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'fee': undefined, + }; + } + + async fetchLedger (code = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + const request = { + 'omsId': omsId, + 'AccountId': accountId, + }; + if (limit !== undefined) { + request['Depth'] = limit; + } + const response = await this.privateGetGetAccountTransactions (this.extend (request, params)); + // + // [ + // { + // "TransactionId":2663709493, + // "ReferenceId":68, + // "OMSId":1, + // "AccountId":449, + // "CR":10.000000000000000000000000000, + // "DR":0.0000000000000000000000000000, + // "Counterparty":3, + // "TransactionType":"Other", + // "ReferenceType":"Deposit", + // "ProductId":1, + // "Balance":10.000000000000000000000000000, + // "TimeStamp":1607532331591 + // }, + // ] + // + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + } + return this.parseLedger (response, currency, since, limit); + } + + parseOrderStatus (status) { + const statuses = { + 'Accepted': 'open', + 'Rejected': 'rejected', + 'Working': 'open', + 'Canceled': 'canceled', + 'Expired': 'expired', + 'FullyExecuted': 'closed', + }; + return this.safeString (statuses, status, status); + } + + parseOrder (order, market = undefined) { + // + // createOrder + // + // { + // "status":"Accepted", + // "errormsg":"", + // "OrderId": 2543565231 + // } + // + // editOrder + // + // { + // "ReplacementOrderId": 1234, + // "ReplacementClOrdId": 1561, + // "OrigOrderId": 5678, + // "OrigClOrdId": 91011, + // } + // + // fetchOpenOrders, fetchClosedOrders + // + // { + // "Side":"Buy", + // "OrderId":2543565233, + // "Price":19010, + // "Quantity":0.345, + // "DisplayQuantity":0.345, + // "Instrument":8, + // "Account":449, + // "AccountName":"igor@ccxt.trade", + // "OrderType":"Limit", + // "ClientOrderId":0, + // "OrderState":"Working", + // "ReceiveTime":1607579326003, + // "ReceiveTimeTicks":637431761260028981, + // "LastUpdatedTime":1607579326005, + // "LastUpdatedTimeTicks":637431761260054714, + // "OrigQuantity":0.345, + // "QuantityExecuted":0, + // "GrossValueExecuted":0, + // "ExecutableValue":0, + // "AvgPrice":0, + // "CounterPartyId":0, + // "ChangeReason":"NewInputAccepted", + // "OrigOrderId":2543565233, + // "OrigClOrdId":0, + // "EnteredBy":446, + // "UserName":"igor@ccxt.trade", + // "IsQuote":false, + // "InsideAsk":19069.32, + // "InsideAskSize":0.099736, + // "InsideBid":19068.25, + // "InsideBidSize":1.330001, + // "LastTradePrice":19068.25, + // "RejectReason":"", + // "IsLockedIn":false, + // "CancelReason":"", + // "OrderFlag":"AddedToBook", + // "UseMargin":false, + // "StopPrice":0, + // "PegPriceType":"Unknown", + // "PegOffset":0, + // "PegLimitOffset":0, + // "IpAddress":null, + // "ClientOrderIdUuid":null, + // "OMSId":1 + // } + // + const id = this.safeString2 (order, 'ReplacementOrderId', 'OrderId'); + const timestamp = this.safeInteger (order, 'ReceiveTime'); + let lastTradeTimestamp = undefined; + const marketId = this.safeString (order, 'Instrument'); + const symbol = this.safeSymbol (marketId, market); + const side = this.safeStringLower (order, 'Side'); + const type = this.safeStringLower (order, 'OrderType'); + const clientOrderId = this.safeString2 (order, 'ReplacementClOrdId', 'ClientOrderId'); + let price = this.safeFloat (order, 'Price', 0.0); + price = (price > 0.0) ? price : undefined; + const amount = this.safeFloat (order, 'OrigQuantity'); + const filled = this.safeFloat (order, 'QuantityExecuted'); + const cost = this.safeFloat (order, 'GrossValueExecuted'); + let remaining = undefined; + let average = undefined; + if (filled !== undefined) { + if (amount !== undefined) { + remaining = Math.max (0, amount - filled); + } + if (filled > 0) { + lastTradeTimestamp = this.safeInteger (order, 'LastUpdatedTime'); + average = this.safeFloat (order, 'AvgPrice', 0.0); + average = (average > 0) ? average : undefined; + } + } + let stopPrice = this.safeFloat (order, 'StopPrice', 0.0); + stopPrice = (stopPrice > 0.0) ? stopPrice : undefined; + const timeInForce = undefined; + const status = this.parseOrderStatus (this.safeString (order, 'OrderState')); + const fee = undefined; + const trades = undefined; + return { + 'id': id, + 'clientOrderId': clientOrderId, + 'info': order, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'lastTradeTimestamp': lastTradeTimestamp, + 'status': status, + 'symbol': symbol, + 'type': type, + 'timeInForce': timeInForce, + 'postOnly': undefined, + 'side': side, + 'price': price, + 'stopPrice': stopPrice, + 'cost': cost, + 'amount': amount, + 'filled': filled, + 'average': average, + 'remaining': remaining, + 'fee': fee, + 'trades': trades, + }; + } + + async createOrder (symbol, type, side, amount, price = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + const clientOrderId = this.safeInteger2 (params, 'ClientOrderId', 'clientOrderId'); + params = this.omit (params, [ 'accountId', 'AccountId', 'clientOrderId', 'ClientOrderId' ]); + const market = this.market (symbol); + const orderSide = (side === 'buy') ? 0 : 1; + const request = { + 'InstrumentId': parseInt (market['id']), + 'omsId': omsId, + 'AccountId': accountId, + 'TimeInForce': 1, // 0 Unknown, 1 GTC by default, 2 OPG execute as close to opening price as possible, 3 IOC immediate or canceled, 4 FOK fill-or-kill, 5 GTX good 'til executed, 6 GTD good 'til date + // 'ClientOrderId': clientOrderId, // defaults to 0 + // If this order is order A, OrderIdOCO refers to the order ID of an order B (which is not the order being created by this call). + // If order B executes, then order A created by this call is canceled. + // You can also set up order B to watch order A in the same way, but that may require an update to order B to make it watch this one, which could have implications for priority in the order book. + // See CancelReplaceOrder and ModifyOrder. + // 'OrderIdOCO': 0, // The order ID if One Cancels the Other. + // 'UseDisplayQuantity': false, // If you enter a Limit order with a reserve, you must set UseDisplayQuantity to true + 'Side': orderSide, // 0 Buy, 1 Sell, 2 Short, 3 unknown an error condition + 'Quantity': parseFloat (this.amountToPrecision (symbol, amount)), + 'OrderType': this.safeInteger (this.options['orderTypes'], this.capitalize (type)), // 0 Unknown, 1 Market, 2 Limit, 3 StopMarket, 4 StopLimit, 5 TrailingStopMarket, 6 TrailingStopLimit, 7 BlockTrade + // 'PegPriceType': 3, // 1 Last, 2 Bid, 3 Ask, 4 Midpoint + // 'LimitPrice': parseFloat (this.priceToPrecision (symbol, price)), + }; + // If OrderType=1 (Market), Side=0 (Buy), and LimitPrice is supplied, the Market order will execute up to the value specified + if (price !== undefined) { + request['LimitPrice'] = parseFloat (this.priceToPrecision (symbol, price)); + } + if (clientOrderId !== undefined) { + request['ClientOrderId'] = clientOrderId; + } + const response = await this.privatePostSendOrder (this.extend (request, params)); + // + // { + // "status":"Accepted", + // "errormsg":"", + // "OrderId": 2543565231 + // } + // + return this.parseOrder (response, market); + } + + async editOrder (id, symbol, type, side, amount, price = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + const clientOrderId = this.safeInteger2 (params, 'ClientOrderId', 'clientOrderId'); + params = this.omit (params, [ 'accountId', 'AccountId', 'clientOrderId', 'ClientOrderId' ]); + const market = this.market (symbol); + const orderSide = (side === 'buy') ? 0 : 1; + const request = { + 'OrderIdToReplace': parseInt (id), + 'InstrumentId': parseInt (market['id']), + 'omsId': omsId, + 'AccountId': accountId, + 'TimeInForce': 1, // 0 Unknown, 1 GTC by default, 2 OPG execute as close to opening price as possible, 3 IOC immediate or canceled, 4 FOK fill-or-kill, 5 GTX good 'til executed, 6 GTD good 'til date + // 'ClientOrderId': clientOrderId, // defaults to 0 + // If this order is order A, OrderIdOCO refers to the order ID of an order B (which is not the order being created by this call). + // If order B executes, then order A created by this call is canceled. + // You can also set up order B to watch order A in the same way, but that may require an update to order B to make it watch this one, which could have implications for priority in the order book. + // See CancelReplaceOrder and ModifyOrder. + // 'OrderIdOCO': 0, // The order ID if One Cancels the Other. + // 'UseDisplayQuantity': false, // If you enter a Limit order with a reserve, you must set UseDisplayQuantity to true + 'Side': orderSide, // 0 Buy, 1 Sell, 2 Short, 3 unknown an error condition + 'Quantity': parseFloat (this.amountToPrecision (symbol, amount)), + 'OrderType': this.safeInteger (this.options['orderTypes'], this.capitalize (type)), // 0 Unknown, 1 Market, 2 Limit, 3 StopMarket, 4 StopLimit, 5 TrailingStopMarket, 6 TrailingStopLimit, 7 BlockTrade + // 'PegPriceType': 3, // 1 Last, 2 Bid, 3 Ask, 4 Midpoint + // 'LimitPrice': parseFloat (this.priceToPrecision (symbol, price)), + }; + // If OrderType=1 (Market), Side=0 (Buy), and LimitPrice is supplied, the Market order will execute up to the value specified + if (price !== undefined) { + request['LimitPrice'] = parseFloat (this.priceToPrecision (symbol, price)); + } + if (clientOrderId !== undefined) { + request['ClientOrderId'] = clientOrderId; + } + const response = await this.privatePostCancelReplaceOrder (this.extend (request, params)); + // + // { + // "replacementOrderId": 1234, + // "replacementClOrdId": 1561, + // "origOrderId": 5678, + // "origClOrdId": 91011, + // } + // + return this.parseOrder (response, market); + } + + async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + const request = { + 'omsId': omsId, + 'AccountId': accountId, + // 'InstrumentId': market['id'], + // 'TradeId': 123, // If you specify TradeId, GetTradesHistory can return all states for a single trade + // 'OrderId': 456, // If specified, the call returns all trades associated with the order + // 'UserId': integer. The ID of the logged-in user. If not specified, the call returns trades associated with the users belonging to the default account for the logged-in user of this OMS. + // 'StartTimeStamp': long integer. The historical date and time at which to begin the trade report, in POSIX format. If not specified, reverts to the start date of this account on the trading venue. + // 'EndTimeStamp': long integer. Date at which to end the trade report, in POSIX format. + // 'Depth': integer. In this case, the count of trades to return, counting from the StartIndex. If Depth is not specified, returns all trades between BeginTimeStamp and EndTimeStamp, beginning at StartIndex. + // 'StartIndex': 0 // from the most recent trade 0 and moving backwards in time + // 'ExecutionId': 123, // The ID of the individual buy or sell execution. If not specified, returns all. + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['InstrumentId'] = market['id']; + } + if (since !== undefined) { + request['StartTimeStamp'] = since; + } + if (limit !== undefined) { + request['Depth'] = limit; + } + const response = await this.privateGetGetTradesHistory (this.extend (request, params)); + // + // [ + // { + // "OMSId":1, + // "ExecutionId":16916567, + // "TradeId":14476351, + // "OrderId":2543565231, + // "AccountId":449, + // "AccountName":"igor@ccxt.trade", + // "SubAccountId":0, + // "ClientOrderId":0, + // "InstrumentId":8, + // "Side":"Sell", + // "OrderType":"Market", + // "Quantity":0.1230000000000000000000000000, + // "RemainingQuantity":0.0000000000000000000000000000, + // "Price":19069.310000000000000000000000, + // "Value":2345.5251300000000000000000000, + // "CounterParty":"7", + // "OrderTradeRevision":1, + // "Direction":"NoChange", + // "IsBlockTrade":false, + // "Fee":1.1727625650000000000000000000, + // "FeeProductId":8, + // "OrderOriginator":446, + // "UserName":"igor@ccxt.trade", + // "TradeTimeMS":1607565031569, + // "MakerTaker":"Taker", + // "AdapterTradeId":0, + // "InsideBid":19069.310000000000000000000000, + // "InsideBidSize":0.2400950000000000000000000000, + // "InsideAsk":19069.320000000000000000000000, + // "InsideAskSize":0.0997360000000000000000000000, + // "IsQuote":false, + // "CounterPartyClientUserId":1, + // "NotionalProductId":2, + // "NotionalRate":1.0000000000000000000000000000, + // "NotionalValue":2345.5251300000000000000000000, + // "NotionalHoldAmount":0, + // "TradeTime":637431618315686826 + // } + // ] + // + return this.parseTrades (response, market, since, limit); + } + + async cancelAllOrders (symbol = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + const request = { + 'omsId': omsId, + 'AccountId': accountId, + }; + if (symbol !== undefined) { + const market = this.market (symbol); + request['IntrumentId'] = market['id']; + } + const response = await this.privatePostCancelAllOrders (this.extend (request, params)); + // + // { + // "result":true, + // "errormsg":null, + // "errorcode":0, + // "detail":null + // } + // + return response; + } + + async cancelOrder (id, symbol = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + // const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + // const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + // params = this.omit (params, [ 'accountId', 'AccountId' ]); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + } + const request = { + 'omsId': omsId, + // 'AccountId': accountId, + }; + const clientOrderId = this.safeInteger2 (params, 'clientOrderId', 'ClOrderId'); + if (clientOrderId !== undefined) { + request['ClOrderId'] = clientOrderId; + } else { + request['OrderId'] = parseInt (id); + } + params = this.omit (params, [ 'clientOrderId', 'ClOrderId' ]); + const response = await this.privatePostCancelOrder (this.extend (request, params)); + const order = this.parseOrder (response, market); + return this.extend (order, { + 'id': id, + 'clientOrderId': clientOrderId, + }); + } + + async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + } + const request = { + 'omsId': omsId, + 'AccountId': accountId, + }; + const response = await this.privateGetGetOpenOrders (this.extend (request, params)); + // + // [ + // { + // "Side":"Buy", + // "OrderId":2543565233, + // "Price":19010, + // "Quantity":0.345, + // "DisplayQuantity":0.345, + // "Instrument":8, + // "Account":449, + // "AccountName":"igor@ccxt.trade", + // "OrderType":"Limit", + // "ClientOrderId":0, + // "OrderState":"Working", + // "ReceiveTime":1607579326003, + // "ReceiveTimeTicks":637431761260028981, + // "LastUpdatedTime":1607579326005, + // "LastUpdatedTimeTicks":637431761260054714, + // "OrigQuantity":0.345, + // "QuantityExecuted":0, + // "GrossValueExecuted":0, + // "ExecutableValue":0, + // "AvgPrice":0, + // "CounterPartyId":0, + // "ChangeReason":"NewInputAccepted", + // "OrigOrderId":2543565233, + // "OrigClOrdId":0, + // "EnteredBy":446, + // "UserName":"igor@ccxt.trade", + // "IsQuote":false, + // "InsideAsk":19069.32, + // "InsideAskSize":0.099736, + // "InsideBid":19068.25, + // "InsideBidSize":1.330001, + // "LastTradePrice":19068.25, + // "RejectReason":"", + // "IsLockedIn":false, + // "CancelReason":"", + // "OrderFlag":"AddedToBook", + // "UseMargin":false, + // "StopPrice":0, + // "PegPriceType":"Unknown", + // "PegOffset":0, + // "PegLimitOffset":0, + // "IpAddress":null, + // "ClientOrderIdUuid":null, + // "OMSId":1 + // } + // ] + // + return this.parseOrders (response, market, since, limit); + } + + async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + const request = { + 'omsId': omsId, + 'AccountId': accountId, + // 'ClientOrderId': clientOrderId, + // 'OriginalOrderId': id, + // 'OriginalClientOrderId': long integer, + // 'UserId': integer, + // 'InstrumentId': market['id'], + // 'StartTimestamp': since, + // 'EndTimestamp': this.milliseconds (), + // 'Depth': limit, + // 'StartIndex': 0, + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['InstrumentId'] = market['id']; + } + if (since !== undefined) { + request['StartTimeStamp'] = since; + } + if (limit !== undefined) { + request['Depth'] = limit; + } + const response = await this.privateGetGetOrdersHistory (this.extend (request, params)); + // + // [ + // { + // "Side":"Buy", + // "OrderId":2543565233, + // "Price":19010.000000000000000000000000, + // "Quantity":0.0000000000000000000000000000, + // "DisplayQuantity":0.3450000000000000000000000000, + // "Instrument":8, + // "Account":449, + // "AccountName":"igor@ccxt.trade", + // "OrderType":"Limit", + // "ClientOrderId":0, + // "OrderState":"Canceled", + // "ReceiveTime":1607579326003, + // "ReceiveTimeTicks":637431761260028981, + // "LastUpdatedTime":1607580965346, + // "LastUpdatedTimeTicks":637431777653463754, + // "OrigQuantity":0.3450000000000000000000000000, + // "QuantityExecuted":0.0000000000000000000000000000, + // "GrossValueExecuted":0.0000000000000000000000000000, + // "ExecutableValue":0.0000000000000000000000000000, + // "AvgPrice":0.0000000000000000000000000000, + // "CounterPartyId":0, + // "ChangeReason":"UserModified", + // "OrigOrderId":2543565233, + // "OrigClOrdId":0, + // "EnteredBy":446, + // "UserName":"igor@ccxt.trade", + // "IsQuote":false, + // "InsideAsk":19069.320000000000000000000000, + // "InsideAskSize":0.0997360000000000000000000000, + // "InsideBid":19068.250000000000000000000000, + // "InsideBidSize":1.3300010000000000000000000000, + // "LastTradePrice":19068.250000000000000000000000, + // "RejectReason":"", + // "IsLockedIn":false, + // "CancelReason":"UserModified", + // "OrderFlag":"AddedToBook, RemovedFromBook", + // "UseMargin":false, + // "StopPrice":0.0000000000000000000000000000, + // "PegPriceType":"Unknown", + // "PegOffset":0.0000000000000000000000000000, + // "PegLimitOffset":0.0000000000000000000000000000, + // "IpAddress":"5.228.233.138", + // "ClientOrderIdUuid":null, + // "OMSId":1 + // }, + // ] + // + return this.parseOrders (response, market, since, limit); + } + + async fetchOrder (id, symbol = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + } + const request = { + 'omsId': omsId, + 'AccountId': accountId, + 'OrderId': parseInt (id), + }; + const response = await this.privateGetGetOrderStatus (this.extend (request, params)); + // + // { + // "Side":"Sell", + // "OrderId":2543565232, + // "Price":0.0000000000000000000000000000, + // "Quantity":0.0000000000000000000000000000, + // "DisplayQuantity":0.0000000000000000000000000000, + // "Instrument":8, + // "Account":449, + // "AccountName":"igor@ccxt.trade", + // "OrderType":"Market", + // "ClientOrderId":0, + // "OrderState":"FullyExecuted", + // "ReceiveTime":1607569475591, + // "ReceiveTimeTicks":637431662755912377, + // "LastUpdatedTime":1607569475596, + // "LastUpdatedTimeTicks":637431662755960902, + // "OrigQuantity":1.0000000000000000000000000000, + // "QuantityExecuted":1.0000000000000000000000000000, + // "GrossValueExecuted":19068.270478610000000000000000, + // "ExecutableValue":0.0000000000000000000000000000, + // "AvgPrice":19068.270478610000000000000000, + // "CounterPartyId":0, + // "ChangeReason":"Trade", + // "OrigOrderId":2543565232, + // "OrigClOrdId":0, + // "EnteredBy":446, + // "UserName":"igor@ccxt.trade", + // "IsQuote":false, + // "InsideAsk":19069.320000000000000000000000, + // "InsideAskSize":0.0997360000000000000000000000, + // "InsideBid":19069.310000000000000000000000, + // "InsideBidSize":0.2400950000000000000000000000, + // "LastTradePrice":19069.310000000000000000000000, + // "RejectReason":"", + // "IsLockedIn":false, + // "CancelReason":"", + // "OrderFlag":"0", + // "UseMargin":false, + // "StopPrice":0.0000000000000000000000000000, + // "PegPriceType":"Unknown", + // "PegOffset":0.0000000000000000000000000000, + // "PegLimitOffset":0.0000000000000000000000000000, + // "IpAddress":"5.228.233.138", + // "ClientOrderIdUuid":null, + // "OMSId":1 + // } + // + return this.parseOrder (response, market); + } + + async fetchOrderTrades (id, symbol = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + // const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + // const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + // params = this.omit (params, [ 'accountId', 'AccountId' ]); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + } + const request = { + 'OMSId': parseInt (omsId), + // 'AccountId': accountId, + 'OrderId': id, + }; + const response = await this.privatePostGetOrderHistoryByOrderId (this.extend (request, params)); + // + // [ + // { + // "Side":"Sell", + // "OrderId":2543565235, + // "Price":18600.000000000000000000000000, + // "Quantity":0.0000000000000000000000000000, + // "DisplayQuantity":0.0000000000000000000000000000, + // "Instrument":8, + // "Account":449, + // "AccountName":"igor@ccxt.trade", + // "OrderType":"Limit", + // "ClientOrderId":0, + // "OrderState":"FullyExecuted", + // "ReceiveTime":1607585844956, + // "ReceiveTimeTicks":637431826449564182, + // "LastUpdatedTime":1607585844959, + // "LastUpdatedTimeTicks":637431826449593893, + // "OrigQuantity":0.1230000000000000000000000000, + // "QuantityExecuted":0.1230000000000000000000000000, + // "GrossValueExecuted":2345.3947500000000000000000000, + // "ExecutableValue":0.0000000000000000000000000000, + // "AvgPrice":19068.250000000000000000000000, + // "CounterPartyId":0, + // "ChangeReason":"Trade", + // "OrigOrderId":2543565235, + // "OrigClOrdId":0, + // "EnteredBy":446, + // "UserName":"igor@ccxt.trade", + // "IsQuote":false, + // "InsideAsk":19069.320000000000000000000000, + // "InsideAskSize":0.0997360000000000000000000000, + // "InsideBid":19068.250000000000000000000000, + // "InsideBidSize":1.3300010000000000000000000000, + // "LastTradePrice":19068.250000000000000000000000, + // "RejectReason":"", + // "IsLockedIn":false, + // "CancelReason":"", + // "OrderFlag":"0", + // "UseMargin":false, + // "StopPrice":0.0000000000000000000000000000, + // "PegPriceType":"Unknown", + // "PegOffset":0.0000000000000000000000000000, + // "PegLimitOffset":0.0000000000000000000000000000, + // "IpAddress":"5.228.233.138", + // "ClientOrderIdUuid":null, + // "OMSId":1 + // }, + // ] + // + const grouped = this.groupBy (response, 'ChangeReason'); + const trades = this.safeValue (grouped, 'Trade', []); + return this.parseTrades (trades, market, since, limit); + } + + async fetchDepositAddress (code, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + const currency = this.currency (code); + const request = { + 'omsId': omsId, + 'AccountId': accountId, + 'ProductId': currency['id'], + 'GenerateNewKey': false, + }; + const response = await this.privateGetGetDepositInfo (this.extend (request, params)); + // + // { + // "result":true, + // "errormsg":null, + // "statuscode":0, + // "AssetManagerId":1, + // "AccountId":57922, + // "AssetId":16, + // "ProviderId":23, + // "DepositInfo":"[\"0x8A27564b5c30b91C93B1591821642420F323a210\"]" + // } + // + return this.parseDepositAddress (response, currency); + } + + parseDepositAddress (depositAddress, currency = undefined) { + // + // fetchDepositAddress, createDepositAddress + // + // { + // "result":true, + // "errormsg":null, + // "statuscode":0, + // "AssetManagerId":1, + // "AccountId":449, + // "AssetId":1, + // "ProviderId":1, + // "DepositInfo":"[\"r3e95RwVsLH7yCbnMfyh7SA8FdwUJCB4S2?memo=241452010\"]" + // } + // + const depositInfoString = this.safeString (depositAddress, 'DepositInfo'); + const depositInfo = JSON.parse (depositInfoString); + const depositInfoLength = depositInfo.length; + const lastString = this.safeString (depositInfo, depositInfoLength - 1); + const parts = lastString.split ('?memo='); + const address = this.safeString (parts, 0); + const tag = this.safeString (parts, 1); + let code = undefined; + if (currency !== undefined) { + code = currency['code']; + } + this.checkAddress (address); + return { + 'currency': code, + 'address': address, + 'tag': tag, + 'info': depositAddress, + }; + } + + async createDepositAddress (code, params = {}) { + const request = { + 'GenerateNewKey': true, + }; + return await this.fetchDepositAddress (code, this.extend (request, params)); + } + + async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + } + const request = { + 'omsId': omsId, + 'AccountId': accountId, + }; + const response = await this.privateGetGetDeposits (this.extend (request, params)); + // + // [ + // { + // "OMSId":1, + // "DepositId":44, + // "AccountId":449, + // "SubAccountId":0, + // "ProductId":4, + // "Amount":200.00000000000000000000000000, + // "LastUpdateTimeStamp":637431291261187806, + // "ProductType":"CryptoCurrency", + // "TicketStatus":"FullyProcessed", + // "DepositInfo":"{}", + // "DepositCode":"ab0e23d5-a9ce-4d94-865f-9ab464fb1de3", + // "TicketNumber":71, + // "NotionalProductId":13, + // "NotionalValue":200.00000000000000000000000000, + // "FeeAmount":0.0000000000000000000000000000, + // }, + // ] + // + return this.parseTransactions (response, currency, since, limit); + } + + async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + } + const request = { + 'omsId': omsId, + 'AccountId': accountId, + }; + const response = await this.privateGetGetWithdraws (this.extend (request, params)); + // + // [ + // { + // "Amount": 0.0, + // "FeeAmount": 0.0, + // "NotionalValue": 0.0, + // "WithdrawId": 0, + // "AssetManagerId": 0, + // "AccountId": 0, + // "AssetId": 0, + // "TemplateForm": "{\"TemplateType\": \"TetherRPCWithdraw\",\"Comment\": \"TestWithdraw\",\"ExternalAddress\": \"ms6C3pKAAr8gRCcnVebs8VRkVrjcvqNYv3\"}", + // "TemplateFormType": "TetherRPCWithdraw", + // "omsId": 0, + // "TicketStatus": 0, + // "TicketNumber": 0, + // "WithdrawTransactionDetails": "", + // "WithdrawType": "", + // "WithdrawCode": "490b4fa3-53fc-44f4-bd29-7e16be86fba3", + // "AssetType": 0, + // "Reaccepted": true, + // "NotionalProductId": 0 + // }, + // ] + // + return this.parseTransactions (response, currency, since, limit); + } + + parseTransactionStatusByType (status, type = undefined) { + const statusesByType = { + 'deposit': { + 'New': 'pending', // new ticket awaiting operator review + 'AdminProcessing': 'pending', // an admin is looking at the ticket + 'Accepted': 'pending', // an admin accepts the ticket + 'Rejected': 'rejected', // admin rejects the ticket + 'SystemProcessing': 'pending', // automatic processing; an unlikely status for a deposit + 'FullyProcessed': 'ok', // the deposit has concluded + 'Failed': 'failed', // the deposit has failed for some reason + 'Pending': 'pending', // Account Provider has set status to pending + 'Confirmed': 'pending', // Account Provider confirms the deposit + 'AmlProcessing': 'pending', // anti-money-laundering process underway + 'AmlAccepted': 'pending', // anti-money-laundering process successful + 'AmlRejected': 'rejected', // deposit did not stand up to anti-money-laundering process + 'AmlFailed': 'failed', // anti-money-laundering process failed/did not complete + 'LimitsAccepted': 'pending', // deposit meets limits for fiat or crypto asset + 'LimitsRejected': 'rejected', // deposit does not meet limits for fiat or crypto asset + }, + 'withdrawal': { + 'New': 'pending', // awaiting operator review + 'AdminProcessing': 'pending', // An admin is looking at the ticket + 'Accepted': 'pending', // withdrawal will proceed + 'Rejected': 'rejected', // admin or automatic rejection + 'SystemProcessing': 'pending', // automatic processing underway + 'FullyProcessed': 'ok', // the withdrawal has concluded + 'Failed': 'failed', // the withdrawal failed for some reason + 'Pending': 'pending', // the admin has placed the withdrawal in pending status + 'Pending2Fa': 'pending', // user must click 2-factor authentication confirmation link + 'AutoAccepted': 'pending', // withdrawal will be automatically processed + 'Delayed': 'pending', // waiting for funds to be allocated for the withdrawal + 'UserCanceled': 'canceled', // withdraw canceled by user or Superuser + 'AdminCanceled': 'canceled', // withdraw canceled by Superuser + 'AmlProcessing': 'pending', // anti-money-laundering process underway + 'AmlAccepted': 'pending', // anti-money-laundering process complete + 'AmlRejected': 'rejected', // withdrawal did not stand up to anti-money-laundering process + 'AmlFailed': 'failed', // withdrawal did not complete anti-money-laundering process + 'LimitsAccepted': 'pending', // withdrawal meets limits for fiat or crypto asset + 'LimitsRejected': 'rejected', // withdrawal does not meet limits for fiat or crypto asset + 'Submitted': 'pending', // withdrawal sent to Account Provider; awaiting blockchain confirmation + 'Confirmed': 'pending', // Account Provider confirms that withdrawal is on the blockchain + 'ManuallyConfirmed': 'pending', // admin has sent withdrawal via wallet or admin function directly; marks ticket as FullyProcessed; debits account + 'Confirmed2Fa': 'pending', // user has confirmed withdraw via 2-factor authentication. + }, + }; + const statuses = this.safeValue (statusesByType, type, {}); + return this.safeString (statuses, status, status); + } + + parseTransaction (transaction, currency = undefined) { + // + // fetchDeposits + // + // { + // "OMSId":1, + // "DepositId":44, + // "AccountId":449, + // "SubAccountId":0, + // "ProductId":4, + // "Amount":200.00000000000000000000000000, + // "LastUpdateTimeStamp":637431291261187806, + // "ProductType":"CryptoCurrency", + // "TicketStatus":"FullyProcessed", + // "DepositInfo":"{}", + // "DepositCode":"ab0e23d5-a9ce-4d94-865f-9ab464fb1de3", + // "TicketNumber":71, + // "NotionalProductId":13, + // "NotionalValue":200.00000000000000000000000000, + // "FeeAmount":0.0000000000000000000000000000, + // } + // + // fetchWithdrawals + // + // { + // "Amount": 0.0, + // "FeeAmount": 0.0, + // "NotionalValue": 0.0, + // "WithdrawId": 0, + // "AssetManagerId": 0, + // "AccountId": 0, + // "AssetId": 0, + // "TemplateForm": "{\"TemplateType\": \"TetherRPCWithdraw\",\"Comment\": \"TestWithdraw\",\"ExternalAddress\": \"ms6C3pKAAr8gRCcnVebs8VRkVrjcvqNYv3\"}", + // "TemplateFormType": "TetherRPCWithdraw", + // "omsId": 0, + // "TicketStatus": 0, + // "TicketNumber": 0, + // "WithdrawTransactionDetails": "", + // "WithdrawType": "", + // "WithdrawCode": "490b4fa3-53fc-44f4-bd29-7e16be86fba3", + // "AssetType": 0, + // "Reaccepted": true, + // "NotionalProductId": 0 + // } + // + const id = this.safeString (transaction, 'DepositId'); + let txid = undefined; + const currencyId = this.safeString (transaction, 'ProductId'); + const code = this.safeCurrencyCode (currencyId, currency); + let timestamp = undefined; + let type = undefined; + if ('DepositId' in transaction) { + type = 'deposit'; + } else if ('WithdrawId' in transaction) { + type = 'withdrawal'; + } + const templateFormString = this.safeString (transaction, 'TemplateForm'); + let address = undefined; + let updated = this.safeInteger (transaction, 'LastUpdateTimeStamp'); + if (templateFormString !== undefined) { + const templateForm = JSON.parse (templateFormString); + address = this.safeString (templateForm, 'ExternalAddress'); + txid = this.safeString (templateForm, 'TxId'); + timestamp = this.safeInteger (templateForm, 'TimeSubmitted'); + updated = this.safeInteger (templateForm, 'LastUpdated', updated); + } + const addressTo = address; + const status = this.parseTransactionStatusByType (this.safeString (transaction, 'TicketStatus'), type); + const amount = this.safeFloat (transaction, 'Amount'); + const feeCost = this.safeFloat (transaction, 'FeeAmount'); + let fee = undefined; + if (feeCost !== undefined) { + fee = { 'currency': code, 'cost': feeCost }; + } + return { + 'info': transaction, + 'id': id, + 'txid': txid, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'address': address, + 'addressTo': addressTo, + 'addressFrom': undefined, + 'tag': undefined, + 'tagTo': undefined, + 'tagFrom': undefined, + 'type': type, + 'amount': amount, + 'currency': code, + 'status': status, + 'updated': updated, + 'fee': fee, + }; + } + + nonce () { + return this.milliseconds (); + } + + sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { + let url = this.urls['api'][api] + '/' + this.implodeParams (path, params); + const query = this.omit (params, this.extractParams (path)); + if (api === 'public') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } else if (api === 'private') { + this.checkRequiredCredentials (); + const nonce = this.nonce ().toString (); + const auth = nonce + this.uid + this.apiKey; + const signature = this.hmac (this.encode (auth), this.encode (this.secret)); + headers = { + 'Nonce': nonce, + 'APIKey': this.apiKey, + 'Signature': signature, + 'UserId': this.uid, + }; + if (method === 'POST') { + headers['Content-Type'] = 'application/json'; + body = this.json (query); + } else { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } + } + return { 'url': url, 'method': method, 'body': body, 'headers': headers }; + } + + handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { + if (code === 404) { + throw new AuthenticationError (this.id + ' ' + body); + } + if (response === undefined) { + return; + } + // + // {"status":"Rejected","errormsg":"Not_Enough_Funds","errorcode":101} + // {"result":false,"errormsg":"Server Error","errorcode":102,"detail":null} + // + const message = this.safeString (response, 'errormsg'); + if ((message !== undefined) && (message !== '')) { + const feedback = this.id + ' ' + body; + this.throwExactlyMatchedException (this.exceptions['exact'], message, feedback); + this.throwBroadlyMatchedException (this.exceptions['broad'], body, feedback); + throw new ExchangeError (feedback); + } + } +}; + +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],114:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -89216,6 +97366,7 @@ module.exports = class novadax extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -89532,7 +97683,7 @@ module.exports = class novadax extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],112:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],115:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -90047,7 +98198,7 @@ module.exports = class oceanex extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a `symbol` argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a `symbol` argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -90108,6 +98259,7 @@ module.exports = class oceanex extends Exchange { 'symbol': symbol, 'type': this.safeValue (order, 'ord_type'), 'timeInForce': undefined, + 'postOnly': undefined, 'side': this.safeValue (order, 'side'), 'price': this.safeFloat (order, 'price'), 'stopPrice': undefined, @@ -90217,7 +98369,7 @@ module.exports = class oceanex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],113:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],116:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -90254,13 +98406,13 @@ module.exports = class okcoin extends okex { } }; -},{"./okex.js":114}],114:[function(require,module,exports){ +},{"./okex.js":117}],117:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { ExchangeError, ExchangeNotAvailable, OnMaintenance, ArgumentsRequired, BadRequest, AccountSuspended, InvalidAddress, PermissionDenied, DDoSProtection, InsufficientFunds, InvalidNonce, CancelPending, InvalidOrder, OrderNotFound, AuthenticationError, RequestTimeout, NotSupported, BadSymbol } = require ('./base/errors'); +const { ExchangeError, ExchangeNotAvailable, OnMaintenance, ArgumentsRequired, BadRequest, AccountSuspended, InvalidAddress, PermissionDenied, DDoSProtection, InsufficientFunds, InvalidNonce, CancelPending, InvalidOrder, OrderNotFound, AuthenticationError, RequestTimeout, NotSupported, BadSymbol, RateLimitExceeded } = require ('./base/errors'); const { TICK_SIZE, TRUNCATE } = require ('./base/functions/number'); // --------------------------------------------------------------------------- @@ -90365,6 +98517,7 @@ module.exports = class okex extends Exchange { 'accounts/{currency}', 'accounts/{currency}/ledger', 'orders', + 'amend_order/{instrument_id}', 'orders_pending', 'orders/{order_id}', 'orders/{client_oid}', @@ -90455,6 +98608,7 @@ module.exports = class okex extends Exchange { 'post': [ 'accounts/{underlying}/leverage', 'order', + 'amend_order/{instrument_id}', 'orders', 'cancel_order/{instrument_id}/{order_id}', 'cancel_order/{instrument_id}/{client_oid}', @@ -90501,12 +98655,17 @@ module.exports = class okex extends Exchange { 'post': [ 'accounts/{instrument_id}/leverage', 'order', + 'amend_order/{instrument_id}', 'orders', 'cancel_order/{instrument_id}/{order_id}', 'cancel_order/{instrument_id}/{client_oid}', 'cancel_batch_orders/{instrument_id}', 'order_algo', 'cancel_algos', + 'close_position', + 'cancel_all', + 'order_algo', + 'cancel_algos', ], }, 'option': { @@ -90783,7 +98942,7 @@ module.exports = class okex extends Exchange { '34021': InvalidAddress, // { "code": 34021, "message": "Not verified address" } '34022': ExchangeError, // { "code": 34022, "message": "Withdrawals are not available for sub accounts" } '34023': PermissionDenied, // { "code": 34023, "message": "Please enable futures trading before transferring your funds" } - '34026': ExchangeError, // transfer too frequently(transfer too frequently) + '34026': RateLimitExceeded, // transfer too frequently(transfer too frequently) '34036': ExchangeError, // Parameter is incorrect, please refer to API documentation '34037': ExchangeError, // Get the sub-account balance interface, account type is not supported '34038': ExchangeError, // Since your C2C transaction is unusual, you are restricted from fund transfer. Please contact our customer support to cancel the restriction @@ -90812,7 +98971,7 @@ module.exports = class okex extends Exchange { '35031': InvalidOrder, // { "code": 35031, "message": "Cancel order size too large" } '35032': ExchangeError, // { "code": 35032, "message": "Invalid user status" } '35037': ExchangeError, // No last traded price in cache - '35039': ExchangeError, // { "code": 35039, "message": "Open order quantity exceeds limit" } + '35039': InsufficientFunds, // { "code": 35039, "message": "Open order quantity exceeds limit" } '35040': InvalidOrder, // {"error_message":"Invalid order type","result":"true","error_code":"35040","order_id":"-1"} '35044': ExchangeError, // { "code": 35044, "message": "Invalid order status" } '35046': InsufficientFunds, // { "code": 35046, "message": "Negative account balance" } @@ -90865,6 +99024,7 @@ module.exports = class okex extends Exchange { '35097': ExchangeError, // Order status and order ID cannot exist at the same time '35098': ExchangeError, // An order status or order ID must exist '35099': ExchangeError, // Algo order ID error + '35102': RateLimitExceeded, // {"error_message":"The operation that close all at market price is too frequent","result":"true","error_code":"35102","order_id":"-1"} // option '36001': BadRequest, // Invalid underlying index. '36002': BadRequest, // Instrument does not exist. @@ -90934,6 +99094,7 @@ module.exports = class okex extends Exchange { 'HOT': 'Hydro Protocol', 'HSR': 'HC', 'MAG': 'Maggie', + 'SBTC': 'Super Bitcoin', 'YOYO': 'YOYOW', 'WIN': 'WinToken', // https://github.com/ccxt/ccxt/issues/5701 }, @@ -91233,7 +99394,7 @@ module.exports = class okex extends Exchange { const currency = response[i]; const id = this.safeString (currency, 'currency'); const code = this.safeCurrencyCode (id); - const precision = 8; // default precision, todo: fix "magic constants" + const precision = 0.00000001; // default precision, todo: fix "magic constants" const name = this.safeString (currency, 'name'); const canDeposit = this.safeInteger (currency, 'can_deposit'); const canWithdraw = this.safeInteger (currency, 'can_withdraw'); @@ -91969,7 +100130,7 @@ module.exports = class okex extends Exchange { const defaultType = this.safeString2 (this.options, 'fetchBalance', 'defaultType'); const type = this.safeString (params, 'type', defaultType); if (type === undefined) { - throw new ArgumentsRequired (this.id + " fetchBalance requires a type parameter (one of 'account', 'spot', 'margin', 'futures', 'swap')"); + throw new ArgumentsRequired (this.id + " fetchBalance() requires a type parameter (one of 'account', 'spot', 'margin', 'futures', 'swap')"); } await this.loadMarkets (); const suffix = (type === 'account') ? 'Wallet' : 'Accounts'; @@ -92215,7 +100376,7 @@ module.exports = class okex extends Exchange { type = this.safeString (params, 'type', defaultType); } if (type === undefined) { - throw new ArgumentsRequired (this.id + " cancelOrder requires a type parameter (one of 'spot', 'margin', 'futures', 'swap')."); + throw new ArgumentsRequired (this.id + " cancelOrder() requires a type parameter (one of 'spot', 'margin', 'futures', 'swap')."); } let method = type + 'PostCancelOrder'; const request = { @@ -92422,6 +100583,7 @@ module.exports = class okex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -92438,14 +100600,14 @@ module.exports = class okex extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); const defaultType = this.safeString2 (this.options, 'fetchOrder', 'defaultType', market['type']); const type = this.safeString (params, 'type', defaultType); if (type === undefined) { - throw new ArgumentsRequired (this.id + " fetchOrder requires a type parameter (one of 'spot', 'margin', 'futures', 'swap')."); + throw new ArgumentsRequired (this.id + " fetchOrder() requires a type parameter (one of 'spot', 'margin', 'futures', 'swap')."); } const instrumentId = (market['futures'] || market['swap']) ? 'InstrumentId' : ''; let method = type + 'GetOrders' + instrumentId; @@ -92513,7 +100675,7 @@ module.exports = class okex extends Exchange { async fetchOrdersByState (state, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrdersByState requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrdersByState() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -92525,7 +100687,7 @@ module.exports = class okex extends Exchange { type = this.safeString (params, 'type', defaultType); } if (type === undefined) { - throw new ArgumentsRequired (this.id + " fetchOrder requires a type parameter (one of 'spot', 'margin', 'futures', 'swap')."); + throw new ArgumentsRequired (this.id + " fetchOrdersByState() requires a type parameter (one of 'spot', 'margin', 'futures', 'swap')."); } const request = { 'instrument_id': market['id'], @@ -92855,6 +101017,7 @@ module.exports = class okex extends Exchange { // "currency": "XMR", // "from": "", // "to": "48PjH3ksv1fiXniKvKvyH5UtFs5WhfS2Vf7U3TwzdRJtCc7HJWvCQe56dRahyhQyTAViXZ8Nzk4gQg6o4BJBMUoxNy8y8g7", + // "tag": "1234567", // "deposit_id": 11571659, <-- we can use this // "timestamp": "2019-10-01T14:54:19.000Z", // "status": "2" @@ -92866,6 +101029,7 @@ module.exports = class okex extends Exchange { const withdrawalId = this.safeString (transaction, 'withdrawal_id'); const addressFrom = this.safeString (transaction, 'from'); const addressTo = this.safeString (transaction, 'to'); + const tagTo = this.safeString (transaction, 'tag'); if (withdrawalId !== undefined) { type = 'withdrawal'; id = withdrawalId; @@ -92906,8 +101070,8 @@ module.exports = class okex extends Exchange { 'addressTo': addressTo, 'address': address, 'tagFrom': undefined, - 'tagTo': undefined, - 'tag': undefined, + 'tagTo': tagTo, + 'tag': tagTo, 'status': status, 'type': type, 'updated': undefined, @@ -93080,7 +101244,7 @@ module.exports = class okex extends Exchange { // this aspect renders the 'fills' endpoint unusable for fetchOrderTrades // until either OKEX fixes the API or we workaround this on our side somehow if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -93469,16 +101633,28 @@ module.exports = class okex extends Exchange { request['limit'] = limit; } let currency = undefined; - if ((type === 'spot') || (type === 'futures')) { + if (type === 'spot') { if (code === undefined) { - throw new ArgumentsRequired (this.id + " fetchLedger requires a currency code argument for '" + type + "' markets"); + throw new ArgumentsRequired (this.id + " fetchLedger() requires a currency code argument for '" + type + "' markets"); } argument = 'Currency'; currency = this.currency (code); request['currency'] = currency['id']; + } else if (type === 'futures') { + if (code === undefined) { + throw new ArgumentsRequired (this.id + " fetchLedger() requires an underlying symbol for '" + type + "' markets"); + } + argument = 'Underlying'; + const market = this.market (code); // we intentionally put a market inside here for the margin and swap ledgers + const marketInfo = this.safeValue (market, 'info', {}); + const settlementCurrencyId = this.safeString (marketInfo, 'settlement_currency'); + const settlementCurrencyСode = this.safeCurrencyCode (settlementCurrencyId); + currency = this.currency (settlementCurrencyСode); + const underlyingId = this.safeString (marketInfo, 'underlying'); + request['underlying'] = underlyingId; } else if ((type === 'margin') || (type === 'swap')) { if (code === undefined) { - throw new ArgumentsRequired (this.id + " fetchLedger requires a code argument (a market symbol) for '" + type + "' markets"); + throw new ArgumentsRequired (this.id + " fetchLedger() requires a code argument (a market symbol) for '" + type + "' markets"); } argument = 'InstrumentId'; const market = this.market (code); // we intentionally put a market inside here for the margin and swap ledgers @@ -93872,7 +102048,7 @@ module.exports = class okex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],115:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],118:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -94137,7 +102313,7 @@ module.exports = class paymium extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],116:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],119:[function(require,module,exports){ 'use strict'; // ---------------------------------------------------------------------------- @@ -94242,6 +102418,7 @@ module.exports = class phemex extends Exchange { 'exchange/spot/order/trades', // ?symbol=&start=&end=&limit=&offset= // swap 'accounts/accountPositions', // ?currency= + 'accounts/positions', // ?currency= 'orders/activeList', // ?symbol= 'exchange/order/list', // ?symbol=&start=&end=&offset=&limit=&ordStatus=&withCount= 'exchange/order', // ?symbol=&orderID= @@ -94868,7 +103045,7 @@ module.exports = class phemex extends Exchange { parseBidAsk (bidask, priceKey = 0, amountKey = 1, market = undefined) { if (market === undefined) { - throw new ArgumentsRequired (this.id + ' parseBidAsk requires a market argument'); + throw new ArgumentsRequired (this.id + ' parseBidAsk() requires a market argument'); } let amount = this.safeFloat (bidask, amountKey); if (market['spot']) { @@ -94961,6 +103138,9 @@ module.exports = class phemex extends Exchange { } fromEn (en, scale, precision, precisionMode = undefined) { + if (en === undefined) { + return en; + } precisionMode = (precisionMode === undefined) ? this.precisionMode : precisionMode; return parseFloat (this.decimalToPrecision (en * Math.pow (10, -scale), ROUND, precision, precisionMode)); } @@ -95004,13 +103184,19 @@ module.exports = class phemex extends Exchange { // 48759063370, // quote volume // ] // + let baseVolume = undefined; + if ((market !== undefined) && market['spot']) { + baseVolume = this.fromEv (this.safeFloat (ohlcv, 7), market); + } else { + baseVolume = this.safeInteger (ohlcv, 7); + } return [ this.safeTimestamp (ohlcv, 0), this.fromEp (this.safeFloat (ohlcv, 3), market), this.fromEp (this.safeFloat (ohlcv, 4), market), this.fromEp (this.safeFloat (ohlcv, 5), market), this.fromEp (this.safeFloat (ohlcv, 6), market), - this.fromEv (this.safeFloat (ohlcv, 7), market), + baseVolume, ]; } @@ -95037,7 +103223,7 @@ module.exports = class phemex extends Exchange { request['from'] = now - duration * this.sum (limit, 1); request['to'] = now; } else { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a since argument, or a limit argument, or both'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a since argument, or a limit argument, or both'); } await this.loadMarkets (); const market = this.market (symbol); @@ -95542,7 +103728,7 @@ module.exports = class phemex extends Exchange { } else { const currency = this.safeString (params, 'currency'); if (currency === undefined) { - throw new ArgumentsRequired (this.id + ' fetchBalance requires a code parameter or a currency parameter for ' + type + ' type'); + throw new ArgumentsRequired (this.id + ' fetchBalance() requires a code parameter or a currency parameter for ' + type + ' type'); } } method = 'privateGetAccountsAccountPositions'; @@ -95777,8 +103963,9 @@ module.exports = class phemex extends Exchange { filled = Math.min (0, amount - remaining); } } - const timeInForce = this.parseTimeInForce (this.safeStirng (order, 'timeInForce')); + const timeInForce = this.parseTimeInForce (this.safeString (order, 'timeInForce')); const stopPrice = this.fromEp (this.safeFloat (order, 'stopPxEp', market)); + const postOnly = (timeInForce === 'PO'); return { 'info': order, 'id': id, @@ -95789,6 +103976,7 @@ module.exports = class phemex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -95861,6 +104049,7 @@ module.exports = class phemex extends Exchange { } const timeInForce = this.parseTimeInForce (this.safeString (order, 'timeInForce')); const stopPrice = this.safeFloat (order, 'stopPx'); + const postOnly = (timeInForce === 'PO'); return { 'info': order, 'id': id, @@ -95871,6 +104060,7 @@ module.exports = class phemex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -95926,8 +104116,10 @@ module.exports = class phemex extends Exchange { }; if (market['spot']) { let qtyType = this.safeValue (params, 'qtyType', 'ByBase'); - if (price !== undefined) { - qtyType = 'ByQuote'; + if ((type === 'Market') || (type === 'Stop') || (type === 'MarketIfTouched')) { + if (price !== undefined) { + qtyType = 'ByQuote'; + } } request['qtyType'] = qtyType; if (qtyType === 'ByQuote') { @@ -95937,7 +104129,7 @@ module.exports = class phemex extends Exchange { if (price !== undefined) { cost = amount * price; } else if (cost === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder ' + qtyType + ' requires a price argument or a cost parameter'); + throw new ArgumentsRequired (this.id + ' createOrder() ' + qtyType + ' requires a price argument or a cost parameter'); } } cost = (cost === undefined) ? amount : cost; @@ -96040,7 +104232,7 @@ module.exports = class phemex extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -96080,7 +104272,7 @@ module.exports = class phemex extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -96114,7 +104306,7 @@ module.exports = class phemex extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -96136,7 +104328,7 @@ module.exports = class phemex extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -96160,7 +104352,7 @@ module.exports = class phemex extends Exchange { async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchClosedOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchClosedOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -96222,7 +104414,7 @@ module.exports = class phemex extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchClosedOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchClosedOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -96457,7 +104649,7 @@ module.exports = class phemex extends Exchange { const currencyId = this.safeString (transaction, 'currency'); currency = this.safeCurrency (currencyId, currency); const code = currency['code']; - const timestamp = this.safeInteger (transaction, 'createdAt'); + const timestamp = this.safeInteger2 (transaction, 'createdAt', 'submitedAt'); let type = this.safeStringLower (transaction, 'type'); const feeCost = this.fromEn (this.safeFloat (transaction, 'feeEv'), currency['valueScale'], currency['precision']); let fee = undefined; @@ -96644,7 +104836,7 @@ module.exports = class phemex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],117:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],120:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -96851,7 +105043,6 @@ module.exports = class poloniex extends Exchange { 'Error pulling ': ExchangeError, // {"error":"Error pulling order book"} }, }, - 'orders': {}, // orders cache / emulation }); } @@ -97570,6 +105761,7 @@ module.exports = class poloniex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -98131,7 +106323,7 @@ module.exports = class poloniex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],118:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],121:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -98255,6 +106447,7 @@ module.exports = class probit extends Exchange { 'RATE_LIMIT_EXCEEDED': RateLimitExceeded, // You are sending requests too frequently. Please try it later. 'MARKET_UNAVAILABLE': ExchangeNotAvailable, // Market is closed today 'INVALID_MARKET': BadSymbol, // Requested market is not exist + 'MARKET_CLOSED': BadSymbol, // {"errorCode":"MARKET_CLOSED"} 'INVALID_CURRENCY': BadRequest, // Requested currency is not exist on ProBit system 'TOO_MANY_OPEN_ORDERS': DDoSProtection, // Too many open orders 'DUPLICATE_ADDRESS': InvalidAddress, // Address already exists in withdrawal address list @@ -98276,6 +106469,7 @@ module.exports = class probit extends Exchange { 'BTCBEAR': 'BEAR', 'BTCBULL': 'BULL', 'CBC': 'CryptoBharatCoin', + 'HBC': 'Hybrid Bank Cash', 'UNI': 'UNICORN Token', }, }); @@ -98433,7 +106627,18 @@ module.exports = class probit extends Exchange { const withdrawalSuspended = this.safeValue (platform, 'withdrawal_suspended'); const active = !(depositSuspended && withdrawalSuspended); const withdrawalFees = this.safeValue (platform, 'withdrawal_fee', {}); - const withdrawalFeesByPriority = this.sortBy (withdrawalFees, 'priority'); + const fees = []; + // sometimes the withdrawal fee is an empty object + // [ { 'amount': '0.015', 'priority': 1, 'currency_id': 'ETH' }, {} ] + for (let j = 0; j < withdrawalFees.length; j++) { + const withdrawalFee = withdrawalFees[j]; + const amount = this.safeFloat (withdrawalFee, 'amount'); + const priority = this.safeInteger (withdrawalFee, 'priority'); + if ((amount !== undefined) && (priority !== undefined)) { + fees.push (withdrawalFee); + } + } + const withdrawalFeesByPriority = this.sortBy (fees, 'priority'); const withdrawalFee = this.safeValue (withdrawalFeesByPriority, 0, {}); const fee = this.safeFloat (withdrawalFee, 'amount'); result[code] = { @@ -98863,7 +107068,7 @@ module.exports = class probit extends Exchange { let endTime = now; if (since === undefined) { if (limit === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires either a since argument or a limit argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires either a since argument or a limit argument'); } else { startTime = now - limit * duration * 1000; } @@ -98963,7 +107168,7 @@ module.exports = class probit extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -99156,7 +107361,7 @@ module.exports = class probit extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -99404,7 +107609,7 @@ module.exports = class probit extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],119:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],122:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -100322,6 +108527,7 @@ module.exports = class qtrade extends Exchange { 'symbol': symbol, 'type': orderType, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -100946,7 +109152,7 @@ module.exports = class qtrade extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],120:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],123:[function(require,module,exports){ 'use strict'; const Exchange = require ('./base/Exchange'); @@ -101380,7 +109586,7 @@ module.exports = class rightbtc extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -101490,6 +109696,7 @@ module.exports = class rightbtc extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -101506,7 +109713,7 @@ module.exports = class rightbtc extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -101544,7 +109751,7 @@ module.exports = class rightbtc extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -101581,7 +109788,7 @@ module.exports = class rightbtc extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { let ids = this.safeString (params, 'ids'); if ((symbol === undefined) || (ids === undefined)) { - throw new ArgumentsRequired (this.id + " fetchOrders requires a 'symbol' argument and an extra 'ids' parameter. The 'ids' should be an array or a string of one or more order ids separated with slashes."); // eslint-disable-line quotes + throw new ArgumentsRequired (this.id + " fetchOrders() requires a 'symbol' argument and an extra 'ids' parameter. The 'ids' should be an array or a string of one or more order ids separated with slashes."); // eslint-disable-line quotes } if (Array.isArray (ids)) { ids = ids.join ('/'); @@ -101620,7 +109827,7 @@ module.exports = class rightbtc extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -101705,7 +109912,7 @@ module.exports = class rightbtc extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],121:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],124:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -102538,6 +110745,7 @@ module.exports = class ripio extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -102652,7 +110860,7 @@ module.exports = class ripio extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],122:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],125:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -102919,6 +111127,7 @@ module.exports = class southxchange extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -103351,7 +111560,7 @@ module.exports = class southxchange extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],123:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],126:[function(require,module,exports){ (function (module, exports) { 'use strict'; @@ -106879,7 +115088,7 @@ module.exports = class southxchange extends Exchange { }; })(typeof module === 'undefined' || module, this); -},{"buffer":185}],124:[function(require,module,exports){ +},{"buffer":188}],127:[function(require,module,exports){ ;(function (root, factory) { if (typeof exports === "object") { // CommonJS @@ -112868,7 +121077,7 @@ module.exports = class southxchange extends Exchange { return CryptoJS; })); -},{}],125:[function(require,module,exports){ +},{}],128:[function(require,module,exports){ 'use strict'; var elliptic = exports; @@ -112892,7 +121101,7 @@ elliptic.curves = require('./elliptic/curves'); elliptic.ec = require('./elliptic/ec'); elliptic.eddsa = require('./elliptic/eddsa'); -},{"./elliptic/curve":128,"./elliptic/curves":131,"./elliptic/ec":132,"./elliptic/eddsa":135,"./elliptic/utils":139}],126:[function(require,module,exports){ +},{"./elliptic/curve":131,"./elliptic/curves":134,"./elliptic/ec":135,"./elliptic/eddsa":138,"./elliptic/utils":142}],129:[function(require,module,exports){ 'use strict'; var BN = require('../../../../BN/bn'); @@ -113269,7 +121478,7 @@ BasePoint.prototype.dblp = function dblp(k) { return r; }; -},{"../../../../BN/bn":123,"../../elliptic":125}],127:[function(require,module,exports){ +},{"../../../../BN/bn":126,"../../elliptic":128}],130:[function(require,module,exports){ 'use strict'; var curve = require('../curve'); @@ -113704,7 +121913,7 @@ Point.prototype.eqXToP = function eqXToP(x) { Point.prototype.toP = Point.prototype.normalize; Point.prototype.mixedAdd = Point.prototype.add; -},{"../../../../BN/bn":123,"../../elliptic":125,"../curve":128}],128:[function(require,module,exports){ +},{"../../../../BN/bn":126,"../../elliptic":128,"../curve":131}],131:[function(require,module,exports){ 'use strict'; var curve = exports; @@ -113714,7 +121923,7 @@ curve.short = require('./short'); curve.mont = require('./mont'); curve.edwards = require('./edwards'); -},{"./base":126,"./edwards":127,"./mont":129,"./short":130}],129:[function(require,module,exports){ +},{"./base":129,"./edwards":130,"./mont":132,"./short":133}],132:[function(require,module,exports){ 'use strict'; var curve = require('../curve'); @@ -113896,7 +122105,7 @@ Point.prototype.getX = function getX() { return this.x.fromRed(); }; -},{"../../../../BN/bn":123,"../../elliptic":125,"../curve":128}],130:[function(require,module,exports){ +},{"../../../../BN/bn":126,"../../elliptic":128,"../curve":131}],133:[function(require,module,exports){ 'use strict'; var curve = require('../curve'); @@ -114836,7 +123045,7 @@ JPoint.prototype.isInfinity = function isInfinity() { return this.z.cmpn(0) === 0; }; -},{"../../../../BN/bn":123,"../../elliptic":125,"../curve":128}],131:[function(require,module,exports){ +},{"../../../../BN/bn":126,"../../elliptic":128,"../curve":131}],134:[function(require,module,exports){ 'use strict'; var curves = exports; @@ -115042,7 +123251,7 @@ defineCurve('secp256k1', { ] }); -},{"../elliptic":125,"./precomputed/secp256k1":138}],132:[function(require,module,exports){ +},{"../elliptic":128,"./precomputed/secp256k1":141}],135:[function(require,module,exports){ 'use strict'; var BN = require('../../../../BN/bn'); @@ -115284,7 +123493,7 @@ EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) { throw new Error('Unable to find valid recovery factor'); }; -},{"../../../../BN/bn":123,"../../elliptic":125,"../../hmac-drbg/hmac-drbg":140,"./key":133,"./signature":134}],133:[function(require,module,exports){ +},{"../../../../BN/bn":126,"../../elliptic":128,"../../hmac-drbg/hmac-drbg":143,"./key":136,"./signature":137}],136:[function(require,module,exports){ 'use strict'; var BN = require('../../../../BN/bn'); @@ -115405,7 +123614,7 @@ KeyPair.prototype.inspect = function inspect() { ' pub: ' + (this.pub && this.pub.inspect()) + ' >'; }; -},{"../../../../BN/bn":123,"../../elliptic":125}],134:[function(require,module,exports){ +},{"../../../../BN/bn":126,"../../elliptic":128}],137:[function(require,module,exports){ 'use strict'; var BN = require('../../../../BN/bn'); @@ -115431,7 +123640,7 @@ function Signature(options, enc) { } module.exports = Signature; -},{"../../../../BN/bn":123,"../../elliptic":125}],135:[function(require,module,exports){ +},{"../../../../BN/bn":126,"../../elliptic":128}],138:[function(require,module,exports){ 'use strict'; var curves = require('../curves'); @@ -115578,7 +123787,7 @@ EDDSA.prototype.isPoint = function isPoint(val) { return val instanceof this.pointClass; }; -},{"../../../../../base/functions/encode":10,"../../../../BN/bn.js":123,"../../../../crypto-js/crypto-js":124,"../curves":131,"../utils":139,"./key":136,"./signature":137}],136:[function(require,module,exports){ +},{"../../../../../base/functions/encode":11,"../../../../BN/bn.js":126,"../../../../crypto-js/crypto-js":127,"../curves":134,"../utils":142,"./key":139,"./signature":140}],139:[function(require,module,exports){ 'use strict'; var utils = require('../utils'); @@ -115680,7 +123889,7 @@ KeyPair.prototype.getPublic = function getPublic(enc) { module.exports = KeyPair; -},{"../utils":139}],137:[function(require,module,exports){ +},{"../utils":142}],140:[function(require,module,exports){ 'use strict'; var BN = require('../../../../BN/bn'); @@ -115747,7 +123956,7 @@ Signature.prototype.toHex = function toHex() { module.exports = Signature; -},{"../../../../BN/bn":123,"../utils":139}],138:[function(require,module,exports){ +},{"../../../../BN/bn":126,"../utils":142}],141:[function(require,module,exports){ module.exports = { doubles: { step: 4, @@ -116529,7 +124738,7 @@ module.exports = { } }; -},{}],139:[function(require,module,exports){ +},{}],142:[function(require,module,exports){ 'use strict'; var utils = exports; @@ -116745,7 +124954,7 @@ utils.encode = function encode(arr, enc) { return arr; }; -},{"../../../BN/bn":123}],140:[function(require,module,exports){ +},{"../../../BN/bn":126}],143:[function(require,module,exports){ 'use strict'; var CryptoJS = require('../../../crypto-js/crypto-js'); @@ -116861,7 +125070,7 @@ HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) { return utils.wordArrayToBuffer(res); }; -},{"../../../../base/functions/encode":10,"../../../crypto-js/crypto-js":124,"../elliptic/utils":139}],141:[function(require,module,exports){ +},{"../../../../base/functions/encode":11,"../../../crypto-js/crypto-js":127,"../elliptic/utils":142}],144:[function(require,module,exports){ 'use strict'; var fetch = require('../node-fetch/index'); @@ -116902,7 +125111,7 @@ module.exports = function (context) { }; }; -},{"../node-fetch/index":142}],142:[function(require,module,exports){ +},{"../node-fetch/index":145}],145:[function(require,module,exports){ (function (global,Buffer){ 'use strict'; @@ -118470,7 +126679,7 @@ exports.Response = Response; exports.FetchError = FetchError; }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer) -},{"buffer":185,"http":227,"https":190,"stream":226,"url":233,"zlib":184}],143:[function(require,module,exports){ +},{"buffer":188,"http":230,"https":193,"stream":229,"url":236,"zlib":187}],146:[function(require,module,exports){ (function (Buffer){ /*! * RSA library for Node.js @@ -118697,7 +126906,7 @@ module.exports = (function () { })(); }).call(this,require("buffer").Buffer) -},{"./formats/formats.js":150,"./libs/rsa.js":154,"./schemes/schemes.js":156,"./utils":157,"buffer":185}],144:[function(require,module,exports){ +},{"./formats/formats.js":153,"./libs/rsa.js":157,"./schemes/schemes.js":159,"./utils":160,"buffer":188}],147:[function(require,module,exports){ // Copyright 2011 Mark Cavage All rights reserved. @@ -118712,7 +126921,7 @@ module.exports = { }; -},{}],145:[function(require,module,exports){ +},{}],148:[function(require,module,exports){ // Copyright 2011 Mark Cavage All rights reserved. var errors = require('./errors'); @@ -118735,7 +126944,7 @@ for (var e in errors) { module.exports[e] = errors[e]; } -},{"./errors":144,"./reader":146,"./types":147}],146:[function(require,module,exports){ +},{"./errors":147,"./reader":149,"./types":150}],149:[function(require,module,exports){ (function (Buffer){ // Copyright 2011 Mark Cavage All rights reserved. @@ -119001,7 +127210,7 @@ Reader.prototype._readTag = function (tag) { module.exports = Reader; }).call(this,require("buffer").Buffer) -},{"./errors":144,"./types":147,"assert":180,"buffer":185}],147:[function(require,module,exports){ +},{"./errors":147,"./types":150,"assert":183,"buffer":188}],150:[function(require,module,exports){ // Copyright 2011 Mark Cavage All rights reserved. @@ -119039,7 +127248,7 @@ module.exports = { Context: 128 }; -},{}],148:[function(require,module,exports){ +},{}],151:[function(require,module,exports){ // Copyright 2011 Mark Cavage All rights reserved. // If you have no idea what ASN.1 or BER is, see this: @@ -119058,7 +127267,7 @@ module.exports = { BerReader: Ber.Reader, }; -},{"./ber/index":145}],149:[function(require,module,exports){ +},{"./ber/index":148}],152:[function(require,module,exports){ var _ = require('../utils')._; var utils = require('../utils'); @@ -119131,7 +127340,7 @@ module.exports = { } }; -},{"../utils":157}],150:[function(require,module,exports){ +},{"../utils":160}],153:[function(require,module,exports){ var _ = require('../utils')._; module.exports = { @@ -119164,7 +127373,7 @@ module.exports = { }, }; -},{"../utils":157,"./components":149,"./pkcs1":151,"./pkcs8":152}],151:[function(require,module,exports){ +},{"../utils":160,"./components":152,"./pkcs1":154,"./pkcs8":155}],154:[function(require,module,exports){ (function (Buffer){ var ber = require('../asn1/index').Ber; var _ = require('../utils')._; @@ -119316,7 +127525,7 @@ module.exports = { }; }).call(this,require("buffer").Buffer) -},{"../asn1/index":148,"../utils":157,"buffer":185}],152:[function(require,module,exports){ +},{"../asn1/index":151,"../utils":160,"buffer":188}],155:[function(require,module,exports){ (function (Buffer){ var ber = require('../asn1/index').Ber; var _ = require('../utils')._; @@ -119507,7 +127716,7 @@ module.exports = { }; }).call(this,require("buffer").Buffer) -},{"../asn1/index":148,"../utils":157,"buffer":185}],153:[function(require,module,exports){ +},{"../asn1/index":151,"../utils":160,"buffer":188}],156:[function(require,module,exports){ (function (Buffer){ /* * Basic JavaScript BN library - subset useful for RSA encryption. @@ -120763,7 +128972,7 @@ BigInteger.prototype.square = bnSquare; module.exports = BigInteger; }).call(this,require("buffer").Buffer) -},{"../utils":157,"buffer":185}],154:[function(require,module,exports){ +},{"../utils":160,"buffer":188}],157:[function(require,module,exports){ /* * RSA Encryption / Decryption with PKCS1 v2 Padding. * @@ -120912,7 +129121,7 @@ module.exports.Key = (function () { })(); -},{"../schemes/schemes.js":156,"../utils":157,"../utils.js":157,"./jsbn.js":153}],155:[function(require,module,exports){ +},{"../schemes/schemes.js":159,"../utils":160,"../utils.js":160,"./jsbn.js":156}],158:[function(require,module,exports){ (function (Buffer){ /** * PKCS1 padding and signature scheme @@ -121092,7 +129301,7 @@ function wordArrayToBuffer(wordArray) { } }).call(this,require("buffer").Buffer) -},{"../../crypto-js/crypto-js":124,"../libs/jsbn":153,"buffer":185,"constants":187}],156:[function(require,module,exports){ +},{"../../crypto-js/crypto-js":127,"../libs/jsbn":156,"buffer":188,"constants":190}],159:[function(require,module,exports){ module.exports = { pkcs1: require('./pkcs1'), @@ -121115,7 +129324,7 @@ module.exports = { } }; -},{"./pkcs1":155}],157:[function(require,module,exports){ +},{"./pkcs1":158}],160:[function(require,module,exports){ /* * Utils functions * @@ -121215,7 +129424,7 @@ module.exports.trimSurroundingText = function (data, opening, closing) { return data.substring(trimStartIndex, trimEndIndex); } -},{}],158:[function(require,module,exports){ +},{}],161:[function(require,module,exports){ 'use strict'; var replace = String.prototype.replace; @@ -121235,7 +129444,7 @@ module.exports = { RFC3986: 'RFC3986' }; -},{}],159:[function(require,module,exports){ +},{}],162:[function(require,module,exports){ 'use strict'; var stringify = require('./stringify'); @@ -121248,7 +129457,7 @@ module.exports = { stringify: stringify }; -},{"./formats":158,"./parse":160,"./stringify":161}],160:[function(require,module,exports){ +},{"./formats":161,"./parse":163,"./stringify":164}],163:[function(require,module,exports){ 'use strict'; var utils = require('./utils'); @@ -121492,7 +129701,7 @@ module.exports = function (str, opts) { return utils.compact(obj); }; -},{"./utils":162}],161:[function(require,module,exports){ +},{"./utils":165}],164:[function(require,module,exports){ 'use strict'; var utils = require('./utils'); @@ -121763,7 +129972,7 @@ module.exports = function (object, opts) { return joined.length > 0 ? prefix + joined : ''; }; -},{"./formats":158,"./utils":162}],162:[function(require,module,exports){ +},{"./formats":161,"./utils":165}],165:[function(require,module,exports){ 'use strict'; var has = Object.prototype.hasOwnProperty; @@ -121995,7 +130204,7 @@ module.exports = { merge: merge }; -},{}],163:[function(require,module,exports){ +},{}],166:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -122183,6 +130392,8 @@ module.exports = class stex extends Exchange { 'BITS': 'Bitcoinus', 'BITSW': 'BITS', 'BHD': 'Bithold', + 'BTH': 'Bithereum', + 'SBTC': 'SBTCT', // SiamBitcoin }, 'options': { 'parseOrderToPrecision': false, @@ -122924,6 +131135,7 @@ module.exports = class stex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -123220,7 +131432,7 @@ module.exports = class stex extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -123799,7 +132011,7 @@ module.exports = class stex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],164:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],167:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -123833,7 +132045,7 @@ module.exports = class surbitcoin extends foxbit { } }; -},{"./foxbit.js":84}],165:[function(require,module,exports){ +},{"./foxbit.js":87}],168:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -124801,6 +133013,7 @@ module.exports = class therock extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -124830,7 +133043,7 @@ module.exports = class therock extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -124875,7 +133088,7 @@ module.exports = class therock extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -124914,7 +133127,7 @@ module.exports = class therock extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -125066,7 +133279,7 @@ module.exports = class therock extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],166:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],169:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -125491,6 +133704,7 @@ module.exports = class tidebit extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -125610,7 +133824,7 @@ module.exports = class tidebit extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],167:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],170:[function(require,module,exports){ 'use strict'; const Exchange = require ('./base/Exchange'); @@ -126193,6 +134407,7 @@ module.exports = class tidex extends Exchange { 'lastTradeTimestamp': undefined, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': this.safeString (order, 'type'), 'price': price, 'stopPrice': undefined, @@ -126394,7 +134609,7 @@ module.exports = class tidex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],168:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],171:[function(require,module,exports){ 'use strict'; const Exchange = require ('./base/Exchange'); @@ -126857,16 +135072,19 @@ module.exports = class timex extends Exchange { async createOrder (symbol, type, side, amount, price = undefined, params = {}) { await this.loadMarkets (); const market = this.market (symbol); + const uppercaseSide = side.toUpperCase (); + const uppercaseType = type.toUpperCase (); const request = { 'symbol': market['id'], 'quantity': this.amountToPrecision (symbol, amount), - 'side': side.toUpperCase (), + 'side': uppercaseSide, + 'orderTypes': uppercaseType, // 'clientOrderId': '123', // 'expireIn': 1575523308, // in seconds // 'expireTime': 1575523308, // unix timestamp }; let query = params; - if (type === 'limit') { + if (uppercaseType === 'LIMIT') { request['price'] = this.priceToPrecision (symbol, price); const defaultExpireIn = this.safeInteger (this.options, 'expireIn'); const expireTime = this.safeValue (params, 'expireTime'); @@ -126876,7 +135094,7 @@ module.exports = class timex extends Exchange { } else if (expireIn !== undefined) { request['expireIn'] = expireIn; } else { - throw new InvalidOrder (this.id + ' createOrder method requires a expireTime or expireIn param for a ' + type + ' order, you can also set the expireIn exchange-wide option'); + throw new InvalidOrder (this.id + ' createOrder() method requires a expireTime or expireIn param for a ' + type + ' order, you can also set the expireIn exchange-wide option'); } query = this.omit (params, [ 'expireTime', 'expireIn' ]); } else { @@ -127579,6 +135797,7 @@ module.exports = class timex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -127631,7 +135850,7 @@ module.exports = class timex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],169:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],172:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -127649,7 +135868,6 @@ module.exports = class upbit extends Exchange { 'countries': [ 'KR' ], 'version': 'v1', 'rateLimit': 1000, - 'certified': true, 'pro': true, // new metainfo interface 'has': { @@ -127855,7 +136073,7 @@ module.exports = class upbit extends Exchange { const walletLocked = this.safeValue (memberInfo, 'wallet_locked'); const locked = this.safeValue (memberInfo, 'locked'); let active = true; - if ((canWithdraw !== undefined) && canWithdraw) { + if ((canWithdraw !== undefined) && !canWithdraw) { active = false; } else if (walletState !== 'working') { active = false; @@ -128838,6 +137056,7 @@ module.exports = class upbit extends Exchange { 'symbol': market['symbol'], 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -129162,7 +137381,7 @@ module.exports = class upbit extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],170:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],173:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -129367,7 +137586,7 @@ module.exports = class vaultoro extends Exchange { } }; -},{"./base/Exchange":5}],171:[function(require,module,exports){ +},{"./base/Exchange":6}],174:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -129401,7 +137620,7 @@ module.exports = class vbtc extends foxbit { } }; -},{"./foxbit.js":84}],172:[function(require,module,exports){ +},{"./foxbit.js":87}],175:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -130460,6 +138679,7 @@ module.exports = class vcc extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -130741,7 +138961,7 @@ module.exports = class vcc extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],173:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],176:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -131800,7 +140020,7 @@ module.exports = class wavesexchange extends Exchange { this.checkRequiredDependencies (); this.checkRequiredKeys (); if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -132013,6 +140233,7 @@ module.exports = class wavesexchange extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -132409,7 +140630,7 @@ module.exports = class wavesexchange extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],174:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],177:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -133064,7 +141285,7 @@ module.exports = class whitebit extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],175:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],178:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -133436,7 +141657,7 @@ module.exports = class xbtce extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],176:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],179:[function(require,module,exports){ 'use strict'; const Exchange = require ('./base/Exchange'); @@ -133477,6 +141698,10 @@ module.exports = class xena extends Exchange { }, 'urls': { 'logo': 'https://user-images.githubusercontent.com/51840849/87489843-bb469280-c64c-11ea-91aa-69c6326506af.jpg', + 'test': { + 'public': 'https://trading.demo.xena.io/api', + 'private': 'https://api.demo.xena.io', + }, 'api': { 'public': 'https://trading.xena.exchange/api', 'private': 'https://api.xena.exchange', @@ -134397,6 +142622,7 @@ module.exports = class xena extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -134456,14 +142682,14 @@ module.exports = class xena extends Exchange { }; if ((type === 'limit') || (type === 'stop-limit')) { if (price === undefined) { - throw new InvalidOrder (this.id + ' createOrder requires a price argument for order type ' + type); + throw new InvalidOrder (this.id + ' createOrder() requires a price argument for order type ' + type); } request['price'] = this.priceToPrecision (symbol, price); } if ((type === 'stop') || (type === 'stop-limit')) { const stopPx = this.safeFloat (params, 'stopPx'); if (stopPx === undefined) { - throw new InvalidOrder (this.id + ' createOrder requires a stopPx param for order type ' + type); + throw new InvalidOrder (this.id + ' createOrder() requires a stopPx param for order type ' + type); } request['stopPx'] = this.priceToPrecision (symbol, stopPx); params = this.omit (params, 'stopPx'); @@ -134501,7 +142727,7 @@ module.exports = class xena extends Exchange { async editOrder (id, symbol, type, side, amount = undefined, price = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); await this.loadAccounts (); @@ -134556,7 +142782,7 @@ module.exports = class xena extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); await this.loadAccounts (); @@ -135153,7 +143379,7 @@ module.exports = class xena extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],177:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],180:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -135289,6 +143515,7 @@ module.exports = class yobit extends Exchange { 'LOCX': 'LOC', 'LUNYR': 'LUN', 'LUN': 'LunarCoin', // they just change the ticker if it is already taken + 'MASK': 'Yobit MASK', 'MDT': 'Midnight', 'NAV': 'NavajoCoin', 'NBT': 'NiceBytes', @@ -135305,6 +143532,7 @@ module.exports = class yobit extends Exchange { 'RCN': 'RCoin', 'REP': 'Republicoin', 'RUR': 'RUB', + 'SBTC': 'Super Bitcoin', 'TTC': 'TittieCoin', 'UNI': 'Universe', 'UST': 'Uservice', @@ -135751,6 +143979,7 @@ module.exports = class yobit extends Exchange { 'lastTradeTimestamp': undefined, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -135795,7 +144024,7 @@ module.exports = class yobit extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a `symbol` argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a `symbol` argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -135883,24 +144112,6 @@ module.exports = class yobit extends Exchange { }; } - calculateFee (symbol, type, side, amount, price, takerOrMaker = 'taker', params = {}) { - const market = this.markets[symbol]; - let key = 'quote'; - const rate = market[takerOrMaker]; - let cost = parseFloat (this.costToPrecision (symbol, amount * rate)); - if (side === 'sell') { - cost *= price; - } else { - key = 'base'; - } - return { - 'type': takerOrMaker, - 'currency': market[key], - 'rate': rate, - 'cost': cost, - }; - } - sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { let url = this.urls['api'][api]; const query = this.omit (params, this.extractParams (path)); @@ -135992,7 +144203,7 @@ module.exports = class yobit extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],178:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],181:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -136352,6 +144563,7 @@ module.exports = class zaif extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -136482,13 +144694,13 @@ module.exports = class zaif extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],179:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],182:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { BadRequest, ExchangeError, ArgumentsRequired, AuthenticationError, InsufficientFunds, OrderNotFound, ExchangeNotAvailable, DDoSProtection, InvalidOrder } = require ('./base/errors'); +const { BadRequest, ExchangeError, ArgumentsRequired, AuthenticationError, InsufficientFunds, OrderNotFound, ExchangeNotAvailable, DDoSProtection, InvalidOrder, InvalidAddress } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -136507,15 +144719,19 @@ module.exports = class zb extends Exchange { 'createOrder': true, 'fetchBalance': true, 'fetchDepositAddress': true, + 'fetchDepositAddresses': true, + 'fetchDeposits': true, 'fetchMarkets': true, 'fetchOHLCV': true, 'fetchOpenOrders': true, 'fetchOrder': true, 'fetchOrderBook': true, 'fetchOrders': true, + 'fetchClosedOrders': true, 'fetchTicker': true, 'fetchTickers': true, 'fetchTrades': true, + 'fetchWithdrawals': true, 'withdraw': true, }, 'timeframes': { @@ -136534,33 +144750,38 @@ module.exports = class zb extends Exchange { '1w': '1week', }, 'exceptions': { - // '1000': 'Successful operation', - '1001': ExchangeError, // 'General error message', - '1002': ExchangeError, // 'Internal error', - '1003': AuthenticationError, // 'Verification does not pass', - '1004': AuthenticationError, // 'Funding security password lock', - '1005': AuthenticationError, // 'Funds security password is incorrect, please confirm and re-enter.', - '1006': AuthenticationError, // 'Real-name certification pending approval or audit does not pass', - '1009': ExchangeNotAvailable, // 'This interface is under maintenance', - '2001': InsufficientFunds, // 'Insufficient CNY Balance', - '2002': InsufficientFunds, // 'Insufficient BTC Balance', - '2003': InsufficientFunds, // 'Insufficient LTC Balance', - '2005': InsufficientFunds, // 'Insufficient ETH Balance', - '2006': InsufficientFunds, // 'Insufficient ETC Balance', - '2007': InsufficientFunds, // 'Insufficient BTS Balance', - '2009': InsufficientFunds, // 'Account balance is not enough', - '3001': OrderNotFound, // 'Pending orders not found', - '3002': InvalidOrder, // 'Invalid price', - '3003': InvalidOrder, // 'Invalid amount', - '3004': AuthenticationError, // 'User does not exist', - '3005': BadRequest, // 'Invalid parameter', - '3006': AuthenticationError, // 'Invalid IP or inconsistent with the bound IP', - '3007': AuthenticationError, // 'The request time has expired', - '3008': OrderNotFound, // 'Transaction records not found', - '3009': InvalidOrder, // 'The price exceeds the limit', - '3011': InvalidOrder, // 'The entrusted price is abnormal, please modify it and place order again', - '4001': ExchangeNotAvailable, // 'API interface is locked or not enabled', - '4002': DDoSProtection, // 'Request too often', + 'exact': { + // '1000': 'Successful operation', + '1001': ExchangeError, // 'General error message', + '1002': ExchangeError, // 'Internal error', + '1003': AuthenticationError, // 'Verification does not pass', + '1004': AuthenticationError, // 'Funding security password lock', + '1005': AuthenticationError, // 'Funds security password is incorrect, please confirm and re-enter.', + '1006': AuthenticationError, // 'Real-name certification pending approval or audit does not pass', + '1009': ExchangeNotAvailable, // 'This interface is under maintenance', + '2001': InsufficientFunds, // 'Insufficient CNY Balance', + '2002': InsufficientFunds, // 'Insufficient BTC Balance', + '2003': InsufficientFunds, // 'Insufficient LTC Balance', + '2005': InsufficientFunds, // 'Insufficient ETH Balance', + '2006': InsufficientFunds, // 'Insufficient ETC Balance', + '2007': InsufficientFunds, // 'Insufficient BTS Balance', + '2009': InsufficientFunds, // 'Account balance is not enough', + '3001': OrderNotFound, // 'Pending orders not found', + '3002': InvalidOrder, // 'Invalid price', + '3003': InvalidOrder, // 'Invalid amount', + '3004': AuthenticationError, // 'User does not exist', + '3005': BadRequest, // 'Invalid parameter', + '3006': AuthenticationError, // 'Invalid IP or inconsistent with the bound IP', + '3007': AuthenticationError, // 'The request time has expired', + '3008': OrderNotFound, // 'Transaction records not found', + '3009': InvalidOrder, // 'The price exceeds the limit', + '3011': InvalidOrder, // 'The entrusted price is abnormal, please modify it and place order again', + '4001': ExchangeNotAvailable, // 'API interface is locked or not enabled', + '4002': DDoSProtection, // 'Request too often', + }, + 'broad': { + '提币地址有误,请先添加提币地址。': InvalidAddress, // {"code":1001,"message":"提币地址有误,请先添加提币地址。"} + }, }, 'urls': { 'logo': 'https://user-images.githubusercontent.com/1294454/32859187-cd5214f0-ca5e-11e7-967d-96568e2e2bd1.jpg', @@ -136587,20 +144808,28 @@ module.exports = class zb extends Exchange { 'get': [ // spot API 'order', + 'orderMoreV2', 'cancelOrder', 'getOrder', 'getOrders', 'getOrdersNew', 'getOrdersIgnoreTradeType', 'getUnfinishedOrdersIgnoreTradeType', + 'getFinishedAndPartialOrders', 'getAccountInfo', 'getUserAddress', + 'getPayinAddress', 'getWithdrawAddress', 'getWithdrawRecord', 'getChargeRecord', 'getCnyWithdrawRecord', 'getCnyChargeRecord', 'withdraw', + // sub accounts + 'addSubUser', + 'getSubUserList', + 'doTransferFunds', + 'createSubUserKey', // leverage API 'getLeverAssetsInfo', 'getLeverBills', @@ -136611,8 +144840,21 @@ module.exports = class zb extends Exchange { 'getLoans', 'getLoanRecords', 'borrow', + 'autoBorrow', 'repay', + 'doAllRepay', 'getRepayments', + 'getFinanceRecords', + 'changeInvestMark', + 'changeLoop', + // cross API + 'getCrossAssets', + 'getCrossBills', + 'transferInCross', + 'transferOutCross', + 'doCrossLoan', + 'doCrossRepay', + 'getCrossRepayRecords', ], }, }, @@ -136730,8 +144972,96 @@ module.exports = class zb extends Exchange { return this.parseBalance (result); } - getMarketFieldName () { - return 'market'; + parseDepositAddress (depositAddress, currency = undefined) { + // + // fetchDepositAddress + // + // { + // "key": "0x0af7f36b8f09410f3df62c81e5846da673d4d9a9" + // } + // + // fetchDepositAddresses + // + // { + // "blockChain": "btc", + // "isUseMemo": false, + // "address": "1LL5ati6pXHZnTGzHSA3rWdqi4mGGXudwM", + // "canWithdraw": true, + // "canDeposit": true + // } + // { + // "blockChain": "bts", + // "isUseMemo": true, + // "account": "btstest", + // "memo": "123", + // "canWithdraw": true, + // "canDeposit": true + // } + // + let address = this.safeString (depositAddress, 'key'); + let tag = undefined; + const memo = this.safeString (depositAddress, 'memo'); + if (memo !== undefined) { + tag = memo; + } else if (address.indexOf ('_') >= 0) { + const parts = address.split ('_'); + address = parts[0]; // WARNING: MAY BE tag_address INSTEAD OF address_tag FOR SOME CURRENCIES!! + tag = parts[1]; + } + const currencyId = this.safeString (depositAddress, 'blockChain'); + const code = this.safeCurrencyCode (currencyId, currency); + return { + 'currency': code, + 'address': address, + 'tag': tag, + 'info': depositAddress, + }; + } + + parseDepositAddresses (addresses, codes = undefined) { + let result = []; + for (let i = 0; i < addresses.length; i++) { + const address = this.parseDepositAddress (addresses[i]); + result.push (address); + } + if (codes) { + result = this.filterByArray (result, 'currency', codes); + } + return this.indexBy (result, 'currency'); + } + + async fetchDepositAddresses (codes = undefined, params = {}) { + await this.loadMarkets (); + const response = await this.privateGetGetPayinAddress (params); + // + // { + // "code": 1000, + // "message": { + // "des": "success", + // "isSuc": true, + // "datas": [ + // { + // "blockChain": "btc", + // "isUseMemo": false, + // "address": "1LL5ati6pXHZnTGzHSA3rWdqi4mGGXudwM", + // "canWithdraw": true, + // "canDeposit": true + // }, + // { + // "blockChain": "bts", + // "isUseMemo": true, + // "account": "btstest", + // "memo": "123", + // "canWithdraw": true, + // "canDeposit": true + // }, + // ] + // } + // } + // + const message = this.safeValue (response, 'message', {}); + const datas = this.safeValue (message, 'datas', []); + return this.parseDepositAddresses (datas, codes); } async fetchDepositAddress (code, params = {}) { @@ -136741,27 +145071,29 @@ module.exports = class zb extends Exchange { 'currency': currency['id'], }; const response = await this.privateGetGetUserAddress (this.extend (request, params)); - let address = response['message']['datas']['key']; - let tag = undefined; - if (address.indexOf ('_') >= 0) { - const parts = address.split ('_'); - address = parts[0]; // WARNING: MAY BE tag_address INSTEAD OF address_tag FOR SOME CURRENCIES!! - tag = parts[1]; - } - return { - 'currency': code, - 'address': address, - 'tag': tag, - 'info': response, - }; + // + // { + // "code": 1000, + // "message": { + // "des": "success", + // "isSuc": true, + // "datas": { + // "key": "0x0af7f36b8f09410f3df62c81e5846da673d4d9a9" + // } + // } + // } + // + const message = this.safeValue (response, 'message', {}); + const datas = this.safeValue (message, 'datas', {}); + return this.parseDepositAddress (datas, currency); } async fetchOrderBook (symbol, limit = undefined, params = {}) { await this.loadMarkets (); const market = this.market (symbol); - const marketFieldName = this.getMarketFieldName (); - const request = {}; - request[marketFieldName] = market['id']; + const request = { + 'market': market['id'], + }; if (limit !== undefined) { request['size'] = limit; } @@ -136790,9 +145122,9 @@ module.exports = class zb extends Exchange { async fetchTicker (symbol, params = {}) { await this.loadMarkets (); const market = this.market (symbol); - const marketFieldName = this.getMarketFieldName (); - const request = {}; - request[marketFieldName] = market['id']; + const request = { + 'market': market['id'], + }; const response = await this.publicGetTicker (this.extend (request, params)); const ticker = response['ticker']; return this.parseTicker (ticker, market); @@ -136885,9 +145217,9 @@ module.exports = class zb extends Exchange { async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); const market = this.market (symbol); - const marketFieldName = this.getMarketFieldName (); - const request = {}; - request[marketFieldName] = market['id']; + const request = { + 'market': market['id'], + }; const response = await this.publicGetTrades (this.extend (request, params)); return this.parseTrades (response, market, since, limit); } @@ -136947,7 +145279,7 @@ module.exports = class zb extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = 50, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + 'fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + 'fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -136973,9 +145305,24 @@ module.exports = class zb extends Exchange { return this.parseOrders (response, market, since, limit); } + async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + 'fetchClosedOrders() requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'currency': market['id'], + 'pageIndex': 1, // default pageIndex is 1 + 'pageSize': 10, // default pageSize is 10, doesn't work with other values now + }; + const response = await this.privateGetGetFinishedAndPartialOrders (this.extend (request, params)); + return this.parseOrders (response, market, since, limit); + } + async fetchOpenOrders (symbol = undefined, since = undefined, limit = 10, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + 'fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + 'fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -137002,29 +145349,26 @@ module.exports = class zb extends Exchange { } parseOrder (order, market = undefined) { - // - // fetchOrder // // { - // 'total_amount': 0.01, - // 'id': '20180910244276459', - // 'price': 180.0, - // 'trade_date': 1536576744960, - // 'status': 2, - // 'trade_money': '1.96742', - // 'trade_amount': 0.01, - // 'type': 0, - // 'currency': 'eth_usdt' - // } + // acctType: 0, + // currency: 'btc_usdt', + // fees: 3.6e-7, + // id: '202102282829772463', + // price: 45177.5, + // status: 2, + // total_amount: 0.0002, + // trade_amount: 0.0002, + // trade_date: 1614515104998, + // trade_money: 8.983712, + // type: 1, + // useZbFee: false + // }, // let side = this.safeInteger (order, 'type'); side = (side === 1) ? 'buy' : 'sell'; const type = 'limit'; // market order is not availalbe in ZB - let timestamp = undefined; - const createDateField = this.getCreateDateField (); - if (createDateField in order) { - timestamp = order[createDateField]; - } + const timestamp = this.safeInteger (order, 'trade_date'); const marketId = this.safeString (order, 'currency'); const symbol = this.safeSymbol (marketId, market, '_'); const price = this.safeFloat (order, 'price'); @@ -137043,6 +145387,21 @@ module.exports = class zb extends Exchange { average = cost / filled; } const id = this.safeString (order, 'id'); + const feeCost = this.safeFloat (order, 'fees'); + let fee = undefined; + if (feeCost !== undefined) { + let feeCurrency = undefined; + const zbFees = this.safeValue (order, 'useZbFee'); + if (zbFees === true) { + feeCurrency = 'ZB'; + } else if (market !== undefined) { + feeCurrency = (side === 'sell') ? market['quote'] : market['base']; + } + fee = { + 'cost': feeCost, + 'currency': feeCurrency, + }; + } return { 'info': order, 'id': id, @@ -137053,6 +145412,7 @@ module.exports = class zb extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -137062,7 +145422,7 @@ module.exports = class zb extends Exchange { 'filled': filled, 'remaining': remaining, 'status': status, - 'fee': undefined, + 'fee': fee, 'trades': undefined, }; } @@ -137077,8 +145437,241 @@ module.exports = class zb extends Exchange { return this.safeString (statuses, status, status); } - getCreateDateField () { - return 'trade_date'; + parseTransactionStatus (status) { + const statuses = { + '0': 'pending', // submitted, pending confirmation + '1': 'failed', + '2': 'ok', + '3': 'canceled', + '5': 'ok', // confirmed + }; + return this.safeString (statuses, status, status); + } + + parseTransaction (transaction, currency = undefined) { + // + // withdraw + // + // { + // "code": 1000, + // "message": "success", + // "id": "withdrawalId" + // } + // + // fetchWithdrawals + // + // { + // "amount": 0.01, + // "fees": 0.001, + // "id": 2016042556231, + // "manageTime": 1461579340000, + // "status": 3, + // "submitTime": 1461579288000, + // "toAddress": "14fxEPirL9fyfw1i9EF439Pq6gQ5xijUmp", + // } + // + // fetchDeposits + // + // { + // "address": "1FKN1DZqCm8HaTujDioRL2Aezdh7Qj7xxx", + // "amount": "1.00000000", + // "confirmTimes": 1, + // "currency": "BTC", + // "description": "Successfully Confirm", + // "hash": "7ce842de187c379abafadd64a5fe66c5c61c8a21fb04edff9532234a1dae6xxx", + // "id": 558, + // "itransfer": 1, + // "status": 2, + // "submit_time": "2016-12-07 18:51:57", + // } + // + const id = this.safeString (transaction, 'id'); + const txid = this.safeString (transaction, 'hash'); + const amount = this.safeFloat (transaction, 'amount'); + let timestamp = this.parse8601 (this.safeString (transaction, 'submit_time')); + timestamp = this.safeInteger (transaction, 'submitTime', timestamp); + let address = this.safeString2 (transaction, 'toAddress', 'address'); + let tag = undefined; + if (address !== undefined) { + const parts = address.split ('_'); + address = this.safeString (parts, 0); + tag = this.safeString (parts, 1); + } + const confirmTimes = this.safeInteger (transaction, 'confirmTimes'); + const updated = this.safeInteger (transaction, 'manageTime'); + let type = undefined; + const currencyId = this.safeString (transaction, 'currency'); + const code = this.safeCurrencyCode (currencyId, currency); + if (address !== undefined) { + type = (confirmTimes === undefined) ? 'withdrawal' : 'deposit'; + } + const status = this.parseTransactionStatus (this.safeString (transaction, 'status')); + let fee = undefined; + const feeCost = this.safeFloat (transaction, 'fees'); + if (feeCost !== undefined) { + fee = { + 'cost': feeCost, + 'currency': code, + }; + } + return { + 'info': transaction, + 'id': id, + 'txid': txid, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'addressFrom': undefined, + 'address': address, + 'addressTo': address, + 'tagFrom': undefined, + 'tag': tag, + 'tagTo': tag, + 'type': type, + 'amount': amount, + 'currency': code, + 'status': status, + 'updated': updated, + 'fee': fee, + }; + } + + async withdraw (code, amount, address, tag = undefined, params = {}) { + const password = this.safeString (params, 'safePwd', this.password); + if (password === undefined) { + throw new ArgumentsRequired (this.id + ' withdraw() requires exchange.password or a safePwd parameter'); + } + const fees = this.safeFloat (params, 'fees'); + if (fees === undefined) { + throw new ArgumentsRequired (this.id + ' withdraw() requires a fees parameter'); + } + this.checkAddress (address); + await this.loadMarkets (); + const currency = this.currency (code); + if (tag !== undefined) { + address += '_' + tag; + } + const request = { + 'amount': this.currencyToPrecision (code, amount), + 'currency': currency['id'], + 'fees': this.currencyToPrecision (code, fees), + // 'itransfer': 0, // agree for an internal transfer, 0 disagree, 1 agree, the default is to disagree + 'method': 'withdraw', + 'receiveAddr': address, + 'safePwd': password, + }; + const response = await this.privateGetWithdraw (this.extend (request, params)); + // + // { + // "code": 1000, + // "message": "success", + // "id": "withdrawalId" + // } + // + const transaction = this.parseTransaction (response, currency); + return this.extend (transaction, { + 'type': 'withdrawal', + 'address': address, + 'addressTo': address, + 'amount': amount, + }); + } + + async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'currency': currency['id'], + // 'pageIndex': 1, + // 'pageSize': limit, + }; + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + request['currency'] = currency['id']; + } + if (limit !== undefined) { + request['pageSize'] = limit; + } + const response = await this.privateGetGetWithdrawRecord (this.extend (request, params)); + // + // { + // "code": 1000, + // "message": { + // "des": "success", + // "isSuc": true, + // "datas": { + // "list": [ + // { + // "amount": 0.01, + // "fees": 0.001, + // "id": 2016042556231, + // "manageTime": 1461579340000, + // "status": 3, + // "submitTime": 1461579288000, + // "toAddress": "14fxEPirL9fyfw1i9EF439Pq6gQ5xijUmp", + // }, + // ], + // "pageIndex": 1, + // "pageSize": 10, + // "totalCount": 4, + // "totalPage": 1 + // } + // } + // } + // + const message = this.safeValue (response, 'message', {}); + const datas = this.safeValue (message, 'datas', {}); + const withdrawals = this.safeValue (datas, 'list', []); + return this.parseTransactions (withdrawals, currency, since, limit); + } + + async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'currency': currency['id'], + // 'pageIndex': 1, + // 'pageSize': limit, + }; + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + request['currency'] = currency['id']; + } + if (limit !== undefined) { + request['pageSize'] = limit; + } + const response = await this.privateGetGetChargeRecord (this.extend (request, params)); + // + // { + // "code": 1000, + // "message": { + // "des": "success", + // "isSuc": true, + // "datas": { + // "list": [ + // { + // "address": "1FKN1DZqCm8HaTujDioRL2Aezdh7Qj7xxx", + // "amount": "1.00000000", + // "confirmTimes": 1, + // "currency": "BTC", + // "description": "Successfully Confirm", + // "hash": "7ce842de187c379abafadd64a5fe66c5c61c8a21fb04edff9532234a1dae6xxx", + // "id": 558, + // "itransfer": 1, + // "status": 2, + // "submit_time": "2016-12-07 18:51:57", + // }, + // ], + // "pageIndex": 1, + // "pageSize": 10, + // "total": 8 + // } + // } + // } + // + const message = this.safeValue (response, 'message', {}); + const datas = this.safeValue (message, 'datas', {}); + const deposits = this.safeValue (datas, 'list', []); + return this.parseTransactions (deposits, currency, since, limit); } nonce () { @@ -137114,9 +145707,10 @@ module.exports = class zb extends Exchange { } if (body[0] === '{') { const feedback = this.id + ' ' + body; + this.throwBroadlyMatchedException (this.exceptions['broad'], body, feedback); if ('code' in response) { const code = this.safeString (response, 'code'); - this.throwExactlyMatchedException (this.exceptions, code, feedback); + this.throwExactlyMatchedException (this.exceptions['exact'], code, feedback); if (code !== '1000') { throw new ExchangeError (feedback); } @@ -137137,7 +145731,7 @@ module.exports = class zb extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],180:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],183:[function(require,module,exports){ (function (global){ 'use strict'; @@ -137631,7 +146225,7 @@ var objectKeys = Object.keys || function (obj) { }; }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"util/":238}],181:[function(require,module,exports){ +},{"util/":241}],184:[function(require,module,exports){ 'use strict' exports.byteLength = byteLength @@ -137747,9 +146341,9 @@ function fromByteArray (uint8) { return parts.join('') } -},{}],182:[function(require,module,exports){ +},{}],185:[function(require,module,exports){ -},{}],183:[function(require,module,exports){ +},{}],186:[function(require,module,exports){ (function (process,Buffer){ 'use strict'; /* eslint camelcase: "off" */ @@ -138161,7 +146755,7 @@ Zlib.prototype._reset = function () { exports.Zlib = Zlib; }).call(this,require('_process'),require("buffer").Buffer) -},{"_process":207,"assert":180,"buffer":185,"pako/lib/zlib/constants":197,"pako/lib/zlib/deflate.js":199,"pako/lib/zlib/inflate.js":201,"pako/lib/zlib/zstream":205}],184:[function(require,module,exports){ +},{"_process":210,"assert":183,"buffer":188,"pako/lib/zlib/constants":200,"pako/lib/zlib/deflate.js":202,"pako/lib/zlib/inflate.js":204,"pako/lib/zlib/zstream":208}],187:[function(require,module,exports){ (function (process){ 'use strict'; @@ -138773,7 +147367,7 @@ util.inherits(DeflateRaw, Zlib); util.inherits(InflateRaw, Zlib); util.inherits(Unzip, Zlib); }).call(this,require('_process')) -},{"./binding":183,"_process":207,"assert":180,"buffer":185,"stream":226,"util":238}],185:[function(require,module,exports){ +},{"./binding":186,"_process":210,"assert":183,"buffer":188,"stream":229,"util":241}],188:[function(require,module,exports){ /*! * The buffer module from node.js, for the browser. * @@ -140489,7 +149083,7 @@ function numberIsNaN (obj) { return obj !== obj // eslint-disable-line no-self-compare } -},{"base64-js":181,"ieee754":191}],186:[function(require,module,exports){ +},{"base64-js":184,"ieee754":194}],189:[function(require,module,exports){ module.exports = { "100": "Continue", "101": "Switching Protocols", @@ -140555,7 +149149,7 @@ module.exports = { "511": "Network Authentication Required" } -},{}],187:[function(require,module,exports){ +},{}],190:[function(require,module,exports){ module.exports={ "O_RDONLY": 0, "O_WRONLY": 1, @@ -140766,7 +149360,7 @@ module.exports={ "UV_UDP_REUSEADDR": 4 } -},{}],188:[function(require,module,exports){ +},{}],191:[function(require,module,exports){ (function (Buffer){ // Copyright Joyent, Inc. and other Node contributors. // @@ -140877,7 +149471,7 @@ function objectToString(o) { } }).call(this,{"isBuffer":require("../../is-buffer/index.js")}) -},{"../../is-buffer/index.js":193}],189:[function(require,module,exports){ +},{"../../is-buffer/index.js":196}],192:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -141181,7 +149775,7 @@ function isUndefined(arg) { return arg === void 0; } -},{}],190:[function(require,module,exports){ +},{}],193:[function(require,module,exports){ var http = require('http') var url = require('url') @@ -141214,7 +149808,7 @@ function validateParams (params) { return params } -},{"http":227,"url":233}],191:[function(require,module,exports){ +},{"http":230,"url":236}],194:[function(require,module,exports){ exports.read = function (buffer, offset, isLE, mLen, nBytes) { var e, m var eLen = nBytes * 8 - mLen - 1 @@ -141300,7 +149894,7 @@ exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { buffer[offset + i - d] |= s * 128 } -},{}],192:[function(require,module,exports){ +},{}],195:[function(require,module,exports){ if (typeof Object.create === 'function') { // implementation from standard node.js 'util' module module.exports = function inherits(ctor, superCtor) { @@ -141325,7 +149919,7 @@ if (typeof Object.create === 'function') { } } -},{}],193:[function(require,module,exports){ +},{}],196:[function(require,module,exports){ /*! * Determine if an object is a Buffer * @@ -141348,14 +149942,14 @@ function isSlowBuffer (obj) { return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0)) } -},{}],194:[function(require,module,exports){ +},{}],197:[function(require,module,exports){ var toString = {}.toString; module.exports = Array.isArray || function (arr) { return toString.call(arr) == '[object Array]'; }; -},{}],195:[function(require,module,exports){ +},{}],198:[function(require,module,exports){ 'use strict'; @@ -141462,7 +150056,7 @@ exports.setTyped = function (on) { exports.setTyped(TYPED_OK); -},{}],196:[function(require,module,exports){ +},{}],199:[function(require,module,exports){ 'use strict'; // Note: adler32 takes 12% for level 0 and 2% for level 6. @@ -141515,7 +150109,7 @@ function adler32(adler, buf, len, pos) { module.exports = adler32; -},{}],197:[function(require,module,exports){ +},{}],200:[function(require,module,exports){ 'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler @@ -141585,7 +150179,7 @@ module.exports = { //Z_NULL: null // Use -1 or null inline, depending on var type }; -},{}],198:[function(require,module,exports){ +},{}],201:[function(require,module,exports){ 'use strict'; // Note: we can't get significant speed boost here. @@ -141646,7 +150240,7 @@ function crc32(crc, buf, len, pos) { module.exports = crc32; -},{}],199:[function(require,module,exports){ +},{}],202:[function(require,module,exports){ 'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler @@ -143522,7 +152116,7 @@ exports.deflatePrime = deflatePrime; exports.deflateTune = deflateTune; */ -},{"../utils/common":195,"./adler32":196,"./crc32":198,"./messages":203,"./trees":204}],200:[function(require,module,exports){ +},{"../utils/common":198,"./adler32":199,"./crc32":201,"./messages":206,"./trees":207}],203:[function(require,module,exports){ 'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler @@ -143869,7 +152463,7 @@ module.exports = function inflate_fast(strm, start) { return; }; -},{}],201:[function(require,module,exports){ +},{}],204:[function(require,module,exports){ 'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler @@ -145427,7 +154021,7 @@ exports.inflateSyncPoint = inflateSyncPoint; exports.inflateUndermine = inflateUndermine; */ -},{"../utils/common":195,"./adler32":196,"./crc32":198,"./inffast":200,"./inftrees":202}],202:[function(require,module,exports){ +},{"../utils/common":198,"./adler32":199,"./crc32":201,"./inffast":203,"./inftrees":205}],205:[function(require,module,exports){ 'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler @@ -145772,7 +154366,7 @@ module.exports = function inflate_table(type, lens, lens_index, codes, table, ta return 0; }; -},{"../utils/common":195}],203:[function(require,module,exports){ +},{"../utils/common":198}],206:[function(require,module,exports){ 'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler @@ -145806,7 +154400,7 @@ module.exports = { '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */ }; -},{}],204:[function(require,module,exports){ +},{}],207:[function(require,module,exports){ 'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler @@ -147028,7 +155622,7 @@ exports._tr_flush_block = _tr_flush_block; exports._tr_tally = _tr_tally; exports._tr_align = _tr_align; -},{"../utils/common":195}],205:[function(require,module,exports){ +},{"../utils/common":198}],208:[function(require,module,exports){ 'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler @@ -147077,7 +155671,7 @@ function ZStream() { module.exports = ZStream; -},{}],206:[function(require,module,exports){ +},{}],209:[function(require,module,exports){ (function (process){ 'use strict'; @@ -147124,7 +155718,7 @@ function nextTick(fn, arg1, arg2, arg3) { } }).call(this,require('_process')) -},{"_process":207}],207:[function(require,module,exports){ +},{"_process":210}],210:[function(require,module,exports){ // shim for using process in browser var process = module.exports = {}; @@ -147310,7 +155904,7 @@ process.chdir = function (dir) { }; process.umask = function() { return 0; }; -},{}],208:[function(require,module,exports){ +},{}],211:[function(require,module,exports){ (function (global){ /*! https://mths.be/punycode v1.4.1 by @mathias */ ;(function(root) { @@ -147847,7 +156441,7 @@ process.umask = function() { return 0; }; }(this)); }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],209:[function(require,module,exports){ +},{}],212:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -147933,7 +156527,7 @@ var isArray = Array.isArray || function (xs) { return Object.prototype.toString.call(xs) === '[object Array]'; }; -},{}],210:[function(require,module,exports){ +},{}],213:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -148020,16 +156614,16 @@ var objectKeys = Object.keys || function (obj) { return res; }; -},{}],211:[function(require,module,exports){ +},{}],214:[function(require,module,exports){ 'use strict'; exports.decode = exports.parse = require('./decode'); exports.encode = exports.stringify = require('./encode'); -},{"./decode":209,"./encode":210}],212:[function(require,module,exports){ +},{"./decode":212,"./encode":213}],215:[function(require,module,exports){ module.exports = require('./lib/_stream_duplex.js'); -},{"./lib/_stream_duplex.js":213}],213:[function(require,module,exports){ +},{"./lib/_stream_duplex.js":216}],216:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -148154,7 +156748,7 @@ function forEach(xs, f) { f(xs[i], i); } } -},{"./_stream_readable":215,"./_stream_writable":217,"core-util-is":188,"inherits":192,"process-nextick-args":206}],214:[function(require,module,exports){ +},{"./_stream_readable":218,"./_stream_writable":220,"core-util-is":191,"inherits":195,"process-nextick-args":209}],217:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -148202,7 +156796,7 @@ function PassThrough(options) { PassThrough.prototype._transform = function (chunk, encoding, cb) { cb(null, chunk); }; -},{"./_stream_transform":216,"core-util-is":188,"inherits":192}],215:[function(require,module,exports){ +},{"./_stream_transform":219,"core-util-is":191,"inherits":195}],218:[function(require,module,exports){ (function (process,global){ // Copyright Joyent, Inc. and other Node contributors. // @@ -149212,7 +157806,7 @@ function indexOf(xs, x) { return -1; } }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./_stream_duplex":213,"./internal/streams/BufferList":218,"./internal/streams/destroy":219,"./internal/streams/stream":220,"_process":207,"core-util-is":188,"events":189,"inherits":192,"isarray":194,"process-nextick-args":206,"safe-buffer":225,"string_decoder/":231,"util":182}],216:[function(require,module,exports){ +},{"./_stream_duplex":216,"./internal/streams/BufferList":221,"./internal/streams/destroy":222,"./internal/streams/stream":223,"_process":210,"core-util-is":191,"events":192,"inherits":195,"isarray":197,"process-nextick-args":209,"safe-buffer":228,"string_decoder/":234,"util":185}],219:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -149427,7 +158021,7 @@ function done(stream, er, data) { return stream.push(null); } -},{"./_stream_duplex":213,"core-util-is":188,"inherits":192}],217:[function(require,module,exports){ +},{"./_stream_duplex":216,"core-util-is":191,"inherits":195}],220:[function(require,module,exports){ (function (process,global){ // Copyright Joyent, Inc. and other Node contributors. // @@ -150094,7 +158688,7 @@ Writable.prototype._destroy = function (err, cb) { cb(err); }; }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./_stream_duplex":213,"./internal/streams/destroy":219,"./internal/streams/stream":220,"_process":207,"core-util-is":188,"inherits":192,"process-nextick-args":206,"safe-buffer":225,"util-deprecate":235}],218:[function(require,module,exports){ +},{"./_stream_duplex":216,"./internal/streams/destroy":222,"./internal/streams/stream":223,"_process":210,"core-util-is":191,"inherits":195,"process-nextick-args":209,"safe-buffer":228,"util-deprecate":238}],221:[function(require,module,exports){ 'use strict'; /**/ @@ -150169,7 +158763,7 @@ module.exports = function () { return BufferList; }(); -},{"safe-buffer":225}],219:[function(require,module,exports){ +},{"safe-buffer":228}],222:[function(require,module,exports){ 'use strict'; /**/ @@ -150242,13 +158836,13 @@ module.exports = { destroy: destroy, undestroy: undestroy }; -},{"process-nextick-args":206}],220:[function(require,module,exports){ +},{"process-nextick-args":209}],223:[function(require,module,exports){ module.exports = require('events').EventEmitter; -},{"events":189}],221:[function(require,module,exports){ +},{"events":192}],224:[function(require,module,exports){ module.exports = require('./readable').PassThrough -},{"./readable":222}],222:[function(require,module,exports){ +},{"./readable":225}],225:[function(require,module,exports){ exports = module.exports = require('./lib/_stream_readable.js'); exports.Stream = exports; exports.Readable = exports; @@ -150257,13 +158851,13 @@ exports.Duplex = require('./lib/_stream_duplex.js'); exports.Transform = require('./lib/_stream_transform.js'); exports.PassThrough = require('./lib/_stream_passthrough.js'); -},{"./lib/_stream_duplex.js":213,"./lib/_stream_passthrough.js":214,"./lib/_stream_readable.js":215,"./lib/_stream_transform.js":216,"./lib/_stream_writable.js":217}],223:[function(require,module,exports){ +},{"./lib/_stream_duplex.js":216,"./lib/_stream_passthrough.js":217,"./lib/_stream_readable.js":218,"./lib/_stream_transform.js":219,"./lib/_stream_writable.js":220}],226:[function(require,module,exports){ module.exports = require('./readable').Transform -},{"./readable":222}],224:[function(require,module,exports){ +},{"./readable":225}],227:[function(require,module,exports){ module.exports = require('./lib/_stream_writable.js'); -},{"./lib/_stream_writable.js":217}],225:[function(require,module,exports){ +},{"./lib/_stream_writable.js":220}],228:[function(require,module,exports){ /* eslint-disable node/no-deprecated-api */ var buffer = require('buffer') var Buffer = buffer.Buffer @@ -150327,7 +158921,7 @@ SafeBuffer.allocUnsafeSlow = function (size) { return buffer.SlowBuffer(size) } -},{"buffer":185}],226:[function(require,module,exports){ +},{"buffer":188}],229:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -150456,7 +159050,7 @@ Stream.prototype.pipe = function(dest, options) { return dest; }; -},{"events":189,"inherits":192,"readable-stream/duplex.js":212,"readable-stream/passthrough.js":221,"readable-stream/readable.js":222,"readable-stream/transform.js":223,"readable-stream/writable.js":224}],227:[function(require,module,exports){ +},{"events":192,"inherits":195,"readable-stream/duplex.js":215,"readable-stream/passthrough.js":224,"readable-stream/readable.js":225,"readable-stream/transform.js":226,"readable-stream/writable.js":227}],230:[function(require,module,exports){ (function (global){ var ClientRequest = require('./lib/request') var extend = require('xtend') @@ -150538,7 +159132,7 @@ http.METHODS = [ 'UNSUBSCRIBE' ] }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./lib/request":229,"builtin-status-codes":186,"url":233,"xtend":239}],228:[function(require,module,exports){ +},{"./lib/request":232,"builtin-status-codes":189,"url":236,"xtend":242}],231:[function(require,module,exports){ (function (global){ exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream) @@ -150611,7 +159205,7 @@ function isFunction (value) { xhr = null // Help gc }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],229:[function(require,module,exports){ +},{}],232:[function(require,module,exports){ (function (process,global,Buffer){ var capability = require('./capability') var inherits = require('inherits') @@ -150921,7 +159515,7 @@ var unsafeHeaders = [ ] }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer) -},{"./capability":228,"./response":230,"_process":207,"buffer":185,"inherits":192,"readable-stream":222,"to-arraybuffer":232}],230:[function(require,module,exports){ +},{"./capability":231,"./response":233,"_process":210,"buffer":188,"inherits":195,"readable-stream":225,"to-arraybuffer":235}],233:[function(require,module,exports){ (function (process,global,Buffer){ var capability = require('./capability') var inherits = require('inherits') @@ -151107,7 +159701,7 @@ IncomingMessage.prototype._onXHRProgress = function () { } }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer) -},{"./capability":228,"_process":207,"buffer":185,"inherits":192,"readable-stream":222}],231:[function(require,module,exports){ +},{"./capability":231,"_process":210,"buffer":188,"inherits":195,"readable-stream":225}],234:[function(require,module,exports){ 'use strict'; var Buffer = require('safe-buffer').Buffer; @@ -151380,7 +159974,7 @@ function simpleWrite(buf) { function simpleEnd(buf) { return buf && buf.length ? this.write(buf) : ''; } -},{"safe-buffer":225}],232:[function(require,module,exports){ +},{"safe-buffer":228}],235:[function(require,module,exports){ var Buffer = require('buffer').Buffer module.exports = function (buf) { @@ -151409,7 +160003,7 @@ module.exports = function (buf) { } } -},{"buffer":185}],233:[function(require,module,exports){ +},{"buffer":188}],236:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -152143,7 +160737,7 @@ Url.prototype.parseHost = function() { if (host) this.hostname = host; }; -},{"./util":234,"punycode":208,"querystring":211}],234:[function(require,module,exports){ +},{"./util":237,"punycode":211,"querystring":214}],237:[function(require,module,exports){ 'use strict'; module.exports = { @@ -152161,7 +160755,7 @@ module.exports = { } }; -},{}],235:[function(require,module,exports){ +},{}],238:[function(require,module,exports){ (function (global){ /** @@ -152232,16 +160826,16 @@ function config (name) { } }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],236:[function(require,module,exports){ -arguments[4][192][0].apply(exports,arguments) -},{"dup":192}],237:[function(require,module,exports){ +},{}],239:[function(require,module,exports){ +arguments[4][195][0].apply(exports,arguments) +},{"dup":195}],240:[function(require,module,exports){ module.exports = function isBuffer(arg) { return arg && typeof arg === 'object' && typeof arg.copy === 'function' && typeof arg.fill === 'function' && typeof arg.readUInt8 === 'function'; } -},{}],238:[function(require,module,exports){ +},{}],241:[function(require,module,exports){ (function (process,global){ // Copyright Joyent, Inc. and other Node contributors. // @@ -152831,7 +161425,7 @@ function hasOwnProperty(obj, prop) { } }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./support/isBuffer":237,"_process":207,"inherits":236}],239:[function(require,module,exports){ +},{"./support/isBuffer":240,"_process":210,"inherits":239}],242:[function(require,module,exports){ module.exports = extend var hasOwnProperty = Object.prototype.hasOwnProperty; diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/aax.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/aax.js new file mode 100644 index 000000000..9c71e445f --- /dev/null +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/aax.js @@ -0,0 +1,1784 @@ +'use strict'; + +// ---------------------------------------------------------------------------- + +const Exchange = require ('./base/Exchange'); +const { ArgumentsRequired, AuthenticationError, ExchangeError, ExchangeNotAvailable, OrderNotFound, InvalidOrder, CancelPending, RateLimitExceeded, InsufficientFunds, BadRequest, BadSymbol, PermissionDenied } = require ('./base/errors'); +const { TICK_SIZE } = require ('./base/functions/number'); + +// ---------------------------------------------------------------------------- + +module.exports = class aax extends Exchange { + describe () { + return this.deepExtend (super.describe (), { + 'id': 'aax', + 'name': 'AAX', + 'countries': [ 'MT' ], // Malta + 'enableRateLimit': true, + 'rateLimit': 500, + 'version': 'v2', + 'hostname': 'aaxpro.com', // aax.com + 'certified': true, + 'has': { + 'cancelAllOrders': true, + 'cancelOrder': true, + 'createOrder': true, + 'editOrder': true, + 'fetchBalance': true, + 'fetchCanceledOrders': true, + 'fetchClosedOrders': true, + 'fetchDepositAddress': true, + 'fetchMarkets': true, + 'fetchMyTrades': true, + 'fetchOHLCV': true, + 'fetchOpenOrders': true, + 'fetchOrder': true, + 'fetchOrderBook': true, + 'fetchOrders': true, + 'fetchTicker': 'emulated', + 'fetchTickers': true, + 'fetchTrades': true, + }, + 'timeframes': { + '1m': '1m', + '5m': '5m', + '15m': '15m', + '30m': '30m', + '1h': '1h', + '2h': '2h', + '4h': '4h', + '12h': '12h', + '1d': '1d', + '3d': '3d', + '1w': '1w', + }, + 'urls': { + 'logo': 'https://user-images.githubusercontent.com/1294454/104140087-a27f2580-53c0-11eb-87c1-5d9e81208fe9.jpg', + 'test': { + 'v1': 'https://api.testnet.{hostname}/marketdata/v1', + 'public': 'https://api.testnet.{hostname}', + 'private': 'https://api.testnet.{hostname}', + }, + 'api': { + 'v1': 'https://api.{hostname}/marketdata/v1', + 'public': 'https://api.{hostname}', + 'private': 'https://api.{hostname}', + }, + 'www': 'https://www.aaxpro.com', // string website URL + 'doc': 'https://www.aaxpro.com/apidoc/index.html', + 'fees': 'https://www.aaxpro.com/en-US/fees/', + 'referral': 'https://www.aaxpro.com/invite/sign-up?inviteCode=JXGm5Fy7R2MB', + }, + 'api': { + 'v1': { + 'get': [ + 'getHistMarketData', // Get OHLC k line of specific market + ], + }, + 'public': { + // these endpoints are not documented + // 'get': [ + // 'order_book', // Get the order book of specified market + // 'order_book/{market}', + // 'trades', // Get recent trades on market, each trade is included only once Trades are sorted in reverse creation order. + // 'trades/{market}', + // 'tickers', // Get ticker of all markets + // 'tickers/{market}', // Get ticker of specific market + // ], + 'get': [ + 'announcement/maintenance', // System Maintenance Notice + 'instruments', // Retrieve all trading pairs information + 'market/orderbook', // Order Book + 'futures/position/openInterest', // Open Interest + 'market/tickers', // Get the Last 24h Market Summary + 'market/candles', // Get Current Candlestick + 'market/history/candles', // Get Current Candlestick + 'market/trades', // Get the Most Recent Trades + 'market/markPrice', // Get Current Mark Price + 'futures/funding/predictedFunding/{symbol}', // Get Predicted Funding Rate + 'futures/funding/prevFundingRate/{symbol}', // Get Last Funding Rate + 'market/candles/index', // Get Current Index Candlestick + ], + }, + 'private': { + 'get': [ + 'user/info', // Retrieve user information + 'account/balances', // Get Account Balances + 'account/deposit/address', // undocumented + 'spot/trades', // Retrieve trades details for a spot order + 'spot/openOrders', // Retrieve spot open orders + 'spot/orders', // Retrieve historical spot orders + 'futures/position', // Get positions for all contracts + 'futures/position/closed', // Get closed positions + 'futures/trades', // Retrieve trade details for a futures order + 'futures/openOrders', // Retrieve futures open orders + 'futures/orders', // Retrieve historical futures orders + 'futures/funding/predictedFundingFee/{symbol}', // Get predicted funding fee + ], + 'post': [ + 'account/transfer', // Asset Transfer + 'spot/orders', // Create a new spot order + 'spot/orders/cancelAllOnTimeout', // Automatically cancel all your spot orders after a specified timeout. + 'futures/orders', // Create a new futures order + 'futures/orders/cancelAllOnTimeout', // Automatically cancel all your futures orders after a specified timeout. + 'futures/position/sltp', // Set take profit and stop loss orders for an opening position + 'futures/position/close', // Close position + 'futures/position/leverage', // Update leverage for position + 'futures/position/margin', // Modify Isolated Position Margin + ], + 'put': [ + 'spot/orders', // Amend spot order + 'futures/orders', // Amend the quantity of an open futures order + ], + 'delete': [ + 'spot/orders/cancel/{orderID}', // Cancel a spot order + 'spot/orders/cancel/all', // Batch cancel spot orders + 'futures/orders/cancel/{orderID}', // Cancel a futures order + 'futures/orders/cancel/all', // Batch cancel futures orders + ], + }, + }, + 'fees': { + 'trading': { + 'tierBased': false, + 'percentage': true, + 'maker': 0.06 / 100, + 'taker': 0.10 / 100, + }, + 'funding': { + 'tierBased': false, + 'percentage': true, + 'withdraw': {}, // There is only 1% fee on withdrawals to your bank account. + }, + }, + 'commonCurrencies': { + 'XBT': 'XBT', + }, + 'exceptions': { + 'exact': { + '2002': InsufficientFunds, + '2003': OrderNotFound, + '10003': BadRequest, // Parameter validation error + '10006': AuthenticationError, // Session expired, please relogin + '10007': AuthenticationError, // Invalid authentication key or token + '11007': AuthenticationError, // Invalid key format + '20001': InsufficientFunds, // Insufficient balance. Please deposit to trade. + '20009': InvalidOrder, // Order amount must be positive + '30000': OrderNotFound, // {"code":30000,"data":null,"message":"The order does not exist","ts":1610259732263} + '30001': InvalidOrder, // The order is being submitted, please try again later + '30004': InvalidOrder, // Minimum quantity is {0} + '30005': InvalidOrder, // Quantity maximum precision is {0} decimal places + '30006': InvalidOrder, // Price maximum precision is {0} decimal places + '30007': InvalidOrder, // Minimum price is {0} + '30008': InvalidOrder, // Stop price maximum precision is {0} decimal places + '30009': InvalidOrder, // Stop Price cannot be less than {0} + '30010': InvalidOrder, // Market price cannot be empty + '30011': CancelPending, // The order is being cancelled, please wait. + '30012': BadRequest, // Unknown currency + '30013': BadSymbol, // Unknown symbol + '30014': OrderNotFound, // Futures order cannot be found + '30015': InvalidOrder, // This is not an open order and cannot modified + '30016': ExchangeError, // No position found + '30017': InvalidOrder, // The current close position is 0. It is recommended that you cancel the current order closing order. + '30018': InvalidOrder, // Order price cannot be greater than {0} + '30019': InvalidOrder, // Order quantity cannot be greater than {0} + '30020': InvalidOrder, // Order price must be a multiple of {0} + '30021': InvalidOrder, // Margin adjustement must be greater than 0 + '30022': InvalidOrder, // New quantity must be greater than filled quantity + '30023': InvalidOrder, // Order failed, please try again + '30024': InvalidOrder, // TimeInForce error, only GTC or IOC are allowed + '30025': InvalidOrder, // TimeInForce error, only GTC is allowed + '30026': InvalidOrder, // Quantity is not a multiple of {0} + '30027': InvalidOrder, // Close position failed, it is recommended that you cancel the current order and then close the position. + '30028': BadSymbol, // Symbol cannot be traded at this time + '30029': InvalidOrder, // Modified quantity or price cannot be empty + '30030': InvalidOrder, // Price cannot be specified for market orders + '30031': InvalidOrder, // Liquidation orders cannot be modified + '30032': InvalidOrder, // Leverage cannot be greater than {0} + '30033': InvalidOrder, // Leverage cannot be smaller than {0} + '30034': RateLimitExceeded, // The max number of open orders is {0}. To place a new order, please cancel a previous one + '30035': RateLimitExceeded, // The max number of {0} open orders is {1}. To place a new order, please cancel a previous one + '30036': ExchangeNotAvailable, // Liquidation is in progress, please try again later + '30037': InvalidOrder, // Once stop limit order triggered, stop price cannot be amended + '30038': ExchangeError, // The total value of your orders has exceeded the current risk limit. Please adjust the risk limit + '30039': InsufficientFunds, // Your risk limit has now been changed to {0}, your maximum leverage less than 1, please readjust accordingly + '30040': InvalidOrder, // Order status has changed, please try again later + '30041': InvalidOrder, // Liquidation orders cannot be cancelled + '30042': InvalidOrder, // Order cannot be placed as you will be breaching you max limit value of {1} BTC for {0} + '30043': InvalidOrder, // The risk limit cannot be less than 0 + '30044': BadRequest, // Timeout cannot be greater than 60 minutes + '30045': InvalidOrder, // Side is not valid, it should be BUY or SELL + '30046': InvalidOrder, // Order type is not valid, it should be MARKET or LIMIT or STOP-LIMIT or STOP + '30047': InvalidOrder, // The order is closed. Can't cancel + '30048': InvalidOrder, // Market orders cannot be modified + '30049': InvalidOrder, // The order is being modified, please wait + '30050': InvalidOrder, // Maximum 10 orders + '40004': BadRequest, // Requested resource doesn't exist + '40009': RateLimitExceeded, // Too many requests + '40102': AuthenticationError, // {"code":40102,"message":"Unauthorized(invalid key)"} + '40103': AuthenticationError, // {"code":40103,"message":"Unauthorized(invalid sign)"} + '40303': PermissionDenied, // {"code":40303,"message":"Forbidden(invalid scopes)"} + '41001': BadRequest, // Incorrect HTTP request + '41002': BadRequest, // Unsupported HTTP request method + '42001': ExchangeNotAvailable, // Duplicated data entry, please check and try again + '50001': ExchangeError, // Server side exception, please try again later + '50002': ExchangeError, // Server is busy, please try again later + }, + 'broad': {}, + }, + 'precisionMode': TICK_SIZE, + 'options': { + 'defaultType': 'spot', // 'spot', 'future' + }, + }); + } + + async fetchMarkets (params = {}) { + const response = await this.publicGetInstruments (params); + // + // { + // "code":1, + // "message":"success", + // "ts":1610159448962, + // "data":[ + // { + // "tickSize":"0.01", + // "lotSize":"1", + // "base":"BTC", + // "quote":"USDT", + // "minQuantity":"1.0000000000", + // "maxQuantity":"30000", + // "minPrice":"0.0100000000", + // "maxPrice":"999999.0000000000", + // "status":"readOnly", + // "symbol":"BTCUSDTFP", + // "code":"FP", + // "takerFee":"0.00040", + // "makerFee":"0.00020", + // "multiplier":"0.001000000000", + // "mmRate":"0.00500", + // "imRate":"0.01000", + // "type":"futures", + // "settleType":"Vanilla", + // "settleCurrency":"USDT" + // }, + // { + // "tickSize":"0.5", + // "lotSize":"10", + // "base":"BTC", + // "quote":"USD", + // "minQuantity":"10.0000000000", + // "maxQuantity":"300000", + // "minPrice":"0.5000000000", + // "maxPrice":"999999.0000000000", + // "status":"readOnly", + // "symbol":"BTCUSDFP", + // "code":"FP", + // "takerFee":"0.00040", + // "makerFee":"0.00020", + // "multiplier":"1.000000000000", + // "mmRate":"0.00500", + // "imRate":"0.01000", + // "type":"futures", + // "settleType":"Inverse", + // "settleCurrency":"BTC" + // }, + // { + // "tickSize":"0.0001", + // "lotSize":"0.01", + // "base":"AAB", + // "quote":"USDT", + // "minQuantity":"5.0000000000", + // "maxQuantity":"50000.0000000000", + // "minPrice":"0.0001000000", + // "maxPrice":"999999.0000000000", + // "status":"readOnly", + // "symbol":"AABUSDT", + // "code":null, + // "takerFee":"0.00100", + // "makerFee":"0.00100", + // "multiplier":"1.000000000000", + // "mmRate":"0.02500", + // "imRate":"0.05000", + // "type":"spot", + // "settleType":null, + // "settleCurrency":null + // }, + // ] + // } + // + const data = this.safeValue (response, 'data'); + const result = []; + for (let i = 0; i < data.length; i++) { + const market = data[i]; + const id = this.safeString (market, 'symbol'); + const baseId = this.safeString (market, 'base'); + const quoteId = this.safeString (market, 'quote'); + const base = this.safeCurrencyCode (baseId); + const quote = this.safeCurrencyCode (quoteId); + const status = this.safeString (market, 'status'); + const active = (status === 'enable'); + const taker = this.safeFloat (market, 'takerFee'); + const maker = this.safeFloat (market, 'makerFee'); + const type = this.safeString (market, 'type'); + let inverse = undefined; + let linear = undefined; + let quanto = undefined; + const spot = (type === 'spot'); + const futures = (type === 'futures'); + const settleType = this.safeStringLower (market, 'settleType'); + if (settleType !== undefined) { + inverse = (settleType === 'inverse'); + linear = (settleType === 'vanilla'); + quanto = (settleType === 'quanto'); + } + let symbol = id; + if (type === 'spot') { + symbol = base + '/' + quote; + } + const precision = { + 'amount': this.safeFloat (market, 'lotSize'), + 'price': this.safeFloat (market, 'tickSize'), + }; + result.push ({ + 'id': id, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'baseId': baseId, + 'quoteId': quoteId, + 'type': type, + 'spot': spot, + 'futures': futures, + 'inverse': inverse, + 'linear': linear, + 'quanto': quanto, + 'precision': precision, + 'info': market, + 'active': active, + 'taker': taker, + 'maker': maker, + 'percentage': false, + 'tierBased': true, + 'limits': { + 'amount': { + 'min': this.safeString (market, 'minQuantity'), + 'max': this.safeString (market, 'maxQuantity'), + }, + 'price': { + 'min': this.safeString (market, 'minPrice'), + 'max': this.safeString (market, 'maxPrice'), + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + }, + }); + } + return result; + } + + parseTicker (ticker, market = undefined) { + // + // { + // "t":1610162685342, // timestamp + // "a":"0.00000000", // trading volume in USD in the last 24 hours, futures only + // "c":"435.20000000", // close + // "d":"4.22953489", // change + // "h":"455.04000000", // high + // "l":"412.78000000", // low + // "o":"417.54000000", // open + // "s":"BCHUSDTFP", // market id + // "v":"2031068.00000000", // trading volume in quote currency of last 24 hours + // } + // + const timestamp = this.safeInteger (ticker, 't'); + const marketId = this.safeString (ticker, 's'); + const symbol = this.safeSymbol (marketId, market); + const last = this.safeFloat (ticker, 'c'); + const open = this.safeFloat (ticker, 'o'); + let change = undefined; + let percentage = undefined; + let average = undefined; + if (last !== undefined && open !== undefined) { + change = last - open; + if (open > 0) { + percentage = change / open * 100; + } + average = this.sum (last, open) / 2; + } + const quoteVolume = this.safeFloat (ticker, 'v'); + return { + 'symbol': symbol, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'high': this.safeFloat (ticker, 'h'), + 'low': this.safeFloat (ticker, 'l'), + 'bid': undefined, + 'bidVolume': undefined, + 'ask': undefined, + 'askVolume': undefined, + 'vwap': undefined, + 'open': open, + 'close': last, + 'last': last, + 'previousClose': undefined, + 'change': change, + 'percentage': percentage, + 'average': average, + 'baseVolume': undefined, + 'quoteVolume': quoteVolume, + 'info': ticker, + }; + } + + async fetchTicker (symbol, params = {}) { + const tickers = await this.fetchTickers (undefined, params); + if (symbol in tickers) { + return tickers[symbol]; + } + throw new BadSymbol (this.id + ' fetchTicker() symbol ' + symbol + ' ticker not found'); + } + + async fetchTickers (symbols = undefined, params = {}) { + await this.loadMarkets (); + const response = await this.publicGetMarketTickers (params); + // + // { + // "e":"tickers", + // "t":1610162685342, + // "tickers":[ + // { + // "a":"0.00000000", + // "c":"435.20000000", + // "d":"4.22953489", + // "h":"455.04000000", + // "l":"412.78000000", + // "o":"417.54000000", + // "s":"BCHUSDTFP", + // "v":"2031068.00000000", + // }, + // ], + // } + // + const tickers = this.safeValue (response, 'tickers', []); + const result = []; + const timestamp = this.safeInteger (response, 't'); + for (let i = 0; i < tickers.length; i++) { + const ticker = this.parseTicker (this.extend (tickers[i], { 't': timestamp })); + result.push (ticker); + } + return this.filterByArray (result, 'symbol', symbols); + } + + async fetchOrderBook (symbol, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + if (limit === undefined) { + limit = 20; + } else { + if ((limit !== 20) && (limit !== 50)) { + throw new BadRequest (this.id + ' fetchOrderBook() limit argument must be undefined, 20 or 50'); + } + } + const request = { + 'symbol': market['id'], + 'level': limit, // required + }; + // + const response = await this.publicGetMarketOrderbook (this.extend (request, params)); + // + // { + // "asks":[ + // ["10823.00000000","0.004000"], + // ["10823.10000000","0.100000"], + // ["10823.20000000","0.010000"] + // ], + // "bids":[ + // ["10821.20000000","0.002000"], + // ["10821.10000000","0.005000"], + // ["10820.40000000","0.013000"] + // ], + // "e":"BTCUSDT@book_50", + // "t":1561543614756 + // } + // + const timestamp = this.safeInteger (response, 't'); // need unix type + return this.parseOrderBook (response, timestamp); + } + + parseTrade (trade, market = undefined) { + // + // public fetchTrades + // + // { + // "p":"9395.50000000", + // "q":"50.000000", + // "t":1592563996718 + // } + // + // private fetchMyTrades + // + // { + // "avgPrice":"1199.8", + // "base":"ETH", + // "clOrdID":null, + // "commission":"0.00002", + // "createTime":"2021-01-11T02:47:51.512Z", + // "cumQty":"0.02", + // "filledOrderID":"1eUD4F5rwK", + // "filledPrice":"1199.8", + // "filledQty":"0.02", + // "leavesQty":"0", + // "oCreateTime":"2021-01-11T02:47:51.377Z", + // "orderID":"1eUD4EHfdU", + // "orderQty":"0.02", + // "orderStatus":3, + // "orderType":1, + // "price":"1198.25", + // "quote":"USDT", + // "rejectCode":null, + // "rejectReason":null, + // "side":1, + // "stopPrice":"0", + // "symbol":"ETHUSDT", + // "taker":true, + // "tradeID":"E04WTIgfmULU", + // "transactTime":"2021-01-11T02:47:51.389Z", + // "updateTime":null, + // "userID":"1362494" + // } + // + let timestamp = this.safeInteger (trade, 't'); + if (timestamp === undefined) { + timestamp = this.parse8601 (this.safeString (trade, 'createTime')); + } + const id = this.safeString2 (trade, 'tid', 'tradeID'); + let symbol = undefined; + const marketId = this.safeString (trade, 'symbol'); + market = this.safeMarket (marketId, market); + if (market !== undefined) { + symbol = market['symbol']; + } + let price = this.safeFloat2 (trade, 'p', 'filledPrice'); + const amount = this.safeFloat2 (trade, 'q', 'filledQty'); + const orderId = this.safeString (trade, 'orderID'); + const isTaker = this.safeValue (trade, 'taker'); + let takerOrMaker = undefined; + if (isTaker !== undefined) { + takerOrMaker = isTaker ? 'taker' : 'maker'; + } + let side = this.safeString (trade, 'side'); + if (side === '1') { + side = 'buy'; + } else if (side === '2') { + side = 'sell'; + } + if (side === undefined) { + side = (price > 0) ? 'buy' : 'sell'; + } + side = (price > 0) ? 'buy' : 'sell'; + price = Math.abs (price); + let cost = undefined; + if ((price !== undefined) && (amount !== undefined)) { + cost = price * amount; + } + const orderType = this.parseOrderType (this.safeString (trade, 'orderType')); + let fee = undefined; + const feeCost = this.safeFloat (trade, 'commission'); + if (feeCost !== undefined) { + let feeCurrency = undefined; + if (market !== undefined) { + if (side === 'buy') { + feeCurrency = market['base']; + } else if (side === 'sell') { + feeCurrency = market['quote']; + } + } + fee = { + 'currency': feeCurrency, + 'cost': feeCost, + }; + } + return { + 'info': trade, + 'id': id, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'symbol': symbol, + 'type': orderType, + 'side': side, + 'order': orderId, + 'takerOrMaker': takerOrMaker, + 'price': price, + 'amount': amount, + 'cost': cost, + 'fee': fee, + }; + } + + async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + limit = (limit === undefined) ? 2000 : limit; + limit = Math.min (limit, 2000); + const request = { + 'symbol': market['id'], + 'limit': limit, + }; + const response = await this.publicGetMarketTrades (request); + // + // { + // "e":"BTCUSDFP@trades", + // "trades": [ + // {"p":"9395.50000000","q":"50.000000","t":1592563996718}, + // {"p":"9395.50000000","q":"50.000000","t":1592563993577}, + // ], + // } + // + const trades = this.safeValue (response, 'trades', []); + return this.parseTrades (trades, market, since, limit); + } + + parseOHLCV (ohlcv, market = undefined) { + // + // [ + // 0.042398, // 0 open + // 0.042684, // 1 high + // 0.042366, // 2 low + // 0.042386, // 3 close + // 0.93734243, // 4 volume + // 1611514800, // 5 timestamp + // ] + // + return [ + this.safeTimestamp (ohlcv, 5), + this.safeFloat (ohlcv, 0), + this.safeFloat (ohlcv, 1), + this.safeFloat (ohlcv, 2), + this.safeFloat (ohlcv, 3), + this.safeFloat (ohlcv, 4), + ]; + } + + async fetchOHLCV (symbol, timeframe = '1h', since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + // 'limit': limit, // if set counts from now into the past + 'symbol': market['id'], + 'timeFrame': this.timeframes[timeframe], + }; + limit = (limit === undefined) ? 500 : limit; + const duration = this.parseTimeframe (timeframe); + if (since === undefined) { + const end = this.seconds (); + request['start'] = end - duration * limit; + request['end'] = end; + } else { + const start = parseInt (since / 1000); + request['start'] = start; + request['end'] = this.sum (start, duration * limit); + } + const response = await this.publicGetMarketHistoryCandles (this.extend (request, params)); + // + // { + // "data":[ + // [0.042398,0.042684,0.042366,0.042386,0.93734243,1611514800], + // [0.042386,0.042602,0.042234,0.042373,1.01925239,1611518400], + // [0.042373,0.042558,0.042362,0.042389,0.93801705,1611522000], + // ], + // "success":true, + // "t":1611875157 + // } + // + const data = this.safeValue (response, 'data', []); + return this.parseOHLCVs (data, market, timeframe, since, limit); + } + + async fetchBalance (params = {}) { + await this.loadMarkets (); + const defaultType = this.safeString2 (this.options, 'fetchBalance', 'defaultType', 'spot'); + const type = this.safeString (params, 'type', defaultType); + const types = { + 'spot': 'SPTP', + 'future': 'FUTP', + 'otc': 'F2CP', + 'saving': 'VLTP', + }; + const purseType = this.safeString (types, type, type); + const request = { + 'purseType': purseType, + }; + params = this.omit (params, 'type'); + const response = await this.privateGetAccountBalances (this.extend (request, params)); + // + // { + // "code":1, + // "data":[ + // { + // "purseType":"FUTP", + // "currency":"BTC", + // "available":"0.41000000", + // "unavailable":"0.00000000" + // }, + // { + // "purseType":"FUTP", + // "currency":"USDT", + // "available":"0.21000000", + // "unvaliable":"0.00000000" + // } + // ] + // "message":"success", + // "ts":1573530401020 + // } + // + const data = this.safeValue (response, 'data'); + const result = { 'info': response }; + for (let i = 0; i < data.length; i++) { + const balance = data[i]; + const balanceType = this.safeString (balance, 'purseType'); + if (balanceType === purseType) { + const currencyId = this.safeString (balance, 'currency'); + const code = this.safeCurrencyCode (currencyId); + const account = this.account (); + account['free'] = this.safeFloat (balance, 'available'); + account['used'] = this.safeFloat (balance, 'unavailable'); + result[code] = account; + } + } + return this.parseBalance (result); + } + + async createOrder (symbol, type, side, amount, price = undefined, params = {}) { + let orderType = type.toUpperCase (); + const orderSide = side.toUpperCase (); + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + // 'orderType': orderType, // MARKET, LIMIT, STOP, STOP-LIMIT + 'symbol': market['id'], + 'orderQty': this.amountToPrecision (symbol, amount), + 'side': orderSide, + // 'stopPrice': this.priceToPrecision (symbol, stopPrice), + // 'clOrdID': clientOrderId, // up to 20 chars, lowercase and uppercase letters only + // 'timeInForce': 'GTC', // GTC, IOC, FOK, default is GTC + // 'execInst': 'Post-Only', // the only value supported by the exchange, futures-only + }; + const timeInForce = this.safeString (params, 'timeInForce'); + if (timeInForce !== undefined) { + request['timeInForce'] = timeInForce; + params = this.omit (params, 'timeInForce'); + } + const clientOrderId = this.safeString2 (params, 'clOrdID', 'clientOrderId'); + if (clientOrderId !== undefined) { + request['clOrdID'] = clientOrderId; + params = this.omit (params, [ 'clOrdID', 'clientOrderId' ]); + } + const stopPrice = this.safeFloat (params, 'stopPrice'); + if (stopPrice === undefined) { + if ((orderType === 'STOP-LIMIT') || (orderType === 'STOP')) { + throw new ArgumentsRequired (this.id + ' createOrder() requires a stopPrice parameter for ' + orderType + ' orders'); + } + } else { + if (orderType === 'LIMIT') { + orderType = 'STOP-LIMIT'; + } else if (orderType === 'MARKET') { + orderType = 'STOP'; + } + request['stopPrice'] = this.priceToPrecision (symbol, stopPrice); + params = this.omit (params, 'stopPrice'); + } + if (orderType === 'LIMIT' || orderType === 'STOP-LIMIT') { + request['price'] = this.priceToPrecision (symbol, price); + } + request['orderType'] = orderType; + let method = undefined; + if (market['spot']) { + method = 'privatePostSpotOrders'; + } else if (market['futures']) { + method = 'privatePostFuturesOrders'; + } + const response = await this[method] (this.extend (request, params)); + // + // spot + // + // { + // "code":1, + // "data":{ + // "symbol":"ETHUSDT", + // "orderType":2, + // "avgPrice":"0", + // "execInst":null, + // "orderStatus":0, + // "userID":"1362494", + // "quote":"USDT", + // "rejectReason":null, + // "rejectCode":null, + // "price":"1500", + // "orderQty":"1", + // "commission":"0", + // "id":"268323430253735936", + // "timeInForce":1, + // "isTriggered":false, + // "side":2, + // "orderID":"1eO51MDSpQ", + // "leavesQty":"0", + // "cumQty":"0", + // "updateTime":null, + // "lastQty":"0", + // "clOrdID":null, + // "stopPrice":null, + // "createTime":null, + // "transactTime":null, + // "base":"ETH", + // "lastPrice":"0" + // }, + // "message":"success", + // "ts":1610245290980 + // } + // + // futures + // + // { + // "code":1, + // "data":{ + // "liqType":0, + // "symbol":"ETHUSDTFP", + // "orderType":2, + // "leverage":"1", + // "marketPrice":"1318.3150000000", + // "code":"FP", + // "avgPrice":"0", + // "execInst":null, + // "orderStatus":0, + // "userID":"1362494", + // "quote":"USDT", + // "rejectReason":null, + // "rejectCode":null, + // "price":"500", + // "orderQty":"1", + // "commission":"0", + // "id":"268346885133053953", + // "timeInForce":1, + // "isTriggered":false, + // "side":1, + // "orderID":"1eOuPUAAkq", + // "leavesQty":"1", + // "cumQty":"0", + // "updateTime":null, + // "lastQty":null, + // "clOrdID":null, + // "stopPrice":null, + // "createTime":null, + // "transactTime":null, + // "settleType":"VANILLA", + // "base":"ETH", + // "lastPrice":"0" + // }, + // "message":"success", + // "ts":1610250883059 + // } + // + const data = this.safeValue (response, 'data', {}); + return this.parseOrder (data, market); + } + + async editOrder (id, symbol, type, side, amount, price = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'orderID': id, + // 'orderQty': this.amountToPrecision (symbol, amount), + // 'price': this.priceToPrecision (symbol, price), + // 'stopPrice': this.priceToPrecision (symbol, stopPrice), + }; + const stopPrice = this.safeFloat (params, 'stopPrice'); + if (stopPrice !== undefined) { + request['stopPrice'] = this.priceToPrecision (symbol, stopPrice); + params = this.omit (params, 'stopPrice'); + } + if (price !== undefined) { + request['price'] = this.priceToPrecision (symbol, price); + } + if (amount !== undefined) { + request['orderQty'] = this.amountToPrecision (symbol, amount); + } + let method = undefined; + if (market['spot']) { + method = 'privatePutSpotOrders'; + } else if (market['futures']) { + method = 'privatePutFuturesOrders'; + } + const response = await this[method] (this.extend (request, params)); + // + // spot + // + // { + // "code":1, + // "data":{ + // "symbol":"ETHUSDT", + // "orderType":2, + // "avgPrice":"0", + // "execInst":null, + // "orderStatus":0, + // "userID":"1362494", + // "quote":"USDT", + // "rejectReason":null, + // "rejectCode":null, + // "price":"1500", + // "orderQty":"1", + // "commission":"0", + // "id":"268323430253735936", + // "timeInForce":1, + // "isTriggered":false, + // "side":2, + // "orderID":"1eO51MDSpQ", + // "leavesQty":"0", + // "cumQty":"0", + // "updateTime":null, + // "lastQty":"0", + // "clOrdID":null, + // "stopPrice":null, + // "createTime":null, + // "transactTime":null, + // "base":"ETH", + // "lastPrice":"0" + // }, + // "message":"success", + // "ts":1610245290980 + // } + // + // futures + // + // { + // "code":1, + // "data":{ + // "liqType":0, + // "symbol":"ETHUSDTFP", + // "orderType":2, + // "leverage":"1", + // "marketPrice":"1318.3150000000", + // "code":"FP", + // "avgPrice":"0", + // "execInst":null, + // "orderStatus":0, + // "userID":"1362494", + // "quote":"USDT", + // "rejectReason":null, + // "rejectCode":null, + // "price":"500", + // "orderQty":"1", + // "commission":"0", + // "id":"268346885133053953", + // "timeInForce":1, + // "isTriggered":false, + // "side":1, + // "orderID":"1eOuPUAAkq", + // "leavesQty":"1", + // "cumQty":"0", + // "updateTime":null, + // "lastQty":null, + // "clOrdID":null, + // "stopPrice":null, + // "createTime":null, + // "transactTime":null, + // "settleType":"VANILLA", + // "base":"ETH", + // "lastPrice":"0" + // }, + // "message":"success", + // "ts":1610250883059 + // } + // + const data = this.safeValue (response, 'data', {}); + return this.parseOrder (data, market); + } + + async cancelOrder (id, symbol = undefined, params = {}) { + await this.loadMarkets (); + const request = { + 'orderID': id, + }; + let method = undefined; + const defaultType = this.safeString2 (this.options, 'cancelOrder', 'defaultType', 'spot'); + let type = this.safeString (params, 'type', defaultType); + params = this.omit (params, 'type'); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + type = market['type']; + } + if (type === 'spot') { + method = 'privateDeleteSpotOrdersCancelOrderID'; + } else if (type === 'futures') { + method = 'privateDeleteFuturesOrdersCancelOrderID'; + } + const response = await this[method] (this.extend (request, params)); + // + // spot + // + // { + // "code":1, + // "data":{ + // "avgPrice":"0", + // "base":"BTC", + // "clOrdID":"aax", + // "commission":"0", + // "createTime":"2019-11-12T03:46:41Z", + // "cumQty":"0", + // "id":"114330021504606208", + // "isTriggered":false, + // "lastPrice":"0", + // "lastQty":"0", + // "leavesQty":"0", + // "orderID":"wJ4L366KB", + // "orderQty":"0.05", + // "orderStatus":1, + // "orderType":2, + // "price":"8000", + // "quote":"USDT", + // "rejectCode":0, + // "rejectReason":null, + // "side":1, + // "stopPrice":"0", + // "symbol":"BTCUSDT", + // "transactTime":null, + // "updateTime":"2019-11-12T03:46:41Z", + // "timeInForce":1, + // "userID":"216214" + // }, + // "message":"success", + // "ts":1573530402029 + // } + // + // futures + // + // { + // "code":1, + // "data":{ + // "avgPrice":"0", + // "base":"BTC", + // "clOrdID":"aax_futures", + // "code":"FP", + // "commission":"0", + // "createTime":"2019-11-12T06:48:58Z", + // "cumQty":"0", + // "id":"114375893764395008", + // "isTriggered":false, + // "lastPrice":"0", + // "lastQty":null, + // "leavesQty":"300", + // "leverage":"1", + // "liqType":0, + // "marketPrice":"8760.75", + // "orderID":"wJTewQc81", + // "orderQty":"300", + // "orderStatus":1, + // "orderType":2, + // "price":"8000", + // "quote":"USD", + // "rejectCode":0, + // "rejectReason":null, + // "settleType":"INVERSE", + // "side":1, + // "stopPrice":"0", + // "symbol":"BTCUSDFP", + // "transactTime":"2019-11-12T06:48:58Z", + // "updateTime":"2019-11-12T06:48:58Z", + // "timeInForce":1, + // "execInst": "", + // "userID":"216214" + // }, + // "message":"success", + // "ts":1573541642970 + // } + // + const data = this.safeValue (response, 'data', {}); + return this.parseOrder (data, market); + } + + async cancelAllOrders (symbol = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + ' cancelAllOrders() requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'symbol': market['id'], + }; + let method = undefined; + if (market['spot']) { + method = 'privateDeleteSpotOrdersCancelAll'; + } else if (market['futures']) { + method = 'privateDeleteFuturesOrdersCancelAll'; + } + const response = await this[method] (this.extend (request, params)); + // + // { + // "code":1, + // "data":[ + // "vBC9rXsEE", + // "vBCc46OI0" + // ], + // "message":"success", + // "ts":1572597435470 + // } + // + return response; + } + + async fetchOrder (id, symbol = undefined, params = {}) { + await this.loadMarkets (); + const defaultType = this.safeString2 (this.options, 'fetchOrder', 'defaultType', 'spot'); + params['type'] = this.safeString (params, 'type', defaultType); + const request = {}; + const clientOrderId = this.safeString2 (params, 'clOrdID', 'clientOrderId'); + if (clientOrderId === undefined) { + request['orderID'] = id; + } else { + request['clOrdID'] = clientOrderId; + params = this.omit (params, [ 'clOrdID', 'clientOrderId' ]); + } + const orders = await this.fetchOrders (symbol, undefined, undefined, this.extend (request, params)); + const order = this.safeValue (orders, 0); + if (order === undefined) { + if (clientOrderId === undefined) { + throw new OrderNotFound (this.id + ' fetchOrder() could not find order id ' + id); + } else { + throw new OrderNotFound (this.id + ' fetchOrder() could not find order clientOrderID ' + clientOrderId); + } + } + return order; + } + + async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'pageNum': '1', + // 'pageSize': '10', + // 'symbol': market['id'], + // 'orderID': id, + // 'side': 'undefined', // BUY, SELL + // 'clOrdID': clientOrderId, + }; + const defaultType = this.safeString2 (this.options, 'fetchOpenOrders', 'defaultType', 'spot'); + let type = this.safeString (params, 'type', defaultType); + params = this.omit (params, 'type'); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['symbol'] = market['id']; + type = market['type']; + } + const clientOrderId = this.safeString2 (params, 'clOrdID', 'clientOrderId'); + if (clientOrderId !== undefined) { + request['clOrdID'] = clientOrderId; + params = this.omit (params, [ 'clOrdID', 'clientOrderId' ]); + } + let method = undefined; + if (type === 'spot') { + method = 'privateGetSpotOpenOrders'; + } else if (type === 'futures') { + method = 'privateGetFuturesOpenOrders'; + } + if (limit !== undefined) { + request['pageSize'] = limit; // default 10 + } + const response = await this[method] (this.extend (request, params)); + // + // spot + // + // { + // "code":1, + // "data":{ + // "total":19, + // "pageSize":10, + // "list":[ + // { + // "orderType":2, + // "symbol":"BTCUSDT", + // "avgPrice":"0", + // "orderStatus":0, + // "userID":"7225", + // "quote":"USDT", + // "rejectReason":null, + // "rejectCode":null, + // "price":"0", + // "orderQty":"0.002", + // "commission":"0", + // "id":"110419975166304256", + // "isTriggered":null, + // "side":1, + // "orderID":"vBGlDcLwk", + // "cumQty":"0", + // "leavesQty":"0", + // "updateTime":null, + // "clOrdID":"0001", + // "lastQty":"0", + // "stopPrice":"0", + // "createTime":"2019-11-01T08:49:33Z", + // "transactTime":null, + // "timeInForce":1, + // "base":"BTC", + // "lastPrice":"0" + // } + // ], + // "pageNum":1 + // }, + // "message":"success", + // "ts":1572598173682 + // } + // + // futures + // + // { + // "code":1, + // "data":{ + // "list":[ + // { + // "avgPrice":"8768.99999999484997", + // "base":"BTC", + // "clOrdID":null, + // "code":"FP", + // "commission":"0.00000913", + // "createTime":"2019-11-12T07:05:52.000Z, + // "cumQty":"100", + // "id":"114380149603028993", + // "isTriggered":false, + // "lastPrice":"8769", + // "lastQty":"100", + // "leavesQty":"0", + // "leverage":"1", + // "liqType":1, + // "marketPrice":"8769.75", + // "orderID":"wJXURIFBT", + // "orderQty":"100", + // "orderStatus":3, + // "orderType":1, + // "price":"8769.75", + // "quote":"USD", + // "rejectCode":0, + // "rejectReason":null, + // "settleType":"INVERSE", + // "side":2, + // "stopPrice":"0", + // "symbol":"BTCUSDFP", + // "transactTime":"2019-11-12T07:05:52.000Z, + // "updateTime":"2019-11-12T07:05:52.000Z, + // "timeInForce":1, + // "execInst": "", + // "userID":"216214" + // }, + // ], + // "pageNum":1, + // "pageSize":10, + // "total":21 + // }, + // "message":"success", + // "ts":1573546960172 + // } + // + const data = this.safeValue (response, 'data', {}); + const orders = this.safeValue (data, 'list', []); + return this.parseOrders (orders, market, since, limit); + } + + async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const request = { + 'orderStatus': '2', // 1 new, 2 filled, 3 canceled + }; + return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); + } + + async fetchCanceledOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const request = { + 'orderStatus': '3', // 1 new, 2 filled, 3 canceled + }; + return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); + } + + async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'pageNum': '1', + // 'pageSize': '10', + // 'symbol': market['id'], + // 'orderID': id, + // 'base': market['baseId'], + // 'quote': market['quoteId'], + // 'orderStatus': undefined, // 1 new, 2 filled, 3 canceled + // 'startDate': this.ymd (since), + // 'endDate': this.ymd (this.milliseconds()), + // 'orderType': undefined, // MARKET, LIMIT, STOP, STOP-LIMIT + // 'side': 'undefined', // BUY, SELL + // 'clOrdID': clientOrderId, + }; + let method = undefined; + const defaultType = this.safeString2 (this.options, 'fetchOrders', 'defaultType', 'spot'); + let type = this.safeString (params, 'type', defaultType); + params = this.omit (params, 'type'); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['symbol'] = market['id']; + type = market['type']; + } + if (type === 'spot') { + method = 'privateGetSpotOrders'; + } else if (type === 'futures') { + method = 'privateGetFuturesOrders'; + } + const clientOrderId = this.safeString2 (params, 'clOrdID', 'clientOrderId'); + if (clientOrderId !== undefined) { + request['clOrdID'] = clientOrderId; + params = this.omit (params, [ 'clOrdID', 'clientOrderId' ]); + } + if (limit !== undefined) { + request['pageSize'] = limit; // default 10 + } + if (since !== undefined) { + request['startDate'] = this.ymd (since); + } + const response = await this[method] (this.extend (request, params)); + // + // spot + // + // { + // "code":1, + // "data":{ + // "total":19, + // "pageSize":10, + // "list":[ + // { + // "orderType":2, + // "symbol":"BTCUSDT", + // "avgPrice":"0", + // "orderStatus":0, + // "userID":"7225", + // "quote":"USDT", + // "rejectReason":null, + // "rejectCode":null, + // "price":"0", + // "orderQty":"0.002", + // "commission":"0", + // "id":"110419975166304256", + // "isTriggered":null, + // "side":1, + // "orderID":"vBGlDcLwk", + // "cumQty":"0", + // "leavesQty":"0", + // "updateTime":null, + // "clOrdID":"0001", + // "lastQty":"0", + // "stopPrice":"0", + // "createTime":"2019-11-01T08:49:33Z", + // "transactTime":null, + // "timeInForce":1, + // "base":"BTC", + // "lastPrice":"0" + // } + // ], + // "pageNum":1 + // }, + // "message":"success", + // "ts":1572598173682 + // } + // + // futures + // + // { + // "code":1, + // "data":{ + // "list":[ + // { + // "avgPrice":"8768.99999999484997", + // "base":"BTC", + // "clOrdID":null, + // "code":"FP", + // "commission":"0.00000913", + // "createTime":"2019-11-12T07:05:52.000Z, + // "cumQty":"100", + // "id":"114380149603028993", + // "isTriggered":false, + // "lastPrice":"8769", + // "lastQty":"100", + // "leavesQty":"0", + // "leverage":"1", + // "liqType":1, + // "marketPrice":"8769.75", + // "orderID":"wJXURIFBT", + // "orderQty":"100", + // "orderStatus":3, + // "orderType":1, + // "price":"8769.75", + // "quote":"USD", + // "rejectCode":0, + // "rejectReason":null, + // "settleType":"INVERSE", + // "side":2, + // "stopPrice":"0", + // "symbol":"BTCUSDFP", + // "transactTime":"2019-11-12T07:05:52.000Z, + // "updateTime":"2019-11-12T07:05:52.000Z, + // "timeInForce":1, + // "execInst": "", + // "userID":"216214" + // }, + // ], + // "pageNum":1, + // "pageSize":10, + // "total":21 + // }, + // "message":"success", + // "ts":1573546960172 + // } + // + const data = this.safeValue (response, 'data', {}); + const orders = this.safeValue (data, 'list', []); + return this.parseOrders (orders, market, since, limit); + } + + parseOrderStatus (status) { + const statuses = { + '0': 'open', // pending new + '1': 'open', // new + '2': 'open', // partially-filled + '3': 'closed', // filled + '4': 'canceled', // cancel-reject + '5': 'canceled', // canceled + '6': 'rejected', // rejected + '10': 'expired', // expired + '11': 'rejected', // business-reject + }; + return this.safeString (statuses, status, status); + } + + parseOrderType (status) { + const statuses = { + '1': 'market', + '2': 'limit', + '3': 'stop', + '4': 'stop-limit', + '7': 'stop-loss', + '8': 'take-profit', + }; + return this.safeString (statuses, status, status); + } + + parseTimeInForce (timeInForce) { + const timeInForces = { + '1': 'GTC', + '3': 'IOC', + '4': 'FOK', + }; + return this.safeString (timeInForces, timeInForce, timeInForce); + } + + parseOrder (order, market = undefined) { + // + // { + // "avgPrice":"8768.99999999484997", + // "base":"BTC", + // "clOrdID":null, + // "code":"FP", // futures only + // "commission":"0.00000913", + // "createTime":"2019-11-12T07:05:52.000Z, + // "cumQty":"100", + // "id":"114380149603028993", // futures only + // "isTriggered":false, + // "lastPrice":"8769", + // "lastQty":"100", + // "leavesQty":"0", + // "leverage":"1", // futures only + // "liqType":1, // futures only + // "marketPrice":"8769.75", // futures only + // "orderID":"wJXURIFBT", + // "orderQty":"100", + // "orderStatus":3, + // "orderType":1, + // "price":"8769.75", + // "quote":"USD", + // "rejectCode":0, + // "rejectReason":null, + // "settleType":"INVERSE", // futures only + // "side":2, + // "stopPrice":"0", + // "symbol":"BTCUSDFP", + // "transactTime":"2019-11-12T07:05:52.000Z, + // "updateTime":"2019-11-12T07:05:52.000Z, + // "timeInForce":1, + // "execInst": "", + // "userID":"216214" + // } + // + // sometimes the timestamp is returned in milliseconds + let timestamp = this.safeValue (order, 'createTime'); + if (typeof timestamp === 'string') { + timestamp = this.parse8601 (timestamp); + } + const status = this.parseOrderStatus (this.safeString (order, 'orderStatus')); + const type = this.parseOrderType (this.safeString (order, 'orderType')); + let side = this.safeString (order, 'side'); + if (side === '1') { + side = 'buy'; + } else if (side === '2') { + side = 'sell'; + } + const id = this.safeString (order, 'orderID'); + const clientOrderId = this.safeString (order, 'clOrdID'); + const marketId = this.safeString (order, 'symbol'); + market = this.safeMarket (marketId, market); + const symbol = market['symbol']; + const price = this.safeFloat (order, 'price'); + const stopPrice = this.safeFloat (order, 'stopPrice'); + const timeInForce = this.parseTimeInForce (this.safeString (order, 'timeInForce')); + const execInst = this.safeString (order, 'execInst'); + const postOnly = (execInst === 'Post-Only'); + const average = this.safeFloat (order, 'avgPrice'); + const amount = this.safeFloat (order, 'orderQty'); + const filled = this.safeFloat (order, 'cumQty'); + const remaining = this.safeString (order, 'leavesQty'); + let cost = undefined; + let lastTradeTimestamp = undefined; + if (filled !== undefined) { + if (price !== undefined) { + cost = filled * price; + } + if (filled > 0) { + lastTradeTimestamp = this.safeValue (order, 'transactTime'); + if (typeof lastTradeTimestamp === 'string') { + lastTradeTimestamp = this.parse8601 (lastTradeTimestamp); + } + } + } + let fee = undefined; + const feeCost = this.safeFloat (order, 'commission'); + if (feeCost !== undefined) { + let feeCurrency = undefined; + if (market !== undefined) { + if (side === 'buy') { + feeCurrency = market['base']; + } else if (side === 'sell') { + feeCurrency = market['quote']; + } + } + fee = { + 'currency': feeCurrency, + 'cost': feeCost, + }; + } + return { + 'id': id, + 'info': order, + 'clientOrderId': clientOrderId, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'lastTradeTimestamp': lastTradeTimestamp, + 'status': status, + 'symbol': symbol, + 'type': type, + 'timeInForce': timeInForce, + 'postOnly': postOnly, + 'side': side, + 'price': price, + 'stopPrice': stopPrice, + 'average': average, + 'amount': amount, + 'filled': filled, + 'remaining': remaining, + 'cost': cost, + 'trades': undefined, + 'fee': fee, + }; + } + + async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'pageNum': '1', + // 'pageSize': '10', + // 'symbol': market['id'], + // 'orderID': id, + // 'base': market['baseId'], + // 'quote': market['quoteId'], + // 'startDate': this.ymd (since), + // 'endDate': this.ymd (this.milliseconds()), + // 'orderType': undefined, // MARKET, LIMIT, STOP, STOP-LIMIT + // 'side': 'undefined', // BUY, SELL + }; + let method = undefined; + const defaultType = this.safeString2 (this.options, 'fetchMyTrades', 'defaultType', 'spot'); + let type = this.safeString (params, 'type', defaultType); + params = this.omit (params, 'type'); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['symbol'] = market['id']; + type = market['type']; + } + if (type === 'spot') { + method = 'privateGetSpotTrades'; + } else if (type === 'futures') { + method = 'privateGetFuturesTrades'; + } + if (limit !== undefined) { + request['pageSize'] = limit; // default 10 + } + if (since !== undefined) { + request['startDate'] = this.ymd (since); + } + const response = await this[method] (this.extend (request, params)); + // + // { + // "code":1, + // "data":{ + // "list":[ + // { + // "avgPrice":"1199.8", + // "base":"ETH", + // "clOrdID":null, + // "commission":"0.00002", + // "createTime":"2021-01-11T02:47:51.512Z", + // "cumQty":"0.02", + // "filledOrderID":"1eUD4F5rwK", + // "filledPrice":"1199.8", + // "filledQty":"0.02", + // "leavesQty":"0", + // "oCreateTime":"2021-01-11T02:47:51.377Z", + // "orderID":"1eUD4EHfdU", + // "orderQty":"0.02", + // "orderStatus":3, + // "orderType":1, + // "price":"1198.25", + // "quote":"USDT", + // "rejectCode":null, + // "rejectReason":null, + // "side":1, + // "stopPrice":"0", + // "symbol":"ETHUSDT", + // "taker":true, + // "tradeID":"E04WTIgfmULU", + // "transactTime":"2021-01-11T02:47:51.389Z", + // "updateTime":null, + // "userID":"1362494" + // } + // ], + // "pageNum":1, + // "pageSize":10, + // "total":1 + // }, + // "message":"success", + // "ts":1610333278042 + // } + // + const data = this.safeValue (response, 'data', {}); + const trades = this.safeValue (data, 'list', []); + return this.parseTrades (trades, market, since, limit); + } + + async fetchDepositAddress (code, params = {}) { + await this.loadMarkets (); + const currency = this.currency (code); + const request = { + 'currency': currency['id'], + // 'network': undefined, // 'ERC20 + }; + const response = await this.privateGetAccountDepositAddress (this.extend (request, params)); + // + // { + // "code":1, + // "data":{ + // "address":"0x080c5c667381404cca9be0be9a04b2e47691ff86", + // "tag":null, + // "currency":"USDT", + // "network":"ERC20" + // }, + // "message":"success", + // "ts":1610270465132 + // } + // + const data = this.safeValue (response, 'data', {}); + return this.parseDepositAddress (data, currency); + } + + parseDepositAddress (depositAddress, currency = undefined) { + // + // { + // "address":"0x080c5c667381404cca9be0be9a04b2e47691ff86", + // "tag":null, + // "currency":"USDT", + // "network":"ERC20" + // } + // + const address = this.safeString (depositAddress, 'address'); + const tag = this.safeString (depositAddress, 'tag'); + const currencyId = this.safeString (depositAddress, 'currency'); + const code = this.safeCurrencyCode (currencyId); + return { + 'info': depositAddress, + 'code': code, + 'address': address, + 'tag': tag, + }; + } + + nonce () { + return this.milliseconds (); + } + + sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { + let url = '/' + this.implodeParams (path, params); + const query = this.omit (params, this.extractParams (path)); + if (api === 'v1') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } else { + url = '/' + this.version + url; + if (api === 'public') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } else if (api === 'private') { + this.checkRequiredCredentials (); + const nonce = this.nonce ().toString (); + headers = { + 'X-ACCESS-KEY': this.apiKey, + 'X-ACCESS-NONCE': nonce, + }; + let auth = nonce + ':' + method; + if (method === 'GET') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + auth += url; + } else { + headers['Content-Type'] = 'application/json'; + body = this.json (query); + auth += url + body; + } + const signature = this.hmac (this.encode (auth), this.encode (this.secret)); + headers['X-ACCESS-SIGN'] = signature; + } + } + url = this.implodeParams (this.urls['api'][api], { 'hostname': this.hostname }) + url; + return { 'url': url, 'method': method, 'body': body, 'headers': headers }; + } + + handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { + if (response === undefined) { + return; // fallback to default error handler + } + // + // {"code":40102,"message":"Unauthorized(invalid key)"} + // + const errorCode = this.safeString (response, 'code'); + if ((errorCode !== undefined) && (errorCode !== '1')) { + const feedback = this.id + ' ' + this.json (response); + this.throwExactlyMatchedException (this.exceptions['exact'], errorCode, feedback); + this.throwBroadlyMatchedException (this.exceptions['broad'], body, feedback); + } + } +}; diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/acx.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/acx.js index 011921fa4..e10ec85ca 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/acx.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/acx.js @@ -346,6 +346,7 @@ module.exports = class acx extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': this.safeFloat (order, 'price'), 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/aofex.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/aofex.js index fb5e7f4a3..7899f09d5 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/aofex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/aofex.js @@ -132,6 +132,9 @@ module.exports = class aofex extends Exchange { 'show_all': '0', // '1' to show zero balances }, }, + 'commonCurrencies': { + 'CPC': 'Consensus Planet Coin', + }, }); } @@ -798,6 +801,7 @@ module.exports = class aofex extends Exchange { 'symbol': market['symbol'], 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/base/Exchange.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/base/Exchange.js index f231581ed..eb017b5bf 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/base/Exchange.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/base/Exchange.js @@ -411,20 +411,20 @@ module.exports = class Exchange { if (!!enabled) { // eslint-disable-line no-extra-boolean-cast if ('test' in this.urls) { if (typeof this.urls['api'] === 'string') { - this.urls['api_backup'] = this.urls['api'] + this.urls['apiBackup'] = this.urls['api'] this.urls['api'] = this.urls['test'] } else { - this.urls['api_backup'] = clone (this.urls['api']) + this.urls['apiBackup'] = clone (this.urls['api']) this.urls['api'] = clone (this.urls['test']) } } else { throw new NotSupported (this.id + ' does not have a sandbox URL') } - } else if ('api_backup' in this.urls) { + } else if ('apiBackup' in this.urls) { if (typeof this.urls['api'] === 'string') { - this.urls['api'] = this.urls['api_backup'] + this.urls['api'] = this.urls['apiBackup'] } else { - this.urls['api'] = clone (this.urls['api_backup']) + this.urls['api'] = clone (this.urls['apiBackup']) } } } @@ -576,34 +576,31 @@ module.exports = class Exchange { handleRestResponse (response, url, method = 'GET', requestHeaders = undefined, requestBody = undefined) { return response.text ().then ((responseBody) => { - - const json = this.parseJson (responseBody) - const responseHeaders = this.getResponseHeaders (response) - + const bodyText = this.onRestResponse (response.status, response.statusText, url, method, responseHeaders, responseBody, requestHeaders, requestBody); + const json = this.parseJson (bodyText) if (this.enableLastResponseHeaders) { this.last_response_headers = responseHeaders } - if (this.enableLastHttpResponse) { this.last_http_response = responseBody } - if (this.enableLastJsonResponse) { this.last_json_response = json } - if (this.verbose) { this.print ("handleRestResponse:\n", this.id, method, url, response.status, response.statusText, "\nResponse:\n", responseHeaders, "\n", responseBody, "\n") } - this.handleErrors (response.status, response.statusText, url, method, responseHeaders, responseBody, json, requestHeaders, requestBody) this.handleHttpStatusCode (response.status, response.statusText, url, method, responseBody) - return json || responseBody }) } + onRestResponse (statusCode, statusText, url, method, responseHeaders, responseBody, requestHeaders, requestBody) { + return responseBody.trim ().replace (/:(\d{15,}),/g, ':"$1",'); + } + setMarkets (markets, currencies = undefined) { const values = Object.values (markets).map ((market) => deepExtend ({ 'limits': this.limits, @@ -903,6 +900,10 @@ module.exports = class Exchange { return symbols.map ((symbol) => this.marketId (symbol)) } + currencyIds (codes) { + return codes.map ((code) => this.currencyId (code)) + } + symbol (symbol) { return this.market (symbol).symbol || symbol } @@ -1036,7 +1037,7 @@ module.exports = class Exchange { array = array.filter ((entry) => entry[key] >= since) } if (limit !== undefined && limit !== null) { - array = (tail && !sinceIsDefined) ? array.slice (-limit) : array.slice (0, limit) + array = tail ? array.slice (-limit) : array.slice (0, limit) } return array } @@ -1054,18 +1055,18 @@ module.exports = class Exchange { } if (limit !== undefined && limit !== null) { - array = (tail && !sinceIsDefined) ? array.slice (-limit) : array.slice (0, limit) + array = tail ? array.slice (-limit) : array.slice (0, limit) } return array } - filterBySymbolSinceLimit (array, symbol = undefined, since = undefined, limit = undefined) { - return this.filterByValueSinceLimit (array, 'symbol', symbol, since, limit) + filterBySymbolSinceLimit (array, symbol = undefined, since = undefined, limit = undefined, tail = false) { + return this.filterByValueSinceLimit (array, 'symbol', symbol, since, limit, 'timestamp', tail) } - filterByCurrencySinceLimit (array, code = undefined, since = undefined, limit = undefined) { - return this.filterByValueSinceLimit (array, 'currency', code, since, limit) + filterByCurrencySinceLimit (array, code = undefined, since = undefined, limit = undefined, tail = false) { + return this.filterByValueSinceLimit (array, 'currency', code, since, limit, 'timestamp', tail) } filterByArray (objects, key, values = undefined, indexed = true) { @@ -1095,7 +1096,8 @@ module.exports = class Exchange { let result = Object.values (trades || []).map ((trade) => this.extend (this.parseTrade (trade, market), params)) result = sortBy (result, 'timestamp') const symbol = (market !== undefined) ? market['symbol'] : undefined - return this.filterBySymbolSinceLimit (result, symbol, since, limit) + const tail = since === undefined + return this.filterBySymbolSinceLimit (result, symbol, since, limit, tail) } parseTransactions (transactions, currency = undefined, since = undefined, limit = undefined, params = {}) { @@ -1106,7 +1108,8 @@ module.exports = class Exchange { let result = Object.values (transactions || []).map ((transaction) => this.extend (this.parseTransaction (transaction, currency), params)) result = this.sortBy (result, 'timestamp'); const code = (currency !== undefined) ? currency['code'] : undefined; - return this.filterByCurrencySinceLimit (result, code, since, limit); + const tail = since === undefined; + return this.filterByCurrencySinceLimit (result, code, since, limit, tail); } parseLedger (data, currency = undefined, since = undefined, limit = undefined, params = {}) { @@ -1124,7 +1127,8 @@ module.exports = class Exchange { } result = this.sortBy (result, 'timestamp'); const code = (currency !== undefined) ? currency['code'] : undefined; - return this.filterByCurrencySinceLimit (result, code, since, limit); + const tail = since === undefined; + return this.filterByCurrencySinceLimit (result, code, since, limit, tail); } parseOrders (orders, market = undefined, since = undefined, limit = undefined, params = {}) { @@ -1154,7 +1158,8 @@ module.exports = class Exchange { Object.entries (orders).map (([ id, order ]) => this.extend (this.parseOrder (this.extend ({ 'id': id }, order), market), params)) result = sortBy (result, 'timestamp') const symbol = (market !== undefined) ? market['symbol'] : undefined - return this.filterBySymbolSinceLimit (result, symbol, since, limit) + const tail = since === undefined + return this.filterBySymbolSinceLimit (result, symbol, since, limit, tail) } safeCurrency (currencyId, currency = undefined) { @@ -1225,19 +1230,10 @@ module.exports = class Exchange { // if (!this.isArray (ohlcvs)) { // throw new ExchangeError (this.id + ' parseOHLCVs expected an array in the ohlcvs argument, but got ' + typeof ohlcvs); // } - ohlcvs = Object.values (ohlcvs || []) - const result = [] - for (let i = 0; i < ohlcvs.length; i++) { - if (limit && (result.length >= limit)) { - break; - } - const ohlcv = this.parseOHLCV (ohlcvs[i], market) - if (since && (ohlcv[0] < since)) { - continue - } - result.push (ohlcv) - } - return this.sortBy (result, 0) + const parsed = ohlcvs.map ((ohlcv) => this.parseOHLCV (ohlcv, market)) + const sorted = this.sortBy (parsed, 0) + const tail = since === undefined + return this.filterBySinceLimit (sorted, since, limit, 0, tail) } editLimitBuyOrder (id, symbol, ...args) { @@ -1260,20 +1256,20 @@ module.exports = class Exchange { return this.createOrder (symbol, ...args) } - createLimitOrder (symbol, ...args) { - return this.createOrder (symbol, 'limit', ...args) + createLimitOrder (symbol, side, amount, price = undefined, params = {}) { + return this.createOrder (symbol, 'limit', side, amount, price, params) } - createMarketOrder (symbol, ...args) { - return this.createOrder (symbol, 'market', ...args) + createMarketOrder (symbol, side, amount, price = undefined, params = {}) { + return this.createOrder (symbol, 'market', side, amount, price, params) } - createLimitBuyOrder (symbol, ...args) { - return this.createOrder (symbol, 'limit', 'buy', ...args) + createLimitBuyOrder (symbol, amount, price = undefined, params = {}) { + return this.createOrder (symbol, 'limit', 'buy', amount, price, params) } - createLimitSellOrder (symbol, ...args) { - return this.createOrder (symbol, 'limit', 'sell', ...args) + createLimitSellOrder (symbol, amount, price = undefined, params = {}) { + return this.createOrder (symbol, 'limit', 'sell', amount, price, params) } createMarketBuyOrder (symbol, amount, params = {}) { @@ -1285,7 +1281,7 @@ module.exports = class Exchange { } costToPrecision (symbol, cost) { - return decimalToPrecision (cost, ROUND, this.markets[symbol].precision.price, this.precisionMode, this.paddingMode) + return decimalToPrecision (cost, TRUNCATE, this.markets[symbol].precision.price, this.precisionMode, this.paddingMode) } priceToPrecision (symbol, price) { @@ -1372,7 +1368,7 @@ module.exports = class Exchange { // still takes the input as a hex string // same as above but returns a string instead of an object const signature = this.signMessage (message, privateKey) - return signature['r'] + this.remove0xPrefix (signature['s']) + this.binaryToBase16 (this.numberToBE (signature['v'])); + return signature['r'] + this.remove0xPrefix (signature['s']) + this.binaryToBase16 (this.numberToBE (signature['v'])) } oath () { @@ -1396,5 +1392,74 @@ module.exports = class Exchange { integerPow (a, b) { return new BN (a).pow (new BN (b)) } -} + safeOrder (order) { + // Cost + // Remaining + // Average + // Price + // Amount + // Filled + // + // First we try to calculate filled from the trades + const parseFilled = order['filled'] === undefined; + const parseCost = order['cost'] === undefined; + if (parseFilled) { + order['filled'] = 0 + } + if (parseCost) { + order['cost'] = 0 + } + if (parseFilled || parseCost) { + if (Array.isArray (order['trades'])) { + for (let i = 0; i < order['trades'].length; i++) { + const trade = order['trades'][i] + if (parseFilled) { + order['filled'] = this.sum (order['filled'], trade['amount']) + } + if (parseCost) { + order['cost'] = this.sum (order['cost'], trade['cost']) + } + } + } + } + // We ensure amount = filled + remaining + if (order['amount'] === undefined) { + if (order['filled'] !== undefined && order['remaining'] !== undefined) { + order['amount'] = this.sum (order['filled'], order['remaining']) + } + } + if (order['filled'] === undefined) { + if (order['amount'] !== undefined && order['remaining'] !== undefined) { + order['filled'] = Math.max (this.sum (order['amount'], -order['remaining']), 0) + } + } + if (order['remaining'] === undefined) { + if (order['amount'] !== undefined && order['filled'] !== undefined) { + order['remaining'] = Math.max (this.sum (order['amount'], -order['filled']), 0) + } + } + // We ensure that the average field is calculated correctly + if (order['average'] === undefined) { + if (order['filled'] !== undefined && order['cost'] !== undefined && order['cost'] > 0) { + order['average'] = order['filled'] / order['cost'] + } + } + // We also ensure the cost field is calculated correctly + const costPriceExists = (order['average'] !== undefined) || (order['price'] !== undefined) + if ((order['filled'] !== undefined) && costPriceExists) { + let costPrice = undefined; + if (order['average'] === undefined) { + costPrice = order['price'] + } else { + costPrice = order['average'] + } + order['cost'] = costPrice * order['filled'] + } + // We add support for market orders + if (order['price'] === undefined && order['type'] === 'market') { + order['price'] = order['average'] + } + return order + } +} diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/base/errors.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/base/errors.js index 25a28580a..5248e49d0 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/base/errors.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/base/errors.js @@ -30,6 +30,10 @@ function subclass (BaseClass, classes, namespace = {}) { this.__proto__ = Class.prototype this.name = className this.message = message + + // https://github.com/Microsoft/TypeScript/wiki/FAQ#why-doesnt-extending-built-ins-like-error-array-and-map-work + + Object.setPrototypeOf (this, Class.prototype) } } diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/base/functions/string.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/base/functions/string.js index cabc63b48..ba9601a12 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/base/functions/string.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/base/functions/string.js @@ -1,21 +1,18 @@ "use strict"; -/* ------------------------------------------------------------------------ */ +// ---------------------------------------------------------------------------- -const uuid = a => a ? (a ^ Math.random () * 16 >> a / 4).toString (16) - : ([1e7]+-1e3+-4e3+-8e3+-1e11).replace (/[018]/g, uuid) +const uuid = a => a ? (a ^ Math.random () * 16 >> a / 4).toString (16) : ([1e7]+-1e3+-4e3+-8e3+-1e11).replace (/[018]/g, uuid) +const uuid22 = a => a ? (a ^ Math.random () * 16 >> a / 4).toString (16) : ([1e7]+1e3+4e3+8e5).replace (/[018]/g, uuid22) -module.exports = +// ---------------------------------------------------------------------------- - { uuid +module.exports = { - // hasFetchOHLCV → has_fetch_ohlcv; parseHTTPResponse → parse_http_response + uuid + , uuid22 + // hasFetchOHLCV → has_fetch_ohlcv; parseHTTPResponse → parse_http_response , unCamelCase: s => s.match (/^[A-Z0-9_]+$/) ? s : (s.replace (/[a-z0-9][A-Z]/g, x => x[0] + '_' + x[1]).replace(/[A-Z0-9][A-Z0-9][a-z]/g, x => x[0] + '_' + x[1] + x[2]).toLowerCase ()) - - , capitalize: s => s.length - ? (s.charAt (0).toUpperCase () + s.slice (1)) - : s + , capitalize: s => s.length ? (s.charAt (0).toUpperCase () + s.slice (1)) : s , strip: s => s.replace(/^\s+|\s+$/g, '') - } - -/* ------------------------------------------------------------------------ */ +} diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bcex.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bcex.js deleted file mode 100644 index 22eb628a3..000000000 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bcex.js +++ /dev/null @@ -1,687 +0,0 @@ -'use strict'; - -// --------------------------------------------------------------------------- - -const Exchange = require ('./base/Exchange'); -const { ExchangeError, ArgumentsRequired, AuthenticationError, InsufficientFunds, InvalidOrder, OrderNotFound } = require ('./base/errors'); - -// --------------------------------------------------------------------------- - -module.exports = class bcex extends Exchange { - describe () { - return this.deepExtend (super.describe (), { - 'id': 'bcex', - 'name': 'BCEX', - 'countries': [ 'CN', 'HK' ], - 'version': '1', - 'has': { - 'cancelOrder': true, - 'createOrder': true, - 'fetchBalance': true, - 'fetchClosedOrders': 'emulated', - 'fetchMarkets': true, - 'fetchMyTrades': true, - 'fetchOpenOrders': true, - 'fetchOrder': true, - 'fetchOrders': true, - 'fetchOrderBook': true, - 'fetchTicker': true, - 'fetchTickers': false, - 'fetchTrades': true, - 'fetchTradingLimits': true, - }, - 'urls': { - 'logo': 'https://user-images.githubusercontent.com/51840849/77231516-851c6900-6bac-11ea-8fd6-ee5c23eddbd4.jpg', - 'api': 'https://www.bcex.top', - 'www': 'https://www.bcex.top', - 'doc': 'https://github.com/BCEX-TECHNOLOGY-LIMITED/API_Docs/wiki/Interface', - 'fees': 'https://bcex.udesk.cn/hc/articles/57085', - 'referral': 'https://www.bcex.top/register?invite_code=758978&lang=en', - }, - 'status': { - 'status': 'error', - 'updated': undefined, - 'eta': undefined, - 'url': undefined, - }, - 'api': { - 'public': { - 'get': [ - 'Api_Market/getPriceList', // tickers - 'Api_Order/ticker', // last ohlcv candle (ticker) - 'Api_Order/depth', // orderbook - 'Api_Market/getCoinTrade', // ticker - 'Api_Order/marketOrder', // trades... - ], - 'post': [ - 'Api_Market/getPriceList', // tickers - 'Api_Order/ticker', // last ohlcv candle (ticker) - 'Api_Order/depth', // orderbook - 'Api_Market/getCoinTrade', // ticker - 'Api_Order/marketOrder', // trades... - ], - }, - 'private': { - 'post': [ - 'Api_Order/cancel', - 'Api_Order/coinTrust', // limit order - 'Api_Order/orderList', // open / all orders (my trades?) - 'Api_Order/orderInfo', - 'Api_Order/tradeList', // open / all orders - 'Api_Order/trustList', // ? - 'Api_User/userBalance', - ], - }, - }, - 'fees': { - 'trading': { - 'tierBased': false, - 'percentage': true, - 'maker': 0.1 / 100, - 'taker': 0.2 / 100, - }, - 'funding': { - 'tierBased': false, - 'percentage': false, - 'withdraw': { - 'ckusd': 0.0, - 'other': 0.05 / 100, - }, - 'deposit': {}, - }, - }, - 'exceptions': { - '该币不存在,非法操作': ExchangeError, // { code: 1, msg: "该币不存在,非法操作" } - returned when a required symbol parameter is missing in the request (also, maybe on other types of errors as well) - '公钥不合法': AuthenticationError, // { code: 1, msg: '公钥不合法' } - wrong public key - '您的可用余额不足': InsufficientFunds, // { code: 1, msg: '您的可用余额不足' } - your available balance is insufficient - '您的btc不足': InsufficientFunds, // { code: 1, msg: '您的btc不足' } - your btc is insufficient - '参数非法': InvalidOrder, // {'code': 1, 'msg': '参数非法'} - 'Parameter illegal' - '订单信息不存在': OrderNotFound, // {'code': 1, 'msg': '订单信息不存在'} - 'Order information does not exist' - }, - 'commonCurrencies': { - 'UNI': 'UNI COIN', - 'PNT': 'Penta', - }, - 'options': { - 'limits': { - // hardcoding is deprecated, using these predefined values is not recommended, use loadTradingLimits instead - 'AFC/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 6, 'max': 120000 }}}, - 'AFC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 6, 'max': 120000 }}}, - 'AFT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 15, 'max': 300000 }}}, - 'AICC/CNET': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 5, 'max': 50000 }}}, - 'AIDOC/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 5, 'max': 100000 }}}, - 'AISI/ETH': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.001, 'max': 500 }}}, - 'AIT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 20, 'max': 400000 }}}, - 'ANS/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.1, 'max': 500 }}}, - 'ANS/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.1, 'max': 1000 }}}, - 'ARC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 60, 'max': 600000 }}}, - 'AXF/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 100, 'max': 1000000 }}}, - 'BASH/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 250, 'max': 3000000 }}}, - 'BATT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 60, 'max': 1500000 }}}, - 'BCD/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 0.3, 'max': 7000 }}}, - 'BHPC/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 2, 'max': 70000 }}}, - 'BHPC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 2, 'max': 60000 }}}, - 'BOPO/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 100, 'max': 2000000 }}}, - 'BOPO/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 100, 'max': 10000000 }}}, - 'BTC/CKUSD': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.001, 'max': 10 }}}, - 'BTC/CNET': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.0005, 'max': 5 }}}, - 'BTC/USDT': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.0002, 'max': 4 }}}, - 'BTE/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 25, 'max': 250000 }}}, - 'BU/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 20, 'max': 400000 }}}, - 'CIC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 3000, 'max': 30000000 }}}, - 'CIT/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 4, 'max': 40000 }}}, - 'CIT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 4, 'max': 40000 }}}, - 'CMT/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 5, 'max': 2500000 }}}, - 'CNET/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 12, 'max': 120000 }}}, - 'CNMC/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 4, 'max': 50000 }}}, - 'CTC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 5, 'max': 550000 }}}, - 'CZR/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 12, 'max': 500000 }}}, - 'DCON/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 8, 'max': 300000 }}}, - 'DCT/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 2, 'max': 40000 }}}, - 'DCT/CKUSD': { 'precision': { 'amount': 2, 'price': 3 }, 'limits': { 'amount': { 'min': 2, 'max': 2000 }}}, - 'DOGE/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 3000, 'max': 14000000 }}}, - 'DOGE/CKUSD': { 'precision': { 'amount': 2, 'price': 6 }, 'limits': { 'amount': { 'min': 500, 'max': 2000000 }}}, - 'DRCT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 16, 'max': 190000 }}}, - 'ELA/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 0.02, 'max': 500 }}}, - 'ELF/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 0.1, 'max': 100000 }}}, - 'ELF/CKUSD': { 'precision': { 'amount': 2, 'price': 3 }, 'limits': { 'amount': { 'min': 0.01, 'max': 100000 }}}, - 'EOS/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.5, 'max': 5000 }}}, - 'EOS/CNET': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 2.5, 'max': 30000 }}}, - 'EOS/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 0.18, 'max': 1800 }}}, - 'ETC/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.2, 'max': 2500 }}}, - 'ETC/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.2, 'max': 2500 }}}, - 'ETF/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 7, 'max': 150000 }}}, - 'ETH/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.015, 'max': 100 }}}, - 'ETH/CKUSD': { 'precision': { 'amount': 4, 'price': 4 }, 'limits': { 'amount': { 'min': 0.005, 'max': 100 }}}, - 'ETH/USDT': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.005, 'max': 100 }}}, - 'FCT/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.24, 'max': 1000 }}}, - 'FCT/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.24, 'max': 1000 }}}, - 'GAME/CNET': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 1, 'max': 10000 }}}, - 'GOOC/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 200, 'max': 2000000 }}}, - 'GP/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 600, 'max': 6000000 }}}, - 'HSC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 1000, 'max': 20000000 }}}, - 'IFISH/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 300, 'max': 8000000 }}}, - 'IIC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 50, 'max': 4000000 }}}, - 'IMOS/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 15, 'max': 300000 }}}, - 'JC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 300, 'max': 3000000 }}}, - 'LBTC/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 0.1, 'max': 3000 }}}, - 'LEC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 500, 'max': 5000000 }}}, - 'LKY/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 10, 'max': 70000 }}}, - 'LKY/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 10, 'max': 100000 }}}, - 'LMC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 25, 'max': 250000 }}}, - 'LSK/CNET': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.3, 'max': 3000 }}}, - 'LTC/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.01, 'max': 500 }}}, - 'LTC/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.01, 'max': 500 }}}, - 'LTC/USDT': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.02, 'max': 450 }}}, - 'MC/CNET': { 'precision': { 'amount': 2, 'price': 6 }, 'limits': { 'amount': { 'min': 10000, 'max': 100000000 }}}, - 'MCC/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 30, 'max': 350000 }}}, - 'MOC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 25, 'max': 600000 }}}, - 'MRYC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 300, 'max': 3000000 }}}, - 'MT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 200, 'max': 6000000 }}}, - 'MXI/CNET': { 'precision': { 'amount': 2, 'price': 6 }, 'limits': { 'amount': { 'min': 5000, 'max': 60000000 }}}, - 'NAI/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 10, 'max': 100000 }}}, - 'NAS/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.2, 'max': 15000 }}}, - 'NAS/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.5, 'max': 5000 }}}, - 'NEWOS/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 65, 'max': 700000 }}}, - 'NKN/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 3, 'max': 350000 }}}, - 'NTK/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 2, 'max': 30000 }}}, - 'ONT/CKUSD': { 'precision': { 'amount': 2, 'price': 3 }, 'limits': { 'amount': { 'min': 0.2, 'max': 2000 }}}, - 'ONT/ETH': { 'precision': { 'amount': 3, 'price': 8 }, 'limits': { 'amount': { 'min': 0.01, 'max': 1000 }}}, - 'PNT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 80, 'max': 800000 }}}, - 'PST/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 5, 'max': 100000 }}}, - 'PTT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 450, 'max': 10000000 }}}, - 'QTUM/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.4, 'max': 2800 }}}, - 'QTUM/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.1, 'max': 1000 }}}, - 'RATING/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 500, 'max': 10000000 }}}, - 'RHC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 1000, 'max': 10000000 }}}, - 'SDA/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 20, 'max': 500000 }}}, - 'SDD/CKUSD': { 'precision': { 'amount': 2, 'price': 3 }, 'limits': { 'amount': { 'min': 10, 'max': 100000 }}}, - 'SHC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 250, 'max': 2500000 }}}, - 'SHE/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 100, 'max': 5000000 }}}, - 'SMC/CNET': { 'precision': { 'amount': 2, 'price': 6 }, 'limits': { 'amount': { 'min': 1000, 'max': 10000000 }}}, - 'SOP/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 50, 'max': 1000000 }}}, - 'TAC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 35, 'max': 800000 }}}, - 'TIP/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 7, 'max': 200000 }}}, - 'TKT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 40, 'max': 400000 }}}, - 'TLC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 500, 'max': 10000000 }}}, - 'TNC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 10, 'max': 110000 }}}, - 'TUB/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 200, 'max': 8000000 }}}, - 'UC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 100, 'max': 3000000 }}}, - 'UDB/CNET': { 'precision': { 'amount': 2, 'price': 6 }, 'limits': { 'amount': { 'min': 2000, 'max': 40000000 }}}, - 'UIC/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 5, 'max': 150000 }}}, - 'VAAC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 10, 'max': 250000 }}}, - 'VPN/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 200, 'max': 2000000 }}}, - 'VSC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 30, 'max': 650000 }}}, - 'WAVES/CKUSD': { 'precision': { 'amount': 2, 'price': 3 }, 'limits': { 'amount': { 'min': 0.15, 'max': 1500 }}}, - 'WDNA/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 100, 'max': 250000 }}}, - 'WIC/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 3, 'max': 30000 }}}, - 'XAS/CNET': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 2.5, 'max': 25000 }}}, - 'XLM/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 10, 'max': 300000 }}}, - 'XLM/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 1, 'max': 300000 }}}, - 'XLM/USDT': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 5, 'max': 150000 }}}, - 'XRP/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 24, 'max': 100000 }}}, - 'XRP/CKUSD': { 'precision': { 'amount': 2, 'price': 3 }, 'limits': { 'amount': { 'min': 5, 'max': 50000 }}}, - 'YBCT/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 15, 'max': 200000 }}}, - 'YBCT/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 10, 'max': 200000 }}}, - 'YBY/CNET': { 'precision': { 'amount': 2, 'price': 6 }, 'limits': { 'amount': { 'min': 25000, 'max': 250000000 }}}, - 'ZEC/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.02, 'max': 100 }}}, - 'ZEC/CKUSD': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.02, 'max': 100 }}}, - }, - }, - }); - } - - async fetchTradingLimits (symbols = undefined, params = {}) { - // this method should not be called directly, use loadTradingLimits () instead - // by default it will try load withdrawal fees of all currencies (with separate requests, sequentially) - // however if you define symbols = [ 'ETH/BTC', 'LTC/BTC' ] in args it will only load those - await this.loadMarkets (); - if (symbols === undefined) { - symbols = this.symbols; - } - const result = {}; - for (let i = 0; i < symbols.length; i++) { - const symbol = symbols[i]; - result[symbol] = await this.fetchTradingLimitsById (this.marketId (symbol), params); - } - return result; - } - - async fetchTradingLimitsById (id, params = {}) { - const request = { - 'symbol': id, - }; - const response = await this.publicPostApiOrderTicker (this.extend (request, params)); - // - // { code: 0, - // msg: "获取牌价信息成功", - // data: { high: 0.03721392, - // low: 0.03335362, - // buy: "0.03525757", - // sell: "0.03531160", - // last: 0.0352634, - // vol: "184742.4176", - // min_trade: "0.01500000", - // max_trade: "100.00000000", - // number_float: "4", - // price_float: "8" } } } - // - return this.parseTradingLimits (this.safeValue (response, 'data', {})); - } - - parseTradingLimits (limits, symbol = undefined, params = {}) { - // - // { high: 0.03721392, - // low: 0.03335362, - // buy: "0.03525757", - // sell: "0.03531160", - // last: 0.0352634, - // vol: "184742.4176", - // min_trade: "0.01500000", - // max_trade: "100.00000000", - // number_float: "4", - // price_float: "8" } - // - return { - 'info': limits, - 'precision': { - 'amount': this.safeInteger (limits, 'number_float'), - 'price': this.safeInteger (limits, 'price_float'), - }, - 'limits': { - 'amount': { - 'min': this.safeFloat (limits, 'min_trade'), - 'max': this.safeFloat (limits, 'max_trade'), - }, - }, - }; - } - - async fetchMarkets (params = {}) { - const response = await this.publicGetApiMarketGetPriceList (params); - const result = []; - const keys = Object.keys (response); - for (let i = 0; i < keys.length; i++) { - const currentMarketId = keys[i]; - const currentMarkets = response[currentMarketId]; - for (let j = 0; j < currentMarkets.length; j++) { - const market = currentMarkets[j]; - const baseId = this.safeString (market, 'coin_from'); - const quoteId = this.safeString (market, 'coin_to'); - let base = baseId.toUpperCase (); - let quote = quoteId.toUpperCase (); - base = this.safeCurrencyCode (base); - quote = this.safeCurrencyCode (quote); - const id = baseId + '2' + quoteId; - const symbol = base + '/' + quote; - const active = true; - const defaults = this.safeValue (this.options['limits'], symbol, {}); - result.push (this.extend ({ - 'id': id, - 'symbol': symbol, - 'base': base, - 'quote': quote, - 'baseId': baseId, - 'quoteId': quoteId, - 'active': active, - // overrided by defaults from this.options['limits'] - 'precision': { - 'amount': undefined, - 'price': undefined, - }, - // overrided by defaults from this.options['limits'] - 'limits': { - 'amount': { 'min': undefined, 'max': undefined }, - 'price': { 'min': undefined, 'max': undefined }, - 'cost': { 'min': undefined, 'max': undefined }, - }, - 'info': market, - }, defaults)); - } - } - return result; - } - - parseTrade (trade, market = undefined) { - let symbol = undefined; - if (market !== undefined) { - symbol = market['symbol']; - } - const timestamp = this.safeTimestamp2 (trade, 'date', 'created'); - const id = this.safeString (trade, 'tid'); - const orderId = this.safeString (trade, 'order_id'); - const amount = this.safeFloat2 (trade, 'number', 'amount'); - const price = this.safeFloat (trade, 'price'); - let cost = undefined; - if (price !== undefined) { - if (amount !== undefined) { - cost = amount * price; - } - } - let side = this.safeString (trade, 'side'); - if (side === 'sale') { - side = 'sell'; - } - return { - 'info': trade, - 'id': id, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'symbol': symbol, - 'type': undefined, - 'side': side, - 'price': price, - 'amount': amount, - 'cost': cost, - 'order': orderId, - 'fee': undefined, - 'takerOrMaker': undefined, - }; - } - - async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const request = { - 'symbol': this.marketId (symbol), - }; - if (limit !== undefined) { - request['limit'] = limit; - } - const market = this.market (symbol); - const response = await this.publicPostApiOrderMarketOrder (this.extend (request, params)); - return this.parseTrades (response['data'], market, since, limit); - } - - async fetchBalance (params = {}) { - await this.loadMarkets (); - const response = await this.privatePostApiUserUserBalance (params); - const data = this.safeValue (response, 'data'); - let keys = Object.keys (data); - const result = { }; - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - const amount = this.safeFloat (data, key); - const parts = key.split ('_'); - const currencyId = parts[0]; - const lockOrOver = parts[1]; - const code = this.safeCurrencyCode (currencyId); - if (!(code in result)) { - result[code] = this.account (); - } - if (lockOrOver === 'lock') { - result[code]['used'] = parseFloat (amount); - } else { - result[code]['free'] = parseFloat (amount); - } - } - keys = Object.keys (result); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - const total = this.sum (result[key]['used'], result[key]['free']); - result[key]['total'] = total; - } - result['info'] = data; - return this.parseBalance (result); - } - - async fetchTicker (symbol, params = {}) { - await this.loadMarkets (); - const market = this.markets[symbol]; - const request = { - 'part': market['quoteId'], - 'coin': market['baseId'], - }; - const response = await this.publicPostApiMarketGetCoinTrade (this.extend (request, params)); - const timestamp = this.milliseconds (); - return { - 'symbol': symbol, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'high': this.safeFloat (response, 'max'), - 'low': this.safeFloat (response, 'min'), - 'bid': this.safeFloat (response, 'buy'), - 'bidVolume': undefined, - 'ask': this.safeFloat (response, 'sale'), - 'askVolume': undefined, - 'vwap': undefined, - 'open': undefined, - 'close': this.safeFloat (response, 'price'), - 'last': this.safeFloat (response, 'price'), - 'previousClose': undefined, - 'change': undefined, - 'percentage': this.safeFloat (response, 'change_24h'), - 'average': undefined, - 'baseVolume': this.safeFloat (response, 'volume_24h'), - 'quoteVolume': undefined, - 'info': response, - }; - } - - async fetchOrderBook (symbol, limit = undefined, params = {}) { - await this.loadMarkets (); - const marketId = this.marketId (symbol); - const request = { - 'symbol': marketId, - }; - const response = await this.publicPostApiOrderDepth (this.extend (request, params)); - const data = this.safeValue (response, 'data'); - const timestamp = this.safeTimestamp (data, 'date'); - return this.parseOrderBook (data, timestamp); - } - - async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const market = this.market (symbol); - const request = { - 'symbol': market['id'], - }; - const response = await this.privatePostApiOrderOrderList (this.extend (request, params)); - return this.parseTrades (response['data'], market, since, limit); - } - - parseOrderStatus (status) { - const statuses = { - '0': 'open', - '1': 'open', // partially filled - '2': 'closed', - '3': 'canceled', - }; - return this.safeString (statuses, status, status); - } - - async fetchOrder (id, symbol = undefined, params = {}) { - if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a `symbol` argument'); - } - await this.loadMarkets (); - const request = { - 'symbol': this.marketId (symbol), - 'trust_id': id, - }; - const response = await this.privatePostApiOrderOrderInfo (this.extend (request, params)); - const order = this.safeValue (response, 'data'); - const timestamp = this.safeTimestamp (order, 'created'); - const status = this.parseOrderStatus (this.safeString (order, 'status')); - let side = this.safeString (order, 'flag'); - if (side === 'sale') { - side = 'sell'; - } - // Can't use parseOrder because the data format is different btw endpoint for fetchOrder and fetchOrders - return { - 'info': order, - 'id': id, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'lastTradeTimestamp': undefined, - 'symbol': symbol, - 'type': undefined, - 'side': side, - 'price': this.safeFloat (order, 'price'), - 'cost': undefined, - 'average': this.safeFloat (order, 'avg_price'), - 'amount': this.safeFloat (order, 'number'), - 'filled': this.safeFloat (order, 'numberdeal'), - 'remaining': this.safeFloat (order, 'numberover'), - 'status': status, - 'fee': undefined, - 'clientOrderId': undefined, - 'trades': undefined, - }; - } - - parseOrder (order, market = undefined) { - const id = this.safeString (order, 'id'); - const timestamp = this.safeTimestamp (order, 'datetime'); - let symbol = undefined; - if (market !== undefined) { - symbol = market['symbol']; - } - const type = undefined; - let side = this.safeString (order, 'type'); - if (side === 'sale') { - side = 'sell'; - } - const price = this.safeFloat (order, 'price'); - const average = this.safeFloat (order, 'avg_price'); - const amount = this.safeFloat (order, 'amount'); - const remaining = this.safeFloat (order, 'amount_outstanding'); - const filled = amount - remaining; - const status = this.parseOrderStatus (this.safeString (order, 'status')); - const cost = filled * price; - const fee = undefined; - const result = { - 'info': order, - 'id': id, - 'clientOrderId': undefined, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'lastTradeTimestamp': undefined, - 'symbol': symbol, - 'type': type, - 'timeInForce': undefined, - 'side': side, - 'price': price, - 'stopPrice': undefined, - 'cost': cost, - 'average': average, - 'amount': amount, - 'filled': filled, - 'remaining': remaining, - 'status': status, - 'fee': fee, - 'trades': undefined, - }; - return result; - } - - async fetchOrdersByType (type, symbol = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const request = { - 'type': type, - }; - let market = undefined; - if (symbol !== undefined) { - market = this.market (symbol); - request['symbol'] = market['id']; - } - const response = await this.privatePostApiOrderTradeList (this.extend (request, params)); - if ('data' in response) { - return this.parseOrders (response['data'], market, since, limit); - } - return []; - } - - async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - return this.fetchOrdersByType ('open', symbol, since, limit, params); - } - - async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - const orders = await this.fetchOrders (symbol, since, limit, params); - return this.filterBy (orders, 'status', 'closed'); - } - - async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - return this.fetchOrdersByType ('all', symbol, since, limit, params); - } - - async createOrder (symbol, type, side, amount, price = undefined, params = {}) { - await this.loadMarkets (); - const request = { - 'symbol': this.marketId (symbol), - 'type': side, - 'price': this.priceToPrecision (symbol, price), - 'number': this.amountToPrecision (symbol, amount), - }; - const response = await this.privatePostApiOrderCoinTrust (this.extend (request, params)); - const data = this.safeValue (response, 'data', {}); - const id = this.safeString (data, 'order_id'); - return { - 'info': response, - 'id': id, - }; - } - - async cancelOrder (id, symbol = undefined, params = {}) { - if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a `symbol` argument'); - } - await this.loadMarkets (); - const request = {}; - if (symbol !== undefined) { - request['symbol'] = this.marketId (symbol); - } - if (id !== undefined) { - request['order_id'] = id; - } - return await this.privatePostApiOrderCancel (this.extend (request, params)); - } - - sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { - let url = this.urls['api'] + '/' + this.implodeParams (path, params); - const query = this.omit (params, this.extractParams (path)); - if (api === 'public') { - if (Object.keys (query).length) { - url += '?' + this.urlencode (query); - } - } else { - this.checkRequiredCredentials (); - let payload = this.urlencode ({ 'api_key': this.apiKey }); - if (Object.keys (query).length) { - payload += '&' + this.urlencode (this.keysort (query)); - } - const auth = payload + '&secret_key=' + this.secret; - const signature = this.hash (this.encode (auth)); - body = payload + '&sign=' + signature; - headers = { - 'Content-Type': 'application/x-www-form-urlencoded', - }; - } - return { 'url': url, 'method': method, 'body': body, 'headers': headers }; - } - - handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { - if (response === undefined) { - return; // fallback to default error handler - } - const errorCode = this.safeValue (response, 'code'); - if (errorCode !== undefined) { - if (errorCode !== 0) { - // - // { code: 1, msg: "该币不存在,非法操作" } - returned when a required symbol parameter is missing in the request (also, maybe on other types of errors as well) - // { code: 1, msg: '公钥不合法' } - wrong public key - // { code: 1, msg: '价格输入有误,请检查你的数值精度' } - 'The price input is incorrect, please check your numerical accuracy' - // { code: 1, msg: '单笔最小交易数量不能小于0.00100000,请您重新挂单'} - - // 'The minimum number of single transactions cannot be less than 0.00100000. Please re-post the order' - // - const message = this.safeString (response, 'msg'); - const feedback = this.id + ' ' + message; - this.throwExactlyMatchedException (this.exceptions, message, feedback); - if (message.indexOf ('请您重新挂单') >= 0) { // minimum limit - throw new InvalidOrder (feedback); - } else { - throw new ExchangeError (feedback); - } - } - } - } -}; diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bibox.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bibox.js index 5f1e30c04..4d46d8f35 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bibox.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bibox.js @@ -3,7 +3,7 @@ // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { ExchangeError, AccountSuspended, ArgumentsRequired, AuthenticationError, DDoSProtection, ExchangeNotAvailable, InvalidOrder, OrderNotFound, PermissionDenied, InsufficientFunds, BadSymbol } = require ('./base/errors'); +const { ExchangeError, AccountSuspended, ArgumentsRequired, AuthenticationError, DDoSProtection, ExchangeNotAvailable, InvalidOrder, OrderNotFound, PermissionDenied, InsufficientFunds, BadSymbol, RateLimitExceeded, BadRequest } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -71,6 +71,7 @@ module.exports = class bibox extends Exchange { 'get': [ 'cquery', 'mdata', + 'cdata', ], }, 'private': { @@ -108,9 +109,16 @@ module.exports = class bibox extends Exchange { '2021': InsufficientFunds, // Insufficient balance available for withdrawal '2027': InsufficientFunds, // Insufficient balance available (for trade) '2033': OrderNotFound, // operation failed! Orders have been completed or revoked + '2065': InvalidOrder, // Precatory price is exorbitant, please reset + '2066': InvalidOrder, // Precatory price is low, please reset '2067': InvalidOrder, // Does not support market orders '2068': InvalidOrder, // The number of orders can not be less than + '2078': InvalidOrder, // unvalid order price '2085': InvalidOrder, // Order quantity is too small + '2091': RateLimitExceeded, // request is too frequency, please try again later + '2092': InvalidOrder, // Minimum amount not met + '3000': BadRequest, // Requested parameter incorrect + '3002': BadRequest, // Parameter cannot be null '3012': AuthenticationError, // invalid apiKey '3016': BadSymbol, // Trading pair error '3024': PermissionDenied, // wrong apikey permissions @@ -124,6 +132,10 @@ module.exports = class bibox extends Exchange { 'KEY': 'Bihu', 'MTC': 'MTC Mesh Network', // conflict with MTC Docademic doc.com Token https://github.com/ccxt/ccxt/issues/6081 https://github.com/ccxt/ccxt/issues/3025 'PAI': 'PCHAIN', + 'TERN': 'Ternio-ERC20', + }, + 'options': { + 'fetchCurrencies': 'fetch_currencies_public', // or 'fetch_currencies_private' with apiKey and secret }, }); } @@ -423,6 +435,78 @@ module.exports = class bibox extends Exchange { } async fetchCurrencies (params = {}) { + const method = this.safeString (this.options, 'fetchCurrencies', 'fetch_currencies_public'); + return await this[method] (params); + } + + async fetchCurrenciesPublic (params = {}) { + const request = { + 'cmd': 'currencies', + }; + const response = await this.publicGetCdata (this.extend (request, params)); + // + // publicGetCdata + // + // { + // "result":[ + // { + // "symbol":"BTC", + // "name":"BTC", + // "valid_decimals":8, + // "original_decimals":8, + // "is_erc20":0, + // "enable_withdraw":1, + // "enable_deposit":1, + // "withdraw_min":0.005, + // "describe_summary":"[{\"lang\":\"zh-cn\",\"text\":\"Bitcoin 比特币的概念最初由中本聪在2009年提出,是点对点的基于 SHA-256 算法的一种P2P形式的数字货币,点对点的传输意味着一个去中心化的支付系统。\"},{\"lang\":\"en-ww\",\"text\":\"Bitcoin is a digital asset and a payment system invented by Satoshi Nakamoto who published a related paper in 2008 and released it as open-source software in 2009. The system featured as peer-to-peer; users can transact directly without an intermediary.\"}]" + // } + // ], + // "cmd":"currencies" + // } + // + const currencies = this.safeValue (response, 'result'); + const result = {}; + for (let i = 0; i < currencies.length; i++) { + const currency = currencies[i]; + const id = this.safeString (currency, 'symbol'); + const name = this.safeString (currency, 'name'); // contains hieroglyphs causing python ASCII bug + const code = this.safeCurrencyCode (id); + const precision = this.safeInteger (currency, 'valid_decimals'); + const deposit = this.safeValue (currency, 'enable_deposit'); + const withdraw = this.safeValue (currency, 'enable_withdraw'); + const active = (deposit && withdraw); + result[code] = { + 'id': id, + 'code': code, + 'info': currency, + 'name': name, + 'active': active, + 'fee': undefined, + 'precision': precision, + 'limits': { + 'amount': { + 'min': Math.pow (10, -precision), + 'max': undefined, + }, + 'price': { + 'min': Math.pow (10, -precision), + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + 'withdraw': { + 'min': this.safeFloat (currency, 'withdraw_min'), + 'max': undefined, + }, + }, + }; + } + return result; + } + + async fetchCurrenciesPrivate (params = {}) { if (!this.apiKey || !this.secret) { throw new AuthenticationError (this.id + " fetchCurrencies is an authenticated endpoint, therefore it requires 'apiKey' and 'secret' credentials. If you don't need currency details, set exchange.has['fetchCurrencies'] = false before calling its methods."); } @@ -435,46 +519,42 @@ module.exports = class bibox extends Exchange { // { // "result":[ // { - // "result":[ - // { - // "totalBalance":"14.57582269", - // "balance":"14.57582269", - // "freeze":"0.00000000", - // "id":60, - // "symbol":"USDT", - // "icon_url":"/appimg/USDT_icon.png", - // "describe_url":"[{\"lang\":\"zh-cn\",\"link\":\"https://bibox.zendesk.com/hc/zh-cn/articles/115004798234\"},{\"lang\":\"en-ww\",\"link\":\"https://bibox.zendesk.com/hc/en-us/articles/115004798234\"}]", - // "name":"USDT", - // "enable_withdraw":1, - // "enable_deposit":1, - // "enable_transfer":1, - // "confirm_count":2, - // "is_erc20":1, - // "forbid_info":null, - // "describe_summary":"[{\"lang\":\"zh-cn\",\"text\":\"USDT 是 Tether 公司推出的基于稳定价值货币美元(USD)的代币 Tether USD(简称USDT),1USDT=1美元,用户可以随时使用 USDT 与 USD 进行1:1的兑换。\"},{\"lang\":\"en-ww\",\"text\":\"USDT is a cryptocurrency asset issued on the Bitcoin blockchain via the Omni Layer Protocol. Each USDT unit is backed by a U.S Dollar held in the reserves of the Tether Limited and can be redeemed through the Tether Platform.\"}]", - // "total_amount":4776930644, - // "supply_amount":4642367414, - // "price":"--", - // "contract_father":"OMNI", - // "supply_time":"--", - // "comment":null, - // "contract":"31", - // "original_decimals":8, - // "deposit_type":0, - // "hasCobo":0, - // "BTCValue":"0.00126358", - // "CNYValue":"100.93381445", - // "USDValue":"14.57524654", - // "children":[ - // {"type":"OMNI","symbol":"USDT","enable_deposit":1,"enable_withdraw":1,"confirm_count":2}, - // {"type":"TRC20","symbol":"tUSDT","enable_deposit":1,"enable_withdraw":1,"confirm_count":20}, - // {"type":"ERC20","symbol":"eUSDT","enable_deposit":1,"enable_withdraw":1,"confirm_count":25} - // ] - // }, - // ], - // "cmd":"transfer/coinList" - // } - // ] + // "totalBalance":"14.57582269", + // "balance":"14.57582269", + // "freeze":"0.00000000", + // "id":60, + // "symbol":"USDT", + // "icon_url":"/appimg/USDT_icon.png", + // "describe_url":"[{\"lang\":\"zh-cn\",\"link\":\"https://bibox.zendesk.com/hc/zh-cn/articles/115004798234\"},{\"lang\":\"en-ww\",\"link\":\"https://bibox.zendesk.com/hc/en-us/articles/115004798234\"}]", + // "name":"USDT", + // "enable_withdraw":1, + // "enable_deposit":1, + // "enable_transfer":1, + // "confirm_count":2, + // "is_erc20":1, + // "forbid_info":null, + // "describe_summary":"[{\"lang\":\"zh-cn\",\"text\":\"USDT 是 Tether 公司推出的基于稳定价值货币美元(USD)的代币 Tether USD(简称USDT),1USDT=1美元,用户可以随时使用 USDT 与 USD 进行1:1的兑换。\"},{\"lang\":\"en-ww\",\"text\":\"USDT is a cryptocurrency asset issued on the Bitcoin blockchain via the Omni Layer Protocol. Each USDT unit is backed by a U.S Dollar held in the reserves of the Tether Limited and can be redeemed through the Tether Platform.\"}]", + // "total_amount":4776930644, + // "supply_amount":4642367414, + // "price":"--", + // "contract_father":"OMNI", + // "supply_time":"--", + // "comment":null, + // "contract":"31", + // "original_decimals":8, + // "deposit_type":0, + // "hasCobo":0, + // "BTCValue":"0.00126358", + // "CNYValue":"100.93381445", + // "USDValue":"14.57524654", + // "children":[ + // {"type":"OMNI","symbol":"USDT","enable_deposit":1,"enable_withdraw":1,"confirm_count":2}, + // {"type":"TRC20","symbol":"tUSDT","enable_deposit":1,"enable_withdraw":1,"confirm_count":20}, + // {"type":"ERC20","symbol":"eUSDT","enable_deposit":1,"enable_withdraw":1,"confirm_count":25} + // ] + // }, + // ], + // "cmd":"transfer/coinList" // } // const currencies = this.safeValue (response, 'result'); @@ -799,6 +879,7 @@ module.exports = class bibox extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -851,7 +932,7 @@ module.exports = class bibox extends Exchange { async fetchClosedOrders (symbol = undefined, since = undefined, limit = 200, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchClosedOrders requires a `symbol` argument'); + throw new ArgumentsRequired (this.id + ' fetchClosedOrders() requires a `symbol` argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -871,7 +952,7 @@ module.exports = class bibox extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a `symbol` argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a `symbol` argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -998,7 +1079,7 @@ module.exports = class bibox extends Exchange { } } else if (api === 'v2private') { this.checkRequiredCredentials (); - url = this.urls['api'] + '/v2/' + path; + url = this.implodeParams (this.urls['api'], { 'hostname': this.hostname }) + '/v2/' + path; const json_params = this.json (params); body = { 'body': json_params, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bigone.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bigone.js index b589aceeb..d6e940c4d 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bigone.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bigone.js @@ -78,6 +78,7 @@ module.exports = class bigone extends Exchange { 'private': { 'get': [ 'accounts', + 'fund/accounts', 'assets/{asset_symbol}/address', 'orders', 'orders/{id}', @@ -91,6 +92,7 @@ module.exports = class bigone extends Exchange { 'orders/{id}/cancel', 'orders/cancel', 'withdrawals', + 'transfer', ], }, }, @@ -645,7 +647,10 @@ module.exports = class bigone extends Exchange { async fetchBalance (params = {}) { await this.loadMarkets (); - const response = await this.privateGetAccounts (params); + const type = this.safeString (params, 'type', ''); + params = this.omit (params, 'type'); + const method = 'privateGet' + this.capitalize (type) + 'Accounts'; + const response = await this[method] (params); // // { // "code":0, @@ -721,6 +726,7 @@ module.exports = class bigone extends Exchange { 'symbol': symbol, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -758,7 +764,7 @@ module.exports = class bigone extends Exchange { if (isStopLimit || isStopMarket) { const stopPrice = this.safeFloat2 (params, 'stop_price', 'stopPrice'); if (stopPrice === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires a stop_price parameter'); + throw new ArgumentsRequired (this.id + ' createOrder() requires a stop_price parameter'); } request['stop_price'] = this.priceToPrecision (symbol, stopPrice); params = this.omit (params, [ 'stop_price', 'stopPrice' ]); diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/binance.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/binance.js index c9e459dfb..a115b3f7b 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/binance.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/binance.js @@ -3,7 +3,7 @@ // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { ExchangeError, ArgumentsRequired, ExchangeNotAvailable, InsufficientFunds, OrderNotFound, InvalidOrder, DDoSProtection, InvalidNonce, AuthenticationError, InvalidAddress, RateLimitExceeded, PermissionDenied, NotSupported, BadRequest, BadSymbol, AccountSuspended, OrderImmediatelyFillable } = require ('./base/errors'); +const { ExchangeError, ArgumentsRequired, ExchangeNotAvailable, InsufficientFunds, OrderNotFound, InvalidOrder, DDoSProtection, InvalidNonce, AuthenticationError, RateLimitExceeded, PermissionDenied, NotSupported, BadRequest, BadSymbol, AccountSuspended, OrderImmediatelyFillable } = require ('./base/errors'); const { ROUND, TRUNCATE } = require ('./base/functions/number'); // --------------------------------------------------------------------------- @@ -23,6 +23,7 @@ module.exports = class binance extends Exchange { 'cancelOrder': true, 'CORS': false, 'createOrder': true, + 'fetchCurrencies': true, 'fetchBalance': true, 'fetchBidsAsks': true, 'fetchClosedOrders': 'emulated', @@ -113,6 +114,7 @@ module.exports = class binance extends Exchange { 'margin/priceIndex', // these endpoints require this.apiKey + this.secret 'asset/assetDividend', + 'asset/transfer', 'margin/loan', 'margin/repay', 'margin/account', @@ -154,6 +156,7 @@ module.exports = class binance extends Exchange { 'sub-account/spotSummary', 'sub-account/status', 'sub-account/transfer/subUserHistory', + 'sub-account/universalTransfer', // lending endpoints 'lending/daily/product/list', 'lending/daily/userLeftQuota', @@ -179,9 +182,23 @@ module.exports = class binance extends Exchange { 'bswap/liquidityOps', 'bswap/quote', 'bswap/swap', + // leveraged token endpoints + 'blvt/tokenInfo', + 'blvt/subscribe/record', + 'blvt/redeem/record', + 'blvt/userLimit', + // broker api + 'apiReferral/ifNewUser', + 'apiReferral/customization', + 'apiReferral/userCustomization', + 'apiReferral/rebate/recentRecord', + 'apiReferral/rebate/historicalRecord', + 'apiReferral/kickback/recentRecord', + 'apiReferral/kickback/historicalRecord', ], 'post': [ 'asset/dust', + 'asset/transfer', 'account/disableFastWithdrawSwitch', 'account/enableFastWithdrawSwitch', 'capital/withdraw/apply', @@ -199,6 +216,7 @@ module.exports = class binance extends Exchange { 'sub-account/futures/internalTransfer', 'sub-account/transfer/subToSub', 'sub-account/transfer/subToMaster', + 'sub-account/universalTransfer', 'userDataStream', 'userDataStream/isolated', 'futures/transfer', @@ -213,12 +231,21 @@ module.exports = class binance extends Exchange { 'bswap/liquidityAdd', 'bswap/liquidityRemove', 'bswap/swap', + // leveraged token endpoints + 'blvt/subscribe', + 'blvt/redeem', + // broker api + 'apiReferral/customization', + 'apiReferral/userCustomization', + 'apiReferral/rebate/historicalRecord', + 'apiReferral/kickback/historicalRecord', ], 'put': [ 'userDataStream', 'userDataStream/isolated', ], 'delete': [ + 'margin/openOrders', 'margin/order', 'userDataStream', 'userDataStream/isolated', @@ -323,6 +350,7 @@ module.exports = class binance extends Exchange { 'historicalTrades', 'aggTrades', 'klines', + 'continuousKlines', 'fundingRate', 'premiumIndex', 'ticker/24hr', @@ -357,6 +385,15 @@ module.exports = class binance extends Exchange { 'positionSide/dual', 'userTrades', 'income', + // broker endpoints + 'apiReferral/ifNewUser', + 'apiReferral/customization', + 'apiReferral/userCustomization', + 'apiReferral/traderNum', + 'apiReferral/overview', + 'apiReferral/tradeVol', + 'apiReferral/rebateVol', + 'apiReferral/traderSummary', ], 'post': [ 'batchOrders', @@ -367,6 +404,9 @@ module.exports = class binance extends Exchange { 'leverage', 'listenKey', 'countdownCancelAll', + // broker endpoints + 'apiReferral/customization', + 'apiReferral/userCustomization', ], 'put': [ 'listenKey', @@ -446,6 +486,7 @@ module.exports = class binance extends Exchange { }, // exchange-specific options 'options': { + 'fetchCurrencies': false, // this is a private call and it requires API keys // 'fetchTradesMethod': 'publicGetAggTrades', // publicGetTrades, publicGetHistoricalTrades 'defaultTimeInForce': 'GTC', // 'GTC' = Good To Cancel (default), 'IOC' = Immediate Or Cancel 'defaultType': 'spot', // 'spot', 'future', 'margin', 'delivery' @@ -460,11 +501,20 @@ module.exports = class binance extends Exchange { 'limit': 'RESULT', // we change it from 'ACK' by default to 'RESULT' }, 'quoteOrderQty': true, // whether market orders support amounts in quote currency + 'broker': { + 'spot': 'x-R4BD3S82', + 'margin': 'x-R4BD3S82', + 'future': 'x-xcKtGhcu', + 'delivery': 'x-xcKtGhcu', + }, }, // https://binance-docs.github.io/apidocs/spot/en/#error-codes-2 'exceptions': { + 'System abnormality': ExchangeError, // {"code":-1000,"msg":"System abnormality"} + 'You are not authorized to execute this request.': PermissionDenied, // {"msg":"You are not authorized to execute this request."} 'API key does not exist': AuthenticationError, 'Order would trigger immediately.': OrderImmediatelyFillable, + 'Stop price would trigger immediately.': OrderImmediatelyFillable, // {"code":-2010,"msg":"Stop price would trigger immediately."} 'Order would immediately match and take.': OrderImmediatelyFillable, // {"code":-2010,"msg":"Order would immediately match and take."} 'Account has insufficient balance for requested action.': InsufficientFunds, 'Rest API trading is not enabled.': ExchangeNotAvailable, @@ -508,14 +558,21 @@ module.exports = class binance extends Exchange { '-2013': OrderNotFound, // fetchOrder (1, 'BTC/USDT') -> 'Order does not exist' '-2014': AuthenticationError, // { "code":-2014, "msg": "API-key format invalid." } '-2015': AuthenticationError, // "Invalid API-key, IP, or permissions for action." + '-2019': InsufficientFunds, // {"code":-2019,"msg":"Margin is insufficient."} '-3005': InsufficientFunds, // {"code":-3005,"msg":"Transferring out not allowed. Transfer out amount exceeds max amount."} '-3008': InsufficientFunds, // {"code":-3008,"msg":"Borrow not allowed. Your borrow amount has exceed maximum borrow amount."} '-3010': ExchangeError, // {"code":-3010,"msg":"Repay not allowed. Repay amount exceeds borrow amount."} '-3022': AccountSuspended, // You account's trading is banned. + '-4028': BadRequest, // {"code":-4028,"msg":"Leverage 100 is not valid"} + '-5013': InsufficientFunds, // Asset transfer failed: insufficient balance" }, }); } + currencyToPrecision (currency, fee) { + return this.numberToString (fee); + } + nonce () { return this.milliseconds () - this.options['timeDifference']; } @@ -539,6 +596,145 @@ module.exports = class binance extends Exchange { return this.options['timeDifference']; } + async fetchCurrencies (params = {}) { + const fetchCurrenciesEnabled = this.safeValue (this.options, 'fetchCurrencies'); + if (!fetchCurrenciesEnabled) { + return undefined; + } + // this endpoint requires authentication + // while fetchCurrencies is a public API method by design + // therefore we check the keys here + // and fallback to generating the currencies from the markets + if (!this.checkRequiredCredentials (false)) { + return undefined; + } + // sandbox/testnet does not support sapi endpoints + const apiBackup = this.safeString (this.urls, 'apiBackup'); + if (apiBackup !== undefined) { + return undefined; + } + const response = await this.sapiGetCapitalConfigGetall (params); + const result = {}; + for (let i = 0; i < response.length; i++) { + // + // { + // coin: 'LINK', + // depositAllEnable: true, + // withdrawAllEnable: true, + // name: 'ChainLink', + // free: '0.06168', + // locked: '0', + // freeze: '0', + // withdrawing: '0', + // ipoing: '0', + // ipoable: '0', + // storage: '0', + // isLegalMoney: false, + // trading: true, + // networkList: [ + // { + // network: 'BNB', + // coin: 'LINK', + // withdrawIntegerMultiple: '0', + // isDefault: false, + // depositEnable: true, + // withdrawEnable: true, + // depositDesc: '', + // withdrawDesc: '', + // specialTips: 'Both a MEMO and an Address are required to successfully deposit your LINK BEP2 tokens to Binance.', + // name: 'BEP2', + // resetAddressStatus: false, + // addressRegex: '^(bnb1)[0-9a-z]{38}$', + // memoRegex: '^[0-9A-Za-z\\-_]{1,120}$', + // withdrawFee: '0.002', + // withdrawMin: '0.01', + // withdrawMax: '9999999', + // minConfirm: 1, + // unLockConfirm: 0 + // }, + // { + // network: 'BSC', + // coin: 'LINK', + // withdrawIntegerMultiple: '0.00000001', + // isDefault: false, + // depositEnable: true, + // withdrawEnable: true, + // depositDesc: '', + // withdrawDesc: '', + // specialTips: '', + // name: 'BEP20 (BSC)', + // resetAddressStatus: false, + // addressRegex: '^(0x)[0-9A-Fa-f]{40}$', + // memoRegex: '', + // withdrawFee: '0.005', + // withdrawMin: '0.01', + // withdrawMax: '9999999', + // minConfirm: 15, + // unLockConfirm: 0 + // }, + // { + // network: 'ETH', + // coin: 'LINK', + // withdrawIntegerMultiple: '0.00000001', + // isDefault: true, + // depositEnable: true, + // withdrawEnable: true, + // depositDesc: '', + // withdrawDesc: '', + // name: 'ERC20', + // resetAddressStatus: false, + // addressRegex: '^(0x)[0-9A-Fa-f]{40}$', + // memoRegex: '', + // withdrawFee: '0.34', + // withdrawMin: '0.68', + // withdrawMax: '0', + // minConfirm: 12, + // unLockConfirm: 0 + // } + // ] + // } + // + const entry = response[i]; + const id = this.safeString (entry, 'coin'); + const name = this.safeString (entry, 'name'); + const code = this.safeCurrencyCode (id); + const precision = undefined; + let isWithdrawEnabled = true; + let isDepositEnabled = true; + const networkList = this.safeValue (entry, 'networkList', []); + const fees = {}; + let fee = undefined; + for (let j = 0; j < networkList.length; j++) { + const networkItem = networkList[j]; + const name = this.safeString (networkItem, 'name'); + const withdrawFee = this.safeFloat (networkItem, 'withdrawFee'); + const depositEnable = this.safeValue (networkItem, 'depositEnable'); + const withdrawEnable = this.safeValue (networkItem, 'withdrawEnable'); + isDepositEnabled = isDepositEnabled || depositEnable; + isWithdrawEnabled = isWithdrawEnabled || withdrawEnable; + fees[name] = withdrawFee; + const isDefault = this.safeValue (networkItem, 'isDefault'); + if (isDefault || fee === undefined) { + fee = withdrawFee; + } + } + const trading = this.safeValue (entry, 'trading'); + const active = (isWithdrawEnabled && isDepositEnabled && trading); + result[code] = { + 'id': id, + 'name': name, + 'code': code, + 'precision': precision, + 'info': entry, + 'active': active, + 'fee': fee, + 'fees': fees, + 'limits': this.limits, + }; + } + return result; + } + async fetchMarkets (params = {}) { const defaultType = this.safeString2 (this.options, 'fetchMarkets', 'defaultType', 'spot'); const type = this.safeString (params, 'type', defaultType); @@ -715,9 +911,8 @@ module.exports = class binance extends Exchange { const quoteId = this.safeString (market, 'quoteAsset'); const base = this.safeCurrencyCode (baseId); const quote = this.safeCurrencyCode (quoteId); - const parts = id.split ('_'); - const lastPart = this.safeString (parts, 1); - const idSymbol = (delivery) && (lastPart !== 'PERP'); + const contractType = this.safeString (market, 'contractType'); + const idSymbol = (future || delivery) && (contractType !== 'PERPETUAL'); const symbol = idSymbol ? id : (base + '/' + quote); const filters = this.safeValue (market, 'filters', []); const filtersByType = this.indexBy (filters, 'filterType'); @@ -795,7 +990,7 @@ module.exports = class binance extends Exchange { } if ('MIN_NOTIONAL' in filtersByType) { const filter = this.safeValue (filtersByType, 'MIN_NOTIONAL', {}); - entry['limits']['cost']['min'] = this.safeFloat (filter, 'minNotional'); + entry['limits']['cost']['min'] = this.safeFloat2 (filter, 'minNotional', 'notional'); } result.push (entry); } @@ -1197,15 +1392,24 @@ module.exports = class binance extends Exchange { async fetchOHLCV (symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); const market = this.market (symbol); + // binance docs say that the default limit 500, max 1500 for futures, max 1000 for spot markets + // the reality is that the time range wider than 500 candles won't work right + const defaultLimit = 500; + const maxLimit = 1500; + limit = (limit === undefined) ? defaultLimit : Math.min (limit, maxLimit); const request = { 'symbol': market['id'], 'interval': this.timeframes[timeframe], + 'limit': limit, }; + const duration = this.parseTimeframe (timeframe); if (since !== undefined) { request['startTime'] = since; - } - if (limit !== undefined) { - request['limit'] = limit; // default == max == 500 + if (since > 0) { + const endTime = this.sum (since, limit * duration * 1000 - 1); + const now = this.milliseconds (); + request['endTime'] = Math.min (now, endTime); + } } let method = 'publicGetKlines'; if (market['future']) { @@ -1293,6 +1497,23 @@ module.exports = class binance extends Exchange { // "symbol": "BTCUSDT", // "time": 1569514978020 // } + // { + // "symbol": "BTCUSDT", + // "id": 477128891, + // "orderId": 13809777875, + // "side": "SELL", + // "price": "38479.55", + // "qty": "0.001", + // "realizedPnl": "-0.00009534", + // "marginAsset": "USDT", + // "quoteQty": "38.47955", + // "commission": "-0.00076959", + // "commissionAsset": "USDT", + // "time": 1612733566708, + // "positionSide": "BOTH", + // "maker": true, + // "buyer": false + // } // const timestamp = this.safeInteger2 (trade, 'T', 'time'); const price = this.safeFloat2 (trade, 'p', 'price'); @@ -1322,6 +1543,9 @@ module.exports = class binance extends Exchange { if ('isMaker' in trade) { takerOrMaker = trade['isMaker'] ? 'maker' : 'taker'; } + if ('maker' in trade) { + takerOrMaker = trade['maker'] ? 'maker' : 'taker'; + } const marketId = this.safeString (trade, 'symbol'); const symbol = this.safeSymbol (marketId, market); let cost = undefined; @@ -1439,7 +1663,7 @@ module.exports = class binance extends Exchange { 'CANCELED': 'canceled', 'PENDING_CANCEL': 'canceling', // currently unused 'REJECTED': 'rejected', - 'EXPIRED': 'canceled', + 'EXPIRED': 'expired', }; return this.safeString (statuses, status, status); } @@ -1565,6 +1789,8 @@ module.exports = class binance extends Exchange { } const clientOrderId = this.safeString (order, 'clientOrderId'); const timeInForce = this.safeString (order, 'timeInForce'); + const postOnly = (type === 'limit_maker') || (timeInForce === 'GTX'); + const stopPrice = this.safeFloat (order, 'stopPrice'); return { 'info': order, 'id': id, @@ -1575,8 +1801,10 @@ module.exports = class binance extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, + 'stopPrice': stopPrice, 'amount': amount, 'cost': cost, 'average': average, @@ -1621,7 +1849,15 @@ module.exports = class binance extends Exchange { 'type': uppercaseType, 'side': side.toUpperCase (), }; - if (clientOrderId !== undefined) { + if (clientOrderId === undefined) { + const broker = this.safeValue (this.options, 'broker'); + if (broker) { + const brokerId = this.safeString (broker, orderType); + if (brokerId !== undefined) { + request['newClientOrderId'] = brokerId + this.uuid22 (); + } + } + } else { request['newClientOrderId'] = clientOrderId; } if (market['spot']) { @@ -1700,7 +1936,7 @@ module.exports = class binance extends Exchange { quantityIsRequired = true; const callbackRate = this.safeFloat (params, 'callbackRate'); if (callbackRate === undefined) { - throw new InvalidOrder (this.id + ' createOrder method requires a callbackRate extra param for a ' + type + ' order'); + throw new InvalidOrder (this.id + ' createOrder() requires a callbackRate extra param for a ' + type + ' order'); } } if (quantityIsRequired) { @@ -1708,7 +1944,7 @@ module.exports = class binance extends Exchange { } if (priceIsRequired) { if (price === undefined) { - throw new InvalidOrder (this.id + ' createOrder method requires a price argument for a ' + type + ' order'); + throw new InvalidOrder (this.id + ' createOrder() requires a price argument for a ' + type + ' order'); } request['price'] = this.priceToPrecision (symbol, price); } @@ -1718,7 +1954,7 @@ module.exports = class binance extends Exchange { if (stopPriceIsRequired) { const stopPrice = this.safeFloat (params, 'stopPrice'); if (stopPrice === undefined) { - throw new InvalidOrder (this.id + ' createOrder method requires a stopPrice extra param for a ' + type + ' order'); + throw new InvalidOrder (this.id + ' createOrder() requires a stopPrice extra param for a ' + type + ' order'); } else { params = this.omit (params, 'stopPrice'); request['stopPrice'] = this.priceToPrecision (symbol, stopPrice); @@ -1730,7 +1966,7 @@ module.exports = class binance extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1751,7 +1987,7 @@ module.exports = class binance extends Exchange { if (clientOrderId !== undefined) { request['origClientOrderId'] = clientOrderId; } else { - request['orderId'] = parseInt (id); + request['orderId'] = id; } const query = this.omit (params, [ 'type', 'clientOrderId', 'origClientOrderId' ]); const response = await this[method] (this.extend (request, query)); @@ -1760,7 +1996,7 @@ module.exports = class binance extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1873,7 +2109,7 @@ module.exports = class binance extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1883,11 +2119,11 @@ module.exports = class binance extends Exchange { const origClientOrderId = this.safeValue2 (params, 'origClientOrderId', 'clientOrderId'); const request = { 'symbol': market['id'], - // 'orderId': parseInt (id), + // 'orderId': id, // 'origClientOrderId': id, }; if (origClientOrderId === undefined) { - request['orderId'] = parseInt (id); + request['orderId'] = id; } else { request['origClientOrderId'] = origClientOrderId; } @@ -1906,7 +2142,7 @@ module.exports = class binance extends Exchange { async cancelAllOrders (symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelAllOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelAllOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1917,7 +2153,9 @@ module.exports = class binance extends Exchange { const type = this.safeString (params, 'type', defaultType); const query = this.omit (params, 'type'); let method = 'privateDeleteOpenOrders'; - if (type === 'future') { + if (type === 'margin') { + method = 'sapiDeleteMarginOpenOrders'; + } else if (type === 'future') { method = 'fapiPrivateDeleteAllOpenOrders'; } else if (type === 'delivery') { method = 'dapiPrivateDeleteAllOpenOrders'; @@ -1983,20 +2221,23 @@ module.exports = class binance extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); - const type = this.safeValue (params, 'type', market['type']); + const defaultType = this.safeString2 (this.options, 'fetchMyTrades', 'defaultType', market['type']); + const type = this.safeString (params, 'type', defaultType); + params = this.omit (params, 'type'); let method = undefined; if (type === 'spot') { method = 'privateGetMyTrades'; + } else if (type === 'margin') { + method = 'sapiGetMarginMyTrades'; } else if (type === 'future') { method = 'fapiPrivateGetUserTrades'; } else if (type === 'delivery') { method = 'dapiPrivateGetUserTrades'; } - params = this.omit (params, 'type'); const request = { 'symbol': market['id'], }; @@ -2280,7 +2521,10 @@ module.exports = class binance extends Exchange { tag = undefined; } } - const txid = this.safeString (transaction, 'txId'); + let txid = this.safeString (transaction, 'txId'); + if ((txid !== undefined) && (txid.indexOf ('Internal transfer ') >= 0)) { + txid = txid.slice (18); + } const currencyId = this.safeString (transaction, 'asset'); const code = this.safeCurrencyCode (currencyId, currency); let timestamp = undefined; @@ -2329,15 +2573,27 @@ module.exports = class binance extends Exchange { await this.loadMarkets (); const currency = this.currency (code); const request = { - 'asset': currency['id'], + 'coin': currency['id'], + // 'network': 'ETH', // 'BSC', 'XMR', you can get network and isDefault in networkList in the response of sapiGetCapitalConfigDetail }; - const response = await this.wapiGetDepositAddress (this.extend (request, params)); - const success = this.safeValue (response, 'success'); - if ((success === undefined) || !success) { - throw new InvalidAddress (this.id + ' fetchDepositAddress returned an empty response – create the deposit address in the user settings first.'); - } + // has support for the 'network' parameter + // https://binance-docs.github.io/apidocs/spot/en/#deposit-address-supporting-network-user_data + const response = await this.sapiGetCapitalDepositAddress (this.extend (request, params)); + // + // { + // currency: 'XRP', + // address: 'rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh', + // tag: '108618262', + // info: { + // coin: 'XRP', + // address: 'rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh', + // tag: '108618262', + // url: 'https://bithomp.com/explorer/rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh' + // } + // } + // const address = this.safeString (response, 'address'); - const tag = this.safeString (response, 'addressTag'); + const tag = this.safeString (response, 'tag'); this.checkAddress (address); return { 'currency': code, @@ -2515,7 +2771,7 @@ module.exports = class binance extends Exchange { 'timestamp': this.nonce (), 'recvWindow': recvWindow, }, params)); - } else if (path === 'batchOrders') { + } else if ((path === 'batchOrders') || (path.indexOf ('sub-account') >= 0)) { query = this.rawencode (this.extend ({ 'timestamp': this.nonce (), 'recvWindow': recvWindow, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/binanceus.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/binanceus.js index c35f3f3e4..f7bd5c19c 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/binanceus.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/binanceus.js @@ -42,5 +42,9 @@ module.exports = class binanceus extends binance { }, }); } + + async fetchCurrencies (params = {}) { + return undefined; + } }; diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bit2c.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bit2c.js index f09a98746..a4d60733a 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bit2c.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bit2c.js @@ -306,6 +306,7 @@ module.exports = class bit2c extends Exchange { 'symbol': symbol, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitbank.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitbank.js index 722f16be6..d357531d7 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitbank.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitbank.js @@ -82,6 +82,8 @@ module.exports = class bitbank extends Exchange { 'BCH/JPY': { 'id': 'bcc_jpy', 'symbol': 'BCH/JPY', 'base': 'BCH', 'quote': 'JPY', 'baseId': 'bcc', 'quoteId': 'jpy' }, 'MONA/BTC': { 'id': 'mona_btc', 'symbol': 'MONA/BTC', 'base': 'MONA', 'quote': 'BTC', 'baseId': 'mona', 'quoteId': 'btc' }, 'MONA/JPY': { 'id': 'mona_jpy', 'symbol': 'MONA/JPY', 'base': 'MONA', 'quote': 'JPY', 'baseId': 'mona', 'quoteId': 'jpy' }, + 'QTUM/BTC': { 'id': 'qtum_btc', 'symbol': 'QTUM/BTC', 'base': 'QTUM', 'quote': 'BTC', 'baseId': 'qtum', 'quoteId': 'btc' }, + 'QTUM/JPY': { 'id': 'qtum_jpy', 'symbol': 'QTUM/JPY', 'base': 'QTUM', 'quote': 'JPY', 'baseId': 'qtum', 'quoteId': 'jpy' }, 'ETH/BTC': { 'id': 'eth_btc', 'symbol': 'ETH/BTC', 'base': 'ETH', 'quote': 'BTC', 'baseId': 'eth', 'quoteId': 'btc' }, 'LTC/BTC': { 'id': 'ltc_btc', 'symbol': 'LTC/BTC', 'base': 'LTC', 'quote': 'BTC', 'baseId': 'ltc', 'quoteId': 'btc' }, 'XRP/JPY': { 'id': 'xrp_jpy', 'symbol': 'XRP/JPY', 'base': 'XRP', 'quote': 'JPY', 'baseId': 'xrp', 'quoteId': 'jpy' }, @@ -90,6 +92,7 @@ module.exports = class bitbank extends Exchange { 'ETH/JPY': { 'id': 'eth_jpy', 'symbol': 'ETH/JPY', 'base': 'ETH', 'quote': 'JPY', 'baseId': 'eth', 'quoteId': 'jpy' }, 'LTC/JPY': { 'id': 'ltc_jpy', 'symbol': 'LTC/JPY', 'base': 'LTC', 'quote': 'JPY', 'baseId': 'ltc', 'quoteId': 'jpy' }, 'XRP/BTC': { 'id': 'xrp_btc', 'symbol': 'XRP/BTC', 'base': 'XRP', 'quote': 'BTC', 'baseId': 'xrp', 'quoteId': 'btc' }, + 'XLM/BTC': { 'id': 'xlm_btc', 'symbol': 'XLM/BTC', 'base': 'XLM', 'quote': 'BTC', 'baseId': 'xlm', 'quoteId': 'btc' }, }, 'fees': { 'trading': { @@ -207,8 +210,8 @@ module.exports = class bitbank extends Exchange { const feeCost = this.safeFloat (trade, 'fee_amount_quote'); if (feeCost !== undefined) { fee = { - 'currency': market['quote'], - 'cost': feeCurrency, + 'currency': feeCurrency, + 'cost': feeCost, }; } const orderId = this.safeString (trade, 'order_id'); @@ -367,6 +370,7 @@ module.exports = class bitbank extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -385,7 +389,7 @@ module.exports = class bitbank extends Exchange { await this.loadMarkets (); const market = this.market (symbol); if (price === undefined) { - throw new InvalidOrder (this.id + ' createOrder requires a price argument for both market and limit orders'); + throw new InvalidOrder (this.id + ' createOrder() requires a price argument for both market and limit orders'); } const request = { 'pair': market['id'], diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitbay.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitbay.js index f1cb3a288..4f502e934 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitbay.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitbay.js @@ -351,6 +351,7 @@ module.exports = class bitbay extends Exchange { filled = Math.max (0, amount - remaining); } } + const postOnly = this.safeValue (order, 'postOnly'); return { 'id': this.safeString (order, 'id'), 'clientOrderId': undefined, @@ -362,6 +363,7 @@ module.exports = class bitbay extends Exchange { 'symbol': symbol, 'type': this.safeString (order, 'mode'), 'timeInForce': undefined, + 'postOnly': postOnly, 'side': this.safeStringLower (order, 'offerType'), 'price': this.safeFloat (order, 'rate'), 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitfinex.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitfinex.js index ed9038a81..6d34687ff 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitfinex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitfinex.js @@ -16,7 +16,6 @@ module.exports = class bitfinex extends Exchange { 'countries': [ 'VG' ], 'version': 'v1', 'rateLimit': 1500, - 'certified': true, 'pro': true, // new metainfo interface 'has': { @@ -54,6 +53,7 @@ module.exports = class bitfinex extends Exchange { '30m': '30m', '1h': '1h', '3h': '3h', + '4h': '4h', '6h': '6h', '12h': '12h', '1d': '1D', @@ -600,13 +600,32 @@ module.exports = class bitfinex extends Exchange { async fetchBalance (params = {}) { await this.loadMarkets (); + const types = { + 'exchange': 'exchange', + 'deposit': 'funding', + 'trading': 'margin', + }; const balanceType = this.safeString (params, 'type', 'exchange'); const query = this.omit (params, 'type'); const response = await this.privatePostBalances (query); + // [ { type: 'deposit', + // currency: 'btc', + // amount: '0.00116721', + // available: '0.00116721' }, + // { type: 'exchange', + // currency: 'ust', + // amount: '0.0000002', + // available: '0.0000002' }, + // { type: 'trading', + // currency: 'btc', + // amount: '0.0005', + // available: '0.0005' } ], const result = { 'info': response }; for (let i = 0; i < response.length; i++) { const balance = response[i]; - if (balance['type'] === balanceType) { + const type = this.safeString (balance, 'type'); + const parsedType = this.safeString (types, type); + if ((parsedType === balanceType) || (type === balanceType)) { const currencyId = this.safeString (balance, 'currency'); const code = this.safeCurrencyCode (currencyId); // bitfinex had BCH previously, now it's BAB, but the old @@ -769,7 +788,7 @@ module.exports = class bitfinex extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a `symbol` argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a `symbol` argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -887,6 +906,7 @@ module.exports = class bitfinex extends Exchange { 'symbol': symbol, 'type': orderType, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': this.safeFloat (order, 'price'), 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitfinex2.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitfinex2.js index 5c44875e0..b47da9faf 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitfinex2.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitfinex2.js @@ -3,7 +3,7 @@ // --------------------------------------------------------------------------- const bitfinex = require ('./bitfinex.js'); -const { ExchangeError, InvalidAddress, ArgumentsRequired, InsufficientFunds, AuthenticationError, OrderNotFound, InvalidOrder, BadRequest, InvalidNonce, BadSymbol, OnMaintenance } = require ('./base/errors'); +const { ExchangeError, InvalidAddress, ArgumentsRequired, InsufficientFunds, AuthenticationError, OrderNotFound, InvalidOrder, BadRequest, InvalidNonce, BadSymbol, OnMaintenance, NotSupported } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -53,6 +53,7 @@ module.exports = class bitfinex2 extends bitfinex { '30m': '30m', '1h': '1h', '3h': '3h', + '4h': '4h', '6h': '6h', '12h': '12h', '1d': '1D', @@ -171,7 +172,9 @@ module.exports = class bitfinex2 extends bitfinex { 'auth/w/position/claim', 'auth/r/positions/hist', 'auth/r/positions/audit', + 'auth/r/positions/snap', 'auth/w/deriv/collateral/set', + 'auth/w/deriv/collateral/limits', 'auth/r/funding/offers', 'auth/r/funding/offers/{symbol}', 'auth/w/funding/offer/submit', @@ -583,6 +586,10 @@ module.exports = class bitfinex2 extends bitfinex { return this.parseBalance (result); } + async fetchOrder (id, symbol = undefined, params = {}) { + throw new NotSupported (this.id + ' fetchOrder is not implemented yet'); + } + async fetchOrderBook (symbol, limit = undefined, params = {}) { await this.loadMarkets (); const precision = this.safeValue (this.options, 'precision', 'R0'); @@ -923,6 +930,7 @@ module.exports = class bitfinex2 extends bitfinex { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -941,16 +949,43 @@ module.exports = class bitfinex2 extends bitfinex { await this.loadMarkets (); const market = this.market (symbol); const orderTypes = this.safeValue (this.options, 'orderTypes', {}); - const orderType = this.safeString (orderTypes, type, type); + const orderType = this.safeStringUpper (orderTypes, type, type); amount = (side === 'sell') ? -amount : amount; const request = { 'symbol': market['id'], 'type': orderType, 'amount': this.numberToString (amount), }; - if (type !== 'market') { + if ((orderType === 'LIMIT') || (orderType === 'EXCHANGE LIMIT')) { + request['price'] = this.numberToString (price); + } else if ((orderType === 'STOP') || (orderType === 'EXCHANGE STOP')) { + const stopPrice = this.safeFloat (params, 'stopPrice', price); + request['price'] = this.numberToString (stopPrice); + } else if ((orderType === 'STOP LIMIT') || (orderType === 'EXCHANGE STOP LIMIT')) { + const priceAuxLimit = this.safeFloat (params, 'price_aux_limit'); + let stopPrice = this.safeFloat (params, 'stopPrice'); + if (priceAuxLimit === undefined) { + if (stopPrice === undefined) { + throw new ArgumentsRequired (this.id + ' createOrder() requires a stopPrice parameter or a price_aux_limit parameter for a ' + orderType + ' order'); + } else { + request['price_aux_limit'] = this.numberToString (price); + } + } else { + request['price_aux_limit'] = this.numberToString (priceAuxLimit); + if (stopPrice === undefined) { + stopPrice = price; + } + } + request['price'] = this.numberToString (stopPrice); + } else if ((orderType === 'TRAILING STOP') || (orderType === 'EXCHANGE TRAILING STOP')) { + const priceTrailing = this.safeFloat (params, 'price_trailing'); + request['price_trailing'] = this.numberToString (priceTrailing); + const stopPrice = this.safeFloat (params, 'stopPrice', price); + request['price'] = this.numberToString (stopPrice); + } else if ((orderType === 'FOK') || (orderType === 'EXCHANGE FOK') || (orderType === 'IOC') || (orderType === 'EXCHANGE IOC')) { request['price'] = this.numberToString (price); } + params = this.omit (params, [ 'stopPrice', 'price_aux_limit', 'price_trailing' ]); const clientOrderId = this.safeValue2 (params, 'cid', 'clientOrderId'); if (clientOrderId !== undefined) { request['cid'] = clientOrderId; diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitflyer.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitflyer.js index 99c60448b..f9c19b59a 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitflyer.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitflyer.js @@ -365,6 +365,7 @@ module.exports = class bitflyer extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -424,7 +425,7 @@ module.exports = class bitflyer extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a `symbol` argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a `symbol` argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -440,7 +441,7 @@ module.exports = class bitflyer extends Exchange { async fetchPositions (symbols = undefined, since = undefined, limit = undefined, params = {}) { if (symbols === undefined) { - throw new ArgumentsRequired (this.id + ' fetchPositions requires a `symbols` argument, exactly one symbol in an array'); + throw new ArgumentsRequired (this.id + ' fetchPositions() requires a `symbols` argument, exactly one symbol in an array'); } await this.loadMarkets (); const request = { diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitforex.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitforex.js index 9932a4d34..8fa337979 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitforex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitforex.js @@ -3,7 +3,7 @@ // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { ExchangeError, AuthenticationError, OrderNotFound, InsufficientFunds, DDoSProtection, PermissionDenied } = require ('./base/errors'); +const { ExchangeError, AuthenticationError, OrderNotFound, InsufficientFunds, DDoSProtection, PermissionDenied, BadSymbol } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -223,6 +223,7 @@ module.exports = class bitforex extends Exchange { }, 'commonCurrencies': { 'CREDIT': 'TerraCredit', + 'HBC': 'Hybrid Bank Cash', 'IQ': 'IQ.Cash', 'UOS': 'UOS Network', }, @@ -231,6 +232,7 @@ module.exports = class bitforex extends Exchange { '1013': AuthenticationError, '1016': AuthenticationError, '1017': PermissionDenied, // {"code":"1017","success":false,"time":1602670594367,"message":"IP not allow"} + '1019': BadSymbol, // {"code":"1019","success":false,"time":1607087743778,"message":"Symbol Invalid"} '3002': InsufficientFunds, '10204': DDoSProtection, }, @@ -499,6 +501,7 @@ module.exports = class bitforex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitget.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitget.js index 78e7fe8aa..3c9581955 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitget.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitget.js @@ -1704,7 +1704,7 @@ module.exports = class bitget extends Exchange { const type = this.safeString (params, 'type', defaultType); params = this.omit (params, 'type'); if (type === undefined) { - throw new ArgumentsRequired (this.id + " requires an 'accountId' parameter"); + throw new ArgumentsRequired (this.id + " getAccountId() requires an 'accountId' parameter"); } const account = await this.findAccountByType (type); return account['id']; @@ -1716,7 +1716,7 @@ module.exports = class bitget extends Exchange { const defaultType = this.safeString2 (this.options, 'fetchBalance', 'defaultType'); const type = this.safeString (params, 'type', defaultType); if (type === undefined) { - throw new ArgumentsRequired (this.id + " fetchBalance requires a 'type' parameter, one of 'spot', 'swap'"); + throw new ArgumentsRequired (this.id + " fetchBalance() requires a 'type' parameter, one of 'spot', 'swap'"); } let method = undefined; const query = this.omit (params, 'type'); @@ -1960,6 +1960,7 @@ module.exports = class bitget extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -2042,7 +2043,7 @@ module.exports = class bitget extends Exchange { request['client_oid'] = clientOrderId; const orderType = this.safeString (params, 'type'); if (orderType === undefined) { - throw new ArgumentsRequired (this.id + " createOrder requires a type parameter, '1' = open long, '2' = open short, '3' = close long, '4' = close short for " + market['type'] + ' orders'); + throw new ArgumentsRequired (this.id + " createOrder() requires a type parameter, '1' = open long, '2' = open short, '3' = close long, '4' = close short for " + market['type'] + ' orders'); } request['size'] = this.amountToPrecision (symbol, amount); request['type'] = orderType; @@ -2084,7 +2085,7 @@ module.exports = class bitget extends Exchange { const type = this.safeString (params, 'type', defaultType); if (type === 'spot') { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument for spot orders'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument for spot orders'); } } } else { @@ -2125,14 +2126,15 @@ module.exports = class bitget extends Exchange { async cancelOrders (ids, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); const type = this.safeString (params, 'type', market['type']); if (type === undefined) { - throw new ArgumentsRequired (this.id + " cancelOrders requires a type parameter (one of 'spot', 'swap')."); + throw new ArgumentsRequired (this.id + " cancelOrders() requires a type parameter (one of 'spot', 'swap')."); } + params = this.omit (params, 'type'); const request = {}; let method = undefined; if (type === 'spot') { @@ -2189,13 +2191,13 @@ module.exports = class bitget extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); const type = this.safeString (params, 'type', market['type']); if (type === undefined) { - throw new ArgumentsRequired (this.id + " fetchOrder requires a type parameter (one of 'spot', 'swap')."); + throw new ArgumentsRequired (this.id + " fetchOrder() requires a type parameter (one of 'spot', 'swap')."); } let method = undefined; const request = {}; @@ -2266,7 +2268,7 @@ module.exports = class bitget extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -2351,7 +2353,7 @@ module.exports = class bitget extends Exchange { async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchClosedOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchClosedOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -2443,7 +2445,7 @@ module.exports = class bitget extends Exchange { async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchDeposits requires a currency code argument'); + throw new ArgumentsRequired (this.id + ' fetchDeposits() requires a currency code argument'); } await this.loadMarkets (); const currency = this.currency (code); @@ -2480,7 +2482,7 @@ module.exports = class bitget extends Exchange { async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchWithdrawals requires a currency code argument'); + throw new ArgumentsRequired (this.id + ' fetchWithdrawals() requires a currency code argument'); } await this.loadMarkets (); const currency = this.currency (code); @@ -2603,14 +2605,14 @@ module.exports = class bitget extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); const type = this.safeString (params, 'type', market['type']); const query = this.omit (params, 'type'); if (type === 'swap') { - throw new ArgumentsRequired (this.id + ' fetchMyTrades is not supported for ' + type + ' type'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() is not supported for ' + type + ' type'); } // // spot @@ -2667,12 +2669,12 @@ module.exports = class bitget extends Exchange { async fetchOrderTrades (id, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrderTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrderTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); const type = this.safeString (params, 'type', market['type']); - const query = this.omit (params, 'type'); + params = this.omit (params, 'type'); let method = undefined; const request = {}; if (type === 'spot') { @@ -2684,7 +2686,7 @@ module.exports = class bitget extends Exchange { request['symbol'] = market['id']; method = 'swapGetOrderFills'; } - const response = await this[method] (this.extend (request, query)); + const response = await this[method] (this.extend (request, params)); // // spot // diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bithumb.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bithumb.js index 904b8715d..ef4e7d479 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bithumb.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bithumb.js @@ -22,6 +22,7 @@ module.exports = class bithumb extends Exchange { 'createOrder': true, 'fetchBalance': true, 'fetchMarkets': true, + 'fetchOHLCV': true, 'fetchOpenOrders': true, 'fetchOrder': true, 'fetchOrderBook': true, @@ -45,10 +46,13 @@ module.exports = class bithumb extends Exchange { 'get': [ 'ticker/{currency}', 'ticker/all', + 'ticker/ALL_BTC', + 'ticker/ALL_KRW', 'orderbook/{currency}', 'orderbook/all', 'transaction_history/{currency}', 'transaction_history/all', + 'candlestick/{currency}/{interval}', ], }, 'private': { @@ -92,6 +96,27 @@ module.exports = class bithumb extends Exchange { 'Unknown Error': ExchangeError, 'After May 23th, recent_transactions is no longer, hence users will not be able to connect to recent_transactions': ExchangeError, // {"status":"5100","message":"After May 23th, recent_transactions is no longer, hence users will not be able to connect to recent_transactions"} }, + 'timeframes': { + '1m': '1m', + '3m': '3m', + '5m': '5m', + '10m': '10m', + '30m': '30m', + '1h': '1h', + '6h': '6h', + '12h': '12h', + '1d': '24h', + }, + 'options': { + 'quoteCurrencies': { + 'BTC': { + 'precision': { + 'price': 8, + }, + }, + 'KRW': {}, + }, + }, }); } @@ -100,54 +125,61 @@ module.exports = class bithumb extends Exchange { } async fetchMarkets (params = {}) { - const response = await this.publicGetTickerAll (params); - const data = this.safeValue (response, 'data'); - const currencyIds = Object.keys (data); const result = []; - const quote = this.safeCurrencyCode ('KRW'); - for (let i = 0; i < currencyIds.length; i++) { - const currencyId = currencyIds[i]; - if (currencyId === 'date') { - continue; - } - const market = data[currencyId]; - const base = this.safeCurrencyCode (currencyId); - const symbol = currencyId + '/' + quote; - let active = true; - if (Array.isArray (market)) { - const numElements = market.length; - if (numElements === 0) { - active = false; + const quoteCurrencies = this.safeValue (this.options, 'quoteCurrencies', {}); + const quotes = Object.keys (quoteCurrencies); + for (let i = 0; i < quotes.length; i++) { + const quote = quotes[i]; + const extension = this.safeValue (quoteCurrencies, quote, {}); + const method = 'publicGetTickerALL' + quote; + const response = await this[method] (params); + const data = this.safeValue (response, 'data'); + const currencyIds = Object.keys (data); + for (let j = 0; j < currencyIds.length; j++) { + const currencyId = currencyIds[j]; + if (currencyId === 'date') { + continue; } + const market = data[currencyId]; + const base = this.safeCurrencyCode (currencyId); + const symbol = currencyId + '/' + quote; + let active = true; + if (Array.isArray (market)) { + const numElements = market.length; + if (numElements === 0) { + active = false; + } + } + const entry = this.deepExtend ({ + 'id': currencyId, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'info': market, + 'active': active, + 'precision': { + 'amount': 4, + 'price': 4, + }, + 'limits': { + 'amount': { + 'min': undefined, + 'max': undefined, + }, + 'price': { + 'min': undefined, + 'max': undefined, + }, + 'cost': { + 'min': 500, + 'max': 5000000000, + }, + }, + 'baseId': undefined, + 'quoteId': undefined, + }, extension); + result.push (entry); } - result.push ({ - 'id': currencyId, - 'symbol': symbol, - 'base': base, - 'quote': quote, - 'info': market, - 'active': active, - 'precision': { - 'amount': 4, - 'price': 4, - }, - 'limits': { - 'amount': { - 'min': undefined, - 'max': undefined, - }, - 'price': { - 'min': undefined, - 'max': undefined, - }, - 'cost': { - 'min': 500, - 'max': 5000000000, - }, - }, - 'baseId': undefined, - 'quoteId': undefined, - }); } return result; } @@ -349,6 +381,62 @@ module.exports = class bithumb extends Exchange { return this.parseTicker (data, market); } + parseOHLCV (ohlcv, market = undefined) { + // + // [ + // 1576823400000, // 기준 시간 + // '8284000', // 시가 + // '8286000', // 종가 + // '8289000', // 고가 + // '8276000', // 저가 + // '15.41503692' // 거래량 + // ] + // + return [ + this.safeInteger (ohlcv, 0), + this.safeFloat (ohlcv, 1), + this.safeFloat (ohlcv, 3), + this.safeFloat (ohlcv, 4), + this.safeFloat (ohlcv, 2), + this.safeFloat (ohlcv, 5), + ]; + } + + async fetchOHLCV (symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'currency': market['base'], + 'interval': this.timeframes[timeframe], + }; + const response = await this.publicGetCandlestickCurrencyInterval (this.extend (request, params)); + // + // { + // 'status': '0000', + // 'data': { + // [ + // 1576823400000, // 기준 시간 + // '8284000', // 시가 + // '8286000', // 종가 + // '8289000', // 고가 + // '8276000', // 저가 + // '15.41503692' // 거래량 + // ], + // [ + // 1576824000000, // 기준 시간 + // '8284000', // 시가 + // '8281000', // 종가 + // '8289000', // 고가 + // '8275000', // 저가 + // '6.19584467' // 거래량 + // ], + // } + // } + // + const data = this.safeValue (response, 'data', []); + return this.parseOHLCVs (data, market, timeframe, since, limit); + } + parseTrade (trade, market = undefined) { // // fetchTrades (public) @@ -470,7 +558,7 @@ module.exports = class bithumb extends Exchange { const market = this.market (symbol); const request = { 'order_currency': market['id'], - 'Payment_currency': market['quote'], + 'payment_currency': market['quote'], 'units': amount, }; let method = 'privatePostTradePlace'; @@ -483,7 +571,7 @@ module.exports = class bithumb extends Exchange { const response = await this[method] (this.extend (request, params)); const id = this.safeString (response, 'order_id'); if (id === undefined) { - throw new InvalidOrder (this.id + ' createOrder did not return an order id'); + throw new InvalidOrder (this.id + ' createOrder() did not return an order id'); } return { 'info': response, @@ -496,7 +584,7 @@ module.exports = class bithumb extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -708,6 +796,7 @@ module.exports = class bithumb extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -730,7 +819,7 @@ module.exports = class bithumb extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -770,10 +859,10 @@ module.exports = class bithumb extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { const side_in_params = ('side' in params); if (!side_in_params) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a `symbol` argument and a `side` parameter (sell or buy)'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a `symbol` argument and a `side` parameter (sell or buy)'); } if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a `symbol` argument and a `side` parameter (sell or buy)'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a `symbol` argument and a `side` parameter (sell or buy)'); } const market = this.market (symbol); const side = (params['side'] === 'buy') ? 'bid' : 'ask'; @@ -804,7 +893,7 @@ module.exports = class bithumb extends Exchange { 'address': address, 'currency': currency['id'], }; - if (currency === 'XRP' || currency === 'XMR') { + if (currency === 'XRP' || currency === 'XMR' || currency === 'EOS' || currency === 'STEEM') { const destination = this.safeString (params, 'destination'); if ((tag === undefined) && (destination === undefined)) { throw new ArgumentsRequired (this.id + ' ' + code + ' withdraw() requires a tag argument or an extra destination param'); diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitkk.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitkk.js index 055657b41..f416bef33 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitkk.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitkk.js @@ -21,6 +21,9 @@ module.exports = class bitkk extends zb { 'doc': 'https://www.bitkk.com/i/developer', 'fees': 'https://www.bitkk.com/i/rate', }, + 'commonCurrencies': { + 'BCH': 'BCHOLD', + }, }); } }; diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitmart.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitmart.js index d99c5d095..4ad47118a 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitmart.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitmart.js @@ -48,7 +48,7 @@ module.exports = class bitmart extends Exchange { 'logo': 'https://user-images.githubusercontent.com/1294454/61835713-a2662f80-ae85-11e9-9d00-6442919701fd.jpg', 'api': 'https://api-cloud.{hostname}', // bitmart.info for Hong Kong users 'www': 'https://www.bitmart.com/', - 'doc': 'https://github.com/bitmartexchange/bitmart-official-api-docs', + 'doc': 'https://developer-pro.bitmart.com/', 'referral': 'http://www.bitmart.com/?r=rQCFLh', 'fees': 'https://www.bitmart.com/fee/en', }, @@ -161,8 +161,8 @@ module.exports = class bitmart extends Exchange { 'trading': { 'tierBased': true, 'percentage': true, - 'taker': 0.002, - 'maker': 0.001, + 'taker': 0.0025, + 'maker': 0.0025, 'tiers': { 'taker': [ [0, 0.20 / 100], @@ -296,6 +296,8 @@ module.exports = class bitmart extends Exchange { 'broad': {}, }, 'commonCurrencies': { + 'COT': 'Community Coin', + 'CPC': 'CPCoin', 'ONE': 'Menlo One', 'PLA': 'Plair', }, @@ -1241,7 +1243,7 @@ module.exports = class bitmart extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1249,7 +1251,7 @@ module.exports = class bitmart extends Exchange { const request = {}; if (market['spot']) { request['symbol'] = market['id']; - request['offset'] = 1; + request['offset'] = 1; // max offset * limit < 500 if (limit === undefined) { limit = 100; // max 100 } @@ -1322,7 +1324,7 @@ module.exports = class bitmart extends Exchange { async fetchOrderTrades (id, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrderTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrderTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1600,6 +1602,7 @@ module.exports = class bitmart extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -1705,7 +1708,7 @@ module.exports = class bitmart extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1733,6 +1736,15 @@ module.exports = class bitmart extends Exchange { // } // } // + // spot alternative + // + // { + // "code": 1000, + // "trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1", + // "message": "OK", + // "data": true + // } + // // contract // // { @@ -1748,16 +1760,19 @@ module.exports = class bitmart extends Exchange { // } // const data = this.safeValue (response, 'data'); + if (data === true) { + return this.parseOrder (id, market); + } const succeeded = this.safeValue (data, 'succeed'); if (succeeded !== undefined) { id = this.safeString (succeeded, 0); if (id === undefined) { - throw new InvalidOrder (this.id + ' cancelOrder failed to cancel ' + symbol + ' order id ' + id); + throw new InvalidOrder (this.id + ' cancelOrder() failed to cancel ' + symbol + ' order id ' + id); } } else { const result = this.safeValue (data, 'result'); if (!result) { - throw new InvalidOrder (this.id + ' cancelOrder ' + symbol + ' order id ' + id + ' is filled or canceled'); + throw new InvalidOrder (this.id + ' cancelOrder() ' + symbol + ' order id ' + id + ' is filled or canceled'); } } const order = this.parseOrder (id, market); @@ -1766,16 +1781,16 @@ module.exports = class bitmart extends Exchange { async cancelAllOrders (symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelAllOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelAllOrders() requires a symbol argument'); } const side = this.safeString (params, 'side'); if (side === undefined) { - throw new ArgumentsRequired (this.id + " cancelAllOrders requires a `side` parameter ('buy' or 'sell')"); + throw new ArgumentsRequired (this.id + " cancelAllOrders() requires a `side` parameter ('buy' or 'sell')"); } await this.loadMarkets (); const market = this.market (symbol); if (!market['spot']) { - throw new NotSupported (this.id + ' cancelAllOrders does not support ' + market['type'] + ' orders, only spot orders are accepted'); + throw new NotSupported (this.id + ' cancelAllOrders() does not support ' + market['type'] + ' orders, only spot orders are accepted'); } const request = { 'symbol': market['id'], @@ -1795,12 +1810,12 @@ module.exports = class bitmart extends Exchange { async cancelOrders (ids, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' canelOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' canelOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); if (!market['spot']) { - throw new NotSupported (this.id + ' cancelOrders does not support ' + market['type'] + ' orders, only contract orders are accepted'); + throw new NotSupported (this.id + ' cancelOrders() does not support ' + market['type'] + ' orders, only contract orders are accepted'); } const orders = []; for (let i = 0; i < ids.length; i++) { @@ -1841,7 +1856,7 @@ module.exports = class bitmart extends Exchange { async fetchOrdersByStatus (status, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrdersByStatus requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrdersByStatus() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1963,7 +1978,7 @@ module.exports = class bitmart extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1975,7 +1990,7 @@ module.exports = class bitmart extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const request = {}; @@ -2053,7 +2068,7 @@ module.exports = class bitmart extends Exchange { const orders = this.safeValue (data, 'orders', []); const firstOrder = this.safeValue (orders, 0); if (firstOrder === undefined) { - throw new OrderNotFound (this.id + ' fetchOrder could not find ' + symbol + ' order id ' + id); + throw new OrderNotFound (this.id + ' fetchOrder() could not find ' + symbol + ' order id ' + id); } return this.parseOrder (firstOrder, market); } else { diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitmax.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitmax.js index 0fa940d42..62cbf55d5 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitmax.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitmax.js @@ -133,8 +133,8 @@ module.exports = class bitmax extends Exchange { 'trading': { 'tierBased': true, 'percentage': true, - 'taker': 0.001, - 'maker': 0.001, + 'taker': 0.002, + 'maker': 0.002, }, }, 'precisionMode': TICK_SIZE, @@ -1039,6 +1039,7 @@ module.exports = class bitmax extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -1089,7 +1090,7 @@ module.exports = class bitmax extends Exchange { if ((type === 'stop_limit') || (type === 'stop_market')) { const stopPrice = this.safeFloat (params, 'stopPrice'); if (stopPrice === undefined) { - throw new InvalidOrder (this.id + ' createOrder requires a stopPrice parameter for ' + type + ' orders'); + throw new InvalidOrder (this.id + ' createOrder() requires a stopPrice parameter for ' + type + ' orders'); } else { request['stopPrice'] = this.priceToPrecision (symbol, stopPrice); params = this.omit (params, 'stopPrice'); @@ -1344,7 +1345,7 @@ module.exports = class bitmax extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); await this.loadAccounts (); diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitmex.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitmex.js index 536120bf6..4f5a0552a 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitmex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitmex.js @@ -4,7 +4,7 @@ const Exchange = require ('./base/Exchange'); const { TICK_SIZE } = require ('./base/functions/number'); -const { AuthenticationError, BadRequest, DDoSProtection, ExchangeError, ExchangeNotAvailable, InsufficientFunds, InvalidOrder, OrderNotFound, PermissionDenied } = require ('./base/errors'); +const { AuthenticationError, BadRequest, DDoSProtection, ExchangeError, ExchangeNotAvailable, InsufficientFunds, InvalidOrder, OrderNotFound, PermissionDenied, ArgumentsRequired } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -167,6 +167,7 @@ module.exports = class bitmex extends Exchange { 'Account has insufficient Available Balance': InsufficientFunds, 'Service unavailable': ExchangeNotAvailable, // {"error":{"message":"Service unavailable","name":"HTTPError"}} 'Server Error': ExchangeError, // {"error":{"message":"Server Error","name":"HTTPError"}} + 'Unable to cancel order due to existing state': InvalidOrder, }, }, 'precisionMode': TICK_SIZE, @@ -1219,6 +1220,43 @@ module.exports = class bitmex extends Exchange { } parseOrder (order, market = undefined) { + // + // { + // "orderID":"56222c7a-9956-413a-82cf-99f4812c214b", + // "clOrdID":"", + // "clOrdLinkID":"", + // "account":1455728, + // "symbol":"XBTUSD", + // "side":"Sell", + // "simpleOrderQty":null, + // "orderQty":1, + // "price":40000, + // "displayQty":null, + // "stopPx":null, + // "pegOffsetValue":null, + // "pegPriceType":"", + // "currency":"USD", + // "settlCurrency":"XBt", + // "ordType":"Limit", + // "timeInForce":"GoodTillCancel", + // "execInst":"", + // "contingencyType":"", + // "exDestination":"XBME", + // "ordStatus":"New", + // "triggered":"", + // "workingIndicator":true, + // "ordRejReason":"", + // "simpleLeavesQty":null, + // "leavesQty":1, + // "simpleCumQty":null, + // "cumQty":0, + // "avgPx":null, + // "multiLegReportingType":"SingleSecurity", + // "text":"Submitted via API.", + // "transactTime":"2021-01-02T21:38:49.246Z", + // "timestamp":"2021-01-02T21:38:49.246Z" + // } + // const status = this.parseOrderStatus (this.safeString (order, 'ordStatus')); const marketId = this.safeString (order, 'symbol'); const symbol = this.safeSymbol (marketId, market); @@ -1248,6 +1286,8 @@ module.exports = class bitmex extends Exchange { const clientOrderId = this.safeString (order, 'clOrdID'); const timeInForce = this.parseTimeInForce (this.safeString (order, 'timeInForce')); const stopPrice = this.safeFloat (order, 'stopPx'); + const execInst = this.safeString (order, 'execInst'); + const postOnly = (execInst === 'ParticipateDoNotInitiate'); return { 'info': order, 'id': id, @@ -1258,6 +1298,7 @@ module.exports = class bitmex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -1326,18 +1367,21 @@ module.exports = class bitmex extends Exchange { const request = { 'symbol': market['id'], 'side': this.capitalize (side), - 'orderQty': amount, + 'orderQty': parseFloat (this.amountToPrecision (symbol, amount)), 'ordType': orderType, }; - if (price !== undefined) { - if (orderType === 'Stop') { - const stopPrice = this.safeFloat2 (params, 'stopPx', 'stopPrice'); - request['stopPx'] = stopPrice; - params = this.omit (params, [ 'stopPx', 'stopPrice' ]); + if ((orderType === 'Stop') || (orderType === 'StopLimit') || (orderType === 'MarketIfTouched') || (orderType === 'LimitIfTouched')) { + const stopPrice = this.safeFloat2 (params, 'stopPx', 'stopPrice'); + if (stopPrice === undefined) { + throw new ArgumentsRequired (this.id + ' createOrder() requires a stopPx or stopPrice parameter for the ' + orderType + ' order type'); } else { - request['price'] = price; + request['stopPx'] = parseFloat (this.priceToPrecision (symbol, stopPrice)); + params = this.omit (params, [ 'stopPx', 'stopPrice' ]); } } + if ((orderType === 'Limit') || (orderType === 'StopLimit') || (orderType === 'LimitIfTouched')) { + request['price'] = parseFloat (this.priceToPrecision (symbol, price)); + } const clientOrderId = this.safeString2 (params, 'clOrdID', 'clientOrderId'); if (clientOrderId !== undefined) { request['clOrdID'] = clientOrderId; diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitpanda.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitpanda.js index 41f855168..b440aba7d 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitpanda.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitpanda.js @@ -790,7 +790,10 @@ module.exports = class bitpanda extends Exchange { // const feeInfo = this.safeValue (trade, 'fee', {}); trade = this.safeValue (trade, 'trade', trade); - const timestamp = this.parse8601 (this.safeString (trade, 'time')); + let timestamp = this.safeInteger (trade, 'trade_timestamp'); + if (timestamp === undefined) { + timestamp = this.parse8601 (this.safeString (trade, 'time')); + } const side = this.safeStringLower2 (trade, 'side', 'taker_side'); const price = this.safeFloat (trade, 'price'); const amount = this.safeFloat (trade, 'amount'); @@ -965,7 +968,7 @@ module.exports = class bitpanda extends Exchange { if (since !== undefined) { const to = this.safeString (params, 'to'); if (to === undefined) { - throw new ArgumentsRequired (this.id + ' fetchDeposits requires a "to" iso8601 string param with the since argument is specified'); + throw new ArgumentsRequired (this.id + ' fetchDeposits() requires a "to" iso8601 string param with the since argument is specified'); } request['from'] = this.iso8601 (since); } @@ -1020,7 +1023,7 @@ module.exports = class bitpanda extends Exchange { if (since !== undefined) { const to = this.safeString (params, 'to'); if (to === undefined) { - throw new ArgumentsRequired (this.id + ' fetchWithdrawals requires a "to" iso8601 string param with the since argument is specified'); + throw new ArgumentsRequired (this.id + ' fetchWithdrawals() requires a "to" iso8601 string param with the since argument is specified'); } request['from'] = this.iso8601 (since); } @@ -1325,6 +1328,7 @@ module.exports = class bitpanda extends Exchange { } const timeInForce = this.parseTimeInForce (this.safeString (order, 'time_in_force')); const stopPrice = this.safeFloat (order, 'trigger_price'); + const postOnly = this.safeValue (order, 'is_post_only'); const result = { 'id': id, 'clientOrderId': clientOrderId, @@ -1335,6 +1339,7 @@ module.exports = class bitpanda extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -1409,7 +1414,7 @@ module.exports = class bitpanda extends Exchange { if (uppercaseType === 'STOP') { const triggerPrice = this.safeFloat (params, 'trigger_price'); if (triggerPrice === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires a trigger_price param for ' + type + ' orders'); + throw new ArgumentsRequired (this.id + ' createOrder() requires a trigger_price param for ' + type + ' orders'); } request['trigger_price'] = this.priceToPrecision (symbol, triggerPrice); params = this.omit (params, 'trigger_price'); @@ -1560,7 +1565,7 @@ module.exports = class bitpanda extends Exchange { if (since !== undefined) { const to = this.safeString (params, 'to'); if (to === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a "to" iso8601 string param with the since argument is specified, max range is 100 days'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a "to" iso8601 string param with the since argument is specified, max range is 100 days'); } request['from'] = this.iso8601 (since); } @@ -1724,7 +1729,7 @@ module.exports = class bitpanda extends Exchange { if (since !== undefined) { const to = this.safeString (params, 'to'); if (to === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a "to" iso8601 string param with the since argument is specified, max range is 100 days'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a "to" iso8601 string param with the since argument is specified, max range is 100 days'); } request['from'] = this.iso8601 (since); } diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitso.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitso.js index 8ef7dc93c..d8bc07145 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitso.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitso.js @@ -4,7 +4,7 @@ const Exchange = require ('./base/Exchange'); const { ExchangeError, InvalidNonce, AuthenticationError, OrderNotFound } = require ('./base/errors'); -const { TICK_SIZE } = require ('./base/functions/number'); +const { TICK_SIZE, ROUND } = require ('./base/functions/number'); // --------------------------------------------------------------------------- @@ -181,23 +181,25 @@ module.exports = class bitso extends Exchange { const taker = this.safeFloat (flatRate, 'taker'); const feeTiers = this.safeValue (fees, 'structure', []); const fee = { - 'maker': maker, - 'taker': taker, + 'taker': parseFloat (this.decimalToPrecision (taker / 100, ROUND, 0.00000001, TICK_SIZE)), + 'maker': parseFloat (this.decimalToPrecision (maker / 100, ROUND, 0.00000001, TICK_SIZE)), 'percentage': true, 'tierBased': true, }; const takerFees = []; const makerFees = []; - for (let i = 0; i < feeTiers.length; i++) { - const tier = feeTiers[i]; + for (let j = 0; j < feeTiers.length; j++) { + const tier = feeTiers[j]; const volume = this.safeFloat (tier, 'volume'); const takerFee = this.safeFloat (tier, 'taker'); const makerFee = this.safeFloat (tier, 'maker'); - takerFees.push ([ volume, takerFee ]); - makerFees.push ([ volume, makerFee ]); - if (i === 0) { - fee['taker'] = taker; - fee['maker'] = maker; + const takerFeeToPrecision = parseFloat (this.decimalToPrecision (takerFee / 100, ROUND, 0.00000001, TICK_SIZE)); + const makerFeeToPrecision = parseFloat (this.decimalToPrecision (makerFee / 100, ROUND, 0.00000001, TICK_SIZE)); + takerFees.push ([ volume, takerFeeToPrecision ]); + makerFees.push ([ volume, makerFeeToPrecision ]); + if (j === 0) { + fee['taker'] = parseFloat (this.decimalToPrecision (taker / 100, ROUND, 0.00000001, TICK_SIZE)); + fee['maker'] = parseFloat (this.decimalToPrecision (maker / 100, ROUND, 0.00000001, TICK_SIZE)); } } const tiers = { @@ -434,6 +436,7 @@ module.exports = class bitso extends Exchange { 'symbol': symbol, 'type': orderType, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitstamp.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitstamp.js index 1b4a33a46..4671385bf 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitstamp.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitstamp.js @@ -3,7 +3,7 @@ // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { AuthenticationError, ExchangeError, NotSupported, PermissionDenied, InvalidNonce, OrderNotFound, InsufficientFunds, InvalidAddress, InvalidOrder, ArgumentsRequired, OnMaintenance } = require ('./base/errors'); +const { AuthenticationError, ExchangeError, NotSupported, PermissionDenied, InvalidNonce, OrderNotFound, InsufficientFunds, InvalidAddress, InvalidOrder, ArgumentsRequired, OnMaintenance, ExchangeNotAvailable } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -223,6 +223,7 @@ module.exports = class bitstamp extends Exchange { 'Order not found': OrderNotFound, 'Price is more than 20% below market price.': InvalidOrder, 'Bitstamp.net is under scheduled maintenance.': OnMaintenance, // { "error": "Bitstamp.net is under scheduled maintenance. We'll be back soon." } + 'Order could not be placed.': ExchangeNotAvailable, // Order could not be placed (perhaps due to internal error or trade halt). Please retry placing order. }, 'broad': { 'Minimum order size is': InvalidOrder, // Minimum order size is 5.0 EUR. @@ -705,7 +706,7 @@ module.exports = class bitstamp extends Exchange { const duration = this.parseTimeframe (timeframe); if (limit === undefined) { if (since === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a since argument or a limit argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a since argument or a limit argument'); } else { limit = 1000; const start = parseInt (since / 1000); @@ -771,8 +772,8 @@ module.exports = class bitstamp extends Exchange { return { 'info': balance, 'symbol': symbol, - 'maker': balance.fee, - 'taker': balance.fee, + 'maker': balance['fee'], + 'taker': balance['fee'], }; } @@ -1262,6 +1263,7 @@ module.exports = class bitstamp extends Exchange { 'symbol': symbol, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bittrex.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bittrex.js index 36d09cbb8..1e11d600a 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bittrex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bittrex.js @@ -3,7 +3,7 @@ // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { BadSymbol, ExchangeError, ExchangeNotAvailable, AuthenticationError, InvalidOrder, InsufficientFunds, OrderNotFound, DDoSProtection, PermissionDenied, AddressPending, OnMaintenance, BadRequest } = require ('./base/errors'); +const { BadSymbol, ExchangeError, ExchangeNotAvailable, AuthenticationError, InvalidOrder, InsufficientFunds, OrderNotFound, DDoSProtection, PermissionDenied, AddressPending, OnMaintenance, BadRequest, InvalidAddress } = require ('./base/errors'); const { TRUNCATE, DECIMAL_PLACES } = require ('./base/functions/number'); // --------------------------------------------------------------------------- @@ -23,6 +23,7 @@ module.exports = class bittrex extends Exchange { 'CORS': false, 'cancelAllOrders': true, 'cancelOrder': true, + 'createDepositAddress': true, 'createMarketOrder': true, 'createOrder': true, 'fetchBalance': true, @@ -137,10 +138,10 @@ module.exports = class bittrex extends Exchange { }, 'fees': { 'trading': { - 'tierBased': false, + 'tierBased': true, 'percentage': true, - 'maker': 0.0025, - 'taker': 0.0025, + 'maker': 0.0035, + 'taker': 0.0035, }, 'funding': { 'tierBased': false, @@ -758,7 +759,22 @@ module.exports = class bittrex extends Exchange { const isCeilingMarket = (uppercaseType === 'CEILING_MARKET'); const isCeilingOrder = isCeilingLimit || isCeilingMarket; if (isCeilingOrder) { - request['ceiling'] = this.priceToPrecision (symbol, price); + let cost = undefined; + if (isCeilingLimit) { + request['limit'] = this.priceToPrecision (symbol, price); + cost = this.safeFloat2 (params, 'ceiling', 'cost', amount); + } else if (isCeilingMarket) { + cost = this.safeFloat2 (params, 'ceiling', 'cost'); + if (cost === undefined) { + if (price === undefined) { + cost = amount; + } else { + cost = amount * price; + } + } + } + params = this.omit (params, [ 'ceiling', 'cost' ]); + request['ceiling'] = this.costToPrecision (symbol, cost); // bittrex only accepts IMMEDIATE_OR_CANCEL or FILL_OR_KILL for ceiling orders request['timeInForce'] = 'IMMEDIATE_OR_CANCEL'; } else { @@ -975,7 +991,7 @@ module.exports = class bittrex extends Exchange { 'GOOD_TIL_CANCELLED': 'GTC', 'IMMEDIATE_OR_CANCEL': 'IOC', 'FILL_OR_KILL': 'FOK', - 'POST_ONLY_GOOD_TIL_CANCELLED': 'POST_ONLY_GOOD_TIL_CANCELLED', + 'POST_ONLY_GOOD_TIL_CANCELLED': 'PO', }; return this.safeString (timeInForces, timeInForce, timeInForce); } @@ -1045,6 +1061,7 @@ module.exports = class bittrex extends Exchange { status = 'canceled'; } const timeInForce = this.parseTimeInForce (this.safeString (order, 'timeInForce')); + const postOnly = (timeInForce === 'PO'); return { 'id': this.safeString (order, 'id'), 'clientOrderId': undefined, @@ -1054,6 +1071,7 @@ module.exports = class bittrex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': direction, 'price': limit, 'stopPrice': undefined, @@ -1191,6 +1209,40 @@ module.exports = class bittrex extends Exchange { return this.parseOrders (response, market, since, limit); } + async createDepositAddress (code, params = {}) { + await this.loadMarkets (); + const currency = this.currency (code); + const request = { + 'currencySymbol': currency['id'], + }; + const response = await this.privatePostAddresses (this.extend (request, params)); + // + // { + // "status":"PROVISIONED", + // "currencySymbol":"XRP", + // "cryptoAddress":"rPVMhWBsfF9iMXYj3aAzJVkPDTFNSyWdKy", + // "cryptoAddressTag":"392034158" + // } + // + let address = this.safeString (response, 'cryptoAddress'); + const message = this.safeString (response, 'status'); + if (!address || message === 'REQUESTED') { + throw new AddressPending (this.id + ' the address for ' + code + ' is being generated (pending, not ready yet, retry again later)'); + } + let tag = this.safeString (response, 'cryptoAddressTag'); + if ((tag === undefined) && (currency['type'] in this.options['tag'])) { + tag = address; + address = currency['address']; + } + this.checkAddress (address); + return { + 'currency': code, + 'address': address, + 'tag': tag, + 'info': response, + }; + } + async fetchDepositAddress (code, params = {}) { await this.loadMarkets (); const currency = this.currency (code); @@ -1198,18 +1250,21 @@ module.exports = class bittrex extends Exchange { 'currencySymbol': currency['id'], }; const response = await this.privateGetAddressesCurrencySymbol (this.extend (request, params)); - // { - // "status": "PROVISIONED", - // "currencySymbol": "BTC", - // "cryptoAddress": "1PhmYjnJPZH5NUwV8AUjqkeDkCBpbE2xqX" - // } + // + // { + // "status":"PROVISIONED", + // "currencySymbol":"XRP", + // "cryptoAddress":"rPVMhWBsfF9iMXYj3aAzJVkPDTFNSyWdKy", + // "cryptoAddressTag":"392034158" + // } + // let address = this.safeString (response, 'cryptoAddress'); const message = this.safeString (response, 'status'); if (!address || message === 'REQUESTED') { throw new AddressPending (this.id + ' the address for ' + code + ' is being generated (pending, not ready yet, retry again later)'); } - let tag = undefined; - if (currency['type'] in this.options['tag']) { + let tag = this.safeString (response, 'cryptoAddressTag'); + if ((tag === undefined) && (currency['type'] in this.options['tag'])) { tag = address; address = currency['address']; } @@ -1309,6 +1364,9 @@ module.exports = class bittrex extends Exchange { this.throwExactlyMatchedException (this.exceptions['exact'], code, feedback); this.throwBroadlyMatchedException (this.exceptions['broad'], code, feedback); } + if ((code === 'NOT_FOUND') && (url.indexOf ('addresses') >= 0)) { + throw new InvalidAddress (feedback); + } // throw new ExchangeError (this.id + ' malformed response ' + this.json (response)); return; } diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitvavo.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitvavo.js index 10d62cfeb..e6633b568 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitvavo.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitvavo.js @@ -4,7 +4,7 @@ const Exchange = require ('./base/Exchange'); const { ExchangeError, BadSymbol, AuthenticationError, InsufficientFunds, InvalidOrder, ArgumentsRequired, OrderNotFound, InvalidAddress, BadRequest, RateLimitExceeded, PermissionDenied, ExchangeNotAvailable, AccountSuspended, OnMaintenance } = require ('./base/errors'); -const { TRUNCATE } = require ('./base/functions/number'); +const { SIGNIFICANT_DIGITS, DECIMAL_PLACES, TRUNCATE, ROUND } = require ('./base/functions/number'); // ---------------------------------------------------------------------------- @@ -221,12 +221,33 @@ module.exports = class bitvavo extends Exchange { 'expires': 1000, // 1 second }, }, + 'precisionMode': SIGNIFICANT_DIGITS, 'commonCurrencies': { 'MIOTA': 'IOTA', // https://github.com/ccxt/ccxt/issues/7487 }, }); } + currencyToPrecision (currency, fee) { + return this.decimalToPrecision (fee, 0, this.currencies[currency]['precision']); + } + + amountToPrecision (symbol, amount) { + // https://docs.bitfinex.com/docs/introduction#amount-precision + // The amount field allows up to 8 decimals. + // Anything exceeding this will be rounded to the 8th decimal. + return this.decimalToPrecision (amount, TRUNCATE, this.markets[symbol]['precision']['amount'], DECIMAL_PLACES); + } + + priceToPrecision (symbol, price) { + price = this.decimalToPrecision (price, ROUND, this.markets[symbol]['precision']['price'], this.precisionMode); + // https://docs.bitfinex.com/docs/introduction#price-precision + // The precision level of all trading prices is based on significant figures. + // All pairs on Bitfinex use up to 5 significant digits and up to 8 decimals (e.g. 1.2345, 123.45, 1234.5, 0.00012345). + // Prices submit with a precision larger than 5 will be cut by the API. + return this.decimalToPrecision (price, TRUNCATE, 8, DECIMAL_PLACES); + } + async fetchTime (params = {}) { const response = await this.publicGetTime (params); // @@ -768,16 +789,18 @@ module.exports = class bitvavo extends Exchange { const request = { 'market': market['id'], 'side': side, - 'orderType': type, + 'orderType': type, // 'market', 'limit', 'stopLoss', 'stopLossLimit', 'takeProfit', 'takeProfitLimit' // 'amount': this.amountToPrecision (symbol, amount), // 'price': this.priceToPrecision (symbol, price), // 'amountQuote': this.costToPrecision (symbol, cost), - // 'timeInForce': 'GTC', // "GTC" "IOC" "FOK" - // 'selfTradePrevention': "decrementAndCancel", // "decrementAndCancel" "cancelOldest" "cancelNewest" "cancelBoth" + // 'timeInForce': 'GTC', // 'GTC', 'IOC', 'FOK' + // 'selfTradePrevention': 'decrementAndCancel', // 'decrementAndCancel', 'cancelOldest', 'cancelNewest', 'cancelBoth' // 'postOnly': false, // 'disableMarketProtection': false, // don't cancel if the next fill price is 10% worse than the best fill price // 'responseRequired': true, // false is faster }; + const isStopLimit = (type === 'stopLossLimit') || (type === 'takeProfitLimit'); + const isStopMarket = (type === 'stopLoss') || (type === 'takeProfit'); if (type === 'market') { let cost = undefined; if (price !== undefined) { @@ -795,6 +818,26 @@ module.exports = class bitvavo extends Exchange { } else if (type === 'limit') { request['price'] = this.priceToPrecision (symbol, price); request['amount'] = this.amountToPrecision (symbol, amount); + } else if (isStopMarket || isStopLimit) { + let stopPrice = this.safeFloat2 (params, 'stopPrice', 'triggerAmount'); + if (stopPrice === undefined) { + if (isStopLimit) { + throw new ArgumentsRequired (this.id + ' createOrder requires a stopPrice parameter for a ' + type + ' order'); + } else if (isStopMarket) { + if (price === undefined) { + throw new ArgumentsRequired (this.id + ' createOrder requires a price argument or a stopPrice parameter for a ' + type + ' order'); + } else { + stopPrice = price; + } + } + } + if (isStopLimit) { + request['price'] = this.priceToPrecision (symbol, price); + } + params = this.omit (params, [ 'stopPrice', 'triggerAmount' ]); + request['triggerAmount'] = this.priceToPrecision (symbol, stopPrice); + request['triggerType'] = 'price'; + request['amount'] = this.amountToPrecision (symbol, amount); } const response = await this.privatePostOrder (this.extend (request, params)); // @@ -856,13 +899,13 @@ module.exports = class bitvavo extends Exchange { const response = await this.privatePutOrder (this.extend (request, params)); return this.parseOrder (response, market); } else { - throw new ArgumentsRequired (this.id + ' editOrder requires an amount argument, or a price argument, or non-empty params'); + throw new ArgumentsRequired (this.id + ' editOrder() requires an amount argument, or a price argument, or non-empty params'); } } async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -900,7 +943,7 @@ module.exports = class bitvavo extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); await this.loadMarkets (); @@ -949,7 +992,7 @@ module.exports = class bitvavo extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1010,24 +1053,13 @@ module.exports = class bitvavo extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); const request = { - // 'market': market['id'], - // 'limit': 500, - // 'start': since, - // 'end': this.milliseconds (), - // 'orderIdFrom': 'af76d6ce-9f7c-4006-b715-bb5d430652d0', - // 'orderIdTo': 'af76d6ce-9f7c-4006-b715-bb5d430652d0', + // 'market': market['id'], // rate limit 25 without a market, 1 with market specified }; let market = undefined; if (symbol !== undefined) { market = this.market (symbol); request['market'] = market['id']; } - if (since !== undefined) { - request['start'] = since; - } - if (limit !== undefined) { - request['limit'] = limit; // default 500, max 1000 - } const response = await this.privateGetOrdersOpen (this.extend (request, params)); // // [ @@ -1082,6 +1114,7 @@ module.exports = class bitvavo extends Exchange { 'partiallyFilled': 'open', 'expired': 'canceled', 'rejected': 'canceled', + 'awaitingTrigger': 'open', // https://github.com/ccxt/ccxt/issues/8489 }; return this.safeString (statuses, status, status); } @@ -1183,6 +1216,9 @@ module.exports = class bitvavo extends Exchange { } } const timeInForce = this.safeString (order, 'timeInForce'); + const postOnly = this.safeValue (order, 'postOnly'); + // https://github.com/ccxt/ccxt/issues/8489 + const stopPrice = this.safeFloat (order, 'triggerPrice'); return { 'info': order, 'id': id, @@ -1193,9 +1229,10 @@ module.exports = class bitvavo extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, - 'stopPrice': undefined, + 'stopPrice': stopPrice, 'amount': amount, 'cost': cost, 'average': average, @@ -1209,7 +1246,7 @@ module.exports = class bitvavo extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitz.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitz.js index 9b28cd463..816bb15a4 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitz.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bitz.js @@ -675,7 +675,7 @@ module.exports = class bitz extends Exchange { } } else { if (since !== undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a limit argument if the since argument is specified'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a limit argument if the since argument is specified'); } } const response = await this.marketGetKline (this.extend (request, params)); @@ -779,6 +779,7 @@ module.exports = class bitz extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -948,7 +949,7 @@ module.exports = class bitz extends Exchange { async fetchOrdersWithMethod (method, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bleutrade.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bleutrade.js index 385e7e455..67262da33 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bleutrade.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bleutrade.js @@ -662,6 +662,7 @@ module.exports = class bleutrade extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/braziliex.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/braziliex.js index ac9d460c0..0c54e4840 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/braziliex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/braziliex.js @@ -460,6 +460,7 @@ module.exports = class braziliex extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/btcalpha.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/btcalpha.js index 441947aa1..820234604 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/btcalpha.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/btcalpha.js @@ -348,6 +348,7 @@ module.exports = class btcalpha extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/btcbox.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/btcbox.js index af988de09..1a5f82456 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/btcbox.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/btcbox.js @@ -306,6 +306,7 @@ module.exports = class btcbox extends Exchange { 'side': side, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'status': status, 'symbol': symbol, 'price': price, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/btcmarkets.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/btcmarkets.js index 15bbd9610..2340d1960 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/btcmarkets.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/btcmarkets.js @@ -865,6 +865,7 @@ module.exports = class btcmarkets extends Exchange { const clientOrderId = this.safeString (order, 'clientOrderId'); const timeInForce = this.safeString (order, 'timeInForce'); const stopPrice = this.safeFloat (order, 'triggerPrice'); + const postOnly = this.safeValue (order, 'postOnly'); return { 'info': order, 'id': id, @@ -875,6 +876,7 @@ module.exports = class btcmarkets extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/btctradeua.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/btctradeua.js index 4d6743bf5..011bc33b6 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/btctradeua.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/btctradeua.js @@ -335,6 +335,7 @@ module.exports = class btctradeua extends Exchange { 'symbol': symbol, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'side': this.safeString (order, 'type'), 'price': this.safeFloat (order, 'price'), 'stopPrice': undefined, @@ -351,7 +352,7 @@ module.exports = class btctradeua extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/btcturk.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/btcturk.js index 24f79880b..32ea74550 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/btcturk.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/btcturk.js @@ -275,7 +275,7 @@ module.exports = class btcturk extends Exchange { }; if (type === 'market') { if (!('Total' in params)) { - throw new ExchangeError (this.id + ' createOrder requires the "Total" extra parameter for market orders (amount and price are both ignored)'); + throw new ExchangeError (this.id + ' createOrder() requires the "Total" extra parameter for market orders (amount and price are both ignored)'); } } else { request['Price'] = price; diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/buda.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/buda.js index 96da5d093..e78c228ea 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/buda.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/buda.js @@ -537,29 +537,65 @@ module.exports = class buda extends Exchange { } parseOrder (order, market = undefined) { + // + // { + // 'id': 63679183, + // 'uuid': 'f9697bee-627e-4175-983f-0d5a41963fec', + // 'market_id': 'ETH-CLP', + // 'account_id': 51590, + // 'type': 'Ask', + // 'state': 'received', + // 'created_at': '2021-01-04T08:29:52.730Z', + // 'fee_currency': 'CLP', + // 'price_type': 'limit', + // 'source': None, + // 'limit': ['741000.0', 'CLP'], + // 'amount': ['0.001', 'ETH'], + // 'original_amount': ['0.001', 'ETH'], + // 'traded_amount': ['0.0', 'ETH'], + // 'total_exchanged': ['0.0', 'CLP'], + // 'paid_fee': ['0.0', 'CLP'] + // } + // const id = this.safeString (order, 'id'); const timestamp = this.parse8601 (this.safeString (order, 'created_at')); const marketId = this.safeString (order, 'market_id'); - const symbol = this.safeSymbol (marketId, market); + const symbol = this.safeSymbol (marketId, market, '-'); const type = this.safeString (order, 'price_type'); const side = this.safeStringLower (order, 'type'); const status = this.parseOrderStatus (this.safeString (order, 'state')); - const amount = parseFloat (order['original_amount'][0]); - const remaining = parseFloat (order['amount'][0]); - const filled = parseFloat (order['traded_amount'][0]); - const cost = parseFloat (order['total_exchanged'][0]); - let price = this.safeFloat (order, 'limit'); - if (price !== undefined) { - price = parseFloat (price[0]); + const originalAmount = this.safeValue (order, 'original_amount', []); + const amount = this.safeFloat (originalAmount, 0); + const remainingAmount = this.safeValue (order, 'amount', []); + const remaining = this.safeFloat (remainingAmount, 0); + const tradedAmount = this.safeValue (order, 'traded_amount', []); + const filled = this.safeFloat (tradedAmount, 0); + const totalExchanged = this.safeValue (order, 'totalExchanged', []); + const cost = this.safeFloat (totalExchanged, 0); + const limitPrice = this.safeValue (order, 'limit', []); + let price = this.safeFloat (limitPrice, 0); + if (price === undefined) { + if (limitPrice !== undefined) { + price = limitPrice; + } } - if (cost > 0 && filled > 0) { - price = this.priceToPrecision (symbol, cost / filled); + let average = undefined; + if ((cost !== undefined) && (filled !== undefined) && (filled > 0)) { + average = this.priceToPrecision (symbol, cost / filled); + } + const paidFee = this.safeValue (order, 'paid_fee', []); + const feeCost = this.safeFloat (paidFee, 0); + let fee = undefined; + if (feeCost !== undefined) { + const feeCurrencyId = this.safeString (paidFee, 1); + const feeCurrencyCode = this.safeCurrencyCode (feeCurrencyId); + fee = { + 'cost': feeCost, + 'code': feeCurrencyCode, + }; } - const fee = { - 'cost': parseFloat (order['paid_fee'][0]), - 'currency': order['paid_fee'][1], - }; return { + 'info': order, 'id': id, 'clientOrderId': undefined, 'datetime': this.iso8601 (timestamp), @@ -569,17 +605,17 @@ module.exports = class buda extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, + 'average': average, 'cost': cost, 'amount': amount, 'filled': filled, 'remaining': remaining, 'trades': undefined, 'fee': fee, - 'info': order, - 'average': undefined, }; } diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bw.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bw.js index 57a8a64c7..388946b39 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bw.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bw.js @@ -761,6 +761,7 @@ module.exports = class bw extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -777,7 +778,7 @@ module.exports = class bw extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -812,7 +813,7 @@ module.exports = class bw extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bybit.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bybit.js index 7a9159515..f74d0db18 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bybit.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bybit.js @@ -17,6 +17,7 @@ module.exports = class bybit extends Exchange { 'version': 'v2', 'userAgent': undefined, 'rateLimit': 100, + 'hostname': 'bybit.com', // bybit.com, bytick.com 'has': { 'cancelOrder': true, 'CORS': true, @@ -59,9 +60,9 @@ module.exports = class bybit extends Exchange { '1y': 'Y', }, 'urls': { - 'test': 'https://api-testnet.bybit.com', + 'test': 'https://api-testnet.{hostname}', 'logo': 'https://user-images.githubusercontent.com/51840849/76547799-daff5b80-649e-11ea-87fb-3be9bac08954.jpg', - 'api': 'https://api.bybit.com', + 'api': 'https://api.{hostname}', 'www': 'https://www.bybit.com', 'doc': [ 'https://bybit-exchange.github.io/docs/inverse/', @@ -72,117 +73,112 @@ module.exports = class bybit extends Exchange { 'referral': 'https://www.bybit.com/app/register?ref=X7Prm', }, 'api': { + 'v2': { + 'public': { + 'get': [ + 'orderBook/L2', + 'kline/list', + 'tickers', + 'trading-records', + 'symbols', + 'liq-records', + 'mark-price-kline', + 'index-price-kline', + 'premium-index-kline', + 'open-interest', + 'big-deal', + 'account-ratio', + 'time', + 'announcement', + ], + }, + 'private': { + 'get': [ + 'order/list', + 'order', + 'stop-order/list', + 'stop-order', + 'position/list', + 'execution/list', + 'trade/closed-pnl/list', + 'funding/prev-funding-rate', + 'funding/prev-funding', + 'funding/predicted-funding', + 'account/api-key', + 'account/lcp', + 'wallet/balance', + 'wallet/fund/records', + 'wallet/withdraw/list', + 'exchange-order/list', + ], + 'post': [ + 'order/create', + 'order/cancel', + 'order/cancelAll', + 'order/replace', + 'stop-order/create', + 'stop-order/cancel', + 'stop-order/cancelAll', + 'stop-order/replace', + 'position/change-position-margin', + 'position/trading-stop', + 'position/leverage/save', + ], + }, + }, 'public': { - 'get': [ - 'orderBook/L2', - 'kline/list', - 'tickers', - 'trading-records', - 'symbols', - 'liq-records', - 'mark-price-kline', - 'open-interest', - 'big-deal', - 'account-ratio', - 'time', - 'announcement', - ], + 'linear': { + 'get': [ + 'kline', + 'recent-trading-records', + 'funding/prev-funding-rate', + 'mark-price-kline', + 'index-price-kline', + 'premium-index-kline', + 'risk-limit', + ], + }, }, 'private': { - 'get': [ - 'order/list', - 'order', - 'stop-order/list', - 'stop-order', - 'position/list', - 'wallet/balance', - 'execution/list', - 'trade/closed-pnl/list', - 'account/lcp', - 'exchange-order/list', - ], - 'post': [ - 'order/create', - 'order/cancel', - 'order/cancelAll', - 'order/replace', - 'stop-order/create', - 'stop-order/cancel', - 'stop-order/cancelAll', - 'stop-order/replace', - ], + 'linear': { + 'get': [ + 'order/list', + 'order/search', + 'stop-order/list', + 'stop-order/search', + 'position/list', + 'trade/execution/list', + 'trade/closed-pnl/list', + 'funding/predicted-funding', + 'funding/prev-funding', + ], + 'post': [ + 'order/create', + 'order/cancel', + 'order/cancel-all', + 'order/replace', + 'stop-order/create', + 'stop-order/cancel', + 'stop-order/cancel-all', + 'stop-order/replace', + 'position/set-auto-add-margin', + 'position/switch-isolated', + 'tpsl/switch-mode', + 'position/add-margin', + 'position/set-leverage', + 'position/trading-stop', + ], + }, }, 'openapi': { - 'get': [ - 'order/list', // deprecated - 'stop-order/list', // deprecated - 'wallet/risk-limit/list', - 'funding/prev-funding-rate', - 'funding/prev-funding', - 'funding/predicted-funding', - 'api-key', - 'wallet/fund/records', - 'wallet/withdraw/list', - ], - 'post': [ - 'order/replace', // deprecated - 'stop-order/create', // deprecated - 'stop-order/cancel', // deprecated - 'stop-order/replace', // deprecated - 'position/trading-stop', - 'wallet/risk-limit', - ], - }, - 'publicLinear': { - 'get': [ - 'kline', - 'recent-trading-records', - 'funding/prev-funding-rate', - 'mark-price-kline', - 'risk-limit', - ], - }, - 'privateLinear': { - 'get': [ - 'order/list', - 'order/search', - 'stop-order/list', - 'stop-order/search', - 'position/list', - 'trade/execution/list', - 'trade/closed-pnl/list', - 'funding/prev-funding', - 'funding/predicted-funding', - ], - 'post': [ - 'order/create', - 'order/cancel', - 'order/cancel-all', - 'order/replace', - 'stop-order/create', - 'stop-order/cancel', - 'stop-order/cancel-all', - 'stop-order/replace', - 'position/switch-isolated', - 'position/set-auto-add-margin', - 'tpsl/switch-mode', - 'position/set-leverage', - 'position/trading-stop', - 'position/add-margin', - ], - }, - 'position': { - 'post': [ - 'change-position-margin', - ], - }, - 'user': { - 'get': [ - 'leverage', // deprecated - ], - 'post': [ - 'leverage/save', - ], + 'wallet': { + 'get': [ + 'risk-limit/list', + ], + 'post': [ + 'risk-limit', + ], + }, }, }, 'httpExceptions': { @@ -285,6 +281,7 @@ module.exports = class bybit extends Exchange { 'options': { 'marketTypes': { 'BTC/USDT': 'linear', + 'BCH/USDT': 'linear', 'ETH/USDT': 'linear', 'LTC/USDT': 'linear', 'XTZ/USDT': 'linear', @@ -292,10 +289,10 @@ module.exports = class bybit extends Exchange { }, 'code': 'BTC', 'cancelAllOrders': { - 'method': 'privatePostOrderCancelAll', // privatePostStopOrderCancelAll + // 'method': 'v2PrivatePostOrderCancelAll', // v2PrivatePostStopOrderCancelAll }, 'recvWindow': 5 * 1000, // 5 sec default - 'timeDifference': 0, // the difference between system clock and Binance clock + 'timeDifference': 0, // the difference between system clock and exchange server clock 'adjustForTimeDifference': false, // controls the adjustment logic upon instantiation }, 'fees': { @@ -327,7 +324,7 @@ module.exports = class bybit extends Exchange { } async fetchTime (params = {}) { - const response = await this.publicGetTime (params); + const response = await this.v2PublicGetTime (params); // // { // ret_code: 0, @@ -345,30 +342,7 @@ module.exports = class bybit extends Exchange { if (this.options['adjustForTimeDifference']) { await this.loadTimeDifference (); } - const response = await this.publicGetSymbols (params); - // - // { - // ret_code: 0, - // ret_msg: 'OK', - // ext_code: '', - // ext_info: '', - // result: [ - // { - // name: 'BTCUSD', - // base_currency: 'BTC', - // quote_currency: 'USD', - // price_scale: 2, - // taker_fee: '0.00075', - // maker_fee: '-0.00025', - // leverage_filter: { min_leverage: 1, max_leverage: 100, leverage_step: '0.01' }, - // price_filter: { min_price: '0.5', max_price: '999999.5', tick_size: '0.5' }, - // lot_size_filter: { max_trading_qty: 1000000, min_trading_qty: 1, qty_step: 1 } - // }, - // ], - // time_now: '1583930495.454196' - // } - // - // sandbox/testnet + const response = await this.v2PublicGetSymbols (params); // // { // "ret_code":0, @@ -377,8 +351,8 @@ module.exports = class bybit extends Exchange { // "ext_info":"", // "result":[ // { - // "symbol":"BTCUSD", - // "symbol_alias":"BTCUSD", + // "name":"BTCUSD", + // "alias":"BTCUSD", // "status":"Trading", // "base_currency":"BTC", // "quote_currency":"USD", @@ -388,9 +362,22 @@ module.exports = class bybit extends Exchange { // "leverage_filter":{"min_leverage":1,"max_leverage":100,"leverage_step":"0.01"}, // "price_filter":{"min_price":"0.5","max_price":"999999.5","tick_size":"0.5"}, // "lot_size_filter":{"max_trading_qty":1000000,"min_trading_qty":1,"qty_step":1} - // } + // }, + // { + // "name":"BTCUSDT", + // "alias":"BTCUSDT", + // "status":"Trading", + // "base_currency":"BTC", + // "quote_currency":"USDT", + // "price_scale":2, + // "taker_fee":"0.00075", + // "maker_fee":"-0.00025", + // "leverage_filter":{"min_leverage":1,"max_leverage":100,"leverage_step":"0.01"}, + // "price_filter":{"min_price":"0.5","max_price":"999999.5","tick_size":"0.5"}, + // "lot_size_filter":{"max_trading_qty":100,"min_trading_qty":0.001,"qty_step":0.001} + // }, // ], - // "time_now":"1605916574.118500" + // "time_now":"1610539664.818033" // } // const markets = this.safeValue (response, 'result', []); @@ -457,65 +444,6 @@ module.exports = class bybit extends Exchange { return result; } - async fetchBalance (params = {}) { - await this.loadMarkets (); - const request = {}; - const coin = this.safeString (params, 'coin'); - const code = this.safeString (params, 'code'); - if (coin !== undefined) { - request['coin'] = coin; - } else if (code !== undefined) { - const currency = this.currency (code); - request['coin'] = currency['id']; - } - const response = await this.privateGetWalletBalance (this.extend (request, params)); - // - // { - // ret_code: 0, - // ret_msg: 'OK', - // ext_code: '', - // ext_info: '', - // result: { - // BTC: { - // equity: 0, - // available_balance: 0, - // used_margin: 0, - // order_margin: 0, - // position_margin: 0, - // occ_closing_fee: 0, - // occ_funding_fee: 0, - // wallet_balance: 0, - // realised_pnl: 0, - // unrealised_pnl: 0, - // cum_realised_pnl: 0, - // given_cash: 0, - // service_cash: 0 - // } - // }, - // time_now: '1583937810.370020', - // rate_limit_status: 119, - // rate_limit_reset_ms: 1583937810367, - // rate_limit: 120 - // } - // - const result = { - 'info': response, - }; - const balances = this.safeValue (response, 'result', {}); - const currencyIds = Object.keys (balances); - for (let i = 0; i < currencyIds.length; i++) { - const currencyId = currencyIds[i]; - const balance = balances[currencyId]; - const code = this.safeCurrencyCode (currencyId); - const account = this.account (); - account['free'] = this.safeFloat (balance, 'available_balance'); - account['used'] = this.safeFloat (balance, 'used_margin'); - account['total'] = this.safeFloat (balance, 'equity'); - result[code] = account; - } - return this.parseBalance (result); - } - parseTicker (ticker, market = undefined) { // // fetchTicker @@ -594,7 +522,7 @@ module.exports = class bybit extends Exchange { const request = { 'symbol': market['id'], }; - const response = await this.publicGetTickers (this.extend (request, params)); + const response = await this.v2PublicGetTickers (this.extend (request, params)); // // { // ret_code: 0, @@ -642,7 +570,7 @@ module.exports = class bybit extends Exchange { async fetchTickers (symbols = undefined, params = {}) { await this.loadMarkets (); - const response = await this.publicGetTickers (params); + const response = await this.v2PublicGetTickers (params); // // { // ret_code: 0, @@ -740,7 +668,7 @@ module.exports = class bybit extends Exchange { const now = this.seconds (); if (since === undefined) { if (limit === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a since argument or a limit argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a since argument or a limit argument'); } else { request['from'] = now - limit * duration; } @@ -752,7 +680,7 @@ module.exports = class bybit extends Exchange { } const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - const method = (marketType === 'linear') ? 'publicLinearGetKline' : 'publicGetKlineList'; + const method = (marketType === 'linear') ? 'publicLinearGetKline' : 'v2PublicGetKlineList'; const response = await this[method] (this.extend (request, params)); // // inverse perpetual BTC/USD @@ -907,7 +835,7 @@ module.exports = class bybit extends Exchange { } const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - const method = (marketType === 'linear') ? 'publicLinearGetRecentTradingRecords' : 'publicGetTradingRecords'; + const method = (marketType === 'linear') ? 'publicLinearGetRecentTradingRecords' : 'v2PublicGetTradingRecords'; const response = await this[method] (this.extend (request, params)); // // { @@ -961,7 +889,7 @@ module.exports = class bybit extends Exchange { const request = { 'symbol': market['id'], }; - const response = await this.publicGetOrderBookL2 (this.extend (request, params)); + const response = await this.v2PublicGetOrderBookL2 (this.extend (request, params)); // // { // ret_code: 0, @@ -984,6 +912,65 @@ module.exports = class bybit extends Exchange { return this.parseOrderBook (result, timestamp, 'Buy', 'Sell', 'price', 'size'); } + async fetchBalance (params = {}) { + await this.loadMarkets (); + const request = {}; + const coin = this.safeString (params, 'coin'); + const code = this.safeString (params, 'code'); + if (coin !== undefined) { + request['coin'] = coin; + } else if (code !== undefined) { + const currency = this.currency (code); + request['coin'] = currency['id']; + } + const response = await this.v2PrivateGetWalletBalance (this.extend (request, params)); + // + // { + // ret_code: 0, + // ret_msg: 'OK', + // ext_code: '', + // ext_info: '', + // result: { + // BTC: { + // equity: 0, + // available_balance: 0, + // used_margin: 0, + // order_margin: 0, + // position_margin: 0, + // occ_closing_fee: 0, + // occ_funding_fee: 0, + // wallet_balance: 0, + // realised_pnl: 0, + // unrealised_pnl: 0, + // cum_realised_pnl: 0, + // given_cash: 0, + // service_cash: 0 + // } + // }, + // time_now: '1583937810.370020', + // rate_limit_status: 119, + // rate_limit_reset_ms: 1583937810367, + // rate_limit: 120 + // } + // + const result = { + 'info': response, + }; + const balances = this.safeValue (response, 'result', {}); + const currencyIds = Object.keys (balances); + for (let i = 0; i < currencyIds.length; i++) { + const currencyId = currencyIds[i]; + const balance = balances[currencyId]; + const code = this.safeCurrencyCode (currencyId); + const account = this.account (); + account['free'] = this.safeFloat (balance, 'available_balance'); + account['used'] = this.safeFloat (balance, 'used_margin'); + account['total'] = this.safeFloat (balance, 'equity'); + result[code] = account; + } + return this.parseBalance (result); + } + parseOrderStatus (status) { const statuses = { // basic orders @@ -1166,6 +1153,7 @@ module.exports = class bybit extends Exchange { } const timeInForce = this.parseTimeInForce (this.safeString (order, 'time_in_force')); const stopPrice = this.safeFloat (order, 'stop_px'); + const postOnly = (timeInForce === 'PO'); return { 'info': order, 'id': id, @@ -1176,6 +1164,7 @@ module.exports = class bybit extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -1192,7 +1181,7 @@ module.exports = class bybit extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1206,7 +1195,7 @@ module.exports = class bybit extends Exchange { }; const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - let method = (marketType === 'linear') ? 'privateLinearGetOrderSearch' : 'privateGetOrder'; + let method = (marketType === 'linear') ? 'privateLinearGetOrderSearch' : 'v2PrivateGetOrder'; const stopOrderId = this.safeString (params, 'stop_order_id'); if (stopOrderId === undefined) { const orderLinkId = this.safeString (params, 'order_link_id'); @@ -1214,7 +1203,7 @@ module.exports = class bybit extends Exchange { request['order_id'] = id; } } else { - method = (marketType === 'linear') ? 'privateLinearGetStopOrderSearch' : 'privateGetStopOrder'; + method = (marketType === 'linear') ? 'privateLinearGetStopOrderSearch' : 'v2PrivateGetStopOrder'; } const response = await this[method] (this.extend (request, params)); // @@ -1327,7 +1316,7 @@ module.exports = class bybit extends Exchange { if (price !== undefined) { request['price'] = parseFloat (this.priceToPrecision (symbol, price)); } else { - throw new ArgumentsRequired (this.id + ' createOrder requires a price argument for a ' + type + ' order'); + throw new ArgumentsRequired (this.id + ' createOrder() requires a price argument for a ' + type + ' order'); } } const clientOrderId = this.safeString2 (params, 'order_link_id', 'clientOrderId'); @@ -1339,7 +1328,7 @@ module.exports = class bybit extends Exchange { const basePrice = this.safeValue (params, 'base_price'); const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - let method = (marketType === 'linear') ? 'privateLinearPostOrderCreate' : 'privatePostOrderCreate'; + let method = (marketType === 'linear') ? 'privateLinearPostOrderCreate' : 'v2PrivatePostOrderCreate'; if (marketType === 'linear') { method = 'privateLinearPostOrderCreate'; request['reduce_only'] = false; @@ -1347,15 +1336,15 @@ module.exports = class bybit extends Exchange { } if (stopPx !== undefined) { if (basePrice === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires both the stop_px and base_price params for a conditional ' + type + ' order'); + throw new ArgumentsRequired (this.id + ' createOrder() requires both the stop_px and base_price params for a conditional ' + type + ' order'); } else { - method = (marketType === 'linear') ? 'privateLinearPostStopOrderCreate' : 'openapiPostStopOrderCreate'; + method = (marketType === 'linear') ? 'privateLinearPostStopOrderCreate' : 'v2PrivatePostStopOrderCreate'; request['stop_px'] = parseFloat (this.priceToPrecision (symbol, stopPx)); request['base_price'] = parseFloat (this.priceToPrecision (symbol, basePrice)); params = this.omit (params, [ 'stop_px', 'stopPrice', 'base_price' ]); } } else if (basePrice !== undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires both the stop_px and base_price params for a conditional ' + type + ' order'); + throw new ArgumentsRequired (this.id + ' createOrder() requires both the stop_px and base_price params for a conditional ' + type + ' order'); } const response = await this[method] (this.extend (request, params)); // @@ -1441,7 +1430,7 @@ module.exports = class bybit extends Exchange { async editOrder (id, symbol, type, side, amount = undefined, price = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' editOrder requires an symbol argument'); + throw new ArgumentsRequired (this.id + ' editOrder() requires an symbol argument'); } const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); @@ -1457,17 +1446,23 @@ module.exports = class bybit extends Exchange { // 'stop_order_id': id, // only for conditional orders // 'p_r_trigger_price': 123.45, // new trigger price also known as stop_px }; - let method = (marketType === 'linear') ? 'privateLinearPostOrderReplace' : 'openapiPostOrderReplace'; + let method = (marketType === 'linear') ? 'privateLinearPostOrderReplace' : 'v2PrivatePostOrderReplace'; const stopOrderId = this.safeString (params, 'stop_order_id'); if (stopOrderId !== undefined) { - method = (marketType === 'linear') ? 'privateLinearPostStopOrderReplace' : 'openapiPostStopOrderReplace'; + method = (marketType === 'linear') ? 'privateLinearPostStopOrderReplace' : 'v2PrivatePostStopOrderReplace'; request['stop_order_id'] = stopOrderId; params = this.omit (params, [ 'stop_order_id' ]); } else { request['order_id'] = id; } if (amount !== undefined) { - request['p_r_qty'] = parseInt (this.amountToPrecision (symbol, amount)); + let qty = this.amountToPrecision (symbol, amount); + if (market['inverse']) { + qty = parseInt (qty); + } else { + qty = parseFloat (qty); + } + request['p_r_qty'] = qty; } if (price !== undefined) { request['p_r_price'] = parseFloat (this.priceToPrecision (symbol, price)); @@ -1510,7 +1505,7 @@ module.exports = class bybit extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1524,7 +1519,7 @@ module.exports = class bybit extends Exchange { }; const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeValue (marketTypes, symbol); - let method = (marketType === 'linear') ? 'privateLinearPostOrderCancel' : 'privatePostOrderCancel'; + let method = (marketType === 'linear') ? 'privateLinearPostOrderCancel' : 'v2PrivatePostOrderCancel'; const stopOrderId = this.safeString (params, 'stop_order_id'); if (stopOrderId === undefined) { const orderLinkId = this.safeString (params, 'order_link_id'); @@ -1532,7 +1527,7 @@ module.exports = class bybit extends Exchange { request['order_id'] = id; } } else { - method = (marketType === 'linear') ? 'privateLinearPostStopOrderCancel' : 'openapiPostStopOrderCancel'; + method = (marketType === 'linear') ? 'privateLinearPostStopOrderCancel' : 'v2PrivatePostStopOrderCancel'; } const response = await this[method] (this.extend (request, params)); const result = this.safeValue (response, 'result', {}); @@ -1541,17 +1536,17 @@ module.exports = class bybit extends Exchange { async cancelAllOrders (symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelAllOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelAllOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); const request = { 'symbol': market['id'], }; - const options = this.safeValue (this.options, 'cancelAllOrders'); + const options = this.safeValue (this.options, 'cancelAllOrders', {}); const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - const defaultMethod = (marketType === 'linear') ? 'privateLinearPostOrderCancelAll' : 'privatePostOrderCancelAll'; + const defaultMethod = (marketType === 'linear') ? 'privateLinearPostOrderCancelAll' : 'v2PrivatePostOrderCancelAll'; const method = this.safeString (options, 'method', defaultMethod); const response = await this[method] (this.extend (request, params)); const result = this.safeValue (response, 'result', []); @@ -1583,7 +1578,7 @@ module.exports = class bybit extends Exchange { const options = this.safeValue (this.options, 'fetchOrders', {}); const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - let defaultMethod = (marketType === 'linear') ? 'privateLinearGetOrderList' : 'openapiGetOrderList'; + let defaultMethod = (marketType === 'linear') ? 'privateLinearGetOrderList' : 'v2PrivateGetOrderList'; let query = params; if (('stop_order_id' in params) || ('stop_order_status' in params)) { let stopOrderStatus = this.safeValue (params, 'stopOrderStatus'); @@ -1594,7 +1589,7 @@ module.exports = class bybit extends Exchange { request['stop_order_status'] = stopOrderStatus; query = this.omit (params, 'stop_order_status'); } - defaultMethod = (marketType === 'linear') ? 'privateLinearGetStopOrderList' : 'openapiGetStopOrderList'; + defaultMethod = (marketType === 'linear') ? 'privateLinearGetStopOrderList' : 'v2PrivateGetStopOrderList'; } const method = this.safeString (options, 'method', defaultMethod); const response = await this[method] (this.extend (request, query)); @@ -1760,7 +1755,7 @@ module.exports = class bybit extends Exchange { if (symbol === undefined) { const orderId = this.safeString (params, 'order_id'); if (orderId === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument or an order_id param'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument or an order_id param'); } else { request['order_id'] = orderId; params = this.omit (params, 'order_id'); @@ -1777,7 +1772,7 @@ module.exports = class bybit extends Exchange { } const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - const method = (marketType === 'linear') ? 'privateLinearGetTradeExecutionList' : 'privateGetExecutionList'; + const method = (marketType === 'linear') ? 'privateLinearGetTradeExecutionList' : 'v2PrivateGetExecutionList'; const response = await this[method] (this.extend (request, params)); // // inverse @@ -1867,41 +1862,60 @@ module.exports = class bybit extends Exchange { } async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { - if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchWithdrawals() requires a currency code argument'); - } await this.loadMarkets (); - const currency = this.currency (code); const request = { - 'currency': currency['id'], + // 'coin': currency['id'], + // 'currency': currency['id'], // alias + // 'start_date': this.iso8601 (since), + // 'end_date': this.iso8601 (till), + 'wallet_fund_type': 'Deposit', // Deposit, Withdraw, RealisedPNL, Commission, Refund, Prize, ExchangeOrderWithdraw, ExchangeOrderDeposit + // 'page': 1, + // 'limit': 20, // max 50 }; - if (limit !== undefined) { - request['count'] = limit; + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + request['coin'] = currency['id']; } - const response = await this.privateGetGetDeposits (this.extend (request, params)); + if (since !== undefined) { + request['start_date'] = this.ymd (since); + } + if (limit !== undefined) { + request['limit'] = limit; + } + const response = await this.v2PrivateGetWalletFundRecords (this.extend (request, params)); // // { - // "jsonrpc": "2.0", - // "id": 5611, + // "ret_code": 0, + // "ret_msg": "ok", + // "ext_code": "", // "result": { - // "count": 1, // "data": [ // { - // "address": "2N35qDKDY22zmJq9eSyiAerMD4enJ1xx6ax", - // "amount": 5, - // "currency": "BTC", - // "received_timestamp": 1549295017670, - // "state": "completed", - // "transaction_id": "230669110fdaf0a0dbcdc079b6b8b43d5af29cc73683835b9bc6b3406c065fda", - // "updated_timestamp": 1549295130159 + // "id": 234467, + // "user_id": 1, + // "coin": "BTC", + // "wallet_id": 27913, + // "type": "Realized P&L", + // "amount": "-0.00000006", + // "tx_id": "", + // "address": "BTCUSD", + // "wallet_balance": "0.03000330", + // "exec_time": "2019-12-09T00:00:25.000Z", + // "cross_seq": 0 // } // ] - // } + // }, + // "ext_info": null, + // "time_now": "1577481867.115552", + // "rate_limit_status": 119, + // "rate_limit_reset_ms": 1577481867122, + // "rate_limit": 120 // } // const result = this.safeValue (response, 'result', {}); const data = this.safeValue (result, 'data', []); - return this.parseTransactions (data, currency, since, limit, params); + return this.parseTransactions (data, currency, since, limit); } async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { @@ -1920,12 +1934,12 @@ module.exports = class bybit extends Exchange { request['coin'] = currency['id']; } if (since !== undefined) { - request['start_date'] = this.iso8601 (since); + request['start_date'] = this.ymd (since); } if (limit !== undefined) { request['limit'] = limit; } - const response = await this.openapiGetWalletWithdrawList (this.extend (request, params)); + const response = await this.v2PrivateGetWalletWithdrawList (this.extend (request, params)); // // { // "ret_code": 0, @@ -1991,9 +2005,25 @@ module.exports = class bybit extends Exchange { // "updated_at": "2019-06-11T02:20:24.000Z" // } // + // fetchDeposits ledger entries + // + // { + // "id": 234467, + // "user_id": 1, + // "coin": "BTC", + // "wallet_id": 27913, + // "type": "Realized P&L", + // "amount": "-0.00000006", + // "tx_id": "", + // "address": "BTCUSD", + // "wallet_balance": "0.03000330", + // "exec_time": "2019-12-09T00:00:25.000Z", + // "cross_seq": 0 + // } + // const currencyId = this.safeString (transaction, 'coin'); const code = this.safeCurrencyCode (currencyId, currency); - const timestamp = this.parse8601 (this.safeString (transaction, 'submited_at')); + const timestamp = this.parse8601 (this.safeString2 (transaction, 'submited_at', 'exec_time')); const updated = this.parse8601 (this.safeString (transaction, 'updated_at')); const status = this.parseTransactionStatus (this.safeString (transaction, 'status')); const address = this.safeString (transaction, 'address'); @@ -2043,12 +2073,12 @@ module.exports = class bybit extends Exchange { request['coin'] = currency['id']; } if (since !== undefined) { - request['start_date'] = this.iso8601 (since); + request['start_date'] = this.ymd (since); } if (limit !== undefined) { request['limit'] = limit; } - const response = await this.openapiGetWalletFundRecords (this.extend (request, params)); + const response = await this.v2PrivateGetWalletFundRecords (this.extend (request, params)); // // { // "ret_code": 0, @@ -2147,45 +2177,28 @@ module.exports = class bybit extends Exchange { } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { - let url = this.urls['api']; - let request = path; + let url = this.implodeParams (this.urls['api'], { 'hostname': this.hostname }); + const type = this.safeString (api, 0); + const section = this.safeString (api, 1); + let request = '/' + type + '/' + section + '/' + path; // public v2 - if (api === 'public') { - request = '/' + this.version + '/' + api + '/' + request; + if (section === 'public') { if (Object.keys (params).length) { request += '?' + this.rawencode (params); } - } else if (api === 'publicLinear') { - request = '/public/linear/' + request; + } else if (type === 'public') { if (Object.keys (params).length) { request += '?' + this.rawencode (params); } } else { this.checkRequiredCredentials (); - if (api === 'openapi') { - request = '/open-api/' + request; - } else if (api === 'private') { - // private v2 - request = '/' + this.version + '/' + api + '/' + request; - } else if (api === 'privateLinear') { - request = '/private/linear/' + request; - } else { - // position, user - request = '/' + api + '/' + request; - } const timestamp = this.nonce (); const query = this.extend (params, { 'api_key': this.apiKey, 'recv_window': this.options['recvWindow'], 'timestamp': timestamp, }); - let auth = this.rawencode (this.keysort (query)); - // https://github.com/ccxt/ccxt/issues/7377 - // https://github.com/ccxt/ccxt/issues/7515 - // bybit encodes whole floats as integers without .0 for conditional stop-orders only - if (path.indexOf ('stop-order') >= 0) { - auth = auth.replace ('.0&', '&'); - } + const auth = this.rawencode (this.keysort (query)); const signature = this.hmac (this.encode (auth), this.encode (this.secret)); if (method === 'POST') { body = this.json (this.extend (query, { diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bytetrade.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bytetrade.js index bbd1af6f6..25953b6f7 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bytetrade.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/bytetrade.js @@ -285,7 +285,7 @@ module.exports = class bytetrade extends Exchange { async fetchBalance (params = {}) { if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired (this.id + ' fetchDeposits requires this.apiKey or userid argument'); + throw new ArgumentsRequired (this.id + ' fetchDeposits() requires this.apiKey or userid argument'); } await this.loadMarkets (); const request = { @@ -580,6 +580,7 @@ module.exports = class bytetrade extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -597,7 +598,7 @@ module.exports = class bytetrade extends Exchange { async createOrder (symbol, type, side, amount, price = undefined, params = {}) { this.checkRequiredDependencies (); if (this.apiKey === undefined) { - throw new ArgumentsRequired ('createOrder requires this.apiKey or userid in params'); + throw new ArgumentsRequired ('createOrder() requires this.apiKey or userid in params'); } await this.loadMarkets (); const market = this.market (symbol); @@ -781,7 +782,7 @@ module.exports = class bytetrade extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchOrder requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchOrder() requires this.apiKey or userid argument'); } await this.loadMarkets (); const request = { @@ -799,7 +800,7 @@ module.exports = class bytetrade extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchOpenOrders requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchOpenOrders() requires this.apiKey or userid argument'); } await this.loadMarkets (); const request = { @@ -819,7 +820,7 @@ module.exports = class bytetrade extends Exchange { async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchClosedOrders requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchClosedOrders() requires this.apiKey or userid argument'); } await this.loadMarkets (); let market = undefined; @@ -839,7 +840,7 @@ module.exports = class bytetrade extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchOrders requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchOrders() requires this.apiKey or userid argument'); } await this.loadMarkets (); let market = undefined; @@ -859,10 +860,10 @@ module.exports = class bytetrade extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (this.apiKey === undefined) { - throw new ArgumentsRequired ('cancelOrder requires hasAlreadyAuthenticatedSuccessfully'); + throw new ArgumentsRequired ('cancelOrder() requires hasAlreadyAuthenticatedSuccessfully'); } if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -960,7 +961,7 @@ module.exports = class bytetrade extends Exchange { async transfer (code, amount, address, message = '', params = {}) { this.checkRequiredDependencies (); if (this.apiKey === undefined) { - throw new ArgumentsRequired ('transfer requires this.apiKey'); + throw new ArgumentsRequired ('transfer() requires this.apiKey'); } await this.loadMarkets (); const currency = this.currency (code); @@ -1066,7 +1067,7 @@ module.exports = class bytetrade extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchMyTrades requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchMyTrades() requires this.apiKey or userid argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1086,7 +1087,7 @@ module.exports = class bytetrade extends Exchange { async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchDeposits requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchDeposits() requires this.apiKey or userid argument'); } let currency = undefined; const request = { @@ -1109,7 +1110,7 @@ module.exports = class bytetrade extends Exchange { async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchWithdrawals requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchWithdrawals() requires this.apiKey or userid argument'); } let currency = undefined; const request = { @@ -1193,7 +1194,7 @@ module.exports = class bytetrade extends Exchange { async fetchDepositAddress (code, params = {}) { await this.loadMarkets (); if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchDepositAddress requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchDepositAddress() requires this.apiKey or userid argument'); } const currency = this.currency (code); const request = { @@ -1219,7 +1220,7 @@ module.exports = class bytetrade extends Exchange { this.checkAddress (address); await this.loadMarkets (); if (this.apiKey === undefined) { - throw new ArgumentsRequired ('withdraw requires this.apiKey'); + throw new ArgumentsRequired (this.id + ' withdraw() requires this.apiKey'); } const addressResponse = await this.fetchDepositAddress (code); const chainTypeString = this.safeString (addressResponse, 'chainType'); diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/huobiru.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/cdax.js similarity index 53% rename from Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/huobiru.js rename to Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/cdax.js index 21e0de149..8bd27989d 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/huobiru.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/cdax.js @@ -6,25 +6,27 @@ const huobipro = require ('./huobipro.js'); // --------------------------------------------------------------------------- -module.exports = class huobiru extends huobipro { +module.exports = class cdax extends huobipro { describe () { return this.deepExtend (super.describe (), { - 'id': 'huobiru', - 'name': 'Huobi Russia', + 'id': 'cdax', + 'name': 'CDAX', 'countries': [ 'RU' ], - 'hostname': 'www.huobi.com.ru', - 'pro': true, + 'hostname': 'cdax.io', + 'pro': false, 'urls': { - 'logo': 'https://user-images.githubusercontent.com/1294454/52978816-e8552e00-33e3-11e9-98ed-845acfece834.jpg', + 'logo': 'https://user-images.githubusercontent.com/1294454/102157692-fd406280-3e90-11eb-8d46-4511b617cd17.jpg', 'api': { 'market': 'https://{hostname}/api', 'public': 'https://{hostname}/api', 'private': 'https://{hostname}/api', + 'v2Public': 'https://{hostname}/api', + 'v2Private': 'https://{hostname}/api', }, - 'www': 'https://www.huobi.com.ru/ru-ru', - 'referral': 'https://www.huobi.com.ru/invite?invite_code=esc74', - 'doc': 'https://github.com/cloudapidoc/API_Docs_en', - 'fees': 'https://www.huobi.com.ru/ru-ru/about/fee/', + 'www': 'https://cdax.io', + 'referral': 'https://cdax.io/invite?invite_code=esc74', + 'doc': 'https://github.com/cloudapidoc/API_Docs', + 'fees': 'https://cdax.io/about/fee', }, }); } diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/cex.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/cex.js index 082db07c7..77473d391 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/cex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/cex.js @@ -676,10 +676,9 @@ module.exports = class cex extends Exchange { let cost = undefined; if (market !== undefined) { symbol = market['symbol']; - cost = this.safeFloat (order, 'ta:' + market['quote']); - if (cost === undefined) { - cost = this.safeFloat (order, 'tta:' + market['quote']); - } + const taCost = this.safeFloat (order, 'ta:' + market['quote']); + const ttaCost = this.safeFloat (order, 'tta:' + market['quote']); + cost = this.sum (taCost, ttaCost); const baseFee = 'fa:' + market['base']; const baseTakerFee = 'tfa:' + market['base']; const quoteFee = 'fa:' + market['quote']; @@ -883,6 +882,7 @@ module.exports = class cex extends Exchange { 'symbol': symbol, 'type': (price === undefined) ? 'market' : 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -918,7 +918,7 @@ module.exports = class cex extends Exchange { await this.loadMarkets (); const method = 'privatePostArchivedOrdersPair'; if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchClosedOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchClosedOrders() requires a symbol argument'); } const market = this.market (symbol); const request = { 'pair': market['id'] }; @@ -1252,10 +1252,10 @@ module.exports = class cex extends Exchange { async editOrder (id, symbol, type, side, amount = undefined, price = undefined, params = {}) { if (amount === undefined) { - throw new ArgumentsRequired (this.id + ' editOrder requires a amount argument'); + throw new ArgumentsRequired (this.id + ' editOrder() requires a amount argument'); } if (price === undefined) { - throw new ArgumentsRequired (this.id + ' editOrder requires a price argument'); + throw new ArgumentsRequired (this.id + ' editOrder() requires a price argument'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinbase.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinbase.js index 61fc650dc..cfceba2a4 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinbase.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinbase.js @@ -3,7 +3,7 @@ // ---------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { ExchangeError, ArgumentsRequired, AuthenticationError, RateLimitExceeded } = require ('./base/errors'); +const { ExchangeError, ArgumentsRequired, AuthenticationError, RateLimitExceeded, InvalidNonce } = require ('./base/errors'); // ---------------------------------------------------------------------------- @@ -123,23 +123,28 @@ module.exports = class coinbase extends Exchange { }, }, 'exceptions': { - 'two_factor_required': AuthenticationError, // 402 When sending money over 2fa limit - 'param_required': ExchangeError, // 400 Missing parameter - 'validation_error': ExchangeError, // 400 Unable to validate POST/PUT - 'invalid_request': ExchangeError, // 400 Invalid request - 'personal_details_required': AuthenticationError, // 400 User’s personal detail required to complete this request - 'identity_verification_required': AuthenticationError, // 400 Identity verification is required to complete this request - 'jumio_verification_required': AuthenticationError, // 400 Document verification is required to complete this request - 'jumio_face_match_verification_required': AuthenticationError, // 400 Document verification including face match is required to complete this request - 'unverified_email': AuthenticationError, // 400 User has not verified their email - 'authentication_error': AuthenticationError, // 401 Invalid auth (generic) - 'invalid_token': AuthenticationError, // 401 Invalid Oauth token - 'revoked_token': AuthenticationError, // 401 Revoked Oauth token - 'expired_token': AuthenticationError, // 401 Expired Oauth token - 'invalid_scope': AuthenticationError, // 403 User hasn’t authenticated necessary scope - 'not_found': ExchangeError, // 404 Resource not found - 'rate_limit_exceeded': RateLimitExceeded, // 429 Rate limit exceeded - 'internal_server_error': ExchangeError, // 500 Internal server error + 'exact': { + 'two_factor_required': AuthenticationError, // 402 When sending money over 2fa limit + 'param_required': ExchangeError, // 400 Missing parameter + 'validation_error': ExchangeError, // 400 Unable to validate POST/PUT + 'invalid_request': ExchangeError, // 400 Invalid request + 'personal_details_required': AuthenticationError, // 400 User’s personal detail required to complete this request + 'identity_verification_required': AuthenticationError, // 400 Identity verification is required to complete this request + 'jumio_verification_required': AuthenticationError, // 400 Document verification is required to complete this request + 'jumio_face_match_verification_required': AuthenticationError, // 400 Document verification including face match is required to complete this request + 'unverified_email': AuthenticationError, // 400 User has not verified their email + 'authentication_error': AuthenticationError, // 401 Invalid auth (generic) + 'invalid_token': AuthenticationError, // 401 Invalid Oauth token + 'revoked_token': AuthenticationError, // 401 Revoked Oauth token + 'expired_token': AuthenticationError, // 401 Expired Oauth token + 'invalid_scope': AuthenticationError, // 403 User hasn’t authenticated necessary scope + 'not_found': ExchangeError, // 404 Resource not found + 'rate_limit_exceeded': RateLimitExceeded, // 429 Rate limit exceeded + 'internal_server_error': ExchangeError, // 500 Internal server error + }, + 'broad': { + 'request timestamp expired': InvalidNonce, // {"errors":[{"id":"authentication_error","message":"request timestamp expired"}]} + }, }, 'commonCurrencies': { 'CGLD': 'CELO', @@ -172,7 +177,11 @@ module.exports = class coinbase extends Exchange { } async fetchAccounts (params = {}) { - const response = await this.privateGetAccounts (params); + await this.loadMarkets (); + const request = { + 'limit': 100, + }; + const response = await this.privateGetAccounts (this.extend (request, params)); // // { // "id": "XLM", @@ -703,7 +712,10 @@ module.exports = class coinbase extends Exchange { async fetchBalance (params = {}) { await this.loadMarkets (); - const response = await this.privateGetAccounts (params); + const request = { + 'limit': 100, + }; + const response = await this.privateGetAccounts (this.extend (request, params)); const balances = this.safeValue (response, 'data'); const accounts = this.safeValue (params, 'type', this.options['accounts']); const result = { 'info': response }; @@ -1175,7 +1187,9 @@ module.exports = class coinbase extends Exchange { // let errorCode = this.safeString (response, 'error'); if (errorCode !== undefined) { - this.throwExactlyMatchedException (this.exceptions, errorCode, feedback); + const errorMessage = this.safeString (response, 'error_description'); + this.throwExactlyMatchedException (this.exceptions['exact'], errorCode, feedback); + this.throwBroadlyMatchedException (this.exceptions['broad'], errorMessage, feedback); throw new ExchangeError (feedback); } const errors = this.safeValue (response, 'errors'); @@ -1184,8 +1198,10 @@ module.exports = class coinbase extends Exchange { const numErrors = errors.length; if (numErrors > 0) { errorCode = this.safeString (errors[0], 'id'); + const errorMessage = this.safeString (errors[0], 'message'); if (errorCode !== undefined) { - this.throwExactlyMatchedException (this.exceptions, errorCode, feedback); + this.throwExactlyMatchedException (this.exceptions['exact'], errorCode, feedback); + this.throwBroadlyMatchedException (this.exceptions['broad'], errorMessage, feedback); throw new ExchangeError (feedback); } } diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinbasepro.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinbasepro.js index f28b951c4..582c03a61 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinbasepro.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinbasepro.js @@ -345,6 +345,7 @@ module.exports = class coinbasepro extends Exchange { } async fetchAccounts (params = {}) { + await this.loadMarkets (); const response = await this.privateGetAccounts (params); // // [ @@ -523,12 +524,20 @@ module.exports = class coinbasepro extends Exchange { // trade_id: 82047307, // maker_order_id: '0f358725-2134-435e-be11-753912a326e0', // taker_order_id: '252b7002-87a3-425c-ac73-f5b9e23f3caf', + // order_id: 'd50ec984-77a8-460a-b958-66f114b0de9b', // side: 'sell', // size: '0.00513192', // price: '9314.78', // product_id: 'BTC-USD', + // profile_id: '6244401d-c078-40d9-b305-7ad3551bc3b0', // sequence: 12038915443, // time: '2020-01-31T20:03:41.158814Z' + // created_at: '2014-11-07T22:19:28.578544Z', + // liquidity: 'T', + // fee: '0.00025', + // settled: true, + // usd_volume: '0.0924556000000000', + // user_id: '595eb864313c2b02ddf2937d' // } // const timestamp = this.parse8601 (this.safeString2 (trade, 'time', 'created_at')); @@ -537,10 +546,15 @@ module.exports = class coinbasepro extends Exchange { let feeRate = undefined; let feeCurrency = undefined; let takerOrMaker = undefined; + let cost = undefined; if (market !== undefined) { + const feeCurrencyId = this.safeStringLower (market, 'quoteId'); + const costField = feeCurrencyId + '_value'; + cost = this.safeFloat (trade, costField); feeCurrency = market['quote']; - if ('liquidity' in trade) { - takerOrMaker = (trade['liquidity'] === 'T') ? 'taker' : 'maker'; + const liquidity = this.safeString (trade, 'liquidity'); + if (liquidity !== undefined) { + takerOrMaker = (liquidity === 'T') ? 'taker' : 'maker'; feeRate = market[takerOrMaker]; } } @@ -560,6 +574,9 @@ module.exports = class coinbasepro extends Exchange { } const price = this.safeFloat (trade, 'price'); const amount = this.safeFloat (trade, 'size'); + if (cost === undefined) { + cost = amount * price; + } return { 'id': id, 'order': orderId, @@ -573,14 +590,14 @@ module.exports = class coinbasepro extends Exchange { 'price': price, 'amount': amount, 'fee': fee, - 'cost': price * amount, + 'cost': cost, }; } async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { // as of 2018-08-23 if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -600,6 +617,9 @@ module.exports = class coinbasepro extends Exchange { const request = { 'id': market['id'], // fixes issue #2 }; + if (limit !== undefined) { + request['limit'] = limit; // default 100 + } const response = await this.publicGetProductsIdTrades (this.extend (request, params)); return this.parseTrades (response, market, since, limit); } @@ -676,6 +696,27 @@ module.exports = class coinbasepro extends Exchange { } parseOrder (order, market = undefined) { + // + // createOrder + // + // { + // "id": "d0c5340b-6d6c-49d9-b567-48c4bfca13d2", + // "price": "0.10000000", + // "size": "0.01000000", + // "product_id": "BTC-USD", + // "side": "buy", + // "stp": "dc", + // "type": "limit", + // "time_in_force": "GTC", + // "post_only": false, + // "created_at": "2016-12-08T20:02:28.53864Z", + // "fill_fees": "0.0000000000000000", + // "filled_size": "0.00000000", + // "executed_value": "0.0000000000000000", + // "status": "pending", + // "settled": false + // } + // const timestamp = this.parse8601 (this.safeString (order, 'created_at')); const marketId = this.safeString (order, 'product_id'); market = this.safeMarket (marketId, market, '-'); @@ -706,9 +747,13 @@ module.exports = class coinbasepro extends Exchange { const id = this.safeString (order, 'id'); const type = this.safeString (order, 'type'); const side = this.safeString (order, 'side'); + const timeInForce = this.safeString (order, 'time_in_force'); + const postOnly = this.safeValue (order, 'post_only'); + const stopPrice = this.safeFloat (order, 'stop_price'); + const clientOrderId = this.safeString (order, 'client_oid'); return { 'id': id, - 'clientOrderId': undefined, + 'clientOrderId': clientOrderId, 'info': order, 'timestamp': timestamp, 'datetime': this.iso8601 (timestamp), @@ -716,10 +761,11 @@ module.exports = class coinbasepro extends Exchange { 'status': status, 'symbol': market['symbol'], 'type': type, - 'timeInForce': undefined, + 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, - 'stopPrice': undefined, + 'stopPrice': stopPrice, 'cost': cost, 'amount': amount, 'filled': filled, @@ -732,10 +778,18 @@ module.exports = class coinbasepro extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { await this.loadMarkets (); - const request = { - 'id': id, - }; - const response = await this.privateGetOrdersId (this.extend (request, params)); + const request = {}; + const clientOrderId = this.safeString2 (params, 'clientOrderId', 'client_oid'); + let method = undefined; + if (clientOrderId === undefined) { + method = 'privateGetOrdersId'; + request['id'] = id; + } else { + method = 'privateGetOrdersClientClientOid'; + request['client_oid'] = clientOrderId; + params = this.omit (params, [ 'clientOrderId', 'client_oid' ]); + } + const response = await this[method] (this.extend (request, params)); return this.parseOrder (response); } @@ -753,17 +807,10 @@ module.exports = class coinbasepro extends Exchange { } async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); const request = { 'status': 'all', }; - let market = undefined; - if (symbol !== undefined) { - market = this.market (symbol); - request['product_id'] = market['id']; - } - const response = await this.privateGetOrders (this.extend (request, params)); - return this.parseOrders (response, market, since, limit); + return await this.fetchOpenOrders (symbol, since, limit, this.extend (request, params)); } async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { @@ -774,47 +821,131 @@ module.exports = class coinbasepro extends Exchange { market = this.market (symbol); request['product_id'] = market['id']; } + if (limit !== undefined) { + request['limit'] = limit; // default 100 + } const response = await this.privateGetOrders (this.extend (request, params)); return this.parseOrders (response, market, since, limit); } async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); const request = { 'status': 'done', }; - let market = undefined; - if (symbol !== undefined) { - market = this.market (symbol); - request['product_id'] = market['id']; - } - const response = await this.privateGetOrders (this.extend (request, params)); - return this.parseOrders (response, market, since, limit); + return await this.fetchOpenOrders (symbol, since, limit, this.extend (request, params)); } async createOrder (symbol, type, side, amount, price = undefined, params = {}) { await this.loadMarkets (); - // let oid = this.nonce ().toString (); + const market = this.market (symbol); const request = { - 'product_id': this.marketId (symbol), - 'side': side, - 'size': this.amountToPrecision (symbol, amount), + // common params -------------------------------------------------- + // 'client_oid': clientOrderId, 'type': type, + 'side': side, + 'product_id': market['id'], + // 'size': this.amountToPrecision (symbol, amount), + // 'stp': 'dc', // self-trade prevention, dc = decrease and cancel, co = cancel oldest, cn = cancel newest, cb = cancel both + // 'stop': 'loss', // "loss" = stop loss below price, "entry" = take profit above price + // 'stop_price': this.priceToPrecision (symbol, price), + // limit order params --------------------------------------------- + // 'price': this.priceToPrecision (symbol, price), + // 'size': this.amountToPrecision (symbol, amount), + // 'time_in_force': 'GTC', // GTC, GTT, IOC, or FOK + // 'cancel_after' [optional]* min, hour, day, requires time_in_force to be GTT + // 'post_only': false, // invalid when time_in_force is IOC or FOK + // market order params -------------------------------------------- + // 'size': this.amountToPrecision (symbol, amount), + // 'funds': this.costToPrecision (symbol, amount), }; + const clientOrderId = this.safeString2 (params, 'clientOrderId', 'client_oid'); + if (clientOrderId !== undefined) { + request['client_oid'] = clientOrderId; + params = this.omit (params, [ 'clientOrderId', 'client_oid' ]); + } + const stopPrice = this.safeFloat2 (params, 'stopPrice', 'stop_price'); + if (stopPrice !== undefined) { + request['stop_price'] = this.priceToPrecision (symbol, stopPrice); + params = this.omit (params, [ 'stopPrice', 'stop_price' ]); + } + const timeInForce = this.safeString2 (params, 'timeInForce', 'time_in_force'); + if (timeInForce !== undefined) { + request['time_in_force'] = timeInForce; + params = this.omit (params, [ 'timeInForce', 'time_in_force' ]); + } if (type === 'limit') { request['price'] = this.priceToPrecision (symbol, price); + request['size'] = this.amountToPrecision (symbol, amount); + } else if (type === 'market') { + let cost = this.safeFloat2 (params, 'cost', 'funds'); + if (cost === undefined) { + if (price !== undefined) { + cost = amount * price; + } + } else { + params = this.omit (params, [ 'cost', 'funds' ]); + } + if (cost !== undefined) { + request['funds'] = this.costToPrecision (symbol, cost); + } else { + request['size'] = this.amountToPrecision (symbol, amount); + } } const response = await this.privatePostOrders (this.extend (request, params)); - return this.parseOrder (response); + // + // { + // "id": "d0c5340b-6d6c-49d9-b567-48c4bfca13d2", + // "price": "0.10000000", + // "size": "0.01000000", + // "product_id": "BTC-USD", + // "side": "buy", + // "stp": "dc", + // "type": "limit", + // "time_in_force": "GTC", + // "post_only": false, + // "created_at": "2016-12-08T20:02:28.53864Z", + // "fill_fees": "0.0000000000000000", + // "filled_size": "0.00000000", + // "executed_value": "0.0000000000000000", + // "status": "pending", + // "settled": false + // } + // + return this.parseOrder (response, market); } async cancelOrder (id, symbol = undefined, params = {}) { await this.loadMarkets (); - return await this.privateDeleteOrdersId ({ 'id': id }); + const request = { + // 'product_id': market['id'], // the request will be more performant if you include it + }; + const clientOrderId = this.safeString2 (params, 'clientOrderId', 'client_oid'); + let method = undefined; + if (clientOrderId === undefined) { + method = 'privateDeleteOrdersId'; + request['id'] = id; + } else { + method = 'privateDeleteOrdersClientClientOid'; + request['client_oid'] = clientOrderId; + params = this.omit (params, [ 'clientOrderId', 'client_oid' ]); + } + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['product_id'] = market['symbol']; // the request will be more performant if you include it + } + return await this[method] (this.extend (request, params)); } async cancelAllOrders (symbol = undefined, params = {}) { - return await this.privateDeleteOrders (params); + await this.loadMarkets (); + const request = {}; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['product_id'] = market['symbol']; // the request will be more performant if you include it + } + return await this.privateDeleteOrders (this.extend (request, params)); } calculateFee (symbol, type, side, amount, price, takerOrMaker = 'taker', params = {}) { @@ -880,6 +1011,9 @@ module.exports = class coinbasepro extends Exchange { } else { method += 'Crypto'; request['crypto_address'] = address; + if (tag !== undefined) { + request['destination_tag'] = tag; + } } const response = await this[method] (this.extend (request, params)); if (!response) { @@ -965,7 +1099,7 @@ module.exports = class coinbasepro extends Exchange { const currencyId = this.safeString (transaction, 'currency'); const code = this.safeCurrencyCode (currencyId, currency); const status = this.parseTransactionStatus (transaction); - const amount = this.safeFloat (transaction, 'amount'); + let amount = this.safeFloat (transaction, 'amount'); let type = this.safeString (transaction, 'type'); let address = this.safeString (details, 'crypto_address'); const tag = this.safeString (details, 'destination_tag'); @@ -976,9 +1110,12 @@ module.exports = class coinbasepro extends Exchange { address = this.safeString (details, 'sent_to_address', address); const feeCost = this.safeFloat (details, 'fee'); if (feeCost !== undefined) { + if (amount !== undefined) { + amount -= feeCost; + } fee = { 'cost': feeCost, - 'code': code, + 'currency': code, }; } } diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coincheck.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coincheck.js index 6b2618ad3..807882d02 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coincheck.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coincheck.js @@ -81,10 +81,11 @@ module.exports = class coincheck extends Exchange { 'markets': { 'BTC/JPY': { 'id': 'btc_jpy', 'symbol': 'BTC/JPY', 'base': 'BTC', 'quote': 'JPY', 'baseId': 'btc', 'quoteId': 'jpy' }, // the only real pair // 'ETH/JPY': { 'id': 'eth_jpy', 'symbol': 'ETH/JPY', 'base': 'ETH', 'quote': 'JPY', 'baseId': 'eth', 'quoteId': 'jpy' }, - // 'ETC/JPY': { 'id': 'etc_jpy', 'symbol': 'ETC/JPY', 'base': 'ETC', 'quote': 'JPY', 'baseId': 'etc', 'quoteId': 'jpy' }, + 'ETC/JPY': { 'id': 'etc_jpy', 'symbol': 'ETC/JPY', 'base': 'ETC', 'quote': 'JPY', 'baseId': 'etc', 'quoteId': 'jpy' }, // 'DAO/JPY': { 'id': 'dao_jpy', 'symbol': 'DAO/JPY', 'base': 'DAO', 'quote': 'JPY', 'baseId': 'dao', 'quoteId': 'jpy' }, // 'LSK/JPY': { 'id': 'lsk_jpy', 'symbol': 'LSK/JPY', 'base': 'LSK', 'quote': 'JPY', 'baseId': 'lsk', 'quoteId': 'jpy' }, - // 'FCT/JPY': { 'id': 'fct_jpy', 'symbol': 'FCT/JPY', 'base': 'FCT', 'quote': 'JPY', 'baseId': 'fct', 'quoteId': 'jpy' }, + 'FCT/JPY': { 'id': 'fct_jpy', 'symbol': 'FCT/JPY', 'base': 'FCT', 'quote': 'JPY', 'baseId': 'fct', 'quoteId': 'jpy' }, + 'MONA/JPY': { 'id': 'mona_jpy', 'symbol': 'MONA/JPY', 'base': 'MONA', 'quote': 'JPY', 'baseId': 'mona', 'quoteId': 'jpy' }, // 'XMR/JPY': { 'id': 'xmr_jpy', 'symbol': 'XMR/JPY', 'base': 'XMR', 'quote': 'JPY', 'baseId': 'xmr', 'quoteId': 'jpy' }, // 'REP/JPY': { 'id': 'rep_jpy', 'symbol': 'REP/JPY', 'base': 'REP', 'quote': 'JPY', 'baseId': 'rep', 'quoteId': 'jpy' }, // 'XRP/JPY': { 'id': 'xrp_jpy', 'symbol': 'XRP/JPY', 'base': 'XRP', 'quote': 'JPY', 'baseId': 'xrp', 'quoteId': 'jpy' }, @@ -93,7 +94,7 @@ module.exports = class coincheck extends Exchange { // 'LTC/JPY': { 'id': 'ltc_jpy', 'symbol': 'LTC/JPY', 'base': 'LTC', 'quote': 'JPY', 'baseId': 'ltc', 'quoteId': 'jpy' }, // 'DASH/JPY': { 'id': 'dash_jpy', 'symbol': 'DASH/JPY', 'base': 'DASH', 'quote': 'JPY', 'baseId': 'dash', 'quoteId': 'jpy' }, // 'ETH/BTC': { 'id': 'eth_btc', 'symbol': 'ETH/BTC', 'base': 'ETH', 'quote': 'BTC', 'baseId': 'eth', 'quoteId': 'btc' }, - // 'ETC/BTC': { 'id': 'etc_btc', 'symbol': 'ETC/BTC', 'base': 'ETC', 'quote': 'BTC', 'baseId': 'etc', 'quoteId': 'btc' }, + 'ETC/BTC': { 'id': 'etc_btc', 'symbol': 'ETC/BTC', 'base': 'ETC', 'quote': 'BTC', 'baseId': 'etc', 'quoteId': 'btc' }, // 'LSK/BTC': { 'id': 'lsk_btc', 'symbol': 'LSK/BTC', 'base': 'LSK', 'quote': 'BTC', 'baseId': 'lsk', 'quoteId': 'btc' }, // 'FCT/BTC': { 'id': 'fct_btc', 'symbol': 'FCT/BTC', 'base': 'FCT', 'quote': 'BTC', 'baseId': 'fct', 'quoteId': 'btc' }, // 'XMR/BTC': { 'id': 'xmr_btc', 'symbol': 'XMR/BTC', 'base': 'XMR', 'quote': 'BTC', 'baseId': 'xmr', 'quoteId': 'btc' }, @@ -197,6 +198,7 @@ module.exports = class coincheck extends Exchange { 'side': side, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'status': status, 'symbol': symbol, 'price': price, @@ -210,11 +212,12 @@ module.exports = class coincheck extends Exchange { } async fetchOrderBook (symbol, limit = undefined, params = {}) { - if (symbol !== 'BTC/JPY') { - throw new BadSymbol (this.id + ' fetchOrderBook () supports BTC/JPY only'); - } await this.loadMarkets (); - const response = await this.publicGetOrderBooks (params); + const market = this.market (symbol); + const request = { + 'pair': market['id'], + }; + const response = await this.publicGetOrderBooks (this.extend (request, params)); return this.parseOrderBook (response); } @@ -223,7 +226,11 @@ module.exports = class coincheck extends Exchange { throw new BadSymbol (this.id + ' fetchTicker () supports BTC/JPY only'); } await this.loadMarkets (); - const ticker = await this.publicGetTicker (params); + const market = this.market (symbol); + const request = { + 'pair': market['id'], + }; + const ticker = await this.publicGetTicker (this.extend (request, params)); const timestamp = this.safeTimestamp (ticker, 'timestamp'); const last = this.safeFloat (ticker, 'last'); return { @@ -337,9 +344,6 @@ module.exports = class coincheck extends Exchange { } async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { - if (symbol !== 'BTC/JPY') { - throw new BadSymbol (this.id + ' fetchTrades () supports BTC/JPY only'); - } await this.loadMarkets (); const market = this.market (symbol); const request = { diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinegg.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinegg.js index 0918ef9a0..e270e3bf7 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinegg.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinegg.js @@ -154,6 +154,7 @@ module.exports = class coinegg extends Exchange { }, 'commonCurrencies': { 'JBC': 'JubaoCoin', + 'SBTC': 'Super Bitcoin', }, }); } @@ -367,6 +368,7 @@ module.exports = class coinegg extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinex.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinex.js index 91f4c2052..cc344ee72 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinex.js @@ -92,6 +92,8 @@ module.exports = class coinex extends Exchange { 'order/status', 'order/status/batch', 'order/user/deals', + 'sub_account/balance', + 'sub_account/transfer/history', ], 'post': [ 'balance/coin/withdraw', @@ -499,6 +501,7 @@ module.exports = class coinex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -562,7 +565,7 @@ module.exports = class coinex extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -759,7 +762,7 @@ module.exports = class coinex extends Exchange { const timestamp = this.safeTimestamp (transaction, 'create_time'); const type = ('coin_withdraw_id' in transaction) ? 'withdraw' : 'deposit'; const status = this.parseTransactionStatus (this.safeString (transaction, 'status')); - const amount = this.safeFloat (transaction, 'amount'); + let amount = this.safeFloat (transaction, 'amount'); let feeCost = this.safeFloat (transaction, 'tx_fee'); if (type === 'deposit') { feeCost = 0; @@ -768,6 +771,10 @@ module.exports = class coinex extends Exchange { 'cost': feeCost, 'currency': code, }; + // https://github.com/ccxt/ccxt/issues/8321 + if (amount !== undefined) { + amount = amount - feeCost; + } return { 'info': transaction, 'id': id, @@ -787,7 +794,7 @@ module.exports = class coinex extends Exchange { async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchWithdrawals requires a currency code argument'); + throw new ArgumentsRequired (this.id + ' fetchWithdrawals() requires a currency code argument'); } await this.loadMarkets (); const currency = this.currency (code); @@ -845,7 +852,7 @@ module.exports = class coinex extends Exchange { async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchDeposits requires a currency code argument'); + throw new ArgumentsRequired (this.id + ' fetchDeposits() requires a currency code argument'); } await this.loadMarkets (); const currency = this.currency (code); @@ -910,7 +917,7 @@ module.exports = class coinex extends Exchange { 'tonce': nonce.toString (), }, query); query = this.keysort (query); - const urlencoded = this.urlencode (query); + const urlencoded = this.rawencode (query); const signature = this.hash (this.encode (urlencoded + '&secret_key=' + this.secret)); headers = { 'Authorization': signature.toUpperCase (), diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinfalcon.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinfalcon.js index 563a4c987..6c264b4ec 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinfalcon.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinfalcon.js @@ -217,7 +217,7 @@ module.exports = class coinfalcon extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -320,6 +320,7 @@ module.exports = class coinfalcon extends Exchange { type = type[0]; } const side = this.safeString (order, 'order_type'); + const postOnly = this.safeValue (order, 'post_only'); return { 'id': this.safeString (order, 'id'), 'clientOrderId': undefined, @@ -329,6 +330,7 @@ module.exports = class coinfalcon extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinfloor.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinfloor.js index 5d59bdf98..7fff650de 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinfloor.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinfloor.js @@ -27,7 +27,7 @@ module.exports = class coinfloor extends Exchange { }, 'urls': { 'logo': 'https://user-images.githubusercontent.com/51840849/87153925-ef265e80-c2c0-11ea-91b5-020c804b90e0.jpg', - 'api': 'https://webapi.coinfloor.co.uk/bist', + 'api': 'https://webapi.coinfloor.co.uk/v2/bist', 'www': 'https://www.coinfloor.co.uk', 'doc': [ 'https://github.com/coinfloor/api', @@ -90,7 +90,7 @@ module.exports = class coinfloor extends Exchange { market = this.markets_by_id[marketId]; } if (market === undefined) { - throw new ArgumentsRequired (this.id + ' fetchBalance requires a symbol param'); + throw new ArgumentsRequired (this.id + ' fetchBalance() requires a symbol param'); } const request = { 'id': market['id'], @@ -223,7 +223,7 @@ module.exports = class coinfloor extends Exchange { if (code !== undefined) { market = this.market (code); if (market === undefined) { - throw new ArgumentsRequired (this.id + ' fetchTransactions requires a code argument (a market symbol)'); + throw new ArgumentsRequired (this.id + ' fetchTransactions() requires a code argument (a market symbol)'); } } const request = { @@ -431,7 +431,7 @@ module.exports = class coinfloor extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -480,6 +480,7 @@ module.exports = class coinfloor extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -495,7 +496,7 @@ module.exports = class coinfloor extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol param'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol param'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinmarketcap.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinmarketcap.js index 3d983cc88..171a65889 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinmarketcap.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinmarketcap.js @@ -150,6 +150,8 @@ module.exports = class coinmarketcap extends Exchange { // https://github.com/ccxt/ccxt/issues/6081 // https://github.com/ccxt/ccxt/issues/3365 // https://github.com/ccxt/ccxt/issues/2873 + 'SBTCT': 'SiamBitcoin', // conflict with sBTC + 'Super Bitcoin': 'Super Bitcoin', // conflict with sBTC 'TerraCredit': 'TerraCredit', // conflict with CREDIT (PROXI) 'Themis': 'Themis', // conflict with GET (Guaranteed Entrance Token, GET Protocol) 'UNI COIN': 'UNI COIN', // conflict with UNI (Uniswap) diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinmate.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinmate.js index 844bc0011..b03ce8783 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinmate.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinmate.js @@ -529,7 +529,7 @@ module.exports = class coinmate extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -641,6 +641,7 @@ module.exports = class coinmate extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinone.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinone.js index eb14695fa..0c86365b6 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinone.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinone.js @@ -373,7 +373,7 @@ module.exports = class coinone extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -518,6 +518,7 @@ module.exports = class coinone extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -567,7 +568,7 @@ module.exports = class coinone extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -602,14 +603,14 @@ module.exports = class coinone extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { // eslint-disable-next-line quotes - throw new ArgumentsRequired (this.id + " cancelOrder requires a symbol argument. To cancel the order, pass a symbol argument and {'price': 12345, 'qty': 1.2345, 'is_ask': 0} in the params argument of cancelOrder."); + throw new ArgumentsRequired (this.id + " cancelOrder() requires a symbol argument. To cancel the order, pass a symbol argument and {'price': 12345, 'qty': 1.2345, 'is_ask': 0} in the params argument of cancelOrder."); } const price = this.safeFloat (params, 'price'); const qty = this.safeFloat (params, 'qty'); const isAsk = this.safeInteger (params, 'is_ask'); if ((price === undefined) || (qty === undefined) || (isAsk === undefined)) { // eslint-disable-next-line quotes - throw new ArgumentsRequired (this.id + " cancelOrder requires {'price': 12345, 'qty': 1.2345, 'is_ask': 0} in the params argument."); + throw new ArgumentsRequired (this.id + " cancelOrder() requires {'price': 12345, 'qty': 1.2345, 'is_ask': 0} in the params argument."); } await this.loadMarkets (); const request = { diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinspot.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinspot.js index 2da1a5ee7..e04c42b5d 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinspot.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/coinspot.js @@ -3,7 +3,7 @@ // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { ExchangeError, AuthenticationError, NotSupported } = require ('./base/errors'); +const { ExchangeError, ArgumentsRequired, AuthenticationError } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -70,27 +70,72 @@ module.exports = class coinspot extends Exchange { }, 'markets': { 'BTC/AUD': { 'id': 'btc', 'symbol': 'BTC/AUD', 'base': 'BTC', 'quote': 'AUD', 'baseId': 'btc', 'quoteId': 'aud' }, + 'ETH/AUD': { 'id': 'eth', 'symbol': 'ETH/AUD', 'base': 'ETH', 'quote': 'AUD', 'baseId': 'eth', 'quoteId': 'aud' }, + 'XRP/AUD': { 'id': 'xrp', 'symbol': 'XRP/AUD', 'base': 'XRP', 'quote': 'AUD', 'baseId': 'xrp', 'quoteId': 'aud' }, 'LTC/AUD': { 'id': 'ltc', 'symbol': 'LTC/AUD', 'base': 'LTC', 'quote': 'AUD', 'baseId': 'ltc', 'quoteId': 'aud' }, 'DOGE/AUD': { 'id': 'doge', 'symbol': 'DOGE/AUD', 'base': 'DOGE', 'quote': 'AUD', 'baseId': 'doge', 'quoteId': 'aud' }, + 'RFOX/AUD': { 'id': 'rfox', 'symbol': 'RFOX/AUD', 'base': 'RFOX', 'quote': 'AUD', 'baseId': 'rfox', 'quoteId': 'aud' }, + 'POWR/AUD': { 'id': 'powr', 'symbol': 'POWR/AUD', 'base': 'POWR', 'quote': 'AUD', 'baseId': 'powr', 'quoteId': 'aud' }, + 'NEO/AUD': { 'id': 'neo', 'symbol': 'NEO/AUD', 'base': 'NEO', 'quote': 'AUD', 'baseId': 'neo', 'quoteId': 'aud' }, + 'TRX/AUD': { 'id': 'trx', 'symbol': 'TRX/AUD', 'base': 'TRX', 'quote': 'AUD', 'baseId': 'trx', 'quoteId': 'aud' }, + 'EOS/AUD': { 'id': 'eos', 'symbol': 'EOS/AUD', 'base': 'EOS', 'quote': 'AUD', 'baseId': 'eos', 'quoteId': 'aud' }, + 'XLM/AUD': { 'id': 'xlm', 'symbol': 'XLM/AUD', 'base': 'XLM', 'quote': 'AUD', 'baseId': 'xlm', 'quoteId': 'aud' }, + 'RHOC/AUD': { 'id': 'rhoc', 'symbol': 'RHOC/AUD', 'base': 'RHOC', 'quote': 'AUD', 'baseId': 'rhoc', 'quoteId': 'aud' }, + 'GAS/AUD': { 'id': 'gas', 'symbol': 'GAS/AUD', 'base': 'GAS', 'quote': 'AUD', 'baseId': 'gas', 'quoteId': 'aud' }, }, 'commonCurrencies': { 'DRK': 'DASH', }, + 'options': { + 'fetchBalance': 'private_post_my_balances', + }, }); } async fetchBalance (params = {}) { await this.loadMarkets (); - const response = await this.privatePostMyBalances (params); + const method = this.safeString (this.options, 'fetchBalance', 'private_post_my_balances'); + const response = await this[method] (params); + // + // read-write api keys + // + // ... + // + // read-only api keys + // + // { + // "status":"ok", + // "balances":[ + // { + // "LTC":{"balance":0.1,"audbalance":16.59,"rate":165.95} + // } + // ] + // } + // const result = { 'info': response }; - const balances = this.safeValue (response, 'balance', {}); - const currencyIds = Object.keys (balances); - for (let i = 0; i < currencyIds.length; i++) { - const currencyId = currencyIds[i]; - const code = this.safeCurrencyCode (currencyId); - const account = this.account (); - account['total'] = this.safeFloat (balances, currencyId); - result[code] = account; + const balances = this.safeValue2 (response, 'balance', 'balances'); + if (Array.isArray (balances)) { + for (let i = 0; i < balances.length; i++) { + const currencies = balances[i]; + const currencyIds = Object.keys (currencies); + for (let j = 0; j < currencyIds.length; j++) { + const currencyId = currencyIds[j]; + const balance = currencies[currencyId]; + const code = this.safeCurrencyCode (currencyId); + const account = this.account (); + account['total'] = this.safeFloat (balance, 'balance'); + result[code] = account; + } + } + } else { + const currencyIds = Object.keys (balances); + for (let i = 0; i < currencyIds.length; i++) { + const currencyId = currencyIds[i]; + const code = this.safeCurrencyCode (currencyId); + const account = this.account (); + account['total'] = this.safeFloat (balances, currencyId); + result[code] = account; + } } return this.parseBalance (result); } @@ -210,9 +255,16 @@ module.exports = class coinspot extends Exchange { } async cancelOrder (id, symbol = undefined, params = {}) { - throw new NotSupported (this.id + ' cancelOrder () is not fully implemented yet'); - // let method = 'privatePostMyBuy'; - // return await this[method] ({ 'id': id }); + const side = this.safeString (params, 'side'); + if (side !== 'buy' && side !== 'sell') { + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a side parameter, "buy" or "sell"'); + } + params = this.omit (params, 'side'); + const method = 'privatePostMy' + this.capitalize (side) + 'Cancel'; + const request = { + 'id': id, + }; + return await this[method] (this.extend (request, params)); } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/crex24.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/crex24.js index 5ea3e826c..7c1298090 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/crex24.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/crex24.js @@ -133,6 +133,7 @@ module.exports = class crex24 extends Exchange { 'GHOST': 'GHOSTPRISM', 'IQ': 'IQ.Cash', 'PUT': 'PutinCoin', + 'SBTC': 'SBTCT', // SiamBitcoin 'UNI': 'Universe', 'YOYO': 'YOYOW', }, @@ -158,6 +159,7 @@ module.exports = class crex24 extends Exchange { "Parameter 'instrument' contains invalid value.": BadSymbol, }, 'broad': { + 'try again later': ExchangeNotAvailable, // {"errorDescription":"Failed to process the request. Please, try again later."} 'API Key': AuthenticationError, // "API Key '9edc48de-d5b0-4248-8e7e-f59ffcd1c7f1' doesn't exist." 'Insufficient funds': InsufficientFunds, // "Insufficient funds: new order requires 10 ETH which is more than the available balance." 'has been delisted.': BadSymbol, // {"errorDescription":"Instrument '$PAC-BTC' has been delisted."} @@ -757,14 +759,14 @@ module.exports = class crex24 extends Exchange { } if (priceIsRequired) { if (price === undefined) { - throw new InvalidOrder (this.id + ' createOrder method requires a price argument for a ' + type + ' order'); + throw new InvalidOrder (this.id + ' createOrder() requires a price argument for a ' + type + ' order'); } request['price'] = this.priceToPrecision (symbol, price); } if (stopPriceIsRequired) { const stopPrice = this.safeFloat (params, 'stopPrice'); if (stopPrice === undefined) { - throw new InvalidOrder (this.id + ' createOrder method requires a stopPrice extra param for a ' + type + ' order'); + throw new InvalidOrder (this.id + ' createOrder() requires a stopPrice extra param for a ' + type + ' order'); } else { request['stopPrice'] = this.priceToPrecision (symbol, stopPrice); } diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/currencycom.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/currencycom.js index 3914c1bfc..c8570f1d4 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/currencycom.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/currencycom.js @@ -916,7 +916,7 @@ module.exports = class currencycom extends Exchange { if (market['margin']) { accountId = this.safeInteger (params, 'accountId'); if (accountId === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires an accountId parameter for ' + market['type'] + ' market ' + symbol); + throw new ArgumentsRequired (this.id + ' createOrder() requires an accountId parameter for ' + market['type'] + ' market ' + symbol); } } const uppercaseType = type.toUpperCase (); @@ -977,7 +977,7 @@ module.exports = class currencycom extends Exchange { const symbols = this.symbols; const numSymbols = symbols.length; const fetchOpenOrdersRateLimit = parseInt (numSymbols / 2); - throw new ExchangeError (this.id + ' fetchOpenOrders WARNING: fetching open orders without specifying a symbol is rate-limited to one call per ' + fetchOpenOrdersRateLimit.toString () + ' seconds. Do not call this method frequently to avoid ban. Set ' + this.id + '.options["warnOnFetchOpenOrdersWithoutSymbol"] = false to suppress this warning message.'); + throw new ExchangeError (this.id + ' fetchOpenOrders() WARNING: fetching open orders without specifying a symbol is rate-limited to one call per ' + fetchOpenOrdersRateLimit.toString () + ' seconds. Do not call this method frequently to avoid ban. Set ' + this.id + '.options["warnOnFetchOpenOrdersWithoutSymbol"] = false to suppress this warning message.'); } const response = await this.privateGetOpenOrders (this.extend (request, params)); return this.parseOrders (response, market, since, limit); @@ -985,7 +985,7 @@ module.exports = class currencycom extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1020,7 +1020,7 @@ module.exports = class currencycom extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/delta.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/delta.js new file mode 100644 index 000000000..9b3c559bf --- /dev/null +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/delta.js @@ -0,0 +1,1483 @@ +'use strict'; + +// --------------------------------------------------------------------------- + +const Exchange = require ('./base/Exchange'); +const { ExchangeError, InsufficientFunds, BadRequest, BadSymbol, InvalidOrder, AuthenticationError, ArgumentsRequired, OrderNotFound, ExchangeNotAvailable } = require ('./base/errors'); +const { TICK_SIZE } = require ('./base/functions/number'); + +// --------------------------------------------------------------------------- + +module.exports = class delta extends Exchange { + describe () { + return this.deepExtend (super.describe (), { + 'id': 'delta', + 'name': 'Delta Exchange', + 'countries': [ 'VC' ], // Saint Vincent and the Grenadines + 'rateLimit': 300, + 'version': 'v2', + // new metainfo interface + 'has': { + 'cancelAllOrders': true, + 'cancelOrder': true, + 'createOrder': true, + 'editOrder': true, + 'fetchBalance': true, + 'fetchClosedOrders': true, + 'fetchDepositAddress': true, + 'fetchCurrencies': true, + 'fetchLedger': true, + 'fetchMarkets': true, + 'fetchMyTrades': true, + 'fetchOHLCV': true, + 'fetchOpenOrders': true, + 'fetchOrderBook': true, + 'fetchStatus': true, + 'fetchTicker': true, + 'fetchTickers': true, + 'fetchTime': true, + 'fetchTrades': true, + }, + 'timeframes': { + '1m': '1m', + '3m': '3m', + '5m': '5m', + '15m': '15m', + '30m': '30m', + '1h': '1h', + '2h': '2h', + '4h': '4h', + '6h': '6h', + '1d': '1d', + '7d': '7d', + '1w': '1w', + '2w': '2w', + '1M': '30d', + }, + 'urls': { + 'logo': 'https://user-images.githubusercontent.com/1294454/99450025-3be60a00-2931-11eb-9302-f4fd8d8589aa.jpg', + 'test': { + 'public': 'https://testnet-api.delta.exchange', + 'private': 'https://testnet-api.delta.exchange', + }, + 'api': { + 'public': 'https://api.delta.exchange', + 'private': 'https://api.delta.exchange', + }, + 'www': 'https://www.delta.exchange', + 'doc': [ + 'https://docs.delta.exchange', + ], + 'fees': 'https://www.delta.exchange/fees', + 'referral': 'https://www.delta.exchange/app/signup/?code=IULYNB', + }, + 'api': { + 'public': { + 'get': [ + 'assets', + 'settings', + 'indices', + 'products', + 'tickers', + 'tickers/{symbol}', + 'l2orderbook/{symbol}', + 'trades/{symbol}', + 'history/candles', + 'history/sparklines', + ], + }, + 'private': { + 'get': [ + 'orders', + 'orders/leverage', + 'positions', + 'positions/margined', + 'orders/history', + 'fills', + 'fills/history/download/csv', + 'wallet/balances', + 'wallet/transactions', + 'wallet/transactions/download', + 'deposits/address', + ], + 'post': [ + 'orders', + 'orders/batch', + 'orders/leverage', + 'positions/change_margin', + ], + 'put': [ + 'orders', + 'orders/batch', + ], + 'delete': [ + 'orders', + 'orders/all', + 'orders/batch', + ], + }, + }, + 'fees': { + 'trading': { + 'tierBased': true, + 'percentage': true, + 'taker': 0.15 / 100, + 'maker': 0.10 / 100, + 'tiers': { + 'taker': [ + [0, 0.15 / 100], + [100, 0.13 / 100], + [250, 0.13 / 100], + [1000, 0.1 / 100], + [5000, 0.09 / 100], + [10000, 0.075 / 100], + [20000, 0.065 / 100], + ], + 'maker': [ + [0, 0.1 / 100], + [100, 0.1 / 100], + [250, 0.09 / 100], + [1000, 0.075 / 100], + [5000, 0.06 / 100], + [10000, 0.05 / 100], + [20000, 0.05 / 100], + ], + }, + }, + }, + 'precisionMode': TICK_SIZE, + 'requiredCredentials': { + 'apiKey': true, + 'secret': false, + }, + 'exceptions': { + 'exact': { + // Margin required to place order with selected leverage and quantity is insufficient. + 'insufficient_margin': InsufficientFunds, // {"error":{"code":"insufficient_margin","context":{"available_balance":"0.000000000000000000","required_additional_balance":"1.618626000000000000000000000"}},"success":false} + 'order_size_exceed_available': InvalidOrder, // The order book doesn't have sufficient liquidity, hence the order couldnt be filled, for example, ioc orders + 'risk_limits_breached': BadRequest, // orders couldn't be placed as it will breach allowed risk limits. + 'invalid_contract': BadSymbol, // The contract/product is either doesn't exist or has already expired. + 'immediate_liquidation': InvalidOrder, // Order will cause immediate liquidation. + 'out_of_bankruptcy': InvalidOrder, // Order prices are out of position bankruptcy limits. + 'self_matching_disrupted_post_only': InvalidOrder, // Self matching is not allowed during auction. + 'immediate_execution_post_only': InvalidOrder, // orders couldn't be placed as it includes post only orders which will be immediately executed + 'bad_schema': BadRequest, // {"error":{"code":"bad_schema","context":{"schema_errors":[{"code":"validation_error","message":"id is required","param":""}]}},"success":false} + 'invalid_api_key': AuthenticationError, // {"success":false,"error":{"code":"invalid_api_key"}} + 'invalid_signature': AuthenticationError, // {"success":false,"error":{"code":"invalid_signature"}} + 'open_order_not_found': OrderNotFound, // {"error":{"code":"open_order_not_found"},"success":false} + 'unavailable': ExchangeNotAvailable, // {"error":{"code":"unavailable"},"success":false} + }, + 'broad': { + }, + }, + }); + } + + async fetchTime (params = {}) { + const response = await this.publicGetSettings (params); + // + // { + // "result":{ + // "server_time":1605472733766141, + // "deto_referral_mining_daily_reward":"25000", + // "deto_total_reward_pool":"100000000", + // "deto_trade_mining_daily_reward":"75000", + // "kyc_deposit_limit":"20", + // "kyc_withdrawal_limit":"2", + // "under_maintenance":"false" + // }, + // "success":true + // } + // + const result = this.safeValue (response, 'result', {}); + return this.safeIntegerProduct (result, 'server_time', 0.001); + } + + async fetchStatus (params = {}) { + const response = await this.publicGetSettings (params); + const result = this.safeValue (response, 'result', {}); + const underMaintenance = this.safeValue (result, 'under_maintenance'); + const status = (underMaintenance === 'true') ? 'maintenance' : 'ok'; + const updated = this.safeIntegerProduct (result, 'server_time', 0.001); + this.status = this.extend (this.status, { + 'status': status, + 'updated': updated, + }); + return this.status; + } + + async fetchCurrencies (params = {}) { + const response = await this.publicGetAssets (params); + // + // { + // "result":[ + // { + // "base_withdrawal_fee":"0.0005", + // "deposit_status":"enabled", + // "id":2, + // "interest_credit":true, + // "interest_slabs":[ + // {"limit":"0.1","rate":"0"}, + // {"limit":"1","rate":"0.05"}, + // {"limit":"5","rate":"0.075"}, + // {"limit":"10","rate":"0.1"}, + // {"limit":"9999999999999999","rate":"0"} + // ], + // "kyc_deposit_limit":"10", + // "kyc_withdrawal_limit":"2", + // "min_withdrawal_amount":"0.001", + // "minimum_precision":4, + // "name":"Bitcoin", + // "precision":8, + // "sort_priority":1, + // "symbol":"BTC", + // "variable_withdrawal_fee":"0", + // "withdrawal_status":"enabled" + // }, + // ], + // "success":true + // } + // + const currencies = this.safeValue (response, 'result', []); + const result = {}; + for (let i = 0; i < currencies.length; i++) { + const currency = currencies[i]; + const id = this.safeString (currency, 'symbol'); + const numericId = this.safeInteger (currency, 'id'); + const code = this.safeCurrencyCode (id); + const depositStatus = this.safeString (currency, 'deposit_status'); + const withdrawalStatus = this.safeString (currency, 'withdrawal_status'); + const depositsEnabled = (depositStatus === 'enabled'); + const withdrawalsEnabled = (withdrawalStatus === 'enabled'); + const active = depositsEnabled && withdrawalsEnabled; + const precision = this.safeInteger (currency, 'precision'); + result[code] = { + 'id': id, + 'numericId': numericId, + 'code': code, + 'name': this.safeString (currency, 'name'), + 'info': currency, // the original payload + 'active': active, + 'fee': this.safeFloat (currency, 'base_withdrawal_fee'), + 'precision': 1 / Math.pow (10, precision), + 'limits': { + 'amount': { 'min': undefined, 'max': undefined }, + 'price': { 'min': undefined, 'max': undefined }, + 'cost': { 'min': undefined, 'max': undefined }, + 'withdraw': { + 'min': this.safeFloat (currency, 'min_withdrawal_amount'), + 'max': undefined, + }, + }, + }; + } + return result; + } + + async loadMarkets (reload = false, params = {}) { + const markets = await super.loadMarkets (reload, params); + const currenciesByNumericId = this.safeValue (this.options, 'currenciesByNumericId'); + if ((currenciesByNumericId === undefined) || reload) { + this.options['currenciesByNumericId'] = this.indexBy (this.currencies, 'numericId'); + } + const marketsByNumericId = this.safeValue (this.options, 'marketsByNumericId'); + if ((marketsByNumericId === undefined) || reload) { + this.options['marketsByNumericId'] = this.indexBy (this.markets, 'numericId'); + } + return markets; + } + + async fetchMarkets (params = {}) { + const response = await this.publicGetProducts (params); + // + // { + // "meta":{ + // "after":null, + // "before":null, + // "limit":100, + // "total_count":81 + // }, + // "result":[ + // { + // "annualized_funding":"5.475000000000000000", + // "is_quanto":false, + // "ui_config":{ + // "default_trading_view_candle":"15", + // "leverage_slider_values":[1,3,5,10,25,50], + // "price_clubbing_values":[0.001,0.005,0.05,0.1,0.5,1,5], + // "show_bracket_orders":false, + // "sort_priority":29, + // "tags":[] + // }, + // "basis_factor_max_limit":"0.15", + // "symbol":"P-LINK-D-151120", + // "id":1584, + // "default_leverage":"5.000000000000000000", + // "maker_commission_rate":"0.0005", + // "contract_unit_currency":"LINK", + // "strike_price":"12.507948", + // "settling_asset":{ + // // asset structure + // }, + // "auction_start_time":null, + // "auction_finish_time":null, + // "settlement_time":"2020-11-15T12:00:00Z", + // "launch_time":"2020-11-14T11:55:05Z", + // "spot_index":{ + // // index structure + // }, + // "trading_status":"operational", + // "tick_size":"0.001", + // "position_size_limit":100000, + // "notional_type":"vanilla", // vanilla, inverse + // "price_band":"0.4", + // "barrier_price":null, + // "description":"Daily LINK PUT options quoted in USDT and settled in USDT", + // "insurance_fund_margin_contribution":"1", + // "quoting_asset":{ + // // asset structure + // }, + // "liquidation_penalty_factor":"0.2", + // "product_specs":{"max_volatility":3,"min_volatility":0.3,"spot_price_band":"0.40"}, + // "initial_margin_scaling_factor":"0.0001", + // "underlying_asset":{ + // // asset structure + // }, + // "state":"live", + // "contract_value":"1", + // "initial_margin":"2", + // "impact_size":5000, + // "settlement_price":null, + // "contract_type":"put_options", // put_options, call_options, move_options, perpetual_futures, interest_rate_swaps, futures, spreads + // "taker_commission_rate":"0.0005", + // "maintenance_margin":"1", + // "short_description":"LINK Daily PUT Options", + // "maintenance_margin_scaling_factor":"0.00005", + // "funding_method":"mark_price", + // "max_leverage_notional":"20000" + // }, + // ], + // "success":true + // } + // + const markets = this.safeValue (response, 'result', []); + const result = []; + for (let i = 0; i < markets.length; i++) { + const market = markets[i]; + let type = this.safeString (market, 'contract_type'); + // const settlingAsset = this.safeValue (market, 'settling_asset', {}); + const quotingAsset = this.safeValue (market, 'quoting_asset', {}); + const underlyingAsset = this.safeValue (market, 'underlying_asset', {}); + const baseId = this.safeString (underlyingAsset, 'symbol'); + const quoteId = this.safeString (quotingAsset, 'symbol'); + const id = this.safeString (market, 'symbol'); + const numericId = this.safeInteger (market, 'id'); + const base = this.safeCurrencyCode (baseId); + const quote = this.safeCurrencyCode (quoteId); + let symbol = id; + let swap = false; + let future = false; + let option = false; + if (type === 'perpetual_futures') { + type = 'swap'; + swap = true; + future = false; + option = false; + if (id.indexOf ('_') < 0) { + symbol = base + '/' + quote; + } + } else if ((type === 'call_options') || (type === 'put_options') || (type === 'move_options')) { + type = 'option'; + swap = false; + option = true; + future = false; + } else if (type === 'futures') { + type = 'future'; + swap = false; + option = false; + future = true; + } + const precision = { + 'amount': 1.0, // number of contracts + 'price': this.safeFloat (market, 'tick_size'), + }; + const limits = { + 'amount': { + 'min': 1.0, + 'max': this.safeFloat (market, 'position_size_limit'), + }, + 'price': { + 'min': precision['price'], + 'max': undefined, + }, + 'cost': { + 'min': this.safeFloat (market, 'min_size'), + 'max': undefined, + }, + }; + const state = this.safeString (market, 'state'); + const active = (state === 'live'); + const maker = this.safeFloat (market, 'maker_commission_rate'); + const taker = this.safeFloat (market, 'taker_commission_rate'); + result.push ({ + 'id': id, + 'numericId': numericId, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'baseId': baseId, + 'quoteId': quoteId, + 'type': type, + 'option': option, + 'swap': swap, + 'future': future, + 'maker': maker, + 'taker': taker, + 'precision': precision, + 'limits': limits, + 'info': market, + 'active': active, + }); + } + return result; + } + + parseTicker (ticker, market = undefined) { + // + // fetchTicker, fetchTickers + // + // { + // "close":15837.5, + // "high":16354, + // "low":15751.5, + // "mark_price":"15820.100867", + // "open":16140.5, + // "product_id":139, + // "size":640552, + // "spot_price":"15827.050000000001", + // "symbol":"BTCUSDT", + // "timestamp":1605373550208262, + // "turnover":10298630.3735, + // "turnover_symbol":"USDT", + // "turnover_usd":10298630.3735, + // "volume":640.5520000000001 + // } + // + const timestamp = this.safeIntegerProduct (ticker, 'timestamp', 0.001); + const marketId = this.safeString (ticker, 'symbol'); + const symbol = this.safeSymbol (marketId, market); + const last = this.safeFloat (ticker, 'close'); + const open = this.safeFloat (ticker, 'open'); + let change = undefined; + let average = undefined; + let percentage = undefined; + if ((open !== undefined) && (last !== undefined)) { + change = last - open; + average = this.sum (last, open) / 2; + if (open !== 0.0) { + percentage = (change / open) * 100; + } + } + const baseVolume = this.safeFloat (ticker, 'volume'); + const quoteVolume = this.safeFloat (ticker, 'turnover'); + const vwap = this.vwap (baseVolume, quoteVolume); + return { + 'symbol': symbol, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'high': this.safeFloat (ticker, 'high'), + 'low': this.safeFloat (ticker, 'low'), + 'bid': undefined, + 'bidVolume': undefined, + 'ask': undefined, + 'askVolume': undefined, + 'vwap': vwap, + 'open': open, + 'close': last, + 'last': last, + 'previousClose': undefined, + 'change': change, + 'percentage': percentage, + 'average': average, + 'baseVolume': baseVolume, + 'quoteVolume': quoteVolume, + 'info': ticker, + }; + } + + async fetchTicker (symbol, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'symbol': market['id'], + }; + const response = await this.publicGetTickersSymbol (this.extend (request, params)); + // + // { + // "result":{ + // "close":15837.5, + // "high":16354, + // "low":15751.5, + // "mark_price":"15820.100867", + // "open":16140.5, + // "product_id":139, + // "size":640552, + // "spot_price":"15827.050000000001", + // "symbol":"BTCUSDT", + // "timestamp":1605373550208262, + // "turnover":10298630.3735, + // "turnover_symbol":"USDT", + // "turnover_usd":10298630.3735, + // "volume":640.5520000000001 + // }, + // "success":true + // } + // + const result = this.safeValue (response, 'result', {}); + return this.parseTicker (result, market); + } + + async fetchTickers (symbols = undefined, params = {}) { + await this.loadMarkets (); + const response = await this.publicGetTickers (params); + // + // { + // "result":[ + // { + // "close":0.003966, + // "high":0.004032, + // "low":0.003606, + // "mark_price":"0.00396328", + // "open":0.003996, + // "product_id":1327, + // "size":6242, + // "spot_price":"0.0039555", + // "symbol":"AAVEBTC", + // "timestamp":1605374143864107, + // "turnover":23.997904999999996, + // "turnover_symbol":"BTC", + // "turnover_usd":387957.4544782897, + // "volume":6242 + // }, + // ], + // "success":true + // } + // + const tickers = this.safeValue (response, 'result', []); + const result = {}; + for (let i = 0; i < tickers.length; i++) { + const ticker = this.parseTicker (tickers[i]); + const symbol = ticker['symbol']; + result[symbol] = ticker; + } + return this.filterByArray (result, 'symbol', symbols); + } + + async fetchOrderBook (symbol, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + 'symbol': this.marketId (symbol), + }; + if (limit !== undefined) { + request['depth'] = limit; + } + const response = await this.publicGetL2orderbookSymbol (this.extend (request, params)); + // + // { + // "result":{ + // "buy":[ + // {"price":"15814.0","size":912}, + // {"price":"15813.5","size":1279}, + // {"price":"15813.0","size":1634}, + // ], + // "sell":[ + // {"price":"15814.5","size":625}, + // {"price":"15815.0","size":982}, + // {"price":"15815.5","size":1328}, + // ], + // "symbol":"BTCUSDT" + // }, + // "success":true + // } + // + const result = this.safeValue (response, 'result', {}); + return this.parseOrderBook (result, undefined, 'buy', 'sell', 'price', 'size'); + } + + parseTrade (trade, market = undefined) { + // + // public fetchTrades + // + // { + // "buyer_role":"maker", + // "price":"15896.5", + // "seller_role":"taker", + // "size":241, + // "symbol":"BTCUSDT", + // "timestamp":1605376684714595 + // } + // + // private fetchMyTrades + // + // { + // "commission":"0.008335000000000000", + // "created_at":"2020-11-16T19:07:19Z", + // "fill_type":"normal", + // "id":"e7ff05c233a74245b72381f8dd91d1ce", + // "meta_data":{ + // "effective_commission_rate":"0.0005", + // "order_price":"16249", + // "order_size":1, + // "order_type":"market_order", + // "order_unfilled_size":0, + // "trading_fee_credits_used":"0" + // }, + // "order_id":"152999629", + // "price":"16669", + // "product":{ + // "contract_type":"perpetual_futures", + // "contract_unit_currency":"BTC", + // "contract_value":"0.001", + // "id":139, + // "notional_type":"vanilla", + // "quoting_asset":{"minimum_precision":2,"precision":6,"symbol":"USDT"}, + // "settling_asset":{"minimum_precision":2,"precision":6,"symbol":"USDT"}, + // "symbol":"BTCUSDT", + // "tick_size":"0.5", + // "underlying_asset":{"minimum_precision":4,"precision":8,"symbol":"BTC"} + // }, + // "product_id":139, + // "role":"taker", + // "side":"sell", + // "size":1 + // } + // + const id = this.safeString (trade, 'id'); + const orderId = this.safeString (trade, 'order_id'); + let timestamp = this.parse8601 (this.safeString (trade, 'created_at')); + timestamp = this.safeIntegerProduct (trade, 'timestamp', 0.001, timestamp); + const price = this.safeFloat (trade, 'price'); + const amount = this.safeFloat (trade, 'size'); + let cost = undefined; + if ((amount !== undefined) && (price !== undefined)) { + cost = amount * price; + } + const product = this.safeValue (trade, 'product', {}); + const marketId = this.safeString (product, 'symbol'); + const symbol = this.safeSymbol (marketId, market); + const sellerRole = this.safeString (trade, 'seller_role'); + let side = this.safeString (trade, 'side'); + if (side === undefined) { + if (sellerRole === 'taker') { + side = 'sell'; + } else if (sellerRole === 'maker') { + side = 'buy'; + } + } + const takerOrMaker = this.safeString (trade, 'role'); + const metaData = this.safeValue (trade, 'meta_data', {}); + let type = this.safeString (metaData, 'order_type'); + if (type !== undefined) { + type = type.replace ('_order', ''); + } + const feeCost = this.safeFloat (trade, 'commission'); + let fee = undefined; + if (feeCost !== undefined) { + const settlingAsset = this.safeValue (product, 'settling_asset', {}); + const feeCurrencyId = this.safeString (settlingAsset, 'symbol'); + const feeCurrencyCode = this.safeCurrencyCode (feeCurrencyId); + fee = { + 'cost': feeCost, + 'currency': feeCurrencyCode, + }; + } + return { + 'id': id, + 'order': orderId, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'symbol': symbol, + 'type': type, + 'side': side, + 'price': price, + 'amount': amount, + 'cost': cost, + 'takerOrMaker': takerOrMaker, + 'fee': fee, + 'info': trade, + }; + } + + async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'symbol': market['id'], + }; + const response = await this.publicGetTradesSymbol (this.extend (request, params)); + // + // { + // "result":[ + // { + // "buyer_role":"maker", + // "price":"15896.5", + // "seller_role":"taker", + // "size":241, + // "symbol":"BTCUSDT", + // "timestamp":1605376684714595 + // } + // ], + // "success":true + // } + // + const result = this.safeValue (response, 'result', []); + return this.parseTrades (result, market, since, limit); + } + + parseOHLCV (ohlcv, market = undefined) { + // + // { + // "time":1605393120, + // "open":15989, + // "high":15989, + // "low":15987.5, + // "close":15987.5, + // "volume":565 + // } + // + return [ + this.safeTimestamp (ohlcv, 'time'), + this.safeFloat (ohlcv, 'open'), + this.safeFloat (ohlcv, 'high'), + this.safeFloat (ohlcv, 'low'), + this.safeFloat (ohlcv, 'close'), + this.safeFloat (ohlcv, 'volume'), + ]; + } + + async fetchOHLCV (symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'symbol': market['id'], + 'resolution': this.timeframes[timeframe], + }; + const duration = this.parseTimeframe (timeframe); + limit = limit ? limit : 2000; // max 2000 + if (since === undefined) { + const end = this.seconds (); + request['end'] = end; + request['start'] = end - limit * duration; + } else { + const start = parseInt (since / 1000); + request['start'] = start; + request['end'] = this.sum (start, limit * duration); + } + const response = await this.publicGetHistoryCandles (this.extend (request, params)); + // + // { + // "success":true, + // "result":[ + // {"time":1605393120,"open":15989,"high":15989,"low":15987.5,"close":15987.5,"volume":565}, + // {"time":1605393180,"open":15966,"high":15966,"low":15959,"close":15959,"volume":24}, + // {"time":1605393300,"open":15973,"high":15973,"low":15973,"close":15973,"volume":1288}, + // ] + // } + // + const result = this.safeValue (response, 'result', []); + return this.parseOHLCVs (result, market, timeframe, since, limit); + } + + async fetchBalance (params = {}) { + await this.loadMarkets (); + const response = await this.privateGetWalletBalances (params); + // + // { + // "result":[ + // { + // "asset_id":1, + // "available_balance":"0", + // "balance":"0", + // "commission":"0", + // "id":154883, + // "interest_credit":"0", + // "order_margin":"0", + // "pending_referral_bonus":"0", + // "pending_trading_fee_credit":"0", + // "position_margin":"0", + // "trading_fee_credit":"0", + // "user_id":22142 + // }, + // ], + // "success":true + // } + // + const balances = this.safeValue (response, 'result', []); + const result = { 'info': response }; + const currenciesByNumericId = this.safeValue (this.options, 'currenciesByNumericId', {}); + for (let i = 0; i < balances.length; i++) { + const balance = balances[i]; + const currencyId = this.safeString (balance, 'asset_id'); + const currency = this.safeValue (currenciesByNumericId, currencyId); + const code = (currency === undefined) ? currencyId : currency['code']; + const account = this.account (); + account['total'] = this.safeFloat (balance, 'balance'); + account['free'] = this.safeFloat (balance, 'available_balance'); + result[code] = account; + } + return this.parseBalance (result); + } + + async fetchPosition (symbol, params = undefined) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'product_id': market['numericId'], + }; + const response = await this.privateGetPositions (this.extend (request, params)); + // + // { + // "result":{ + // "entry_price":null, + // "size":0, + // "timestamp":1605454074268079 + // }, + // "success":true + // } + // + const result = this.safeValue (response, 'result', {}); + return result; + } + + async fetchPositions (symbols = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const response = await this.privateGetPositionsMargined (params); + // + // { + // "success": true, + // "result": [ + // { + // "user_id": 0, + // "size": 0, + // "entry_price": "string", + // "margin": "string", + // "liquidation_price": "string", + // "bankruptcy_price": "string", + // "adl_level": 0, + // "product_id": 0 + // } + // ] + // } + // + const result = this.safeValue (response, 'result', []); + return result; + } + + parseOrderStatus (status) { + const statuses = { + 'open': 'open', + 'pending': 'open', + 'closed': 'closed', + 'cancelled': 'canceled', + }; + return this.safeString (statuses, status, status); + } + + parseOrder (order, market = undefined) { + // + // createOrder, cancelOrder, editOrder, fetchOpenOrders, fetchClosedOrders + // + // { + // "average_fill_price":null, + // "bracket_order":null, + // "bracket_stop_loss_limit_price":null, + // "bracket_stop_loss_price":null, + // "bracket_take_profit_limit_price":null, + // "bracket_take_profit_price":null, + // "bracket_trail_amount":null, + // "cancellation_reason":null, + // "client_order_id":null, + // "close_on_trigger":"false", + // "commission":"0", + // "created_at":"2020-11-16T02:38:26Z", + // "id":152870626, + // "limit_price":"10000", + // "meta_data":{"source":"api"}, + // "order_type":"limit_order", + // "paid_commission":"0", + // "product_id":139, + // "reduce_only":false, + // "side":"buy", + // "size":0, + // "state":"open", + // "stop_order_type":null, + // "stop_price":null, + // "stop_trigger_method":"mark_price", + // "time_in_force":"gtc", + // "trail_amount":null, + // "unfilled_size":0, + // "user_id":22142 + // } + // + const id = this.safeString (order, 'id'); + const clientOrderId = this.safeString (order, 'client_order_id'); + const timestamp = this.parse8601 (this.safeString (order, 'created_at')); + const marketId = this.safeString (order, 'product_id'); + const marketsByNumericId = this.safeValue (this.options, 'marketsByNumericId', {}); + market = this.safeValue (marketsByNumericId, marketId, market); + const symbol = (market === undefined) ? marketId : market['symbol']; + const status = this.parseOrderStatus (this.safeString (order, 'state')); + const side = this.safeString (order, 'side'); + let type = this.safeString (order, 'order_type'); + type = type.replace ('_order', ''); + const price = this.safeFloat (order, 'limit_price'); + const amount = this.safeFloat (order, 'size'); + const remaining = this.safeFloat (order, 'unfilled_size'); + let filled = undefined; + if ((amount !== undefined) && (remaining !== undefined)) { + filled = Math.max (0, amount - remaining); + } + let cost = undefined; + const average = this.safeFloat (order, 'average_fill_price'); + if ((average !== undefined) && filled) { + cost = average * filled; + } + let fee = undefined; + const feeCost = this.safeFloat (order, 'paid_commission'); + if (feeCost !== undefined) { + let feeCurrencyCode = undefined; + if (market !== undefined) { + const settlingAsset = this.safeValue (market['info'], 'settling_asset', {}); + const feeCurrencyId = this.safeString (settlingAsset, 'symbol'); + feeCurrencyCode = this.safeCurrencyCode (feeCurrencyId); + } + fee = { + 'cost': feeCost, + 'currency': feeCurrencyCode, + }; + } + return { + 'info': order, + 'id': id, + 'clientOrderId': clientOrderId, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'lastTradeTimestamp': undefined, + 'symbol': symbol, + 'type': type, + 'side': side, + 'price': price, + 'amount': amount, + 'cost': cost, + 'average': average, + 'filled': filled, + 'remaining': remaining, + 'status': status, + 'fee': fee, + 'trades': undefined, + }; + } + + async createOrder (symbol, type, side, amount, price = undefined, params = {}) { + await this.loadMarkets (); + const orderType = type + '_order'; + const market = this.market (symbol); + const request = { + 'product_id': market['numericId'], + // 'limit_price': this.priceToPrecision (symbol, price), + 'size': this.amountToPrecision (symbol, amount), + 'side': side, + 'order_type': orderType, + // 'client_order_id': 'string', + // 'time_in_force': 'gtc', // gtc, ioc, fok + // 'post_only': 'false', // 'true', + // 'reduce_only': 'false', // 'true', + }; + if (type === 'limit') { + request['limit_price'] = this.priceToPrecision (symbol, price); + } + const clientOrderId = this.safeString2 (params, 'clientOrderId', 'client_order_id'); + params = this.omit (params, [ 'clientOrderId', 'client_order_id' ]); + if (clientOrderId !== undefined) { + request['client_order_id'] = clientOrderId; + } + const response = await this.privatePostOrders (this.extend (request, params)); + // + // { + // "result":{ + // "average_fill_price":null, + // "bracket_order":null, + // "bracket_stop_loss_limit_price":null, + // "bracket_stop_loss_price":null, + // "bracket_take_profit_limit_price":null, + // "bracket_take_profit_price":null, + // "bracket_trail_amount":null, + // "cancellation_reason":null, + // "client_order_id":null, + // "close_on_trigger":"false", + // "commission":"0", + // "created_at":"2020-11-16T02:38:26Z", + // "id":152870626, + // "limit_price":"10000", + // "meta_data":{"source":"api"}, + // "order_type":"limit_order", + // "paid_commission":"0", + // "product_id":139, + // "reduce_only":false, + // "side":"buy", + // "size":0, + // "state":"open", + // "stop_order_type":null, + // "stop_price":null, + // "stop_trigger_method":"mark_price", + // "time_in_force":"gtc", + // "trail_amount":null, + // "unfilled_size":0, + // "user_id":22142 + // }, + // "success":true + // } + // + const result = this.safeValue (response, 'result', {}); + return this.parseOrder (result, market); + } + + async editOrder (id, symbol, type, side, amount, price = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'id': parseInt (id), + 'product_id': market['numericId'], + // 'limit_price': this.priceToPrecision (symbol, price), + // 'size': this.amountToPrecision (symbol, amount), + }; + if (amount !== undefined) { + request['size'] = parseInt (this.amountToPrecision (symbol, amount)); + } + if (price !== undefined) { + request['limit_price'] = this.priceToPrecision (symbol, price); + } + const response = await this.privatePutOrders (this.extend (request, params)); + // + // { + // "success": true, + // "result": { + // "id": "ashb1212", + // "product_id": 27, + // "limit_price": "9200", + // "side": "buy", + // "size": 100, + // "unfilled_size": 50, + // "user_id": 1, + // "order_type": "limit_order", + // "state": "open", + // "created_at": "..." + // } + // } + // + const result = this.safeValue (response, 'result'); + return this.parseOrder (result, market); + } + + async cancelOrder (id, symbol = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'id': parseInt (id), + 'product_id': market['numericId'], + }; + const response = await this.privateDeleteOrders (this.extend (request, params)); + // + // { + // "result":{ + // "average_fill_price":null, + // "bracket_order":null, + // "bracket_stop_loss_limit_price":null, + // "bracket_stop_loss_price":null, + // "bracket_take_profit_limit_price":null, + // "bracket_take_profit_price":null, + // "bracket_trail_amount":null, + // "cancellation_reason":"cancelled_by_user", + // "client_order_id":null, + // "close_on_trigger":"false", + // "commission":"0", + // "created_at":"2020-11-16T02:38:26Z", + // "id":152870626, + // "limit_price":"10000", + // "meta_data":{"source":"api"}, + // "order_type":"limit_order", + // "paid_commission":"0", + // "product_id":139, + // "reduce_only":false, + // "side":"buy", + // "size":0, + // "state":"cancelled", + // "stop_order_type":null, + // "stop_price":null, + // "stop_trigger_method":"mark_price", + // "time_in_force":"gtc", + // "trail_amount":null, + // "unfilled_size":0, + // "user_id":22142 + // }, + // "success":true + // } + // + const result = this.safeValue (response, 'result'); + return this.parseOrder (result, market); + } + + async cancelAllOrders (symbol = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + ' cancelAllOrders() requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'product_id': market['numericId'], + // 'cancel_limit_orders': 'true', + // 'cancel_stop_orders': 'true', + }; + const response = this.privateDeleteOrdersAll (this.extend (request, params)); + // + // { + // "result":{}, + // "success":true + // } + // + return response; + } + + async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + return await this.fetchOrdersWithMethod ('privateGetOrders', symbol, since, limit, params); + } + + async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + return await this.fetchOrdersWithMethod ('privateGetOrdersHistory', symbol, since, limit, params); + } + + async fetchOrdersWithMethod (method, symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'product_ids': market['id'], // comma-separated + // 'contract_types': types, // comma-separated, futures, perpetual_futures, call_options, put_options, interest_rate_swaps, move_options, spreads + // 'order_types': types, // comma-separated, market, limit, stop_market, stop_limit, all_stop + // 'start_time': since * 1000, + // 'end_time': this.microseconds (), + // 'after': string, // after cursor for pagination + // 'before': string, // before cursor for pagination + // 'page_size': limit, // number of records per page + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['product_ids'] = market['numericId']; // accepts a comma-separated list of ids + } + if (since !== undefined) { + request['start_time'] = since.toString () + '000'; + } + if (limit !== undefined) { + request['page_size'] = limit; + } + const response = await this[method] (this.extend (request, params)); + // + // { + // "success": true, + // "result": [ + // { + // "id": "ashb1212", + // "product_id": 27, + // "limit_price": "9200", + // "side": "buy", + // "size": 100, + // "unfilled_size": 50, + // "user_id": 1, + // "order_type": "limit_order", + // "state": "open", + // "created_at": "..." + // } + // ], + // "meta": { + // "after": "string", + // "before": "string" + // } + // } + // + const result = this.safeValue (response, 'result', []); + return this.parseOrders (result, market, since, limit); + } + + async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'product_ids': market['id'], // comma-separated + // 'contract_types': types, // comma-separated, futures, perpetual_futures, call_options, put_options, interest_rate_swaps, move_options, spreads + // 'start_time': since * 1000, + // 'end_time': this.microseconds (), + // 'after': string, // after cursor for pagination + // 'before': string, // before cursor for pagination + // 'page_size': limit, // number of records per page + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['product_ids'] = market['numericId']; // accepts a comma-separated list of ids + } + if (since !== undefined) { + request['start_time'] = since.toString () + '000'; + } + if (limit !== undefined) { + request['page_size'] = limit; + } + const response = await this.privateGetFills (this.extend (request, params)); + // + // { + // "meta":{ + // "after":null, + // "before":null, + // "limit":10, + // "total_count":2 + // }, + // "result":[ + // { + // "commission":"0.008335000000000000", + // "created_at":"2020-11-16T19:07:19Z", + // "fill_type":"normal", + // "id":"e7ff05c233a74245b72381f8dd91d1ce", + // "meta_data":{ + // "effective_commission_rate":"0.0005", + // "order_price":"16249", + // "order_size":1, + // "order_type":"market_order", + // "order_unfilled_size":0, + // "trading_fee_credits_used":"0" + // }, + // "order_id":"152999629", + // "price":"16669", + // "product":{ + // "contract_type":"perpetual_futures", + // "contract_unit_currency":"BTC", + // "contract_value":"0.001", + // "id":139, + // "notional_type":"vanilla", + // "quoting_asset":{"minimum_precision":2,"precision":6,"symbol":"USDT"}, + // "settling_asset":{"minimum_precision":2,"precision":6,"symbol":"USDT"}, + // "symbol":"BTCUSDT", + // "tick_size":"0.5", + // "underlying_asset":{"minimum_precision":4,"precision":8,"symbol":"BTC"} + // }, + // "product_id":139, + // "role":"taker", + // "side":"sell", + // "size":1 + // } + // ], + // "success":true + // } + // + const result = this.safeValue (response, 'result', []); + return this.parseTrades (result, market, since, limit); + } + + async fetchLedger (code = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'asset_id': currency['numericId'], + // 'end_time': this.seconds (), + // 'after': 'string', // after cursor for pagination + // 'before': 'string', // before cursor for pagination + // 'page_size': limit, + }; + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + request['asset_id'] = currency['numericId']; + } + if (limit !== undefined) { + request['page_size'] = limit; + } + const response = await this.privateGetWalletTransactions (this.extend (request, params)); + // + // { + // "meta":{"after":null,"before":null,"limit":10,"total_count":1}, + // "result":[ + // { + // "amount":"29.889184", + // "asset_id":5, + // "balance":"29.889184", + // "created_at":"2020-11-15T21:25:01Z", + // "meta_data":{ + // "deposit_id":3884, + // "transaction_id":"0x41a60174849828530abb5008e98fc63c9b598288743ec4ba9620bcce900a3b8d" + // }, + // "transaction_type":"deposit", + // "user_id":22142, + // "uuid":"70bb5679da3c4637884e2dc63efaa846" + // } + // ], + // "success":true + // } + // + const result = this.safeValue (response, 'result', []); + return this.parseLedger (result, currency, since, limit); + } + + parseLedgerEntryType (type) { + const types = { + 'pnl': 'pnl', + 'deposit': 'transaction', + 'withdrawal': 'transaction', + 'commission': 'fee', + 'conversion': 'trade', + // 'perpetual_futures_funding': 'perpetual_futures_funding', + // 'withdrawal_cancellation': 'withdrawal_cancellation', + 'referral_bonus': 'referral', + 'commission_rebate': 'rebate', + // 'promo_credit': 'promo_credit', + }; + return this.safeString (types, type, type); + } + + parseLedgerEntry (item, currency = undefined) { + // + // { + // "amount":"29.889184", + // "asset_id":5, + // "balance":"29.889184", + // "created_at":"2020-11-15T21:25:01Z", + // "meta_data":{ + // "deposit_id":3884, + // "transaction_id":"0x41a60174849828530abb5008e98fc63c9b598288743ec4ba9620bcce900a3b8d" + // }, + // "transaction_type":"deposit", + // "user_id":22142, + // "uuid":"70bb5679da3c4637884e2dc63efaa846" + // } + // + const id = this.safeString (item, 'uuid'); + let direction = undefined; + const account = undefined; + const metaData = this.safeValue (item, 'meta_data', {}); + const referenceId = this.safeString (metaData, 'transaction_id'); + const referenceAccount = undefined; + let type = this.safeString (item, 'transaction_type'); + if ((type === 'deposit') || (type === 'commission_rebate') || (type === 'referral_bonus') || (type === 'pnl') || (type === 'withdrawal_cancellation') || (type === 'promo_credit')) { + direction = 'in'; + } else if ((type === 'withdrawal') || (type === 'commission') || (type === 'conversion') || (type === 'perpetual_futures_funding')) { + direction = 'out'; + } + type = this.parseLedgerEntryType (type); + const currencyId = this.safeInteger (item, 'asset_id'); + const currenciesByNumericId = this.safeValue (this.options, 'currenciesByNumericId'); + currency = this.safeValue (currenciesByNumericId, currencyId, currency); + const code = (currency === undefined) ? undefined : currency['code']; + const amount = this.safeFloat (item, 'amount'); + const timestamp = this.parse8601 (this.safeString (item, 'created_at')); + const after = this.safeFloat (item, 'balance'); + const before = Math.max (0, after - amount); + const status = 'ok'; + return { + 'info': item, + 'id': id, + 'direction': direction, + 'account': account, + 'referenceId': referenceId, + 'referenceAccount': referenceAccount, + 'type': type, + 'currency': code, + 'amount': amount, + 'before': before, + 'after': after, + 'status': status, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'fee': undefined, + }; + } + + async fetchDepositAddress (code, params = {}) { + await this.loadMarkets (); + const currency = this.currency (code); + const request = { + 'asset_symbol': currency['id'], + }; + const response = await this.privateGetDepositsAddress (this.extend (request, params)); + // + // { + // "success":true, + // "result":{ + // "id":19628, + // "user_id":22142, + // "address":"0x0eda26523397534f814d553a065d8e46b4188e9a", + // "status":"active", + // "updated_at":"2020-11-15T20:25:53.000Z", + // "created_at":"2020-11-15T20:25:53.000Z", + // "asset_symbol":"USDT", + // "custodian":"onc" + // } + // } + // + const result = this.safeValue (response, 'result', {}); + const address = this.safeString (result, 'address'); + this.checkAddress (address); + return { + 'currency': code, + 'address': address, + 'tag': undefined, + 'info': response, + }; + } + + sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { + const requestPath = '/' + this.version + '/' + this.implodeParams (path, params); + let url = this.urls['api'][api] + requestPath; + const query = this.omit (params, this.extractParams (path)); + if (api === 'public') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } else if (api === 'private') { + this.checkRequiredCredentials (); + const timestamp = this.seconds ().toString (); + headers = { + 'api-key': this.apiKey, + 'timestamp': timestamp, + }; + let auth = method + timestamp + requestPath; + if ((method === 'GET') || (method === 'DELETE')) { + if (Object.keys (query).length) { + const queryString = '?' + this.urlencode (query); + auth += queryString; + url += queryString; + } + } else { + body = this.json (query); + auth += body; + headers['Content-Type'] = 'application/json'; + } + const signature = this.hmac (this.encode (auth), this.encode (this.secret)); + headers['signature'] = signature; + } + return { 'url': url, 'method': method, 'body': body, 'headers': headers }; + } + + handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { + if (response === undefined) { + return; + } + // + // {"error":{"code":"insufficient_margin","context":{"available_balance":"0.000000000000000000","required_additional_balance":"1.618626000000000000000000000"}},"success":false} + // + const error = this.safeValue (response, 'error', {}); + const errorCode = this.safeString (error, 'code'); + if (errorCode !== undefined) { + const feedback = this.id + ' ' + body; + this.throwExactlyMatchedException (this.exceptions['exact'], errorCode, feedback); + this.throwBroadlyMatchedException (this.exceptions['broad'], errorCode, feedback); + throw new ExchangeError (feedback); // unknown message + } + } +}; diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/deribit.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/deribit.js index 9f88f869b..f277c3975 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/deribit.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/deribit.js @@ -778,7 +778,7 @@ module.exports = class deribit extends Exchange { const now = this.milliseconds (); if (since === undefined) { if (limit === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a since argument or a limit argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a since argument or a limit argument'); } else { request['start_timestamp'] = now - (limit - 1) * duration * 1000; request['end_timestamp'] = now; @@ -1011,7 +1011,7 @@ module.exports = class deribit extends Exchange { 'cancelled': 'canceled', 'filled': 'closed', 'rejected': 'rejected', - // 'untriggered': 'open', + 'untriggered': 'open', }; return this.safeString (statuses, status, status); } @@ -1096,7 +1096,8 @@ module.exports = class deribit extends Exchange { trades = this.parseTrades (trades, market); } const timeInForce = this.parseTimeInForce (this.safeString (order, 'time_in_force')); - const stopPrice = undefined; + const stopPrice = this.safeValue (order, 'stop_price'); + const postOnly = this.safeValue (order, 'post_only'); return { 'info': order, 'id': id, @@ -1107,6 +1108,7 @@ module.exports = class deribit extends Exchange { 'symbol': market['symbol'], 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -1191,13 +1193,13 @@ module.exports = class deribit extends Exchange { if (price !== undefined) { request['price'] = this.priceToPrecision (symbol, price); } else { - throw new ArgumentsRequired (this.id + ' createOrder requires a price argument for a ' + type + ' order'); + throw new ArgumentsRequired (this.id + ' createOrder() requires a price argument for a ' + type + ' order'); } } if (stopPriceIsRequired) { const stopPrice = this.safeFloat2 (params, 'stop_price', 'stopPrice'); if (stopPrice === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires a stop_price or stopPrice param for a ' + type + ' order'); + throw new ArgumentsRequired (this.id + ' createOrder() requires a stop_price or stopPrice param for a ' + type + ' order'); } else { request['stop_price'] = this.priceToPrecision (symbol, stopPrice); } @@ -1266,10 +1268,10 @@ module.exports = class deribit extends Exchange { async editOrder (id, symbol, type, side, amount = undefined, price = undefined, params = {}) { if (amount === undefined) { - throw new ArgumentsRequired (this.id + ' editOrder requires an amount argument'); + throw new ArgumentsRequired (this.id + ' editOrder() requires an amount argument'); } if (price === undefined) { - throw new ArgumentsRequired (this.id + ' editOrder requires a price argument'); + throw new ArgumentsRequired (this.id + ' editOrder() requires a price argument'); } await this.loadMarkets (); const request = { @@ -1631,7 +1633,7 @@ module.exports = class deribit extends Exchange { const request = { 'instrument_name': market['id'], }; - const response = await this.privateGetPosition (this.extend (request, params)); + const response = await this.privateGetGetPosition (this.extend (request, params)); // // { // "jsonrpc": "2.0", @@ -1670,7 +1672,7 @@ module.exports = class deribit extends Exchange { const request = { 'currency': currency['id'], }; - const response = await this.privateGetPositions (this.extend (request, params)); + const response = await this.privateGetGetPositions (this.extend (request, params)); // // { // "jsonrpc": "2.0", diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/digifinex.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/digifinex.js index 25a9fcabb..6584b919c 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/digifinex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/digifinex.js @@ -502,7 +502,7 @@ module.exports = class digifinex extends Exchange { async fetchTickers (symbols = undefined, params = {}) { const apiKey = this.safeValue (params, 'apiKey', this.apiKey); if (!apiKey) { - throw new ArgumentsRequired (this.id + ' fetchTicker is a private v2 endpoint that requires an `exchange.apiKey` credential or an `apiKey` extra parameter'); + throw new ArgumentsRequired (this.id + ' fetchTickers() is a private v2 endpoint that requires an `exchange.apiKey` credential or an `apiKey` extra parameter'); } await this.loadMarkets (); const request = { @@ -548,7 +548,7 @@ module.exports = class digifinex extends Exchange { async fetchTicker (symbol, params = {}) { const apiKey = this.safeValue (params, 'apiKey', this.apiKey); if (!apiKey) { - throw new ArgumentsRequired (this.id + ' fetchTicker is a private v2 endpoint that requires an `exchange.apiKey` credential or an `apiKey` extra parameter'); + throw new ArgumentsRequired (this.id + ' fetchTicker() is a private v2 endpoint that requires an `exchange.apiKey` credential or an `apiKey` extra parameter'); } await this.loadMarkets (); const market = this.market (symbol); @@ -994,6 +994,7 @@ module.exports = class digifinex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -1284,7 +1285,7 @@ module.exports = class digifinex extends Exchange { const address = this.safeString (depositAddress, 'address'); const tag = this.safeString (depositAddress, 'addressTag'); const currencyId = this.safeStringUpper (depositAddress, 'currency'); - const code = this.safeCurrencCode (currencyId); + const code = this.safeCurrencyCode (currencyId); return { 'info': depositAddress, 'code': code, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/dsx.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/dsx.js index cff6ab255..349fc2489 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/dsx.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/dsx.js @@ -653,7 +653,7 @@ module.exports = class dsx extends Exchange { await this.loadMarkets (); const market = this.market (symbol); if (type === 'market' && price === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires a price argument even for market orders, that is the worst price that you agree to fill your order for'); + throw new ArgumentsRequired (this.id + ' createOrder() requires a price argument even for market orders, that is the worst price that you agree to fill your order for'); } const request = { 'pair': market['id'], @@ -840,6 +840,7 @@ module.exports = class dsx extends Exchange { 'lastTradeTimestamp': lastTradeTimestamp, 'type': orderType, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/equos.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/equos.js new file mode 100644 index 000000000..5dc44a2ac --- /dev/null +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/equos.js @@ -0,0 +1,1548 @@ +'use strict'; + +// ---------------------------------------------------------------------------- + +const Exchange = require ('./base/Exchange'); +const { ExchangeError, ArgumentsRequired, BadSymbol } = require ('./base/errors'); + +// ---------------------------------------------------------------------------- + +module.exports = class equos extends Exchange { + describe () { + return this.deepExtend (super.describe (), { + 'id': 'equos', + 'name': 'EQUOS', + 'countries': [ 'US', 'SG' ], // United States, Singapore + 'rateLimit': 10, + 'has': { + 'CORS': false, + 'cancelOrder': true, + 'createOrder': true, + 'editOrder': true, + 'fetchBalance': true, + 'fetchCanceledOrders': true, + 'fetchClosedOrders': true, + 'fetchCurrencies': true, + 'fetchDepositAddress': true, + 'fetchDeposits': true, + 'fetchMarkets': true, + 'fetchMyTrades': true, + 'fetchOHLCV': true, + 'fetchOrder': true, + 'fetchOrderBook': true, + 'fetchOrders': true, + 'fetchTicker': false, + 'fetchTrades': true, + 'fetchTradingFees': true, + 'fetchWithdrawals': true, + 'withdraw': true, + }, + 'timeframes': { + '1m': 1, + '5m': 2, + '15m': 3, + '1h': 4, + '6h': 5, + '1d': 6, + '7d': 7, + }, + 'urls': { + 'logo': 'https://user-images.githubusercontent.com/1294454/107758499-05edd180-6d38-11eb-9e09-0b69602a7a15.jpg', + 'test': { + 'public': 'https://testnet.equos.io/api', + 'private': 'https://testnet.equos.io/api', + }, + 'api': { + 'public': 'https://equos.io/api', + 'private': 'https://equos.io/api', + }, + 'www': 'https://equos.io', + 'doc': [ + 'https://developer.equos.io', + ], + 'referral': 'https://equos.io?referredByCode=zpa8kij4ouvBFup3', + }, + 'api': { + 'public': { + 'get': [ + 'health', + 'getInstruments', + 'getInstrumentPairs', + 'getOrderBook', + 'getRisk', + 'getTradeHistory', + 'getFundingRateHistory', + 'getChart', + 'getExchangeInfo', // not documented + ], + }, + 'private': { + 'post': [ + 'logon', + 'order', + 'cancelOrder', + 'cancelReplaceOrder', + 'getOrder', + 'getOrders', + 'getOrderStatus', + 'getOrderHistory', + 'userTrades', + 'getPositions', + 'cancelAll', + 'getUserHistory', + 'getRisk', + 'getDepositAddresses', + 'getDepositHistory', // not documented + 'getWithdrawRequests', + 'sendWithdrawRequest', + 'getTransferHistory', + ], + }, + }, + 'requiredCredentials': { + 'apiKey': true, + 'secret': true, + 'uid': true, + }, + 'exceptions': { + 'broad': { + 'symbol not found': BadSymbol, + }, + }, + }); + } + + async fetchMarkets (params = {}) { + const request = { + 'verbose': true, + }; + const response = await this.publicGetGetInstrumentPairs (this.extend (request, params)); + // + // { + // "instrumentPairs":[ + // { + // "instrumentId":52, + // "symbol":"BTC/USDC", + // "quoteId":1, + // "baseId":3, + // "price_scale":2, + // "quantity_scale":6, + // "securityStatus":1, + // "securityDesc":"BTC/USDC", // "BTC/USDC[F]" + // "assetType":"PAIR", // "PERPETUAL_SWAP" + // "currency":"BTC", + // "contAmtCurr":"USDC", + // "settlCurrency":"USDC", + // "commCurrency":"USDC", + // "cfiCode":"XXXXXX", + // "securityExchange":"XXXX", + // "instrumentPricePrecision":2, + // "minPriceIncrement":1.0, + // "minPriceIncrementAmount":1.0, + // "roundLot":1, + // "minTradeVol":0.001000, + // "maxTradeVol":0.000000 + // // contracts onlye + // "qtyType":0, + // "contractMultiplier":1.0, + // "issueDate":1598608087000 + // }, + // ] + // } + // + const instrumentPairs = this.safeValue (response, 'instrumentPairs', []); + const markets = []; + for (let i = 0; i < instrumentPairs.length; i++) { + const market = this.parseMarket (instrumentPairs[i]); + markets.push (market); + } + return markets; + } + + parseMarket (market) { + // + // { + // "instrumentId":52, + // "symbol":"BTC/USDC", // "BTC/USDC[F]" + // "quoteId":1, + // "baseId":3, + // "price_scale":2, + // "quantity_scale":6, + // "securityStatus":1, + // "securityDesc":"BTC/USDC", // "BTC/USDC[F]" + // "assetType":"PAIR", // "PERPETUAL_SWAP" + // "currency":"BTC", + // "contAmtCurr":"USDC", + // "settlCurrency":"USDC", + // "commCurrency":"USDC", + // "cfiCode":"XXXXXX", + // "securityExchange":"XXXX", + // "instrumentPricePrecision":2, + // "minPriceIncrement":1.0, + // "minPriceIncrementAmount":1.0, + // "roundLot":1, + // "minTradeVol":0.001000, + // "maxTradeVol":0.000000 + // // contracts onlye + // "qtyType":0, + // "contractMultiplier":1.0, + // "issueDate":1598608087000 + // } + // + const id = this.safeString (market, 'instrumentId'); + const uppercaseId = this.safeString (market, 'symbol'); + const assetType = this.safeString (market, 'assetType'); + const spot = (assetType === 'PAIR'); + const swap = (assetType === 'PERPETUAL_SWAP'); + const type = swap ? 'swap' : 'spot'; + const baseId = this.safeString (market, 'currency'); + const quoteId = this.safeString (market, 'contAmtCurr'); + const base = this.safeCurrencyCode (baseId); + const quote = this.safeCurrencyCode (quoteId); + const symbol = swap ? uppercaseId : (base + '/' + quote); + const status = this.safeInteger (market, 'securityStatus'); + const active = (status === 1); + const precision = { + 'amount': this.safeInteger (market, 'quantity_scale'), + 'price': this.safeInteger (market, 'price_scale'), + }; + return { + 'id': id, + 'uppercaseId': uppercaseId, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'baseId': baseId, + 'quoteId': quoteId, + 'type': type, + 'spot': spot, + 'swap': swap, + 'active': active, + 'precision': precision, + 'limits': { + 'amount': { + 'min': this.safeFloat (market, 'minTradeVol'), + 'max': undefined, + }, + 'price': { + 'min': undefined, + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + }, + 'info': market, + }; + } + + async fetchCurrencies (params = {}) { + const response = await this.publicGetGetInstruments (params); + // + // { + // "instruments": [ + // [ + // 3, // id + // "BTC", // symbol + // 2, // price_scale + // 6, // amount_scale + // 1, // status + // 0, // withdraw_fee + // "BTC", // name + // true, // withdrawal_pct + // ], + // ] + // } + // + const currencies = {}; + const instruments = this.safeValue (response, 'instruments', []); + for (let i = 0; i < instruments.length; i++) { + const currency = this.parseCurrency (instruments[i]); + const code = currency['code']; + currencies[code] = currency; + } + return currencies; + } + + parseCurrency (currency) { + // + // [ + // 3, // 0 id + // "BTC", // 1 symbol + // 2, // 2 price_scale + // 6, // 3 amount_scale + // 1, // 4 status + // 0, // 5 withdraw_fee + // "BTC", // 6 name + // true, // 7 withdrawal_pct + // ], + // + const id = this.safeString (currency, 0); + const uppercaseId = this.safeString (currency, 1); + const code = this.safeCurrencyCode (uppercaseId); + const priceScale = this.safeInteger (currency, 2); + const amountScale = this.safeInteger (currency, 3); + const precision = Math.max (priceScale, amountScale); + const name = this.safeString (currency, 6); + const status = this.safeInteger (currency, 4); + const active = (status === 1); + const fee = this.safeFloat (currency, 5); // withdraw_fee + return { + 'id': id, + 'info': currency, + 'uppercaseId': uppercaseId, + 'code': code, + 'name': name, + 'precision': precision, + 'fee': fee, + 'active': active, + 'limits': { + 'amount': { + 'min': undefined, + 'max': undefined, + }, + 'price': { + 'min': undefined, + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + 'withdraw': { + 'min': undefined, + 'max': undefined, + }, + }, + }; + } + + async fetchOHLCV (symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'pairId': parseInt (market['id']), + 'timespan': this.timeframes[timeframe], + }; + if (limit !== undefined) { + request['limit'] = limit; + } + const response = await this.publicGetGetChart (this.extend (request, params)); + // + // { + // "pairId":57, + // "t":1, + // "s":"ETH/BTC", + // "lastPx":44099, + // "lastQty":100000, + // "o":0.043831000000000016, + // "h":0.04427100000000002, + // "l":0.032000000000000015, + // "c":0.04409900000000002, + // "v":0.21267333000000016, + // "q":4.850000000000001, + // "chart":[ + // [1612519260000,44099,44099,44099,44099,0,441], + // [1612519200000,44099,44099,44099,44099,0,440], + // [1612519140000,44269,44271,44269,44271,0,439], + // ] + // } + // + const chart = this.safeValue (response, 'chart', []); + return this.parseOHLCVs (chart, market, timeframe, since, limit); + } + + parseOHLCV (ohlcv, market = undefined) { + // + // [ + // 1612519260000, // timestamp + // 44099, // open + // 44099, // high + // 44099, // low + // 44099, // close + // 0, // base volume + // 441, // seqNumber + // ] + // + const timestamp = this.safeInteger (ohlcv, 0); + const open = this.convertFromScale (ohlcv[1], market['precision']['price']); + const high = this.convertFromScale (ohlcv[2], market['precision']['price']); + const low = this.convertFromScale (ohlcv[3], market['precision']['price']); + const close = this.convertFromScale (ohlcv[4], market['precision']['price']); + const volume = this.convertFromScale (ohlcv[5], market['precision']['amount']); + // volume = ohlcv[5]; + return [timestamp, open, high, low, close, volume]; + } + + parseBidAsk (bidask, priceKey = 0, amountKey = 1, market = undefined) { + if (market === undefined) { + throw new ArgumentsRequired (this.id + ' parseBidAsk() requires a market argument'); + } + const price = this.safeFloat (bidask, priceKey); + const amount = this.safeFloat (bidask, amountKey); + return [ + this.convertFromScale (price, market['precision']['price']), + this.convertFromScale (amount, market['precision']['amount']), + ]; + } + + parseOrderBook (orderbook, timestamp = undefined, bidsKey = 'bids', asksKey = 'asks', priceKey = 0, amountKey = 1, market = undefined) { + const result = { + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'nonce': undefined, + }; + const sides = [ bidsKey, asksKey ]; + for (let i = 0; i < sides.length; i++) { + const side = sides[i]; + const orders = []; + const bidasks = this.safeValue (orderbook, side); + for (let k = 0; k < bidasks.length; k++) { + orders.push (this.parseBidAsk (bidasks[k], priceKey, amountKey, market)); + } + result[side] = orders; + } + result[bidsKey] = this.sortBy (result[bidsKey], 0, true); + result[asksKey] = this.sortBy (result[asksKey], 0); + return result; + } + + async fetchOrderBook (symbol, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'pairId': parseInt (market['id']), + }; + const response = await this.publicGetGetOrderBook (this.extend (request, params)); + // + // { + // "bids":[ + // [4000480,30000,1612644984667], + // [3999304,200000,1612644984667], + // [3998862,50000,1612644984667], + // ], + // "asks":[ + // [4001962,1790000,1612644984667], + // [4002616,1000,1612644984667], + // [4003889,1000,1612644984667], + // ], + // "usdMark":40011.02, + // "marketStatus":0, + // "estFundingRate":0.0, + // "fundingRateTime":0, + // "auctionPrice":0.0, + // "auctionVolume":0.0 + // } + // + return this.parseOrderBook (response, undefined, 'bids', 'asks', 0, 1, market); + } + + async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'pairId': parseInt (market['id']), + }; + const response = await this.publicGetGetTradeHistory (this.extend (request, params)); + // + // { + // "trades":[ + // [4022800,47000,"20210206-21:39:12.886",256323,1], + // [4023066,1000,"20210206-21:38:55.030",256322,1], + // [4022406,50000,"20210206-21:36:56.334",256321,1], + // ] + // } + // + const trades = this.safeValue (response, 'trades', []); + return this.parseTrades (trades, market, since, limit, params); + } + + parseTrade (trade, market = undefined) { + // + // public fetchTrades + // + // [ + // 4022800, // 0 price + // 47000, // 1 quantity + // "20210206-21:39:12.886", // 2 timestamp + // 256323, // 3 sequence number + // 1 // 4 taker side 1 = buy, 2 = sell + // ] + // + // private fetchMyTrades + // + // { + // "account":3583, + // "commission":"-0.015805", + // "commCurrency":"USDC", + // "execId":265757, + // "ordType":"2", + // "ordStatus":"2", + // "execType":"F", + // "aggressorIndicator":true, + // "orderId":388953019, + // "price":"1842.04", + // "qty":"0.010000", + // "lastPx":"1756.22", + // "avgPx":"1756.22", + // "cumQty":"0.010000", + // "quoteQty":"0.010000", + // "side":"BUY", + // "symbol":"ETH/USDC", + // "clOrdId":"1613106766970339107", + // "submitterId":3583, + // "targetStrategy":"0", + // "time":1613106766971, + // "date":"20210212-05:12:46.971" + // } + // + let id = undefined; + let timestamp = undefined; + let orderId = undefined; + let type = undefined; + let side = undefined; + let price = undefined; + let amount = undefined; + let cost = undefined; + let fee = undefined; + let symbol = undefined; + if (Array.isArray (trade)) { + id = this.safeString (trade, 3); + price = this.convertFromScale (this.safeInteger (trade, 0), market['precision']['price']); + amount = this.convertFromScale (this.safeInteger (trade, 1), market['precision']['amount']); + timestamp = this.toMilliseconds (this.safeString (trade, 2)); + const takerSide = this.safeInteger (trade, 4); + if (takerSide === 1) { + side = 'buy'; + } else if (takerSide === 2) { + side = 'sell'; + } + } else { + id = this.safeString (trade, 'execId'); + timestamp = this.safeInteger (trade, 'time'); + const marketId = this.safeString (trade, 'symbol'); + symbol = this.safeSymbol (marketId, market); + orderId = this.safeString (trade, 'orderId'); + side = this.safeStringLower (trade, 'side'); + type = this.parseOrderType (this.safeString (trade, 'ordType')); + price = this.safeFloat (trade, 'lastPx'); + amount = this.safeFloat (trade, 'quoteQty'); + let feeCost = this.safeFloat (trade, 'commission'); + if (feeCost !== undefined) { + feeCost = -feeCost; + const feeCurrencyId = this.safeString (trade, 'commCurrency'); + const feeCurrencyCode = this.safeCurrencyCode (feeCurrencyId); + fee = { + 'cost': feeCost, + 'currency': feeCurrencyCode, + }; + } + } + if ((symbol === undefined) && (market !== undefined)) { + symbol = market['symbol']; + } + if (cost === undefined) { + if ((amount !== undefined) && (price !== undefined)) { + cost = amount * price; + } + } + return { + 'info': trade, + 'id': id, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'symbol': symbol, + 'order': orderId, + 'type': type, + 'side': side, + 'takerOrMaker': undefined, + 'price': price, + 'amount': amount, + 'cost': cost, + 'fee': fee, + }; + } + + async fetchBalance (params = {}) { + await this.loadMarkets (); + const response = await this.privatePostGetPositions (params); + // { + // "positions":[ + // { + // "instrumentId":1, + // "userId":3583, + // "quantity":0, + // "availableQuantity":0, + // "quantity_scale":6, + // "symbol":"USDC", + // "assetType":"ASSET", + // "usdCostBasis":0.0, + // "usdAvgCostBasis":0.0, + // "usdValue":0.0, + // "usdUnrealized":0.0, + // "usdRealized":0.0, + // "baseUsdMark":1.0, + // "settleCoinUsdMark":0.0, + // "settleCoinUnrealized":0.0, + // "settleCoinRealized":0.0 + // }, + // ] + // } + const positions = this.safeValue (response, 'positions', []); + const result = { + 'info': response, + }; + for (let i = 0; i < positions.length; i++) { + const position = positions[i]; + const assetType = this.safeString (position, 'assetType'); + if (assetType === 'ASSET') { + const currencyId = this.safeString (position, 'symbol'); + const code = this.safeCurrencyCode (currencyId); + const quantity = this.safeFloat (position, 'quantity'); + const availableQuantity = this.safeFloat (position, 'availableQuantity'); + const scale = this.safeInteger (position, 'quantity_scale'); + const account = this.account (); + account['free'] = this.convertFromScale (availableQuantity, scale); + account['total'] = this.convertFromScale (quantity, scale); + result[code] = account; + } + } + return this.parseBalance (result); + } + + async createOrder (symbol, type, side, amount, price = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const orderSide = (side === 'buy') ? 1 : 2; + const quantityScale = this.getScale (amount); + const request = { + // 'id': 0, + // 'account': 0, // required for institutional users + 'instrumentId': parseInt (market['id']), + 'symbol': market['uppercaseId'], + // 'clOrdId': '', + 'side': orderSide, // 1 = buy, 2 = sell + // 'ordType': 1, // 1 = market, 2 = limit, 3 = stop market, 4 = stop limit + // 'price': this.priceToPrecision (symbol, price), // required for limit and stop limit orders + // 'price_scale': this.getScale (price), + 'quantity': this.convertToScale (amount, quantityScale), + 'quantity_scale': quantityScale, + // 'stopPx': this.priceToPrecision (symbol, stopPx), + // 'stopPx_scale': this.getScale (stopPx), + // 'targetStrategy': 0, + // 'isHidden': false, + // 'timeInForce': 1, // 1 = Good Till Cancel (GTC), 3 = Immediate or Cancel (IOC), 4 = Fill or Kill (FOK), 5 = Good Till Crossing (GTX), 6 = Good Till Date (GTD) + // 'interval': 0, + // 'intervalCount': 0, + // 'intervalDelay': 0, + // 'price2': 0, + // 'price2_scale': this.getScale (price2), + // 'blockWaitAck': 0, // 1 = wait for order acknowledgement, when set, response will include the matching engine "orderId" field + }; + if (type === 'market') { + request['ordType'] = 1; + } else if (type === 'limit') { + request['ordType'] = 2; + request['price'] = this.convertToScale (price, this.getScale (price)); + } else { + const stopPrice = this.safeFloat2 (params, 'stopPrice', 'stopPx'); + params = this.omit (params, [ 'stopPrice', 'stopPx' ]); + if (stopPrice === undefined) { + if (type === 'stop') { + if (price === undefined) { + throw new ArgumentsRequired (this.id + ' createOrder() requires a price argument or a stopPrice parameter or a stopPx parameter for ' + type + ' orders'); + } + request['ordType'] = 3; + request['stopPx'] = this.convertToScale (price, this.getScale (price)); + } else if (type === 'stop limit') { + throw new ArgumentsRequired (this.id + ' createOrder() requires a stopPrice parameter or a stopPx parameter for ' + type + ' orders'); + } + } else { + if (type === 'stop') { + request['ordType'] = 3; + request['stopPx'] = this.convertToScale (stopPrice, this.getScale (stopPrice)); + } else if (type === 'stop limit') { + request['ordType'] = 4; + const priceScale = this.getScale (price); + const stopPriceScale = this.getScale (stopPrice); + request['price_scale'] = priceScale; + request['stopPx_scale'] = stopPriceScale; + request['stopPx'] = this.convertToScale (stopPrice, stopPriceScale); + request['price'] = this.convertToScale (price, priceScale); + } + } + } + const response = await this.privatePostOrder (this.extend (request, params)); + // + // { + // "status":"sent", + // "id":385617863, + // "instrumentId":53, + // "clOrdId":"1613037510849637345", + // "userId":3583, + // "price":2000, + // "quantity":200, + // "ordType":2 + // } + // + return this.parseOrder (response, market); + } + + async cancelOrder (id, symbol = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'origOrderId': parseInt (id), + 'instrumentId': parseInt (market['id']), + }; + const response = await this.privatePostCancelOrder (this.extend (request, params)); + // + // { + // "status":"sent", + // "id":0, + // "origOrderId":385613629, + // "instrumentId":53, + // "userId":3583, + // "price":0, + // "quantity":0, + // "ordType":0 + // } + // + return this.parseOrder (response, market); + } + + async editOrder (id, symbol, type, side, amount, price = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const orderSide = (side === 'buy') ? 1 : 2; + const quantityScale = this.getScale (amount); + const request = { + // 'id': 0, + 'origOrderId': id, + // 'account': 0, // required for institutional users + 'instrumentId': parseInt (market['id']), + 'symbol': market['uppercaseId'], + // 'clOrdId': '', + 'side': orderSide, // 1 = buy, 2 = sell + // 'ordType': 1, // 1 = market, 2 = limit, 3 = stop market, 4 = stop limit + // 'price': this.priceToPrecision (symbol, price), // required for limit and stop limit orders + // 'price_scale': this.getScale (price), + 'quantity': this.convertToScale (amount, quantityScale), + 'quantity_scale': quantityScale, + // 'stopPx': this.priceToPrecision (symbol, stopPx), + // 'stopPx_scale': this.getScale (stopPx), + // 'timeInForce': 1, // 1 = Good Till Cancel (GTC), 3 = Immediate or Cancel (IOC), 4 = Fill or Kill (FOK), 5 = Good Till Crossing (GTX), 6 = Good Till Date (GTD) + }; + if (type === 'market') { + request['ordType'] = 1; + } else if (type === 'limit') { + request['ordType'] = 2; + request['price'] = this.convertToScale (price, this.getScale (price)); + } else { + const stopPrice = this.safeFloat2 (params, 'stopPrice', 'stopPx'); + params = this.omit (params, [ 'stopPrice', 'stopPx' ]); + if (stopPrice === undefined) { + if (type === 'stop') { + if (price === undefined) { + throw new ArgumentsRequired (this.id + ' editOrder() requires a price argument or a stopPrice parameter or a stopPx parameter for ' + type + ' orders'); + } + request['ordType'] = 3; + request['stopPx'] = this.convertToScale (price, this.getScale (price)); + } else if (type === 'stop limit') { + throw new ArgumentsRequired (this.id + ' editOrder() requires a stopPrice parameter or a stopPx parameter for ' + type + ' orders'); + } + } else { + if (type === 'stop') { + request['ordType'] = 3; + request['stopPx'] = this.convertToScale (stopPrice, this.getScale (stopPrice)); + } else if (type === 'stop limit') { + request['ordType'] = 4; + const priceScale = this.getScale (price); + const stopPriceScale = this.getScale (stopPrice); + request['price_scale'] = priceScale; + request['stopPx_scale'] = stopPriceScale; + request['stopPx'] = this.convertToScale (stopPrice, stopPriceScale); + request['price'] = this.convertToScale (price, priceScale); + } + } + } + const response = await this.privatePostOrder (this.extend (request, params)); + // + // { + // "status":"sent", + // "id":385617863, + // "instrumentId":53, + // "clOrdId":"1613037510849637345", + // "userId":3583, + // "price":2000, + // "quantity":200, + // "ordType":2 + // } + // + return this.parseOrder (response, market); + } + + async fetchOrder (id, symbol = undefined, params = {}) { + await this.loadMarkets (); + const request = { + 'orderId': parseInt (id), + }; + const response = await this.privatePostGetOrderStatus (this.extend (request, params)); + // + // { + // "orderId":388953019, + // "clOrdId":"1613106766970339107", + // "symbol":"ETH/USDC", + // "instrumentId":53, + // "side":"1", + // "userId":3583, + // "account":3583, + // "execType":"F", + // "ordType":"2", + // "ordStatus":"2", + // "timeInForce":"3", + // "timeStamp":"20210212-05:12:46.971", + // "execId":265757, + // "targetStrategy":0, + // "isHidden":false, + // "isReduceOnly":false, + // "isLiquidation":false, + // "fee":0, + // "fee_scale":6, + // "feeInstrumentId":1, + // "price":184204, + // "price_scale":2, + // "quantity":10000, + // "quantity_scale":6, + // "leavesQty":0, + // "leavesQty_scale":6, + // "cumQty":10000, + // "cumQty_scale":6, + // "lastPx":175622, + // "lastPx_scale":2, + // "avgPx":175622, + // "avgPx_scale":2, + // "lastQty":10000, + // "lastQty_scale":6 + // } + // + return this.parseOrder (response); + } + + async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const request = { + 'ordStatus': '2', // '0' = New, '1' = Partially filled, '2' = Filled, '4' = Cancelled, '8' = Rejected, 'C' = Expired + }; + return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); + } + + async fetchCanceledOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const request = { + 'ordStatus': '4', // '0' = New, '1' = Partially filled, '2' = Filled, '4' = Cancelled, '8' = Rejected, 'C' = Expired + }; + return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); + } + + async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + let market = undefined; + const request = { + // 'account': id, // for institutional users + // 'symbol': marketSymbol, // cannot be used with instrumentId + // 'instrumentId': market['numericId'], + // 'limit': limit, + // 'execType': execType, // '0' = New, '4' = Canceled, '5' = Replace, '8' = Rejected, 'C' = Expired, 'F' = Fill Status, 'I' = Order Status + // 'ordStatus': ordStatus, // '0' = New, '1' = Partially filled, '2' = Filled, '4' = Cancelled, '8' = Rejected, 'C' = Expired + }; + if (symbol !== undefined) { + market = this.market (symbol); + request['instrumentId'] = parseInt (market['id']); + } + if (limit !== undefined) { + request['limit'] = limit; + } + const response = await this.privatePostGetOrders (this.extend (request, params)); + // + // { + // "isInitialSnap":false, + // "orders":[ + // { + // "orderId":385613629, + // "orderUpdateSeq":1, + // "clOrdId":"1613037448945798198", + // "symbol":"ETH/USDC", + // "instrumentId":53, + // "side":"1", + // "userId":3583, + // "account":3583, + // "execType":"4", + // "ordType":"2", + // "ordStatus":"C", + // "timeInForce":"3", + // "timeStamp":"20210211-09:57:28.944", + // "execId":0, + // "targetStrategy":0, + // "isHidden":false, + // "isReduceOnly":false, + // "isLiquidation":false, + // "fee":0, + // "feeTotal":0, + // "fee_scale":0, + // "feeInstrumentId":0, + // "price":999, + // "price_scale":2, + // "quantity":10000000, + // "quantity_scale":6, + // "leavesQty":10000000, + // "leavesQty_scale":6, + // "cumQty":0, + // "cumQty_scale":0, + // "lastPx":0, + // "lastPx_scale":2, + // "avgPx":0, + // "avgPx_scale":0, + // "lastQty":0, + // "lastQty_scale":6 + // } + // ] + // } + // + const orders = this.safeValue (response, 'orders', []); + return this.parseOrders (orders, market, since, limit, params); + } + + async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'account': 123, // for institutional users + // 'instrumentId': market['id'], + // 'startTime': since, + // 'endTime': this.milliseconds (), + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['instrumentId'] = market['id']; + } + if (since !== undefined) { + request['startTime'] = since; + } + const response = await this.privatePostUserTrades (this.extend (request, params)); + // + // { + // "trades":[ + // { + // "account":3583, + // "commission":"-0.015805", + // "commCurrency":"USDC", + // "execId":265757, + // "ordType":"2", + // "ordStatus":"2", + // "execType":"F", + // "aggressorIndicator":true, + // "orderId":388953019, + // "price":"1842.04", + // "qty":"0.010000", + // "lastPx":"1756.22", + // "avgPx":"1756.22", + // "cumQty":"0.010000", + // "quoteQty":"0.010000", + // "side":"BUY", + // "symbol":"ETH/USDC", + // "clOrdId":"1613106766970339107", + // "submitterId":3583, + // "targetStrategy":"0", + // "time":1613106766971, + // "date":"20210212-05:12:46.971" + // } + // ] + // } + // + const trades = this.safeValue (response, 'trades', []); + return this.parseTrades (trades, market, since, limit, params); + } + + async fetchDepositAddress (code, params = {}) { + await this.loadMarkets (); + const currency = this.currency (code); + const request = { + 'instrumentId': parseInt (currency['id']), + }; + const response = await this.privatePostGetDepositAddresses (this.extend (request, params)); + // + // { + // "addresses":[ + // {"instrumentId":1,"userId":3583,"symbol":"USDC","address":"0xdff47af071ea3c537e57278290516cda32a78b97","status":1} + // ] + // } + // + const addresses = this.safeValue (response, 'addresses', []); + const address = this.safeValue (addresses, 0); + return this.parseDepositAddress (address, currency); + } + + parseDepositAddress (depositAddress, currency = undefined) { + // + // { + // "instrumentId":1, + // "userId":3583, + // "symbol":"USDC", + // "address":"0xdff47af071ea3c537e57278290516cda32a78b97", + // "status":1 + // } + // + const currencyId = this.safeString (depositAddress, 'symbol'); + const code = this.safeCurrencyCode (currencyId, currency); + const address = this.safeString (depositAddress, 'address'); + this.checkAddress (address); + return { + 'currency': code, + 'address': address, + 'tag': undefined, + 'info': depositAddress, + }; + } + + async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = {}; + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + request['instrumentId'] = parseInt (currency['id']); + } + const response = await this.privatePostGetDepositHistory (this.extend (request, params)); + // + // { + // "deposits":[ + // { + // "id":4309, + // "instrumentId":1, + // "userId":3583, + // "symbol":"USDC", + // "address":"null", + // "timestamp":"1613021112189", + // "status":1, + // "balance":0.0, + // "balance_change":100.0, + // "confirms":1, + // "transactionId":"caba4500-489f-424e-abd7-b4dabc09a800" + // } + // ] + // } + // + const deposits = this.safeValue (response, 'deposits', []); + return this.parseTransactions (deposits, currency, since, limit, { 'type': 'deposit' }); + } + + async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = {}; + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + request['instrumentId'] = parseInt (currency['id']); + } + const response = await this.privatePostGetWithdrawRequests (this.extend (request, params)); + // + // { + // "addresses":[ + // { + // "id":3841, + // "instrumentId":3, + // "userId":4245, + // "symbol":"BTC", + // "address":"XXXXXYYYYYZZZZZ", + // "timestamp":"20200806-11:04:35.053", + // "status":0, + // "balance":1, + // "balance_scale":3, + // "confirms":0, + // "transactionId":"null" + // } + // ] + // } + // + const withdrawals = this.safeValue (response, 'addresses', []); + return this.parseTransactions (withdrawals, currency, since, limit, { 'type': 'withdrawal' }); + } + + parseTransaction (transaction, currency = undefined) { + // + // fetchDeposits, fetchWithdrawals + // + // { + // "id":4309, + // "instrumentId":1, + // "userId":3583, + // "symbol":"USDC", + // "address":"null", + // "timestamp":"1613021112189", + // "status":1, + // "balance":0.0, + // "balance_change":100.0, + // "confirms":1, + // "transactionId":"caba4500-489f-424e-abd7-b4dabc09a800" + // } + // + // withdraw + // + // { + // "instrumentId": 1, + // "userId": 23750, + // "symbol": "USDC", + // "timestamp": "20200201-05:37:16.584", + // "status": 1, + // "userUuid": "b9e33713-c28f-468f-99bd-f6deab0dd854", + // "currencyCode": "USDC", + // "address": "2MvW97yT6E2Kq8bWc1aj1DqfbgMzjRNk2LE", + // "quantity": 20, + // "requestUuid": "56782b34-8a78-4f5f-b164-4b8f7d583b7f", + // "transactionUuid": "1004eb0f-41e1-41e9-9d48-8eefcc6c09f2", + // "transactionId": "WS23436", + // "destinationWalletAlias": "Test", + // "quantity_scale": 0 + // } + // + const id = this.safeString (transaction, 'id', 'transactionId'); + const txid = this.safeString (transaction, 'transactionUuid'); + const timestamp = this.safeInteger (transaction, 'timestamp'); + let address = this.safeString (transaction, 'address'); + if (address === 'null') { + address = undefined; + } + const type = this.safeString (transaction, 'type'); + let amount = this.safeFloat (transaction, 'balance_change'); + if (amount === undefined) { + amount = this.safeInteger (transaction, 'quantity'); + const amountScale = this.safeInteger (transaction, 'quantity_scale'); + amount = this.convertFromScale (amount, amountScale); + } + const currencyId = this.safeString (transaction, 'symbol'); + const code = this.safeCurrencyCode (currencyId, currency); + const status = this.parseTransactionStatus (this.safeString (transaction, 'status')); + return { + 'info': transaction, + 'id': id, + 'txid': txid, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'addressFrom': undefined, + 'address': address, + 'addressTo': undefined, + 'tagFrom': undefined, + 'tag': undefined, + 'tagTo': undefined, + 'type': type, + 'amount': amount, + 'currency': code, + 'status': status, + 'updated': undefined, + 'comment': undefined, + 'fee': undefined, + }; + } + + parseTransactionStatus (status) { + const statuses = { + '0': 'pending', + '1': 'ok', + }; + return this.safeString (statuses, status, status); + } + + async withdraw (code, amount, address, tag = undefined, params = {}) { + this.checkAddress (address); + await this.loadMarkets (); + const currency = this.currency (code); + const scale = this.getScale (amount); + const quantity = this.convertToScale (amount, scale); + const request = { + 'instrumentId': parseInt (currency['id']), + 'symbol': currency['uppercaseId'], + 'quantity': quantity, + 'quantity_scale': scale, + 'address': address, + }; + const response = await this.privatePostSendWithdrawRequest (this.extend (request, params)); + // + // { + // "instrumentId": 1, + // "userId": 23750, + // "symbol": "USDC", + // "timestamp": "20200201-05:37:16.584", + // "status": 1, + // "userUuid": "b9e33713-c28f-468f-99bd-f6deab0dd854", + // "currencyCode": "USDC", + // "address": "2MvW97yT6E2Kq8bWc1aj1DqfbgMzjRNk2LE", + // "quantity": 20, + // "requestUuid": "56782b34-8a78-4f5f-b164-4b8f7d583b7f", + // "transactionUuid": "1004eb0f-41e1-41e9-9d48-8eefcc6c09f2", + // "transactionId": "WS23436", + // "destinationWalletAlias": "Test", + // "quantity_scale": 0 + // } + // + return this.parseTransaction (response, currency); + } + + async fetchTradingFees (params = {}) { + // getExchangeInfo + const response = await this.publicGetGetExchangeInfo (params); + const tradingFees = this.safeValue (response, 'spotFees', []); + const taker = {}; + const maker = {}; + for (let i = 0; i < tradingFees.length; i++) { + const tradingFee = tradingFees[i]; + if (this.safeString (tradingFee, 'tier') !== undefined) { + taker[tradingFee['tier']] = this.safeFloat (tradingFee, 'taker'); + maker[tradingFee['tier']] = this.safeFloat (tradingFee, 'maker'); + } + } + return { + 'info': tradingFees, + 'tierBased': true, + 'maker': maker, + 'taker': taker, + }; + } + + async fetchTradingLimits (symbols = undefined, params = {}) { + await this.loadMarkets (); + // getExchangeInfo + const response = await this.publicGetGetExchangeInfo (params); + const tradingLimits = this.safeValue (response, 'tradingLimits', []); + // To-do parsing response when available + return { + 'info': tradingLimits, + 'limits': { + 'amount': { + 'min': undefined, + 'max': undefined, + }, + 'price': { + 'min': undefined, + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + }, + }; + } + + async fetchFundingLimits (params = {}) { + // getExchangeInfo + const response = await this.publicGetGetExchangeInfo (params); + const withdrawLimits = this.safeValue (response, 'withdrawLimits', []); + // TO-DO parse response when available + return { + 'info': withdrawLimits, + 'withdraw': undefined, + }; + } + + parseOrder (order, market = undefined) { + // + // createOrder, editOrder, cancelOrder + // + // { + // "status":"sent", + // "id":385617863, + // "instrumentId":53, + // "clOrdId":"1613037510849637345", + // "userId":3583, + // "price":2000, + // "quantity":200, + // "ordType":2 + // } + // + // fetchOrders, fetchOrder + // + // { + // "orderId":385613629, + // "orderUpdateSeq":1, + // "clOrdId":"1613037448945798198", + // "symbol":"ETH/USDC", + // "instrumentId":53, + // "side":"1", + // "userId":3583, + // "account":3583, + // "execType":"4", + // "ordType":"2", + // "ordStatus":"C", + // "timeInForce":"3", + // "timeStamp":"20210211-09:57:28.944", + // "execId":0, + // "targetStrategy":0, + // "isHidden":false, + // "isReduceOnly":false, + // "isLiquidation":false, + // "fee":0, + // "feeTotal":0, + // "fee_scale":0, + // "feeInstrumentId":0, + // "price":999, + // "price_scale":2, + // "quantity":10000000, + // "quantity_scale":6, + // "leavesQty":10000000, + // "leavesQty_scale":6, + // "cumQty":0, + // "cumQty_scale":0, + // "lastPx":0, + // "lastPx_scale":2, + // "avgPx":0, + // "avgPx_scale":0, + // "lastQty":0, + // "lastQty_scale":6 + // } + // + let id = this.safeString2 (order, 'orderId', 'id'); + id = this.safeString (order, 'origOrderId', id); + const clientOrderId = this.safeString (order, 'clOrdId'); + const type = this.parseOrderType (this.safeString (order, 'ordType')); + const side = this.parseOrderSide (this.safeString (order, 'side')); + const status = this.parseOrderStatus (this.safeString (order, 'ordStatus')); + const marketId = this.safeString (order, 'instrumentId'); + const symbol = this.safeSymbol (marketId, market); + const timestamp = this.toMilliseconds (this.safeString (order, 'timeStamp')); + const lastTradeTimestamp = undefined; + let price = this.safeInteger (order, 'price'); + if (price === 0) { + price = undefined; + } + const priceScale = this.safeInteger (order, 'price_scale'); + price = this.convertFromScale (price, priceScale); + let amount = this.safeInteger (order, 'quantity'); + if (amount === 0) { + amount = undefined; + } + const amountScale = this.safeInteger (order, 'quantity_scale'); + amount = this.convertFromScale (amount, amountScale); + let filled = this.safeInteger (order, 'cumQty'); + const filledScale = this.safeInteger (order, 'cumQty_scale'); + filled = this.convertFromScale (filled, filledScale); + let remaining = this.safeInteger (order, 'leavesQty'); + const remainingScale = this.safeInteger (order, 'leavesQty_scale'); + remaining = this.convertFromScale (remaining, remainingScale); + if (remaining <= 0) { + if ((filled !== undefined) && (amount !== undefined) && (filled < amount)) { + remaining = undefined; + } + } + if ((remaining === undefined) && (amount !== undefined) && (filled !== undefined)) { + remaining = Math.max (amount - filled, 0); + } + let average = this.safeInteger (order, 'price', 0); + if (average === 0) { + average = undefined; + } + const averageScale = this.safeInteger (order, 'price_scale'); + average = this.convertFromScale (average, averageScale); + let cost = undefined; + if (filled !== 0) { + if (average > 0) { + cost = average * filled; + } else if (price > 0) { + cost = price * filled; + } + } + let fee = undefined; + const currencyId = this.safeInteger (order, 'feeInstrumentId'); + const feeCurrencyCode = this.safeCurrencyCode (currencyId); + let feeCost = this.safeInteger (order, 'feeTotal'); + const feeScale = this.safeInteger (order, 'fee_scale'); + if (feeCost !== undefined) { + feeCost = -feeCost; + feeCost = this.convertFromScale (feeCost, feeScale); + } + if (feeCost !== undefined) { + fee = { + 'currency': feeCurrencyCode, + 'cost': feeCost, + 'rate': undefined, + }; + } + let timeInForce = this.parseTimeInForce (this.safeString (order, 'timeInForce')); + if (timeInForce === '0') { + timeInForce = undefined; + } + const stopPriceScale = this.safeInteger (order, 'stopPx_scale', 0); + const stopPrice = this.convertFromScale (this.safeInteger (order, 'stopPx'), stopPriceScale); + return { + 'info': order, + 'id': id, + 'clientOrderId': clientOrderId, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'lastTradeTimestamp': lastTradeTimestamp, + 'symbol': symbol, + 'type': type, + 'timeInForce': timeInForce, + 'postOnly': undefined, + 'side': side, + 'price': price, + 'stopPrice': stopPrice, + 'amount': amount, + 'cost': cost, + 'average': average, + 'filled': filled, + 'remaining': remaining, + 'status': status, + 'fee': fee, + 'trades': undefined, + }; + } + + parseOrderStatus (status) { + const statuses = { + '0': 'open', + '1': 'open', // 'partially filled', + '2': 'closed', // 'filled', + '3': 'open', // 'done for day', + '4': 'canceled', + '5': 'canceled', // 'replaced', + '6': 'canceling', // 'pending cancel', + '7': 'canceled', // 'stopped', + '8': 'rejected', // 'rejected', + '9': 'canceled', // 'suspended', + 'A': 'open', // 'pending new', + 'B': 'open', // 'calculated', + 'C': 'expired', + 'D': 'open', // 'accepted for bidding', + 'E': 'canceling', // 'pending replace', + 'F': 'open', // 'partial fill or fill', + }; + return this.safeString (statuses, status, status); + } + + parseOrderSide (side) { + const sides = { + '1': 'buy', + '2': 'sell', + }; + return this.safeString (sides, side, side); + } + + parseOrderType (type) { + const types = { + '1': 'market', + '2': 'limit', + '3': 'stop', + '4': 'stop limit', + }; + return this.safeString (types, type, type); + } + + parseTimeInForce (timeInForce) { + const timeInForces = { + '1': 'GTC', // Good Till Canceled + '3': 'IOC', // Immediate or Cancel + '4': 'FOK', // Fill or Kill + '5': 'GTX', // Good Till Crossing (GTX) + '6': 'GTD', // Good Till Date + }; + return this.safeString (timeInForces, timeInForce, timeInForce); + } + + toMilliseconds (dateString) { + if (dateString === undefined) { + return dateString; + } + // '20200328-10:31:01.575' -> '2020-03-28 12:42:48.000' + const splits = dateString.split ('-'); + const partOne = this.safeString (splits, 0); + const partTwo = this.safeString (splits, 1); + if (partOne === undefined || partTwo === undefined) { + return undefined; + } + if (partOne.length !== 8) { + return undefined; + } + const date = partOne.slice (0, 4) + '-' + partOne.slice (4, 6) + '-' + partOne.slice (6, 8); + return this.parse8601 (date + ' ' + partTwo); + } + + convertFromScale (number, scale) { + if ((number === undefined) || (scale === undefined)) { + return undefined; + } + return this.fromWei (number, scale); + } + + getScale (num) { + const s = this.numberToString (num); + return this.precisionFromString (s); + } + + convertToScale (number, scale) { + if ((number === undefined) || (scale === undefined)) { + return undefined; + } + return parseInt (this.toWei (number, scale)); + } + + nonce () { + return this.milliseconds (); + } + + handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { + if (response === undefined) { + return; // fallback to default error handler + } + const error = this.safeString (response, 'error'); + if (error !== undefined) { + const feedback = this.id + ' ' + body; + this.throwExactlyMatchedException (this.exceptions, error, feedback); + this.throwBroadlyMatchedException (this.exceptions, body, feedback); + throw new ExchangeError (this.id + ' ' + body); + } + } + + sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { + let url = this.implodeParams (path, params); + let query = this.omit (params, this.extractParams (path)); + if (api === 'public') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } else if (api === 'private') { + // special case for getUserHistory + const format = this.safeValue (params, 'format'); + const type = this.safeValue (params, 'type'); + const extension = {}; + if (format !== undefined) { + extension['format'] = format; + } + if (type !== undefined) { + extension['type'] = type; + } + if (Object.keys (extension).length) { + url += '?' + this.urlencode (extension); + } + params = this.omit (params, [ 'format', 'type' ]); + this.checkRequiredCredentials (); + const nonce = this.nonce (); + query = this.extend (query, { + 'userId': this.uid, + 'nonce': nonce, + }); + params['nonce'] = this.nonce (); + body = this.json (query); + const signature = this.hmac (this.encode (body), this.encode (this.secret), 'sha384'); + headers = { + 'Content-Type': 'application/json', + 'requestToken': this.apiKey, + 'signature': signature, + }; + } + url = this.urls['api'][api] + '/' + url; + return { 'url': url, 'method': method, 'body': body, 'headers': headers }; + } +}; diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/eterbase.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/eterbase.js index 56d975d44..40d2893d3 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/eterbase.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/eterbase.js @@ -605,7 +605,7 @@ module.exports = class eterbase extends Exchange { request['start'] = now - duration * limit * 1000; request['end'] = now; } else { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a since argument, or a limit argument, or both'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a since argument, or a limit argument, or both'); } await this.loadMarkets (); const market = this.market (symbol); @@ -807,6 +807,7 @@ module.exports = class eterbase extends Exchange { } const timeInForce = this.safeString (order, 'timeInForce'); const stopPrice = this.safeFloat (order, 'stopPrice'); + const postOnly = this.safeValue (order, 'postOnly'); return { 'info': order, 'id': id, @@ -816,8 +817,9 @@ module.exports = class eterbase extends Exchange { 'lastTradeTimestamp': undefined, 'symbol': symbol, 'type': type, - 'side': side, 'timeInForce': timeInForce, + 'postOnly': postOnly, + 'side': side, 'price': price, 'stopPrice': stopPrice, 'amount': amount, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/exmo.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/exmo.js index 52c2ba65e..c9e19479d 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/exmo.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/exmo.js @@ -702,7 +702,7 @@ module.exports = class exmo extends Exchange { const now = this.milliseconds (); if (since === undefined) { if (limit === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a since argument or a limit argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a since argument or a limit argument'); } else { if (limit > maxLimit) { throw new BadRequest (this.id + ' fetchOHLCV will serve ' + maxLimit.toString () + ' candles at most'); @@ -1318,6 +1318,7 @@ module.exports = class exmo extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -1436,12 +1437,21 @@ module.exports = class exmo extends Exchange { const type = this.safeString (transaction, 'type'); const currencyId = this.safeString (transaction, 'curr'); const code = this.safeCurrencyCode (currencyId, currency); - let address = this.safeString (transaction, 'account'); - if (address !== undefined) { - const parts = address.split (':'); - const numParts = parts.length; - if (numParts === 2) { - address = parts[1].replace (' ', ''); + let address = undefined; + const tag = undefined; + let comment = undefined; + const account = this.safeString (transaction, 'account'); + if (type === 'deposit') { + comment = account; + } else if (type === 'withdrawal') { + address = account; + if (address !== undefined) { + const parts = address.split (':'); + const numParts = parts.length; + if (numParts === 2) { + address = this.safeString (parts, 1); + address = address.replace (' ', ''); + } } } let fee = undefined; @@ -1469,16 +1479,21 @@ module.exports = class exmo extends Exchange { return { 'info': transaction, 'id': undefined, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), 'currency': code, 'amount': amount, 'address': address, - 'tag': undefined, // refix it properly + 'addressTo': address, + 'addressFrom': undefined, + 'tag': tag, + 'tagTo': tag, + 'tagFrom': undefined, 'status': status, 'type': type, 'updated': undefined, + 'comment': comment, 'txid': txid, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), 'fee': fee, }; } diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/exx.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/exx.js index 925d4a2f2..c4c12d03f 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/exx.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/exx.js @@ -326,6 +326,7 @@ module.exports = class exx extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': order['type'], 'price': price, 'stopPrice': undefined, @@ -387,7 +388,7 @@ module.exports = class exx extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } const market = this.market (symbol); const request = { diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/fcoin.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/fcoin.js index 1bdb5920d..2d1c845ab 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/fcoin.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/fcoin.js @@ -592,6 +592,7 @@ module.exports = class fcoin extends Exchange { 'symbol': symbol, 'type': orderType, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/flowbtc.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/flowbtc.js index d38ebfea9..12646489b 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/flowbtc.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/flowbtc.js @@ -246,7 +246,7 @@ module.exports = class flowbtc extends Exchange { }; return await this.privatePostCancelOrder (this.extend (request, params)); } - throw new ExchangeError (this.id + ' requires `ins` symbol parameter for cancelling an order'); + throw new ExchangeError (this.id + ' cancelOrder() requires an `ins` symbol parameter for cancelling an order'); } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/ftx.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/ftx.js index 8e3992ac5..18b572cc6 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/ftx.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/ftx.js @@ -4,7 +4,7 @@ const Exchange = require ('./base/Exchange'); const { TICK_SIZE } = require ('./base/functions/number'); -const { ExchangeError, InvalidOrder, BadRequest, InsufficientFunds, OrderNotFound, AuthenticationError } = require ('./base/errors'); +const { ExchangeError, InvalidOrder, BadRequest, InsufficientFunds, OrderNotFound, AuthenticationError, RateLimitExceeded, ExchangeNotAvailable, CancelPending } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -14,7 +14,7 @@ module.exports = class ftx extends Exchange { 'id': 'ftx', 'name': 'FTX', 'countries': [ 'HK' ], - 'rateLimit': 100, + 'rateLimit': 50, 'certified': true, 'pro': true, 'hostname': 'ftx.com', // or ftx.us @@ -99,9 +99,12 @@ module.exports = class ftx extends Exchange { 'wallet/coins', 'wallet/balances', 'wallet/all_balances', - 'wallet/deposit_address/{coin}', + 'wallet/deposit_address/{coin}', // ?method={method} 'wallet/deposits', 'wallet/withdrawals', + 'wallet/withdrawal_fee', + 'wallet/airdrops', + 'wallet/saved_addresses', 'orders', // ?market={market} 'orders/history', // ?market={market} 'orders/{order_id}', @@ -109,6 +112,14 @@ module.exports = class ftx extends Exchange { 'conditional_orders', // ?market={market} 'conditional_orders/{conditional_order_id}/triggers', 'conditional_orders/history', // ?market={market} + 'spot_margin/borrow_rates', + 'spot_margin/lending_rates', + 'spot_margin/borrow_summary', + 'spot_margin/market_info', // ?market={market} + 'spot_margin/borrow_history', + 'spot_margin/lending_history', + 'spot_margin/offers', + 'spot_margin/lending_info', 'fills', // ?market={market} 'funding_payments', // leverage tokens @@ -127,15 +138,23 @@ module.exports = class ftx extends Exchange { 'options/account_info', 'options/positions', 'options/fills', + // staking + 'staking/stakes', + 'staking/unstake_requests', + 'staking/balances', + 'staking/staking_rewards', ], 'post': [ 'account/leverage', 'wallet/withdrawals', + 'wallet/saved_addresses', 'orders', 'conditional_orders', 'orders/{order_id}/modify', 'orders/by_client_id/{client_order_id}/modify', 'conditional_orders/{order_id}/modify', + // spot margin + 'spot_margin/offers', // leverage tokens 'lt/{token_name}/create', 'lt/{token_name}/redeem', @@ -150,8 +169,12 @@ module.exports = class ftx extends Exchange { 'options/requests', 'options/requests/{request_id}/quotes', 'options/quotes/{quote_id}/accept', + // staking + 'staking/unstake_requests', + 'srm_stakes/stakes', ], 'delete': [ + 'wallet/saved_addresses/{saved_address_id}', 'orders/{order_id}', 'orders/by_client_id/{client_order_id}', 'orders', @@ -161,6 +184,8 @@ module.exports = class ftx extends Exchange { // options 'options/requests/{request_id}', 'options/quotes/{quote_id}', + // staking + 'staking/unstake_requests/{request_id}', ], }, }, @@ -195,6 +220,8 @@ module.exports = class ftx extends Exchange { }, 'exceptions': { 'exact': { + 'Please slow down': RateLimitExceeded, // {"error":"Please slow down","success":false} + 'Size too small for provide': InvalidOrder, // {"error":"Size too small for provide","success":false} 'Not logged in': AuthenticationError, // {"error":"Not logged in","success":false} 'Not enough balances': InsufficientFunds, // {"error":"Not enough balances","success":false} 'InvalidPrice': InvalidOrder, // {"error":"Invalid price","success":false} @@ -202,13 +229,20 @@ module.exports = class ftx extends Exchange { 'Missing parameter price': InvalidOrder, // {"error":"Missing parameter price","success":false} 'Order not found': OrderNotFound, // {"error":"Order not found","success":false} 'Order already closed': InvalidOrder, // {"error":"Order already closed","success":false} + 'Trigger price too high': InvalidOrder, // {"error":"Trigger price too high","success":false} + 'Trigger price too low': InvalidOrder, // {"error":"Trigger price too low","success":false} + 'Order already queued for cancellation': CancelPending, // {"error":"Order already queued for cancellation","success":false} }, 'broad': { + 'Account does not have enough margin for order': InsufficientFunds, 'Invalid parameter': BadRequest, // {"error":"Invalid parameter start_time","success":false} 'The requested URL was not found on the server': BadRequest, 'No such coin': BadRequest, 'No such market': BadRequest, - 'An unexpected error occurred': ExchangeError, // {"error":"An unexpected error occurred, please try again later (58BC21C795).","success":false} + 'Do not send more than': RateLimitExceeded, + 'An unexpected error occurred': ExchangeNotAvailable, // {"error":"An unexpected error occurred, please try again later (58BC21C795).","success":false} + 'Please retry request': ExchangeNotAvailable, // {"error":"Please retry request","success":false} + 'Please try again': ExchangeNotAvailable, // {"error":"Please try again","success":false} }, }, 'precisionMode': TICK_SIZE, @@ -338,7 +372,7 @@ module.exports = class ftx extends Exchange { 'amount': sizeIncrement, 'price': priceIncrement, }; - const entry = { + result.push ({ 'id': id, 'symbol': symbol, 'base': base, @@ -365,8 +399,7 @@ module.exports = class ftx extends Exchange { }, }, 'info': market, - }; - result.push (entry); + }); } return result; } @@ -665,22 +698,39 @@ module.exports = class ftx extends Exchange { // "type": "order" // } // + // { + // "baseCurrency": "BTC", + // "fee": 0, + // "feeCurrency": "USD", + // "feeRate": 0, + // "future": null, + // "id": 664079556, + // "liquidity": "taker", + // "market": null, + // "orderId": null, + // "price": 34830.61359, + // "quoteCurrency": "USD", + // "side": "sell", + // "size": 0.0005996, + // "time": "2021-01-15T16:05:29.246135+00:00", + // "tradeId": null, + // "type": "otc" + // } + // const id = this.safeString (trade, 'id'); const takerOrMaker = this.safeString (trade, 'liquidity'); const marketId = this.safeString (trade, 'market'); let symbol = undefined; - if (marketId !== undefined) { - if (marketId in this.markets_by_id) { - market = this.markets_by_id[marketId]; - symbol = market['symbol']; + if (marketId in this.markets_by_id) { + market = this.markets_by_id[marketId]; + symbol = market['symbol']; + } else { + const base = this.safeCurrencyCode (this.safeString (trade, 'baseCurrency')); + const quote = this.safeCurrencyCode (this.safeString (trade, 'quoteCurrency')); + if ((base !== undefined) && (quote !== undefined)) { + symbol = base + '/' + quote; } else { - const base = this.safeCurrencyCode (this.safeString (trade, 'baseCurrency')); - const quote = this.safeCurrencyCode (this.safeString (trade, 'quoteCurrency')); - if ((base !== undefined) && (quote !== undefined)) { - symbol = base + '/' + quote; - } else { - symbol = marketId; - } + symbol = marketId; } } const timestamp = this.parse8601 (this.safeString (trade, 'time')); @@ -998,6 +1048,7 @@ module.exports = class ftx extends Exchange { const lastTradeTimestamp = this.parse8601 (this.safeString (order, 'triggeredAt')); const clientOrderId = this.safeString (order, 'clientId'); const stopPrice = this.safeFloat (order, 'triggerPrice'); + const postOnly = this.safeValue (order, 'postOnly'); return { 'info': order, 'id': id, @@ -1008,6 +1059,7 @@ module.exports = class ftx extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -1145,12 +1197,12 @@ module.exports = class ftx extends Exchange { } } else { if (clientOrderId === undefined) { + method = 'privatePostOrdersOrderIdModify'; + request['order_id'] = id; + } else { method = 'privatePostOrdersByClientIdClientOrderIdModify'; request['client_order_id'] = clientOrderId; // request['clientId'] = clientOrderId; - } else { - method = 'privatePostOrdersOrderIdModify'; - request['order_id'] = id; } if (price !== undefined) { request['price'] = parseFloat (this.priceToPrecision (symbol, price)); @@ -1216,9 +1268,7 @@ module.exports = class ftx extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { await this.loadMarkets (); - const request = { - 'order_id': parseInt (id), - }; + const request = {}; // support for canceling conditional orders // https://github.com/ccxt/ccxt/issues/6669 const options = this.safeValue (this.options, 'cancelOrder', {}); @@ -1251,8 +1301,8 @@ module.exports = class ftx extends Exchange { await this.loadMarkets (); const request = { // 'market': market['id'], // optional - 'conditionalOrdersOnly': false, // cancel conditional orders only - 'limitOrdersOnly': false, // cancel existing limit orders (non-conditional orders) only + // 'conditionalOrdersOnly': false, // cancel conditional orders only + // 'limitOrdersOnly': false, // cancel existing limit orders (non-conditional orders) only }; const marketId = this.getMarketId (symbol, 'market', params); if (marketId !== undefined) { @@ -1421,6 +1471,7 @@ module.exports = class ftx extends Exchange { } if (since !== undefined) { request['start_time'] = parseInt (since / 1000); + request['end_time'] = this.seconds (); } const response = await this.privateGetFills (this.extend (request, params)); // @@ -1610,6 +1661,15 @@ module.exports = class ftx extends Exchange { // "txid": "0x8078356ae4b06a036d64747546c274af19581f1c78c510b60505798a7ffcaf1" // } // + // { + // "coin": 'BTC', + // "id": 1969806, + // "notes": 'Transfer to Dd6gi7m2Eg4zzBbPAxuwfEaHs6tYvyUX5hbPpsTcNPXo', + // "size": 0.003, + // "status": 'complete', + // "time": '2021-02-03T20:28:54.918146+00:00' + // } + // const code = this.safeCurrencyCode (this.safeString (transaction, 'coin')); const id = this.safeString (transaction, 'id'); const amount = this.safeFloat (transaction, 'size'); @@ -1622,8 +1682,14 @@ module.exports = class ftx extends Exchange { tag = this.safeString (address, 'tag'); address = this.safeString (address, 'address'); } + if (address === undefined) { + // parse address from internal transfer + const notes = this.safeString (transaction, 'notes'); + if (notes !== undefined) { + address = notes.slice (12); + } + } const fee = this.safeFloat (transaction, 'fee'); - const type = ('destinationName' in transaction) ? 'withdrawal' : 'deposit'; return { 'info': transaction, 'id': id, @@ -1636,7 +1702,7 @@ module.exports = class ftx extends Exchange { 'tagFrom': undefined, 'tag': tag, 'tagTo': tag, - 'type': type, + 'type': undefined, 'amount': amount, 'currency': code, 'status': status, @@ -1674,7 +1740,7 @@ module.exports = class ftx extends Exchange { if (code !== undefined) { currency = this.currency (code); } - return this.parseTransactions (result, currency, since, limit); + return this.parseTransactions (result, currency, since, limit, { 'type': 'deposit' }); } async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { @@ -1701,7 +1767,7 @@ module.exports = class ftx extends Exchange { if (code !== undefined) { currency = this.currency (code); } - return this.parseTransactions (result, currency, since, limit); + return this.parseTransactions (result, currency, since, limit, { 'type': 'withdrawal' }); } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/gateio.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/gateio.js index d03f929d8..f0835c774 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/gateio.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/gateio.js @@ -167,6 +167,7 @@ module.exports = class gateio extends Exchange { 'BOX': 'DefiBox', 'BTCBEAR': 'BEAR', 'BTCBULL': 'BULL', + 'SBTC': 'Super Bitcoin', 'TNC': 'Trinity Network Credit', }, }); @@ -690,6 +691,7 @@ module.exports = class gateio extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -730,7 +732,7 @@ module.exports = class gateio extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires symbol argument'); } await this.loadMarkets (); const request = { @@ -753,13 +755,13 @@ module.exports = class gateio extends Exchange { if ((address !== undefined) && (address.indexOf ('address') >= 0)) { throw new InvalidAddress (this.id + ' queryDepositAddress ' + address); } - if (code === 'XRP') { + if ((code === 'XRP') || (code === 'HBAR') || (code === 'STEEM') || (code === 'XLM') || (code === 'EOS')) { const parts = address.split (' '); address = parts[0]; tag = parts[1]; } return { - 'currency': currency, + 'currency': code, 'address': address, 'tag': tag, 'info': response, @@ -786,7 +788,7 @@ module.exports = class gateio extends Exchange { async fetchOrderTrades (id, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrderTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -800,7 +802,7 @@ module.exports = class gateio extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -882,21 +884,21 @@ module.exports = class gateio extends Exchange { // withdrawal // // { - // 'id': 'w5864259', - // 'currency': 'ETH', - // 'address': '0x72632f462....', - // 'amount': '0.4947', - // 'txid': '0x111167d120f736....', - // 'timestamp': '1553123688', - // 'status': 'DONE', - // 'type': 'withdrawal' - // } + // "id": "w6754336", + // "fee": "0.1", + // "txid": "zzyy", + // "amount": "1", + // "status": "DONE", + // "address": "tz11234", + // "currency": "XTZ", + // "timestamp": "1561030206" + // } // const currencyId = this.safeString (transaction, 'currency'); const code = this.safeCurrencyCode (currencyId, currency); const id = this.safeString (transaction, 'id'); const txid = this.safeString (transaction, 'txid'); - const amount = this.safeFloat (transaction, 'amount'); + let amount = this.safeFloat (transaction, 'amount'); let address = this.safeString (transaction, 'address'); if (address === 'false') { address = undefined; @@ -904,6 +906,17 @@ module.exports = class gateio extends Exchange { const timestamp = this.safeTimestamp (transaction, 'timestamp'); const status = this.parseTransactionStatus (this.safeString (transaction, 'status')); const type = this.parseTransactionType (id[0]); + const feeCost = this.safeFloat (transaction, 'fee'); + let fee = undefined; + if (feeCost !== undefined) { + fee = { + 'currency': code, + 'cost': feeCost, + }; + if (amount !== undefined) { + amount = amount - feeCost; + } + } return { 'info': transaction, 'id': id, @@ -916,7 +929,7 @@ module.exports = class gateio extends Exchange { 'type': type, 'timestamp': timestamp, 'datetime': this.iso8601 (timestamp), - 'fee': undefined, + 'fee': fee, }; } diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/gemini.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/gemini.js index a0894c364..6f28ef220 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/gemini.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/gemini.js @@ -669,6 +669,7 @@ module.exports = class gemini extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -732,7 +733,7 @@ module.exports = class gemini extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/gopax.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/gopax.js new file mode 100644 index 000000000..e3150163a --- /dev/null +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/gopax.js @@ -0,0 +1,1347 @@ +'use strict'; + +// --------------------------------------------------------------------------- + +const Exchange = require ('./base/Exchange'); +const { ExchangeError, InvalidOrder, AuthenticationError, InsufficientFunds, BadSymbol, OrderNotFound, InvalidAddress, BadRequest } = require ('./base/errors'); +const { TRUNCATE, ROUND, TICK_SIZE } = require ('./base/functions/number'); + +// --------------------------------------------------------------------------- + +module.exports = class gopax extends Exchange { + describe () { + return this.deepExtend (super.describe (), { + 'id': 'gopax', + 'name': 'GOPAX', + 'countries': [ 'KR' ], // South Korea + 'version': 'v1', + 'rateLimit': 50, + 'hostname': 'gopax.co.kr', // or 'gopax.com' + 'certified': true, + 'pro': true, + 'has': { + 'cancelOrder': true, + 'createMarketOrder': true, + 'createOrder': true, + 'fetchBalance': true, + 'fetchCurrencies': true, + 'fetchDepositAddress': 'emulated', + 'fetchDepositAddresses': true, + 'fetchMarkets': true, + 'fetchMyTrades': true, + 'fetchOHLCV': true, + 'fetchOpenOrders': true, + 'fetchOrder': true, + 'fetchOrderBook': true, + 'fetchOrders': true, + 'fetchTicker': true, + 'fetchTickers': true, + 'fetchTime': true, + 'fetchTrades': true, + 'fetchTransactions': true, + }, + 'timeframes': { + '1m': '1', + '5m': '5', + '30m': '30', + '1d': '1440', + }, + 'urls': { + 'logo': 'https://user-images.githubusercontent.com/1294454/102897212-ae8a5e00-4478-11eb-9bab-91507c643900.jpg', + 'api': { + 'public': 'https://api.{hostname}', // or 'https://api.gopax.co.kr' + 'private': 'https://api.{hostname}', + }, + 'www': 'https://www.gopax.co.kr', + 'doc': 'https://gopax.github.io/API/index.en.html', + 'fees': 'https://www.gopax.com/feeinfo', + }, + 'api': { + 'public': { + 'get': [ + 'notices', + 'assets', + 'price-tick-size', + 'trading-pairs', + 'trading-pairs/{tradingPair}/ticker', + 'trading-pairs/{tradingPair}/book', + 'trading-pairs/{tradingPair}/trades', + 'trading-pairs/{tradingPair}/stats', + 'trading-pairs/{tradingPair}/price-tick-size', + 'trading-pairs/stats', + 'trading-pairs/{tradingPair}/candles', + 'time', + ], + }, + 'private': { + 'get': [ + 'balances', + 'balances/{assetName}', + 'orders', + 'orders/{orderId}', + 'orders/clientOrderId/{clientOrderId}', + 'trades', + 'deposit-withdrawal-status', + 'crypto-deposit-addresses', + 'crypto-withdrawal-addresses', + ], + 'post': [ + 'orders', + ], + 'delete': [ + 'orders/{orderId}', + 'orders/clientOrderId/{clientOrderId}', + ], + }, + }, + 'fees': { + 'trading': { + 'percentage': true, + 'tierBased': false, + 'maker': 0.04 / 100, + 'taker': 0.04 / 100, + }, + }, + 'exceptions': { + 'broad': { + 'ERROR_INVALID_ORDER_TYPE': InvalidOrder, + 'ERROR_INVALID_AMOUNT': InvalidOrder, + 'ERROR_INVALID_TRADING_PAIR': BadSymbol, // Unlikely to be triggered, due to ccxt.gopax.js implementation + 'No such order ID': OrderNotFound, // {"errorMessage":"No such order ID","errorCode":202,"errorData":"Order server error: 202"} + // 'Not enough amount': InsufficientFunds, // {"errorMessage":"Not enough amount, try increasing your order amount","errorCode":10212,"errorData":{}} + 'Forbidden order type': InvalidOrder, + 'the client order ID will be reusable which order has already been completed or canceled': InvalidOrder, + 'ERROR_NO_SUCH_TRADING_PAIR': BadSymbol, // Unlikely to be triggered, due to ccxt.gopax.js implementation + 'ERROR_INVALID_ORDER_SIDE': InvalidOrder, + 'ERROR_NOT_HEDGE_TOKEN_USER': InvalidOrder, + 'ORDER_EVENT_ERROR_NOT_ALLOWED_BID_ORDER': InvalidOrder, // Triggered only when the exchange is locked + 'ORDER_EVENT_ERROR_INSUFFICIENT_BALANCE': InsufficientFunds, + 'Invalid option combination': InvalidOrder, + 'No such client order ID': OrderNotFound, + }, + 'exact': { + '100': BadSymbol, // Invalid asset name + '101': BadSymbol, // Invalid trading pair + '103': InvalidOrder, // Invalid order type + '104': BadSymbol, // Invalid trading pair + '105': BadSymbol, // Trading pair temporarily disabled + '106': BadSymbol, // Invalid asset name + '107': InvalidOrder, // Invalid order amount + '108': InvalidOrder, // Invalid order price + '111': InvalidOrder, // Invalid event type + '201': InsufficientFunds, // Not enough balance + '202': InvalidOrder, // Invalid order ID + '203': InvalidOrder, // Order amount X order price too large + '204': InvalidOrder, // Bid order temporarily unavailable + '205': InvalidOrder, // Invalid side + '206': InvalidOrder, // Invalid order option combination + '10004': AuthenticationError, // Not authorized + // '10004': ExchangeError, // API key not exist + // '10004': ExchangeError, // User KYC not approved + // '10004': ExchangeError, // User account is frozen + // '10004': ExchangeError, // User is under deactivation process + // '10004': ExchangeError, // 2FA is not enabled + // '10004': ExchangeError, // Invalid signature + '10041': BadRequest, // Invalid exchange + '10056': BadRequest, // No registered asset + '10057': BadSymbol, // No registered trading pair + '10059': BadSymbol, // Invalid trading pair + '10062': BadRequest, // Invalid chart interval + '10069': OrderNotFound, // {"errorMessage":"No such order ID: 73152094","errorCode":10069,"errorData":"73152094"} + '10155': AuthenticationError, // {"errorMessage":"Invalid API key","errorCode":10155} + '10166': BadRequest, // Invalid chart range + '10212': InvalidOrder, // {"errorMessage":"Not enough amount, try increasing your order amount","errorCode":10212,"errorData":{}} + '10221': OrderNotFound, // No such client order ID + '10222': InvalidOrder, // Client order ID being used + '10223': InvalidOrder, // Soon the client order ID will be reusable which order has already been completed or canceled + '10227': InvalidOrder, // Invalid client order ID format + '10319': BadRequest, // Pagination is required as you have too many orders + '10358': InvalidOrder, // Invalid order type + '10359': InvalidOrder, // Invalid order side + '10360': InvalidOrder, // Invalid order status + '10361': InvalidOrder, // Invalid order time in force + '10362': InvalidOrder, // Invalid order protection + '10363': InvalidOrder, // Invalid forced completion reason + }, + }, + 'options': { + 'createMarketBuyOrderRequiresPrice': true, + }, + }); + } + + async fetchTime (params = {}) { + const response = await this.publicGetTime (params); + // + // {"serverTime":1608327726656} + // + return this.safeInteger (response, 'serverTime'); + } + + async fetchMarkets (params = {}) { + const response = await this.publicGetTradingPairs (params); + // + // [ + // { + // "id":1, + // "name":"ETH-KRW", + // "baseAsset":"ETH", + // "quoteAsset":"KRW", + // "baseAssetScale":8, + // "quoteAssetScale":0, + // "priceMin":1, + // "restApiOrderAmountMin":{ + // "limitAsk":{"amount":10000,"unit":"KRW"}, + // "limitBid":{"amount":10000,"unit":"KRW"}, + // "marketAsk":{"amount":0.001,"unit":"ETH"}, + // "marketBid":{"amount":10000,"unit":"KRW"}, + // }, + // "makerFeePercent":0.2, + // "takerFeePercent":0.2, + // }, + // ] + // + const result = []; + for (let i = 0; i < response.length; i++) { + const market = response[i]; + const id = this.safeString (market, 'name'); + const numericId = this.safeInteger (market, 'id'); + const baseId = this.safeString (market, 'baseAsset'); + const quoteId = this.safeString (market, 'quoteAsset'); + const base = this.safeCurrencyCode (baseId); + const quote = this.safeCurrencyCode (quoteId); + const symbol = base + '/' + quote; + const precision = { + 'price': this.safeInteger (market, 'quoteAssetScale'), + 'amount': this.safeInteger (market, 'baseAssetScale'), + }; + const minimums = this.safeValue (market, 'restApiOrderAmountMin', {}); + const marketAsk = this.safeValue (minimums, 'marketAsk', {}); + const marketBid = this.safeValue (minimums, 'marketBid', {}); + const takerFeePercent = this.safeFloat (market, 'takerFeePercent'); + const makerFeePercent = this.safeFloat (market, 'makerFeePercent'); + const taker = parseFloat (this.decimalToPrecision (takerFeePercent / 100, ROUND, 0.00000001, TICK_SIZE)); + const maker = parseFloat (this.decimalToPrecision (makerFeePercent / 100, ROUND, 0.00000001, TICK_SIZE)); + result.push ({ + 'id': id, + 'info': market, + 'numericId': numericId, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'baseId': this.safeString (market, 'baseAsset'), + 'quoteId': this.safeString (market, 'quoteAsset'), + 'active': true, + 'taker': taker, + 'maker': maker, + 'precision': precision, + 'limits': { + 'amount': { + 'min': this.safeFloat (marketAsk, 'amount'), + 'max': undefined, + }, + 'price': { + 'min': this.safeFloat (market, 'priceMin'), + 'max': undefined, + }, + 'cost': { + 'min': this.safeFloat (marketBid, 'amount'), + 'max': undefined, + }, + }, + }); + } + return result; + } + + async fetchCurrencies (params = {}) { + const response = await this.publicGetAssets (params); + // + // [ + // { + // "id":"KRW", + // "name":"대한민국 원", + // "scale":0, + // "withdrawalFee":1000, + // "withdrawalAmountMin":5000 + // }, + // { + // "id":"ETH", + // "name":"이더리움", + // "scale":8, + // "withdrawalFee":0.03, + // "withdrawalAmountMin":0.015 + // }, + // ] + // + const result = {}; + for (let i = 0; i < response.length; i++) { + const currency = response[i]; + const id = this.safeString (currency, 'id'); + const code = this.safeCurrencyCode (id); + const name = this.safeString (currency, 'name'); + const fee = this.safeFloat (currency, 'withdrawalFee'); + const precision = this.safeFloat (currency, 'scale'); + result[code] = { + 'id': id, + 'info': currency, + 'code': code, + 'name': name, + 'active': true, + 'fee': fee, + 'precision': precision, + 'limits': { + 'amount': { + 'min': undefined, + 'max': undefined, + }, + 'price': { + 'min': undefined, + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + 'withdraw': { + 'min': this.safeFloat (currency, 'withdrawalAmountMin'), + 'max': undefined, + }, + }, + }; + } + return result; + } + + async fetchOrderBook (symbol, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'tradingPair': market['id'], + // 'level': 3, // 1 best bidask, 2 top 50 bidasks, 3 all bidasks + }; + const response = await this.publicGetTradingPairsTradingPairBook (this.extend (request, params)); + // + // { + // "sequence":17691957, + // "bid":[ + // ["17690499",25019000,0.00008904,"1608326468921"], + // ["17691894",25010000,0.4295,"1608326499940"], + // ["17691895",25009000,0.2359,"1608326499953"], + // ], + // "ask":[ + // ["17689176",25024000,0.000098,"1608326442006"], + // ["17691351",25031000,0.206,"1608326490418"], + // ["17691571",25035000,0.3996,"1608326493742"], + // ] + // } + // + const nonce = this.safeInteger (response, 'sequence'); + const result = this.parseOrderBook (response, undefined, 'bid', 'ask', 1, 2); + result['nonce'] = nonce; + return result; + } + + parseTicker (ticker, market = undefined) { + // + // fetchTicker + // + // { + // "price":25087000, + // "ask":25107000, + // "askVolume":0.05837704, + // "bid":25087000, + // "bidVolume":0.00398628, + // "volume":350.09171591, + // "quoteVolume":8721016926.06529, + // "time":"2020-12-18T21:42:13.774Z", + // } + // + // fetchTickers + // + // { + // "name":"ETH-KRW", + // "open":690500, + // "high":719500, + // "low":681500, + // "close":709500, + // "volume":2784.6081544, + // "time":"2020-12-18T21:54:50.795Z" + // } + // + const marketId = this.safeString (ticker, 'name'); + const symbol = this.safeSymbol (marketId, market, '-'); + const timestamp = this.parse8601 (this.safeString (ticker, 'time')); + const open = this.safeFloat (ticker, 'open'); + const last = this.safeFloat2 (ticker, 'price', 'close'); + let change = undefined; + let percentage = undefined; + let average = undefined; + if ((last !== undefined) && (open !== undefined)) { + average = this.sum (last, open) / 2; + change = last - open; + if (open > 0) { + percentage = change / open * 100; + } + } + const baseVolume = this.safeFloat (ticker, 'volume'); + const quoteVolume = this.safeFloat (ticker, 'quoteVolume'); + const vwap = this.vwap (baseVolume, quoteVolume); + return { + 'symbol': symbol, + 'info': ticker, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'high': this.safeFloat (ticker, 'high'), + 'low': this.safeFloat (ticker, 'low'), + 'bid': this.safeFloat (ticker, 'bid'), + 'bidVolume': this.safeFloat (ticker, 'bidVolume'), + 'ask': this.safeFloat (ticker, 'ask'), + 'askVolume': this.safeFloat (ticker, 'askVolume'), + 'vwap': vwap, + 'open': open, + 'close': last, + 'last': last, + 'previousClose': undefined, + 'change': change, + 'percentage': percentage, + 'average': average, + 'baseVolume': baseVolume, + 'quoteVolume': quoteVolume, + }; + } + + async fetchTicker (symbol, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'tradingPair': market['id'], + }; + const response = await this.publicGetTradingPairsTradingPairTicker (this.extend (request, params)); + // + // { + // "price":25087000, + // "ask":25107000, + // "askVolume":0.05837704, + // "bid":25087000, + // "bidVolume":0.00398628, + // "volume":350.09171591, + // "quoteVolume":8721016926.06529, + // "time":"2020-12-18T21:42:13.774Z", + // } + // + return this.parseTicker (response, market); + } + + parseTickers (rawTickers, symbols = undefined) { + const tickers = []; + for (let i = 0; i < rawTickers.length; i++) { + tickers.push (this.parseTicker (rawTickers[i])); + } + return this.filterByArray (tickers, 'symbol', symbols); + } + + async fetchTickers (symbols = undefined, params = {}) { + await this.loadMarkets (); + const response = await this.publicGetTradingPairsStats (params); + // + // [ + // { + // "name":"ETH-KRW", + // "open":690500, + // "high":719500, + // "low":681500, + // "close":709500, + // "volume":2784.6081544, + // "time":"2020-12-18T21:54:50.795Z" + // } + // ] + // + return this.parseTickers (response, symbols); + } + + parsePublicTrade (trade, market = undefined) { + const timestamp = this.parse8601 (this.safeString (trade, 'time')); + const price = this.safeFloat (trade, 'price'); + const amount = this.safeFloat (trade, 'amount'); + let symbol = undefined; + if ('symbol' in market) { + symbol = this.safeString (market, 'symbol'); + } + return { + 'info': trade, + 'id': this.safeString (trade, 'id'), + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'symbol': symbol, + 'order': undefined, // Not mandatory to specify + 'type': undefined, // Not mandatory to specify + 'side': this.safeString (trade, 'side'), + 'takerOrMaker': undefined, + 'price': price, + 'amount': amount, + 'cost': price * amount, + 'fee': undefined, + }; + } + + parsePrivateTrade (trade, market = undefined) { + const timestamp = this.parse8601 (this.safeString (trade, 'timestamp')); + const symbol = this.safeString (trade, 'tradingPairName').replace ('-', '/'); + const side = this.safeString (trade, 'side'); + const price = this.safeFloat (trade, 'price'); + const amount = this.safeFloat (trade, 'baseAmount'); + let feeCurrency = symbol.slice (0, 3); + if (side === 'sell') { + feeCurrency = symbol.slice (4); + } + const fee = { + 'cost': this.safeFloat (trade, 'fee'), + 'currency': feeCurrency, + 'rate': undefined, + }; + return { + 'info': trade, + 'id': this.safeString (trade, 'id'), + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'symbol': symbol, + 'order': this.safeInteger (trade, 'orderId'), + 'type': undefined, + 'side': side, + 'takerOrMaker': this.safeString (trade, 'position'), + 'price': price, + 'amount': amount, + 'cost': price * amount, + 'fee': fee, + }; + } + + parseTrade (trade, market = undefined) { + // + // public fetchTrades + // + // { + // "time":"2020-12-19T12:17:43.000Z", + // "date":1608380263, + // "id":23903608, + // "price":25155000, + // "amount":0.0505, + // "side":"sell", + // } + // + // private fetchMyTrades + // + // { + // "id": 73953, // trading event ID + // "orderId": 453324, // order ID + // "baseAmount": 3, // traded base asset amount + // "quoteAmount": 3000000, // traded quote asset amount + // "fee": 0.0012, // fee + // "price": 1000000, // price + // "timestamp": "2020-09-25T04:06:30.000Z", // trading time + // "side": "buy", // buy, sell + // "tradingPairName": "ZEC-KRW", // order book + // "position": "maker" // maker, taker + // } + // + // { + // "tradeId": 74072, // trade ID + // "orderId": 453529, // order ID + // "side": 2, // 1(bid), 2(ask) + // "type": 1, // 1(limit), 2(market) + // "baseAmount": 0.01, // filled base asset amount (in ZEC for this case) + // "quoteAmount": 1, // filled quote asset amount (in KRW for this case) + // "fee": 0.0004, // fee + // "price": 100, // price + // "isSelfTrade": false, // whether both of matching orders are yours + // "occurredAt": 1603932107, // trade occurrence time + // "tradingPairName": "ZEC-KRW" // order book + // } + // + const id = this.safeString2 (trade, 'id', 'tradeId'); + const orderId = this.safeInteger (trade, 'orderId'); + let timestamp = this.parse8601 (this.safeString2 (trade, 'time', 'timestamp')); + timestamp = this.safeTimestamp (trade, 'occuredAt', timestamp); + const marketId = this.safeString (trade, 'tradingPairName'); + market = this.safeMarket (marketId, market, '-'); + const symbol = market['symbol']; + let side = this.safeString (trade, 'side'); + if (side === '1') { + side = 'buy'; + } else if (side === '2') { + side = 'sell'; + } + let type = this.safeString (trade, 'type'); + if (type === '1') { + type = 'limit'; + } else if (type === '2') { + type = 'market'; + } + const price = this.safeFloat (trade, 'price'); + const amount = this.safeFloat2 (trade, 'amount', 'baseAmount'); + let cost = this.safeFloat (trade, 'quoteAmount'); + if (cost === undefined) { + if ((price !== undefined) && (amount !== undefined)) { + cost = price * amount; + } + } + const feeCost = this.safeFloat (trade, 'fee'); + let fee = undefined; + if (feeCost !== undefined) { + fee = { + 'cost': feeCost, + 'currency': market['base'], + }; + } + const takerOrMaker = this.safeString (trade, 'position'); + return { + 'info': trade, + 'id': id, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'symbol': symbol, + 'order': orderId, + 'type': undefined, + 'side': side, + 'takerOrMaker': takerOrMaker, + 'price': price, + 'amount': amount, + 'cost': cost, + 'fee': fee, + }; + } + + async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'tradingPair': market['id'], + // 'limit': limit, + // 'pastmax': id, // read data older than this ID + // 'latestmin': id, // read data newer than this ID + // 'after': parseInt (since / 1000), + // 'before': this.seconds (), + }; + if (since !== undefined) { + request['after'] = parseInt (since / 1000); + } + if (limit !== undefined) { + request['limit'] = limit; + } + const response = await this.publicGetTradingPairsTradingPairTrades (this.extend (request, params)); + // + // [ + // {"time":"2020-12-19T12:17:43.000Z","date":1608380263,"id":23903608,"price":25155000,"amount":0.0505,"side":"sell"}, + // {"time":"2020-12-19T12:17:13.000Z","date":1608380233,"id":23903604,"price":25140000,"amount":0.019,"side":"sell"}, + // {"time":"2020-12-19T12:16:49.000Z","date":1608380209,"id":23903599,"price":25140000,"amount":0.0072,"side":"sell"}, + // ] + // + return this.parseTrades (response, market, since, limit); + } + + parseOHLCV (ohlcv, market = undefined) { + // + // [ + // 1606780800000, // timestamp + // 21293000, // low + // 21300000, // high + // 21294000, // open + // 21300000, // close + // 1.019126, // volume + // ] + // + return [ + this.safeInteger (ohlcv, 0), + this.safeFloat (ohlcv, 3), + this.safeFloat (ohlcv, 2), + this.safeFloat (ohlcv, 1), + this.safeFloat (ohlcv, 4), + this.safeFloat (ohlcv, 5), + ]; + } + + async fetchOHLCV (symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + limit = (limit === undefined) ? 1024 : limit; // default 1024 + const request = { + 'tradingPair': market['id'], + // 'start': since, + // 'end': this.milliseconds (), + 'interval': this.timeframes[timeframe], + }; + const duration = this.parseTimeframe (timeframe); + if (since === undefined) { + const end = this.milliseconds (); + request['end'] = end; + request['start'] = end - limit * duration * 1000; + } else { + request['start'] = since; + request['end'] = this.sum (since, limit * duration * 1000); + } + const response = await this.publicGetTradingPairsTradingPairCandles (this.extend (request, params)); + // + // [ + // [1606780800000,21293000,21300000,21294000,21300000,1.019126], + // [1606780860000,21237000,21293000,21293000,21263000,0.96800057], + // [1606780920000,21240000,21240000,21240000,21240000,0.11068715], + // ] + // + return this.parseOHLCVs (response, market, timeframe, since, limit); + } + + parseBalanceResponse (response) { + const result = { 'info': response }; + for (let i = 0; i < response.length; i++) { + const balance = response[i]; + const currencyId = this.safeString2 (balance, 'asset', 'isoAlpha3'); + const code = this.safeCurrencyCode (currencyId); + const hold = this.safeFloat (balance, 'hold'); + const pendingWithdrawal = this.safeFloat (balance, 'pendingWithdrawal'); + const account = this.account (); + account['free'] = this.safeFloat (balance, 'avail'); + account['used'] = this.sum (hold, pendingWithdrawal); + result[code] = account; + } + return this.parseBalance (result); + } + + async fetchBalance (params = {}) { + await this.loadMarkets (); + const response = await this.privateGetBalances (params); + // + // [ + // { + // "asset": "KRW", // asset name + // "avail": 1759466.76, // available amount to place order + // "hold": 16500, // outstanding amount on order books + // "pendingWithdrawal": 0, // amount being withdrawn + // "lastUpdatedAt": "1600684352032", // balance last update time + // }, + // ] + // + return this.parseBalanceResponse (response); + } + + parseOrderStatus (status) { + const statuses = { + 'placed': 'open', + 'cancelled': 'canceled', + 'completed': 'closed', + 'updated': 'open', + 'reserved': 'open', + }; + return this.safeString (statuses, status, status); + } + + parseOrder (order, market = undefined) { + // + // cancelOrder + // + // {} // empty object + // + // fetchOrder, fetchOrders, fetchOpenOrders, createOrder + // + // { + // "id": "453324", // order ID + // "clientOrderId": "zeckrw23456", // client order ID (showed only when it exists) + // "status": "updated", // placed, cancelled, completed, updated, reserved + // "forcedCompletionReason": undefined, // the reason in case it was canceled in the middle (protection or timeInForce) + // "tradingPairName": "ZEC-KRW", // order book + // "side": "buy", // buy, sell + // "type": "limit", // limit, market + // "price": 1000000, // price + // "stopPrice": undefined, // stop price (showed only for stop orders) + // "amount": 4, // initial amount + // "remaining": 1, // outstanding amount + // "protection": "yes", // whether protection is activated (yes or no) + // "timeInForce": "gtc", // limit order's time in force (gtc/po/ioc/fok) + // "createdAt": "2020-09-25T04:06:20.000Z", // order placement time + // "updatedAt": "2020-09-25T04:06:29.000Z", // order last update time + // "balanceChange": { + // "baseGross": 3, // base asset balance's gross change (in ZEC for this case) + // "baseFee": { + // "taking": 0, // base asset fee imposed as taker + // "making": -0.0012 // base asset fee imposed as maker + // }, + // "baseNet": 2.9988, // base asset balance's net change (in ZEC for this case) + // "quoteGross": -3000000, // quote asset balance's gross change (in KRW for + // "quoteFee": { + // "taking": 0, // quote asset fee imposed as taker + // "making": 0 // quote asset fee imposed as maker + // }, + // "quoteNet": -3000000 // quote asset balance's net change (in KRW for this case) + // } + // } + // + const id = this.safeString (order, 'id'); + const clientOrderId = this.safeString (order, 'clientOrderId'); + const timestamp = this.parse8601 (this.safeString (order, 'createdAt')); + const type = this.safeString (order, 'type'); + const side = this.safeString (order, 'side'); + const timeInForce = this.safeStringUpper (order, 'timeInForce'); + const price = this.safeFloat (order, 'price'); + const amount = this.safeFloat (order, 'amount'); + const stopPrice = this.safeFloat (order, 'stopPrice'); + const remaining = this.safeFloat (order, 'remaining'); + const marketId = this.safeString (order, 'tradingPairName'); + market = this.safeMarket (marketId, market, '-'); + const status = this.parseOrderStatus (this.safeString (order, 'status')); + const balanceChange = this.safeValue (order, 'balanceChange', {}); + let filled = this.safeFloat (balanceChange, 'baseNet'); + let cost = this.safeFloat (balanceChange, 'quoteNet'); + if (cost !== undefined) { + cost = Math.abs (cost); + } + let updated = undefined; + if ((filled === undefined) && (amount !== undefined) && (remaining !== undefined)) { + filled = Math.max (0, amount - remaining); + } + if ((filled !== undefined) && (filled > 0)) { + updated = this.parse8601 (this.safeString (order, 'updatedAt')); + } + if ((cost === undefined) && (price !== undefined) && (filled !== undefined)) { + cost = filled * price; + } + let fee = undefined; + if (side === 'buy') { + const baseFee = this.safeValue (balanceChange, 'baseFee', {}); + const taking = this.safeFloat (baseFee, 'taking'); + const making = this.safeFloat (baseFee, 'making'); + fee = { + 'currency': market['base'], + 'cost': this.sum (taking, making), + }; + } else { + const quoteFee = this.safeValue (balanceChange, 'quoteFee', {}); + const taking = this.safeFloat (quoteFee, 'taking'); + const making = this.safeFloat (quoteFee, 'making'); + fee = { + 'currency': market['quote'], + 'cost': this.sum (taking, making), + }; + } + let postOnly = undefined; + if (timeInForce !== undefined) { + postOnly = (timeInForce === 'PO'); + } + return { + 'id': id, + 'clientOrderId': clientOrderId, + 'datetime': this.iso8601 (timestamp), + 'timestamp': timestamp, + 'lastTradeTimestamp': updated, + 'status': status, + 'symbol': market['symbol'], + 'type': type, + 'timeInForce': timeInForce, + 'postOnly': postOnly, + 'side': side, + 'price': price, + 'stopPrice': stopPrice, + 'average': undefined, + 'amount': amount, + 'filled': filled, + 'remaining': remaining, + 'cost': cost, + 'trades': undefined, + 'fee': fee, + 'info': order, + }; + } + + async fetchOrder (id, symbol = undefined, params = {}) { + await this.loadMarkets (); + let method = undefined; + const clientOrderId = this.safeString (params, 'clientOrderId'); + params = this.omit (params, 'clientOrderId'); + const request = {}; + if (clientOrderId === undefined) { + method = 'privateGetOrdersOrderId'; + request['orderId'] = id; + } else { + method = 'privateGetOrdersClientOrderIdClientOrderId'; + request['clientOrderId'] = clientOrderId; + } + const response = await this[method] (this.extend (request, params)); + // + // { + // "id": "453324", // order ID + // "clientOrderId": "zeckrw23456", // client order ID (showed only when it exists) + // "status": "updated", // placed, cancelled, completed, updated, reserved + // "forcedCompletionReason": undefined, // the reason in case it was canceled in the middle (protection or timeInForce) + // "tradingPairName": "ZEC-KRW", // order book + // "side": "buy", // buy, sell + // "type": "limit", // limit, market + // "price": 1000000, // price + // "stopPrice": undefined, // stop price (showed only for stop orders) + // "amount": 4, // initial amount + // "remaining": 1, // outstanding amount + // "protection": "yes", // whether protection is activated (yes or no) + // "timeInForce": "gtc", // limit order's time in force (gtc/po/ioc/fok) + // "createdAt": "2020-09-25T04:06:20.000Z", // order placement time + // "updatedAt": "2020-09-25T04:06:29.000Z", // order last update time + // "balanceChange": { + // "baseGross": 3, // base asset balance's gross change (in ZEC for this case) + // "baseFee": { + // "taking": 0, // base asset fee imposed as taker + // "making": -0.0012 // base asset fee imposed as maker + // }, + // "baseNet": 2.9988, // base asset balance's net change (in ZEC for this case) + // "quoteGross": -3000000, // quote asset balance's gross change (in KRW for + // "quoteFee": { + // "taking": 0, // quote asset fee imposed as taker + // "making": 0 // quote asset fee imposed as maker + // }, + // "quoteNet": -3000000 // quote asset balance's net change (in KRW for this case) + // } + // } + // + return this.parseOrder (response); + } + + async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + 'includePast': 'true', // if true, completed and canceled orders are included as the result, they are accessible for one hour only from its completion or cancellation time + // 'pagination': 'false', // if the result is more than 3,000 orders, set this value as true to access 1000 orders at max per each page + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + } + const response = await this.privateGetOrders (this.extend (request, params)); + // + // [ + // { + // "id": "453324", // order ID + // "clientOrderId": "zeckrw23456", // client order ID (showed only when it exists) + // "status": "updated", // placed, cancelled, completed, updated, reserved + // "forcedCompletionReason": undefined, // the reason in case it was canceled in the middle (protection or timeInForce) + // "tradingPairName": "ZEC-KRW", // order book + // "side": "buy", // buy, sell + // "type": "limit", // limit, market + // "price": 1000000, // price + // "stopPrice": undefined, // stop price (showed only for stop orders) + // "amount": 4, // initial amount + // "remaining": 1, // outstanding amount + // "protection": "yes", // whether protection is activated (yes or no) + // "timeInForce": "gtc", // limit order's time in force (gtc/po/ioc/fok) + // "createdAt": "2020-09-25T04:06:20.000Z", // order placement time + // "updatedAt": "2020-09-25T04:06:29.000Z", // order last update time + // "balanceChange": { + // "baseGross": 3, // base asset balance's gross change (in ZEC for this case) + // "baseFee": { + // "taking": 0, // base asset fee imposed as taker + // "making": -0.0012 // base asset fee imposed as maker + // }, + // "baseNet": 2.9988, // base asset balance's net change (in ZEC for this case) + // "quoteGross": -3000000, // quote asset balance's gross change (in KRW for + // "quoteFee": { + // "taking": 0, // quote asset fee imposed as taker + // "making": 0 // quote asset fee imposed as maker + // }, + // "quoteNet": -3000000 // quote asset balance's net change (in KRW for this case) + // } + // }, + // ] + // + return this.parseOrders (response, market, since, limit); + } + + async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const request = { + 'includePast': 'false', + }; + return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); + } + + async createOrder (symbol, type, side, amount, price = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + // 'clientOrderId': 'test4321', // max 20 characters of [a-zA-Z0-9_-] + 'tradingPairName': market['id'], + 'side': side, // buy, sell + 'type': type, // limit, market + // 'price': this.priceToPrecision (symbol, price), + // 'stopPrice': this.priceToPrecision (symbol, stopPrice), // optional, becomes a stop order if set + // 'amount': this.amountToPrecision (symbol, amount), + // 'protection': 'no', // whether protection is activated + // 'timeInForce': 'gtc', // gtc, po, ioc, fok + }; + if (type === 'limit') { + request['price'] = this.priceToPrecision (symbol, price); + request['amount'] = this.amountToPrecision (symbol, amount); + } else if (type === 'market') { + // for market buy it requires the amount of quote currency to spend + if (side === 'buy') { + let total = amount; + const createMarketBuyOrderRequiresPrice = this.safeValue (this.options, 'createMarketBuyOrderRequiresPrice', true); + if (createMarketBuyOrderRequiresPrice) { + if (price === undefined) { + throw new InvalidOrder (this.id + " createOrder() requires the price argument with market buy orders to calculate total order cost (amount to spend), where cost = amount * price. Supply a price argument to createOrder() call if you want the cost to be calculated for you from price and amount, or, alternatively, add .options['createMarketBuyOrderRequiresPrice'] = false and supply the total cost value in the 'amount' argument"); + } + total = price * amount; + } + const precision = market['precision']['price']; + request['amount'] = this.decimalToPrecision (total, TRUNCATE, precision, this.precisionMode); + } else { + request['amount'] = this.amountToPrecision (symbol, amount); + } + } + const clientOrderId = this.safeString (params, 'clientOrderId'); + if (clientOrderId !== undefined) { + request['clientOrderId'] = clientOrderId; + params = this.omit (params, 'clientOrderId'); + } + const stopPrice = this.safeFloat (params, 'stopPrice'); + if (stopPrice !== undefined) { + request['stopPrice'] = this.priceToPrecision (symbol, stopPrice); + params = this.omit (params, 'stopPrice'); + } + const timeInForce = this.safeStringLower (params, 'timeInForce'); + if (timeInForce !== undefined) { + request['timeInForce'] = timeInForce; + params = this.omit (params, 'timeInForce'); + } + const response = await this.privatePostOrders (this.extend (request, params)); + // + // { + // "id": "453327", // order ID + // "clientOrderId": "test4321", // client order ID (showed only when it exists) + // "status": "reserved", // placed, cancelled, completed, updated, reserved + // "forcedCompletionReason": undefined, // the reason in case it was canceled in the middle (protection or timeInForce) + // "tradingPairName": "BCH-KRW", // order book + // "side": "sell", // buy, sell + // "type": "limit", // limit, market + // "price": 11000000, // price + // "stopPrice": 12000000, // stop price (showed only for stop orders) + // "amount": 0.5, // initial amount + // "remaining": 0.5, // outstanding amount + // "protection": "no", // whether protection is activated (yes or no) + // "timeInForce": "gtc", // limit order's time in force (gtc/po/ioc/fok) + // "createdAt": "2020-09-25T04:51:31.000Z", // order placement time + // "balanceChange": { + // "baseGross": 0, // base asset balance's gross change (in BCH for this case) + // "baseFee": { + // "taking": 0, // base asset fee imposed as taker + // "making": 0 // base asset fee imposed as maker + // }, + // "baseNet": 0, // base asset balance's net change (in BCH for this case) + // "quoteGross": 0, // quote asset balance's gross change (in KRW for + // "quoteFee": { + // "taking": 0, // quote asset fee imposed as taker + // "making": 0 // quote asset fee imposed as maker + // }, + // "quoteNet": 0 // quote asset balance's net change (in KRW for this case) + // } + // } + // + return this.parseOrder (response, market); + } + + async cancelOrder (id, symbol = undefined, params = {}) { + await this.loadMarkets (); + const request = {}; + const clientOrderId = this.safeString (params, 'clientOrderId'); + let method = undefined; + if (clientOrderId === undefined) { + method = 'privateDeleteOrdersOrderId'; + request['orderId'] = id; + } else { + method = 'privateDeleteOrdersClientOrderIdClientOrderId'; + request['clientOrderId'] = clientOrderId; + params = this.omit (params, 'clientOrderId'); + } + const response = await this[method] (this.extend (request, params)); + // + // {} + // + const order = this.parseOrder (response); + return this.extend (order, { 'id': id }); + } + + async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'limit': limit, // max 100 + // 'pastmax': id, // read data older than this id + // 'latestmin': id, // read data newer than this id + // 'after': parseInt (since / 1000), // Read data after this timestamp in seconds + // 'before': this.seconds (), // Read data before this timestamp in seconds + 'deepSearch': 'true', // read data older than one month ago are inclusively looked up only when it is "true" + }; + if (since !== undefined) { + request['after'] = parseInt (since / 1000); + } + if (limit !== undefined) { + request['limit'] = limit; + } + const response = await this.privateGetTrades (this.extend (request, params)); + // + // [ + // { + // "id": 73953, // trading event ID + // "orderId": 453324, // order ID + // "baseAmount": 3, // traded base asset amount + // "quoteAmount": 3000000, // traded quote asset amount + // "fee": 0.0012, // fee + // "price": 1000000, // price + // "timestamp": "2020-09-25T04:06:30.000Z", // trading time + // "side": "buy", // buy, sell + // "tradingPairName": "ZEC-KRW", // order book + // "position": "maker" // maker, taker + // }, + // ] + // + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + } + return this.parseTrades (response, market, since, limit); + } + + parseDepositAddress (depositAddress, currency = undefined) { + // + // { + // "asset": "BTC", // asset name + // "address": "1CwC2cMFu1jRQUBtw925cENbT1kctJBMdm", // deposit address + // "memoId": null, // memo ID (showed only for assets using memo ID) + // "createdAt": 1594802312 // deposit address creation time + // } + // + const address = this.safeString (depositAddress, 'address'); + const tag = this.safeString (depositAddress, 'memoId'); + const currencyId = this.safeString (depositAddress, 'asset'); + const code = this.safeCurrencyCode (currencyId); + this.checkAddress (address); + return { + 'currency': code, + 'address': address, + 'tag': tag, + 'info': depositAddress, + }; + } + + parseDepositAddresses (addresses, codes = undefined) { + let result = []; + for (let i = 0; i < addresses.length; i++) { + const address = this.parseDepositAddress (addresses[i]); + result.push (address); + } + if (codes) { + result = this.filterByArray (result, 'currency', codes); + } + return this.indexBy (result, 'currency'); + } + + async fetchDepositAddresses (codes = undefined, params = {}) { + await this.loadMarkets (); + const response = await this.privateGetCryptoDepositAddresses (params); + // + // [ + // { + // "asset": "BTC", // asset name + // "address": "1CwC2cMFu1jRQUBtw925cENbT1kctJBMdm", // deposit address + // "memoId": null, // memo ID (showed only for assets using memo ID) + // "createdAt": 1594802312 // deposit address creation time + // }, + // ] + // + return this.parseDepositAddresses (response, codes); + } + + async fetchDepositAddress (code, params = {}) { + await this.loadMarkets (); + const response = await this.fetchDepositAddresses (undefined, params); + const address = this.safeValue (response, code); + if (address === undefined) { + throw new InvalidAddress (this.id + ' fetchDepositAddress() ' + code + ' address not found'); + } + return address; + } + + parseTransactionStatus (status) { + const statuses = { + 'reviewing': 'pending', + 'rejected': 'rejected', + 'processing': 'pending', + 'failed': 'failed', + 'completed': 'ok', + }; + return this.safeString (statuses, status, status); + } + + parseTransaction (transaction, currency = undefined) { + // + // { + // "id": 640, // deposit/withdrawal event ID + // "asset": "BTC", // asset name + // "type": "crypto_withdrawal", // fiat_withdrawal, fiat_deposit, crypto_withdrawal, crypto_deposit + // "netAmount": 0.0001, // amount + // "feeAmount": 0.0005, // fee (null if there is no imposed fee) + // "status": "completed", // reviewing, rejected, processing, failed, completed + // "reviewStartedAt": 1595556218, // request time + // "completedAt": 1595556902, // completion time (showed only in case of completed) + // "txId": "eaca5ad3...", // tx ID + // "sourceAddress": null, // sender address (showed only in case of crypto_deposit) + // "destinationAddress: "3H8...", // recipient address (showed only in case of crypto_withdrawal) + // "destinationMemoId": null // recipient address's memo ID + // } + // + const id = this.safeString (transaction, 'id'); + const txid = this.safeString (transaction, 'txId'); + const currencyId = this.safeString (transaction, 'asset'); + const code = this.safeCurrencyCode (currencyId, currency); + let type = this.safeString (transaction, 'type'); + if ((type === 'crypto_withdrawal') || (type === 'fiat_withdrawal')) { + type = 'withdrawal'; + } else if ((type === 'crypto_deposit' || type === 'fiat_deposit')) { + type = 'deposit'; + } + const amount = this.safeFloat (transaction, 'netAmount'); + const feeCost = this.safeFloat (transaction, 'feeAmount'); + let fee = undefined; + if (feeCost !== undefined) { + fee = { + 'cost': feeCost, + 'currency': code, + }; + } + const timestamp = this.safeTimestamp (transaction, 'reviewStartedAt'); + const updated = this.safeTimestamp (transaction, 'completedAt'); + const addressFrom = this.safeString (transaction, 'sourceAddress'); + const addressTo = this.safeString (transaction, 'destinationAddress'); + const tagFrom = this.safeString (transaction, 'sourceMemoId'); + const tagTo = this.safeString (transaction, 'destinationMemoId'); + const status = this.parseTransactionStatus (this.safeString (transaction, 'status')); + return { + 'info': transaction, + 'id': id, + 'txid': txid, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'addressFrom': addressFrom, + 'address': addressTo, + 'addressTo': addressTo, + 'tagFrom': tagFrom, + 'tag': tagTo, + 'tagTo': tagTo, + 'type': type, + 'amount': amount, + 'currency': code, + 'status': status, + 'updated': updated, + 'comment': undefined, + 'fee': fee, + }; + } + + async fetchTransactions (code = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'limit': limit, // max 20 + // 'latestmin': limit, // read data older than this id + // 'after': this.milliseconds (), + // 'before': since, + // 'completedOnly': 'no', + }; + if (since !== undefined) { + request['before'] = since; + } + if (limit !== undefined) { + request['limit'] = limit; + } + const response = await this.privateGetDepositWithdrawalStatus (this.extend (request, params)); + // + // [ + // { + // "id": 640, // deposit/withdrawal event ID + // "asset": "BTC", // asset name + // "type": "crypto_withdrawal", // fiat_withdrawal, fiat_deposit, crypto_withdrawal, crypto_deposit + // "netAmount": 0.0001, // amount + // "feeAmount": 0.0005, // fee (null if there is no imposed fee) + // "status": "completed", // reviewing, rejected, processing, failed, completed + // "reviewStartedAt": 1595556218, // request time + // "completedAt": 1595556902, // completion time (showed only in case of completed) + // "txId": "eaca5ad3...", // tx ID + // "sourceAddress": null, // sender address (showed only in case of crypto_deposit) + // "destinationAddress: "3H8...", // recipient address (showed only in case of crypto_withdrawal) + // "destinationMemoId": null // recipient address's memo ID + // }, + // ] + // + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + } + return this.parseTransactions (response, currency, since, limit, params); + } + + nonce () { + return this.milliseconds (); + } + + sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { // for authentication in private API calls + const endpoint = '/' + this.implodeParams (path, params); + let url = this.implodeParams (this.urls['api'][api], { 'hostname': this.hostname }) + endpoint; + const query = this.omit (params, this.extractParams (path)); + if (api === 'public') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } else if (api === 'private') { + this.checkRequiredCredentials (); + const timestamp = this.nonce ().toString (); + let auth = 't' + timestamp + method + endpoint; + headers = { + 'api-key': this.apiKey, + 'timestamp': timestamp, + }; + if (method === 'POST') { + headers['Content-Type'] = 'application/json'; + body = this.json (params); + auth += body; + } else if (endpoint === '/orders') { + if (Object.keys (query).length) { + const urlQuery = '?' + this.urlencode (query); + auth += urlQuery; + url += urlQuery; + } + } else if (method === 'GET') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } + const rawSecret = this.base64ToBinary (this.secret); + const signature = this.hmac (this.encode (auth), rawSecret, 'sha512', 'base64'); + headers['signature'] = signature; + } + return { 'url': url, 'method': method, 'body': body, 'headers': headers }; + } + + handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { + if (response === undefined) { + return; + } + // + // {"errorMessage":"Invalid API key","errorCode":10155} + // + if (!Array.isArray (response)) { + const errorCode = this.safeString (response, 'errorCode'); + const errorMessage = this.safeString (response, 'errorMessage'); + const feedback = this.id + ' ' + body; + if (errorMessage !== undefined) { + this.throwBroadlyMatchedException (this.exceptions['broad'], body, feedback); + } + if (errorCode !== undefined) { + this.throwExactlyMatchedException (this.exceptions['exact'], errorCode, feedback); + } + if ((errorCode !== undefined) || (errorMessage !== undefined)) { + throw new ExchangeError (feedback); + } + } + } +}; diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/hbtc.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/hbtc.js index d7bde5c6c..d819c3d77 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/hbtc.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/hbtc.js @@ -841,7 +841,7 @@ module.exports = class hbtc extends Exchange { method = 'optionGetMyTrades'; } else { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a `symbol` argument for ' + type + ' markets'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a `symbol` argument for ' + type + ' markets'); } const market = this.market (symbol); request['symbol'] = market['id']; @@ -1954,6 +1954,7 @@ module.exports = class hbtc extends Exchange { 'NEW': 'open', 'CANCELED': 'canceled', 'FILLED': 'closed', + 'PARTIALLY_FILLED': 'open', 'PENDING_CANCEL': 'canceled', }; return this.safeString (statuses, status, status); diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/hitbtc.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/hitbtc.js index 0ec19ca80..b66392816 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/hitbtc.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/hitbtc.js @@ -59,6 +59,10 @@ module.exports = class hitbtc extends Exchange { }, 'urls': { 'logo': 'https://user-images.githubusercontent.com/1294454/27766555-8eaec20e-5edc-11e7-9c5b-6dc69fc42f5e.jpg', + 'test': { + 'public': 'https://api.demo.hitbtc.com', + 'private': 'https://api.demo.hitbtc.com', + }, 'api': { 'public': 'https://api.hitbtc.com', 'private': 'https://api.hitbtc.com', @@ -160,6 +164,7 @@ module.exports = class hitbtc extends Exchange { 'LNC': 'LinkerCoin', 'PLA': 'PlayChip', 'PNT': 'Penta', + 'SBTC': 'Super Bitcoin', 'TV': 'Tokenville', 'USD': 'USDT', 'XPNT': 'PNT', @@ -797,22 +802,44 @@ module.exports = class hitbtc extends Exchange { // // createMarketOrder // - // { clientOrderId: "fe36aa5e190149bf9985fb673bbb2ea0", - // createdAt: "2018-10-25T16:41:44.780Z", - // cumQuantity: "1", - // id: "66799540063", - // quantity: "1", - // side: "sell", - // status: "filled", - // symbol: "XRPUSDT", - // timeInForce: "FOK", - // tradesReport: [ { fee: "0.0004644", - // id: 386394956, - // price: "0.4644", - // quantity: "1", - // timestamp: "2018-10-25T16:41:44.780Z" } ], - // type: "market", - // updatedAt: "2018-10-25T16:41:44.780Z" } + // { + // clientOrderId: "fe36aa5e190149bf9985fb673bbb2ea0", + // createdAt: "2018-10-25T16:41:44.780Z", + // cumQuantity: "1", + // id: "66799540063", + // quantity: "1", + // side: "sell", + // status: "filled", + // symbol: "XRPUSDT", + // timeInForce: "FOK", + // tradesReport: [ + // { + // fee: "0.0004644", + // id: 386394956, + // price: "0.4644", + // quantity: "1", + // timestamp: "2018-10-25T16:41:44.780Z" + // } + // ], + // type: "market", + // updatedAt: "2018-10-25T16:41:44.780Z" + // } + // + // { + // "id": 119499457455, + // "clientOrderId": "87baab109d58401b9202fa0749cb8288", + // "symbol": "ETHUSD", + // "side": "buy", + // "status": "filled", + // "type": "market", + // "timeInForce": "FOK", + // "quantity": "0.0007", + // "price": "181.487", + // "avgPrice": "164.989", + // "cumQuantity": "0.0007", + // "createdAt": "2019-04-17T13:27:38.062Z", + // "updatedAt": "2019-04-17T13:27:38.062Z" + // } // const created = this.parse8601 (this.safeString (order, 'createdAt')); const updated = this.parse8601 (this.safeString (order, 'updatedAt')); @@ -842,7 +869,7 @@ module.exports = class hitbtc extends Exchange { const side = this.safeString (order, 'side'); let trades = this.safeValue (order, 'tradesReport'); let fee = undefined; - let average = undefined; + let average = this.safeValue (order, 'avgPrice'); if (trades !== undefined) { trades = this.parseTrades (trades, market); let feeCost = undefined; @@ -861,7 +888,9 @@ module.exports = class hitbtc extends Exchange { } cost = tradesCost; if ((filled !== undefined) && (filled > 0)) { - average = cost / filled; + if (average === undefined) { + average = cost / filled; + } if (type === 'market') { if (price === undefined) { price = average; diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/hollaex.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/hollaex.js index 47b127d50..52e81fec3 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/hollaex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/hollaex.js @@ -520,7 +520,7 @@ module.exports = class hollaex extends Exchange { const duration = this.parseTimeframe (timeframe); if (since === undefined) { if (limit === undefined) { - throw new ArgumentsRequired (this.id + " fetchOHLCV requires a 'since' or a 'limit' argument"); + throw new ArgumentsRequired (this.id + " fetchOHLCV() requires a 'since' or a 'limit' argument"); } else { const end = this.seconds (); const start = end - duration * limit; @@ -702,6 +702,7 @@ module.exports = class hollaex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/huobipro.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/huobipro.js index 62edb18d3..52dc315e8 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/huobipro.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/huobipro.js @@ -98,6 +98,7 @@ module.exports = class huobipro extends Exchange { 'user/api-key', // 母子用户API key信息查询 ], 'post': [ + 'account/transfer', 'point/transfer', // 点卡划转 'sub-user/management', // 冻结/解冻子用户 'sub-user/creation', // 子用户创建 @@ -195,9 +196,14 @@ module.exports = class huobipro extends Exchange { }, }, 'exceptions': { + 'broad': { + 'contract is restricted of closing positions on API. Please contact customer service': OnMaintenance, + 'maintain': OnMaintenance, + }, 'exact': { // err-code 'bad-request': BadRequest, + 'base-date-limit-error': BadRequest, // {"status":"error","err-code":"base-date-limit-error","err-msg":"date less than system limit","data":null} 'api-not-support-temp-addr': PermissionDenied, // {"status":"error","err-code":"api-not-support-temp-addr","err-msg":"API withdrawal does not support temporary addresses","data":null} 'timeout': RequestTimeout, // {"ts":1571653730865,"status":"error","err-code":"timeout","err-msg":"Request Timeout"} 'gateway-internal-error': ExchangeNotAvailable, // {"status":"error","err-code":"gateway-internal-error","err-msg":"Failed to load data. Try again later.","data":null} @@ -208,6 +214,8 @@ module.exports = class huobipro extends Exchange { 'order-marketorder-amount-min-error': InvalidOrder, // market order amount error, min: `0.01` 'order-limitorder-price-min-error': InvalidOrder, // limit order price error 'order-limitorder-price-max-error': InvalidOrder, // limit order price error + 'order-holding-limit-failed': InvalidOrder, // {"status":"error","err-code":"order-holding-limit-failed","err-msg":"Order failed, exceeded the holding limit of this currency","data":null} + 'order-orderprice-precision-error': InvalidOrder, // {"status":"error","err-code":"order-orderprice-precision-error","err-msg":"order price precision error, scale: `4`","data":null} 'order-orderstate-error': OrderNotFound, // canceling an already canceled order 'order-queryorder-invalid': OrderNotFound, // querying a non-existent order 'order-update-error': ExchangeNotAvailable, // undocumented error @@ -243,6 +251,7 @@ module.exports = class huobipro extends Exchange { // https://coinmarketcap.com/currencies/penta/markets/ // https://en.cryptonomist.ch/blog/eidoo/the-edo-to-pnt-upgrade-what-you-need-to-know-updated/ 'PNT': 'Penta', + 'SBTC': 'Super Bitcoin', }, }); } @@ -675,7 +684,8 @@ module.exports = class huobipro extends Exchange { request['size'] = limit; // 1-100 orders, default is 100 } if (since !== undefined) { - request['start-date'] = this.ymd (since); // maximum query window size is 2 days, query window shift should be within past 120 days + request['start-date'] = this.ymd (since); // a date within 61 days from today + request['end-date'] = this.ymd (this.sum (since, 86400000)); } const response = await this.privateGetOrderMatchresults (this.extend (request, params)); const trades = this.parseTrades (response['data'], market, since, limit); @@ -943,7 +953,7 @@ module.exports = class huobipro extends Exchange { async fetchOpenOrdersV1 (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrdersV1 requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrdersV1() requires a symbol argument'); } return await this.fetchOrdersByStates ('pre-submitted,submitted,partial-filled', symbol, since, limit, params); } @@ -955,7 +965,7 @@ module.exports = class huobipro extends Exchange { async fetchOpenOrdersV2 (symbol = undefined, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } const market = this.market (symbol); let accountId = this.safeString (params, 'account-id'); @@ -1105,6 +1115,7 @@ module.exports = class huobipro extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -1484,6 +1495,7 @@ module.exports = class huobipro extends Exchange { if (status === 'error') { const code = this.safeString (response, 'err-code'); const feedback = this.id + ' ' + body; + this.throwBroadlyMatchedException (this.exceptions['broad'], body, feedback); this.throwExactlyMatchedException (this.exceptions['exact'], code, feedback); const message = this.safeString (response, 'err-msg'); this.throwExactlyMatchedException (this.exceptions['exact'], message, feedback); diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/ice3x.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/ice3x.js index 42e54b79f..f228076d1 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/ice3x.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/ice3x.js @@ -225,7 +225,7 @@ module.exports = class ice3x extends Exchange { const type = this.safeString (params, 'type'); if ((type !== 'ask') && (type !== 'bid')) { // eslint-disable-next-line quotes - throw new ArgumentsRequired (this.id + " fetchOrderBook requires an exchange-specific extra 'type' param ('bid' or 'ask') when used with a limit"); + throw new ArgumentsRequired (this.id + " fetchOrderBook() requires an exchange-specific extra 'type' param ('bid' or 'ask') when used with a limit"); } else { request['items_per_page'] = limit; } @@ -345,6 +345,7 @@ module.exports = class ice3x extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': this.safeString (order, 'type'), 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/idex.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/idex.js index d70fa94f4..7d52a5286 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/idex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/idex.js @@ -56,8 +56,8 @@ module.exports = class idex extends Exchange { }, 'logo': 'https://user-images.githubusercontent.com/51840849/94481303-2f222100-01e0-11eb-97dd-bc14c5943a86.jpg', 'api': { - 'public': 'https://api.idex.io', - 'private': 'https://api.idex.io', + 'ETH': 'https://api-eth.idex.io', + 'BSC': 'https://api-bsc.idex.io', }, 'www': 'https://idex.io', 'doc': [ @@ -103,6 +103,7 @@ module.exports = class idex extends Exchange { 'options': { 'defaultTimeInForce': 'gtc', 'defaultSelfTradePrevention': 'cn', + 'network': 'ETH', // also supports BSC }, 'exceptions': { 'INVALID_ORDER_QUANTITY': InvalidOrder, @@ -822,16 +823,8 @@ module.exports = class idex extends Exchange { const type = this.safeString (order, 'type'); const amount = this.safeFloat (order, 'originalQuantity'); const filled = this.safeFloat (order, 'executedQuantity'); - let remaining = undefined; - if ((amount !== undefined) && (filled !== undefined)) { - remaining = amount - filled; - } const average = this.safeFloat (order, 'avgExecutionPrice'); - const price = this.safeFloat (order, 'price', average); // for market orders - let cost = undefined; - if ((amount !== undefined) && (price !== undefined)) { - cost = amount * price; - } + const price = this.safeFloat (order, 'price'); const rawStatus = this.safeString (order, 'status'); const status = this.parseOrderStatus (rawStatus); const fee = { @@ -845,7 +838,7 @@ module.exports = class idex extends Exchange { fee['cost'] = this.sum (fee['cost'], lastTrade['fee']['cost']); } const lastTradeTimestamp = this.safeInteger (lastTrade, 'timestamp'); - return { + return this.safeOrder ({ 'info': order, 'id': id, 'clientOrderId': clientOrderId, @@ -855,18 +848,19 @@ module.exports = class idex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, 'amount': amount, - 'cost': cost, + 'cost': undefined, 'average': average, 'filled': filled, - 'remaining': remaining, + 'remaining': undefined, 'status': status, 'fee': fee, 'trades': trades, - }; + }); } async associateWallet (walletAddress, params = {}) { @@ -943,7 +937,8 @@ module.exports = class idex extends Exchange { } const sideEnum = (side === 'buy') ? 0 : 1; const walletBytes = this.remove0xPrefix (this.walletAddress); - const orderVersion = 1; + const network = this.safeString (this.options, 'network', 'ETH'); + const orderVersion = (network === 'ETH') ? 1 : 2; const amountString = this.amountToPrecision (symbol, amount); // https://docs.idex.io/#time-in-force const timeInForceEnums = { @@ -1272,8 +1267,9 @@ module.exports = class idex extends Exchange { } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { + const network = this.safeString (this.options, 'network', 'ETH'); const version = this.safeString (this.options, 'version', 'v1'); - let url = this.urls['api'][api] + '/' + version + '/' + path; + let url = this.urls['api'][network] + '/' + version + '/' + path; const keys = Object.keys (params); const length = keys.length; let query = undefined; diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/independentreserve.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/independentreserve.js index 30f75d9a6..119a216d5 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/independentreserve.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/independentreserve.js @@ -287,6 +287,7 @@ module.exports = class independentreserve extends Exchange { 'symbol': symbol, 'type': orderType, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -394,10 +395,13 @@ module.exports = class independentreserve extends Exchange { cost = price * amount; } } - let symbol = undefined; - if (market !== undefined) { - symbol = market['symbol']; + const baseId = this.safeString (trade, 'PrimaryCurrencyCode'); + const quoteId = this.safeString (trade, 'SecondaryCurrencyCode'); + let marketId = undefined; + if ((baseId !== undefined) && (quoteId !== undefined)) { + marketId = baseId + '/' + quoteId; } + const symbol = this.safeSymbol (marketId, market, '/'); let side = this.safeString (trade, 'OrderType'); if (side !== undefined) { if (side.indexOf ('Bid') >= 0) { diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/indodax.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/indodax.js index 30457eca2..f1cc33732 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/indodax.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/indodax.js @@ -399,6 +399,7 @@ module.exports = class indodax extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -415,7 +416,7 @@ module.exports = class indodax extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol'); } await this.loadMarkets (); const market = this.market (symbol); @@ -462,7 +463,7 @@ module.exports = class indodax extends Exchange { async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const request = {}; @@ -506,11 +507,11 @@ module.exports = class indodax extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } const side = this.safeValue (params, 'side'); if (side === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires an extra "side" param'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires an extra "side" param'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/itbit.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/itbit.js index f26cf47eb..552bb0de5 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/itbit.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/itbit.js @@ -268,7 +268,7 @@ module.exports = class itbit extends Exchange { await this.loadMarkets (); const walletId = this.safeString (params, 'walletId'); if (walletId === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a walletId parameter'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a walletId parameter'); } const request = { 'walletId': walletId, @@ -337,7 +337,7 @@ module.exports = class itbit extends Exchange { await this.loadMarkets (); const walletId = this.safeString (params, 'walletId'); if (walletId === undefined) { - throw new ExchangeError (this.id + ' fetchMyTrades requires a walletId parameter'); + throw new ExchangeError (this.id + ' fetchMyTrades() requires a walletId parameter'); } const request = { 'walletId': walletId, @@ -427,7 +427,7 @@ module.exports = class itbit extends Exchange { async fetchWallets (params = {}) { await this.loadMarkets (); if (!this.uid) { - throw new AuthenticationError (this.id + ' fetchWallets requires uid API credential'); + throw new AuthenticationError (this.id + ' fetchWallets() requires uid API credential'); } const request = { 'userId': this.uid, @@ -465,7 +465,7 @@ module.exports = class itbit extends Exchange { } const walletIdInParams = ('walletId' in params); if (!walletIdInParams) { - throw new ExchangeError (this.id + ' fetchOrders requires a walletId parameter'); + throw new ExchangeError (this.id + ' fetchOrders() requires a walletId parameter'); } const walletId = params['walletId']; const request = { @@ -529,6 +529,8 @@ module.exports = class itbit extends Exchange { } const clientOrderId = this.safeString (order, 'clientOrderIdentifier'); const id = this.safeString (order, 'id'); + const postOnlyString = this.safeString (order, 'postOnly'); + const postOnly = (postOnlyString === 'True'); return { 'id': id, 'clientOrderId': clientOrderId, @@ -540,6 +542,7 @@ module.exports = class itbit extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': undefined, @@ -565,7 +568,7 @@ module.exports = class itbit extends Exchange { } const walletIdInParams = ('walletId' in params); if (!walletIdInParams) { - throw new ExchangeError (this.id + ' createOrder requires a walletId parameter'); + throw new ExchangeError (this.id + ' createOrder() requires a walletId parameter'); } amount = amount.toString (); price = price.toString (); @@ -590,7 +593,7 @@ module.exports = class itbit extends Exchange { await this.loadMarkets (); const walletIdInParams = ('walletId' in params); if (!walletIdInParams) { - throw new ExchangeError (this.id + ' fetchOrder requires a walletId parameter'); + throw new ExchangeError (this.id + ' fetchOrder() requires a walletId parameter'); } const request = { 'id': id, @@ -602,7 +605,7 @@ module.exports = class itbit extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { const walletIdInParams = ('walletId' in params); if (!walletIdInParams) { - throw new ExchangeError (this.id + ' cancelOrder requires a walletId parameter'); + throw new ExchangeError (this.id + ' cancelOrder() requires a walletId parameter'); } const request = { 'id': id, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/kraken.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/kraken.js index 78e997c6d..198ee4cf8 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/kraken.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/kraken.js @@ -3,7 +3,7 @@ // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { BadSymbol, ExchangeNotAvailable, ArgumentsRequired, PermissionDenied, AuthenticationError, ExchangeError, OrderNotFound, DDoSProtection, InvalidNonce, InsufficientFunds, CancelPending, InvalidOrder, InvalidAddress } = require ('./base/errors'); +const { BadSymbol, ExchangeNotAvailable, ArgumentsRequired, PermissionDenied, AuthenticationError, ExchangeError, OrderNotFound, DDoSProtection, InvalidNonce, InsufficientFunds, CancelPending, InvalidOrder, InvalidAddress, RateLimitExceeded } = require ('./base/errors'); const { TRUNCATE, DECIMAL_PLACES } = require ('./base/functions/number'); // --------------------------------------------------------------------------- @@ -19,6 +19,7 @@ module.exports = class kraken extends Exchange { 'certified': true, 'pro': true, 'has': { + 'cancelAllOrders': true, 'cancelOrder': true, 'CORS': false, 'createDepositAddress': true, @@ -179,6 +180,7 @@ module.exports = class kraken extends Exchange { 'AddOrder', 'AddExport', 'Balance', + 'CancelAll', 'CancelOrder', 'ClosedOrders', 'DepositAddresses', @@ -206,6 +208,7 @@ module.exports = class kraken extends Exchange { }, 'commonCurrencies': { 'XBT': 'BTC', + 'XBT.M': 'BTC.M', // https://support.kraken.com/hc/en-us/articles/360039879471-What-is-Asset-S-and-Asset-M- 'XDG': 'DOGE', 'REPV2': 'REP', 'REP': 'REPV1', @@ -349,13 +352,17 @@ module.exports = class kraken extends Exchange { return result; } - safeCurrencyCode (currencyId, currency = undefined) { + safeCurrency (currencyId, currency = undefined) { if (currencyId.length > 3) { if ((currencyId.indexOf ('X') === 0) || (currencyId.indexOf ('Z') === 0)) { - currencyId = currencyId.slice (1); + if (currencyId.indexOf ('.') > 0) { + return super.safeCurrency (currencyId, currency); + } else { + currencyId = currencyId.slice (1); + } } } - return super.safeCurrencyCode (currencyId, currency); + return super.safeCurrency (currencyId, currency); } appendInactiveMarkets (result) { @@ -820,7 +827,7 @@ module.exports = class kraken extends Exchange { let amount = undefined; let cost = undefined; let id = undefined; - let order = undefined; + let orderId = undefined; let fee = undefined; let symbol = undefined; if (Array.isArray (trade)) { @@ -844,7 +851,7 @@ module.exports = class kraken extends Exchange { // delisted market ids go here market = this.getDelistedMarketById (marketId); } - order = trade['ordertxid']; + orderId = this.safeString (trade, 'ordertxid'); id = this.safeString2 (trade, 'id', 'postxid'); timestamp = this.safeTimestamp (trade, 'time'); side = this.safeString (trade, 'type'); @@ -872,7 +879,7 @@ module.exports = class kraken extends Exchange { } return { 'id': id, - 'order': order, + 'order': orderId, 'info': trade, 'timestamp': timestamp, 'datetime': this.iso8601 (timestamp), @@ -935,6 +942,7 @@ module.exports = class kraken extends Exchange { } async fetchBalance (params = {}) { + await this.loadMarkets (); const response = await this.privatePostBalance (params); const balances = this.safeValue (response, 'result', {}); const result = { 'info': balances }; @@ -959,18 +967,50 @@ module.exports = class kraken extends Exchange { 'volume': this.amountToPrecision (symbol, amount), }; const clientOrderId = this.safeString2 (params, 'userref', 'clientOrderId'); - const query = this.omit (params, [ 'userref', 'clientOrderId' ]); + params = this.omit (params, [ 'userref', 'clientOrderId' ]); if (clientOrderId !== undefined) { request['userref'] = clientOrderId; } - const priceIsDefined = (price !== undefined); - const marketOrder = (type === 'market'); - const limitOrder = (type === 'limit'); - const shouldIncludePrice = limitOrder || (!marketOrder && priceIsDefined); - if (shouldIncludePrice) { + // + // market + // limit (price = limit price) + // stop-loss (price = stop loss price) + // take-profit (price = take profit price) + // stop-loss-limit (price = stop loss trigger price, price2 = triggered limit price) + // take-profit-limit (price = take profit trigger price, price2 = triggered limit price) + // settle-position + // + if (type === 'limit') { request['price'] = this.priceToPrecision (symbol, price); + } else if ((type === 'stop-loss') || (type === 'take-profit')) { + const stopPrice = this.safeFloat2 (params, 'price', 'stopPrice', price); + if (stopPrice === undefined) { + throw new ArgumentsRequired (this.id + ' createOrder() requires a price argument or a price/stopPrice parameter for a ' + type + ' order'); + } else { + request['price'] = this.priceToPrecision (symbol, stopPrice); + } + } else if ((type === 'stop-loss-limit') || (type === 'take-profit-limit')) { + const stopPrice = this.safeFloat2 (params, 'price', 'stopPrice'); + const limitPrice = this.safeFloat (params, 'price2'); + const stopPriceDefined = (stopPrice !== undefined); + const limitPriceDefined = (limitPrice !== undefined); + if (stopPriceDefined && limitPriceDefined) { + request['price'] = this.priceToPrecision (symbol, stopPrice); + request['price2'] = this.priceToPrecision (symbol, limitPrice); + } else if ((price === undefined) || (!(stopPriceDefined || limitPriceDefined))) { + throw new ArgumentsRequired (this.id + ' createOrder() requires a price argument and/or price/stopPrice/price2 parameters for a ' + type + ' order'); + } else { + if (stopPriceDefined) { + request['price'] = this.priceToPrecision (symbol, stopPrice); + request['price2'] = this.priceToPrecision (symbol, price); + } else if (limitPriceDefined) { + request['price'] = this.priceToPrecision (symbol, price); + request['price2'] = this.priceToPrecision (symbol, limitPrice); + } + } } - const response = await this.privatePostAddOrder (this.extend (request, query)); + params = this.omit (params, [ 'price', 'stopPrice', 'price2' ]); + const response = await this.privatePostAddOrder (this.extend (request, params)); // // { // error: [], @@ -1133,6 +1173,7 @@ module.exports = class kraken extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -1199,8 +1240,11 @@ module.exports = class kraken extends Exchange { // } // } // - const orders = this.safeValue (response, 'result', []); - const order = this.parseOrder (this.extend ({ 'id': id }, orders[id])); + const result = this.safeValue (response, 'result', []); + if (!(id in result)) { + throw new OrderNotFound (this.id + ' fetchOrder() could not find order id ' + id); + } + const order = this.parseOrder (this.extend ({ 'id': id }, result[id])); return this.extend ({ 'info': response }, order); } @@ -1208,7 +1252,7 @@ module.exports = class kraken extends Exchange { const orderTrades = this.safeValue (params, 'trades'); const tradeIds = []; if (orderTrades === undefined) { - throw new ArgumentsRequired (this.id + " fetchOrderTrades requires a unified order structure in the params argument or a 'trades' param (an array of trade id strings)"); + throw new ArgumentsRequired (this.id + " fetchOrderTrades() requires a unified order structure in the params argument or a 'trades' param (an array of trade id strings)"); } else { for (let i = 0; i < orderTrades.length; i++) { const orderTrade = orderTrades[i]; @@ -1357,6 +1401,11 @@ module.exports = class kraken extends Exchange { return response; } + async cancelAllOrders (symbol = undefined, params = {}) { + await this.loadMarkets (); + return await this.privatePostCancelAll (params); + } + async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); const request = {}; @@ -1528,7 +1577,7 @@ module.exports = class kraken extends Exchange { async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { // https://www.kraken.com/en-us/help/api#deposit-status if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchDeposits requires a currency code argument'); + throw new ArgumentsRequired (this.id + ' fetchDeposits() requires a currency code argument'); } await this.loadMarkets (); const currency = this.currency (code); @@ -1571,7 +1620,7 @@ module.exports = class kraken extends Exchange { async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { // https://www.kraken.com/en-us/help/api#withdraw-status if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchWithdrawals requires a currency code argument'); + throw new ArgumentsRequired (this.id + ' fetchWithdrawals() requires a currency code argument'); } await this.loadMarkets (); const currency = this.currency (code); @@ -1662,7 +1711,65 @@ module.exports = class kraken extends Exchange { 'id': response['result'], }; } - throw new ExchangeError (this.id + " withdraw requires a 'key' parameter (withdrawal key name, as set up on your account)"); + throw new ExchangeError (this.id + " withdraw() requires a 'key' parameter (withdrawal key name, as set up on your account)"); + } + + async fetchPositions (symbols = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'txid': 'comma delimited list of transaction ids to restrict output to', + // 'docalcs': false, // whether or not to include profit/loss calculations + // 'consolidation': 'market', // what to consolidate the positions data around, market will consolidate positions based on market pair + }; + const response = await this.privatePostOpenPositions (this.extend (request, params)); + // + // no consolidation + // + // { + // error: [], + // result: { + // 'TGUFMY-FLESJ-VYIX3J': { + // ordertxid: "O3LRNU-ZKDG5-XNCDFR", + // posstatus: "open", + // pair: "ETHUSDT", + // time: 1611557231.4584, + // type: "buy", + // ordertype: "market", + // cost: "28.49800", + // fee: "0.07979", + // vol: "0.02000000", + // vol_closed: "0.00000000", + // margin: "14.24900", + // terms: "0.0200% per 4 hours", + // rollovertm: "1611571631", + // misc: "", + // oflags: "" + // } + // } + // } + // + // consolidation by market + // + // { + // error: [], + // result: [ + // { + // pair: "ETHUSDT", + // positions: "1", + // type: "buy", + // leverage: "2.00000", + // cost: "28.49800", + // fee: "0.07979", + // vol: "0.02000000", + // vol_closed: "0.00000000", + // margin: "14.24900" + // } + // ] + // } + // + const result = this.safeValue (response, 'result'); + // todo unify parsePosition/parsePositions + return result; } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { @@ -1717,6 +1824,12 @@ module.exports = class kraken extends Exchange { if (body.indexOf ('Invalid arguments:volume') >= 0) { throw new InvalidOrder (this.id + ' ' + body); } + if (body.indexOf ('Rate limit exceeded') >= 0) { + throw new RateLimitExceeded (this.id + ' ' + body); + } + if (response === undefined) { + return; + } if (body[0] === '{') { if (typeof response !== 'string') { if ('error' in response) { diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/kucoin.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/kucoin.js index 1d8270ec0..bcb058989 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/kucoin.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/kucoin.js @@ -20,30 +20,31 @@ module.exports = class kucoin extends Exchange { 'comment': 'Platform 2.0', 'has': { 'CORS': false, - 'fetchStatus': true, - 'fetchTime': true, - 'fetchMarkets': true, + 'cancelAllOrders': true, + 'cancelOrder': true, + 'createDepositAddress': true, + 'createOrder': true, + 'fetchAccounts': true, + 'fetchBalance': true, + 'fetchClosedOrders': true, 'fetchCurrencies': true, + 'fetchDepositAddress': true, + 'fetchDeposits': true, + 'fetchFundingFee': true, + 'fetchLedger': true, + 'fetchMarkets': true, + 'fetchMyTrades': true, + 'fetchOHLCV': true, + 'fetchOpenOrders': true, + 'fetchOrder': true, + 'fetchOrderBook': true, + 'fetchStatus': true, 'fetchTicker': true, 'fetchTickers': true, - 'fetchOrderBook': true, - 'fetchOrder': true, - 'fetchClosedOrders': true, - 'fetchOpenOrders': true, - 'fetchDepositAddress': true, - 'createDepositAddress': true, - 'withdraw': true, - 'fetchDeposits': true, - 'fetchWithdrawals': true, - 'fetchBalance': true, + 'fetchTime': true, 'fetchTrades': true, - 'fetchMyTrades': true, - 'createOrder': true, - 'cancelOrder': true, - 'fetchAccounts': true, - 'fetchFundingFee': true, - 'fetchOHLCV': true, - 'fetchLedger': true, + 'fetchWithdrawals': true, + 'withdraw': true, }, 'urls': { 'logo': 'https://user-images.githubusercontent.com/51840849/87295558-132aaf80-c50e-11ea-9801-a2fb0c57c799.jpg', @@ -74,6 +75,7 @@ module.exports = class kucoin extends Exchange { 'symbols', 'markets', 'market/allTickers', + 'market/orderbook/level{level}_{limit}', 'market/orderbook/level{level}', 'market/orderbook/level2', 'market/orderbook/level2_20', @@ -110,6 +112,7 @@ module.exports = class kucoin extends Exchange { 'withdrawals', 'withdrawals/quotas', 'orders', + 'order/client-order/{clientOid}', 'orders/{orderId}', 'limit/orders', 'fills', @@ -125,6 +128,9 @@ module.exports = class kucoin extends Exchange { 'margin/lend/assets', 'margin/market', 'margin/trade/last', + 'stop-order/{orderId}', + 'stop-order', + 'stop-order/queryOrderByClientOid', ], 'post': [ 'accounts', @@ -135,17 +141,23 @@ module.exports = class kucoin extends Exchange { 'orders', 'orders/multi', 'margin/borrow', + 'margin/order', 'margin/repay/all', 'margin/repay/single', 'margin/lend', 'margin/toggle-auto-lend', 'bullet-private', + 'stop-order', ], 'delete': [ 'withdrawals/{withdrawalId}', 'orders', + 'orders/client-order/{clientOid}', 'orders/{orderId}', 'margin/lend/{orderId}', + 'stop-order/cancelOrderByClientOid', + 'stop-order/{orderId}', + 'stop-order/cancel', ], }, }, @@ -236,10 +248,12 @@ module.exports = class kucoin extends Exchange { 'public': { 'GET': { 'status': 'v1', - 'market/orderbook/level{level}': 'v1', 'market/orderbook/level2': 'v2', + 'market/orderbook/level3': 'v2', 'market/orderbook/level2_20': 'v1', 'market/orderbook/level2_100': 'v1', + 'market/orderbook/level{level}': 'v2', + 'market/orderbook/level{level}_{limit}': 'v1', }, }, 'private': { @@ -682,7 +696,10 @@ module.exports = class kucoin extends Exchange { address = address.replace ('bitcoincash:', ''); } const tag = this.safeString (data, 'memo'); - this.checkAddress (address); + if (code !== 'NIM') { + // contains spaces + this.checkAddress (address); + } return { 'info': response, 'currency': code, @@ -699,13 +716,12 @@ module.exports = class kucoin extends Exchange { // BCH {"code":"200000","data":{"address":"bitcoincash:qza3m4nj9rx7l9r0cdadfqxts6f92shvhvr5ls4q7z","memo":""}} // BTC {"code":"200000","data":{"address":"36SjucKqQpQSvsak9A7h6qzFjrVXpRNZhE","memo":""}} const data = this.safeValue (response, 'data', {}); - let address = this.safeString (data, 'address'); - // BCH/BSV is returned with a "bitcoincash:" prefix, which we cut off here and only keep the address - if (address !== undefined) { - address = address.replace ('bitcoincash:', ''); - } + const address = this.safeString (data, 'address'); const tag = this.safeString (data, 'memo'); - this.checkAddress (address); + if (code !== 'NIM') { + // contains spaces + this.checkAddress (address); + } return { 'info': response, 'currency': code, @@ -719,20 +735,22 @@ module.exports = class kucoin extends Exchange { } async fetchOrderBook (symbol, limit = undefined, params = {}) { - const level = this.safeInteger (params, 'level', 2); - let levelLimit = level.toString (); - if (levelLimit === '2') { - if (limit !== undefined) { - if ((limit !== 20) && (limit !== 100)) { - throw new ExchangeError (this.id + ' fetchOrderBook limit argument must be undefined, 20 or 100'); - } - levelLimit += '_' + limit.toString (); - } - } await this.loadMarkets (); const marketId = this.marketId (symbol); - const request = { 'symbol': marketId, 'level': levelLimit }; - const response = await this.publicGetMarketOrderbookLevelLevel (this.extend (request, params)); + const level = this.safeInteger (params, 'level', 2); + const request = { 'symbol': marketId, 'level': level }; + let method = 'publicGetMarketOrderbookLevelLevel'; + if (level === 2) { + if (limit !== undefined) { + if ((limit === 20) || (limit === 100)) { + request['limit'] = limit; + method = 'publicGetMarketOrderbookLevelLevelLimit'; + } else { + throw new ExchangeError (this.id + ' fetchOrderBook limit argument must be undefined, 20 or 100'); + } + } + } + const response = await this[method] (this.extend (request, params)); // // 'market/orderbook/level2' // 'market/orderbook/level2_20' @@ -794,7 +812,29 @@ module.exports = class kucoin extends Exchange { 'clientOid': clientOrderId, 'side': side, 'symbol': marketId, - 'type': type, + 'type': type, // limit or market + // 'remark': '', // optional remark for the order, length cannot exceed 100 utf8 characters + // 'stp': '', // self trade prevention, CN, CO, CB or DC + // To improve the system performance and to accelerate order placing and processing, KuCoin has added a new interface for margin orders + // The current one will no longer accept margin orders by May 1st, 2021 (UTC) + // At the time, KuCoin will notify users via the announcement, please pay attention to it + // 'tradeType': 'TRADE', // TRADE, MARGIN_TRADE // not used with margin orders + // limit orders --------------------------------------------------- + // 'timeInForce': 'GTC', // GTC, GTT, IOC, or FOK (default is GTC), limit orders only + // 'cancelAfter': long, // cancel after n seconds, requires timeInForce to be GTT + // 'postOnly': false, // Post only flag, invalid when timeInForce is IOC or FOK + // 'hidden': false, // Order will not be displayed in the order book + // 'iceberg': false, // Only a portion of the order is displayed in the order book + // 'visibleSize': this.amountToPrecision (symbol, visibleSize), // The maximum visible size of an iceberg order + // market orders -------------------------------------------------- + // 'size': this.amountToPrecision (symbol, amount), // Amount in base currency + // 'funds': this.costToPrecision (symbol, cost), // Amount of quote currency to use + // stop orders ---------------------------------------------------- + // 'stop': 'loss', // loss or entry, the default is loss, requires stopPrice + // 'stopPrice': this.priceToPrecision (symbol, amount), // need to be defined if stop is specified + // margin orders -------------------------------------------------- + // 'marginMode': 'cross', // cross (cross mode) and isolated (isolated mode), set to cross by default, the isolated mode will be released soon, stay tuned + // 'autoBorrow': false, // The system will first borrow you funds at the optimal interest rate and then place an order for you }; if (type !== 'market') { request['price'] = this.priceToPrecision (symbol, price); @@ -846,9 +886,32 @@ module.exports = class kucoin extends Exchange { } async cancelOrder (id, symbol = undefined, params = {}) { - const request = { 'orderId': id }; - const response = await this.privateDeleteOrdersOrderId (this.extend (request, params)); - return response; + await this.loadMarkets (); + const request = {}; + const clientOrderId = this.safeString2 (params, 'clientOid', 'clientOrderId'); + let method = 'privateDeleteOrdersOrderId'; + if (clientOrderId !== undefined) { + request['clientOid'] = clientOrderId; + method = 'privateDeleteOrdersClientOrderClientOid'; + } else { + request['orderId'] = id; + } + params = this.omit (params, [ 'clientOid', 'clientOrderId' ]); + return await this[method] (this.extend (request, params)); + } + + async cancelAllOrders (symbol = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'symbol': market['id'], + // 'tradeType': 'TRADE', // default is to cancel the spot trading order + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['symbol'] = market['id']; + } + return await this.privateDeleteOrders (this.extend (request, params)); } async fetchOrdersByStatus (status, symbol = undefined, since = undefined, limit = undefined, params = {}) { @@ -926,20 +989,27 @@ module.exports = class kucoin extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { await this.loadMarkets (); - // a special case for undefined ids - // otherwise a wrong endpoint for all orders will be triggered - // https://github.com/ccxt/ccxt/issues/7234 - if (id === undefined) { - throw new InvalidOrder (this.id + ' fetchOrder requires an order id'); + const request = {}; + const clientOrderId = this.safeString2 (params, 'clientOid', 'clientOrderId'); + let method = 'privateGetOrdersOrderId'; + if (clientOrderId !== undefined) { + request['clientOid'] = clientOrderId; + method = 'privateGetOrdersClientOrderClientOid'; + } else { + // a special case for undefined ids + // otherwise a wrong endpoint for all orders will be triggered + // https://github.com/ccxt/ccxt/issues/7234 + if (id === undefined) { + throw new InvalidOrder (this.id + ' fetchOrder() requires an order id'); + } + request['orderId'] = id; } - const request = { - 'orderId': id, - }; + params = this.omit (params, [ 'clientOid', 'clientOrderId' ]); + const response = await this[method] (this.extend (request, params)); let market = undefined; if (symbol !== undefined) { market = this.market (symbol); } - const response = await this.privateGetOrdersOrderId (this.extend (request, params)); const responseData = this.safeValue (response, 'data'); return this.parseOrder (responseData, market); } @@ -1016,12 +1086,14 @@ module.exports = class kucoin extends Exchange { const clientOrderId = this.safeString (order, 'clientOid'); const timeInForce = this.safeString (order, 'timeInForce'); const stopPrice = this.safeFloat (order, 'stopPrice'); + const postOnly = this.safeValue (order, 'postOnly'); return { 'id': orderId, 'clientOrderId': clientOrderId, 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'amount': amount, 'price': price, @@ -1350,6 +1422,7 @@ module.exports = class kucoin extends Exchange { // "status": "SUCCESS", // "createdAt": 1544178843000, // "updatedAt": 1544178891000 + // "remark":"foobar" // } // // fetchWithdrawals @@ -1366,6 +1439,7 @@ module.exports = class kucoin extends Exchange { // "status": "FAILURE", // "createdAt": 1546503758000, // "updatedAt": 1546504603000 + // "remark":"foobar" // } // const currencyId = this.safeString (transaction, 'currency'); @@ -1416,20 +1490,26 @@ module.exports = class kucoin extends Exchange { updated = updated * 1000; } } + const comment = this.safeString (transaction, 'remark'); return { 'id': id, + 'info': transaction, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), 'address': address, + 'addressTo': address, + 'addressFrom': undefined, 'tag': tag, + 'tagTo': tag, + 'tagFrom': undefined, 'currency': code, 'amount': amount, 'txid': txid, 'type': type, 'status': status, + 'comment': comment, 'fee': fee, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), 'updated': updated, - 'info': transaction, }; } @@ -1477,6 +1557,7 @@ module.exports = class kucoin extends Exchange { // "status": "SUCCESS", // "createdAt": 1544178843000, // "updatedAt": 1544178891000 + // "remark":"foobar" // }, // //-------------------------------------------------- // // version 1 (historical) deposit response structure @@ -1606,7 +1687,7 @@ module.exports = class kucoin extends Exchange { async fetchLedger (code = undefined, since = undefined, limit = undefined, params = {}) { if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchLedger requires a code param'); + throw new ArgumentsRequired (this.id + ' fetchLedger() requires a code param'); } await this.loadMarkets (); await this.loadAccounts (); @@ -1749,7 +1830,7 @@ module.exports = class kucoin extends Exchange { // † ↑ // const versions = this.safeValue (this.options, 'versions', {}); - const apiVersions = this.safeValue (versions, api); + const apiVersions = this.safeValue (versions, api, {}); const methodVersions = this.safeValue (apiVersions, method, {}); const defaultVersion = this.safeString (methodVersions, path, this.options['version']); const version = this.safeString (params, 'version', defaultVersion); @@ -1772,10 +1853,17 @@ module.exports = class kucoin extends Exchange { this.checkRequiredCredentials (); const timestamp = this.nonce ().toString (); headers = this.extend ({ + 'KC-API-KEY-VERSION': '2', 'KC-API-KEY': this.apiKey, 'KC-API-TIMESTAMP': timestamp, - 'KC-API-PASSPHRASE': this.password, }, headers); + const apiKeyVersion = this.safeString (headers, 'KC-API-KEY-VERSION'); + if (apiKeyVersion === '2') { + const passphrase = this.hmac (this.encode (this.password), this.encode (this.secret), 'sha256', 'base64'); + headers['KC-API-PASSPHRASE'] = passphrase; + } else { + headers['KC-API-PASSPHRASE'] = this.password; + } const payload = timestamp + method + endpoint + endpart; const signature = this.hmac (this.encode (payload), this.encode (this.secret), 'sha256', 'base64'); headers['KC-API-SIGN'] = signature; diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/kuna.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/kuna.js index 8b80f40a4..e652171d1 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/kuna.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/kuna.js @@ -120,7 +120,7 @@ module.exports = class kuna extends acx { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -182,7 +182,7 @@ module.exports = class kuna extends acx { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/latoken.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/latoken.js index f7e8b4a69..45cb5951d 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/latoken.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/latoken.js @@ -534,7 +534,7 @@ module.exports = class latoken extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -646,6 +646,7 @@ module.exports = class latoken extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -680,7 +681,7 @@ module.exports = class latoken extends Exchange { async fetchOrdersWithMethod (method, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrdersWithMethod requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrdersWithMethod() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -796,7 +797,7 @@ module.exports = class latoken extends Exchange { async cancelAllOrders (symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelAllOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelAllOrders() requires a symbol argument'); } await this.loadMarkets (); const marketId = this.marketId (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/lbank.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/lbank.js index c90433927..9b39a0236 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/lbank.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/lbank.js @@ -358,10 +358,10 @@ module.exports = class lbank extends Exchange { await this.loadMarkets (); const market = this.market (symbol); if (since === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a `since` argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a `since` argument'); } if (limit === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a `limit` argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a `limit` argument'); } const request = { 'symbol': market['id'], @@ -486,6 +486,7 @@ module.exports = class lbank extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/liquid.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/liquid.js index ddb1e0acc..732eda853 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/liquid.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/liquid.js @@ -186,6 +186,7 @@ module.exports = class liquid extends Exchange { 'must_be_positive': InvalidOrder, 'less_than_order_size': InvalidOrder, 'price_too_high': InvalidOrder, + 'price_too_small': InvalidOrder, // {"errors":{"order":["price_too_small"]}} }, 'commonCurrencies': { 'WIN': 'WCOIN', @@ -723,7 +724,7 @@ module.exports = class liquid extends Exchange { async editOrder (id, symbol, type, side, amount, price = undefined, params = {}) { await this.loadMarkets (); if (price === undefined) { - throw new ArgumentsRequired (this.id + ' editOrder requires the price argument'); + throw new ArgumentsRequired (this.id + ' editOrder() requires the price argument'); } const request = { 'order': { @@ -864,6 +865,7 @@ module.exports = class liquid extends Exchange { 'lastTradeTimestamp': lastTradeTimestamp, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'status': status, 'symbol': symbol, 'side': side, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/livecoin.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/livecoin.js deleted file mode 100644 index 0a8aa1aa0..000000000 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/livecoin.js +++ /dev/null @@ -1,931 +0,0 @@ -'use strict'; - -// --------------------------------------------------------------------------- - -const Exchange = require ('./base/Exchange'); -const { ExchangeError, OnMaintenance, BadResponse, ArgumentsRequired, AuthenticationError, NotSupported, InvalidOrder, OrderNotFound, ExchangeNotAvailable, RateLimitExceeded, InsufficientFunds } = require ('./base/errors'); -const { TRUNCATE, DECIMAL_PLACES } = require ('./base/functions/number'); - -// --------------------------------------------------------------------------- - -module.exports = class livecoin extends Exchange { - describe () { - return this.deepExtend (super.describe (), { - 'id': 'livecoin', - 'name': 'LiveCoin', - 'countries': [ 'US', 'UK', 'RU' ], - 'rateLimit': 1000, - 'userAgent': this.userAgents['chrome'], - 'has': { - 'cancelOrder': true, - 'CORS': false, - 'createOrder': true, - 'fetchBalance': true, - 'fetchClosedOrders': true, - 'fetchCurrencies': true, - 'fetchDepositAddress': true, - 'fetchDeposits': true, - 'fetchMarkets': true, - 'fetchMyTrades': true, - 'fetchOpenOrders': true, - 'fetchOrder': true, - 'fetchOrderBook': true, - 'fetchOrders': true, - 'fetchTicker': true, - 'fetchTickers': true, - 'fetchTrades': true, - 'fetchTradingFee': true, - 'fetchTradingFees': true, - 'fetchWithdrawals': true, - 'withdraw': true, - }, - 'urls': { - 'logo': 'https://user-images.githubusercontent.com/1294454/27980768-f22fc424-638a-11e7-89c9-6010a54ff9be.jpg', - 'api': 'https://api.livecoin.net', - 'www': 'https://www.livecoin.net', - 'doc': 'https://www.livecoin.net/api?lang=en', - 'referral': 'https://livecoin.net/?from=Livecoin-CQ1hfx44', - }, - 'api': { - 'public': { - 'get': [ - 'exchange/all/order_book', - 'exchange/last_trades', - 'exchange/maxbid_minask', - 'exchange/order_book', - 'exchange/restrictions', - 'exchange/ticker', // omit params to get all tickers at once - 'info/coinInfo', - ], - }, - 'private': { - 'get': [ - 'exchange/client_orders', - 'exchange/order', - 'exchange/trades', - 'exchange/commission', - 'exchange/commissionCommonInfo', - 'payment/balances', - 'payment/balance', - 'payment/get/address', - 'payment/history/size', - 'payment/history/transactions', - ], - 'post': [ - 'exchange/buylimit', - 'exchange/buymarket', - 'exchange/cancellimit', - 'exchange/selllimit', - 'exchange/sellmarket', - 'payment/out/capitalist', - 'payment/out/card', - 'payment/out/coin', - 'payment/out/okpay', - 'payment/out/payeer', - 'payment/out/perfectmoney', - 'payment/voucher/amount', - 'payment/voucher/make', - 'payment/voucher/redeem', - ], - }, - }, - 'fees': { - 'trading': { - 'tierBased': false, - 'percentage': true, - 'maker': 0.18 / 100, - 'taker': 0.18 / 100, - }, - }, - 'commonCurrencies': { - 'BIT': 'First Bitcoin', - 'BTCH': 'Bithash', - 'CPC': 'Capricoin', - 'CBC': 'CryptoBossCoin', // conflict with CBC (CashBet Coin) - 'CPT': 'Cryptos', // conflict with CPT = Contents Protocol https://github.com/ccxt/ccxt/issues/4920 and https://github.com/ccxt/ccxt/issues/6081 - 'EDR': 'E-Dinar Coin', // conflicts with EDR for Endor Protocol and EDRCoin - 'eETT': 'EETT', - 'FirstBlood': '1ST', - 'FORTYTWO': '42', - 'LEO': 'LeoCoin', - 'MIOTA': 'IOTA', // https://github.com/ccxt/ccxt/issues/7487 - 'ORE': 'Orectic', - 'PLN': 'Plutaneum', // conflict with Polish Zloty - 'RUR': 'RUB', - 'SCT': 'SpaceCoin', - 'TPI': 'ThaneCoin', - 'UNUS': 'LEO', // https://github.com/ccxt/ccxt/issues/7496 - 'WAX': 'WAXP', - 'wETT': 'WETT', - 'XBT': 'Bricktox', - }, - 'exceptions': { - 'exact': { - '1': ExchangeError, - '10': AuthenticationError, - '100': ExchangeError, // invalid parameters - '101': AuthenticationError, - '102': AuthenticationError, - '103': InvalidOrder, // invalid currency - '104': InvalidOrder, // invalid amount - '105': InvalidOrder, // unable to block funds - '11': AuthenticationError, - '12': AuthenticationError, - '2': AuthenticationError, // "User not found" - '20': AuthenticationError, - '30': AuthenticationError, - '31': NotSupported, - '32': ExchangeError, - '429': RateLimitExceeded, - '503': ExchangeNotAvailable, - }, - 'broad': { - 'insufficient funds': InsufficientFunds, // https://github.com/ccxt/ccxt/issues/5749 - 'NOT FOUND': OrderNotFound, - 'Cannot find order': OrderNotFound, - 'Minimal amount is': InvalidOrder, - }, - }, - }); - } - - async fetchMarkets (params = {}) { - const response = await this.publicGetExchangeTicker (params); - const restrictions = await this.publicGetExchangeRestrictions (); - const restrictionsById = this.indexBy (restrictions['restrictions'], 'currencyPair'); - const result = []; - for (let i = 0; i < response.length; i++) { - const market = response[i]; - const id = this.safeString (market, 'symbol'); - const [ baseId, quoteId ] = id.split ('/'); - const base = this.safeCurrencyCode (baseId); - const quote = this.safeCurrencyCode (quoteId); - const symbol = base + '/' + quote; - const coinRestrictions = this.safeValue (restrictionsById, symbol); - const precision = { - 'price': 5, - 'amount': 8, - 'cost': 8, - }; - const limits = { - 'amount': { - 'min': Math.pow (10, -precision['amount']), - 'max': Math.pow (10, precision['amount']), - }, - }; - if (coinRestrictions) { - precision['price'] = this.safeInteger (coinRestrictions, 'priceScale', 5); - limits['amount']['min'] = this.safeFloat (coinRestrictions, 'minLimitQuantity', limits['amount']['min']); - } - limits['price'] = { - 'min': Math.pow (10, -precision['price']), - 'max': Math.pow (10, precision['price']), - }; - result.push ({ - 'id': id, - 'symbol': symbol, - 'base': base, - 'quote': quote, - 'baseId': baseId, - 'quoteId': quoteId, - 'active': true, - 'precision': precision, - 'limits': limits, - 'info': market, - }); - } - return result; - } - - async fetchCurrencies (params = {}) { - const response = await this.publicGetInfoCoinInfo (params); - if (typeof response === 'string') { - if (response.indexOf ('site is under maintenance') >= 0) { - throw new OnMaintenance (this.id + ' fetchCurrencies() failed to fetch the currencies, the exchange is on maintenance'); - } else { - throw new BadResponse (this.id + ' fetchCurrencies() failed to fetch the currencies'); - } - } - const currencies = this.safeValue (response, 'info'); - let result = {}; - for (let i = 0; i < currencies.length; i++) { - const currency = currencies[i]; - const id = this.safeString (currency, 'symbol'); - // todo: will need to rethink the fees - // to add support for multiple withdrawal/deposit methods and - // differentiated fees for each particular method - const code = this.safeCurrencyCode (id); - const precision = 8; // default precision, todo: fix "magic constants" - const walletStatus = this.safeString (currency, 'walletStatus'); - const active = (walletStatus === 'normal'); - const name = this.safeString (currency, 'name'); - const fee = this.safeFloat (currency, 'withdrawFee'); - result[code] = { - 'id': id, - 'code': code, - 'info': currency, - 'name': name, - 'active': active, - 'fee': fee, - 'precision': precision, - 'limits': { - 'amount': { - 'min': this.safeFloat (currency, 'minOrderAmount'), - 'max': Math.pow (10, precision), - }, - 'price': { - 'min': Math.pow (10, -precision), - 'max': Math.pow (10, precision), - }, - 'cost': { - 'min': this.safeFloat (currency, 'minOrderAmount'), - 'max': undefined, - }, - 'withdraw': { - 'min': this.safeFloat (currency, 'minWithdrawAmount'), - 'max': Math.pow (10, precision), - }, - 'deposit': { - 'min': this.safeFloat (currency, 'minDepositAmount'), - 'max': undefined, - }, - }, - }; - } - result = this.appendFiatCurrencies (result); - return result; - } - - appendFiatCurrencies (result) { - const precision = 8; - const defaults = { - 'info': undefined, - 'active': true, - 'fee': undefined, - 'precision': precision, - 'limits': { - 'withdraw': { 'min': undefined, 'max': undefined }, - 'deposit': { 'min': undefined, 'max': undefined }, - 'amount': { 'min': undefined, 'max': undefined }, - 'cost': { 'min': undefined, 'max': undefined }, - 'price': { - 'min': Math.pow (10, -precision), - 'max': Math.pow (10, precision), - }, - }, - 'id': undefined, - 'code': undefined, - 'name': undefined, - }; - const currencies = [ - { 'id': 'USD', 'code': 'USD', 'name': 'US Dollar' }, - { 'id': 'EUR', 'code': 'EUR', 'name': 'Euro' }, - // { 'id': 'RUR', 'code': 'RUB', 'name': 'Russian ruble' }, - ]; - currencies.push ({ - 'id': 'RUR', - 'code': this.safeCurrencyCode ('RUR'), - 'name': 'Russian ruble', - }); - for (let i = 0; i < currencies.length; i++) { - const currency = currencies[i]; - const code = currency['code']; - result[code] = this.extend (defaults, currency); - } - return result; - } - - async fetchBalance (params = {}) { - await this.loadMarkets (); - const response = await this.privateGetPaymentBalances (params); - const result = { 'info': response }; - for (let i = 0; i < response.length; i++) { - const balance = response[i]; - const currencyId = this.safeString (balance, 'currency'); - const code = this.safeCurrencyCode (currencyId); - let account = undefined; - if (code in result) { - account = result[code]; - } else { - account = this.account (); - } - if (balance['type'] === 'total') { - account['total'] = this.safeFloat (balance, 'value'); - } - if (balance['type'] === 'available') { - account['free'] = this.safeFloat (balance, 'value'); - } - if (balance['type'] === 'trade') { - account['used'] = this.safeFloat (balance, 'value'); - } - result[code] = account; - } - return this.parseBalance (result); - } - - async fetchTradingFees (params = {}) { - await this.loadMarkets (); - const response = await this.privateGetExchangeCommissionCommonInfo (params); - const commission = this.safeFloat (response, 'commission'); - return { - 'info': response, - 'maker': commission, - 'taker': commission, - }; - } - - async fetchOrderBook (symbol, limit = undefined, params = {}) { - await this.loadMarkets (); - const request = { - 'currencyPair': this.marketId (symbol), - 'groupByPrice': 'false', - }; - if (limit !== undefined) { - request['depth'] = limit; // 100 - } - const response = await this.publicGetExchangeOrderBook (this.extend (request, params)); - const timestamp = this.safeInteger (response, 'timestamp'); - return this.parseOrderBook (response, timestamp); - } - - parseTicker (ticker, market = undefined) { - const timestamp = this.milliseconds (); - let symbol = undefined; - if (market) { - symbol = market['symbol']; - } - const vwap = this.safeFloat (ticker, 'vwap'); - const baseVolume = this.safeFloat (ticker, 'volume'); - let quoteVolume = undefined; - if (baseVolume !== undefined && vwap !== undefined) { - quoteVolume = baseVolume * vwap; - } - const last = this.safeFloat (ticker, 'last'); - return { - 'symbol': symbol, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'high': this.safeFloat (ticker, 'high'), - 'low': this.safeFloat (ticker, 'low'), - 'bid': this.safeFloat (ticker, 'best_bid'), - 'bidVolume': undefined, - 'ask': this.safeFloat (ticker, 'best_ask'), - 'askVolume': undefined, - 'vwap': this.safeFloat (ticker, 'vwap'), - 'open': undefined, - 'close': last, - 'last': last, - 'previousClose': undefined, - 'change': undefined, - 'percentage': undefined, - 'average': undefined, - 'baseVolume': baseVolume, - 'quoteVolume': quoteVolume, - 'info': ticker, - }; - } - - async fetchTickers (symbols = undefined, params = {}) { - await this.loadMarkets (); - const response = await this.publicGetExchangeTicker (params); - const tickers = this.indexBy (response, 'symbol'); - const ids = Object.keys (tickers); - const result = {}; - for (let i = 0; i < ids.length; i++) { - const id = ids[i]; - const market = this.safeMarket (id); - const symbol = market['symbol']; - const ticker = tickers[id]; - result[symbol] = this.parseTicker (ticker, market); - } - return this.filterByArray (result, 'symbol', symbols); - } - - async fetchTicker (symbol, params = {}) { - await this.loadMarkets (); - const market = this.market (symbol); - const request = { - 'currencyPair': market['id'], - }; - const ticker = await this.publicGetExchangeTicker (this.extend (request, params)); - return this.parseTicker (ticker, market); - } - - parseTrade (trade, market = undefined) { - // - // fetchTrades (public) - // - // { - // "time": 1409935047, - // "id": 99451, - // "price": 350, - // "quantity": 2.85714285, - // "type": "BUY" - // } - // - // fetchMyTrades (private) - // - // { - // "datetime": 1435844369, - // "id": 30651619, - // "type": "sell", - // "symbol": "BTC/EUR", - // "price": 230, - // "quantity": 0.1, - // "commission": 0, - // "clientorderid": 1472837650 - // } - const timestamp = this.safeTimestamp2 (trade, 'time', 'datetime'); - let fee = undefined; - const feeCost = this.safeFloat (trade, 'commission'); - if (feeCost !== undefined) { - const feeCurrency = market ? market['quote'] : undefined; - fee = { - 'cost': feeCost, - 'currency': feeCurrency, - }; - } - const orderId = this.safeString (trade, 'clientorderid'); - const id = this.safeString (trade, 'id'); - const side = this.safeStringLower (trade, 'type'); - const amount = this.safeFloat (trade, 'quantity'); - const price = this.safeFloat (trade, 'price'); - let cost = undefined; - if (amount !== undefined) { - if (price !== undefined) { - cost = amount * price; - } - } - const marketId = this.safeString (trade, 'symbol'); - const symbol = this.safeSymbol (marketId, market, '/'); - return { - 'id': id, - 'info': trade, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'symbol': symbol, - 'order': orderId, - 'type': undefined, - 'side': side, - 'takerOrMaker': undefined, - 'price': price, - 'amount': amount, - 'cost': cost, - 'fee': fee, - }; - } - - async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const request = { - // 'currencyPair': market['id'], - // 'orderDesc': 'true', // or 'false', if true then new orders will be first, otherwise old orders will be first. - // 'offset': 0, // page offset, position of the first item on the page - }; - let market = undefined; - if (symbol !== undefined) { - market = this.market (symbol); - request['currencyPair'] = market['id']; - } - if (limit !== undefined) { - request['limit'] = limit; - } - const response = await this.privateGetExchangeTrades (this.extend (request, params)); - // - // [ - // { - // "datetime": 1435844369, - // "id": 30651619, - // "type": "sell", - // "symbol": "BTC/EUR", - // "price": 230, - // "quantity": 0.1, - // "commission": 0, - // "clientorderid": 1472837650 - // }, - // { - // "datetime": 1435844356, - // "id": 30651618, - // "type": "sell", - // "symbol": "BTC/EUR", - // "price": 230, - // "quantity": 0.2, - // "commission": 0.092, - // "clientorderid": 1472837651 - // } - // ] - // - return this.parseTrades (response, market, since, limit); - } - - async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const market = this.market (symbol); - const request = { - 'currencyPair': market['id'], - }; - const response = await this.publicGetExchangeLastTrades (this.extend (request, params)); - // - // [ - // { - // "time": 1409935047, - // "id": 99451, - // "price": 350, - // "quantity": 2.85714285, - // "type": "BUY" - // }, - // { - // "time": 1409934792, - // "id": 99450, - // "price": 350, - // "quantity": 0.57142857, - // "type": "SELL" - // } - // ] - // - return this.parseTrades (response, market, since, limit); - } - - async fetchOrder (id, symbol = undefined, params = {}) { - await this.loadMarkets (); - const request = { - 'orderId': id, - }; - const response = await this.privateGetExchangeOrder (this.extend (request, params)); - return this.parseOrder (response); - } - - parseOrderStatus (status) { - const statuses = { - 'OPEN': 'open', - 'PARTIALLY_FILLED': 'open', - 'EXECUTED': 'closed', - 'CANCELLED': 'canceled', - 'PARTIALLY_FILLED_AND_CANCELLED': 'canceled', - }; - return this.safeString (statuses, status, status); - } - - parseOrder (order, market = undefined) { - let timestamp = undefined; - if ('lastModificationTime' in order) { - timestamp = this.safeString (order, 'lastModificationTime'); - if (timestamp !== undefined) { - if (timestamp.indexOf ('T') >= 0) { - timestamp = this.parse8601 (timestamp); - } else { - timestamp = this.safeInteger (order, 'lastModificationTime'); - } - } - } - // TODO currently not supported by livecoin - // let trades = this.parseTrades (order['trades'], market, since, limit); - const trades = undefined; - const status = this.parseOrderStatus (this.safeString2 (order, 'status', 'orderStatus')); - const marketId = this.safeString2 (order, 'symbol', 'currencyPair'); - const symbol = this.safeSymbol (marketId, market, '/'); - let type = this.safeStringLower (order, 'type'); - let side = undefined; - if (type !== undefined) { - const orderType = type.split ('_'); - type = orderType[0]; - side = orderType[1]; - } - const price = this.safeFloat (order, 'price'); - // of the next two lines the latter overrides the former, if present in the order structure - let remaining = this.safeFloat (order, 'remainingQuantity'); - remaining = this.safeFloat (order, 'remaining_quantity', remaining); - const amount = this.safeFloat (order, 'quantity', remaining); - let filled = undefined; - if (remaining !== undefined) { - filled = amount - remaining; - } - let cost = undefined; - if (filled !== undefined && price !== undefined) { - cost = filled * price; - } - const feeRate = this.safeFloat (order, 'commission_rate'); - let feeCost = undefined; - if (cost !== undefined && feeRate !== undefined) { - feeCost = cost * feeRate; - } - if ((market === undefined) && (symbol in this.markets)) { - market = this.markets[symbol]; - } - let feeCurrency = undefined; - if (market !== undefined) { - feeCurrency = market['quote']; - } - return { - 'info': order, - 'id': order['id'], - 'clientOrderId': undefined, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'lastTradeTimestamp': undefined, - 'status': status, - 'symbol': symbol, - 'type': type, - 'timeInForce': undefined, - 'side': side, - 'price': price, - 'stopPrice': undefined, - 'amount': amount, - 'cost': cost, - 'filled': filled, - 'remaining': remaining, - 'trades': trades, - 'fee': { - 'cost': feeCost, - 'currency': feeCurrency, - 'rate': feeRate, - }, - 'average': undefined, - }; - } - - async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - let market = undefined; - const request = {}; - if (symbol !== undefined) { - market = this.market (symbol); - request['currencyPair'] = market['id']; - } - if (since !== undefined) { - request['issuedFrom'] = parseInt (since); - } - if (limit !== undefined) { - request['endRow'] = limit - 1; - } - const response = await this.privateGetExchangeClientOrders (this.extend (request, params)); - const result = []; - let rawOrders = []; - if (response['data']) { - rawOrders = response['data']; - } - for (let i = 0; i < rawOrders.length; i++) { - const order = rawOrders[i]; - result.push (this.parseOrder (order, market)); - } - return this.sortBy (result, 'timestamp'); - } - - async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - const request = { - 'openClosed': 'OPEN', - }; - return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); - } - - async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - const request = { - 'openClosed': 'CLOSED', - }; - return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); - } - - async createOrder (symbol, type, side, amount, price = undefined, params = {}) { - await this.loadMarkets (); - const method = 'privatePostExchange' + this.capitalize (side) + type; - const market = this.market (symbol); - const request = { - 'quantity': this.amountToPrecision (symbol, amount), - 'currencyPair': market['id'], - }; - if (type === 'limit') { - request['price'] = this.priceToPrecision (symbol, price); - } - const response = await this[method] (this.extend (request, params)); - const result = { - 'info': response, - 'id': response['orderId'].toString (), - }; - const success = this.safeValue (response, 'success'); - if (success) { - result['status'] = 'open'; - } - return result; - } - - async cancelOrder (id, symbol = undefined, params = {}) { - if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); - } - await this.loadMarkets (); - const market = this.market (symbol); - const request = { - 'orderId': id, - 'currencyPair': market['id'], - }; - const response = await this.privatePostExchangeCancellimit (this.extend (request, params)); - const message = this.safeString (response, 'message', this.json (response)); - if ('success' in response) { - if (!response['success']) { - throw new InvalidOrder (message); - } else if ('cancelled' in response) { - if (response['cancelled']) { - return { - 'status': 'canceled', - 'info': response, - }; - } else { - throw new OrderNotFound (message); - } - } - } - throw new ExchangeError (this.id + ' cancelOrder() failed: ' + this.json (response)); - } - - async withdraw (code, amount, address, tag = undefined, params = {}) { - // Sometimes the response with be { key: null } for all keys. - // An example is if you attempt to withdraw more than is allowed when withdrawal fees are considered. - this.checkAddress (address); - await this.loadMarkets (); - const currency = this.currency (code); - let wallet = address; - if (tag !== undefined) { - wallet += '::' + tag; - } - const request = { - 'amount': this.decimalToPrecision (amount, TRUNCATE, currency['precision'], DECIMAL_PLACES), - 'currency': currency['id'], - 'wallet': wallet, - }; - const response = await this.privatePostPaymentOutCoin (this.extend (request, params)); - const id = this.safeInteger (response, 'id'); - if (id === undefined) { - throw new InsufficientFunds (this.id + ' insufficient funds to cover requested withdrawal amount post fees ' + this.json (response)); - } - return { - 'info': response, - 'id': id, - }; - } - - parseTransaction (transaction, currency = undefined) { - // { - // "id": "c853093d5aa06df1c92d79c2...", (tx on deposits, address on withdrawals) - // "type": "DEPOSIT", - // "date": 1553186482676, - // "amount": 712.61266, - // "fee": 0, - // "fixedCurrency": "XVG", - // "taxCurrency": "XVG", - // "variableAmount": null, - // "variableCurrency": null, - // "external": "Coin", - // "login": "USERNAME", - // "externalKey": "....87diPBy......3hTtuwUT78Yi", (address on deposits, tx on withdrawals) - // "documentId": 1110662453 - // }, - let txid = undefined; - let address = undefined; - const id = this.safeString (transaction, 'documentId'); - const amount = this.safeFloat (transaction, 'amount'); - const timestamp = this.safeInteger (transaction, 'date'); - const type = this.safeStringLower (transaction, 'type'); - const currencyId = this.safeString (transaction, 'fixedCurrency'); - const feeCost = this.safeFloat (transaction, 'fee'); - const code = this.safeCurrencyCode (currencyId, currency); - if (type === 'withdrawal') { - txid = this.safeString (transaction, 'externalKey'); - address = this.safeString (transaction, 'id'); - } else if (type === 'deposit') { - address = this.safeString (transaction, 'externalKey'); - txid = this.safeString (transaction, 'id'); - } - let status = undefined; - if (type === 'deposit') { - status = 'ok'; // Deposits is not registered until they are in account. Withdrawals are left as undefined, not entirely sure about theyre status. - } - return { - 'info': transaction, - 'id': id, - 'currency': code, - 'amount': amount, - 'address': address, - 'tag': undefined, - 'status': status, - 'type': type, - 'updated': undefined, - 'txid': txid, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'fee': { - 'currency': code, - 'cost': feeCost, - }, - }; - } - - async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const endtime = 2505600000; // 29 days - exchange has maximum 30 days. - const now = this.milliseconds (); - const request = { - 'types': 'DEPOSIT', - 'end': now, - 'start': (since !== undefined) ? parseInt (since) : now - endtime, - }; - let currency = undefined; - if (code !== undefined) { - currency = this.currency (code); - } - if (limit !== undefined) { - request['limit'] = limit; // default is 100 - } - const response = await this.privateGetPaymentHistoryTransactions (this.extend (request, params)); - return this.parseTransactions (response, currency, since, limit); - } - - async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const endtime = 2505600000; // 29 days - exchange has maximum 30 days. - const now = this.milliseconds (); - const request = { - 'types': 'WITHDRAWAL', - 'end': now, - 'start': (since !== undefined) ? parseInt (since) : now - endtime, - }; - let currency = undefined; - if (code !== undefined) { - currency = this.currency (code); - } - if (limit !== undefined) { - request['limit'] = limit; // default is 100 - } - if (since !== undefined) { - request['start'] = since; - } - const response = await this.privateGetPaymentHistoryTransactions (this.extend (request, params)); - return this.parseTransactions (response, currency, since, limit); - } - - async fetchDepositAddress (currency, params = {}) { - const request = { - 'currency': currency, - }; - const response = await this.privateGetPaymentGetAddress (this.extend (request, params)); - let address = this.safeString (response, 'wallet'); - let tag = undefined; - if (address.indexOf (':') >= 0) { - const parts = address.split (':'); - address = parts[0]; - tag = parts[2]; - } - this.checkAddress (address); - return { - 'currency': currency, - 'address': address, - 'tag': tag, - 'info': response, - }; - } - - sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { - let url = this.urls['api'] + '/' + path; - const query = this.urlencode (this.keysort (params)); - if (method === 'GET') { - if (Object.keys (params).length) { - url += '?' + query; - } - } - if (api === 'private') { - this.checkRequiredCredentials (); - if (method === 'POST') { - body = query; - } - const signature = this.hmac (this.encode (query), this.encode (this.secret), 'sha256'); - headers = { - 'Api-Key': this.apiKey, - 'Sign': signature.toUpperCase (), - 'Content-Type': 'application/x-www-form-urlencoded', - }; - } - return { 'url': url, 'method': method, 'body': body, 'headers': headers }; - } - - handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { - if (response === undefined) { - return; // fallback to default error handler - } - if (code >= 300) { - const feedback = this.id + ' ' + body; - const errorCode = this.safeString (response, 'errorCode'); - this.throwExactlyMatchedException (this.exceptions['exact'], errorCode, feedback); - throw new ExchangeError (feedback); - } - // returns status code 200 even if success === false - const success = this.safeValue (response, 'success', true); - if (!success) { - const feedback = this.id + ' ' + body; - const message = this.safeString2 (response, 'message', 'exception'); - if (message !== undefined) { - this.throwBroadlyMatchedException (this.exceptions['broad'], message, feedback); - } - throw new ExchangeError (feedback); - } - } -}; - diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/luno.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/luno.js index 068e1c184..2bbec0ec1 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/luno.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/luno.js @@ -38,7 +38,11 @@ module.exports = class luno extends Exchange { 'urls': { 'referral': 'https://www.luno.com/invite/44893A', 'logo': 'https://user-images.githubusercontent.com/1294454/27766607-8c1a69d8-5ede-11e7-930c-540b5eb9be24.jpg', - 'api': 'https://api.luno.com/api', + 'api': { + 'public': 'https://api.luno.com/api', + 'private': 'https://api.luno.com/api', + 'exchange': 'https://api.luno.com/api/exchange', + }, 'www': 'https://www.luno.com', 'doc': [ 'https://www.luno.com/en/api', @@ -47,6 +51,11 @@ module.exports = class luno extends Exchange { ], }, 'api': { + 'exchange': { + 'get': [ + 'markets', + ], + }, 'public': { 'get': [ 'orderbook', @@ -97,16 +106,42 @@ module.exports = class luno extends Exchange { } async fetchMarkets (params = {}) { - const response = await this.publicGetTickers (params); + const response = await this.exchangeGetMarkets (params); + // + // { + // "markets":[ + // { + // "market_id":"BCHXBT", + // "trading_status":"ACTIVE", + // "base_currency":"BCH", + // "counter_currency":"XBT", + // "min_volume":"0.01", + // "max_volume":"100.00", + // "volume_scale":2, + // "min_price":"0.0001", + // "max_price":"1.00", + // "price_scale":6, + // "fee_scale":8, + // }, + // ] + // } + // const result = []; - for (let i = 0; i < response['tickers'].length; i++) { - const market = response['tickers'][i]; - const id = market['pair']; - const baseId = id.slice (0, 3); - const quoteId = id.slice (3, 6); + const markets = this.safeValue (response, 'markets', []); + for (let i = 0; i < markets.length; i++) { + const market = markets[i]; + const id = this.safeString (market, 'market_id'); + const baseId = this.safeString (market, 'base_currency'); + const quoteId = this.safeString (market, 'counter_currency'); const base = this.safeCurrencyCode (baseId); const quote = this.safeCurrencyCode (quoteId); const symbol = base + '/' + quote; + const status = this.safeString (market, 'trading_status'); + const active = (status === 'ACTIVE'); + const precision = { + 'amount': this.safeInteger (market, 'volume_scale'), + 'price': this.safeInteger (market, 'price_scale'), + }; result.push ({ 'id': id, 'symbol': symbol, @@ -114,10 +149,23 @@ module.exports = class luno extends Exchange { 'quote': quote, 'baseId': baseId, 'quoteId': quoteId, + 'active': active, + 'precision': precision, + 'limits': { + 'amount': { + 'min': this.safeFloat (market, 'min_volume'), + 'max': this.safeFloat (market, 'max_volume'), + }, + 'price': { + 'min': this.safeFloat (market, 'min_price'), + 'max': this.safeFloat (market, 'max_price'), + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + }, 'info': market, - 'active': undefined, - 'precision': this.precision, - 'limits': this.limits, }); } return result; @@ -145,6 +193,16 @@ module.exports = class luno extends Exchange { async fetchBalance (params = {}) { await this.loadMarkets (); const response = await this.privateGetBalance (params); + // + // { + // 'balance': [ + // {'account_id': '119...1336','asset': 'XBT','balance': '0.00','reserved': '0.00','unconfirmed': '0.00'}, + // {'account_id': '66...289','asset': 'XBT','balance': '0.00','reserved': '0.00','unconfirmed': '0.00'}, + // {'account_id': '718...5300','asset': 'ETH','balance': '0.00','reserved': '0.00','unconfirmed': '0.00'}, + // {'account_id': '818...7072','asset': 'ZAR','balance': '0.001417','reserved': '0.00','unconfirmed': '0.00'}]} + // ] + // } + // const wallets = this.safeValue (response, 'balance', []); const result = { 'info': response }; for (let i = 0; i < wallets.length; i++) { @@ -154,10 +212,15 @@ module.exports = class luno extends Exchange { const reserved = this.safeFloat (wallet, 'reserved'); const unconfirmed = this.safeFloat (wallet, 'unconfirmed'); const balance = this.safeFloat (wallet, 'balance'); - const account = this.account (); - account['used'] = this.sum (reserved, unconfirmed); - account['total'] = this.sum (balance, unconfirmed); - result[code] = account; + if (code in result) { + result[code]['used'] = this.sum (result[code]['used'], reserved, unconfirmed); + result[code]['total'] = this.sum (result[code]['total'], balance, unconfirmed); + } else { + const account = this.account (); + account['used'] = this.sum (reserved, unconfirmed); + account['total'] = this.sum (balance, unconfirmed); + result[code] = account; + } } return this.parseBalance (result); } @@ -245,6 +308,7 @@ module.exports = class luno extends Exchange { 'symbol': symbol, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -425,7 +489,7 @@ module.exports = class luno extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -462,15 +526,16 @@ module.exports = class luno extends Exchange { if (type === 'market') { method += 'Marketorder'; request['type'] = side.toUpperCase (); + // todo add createMarketBuyOrderRequires price logic as it is implemented in the other exchanges if (side === 'buy') { - request['counter_volume'] = amount; + request['counter_volume'] = parseFloat (this.amountToPrecision (symbol, amount)); } else { - request['base_volume'] = amount; + request['base_volume'] = parseFloat (this.amountToPrecision (symbol, amount)); } } else { method += 'Postorder'; - request['volume'] = amount; - request['price'] = price; + request['volume'] = parseFloat (this.amountToPrecision (symbol, amount)); + request['price'] = parseFloat (this.priceToPrecision (symbol, price)); request['type'] = (side === 'buy') ? 'BID' : 'ASK'; } const response = await this[method] (this.extend (request, params)); @@ -629,7 +694,7 @@ module.exports = class luno extends Exchange { } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { - let url = this.urls['api'] + '/' + this.version + '/' + this.implodeParams (path, params); + let url = this.urls['api'][api] + '/' + this.version + '/' + this.implodeParams (path, params); const query = this.omit (params, this.extractParams (path)); if (Object.keys (query).length) { url += '?' + this.urlencode (query); diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/lykke.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/lykke.js index c513b8d80..edc0fe73a 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/lykke.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/lykke.js @@ -499,6 +499,7 @@ module.exports = class lykke extends Exchange { 'symbol': symbol, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/mercado.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/mercado.js index 228e82f69..a2fd9593e 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/mercado.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/mercado.js @@ -21,6 +21,8 @@ module.exports = class mercado extends Exchange { 'createMarketOrder': true, 'createOrder': true, 'fetchBalance': true, + 'fetchMarkets': true, + 'fetchMyTrades': 'emulated', 'fetchOHLCV': true, 'fetchOpenOrders': true, 'fetchOrder': true, @@ -60,6 +62,7 @@ module.exports = class mercado extends Exchange { 'api': { 'public': { 'get': [ + 'coins', '{coin}/orderbook/', // last slash critical '{coin}/ticker/', '{coin}/trades/', @@ -90,23 +93,90 @@ module.exports = class mercado extends Exchange { ], }, }, - 'markets': { - 'BTC/BRL': { 'id': 'BRLBTC', 'symbol': 'BTC/BRL', 'base': 'BTC', 'quote': 'BRL', 'precision': { 'amount': 8, 'price': 5 }, 'suffix': 'Bitcoin' }, - 'LTC/BRL': { 'id': 'BRLLTC', 'symbol': 'LTC/BRL', 'base': 'LTC', 'quote': 'BRL', 'precision': { 'amount': 8, 'price': 5 }, 'suffix': 'Litecoin' }, - 'BCH/BRL': { 'id': 'BRLBCH', 'symbol': 'BCH/BRL', 'base': 'BCH', 'quote': 'BRL', 'precision': { 'amount': 8, 'price': 5 }, 'suffix': 'BCash' }, - 'XRP/BRL': { 'id': 'BRLXRP', 'symbol': 'XRP/BRL', 'base': 'XRP', 'quote': 'BRL', 'precision': { 'amount': 8, 'price': 5 }, 'suffix': 'Ripple' }, - 'ETH/BRL': { 'id': 'BRLETH', 'symbol': 'ETH/BRL', 'base': 'ETH', 'quote': 'BRL', 'precision': { 'amount': 8, 'price': 5 }, 'suffix': 'Ethereum' }, - 'USDC/BRL': { 'id': 'BRLUSDC', 'symbol': 'USDC/BRL', 'base': 'USDC', 'quote': 'BRL', 'precision': { 'amount': 8, 'price': 5 }, 'suffix': 'USDC' }, - }, 'fees': { 'trading': { - 'maker': 0.3 / 100, - 'taker': 0.7 / 100, + 'maker': 0.003, + 'taker': 0.007, + }, + }, + 'options': { + 'limits': { + 'BTC': 0.001, + 'BCH': 0.001, + 'ETH': 0.01, + 'LTC': 0.01, + 'XRP': 0.1, }, }, }); } + async fetchMarkets (params = {}) { + const response = await this.publicGetCoins (params); + // + // [ + // "BCH", + // "BTC", + // "ETH", + // "LTC", + // "XRP", + // "MBPRK01", + // "MBPRK02", + // "MBPRK03", + // "MBPRK04", + // "MBCONS01", + // "USDC", + // "WBX", + // "CHZ", + // "MBCONS02", + // "PAXG", + // "MBVASCO01", + // "LINK" + // ] + // + const result = []; + const amountLimits = this.safeValue (this.options, 'limits', {}); + for (let i = 0; i < response.length; i++) { + const coin = response[i]; + const baseId = coin; + const quoteId = 'BRL'; + const base = this.safeCurrencyCode (baseId); + const quote = this.safeCurrencyCode (quoteId); + const symbol = base + '/' + quote; + const id = quote + base; + const precision = { + 'amount': 8, + 'price': 5, + }; + result.push ({ + 'id': id, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'baseId': baseId, + 'quoteId': quoteId, + 'active': undefined, + 'info': coin, + 'precision': precision, + 'limits': { + 'amount': { + 'min': this.safeFloat (amountLimits, baseId), + 'max': undefined, + }, + 'price': { + 'min': 1 / Math.pow (10, precision['price']), + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + }, + }); + } + return result; + } + async fetchOrderBook (symbol, limit = undefined, params = {}) { await this.loadMarkets (); const market = this.market (symbol); @@ -152,22 +222,30 @@ module.exports = class mercado extends Exchange { } parseTrade (trade, market = undefined) { - const timestamp = this.safeTimestamp (trade, 'date'); + const timestamp = this.safeTimestamp2 (trade, 'date', 'executed_timestamp'); let symbol = undefined; if (market !== undefined) { symbol = market['symbol']; } - const id = this.safeString (trade, 'tid'); + const id = this.safeString2 (trade, 'tid', 'operation_id'); const type = undefined; const side = this.safeString (trade, 'type'); const price = this.safeFloat (trade, 'price'); - const amount = this.safeFloat (trade, 'amount'); + const amount = this.safeFloat2 (trade, 'amount', 'quantity'); let cost = undefined; if (price !== undefined) { if (amount !== undefined) { cost = price * amount; } } + const feeCost = this.safeFloat (trade, 'fee_rate'); + let fee = undefined; + if (feeCost !== undefined) { + fee = { + 'cost': feeCost, + 'currency': undefined, + }; + } return { 'id': id, 'info': trade, @@ -181,7 +259,7 @@ module.exports = class mercado extends Exchange { 'price': price, 'amount': amount, 'cost': cost, - 'fee': undefined, + 'fee': fee, }; } @@ -349,6 +427,11 @@ module.exports = class mercado extends Exchange { const remaining = amount - filled; const cost = filled * average; const lastTradeTimestamp = this.safeTimestamp (order, 'updated_timestamp'); + const rawTrades = this.safeValue (order, 'operations', []); + const trades = this.parseTrades (rawTrades, market, undefined, undefined, { + 'side': side, + 'order': id, + }); return { 'info': order, 'id': id, @@ -359,6 +442,7 @@ module.exports = class mercado extends Exchange { 'symbol': market['symbol'], 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -369,7 +453,7 @@ module.exports = class mercado extends Exchange { 'remaining': remaining, 'status': status, 'fee': fee, - 'trades': undefined, // todo parse trades (operations) + 'trades': trades, }; } @@ -401,17 +485,17 @@ module.exports = class mercado extends Exchange { if (code === 'BRL') { const account_ref = ('account_ref' in params); if (!account_ref) { - throw new ArgumentsRequired (this.id + ' requires account_ref parameter to withdraw ' + code); + throw new ArgumentsRequired (this.id + ' withdraw() requires account_ref parameter to withdraw ' + code); } } else if (code !== 'LTC') { const tx_fee = ('tx_fee' in params); if (!tx_fee) { - throw new ArgumentsRequired (this.id + ' requires tx_fee parameter to withdraw ' + code); + throw new ArgumentsRequired (this.id + ' withdraw() requires tx_fee parameter to withdraw ' + code); } if (code === 'XRP') { if (tag === undefined) { if (!('destination_tag' in params)) { - throw new ArgumentsRequired (this.id + ' requires a tag argument or destination_tag parameter to withdraw ' + code); + throw new ArgumentsRequired (this.id + ' withdraw() requires a tag argument or destination_tag parameter to withdraw ' + code); } } else { request['destination_tag'] = tag; @@ -473,6 +557,51 @@ module.exports = class mercado extends Exchange { return this.parseOrders (orders, market, since, limit); } + async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + ' fetchOpenOrders () requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'coin_pair': market['id'], + 'status_list': '[2]', // open only + }; + const response = await this.privatePostListOrders (this.extend (request, params)); + const responseData = this.safeValue (response, 'response_data', {}); + const orders = this.safeValue (responseData, 'orders', []); + return this.parseOrders (orders, market, since, limit); + } + + async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + ' fetchMyTrades () requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'coin_pair': market['id'], + 'has_fills': true, + }; + const response = await this.privatePostListOrders (this.extend (request, params)); + const responseData = this.safeValue (response, 'response_data', {}); + const ordersRaw = this.safeValue (responseData, 'orders', []); + const orders = this.parseOrders (ordersRaw, market, since, limit); + const trades = this.ordersToTrades (orders); + return this.filterBySymbolSinceLimit (trades, symbol, since, limit); + } + + ordersToTrades (orders) { + const result = []; + for (let i = 0; i < orders.length; i++) { + const trades = this.safeValue (orders[i], 'trades', []); + for (let y = 0; y < trades.length; y++) { + result.push (trades[y]); + } + } + return result; + } + sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { let url = this.urls['api'][api] + '/'; const query = this.omit (params, this.extractParams (path)); diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/ndax.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/ndax.js new file mode 100644 index 000000000..0367c2695 --- /dev/null +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/ndax.js @@ -0,0 +1,2015 @@ +'use strict'; + +// --------------------------------------------------------------------------- + +const Exchange = require ('./base/Exchange'); +const { ExchangeError, AuthenticationError, InsufficientFunds, BadSymbol, OrderNotFound } = require ('./base/errors'); +const { TICK_SIZE } = require ('./base/functions/number'); + +// --------------------------------------------------------------------------- + +module.exports = class ndax extends Exchange { + describe () { + return this.deepExtend (super.describe (), { + 'id': 'ndax', + 'name': 'NDAX', + 'countries': [ 'US' ], // United States + 'rateLimit': 1000, + 'pro': true, + 'has': { + 'cancelAllOrders': true, + 'cancelOrder': true, + 'createDepositAddress': true, + 'createOrder': true, + 'editOrder': true, + 'fetchAccounts': true, + 'fetchBalance': true, + 'fetchCurrencies': true, + 'fetchDepositAddress': true, + 'fetchDeposits': true, + 'fetchLedger': true, + 'fetchMarkets': true, + 'fetchMyTrades': true, + 'fetchOHLCV': true, + 'fetchOpenOrders': true, + 'fetchOrders': true, + 'fetchOrder': true, + 'fetchOrderBook': true, + 'fetchOrderTrades': true, + 'fetchTicker': true, + 'fetchTrades': true, + }, + 'timeframes': { + '1m': '60', + '5m': '300', + '15m': '900', + '30m': '1800', + '1h': '3600', + '2h': '7200', + '4h': '14400', + '6h': '21600', + '12h': '43200', + '1d': '86400', + '1w': '604800', + '1M': '2419200', + '4M': '9676800', + }, + 'urls': { + 'logo': 'https://user-images.githubusercontent.com/1294454/108623144-67a3ef00-744e-11eb-8140-75c6b851e945.jpg', + 'test': { + 'public': 'https://ndaxmarginstaging.cdnhop.net:8443/AP', + 'private': 'https://ndaxmarginstaging.cdnhop.net:8443/AP', + }, + 'api': { + 'public': 'https://api.ndax.io:8443/AP', + 'private': 'https://api.ndax.io:8443/AP', + }, + 'www': 'https://ndax.io', + 'doc': [ + 'https://apidoc.ndax.io/', + ], + 'fees': 'https://ndax.io/fees', + 'referral': 'https://one.ndax.io/bfQiSL', + }, + 'api': { + 'public': { + 'get': [ + 'Activate2FA', + 'Authenticate2FA', + 'AuthenticateUser', + 'GetL2Snapshot', + 'GetLevel1', + 'GetValidate2FARequiredEndpoints', + 'LogOut', + 'GetTickerHistory', + 'GetProduct', + 'GetProducts', + 'GetInstrument', + 'GetInstruments', + 'Ping', + 'trades', // undocumented + 'GetLastTrades', // undocumented + 'SubscribeLevel1', + 'SubscribeLevel2', + 'SubscribeTicker', + 'SubscribeTrades', + 'SubscribeBlockTrades', + 'UnsubscribeBlockTrades', + 'UnsubscribeLevel1', + 'UnsubscribeLevel2', + 'UnsubscribeTicker', + 'UnsubscribeTrades', + 'Authenticate', // undocumented + ], + }, + 'private': { + 'get': [ + 'GetUserAccountInfos', + 'GetUserAccounts', + 'GetUserAffiliateCount', + 'GetUserAffiliateTag', + 'GetUserConfig', + 'GetAllUnredactedUserConfigsForUser', + 'GetUnredactedUserConfigByKey', + 'GetUserDevices', + 'GetUserReportTickets', + 'GetUserReportWriterResultRecords', + 'GetAccountInfo', + 'GetAccountPositions', + 'GetAllAccountConfigs', + 'GetTreasuryProductsForAccount', + 'GetAccountTrades', + 'GetAccountTransactions', + 'GetOpenTradeReports', + 'GetAllOpenTradeReports', + 'GetTradesHistory', + 'GetOpenOrders', + 'GetOpenQuotes', + 'GetOrderFee', + 'GetOrderHistory', + 'GetOrdersHistory', + 'GetOrderStatus', + 'GetOmsFeeTiers', + 'GetAccountDepositTransactions', + 'GetAccountWithdrawTransactions', + 'GetAllDepositRequestInfoTemplates', + 'GetDepositInfo', + 'GetDepositRequestInfoTemplate', + 'GetDeposits', + 'GetDepositTicket', + 'GetDepositTickets', + 'GetOMSWithdrawFees', + 'GetWithdrawFee', + 'GetWithdraws', + 'GetWithdrawTemplate', + 'GetWithdrawTemplateTypes', + 'GetWithdrawTicket', + 'GetWithdrawTickets', + ], + 'post': [ + 'AddUserAffiliateTag', + 'CancelUserReport', + 'RegisterNewDevice', + 'SubscribeAccountEvents', + 'UpdateUserAffiliateTag', + 'GenerateTradeActivityReport', + 'GenerateTransactionActivityReport', + 'GenerateTreasuryActivityReport', + 'ScheduleTradeActivityReport', + 'ScheduleTransactionActivityReport', + 'ScheduleTreasuryActivityReport', + 'CancelAllOrders', + 'CancelOrder', + 'CancelQuote', + 'CancelReplaceOrder', + 'CreateQuote', + 'ModifyOrder', + 'SendOrder', + 'SubmitBlockTrade', + 'UpdateQuote', + 'CancelWithdraw', + 'CreateDepositTicket', + 'CreateWithdrawTicket', + 'SubmitDepositTicketComment', + 'SubmitWithdrawTicketComment', + 'GetOrderHistoryByOrderId', + ], + }, + }, + 'fees': { + 'trading': { + 'tierBased': false, + 'percentage': true, + 'maker': 0.2 / 100, + 'taker': 0.25 / 100, + }, + }, + 'requiredCredentials': { + 'apiKey': true, + 'secret': true, + 'uid': true, + }, + 'precisionMode': TICK_SIZE, + 'exceptions': { + 'exact': { + 'Not_Enough_Funds': InsufficientFunds, // {"status":"Rejected","errormsg":"Not_Enough_Funds","errorcode":101} + 'Server Error': ExchangeError, // {"result":false,"errormsg":"Server Error","errorcode":102,"detail":null} + 'Resource Not Found': OrderNotFound, // {"result":false,"errormsg":"Resource Not Found","errorcode":104,"detail":null} + }, + 'broad': { + 'Invalid InstrumentId': BadSymbol, // {"result":false,"errormsg":"Invalid InstrumentId: 10000","errorcode":100,"detail":null} + }, + }, + 'options': { + 'omsId': 1, + 'orderTypes': { + 'Market': 1, + 'Limit': 2, + 'StopMarket': 3, + 'StopLimit': 4, + 'TrailingStopMarket': 5, + 'TrailingStopLimit': 6, + 'BlockTrade': 7, + }, + }, + }); + } + + async fetchCurrencies (params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + const request = { + 'omsId': omsId, + }; + const response = await this.publicGetGetProducts (this.extend (request, params)); + // + // [ + // { + // "OMSId":1, + // "ProductId":1, + // "Product":"BTC", + // "ProductFullName":"Bitcoin", + // "ProductType":"CryptoCurrency", + // "DecimalPlaces":8, + // "TickSize":0.0000000100000000000000000000, + // "NoFees":false, + // "IsDisabled":false, + // "MarginEnabled":false + // }, + // ] + // + const result = {}; + for (let i = 0; i < response.length; i++) { + const currency = response[i]; + const id = this.safeString (currency, 'ProductId'); + const name = this.safeString (currency, 'ProductFullName'); + const type = this.safeString (currency, 'ProductType'); + const code = this.safeCurrencyCode (this.safeString (currency, 'Product')); + const precision = this.safeFloat (currency, 'TickSize'); + const isDisabled = this.safeValue (currency, 'IsDisabled'); + const active = !isDisabled; + result[code] = { + 'id': id, + 'name': name, + 'code': code, + 'type': type, + 'precision': precision, + 'info': currency, + 'active': active, + 'fee': undefined, + 'limits': this.limits, + }; + } + return result; + } + + async fetchMarkets (params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + const request = { + 'omsId': omsId, + }; + const response = await this.publicGetGetInstruments (this.extend (request, params)); + // + // [ + // { + // "OMSId":1, + // "InstrumentId":3, + // "Symbol":"LTCBTC", + // "Product1":3, + // "Product1Symbol":"LTC", + // "Product2":1, + // "Product2Symbol":"BTC", + // "InstrumentType":"Standard", + // "VenueInstrumentId":3, + // "VenueId":1, + // "SortIndex":0, + // "SessionStatus":"Running", + // "PreviousSessionStatus":"Stopped", + // "SessionStatusDateTime":"2020-11-25T19:42:15.245Z", + // "SelfTradePrevention":true, + // "QuantityIncrement":0.0000000100000000000000000000, + // "PriceIncrement":0.0000000100000000000000000000, + // "MinimumQuantity":0.0100000000000000000000000000, + // "MinimumPrice":0.0000010000000000000000000000, + // "VenueSymbol":"LTCBTC", + // "IsDisable":false, + // "MasterDataId":0, + // "PriceCollarThreshold":0.0000000000000000000000000000, + // "PriceCollarPercent":0.0000000000000000000000000000, + // "PriceCollarEnabled":false, + // "PriceFloorLimit":0.0000000000000000000000000000, + // "PriceFloorLimitEnabled":false, + // "PriceCeilingLimit":0.0000000000000000000000000000, + // "PriceCeilingLimitEnabled":false, + // "CreateWithMarketRunning":true, + // "AllowOnlyMarketMakerCounterParty":false, + // "PriceCollarIndexDifference":0.0000000000000000000000000000, + // "PriceCollarConvertToOtcEnabled":false, + // "PriceCollarConvertToOtcClientUserId":0, + // "PriceCollarConvertToOtcAccountId":0, + // "PriceCollarConvertToOtcThreshold":0.0000000000000000000000000000, + // "OtcConvertSizeThreshold":0.0000000000000000000000000000, + // "OtcConvertSizeEnabled":false, + // "OtcTradesPublic":true, + // "PriceTier":0 + // }, + // ] + // + const result = []; + for (let i = 0; i < response.length; i++) { + const market = response[i]; + const id = this.safeString (market, 'InstrumentId'); + // const lowercaseId = this.safeStringLower (market, 'symbol'); + const baseId = this.safeString (market, 'Product1'); + const quoteId = this.safeString (market, 'Product2'); + const base = this.safeCurrencyCode (this.safeString (market, 'Product1Symbol')); + const quote = this.safeCurrencyCode (this.safeString (market, 'Product2Symbol')); + const symbol = base + '/' + quote; + const precision = { + 'amount': this.safeFloat (market, 'QuantityIncrement'), + 'price': this.safeFloat (market, 'PriceIncrement'), + }; + const sessionStatus = this.safeString (market, 'SessionStatus'); + const isDisable = this.safeValue (market, 'IsDisable'); + const sessionRunning = (sessionStatus === 'Running'); + const active = (sessionRunning && !isDisable) ? true : false; + result.push ({ + 'id': id, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'baseId': baseId, + 'quoteId': quoteId, + 'info': market, + 'active': active, + 'precision': precision, + 'limits': { + 'amount': { + 'min': this.safeFloat (market, 'MinimumQuantity'), + 'max': undefined, + }, + 'price': { + 'min': this.safeFloat (market, 'MinimumPrice'), + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + }, + }); + } + return result; + } + + parseOrderBook (orderbook, timestamp = undefined, bidsKey = 'bids', asksKey = 'asks', priceKey = 6, amountKey = 8) { + let nonce = undefined; + const result = { + 'bids': [], + 'asks': [], + 'timestamp': undefined, + 'datetime': undefined, + 'nonce': undefined, + }; + for (let i = 0; i < orderbook.length; i++) { + const level = orderbook[i]; + if (timestamp === undefined) { + timestamp = this.safeInteger (level, 2); + } else { + const newTimestamp = this.safeInteger (level, 2); + timestamp = Math.max (timestamp, newTimestamp); + } + if (nonce === undefined) { + nonce = this.safeInteger (level, 0); + } else { + const newNonce = this.safeInteger (level, 0); + nonce = Math.max (nonce, newNonce); + } + const bidask = this.parseBidAsk (level, priceKey, amountKey); + const levelSide = this.safeValue (level, 9); + const side = levelSide ? asksKey : bidsKey; + result[side].push (bidask); + } + result['bids'] = this.sortBy (result['bids'], 0, true); + result['asks'] = this.sortBy (result['asks'], 0); + result['timestamp'] = timestamp; + result['datetime'] = this.iso8601 (timestamp); + result['nonce'] = nonce; + return result; + } + + async fetchOrderBook (symbol, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + const market = this.market (symbol); + limit = (limit === undefined) ? 100 : limit; // default 100 + const request = { + 'omsId': omsId, + 'InstrumentId': market['id'], + 'Depth': limit, // default 100 + }; + const response = await this.publicGetGetL2Snapshot (this.extend (request, params)); + // + // [ + // [ + // 0, // 0 MDUpdateId + // 1, // 1 Number of Unique Accounts + // 123, // 2 ActionDateTime in Posix format X 1000 + // 0, // 3 ActionType 0 (New), 1 (Update), 2(Delete) + // 0.0, // 4 LastTradePrice + // 0, // 5 Number of Orders + // 0.0, // 6 Price + // 0, // 7 ProductPairCode + // 0.0, // 8 Quantity + // 0, // 9 Side + // ], + // [97244115,1,1607456142963,0,19069.32,1,19069.31,8,0.140095,0], + // [97244115,0,1607456142963,0,19069.32,1,19068.64,8,0.0055,0], + // [97244115,0,1607456142963,0,19069.32,1,19068.26,8,0.021291,0], + // [97244115,1,1607456142964,0,19069.32,1,19069.32,8,0.099636,1], + // [97244115,0,1607456142964,0,19069.32,1,19069.98,8,0.1,1], + // [97244115,0,1607456142964,0,19069.32,1,19069.99,8,0.141604,1], + // ] + // + return this.parseOrderBook (response); + } + + parseTicker (ticker, market = undefined) { + // + // fetchTicker + // + // { + // "OMSId":1, + // "InstrumentId":8, + // "BestBid":19069.31, + // "BestOffer":19069.32, + // "LastTradedPx":19069.32, + // "LastTradedQty":0.0001, + // "LastTradeTime":1607040406424, + // "SessionOpen":19069.32, + // "SessionHigh":19069.32, + // "SessionLow":19069.32, + // "SessionClose":19069.32, + // "Volume":0.0001, + // "CurrentDayVolume":0.0001, + // "CurrentDayNotional":1.906932, + // "CurrentDayNumTrades":1, + // "CurrentDayPxChange":0.00, + // "Rolling24HrVolume":0.000000000000000000000000000, + // "Rolling24HrNotional":0.00000000000000000000000, + // "Rolling24NumTrades":0, + // "Rolling24HrPxChange":0, + // "TimeStamp":"1607040406425", + // "BidQty":0, + // "AskQty":0, + // "BidOrderCt":0, + // "AskOrderCt":0, + // "Rolling24HrPxChangePercent":0, + // } + // + const timestamp = this.safeInteger (ticker, 'TimeStamp'); + const marketId = this.safeString (ticker, 'InstrumentId'); + const symbol = this.safeSymbol (marketId, market); + const last = this.safeFloat (ticker, 'LastTradedPx'); + const percentage = this.safeFloat (ticker, 'Rolling24HrPxChangePercent'); + const change = this.safeFloat (ticker, 'Rolling24HrPxChange'); + const open = this.safeFloat (ticker, 'SessionOpen'); + let average = undefined; + if ((last !== undefined) && (change !== undefined)) { + average = this.sum (last, open) / 2; + } + const baseVolume = this.safeFloat (ticker, 'Rolling24HrVolume'); + const quoteVolume = this.safeFloat (ticker, 'Rolling24HrNotional'); + const vwap = this.vwap (baseVolume, quoteVolume); + return { + 'symbol': symbol, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'high': this.safeFloat (ticker, 'SessionHigh'), + 'low': this.safeFloat (ticker, 'SessionLow'), + 'bid': this.safeFloat (ticker, 'BestBid'), + 'bidVolume': undefined, // this.safeFloat (ticker, 'BidQty'), always shows 0 + 'ask': this.safeFloat (ticker, 'BestOffer'), + 'askVolume': undefined, // this.safeFloat (ticker, 'AskQty'), always shows 0 + 'vwap': vwap, + 'open': open, + 'close': last, + 'last': last, + 'previousClose': undefined, + 'change': change, + 'percentage': percentage, + 'average': average, + 'baseVolume': baseVolume, + 'quoteVolume': quoteVolume, + 'info': ticker, + }; + } + + async fetchTicker (symbol, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'omsId': omsId, + 'InstrumentId': market['id'], + }; + const response = await this.publicGetGetLevel1 (this.extend (request, params)); + // + // { + // "OMSId":1, + // "InstrumentId":8, + // "BestBid":19069.31, + // "BestOffer":19069.32, + // "LastTradedPx":19069.32, + // "LastTradedQty":0.0001, + // "LastTradeTime":1607040406424, + // "SessionOpen":19069.32, + // "SessionHigh":19069.32, + // "SessionLow":19069.32, + // "SessionClose":19069.32, + // "Volume":0.0001, + // "CurrentDayVolume":0.0001, + // "CurrentDayNotional":1.906932, + // "CurrentDayNumTrades":1, + // "CurrentDayPxChange":0.00, + // "Rolling24HrVolume":0.000000000000000000000000000, + // "Rolling24HrNotional":0.00000000000000000000000, + // "Rolling24NumTrades":0, + // "Rolling24HrPxChange":0, + // "TimeStamp":"1607040406425", + // "BidQty":0, + // "AskQty":0, + // "BidOrderCt":0, + // "AskOrderCt":0, + // "Rolling24HrPxChangePercent":0, + // } + // + return this.parseTicker (response, market); + } + + parseOHLCV (ohlcv, market = undefined) { + // + // [ + // 1501603632000, // 0 DateTime + // 2700.33, // 1 High + // 2687.01, // 2 Low + // 2687.01, // 3 Open + // 2687.01, // 4 Close + // 24.86100992, // 5 Volume + // 0, // 6 Inside Bid Price + // 2870.95, // 7 Inside Ask Price + // 1 // 8 InstrumentId + // ] + // + return [ + this.safeInteger (ohlcv, 0), + this.safeFloat (ohlcv, 3), + this.safeFloat (ohlcv, 1), + this.safeFloat (ohlcv, 2), + this.safeFloat (ohlcv, 4), + this.safeFloat (ohlcv, 5), + ]; + } + + async fetchOHLCV (symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'omsId': omsId, + 'InstrumentId': market['id'], + 'Interval': this.timeframes[timeframe], + }; + const duration = this.parseTimeframe (timeframe); + const now = this.milliseconds (); + if (since === undefined) { + if (limit !== undefined) { + request['FromDate'] = this.ymd (now - duration * limit * 1000); + request['ToDate'] = this.ymd (now); + } + } else { + request['FromDate'] = this.ymd (since); + if (limit === undefined) { + request['ToDate'] = this.ymd (now); + } else { + request['ToDate'] = this.ymd (this.sum (since, duration * limit * 1000)); + } + } + const response = await this.publicGetGetTickerHistory (this.extend (request, params)); + // + // [ + // [1607299260000,19069.32,19069.32,19069.32,19069.32,0,19069.31,19069.32,8,1607299200000], + // [1607299320000,19069.32,19069.32,19069.32,19069.32,0,19069.31,19069.32,8,1607299260000], + // [1607299380000,19069.32,19069.32,19069.32,19069.32,0,19069.31,19069.32,8,1607299320000], + // ] + // + return this.parseOHLCVs (response, market, timeframe, since, limit); + } + + parseTrade (trade, market = undefined) { + // + // fetchTrades (public) + // + // [ + // 6913253, // 0 TradeId + // 8, // 1 ProductPairCode + // 0.03340802, // 2 Quantity + // 19116.08, // 3 Price + // 2543425077, // 4 Order1 + // 2543425482, // 5 Order2 + // 1606935922416, // 6 Tradetime + // 0, // 7 Direction + // 1, // 8 TakerSide + // 0, // 9 BlockTrade + // 0, // 10 Either Order1ClientId or Order2ClientId + // ] + // + // fetchMyTrades (private) + // + // { + // "OMSId":1, + // "ExecutionId":16916567, + // "TradeId":14476351, + // "OrderId":2543565231, + // "AccountId":449, + // "AccountName":"igor@ccxt.trade", + // "SubAccountId":0, + // "ClientOrderId":0, + // "InstrumentId":8, + // "Side":"Sell", + // "OrderType":"Market", + // "Quantity":0.1230000000000000000000000000, + // "RemainingQuantity":0.0000000000000000000000000000, + // "Price":19069.310000000000000000000000, + // "Value":2345.5251300000000000000000000, + // "CounterParty":"7", + // "OrderTradeRevision":1, + // "Direction":"NoChange", + // "IsBlockTrade":false, + // "Fee":1.1727625650000000000000000000, + // "FeeProductId":8, + // "OrderOriginator":446, + // "UserName":"igor@ccxt.trade", + // "TradeTimeMS":1607565031569, + // "MakerTaker":"Taker", + // "AdapterTradeId":0, + // "InsideBid":19069.310000000000000000000000, + // "InsideBidSize":0.2400950000000000000000000000, + // "InsideAsk":19069.320000000000000000000000, + // "InsideAskSize":0.0997360000000000000000000000, + // "IsQuote":false, + // "CounterPartyClientUserId":1, + // "NotionalProductId":2, + // "NotionalRate":1.0000000000000000000000000000, + // "NotionalValue":2345.5251300000000000000000000, + // "NotionalHoldAmount":0, + // "TradeTime":637431618315686826 + // } + // + // fetchOrderTrades + // + // { + // "Side":"Sell", + // "OrderId":2543565235, + // "Price":18600.000000000000000000000000, + // "Quantity":0.0000000000000000000000000000, + // "DisplayQuantity":0.0000000000000000000000000000, + // "Instrument":8, + // "Account":449, + // "AccountName":"igor@ccxt.trade", + // "OrderType":"Limit", + // "ClientOrderId":0, + // "OrderState":"FullyExecuted", + // "ReceiveTime":1607585844956, + // "ReceiveTimeTicks":637431826449564182, + // "LastUpdatedTime":1607585844959, + // "LastUpdatedTimeTicks":637431826449593893, + // "OrigQuantity":0.1230000000000000000000000000, + // "QuantityExecuted":0.1230000000000000000000000000, + // "GrossValueExecuted":2345.3947500000000000000000000, + // "ExecutableValue":0.0000000000000000000000000000, + // "AvgPrice":19068.250000000000000000000000, + // "CounterPartyId":0, + // "ChangeReason":"Trade", + // "OrigOrderId":2543565235, + // "OrigClOrdId":0, + // "EnteredBy":446, + // "UserName":"igor@ccxt.trade", + // "IsQuote":false, + // "InsideAsk":19069.320000000000000000000000, + // "InsideAskSize":0.0997360000000000000000000000, + // "InsideBid":19068.250000000000000000000000, + // "InsideBidSize":1.3300010000000000000000000000, + // "LastTradePrice":19068.250000000000000000000000, + // "RejectReason":"", + // "IsLockedIn":false, + // "CancelReason":"", + // "OrderFlag":"0", + // "UseMargin":false, + // "StopPrice":0.0000000000000000000000000000, + // "PegPriceType":"Unknown", + // "PegOffset":0.0000000000000000000000000000, + // "PegLimitOffset":0.0000000000000000000000000000, + // "IpAddress":"5.228.233.138", + // "ClientOrderIdUuid":null, + // "OMSId":1 + // } + // + let price = undefined; + let amount = undefined; + let cost = undefined; + let timestamp = undefined; + let id = undefined; + let marketId = undefined; + let side = undefined; + let orderId = undefined; + let takerOrMaker = undefined; + let fee = undefined; + let type = undefined; + if (Array.isArray (trade)) { + price = this.safeFloat (trade, 3); + amount = this.safeFloat (trade, 2); + if ((price !== undefined) && (amount !== undefined)) { + cost = price * amount; + } + timestamp = this.safeInteger (trade, 6); + id = this.safeString (trade, 0); + marketId = this.safeInteger (trade, 1); + const takerSide = this.safeValue (trade, 8); + side = takerSide ? 'sell' : 'buy'; + orderId = this.safeString (trade, 4); + } else { + timestamp = this.safeInteger2 (trade, 'TradeTimeMS', 'ReceiveTime'); + id = this.safeString (trade, 'TradeId'); + orderId = this.safeString2 (trade, 'OrderId', 'OrigOrderId'); + marketId = this.safeString2 (trade, 'InstrumentId', 'Instrument'); + price = this.safeFloat (trade, 'Price'); + amount = this.safeFloat (trade, 'Quantity'); + cost = this.safeFloat2 (trade, 'Value', 'GrossValueExecuted'); + takerOrMaker = this.safeStringLower (trade, 'MakerTaker'); + side = this.safeStringLower (trade, 'Side'); + type = this.safeStringLower (trade, 'OrderType'); + const feeCost = this.safeFloat (trade, 'Fee'); + if (feeCost !== undefined) { + const feeCurrencyId = this.safeString (trade, 'FeeProductId'); + const feeCurrencyCode = this.safeCurrencyCode (feeCurrencyId); + fee = { + 'cost': feeCost, + 'currency': feeCurrencyCode, + }; + } + } + const symbol = this.safeSymbol (marketId, market); + return { + 'info': trade, + 'id': id, + 'symbol': symbol, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'order': orderId, + 'type': type, + 'side': side, + 'takerOrMaker': takerOrMaker, + 'price': price, + 'amount': amount, + 'cost': cost, + 'fee': fee, + }; + } + + async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'omsId': omsId, + 'InstrumentId': market['id'], + }; + if (limit !== undefined) { + request['Count'] = limit; + } + const response = await this.publicGetGetLastTrades (this.extend (request, params)); + // + // [ + // [6913253,8,0.03340802,19116.08,2543425077,2543425482,1606935922416,0,1,0,0], + // [6913254,8,0.01391671,19117.42,2543427510,2543427811,1606935927998,1,1,0,0], + // [6913255,8,0.000006,19107.81,2543430495,2543430793,1606935933881,2,0,0,0], + // ] + // + return this.parseTrades (response, market, since, limit); + } + + async fetchAccounts (params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + this.checkRequiredCredentials (); + const request = { + 'omsId': omsId, + 'UserId': this.uid, + 'UserName': 'igor@ccxt.trade', + }; + const response = await this.privateGetGetUserAccounts (this.extend (request, params)); + // + // [ 449 ] // comma-separated list of account ids + // + const result = []; + for (let i = 0; i < response.length; i++) { + const accountId = this.safeString (response, i); + result.push ({ + 'id': accountId, + 'type': undefined, + 'currency': undefined, + 'info': accountId, + }); + } + return result; + } + + async fetchBalance (params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + const request = { + 'omsId': omsId, + 'AccountId': accountId, + }; + const response = await this.privateGetGetAccountPositions (this.extend (request, params)); + // + // [ + // { + // "OMSId":1, + // "AccountId":449, + // "ProductSymbol":"BTC", + // "ProductId":1, + // "Amount":10.000000000000000000000000000, + // "Hold":0, + // "PendingDeposits":0.0000000000000000000000000000, + // "PendingWithdraws":0.0000000000000000000000000000, + // "TotalDayDeposits":10.000000000000000000000000000, + // "TotalMonthDeposits":10.000000000000000000000000000, + // "TotalYearDeposits":10.000000000000000000000000000, + // "TotalDayDepositNotional":10.000000000000000000000000000, + // "TotalMonthDepositNotional":10.000000000000000000000000000, + // "TotalYearDepositNotional":10.000000000000000000000000000, + // "TotalDayWithdraws":0, + // "TotalMonthWithdraws":0, + // "TotalYearWithdraws":0, + // "TotalDayWithdrawNotional":0, + // "TotalMonthWithdrawNotional":0, + // "TotalYearWithdrawNotional":0, + // "NotionalProductId":8, + // "NotionalProductSymbol":"USDT", + // "NotionalValue":10.000000000000000000000000000, + // "NotionalHoldAmount":0, + // "NotionalRate":1 + // }, + // ] + // + const result = { 'info': response }; + for (let i = 0; i < response.length; i++) { + const balance = response[i]; + const currencyId = this.safeString (balance, 'ProductId'); + const code = this.safeCurrencyCode (currencyId); + const account = this.account (); + account['total'] = this.safeFloat (balance, 'Amount'); + account['used'] = this.safeFloat (balance, 'Hold'); + result[code] = account; + } + return this.parseBalance (result); + } + + parseLedgerEntryType (type) { + const types = { + 'Trade': 'trade', + 'Deposit': 'transaction', + 'Withdraw': 'transaction', + 'Transfer': 'transfer', + 'OrderHold': 'trade', + 'WithdrawHold': 'transaction', + 'DepositHold': 'transaction', + 'MarginHold': 'trade', + 'ManualHold': 'trade', + 'ManualEntry': 'trade', + 'MarginAcquisition': 'trade', + 'MarginRelinquish': 'trade', + 'MarginQuoteHold': 'trade', + }; + return this.safeString (types, type, type); + } + + parseLedgerEntry (item, currency = undefined) { + // + // { + // "TransactionId":2663709493, + // "ReferenceId":68, + // "OMSId":1, + // "AccountId":449, + // "CR":10.000000000000000000000000000, + // "DR":0.0000000000000000000000000000, + // "Counterparty":3, + // "TransactionType":"Other", + // "ReferenceType":"Deposit", + // "ProductId":1, + // "Balance":10.000000000000000000000000000, + // "TimeStamp":1607532331591 + // } + // + const id = this.safeString (item, 'TransactionId'); + const account = this.safeString (item, 'AccountId'); + const referenceId = this.safeString (item, 'ReferenceId'); + const referenceAccount = this.safeString (item, 'Counterparty'); + const type = this.parseLedgerEntryType (this.safeString (item, 'ReferenceType')); + const currencyId = this.safeString (item, 'ProductId'); + const code = this.safeCurrencyCode (currencyId, currency); + const credit = this.safeFloat (item, 'CR'); + const debit = this.safeFloat (item, 'DR'); + let amount = undefined; + let direction = undefined; + if (credit > 0) { + amount = credit; + direction = 'in'; + } else if (debit > 0) { + amount = debit; + direction = 'out'; + } + const timestamp = this.safeInteger (item, 'TimeStamp'); + let before = undefined; + const after = this.safeFloat (item, 'Balance'); + if (direction === 'out') { + before = this.sum (after, amount); + } else if (direction === 'in') { + before = Math.max (0, after - amount); + } + const status = 'ok'; + return { + 'info': item, + 'id': id, + 'direction': direction, + 'account': account, + 'referenceId': referenceId, + 'referenceAccount': referenceAccount, + 'type': type, + 'currency': code, + 'amount': amount, + 'before': before, + 'after': after, + 'status': status, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'fee': undefined, + }; + } + + async fetchLedger (code = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + const request = { + 'omsId': omsId, + 'AccountId': accountId, + }; + if (limit !== undefined) { + request['Depth'] = limit; + } + const response = await this.privateGetGetAccountTransactions (this.extend (request, params)); + // + // [ + // { + // "TransactionId":2663709493, + // "ReferenceId":68, + // "OMSId":1, + // "AccountId":449, + // "CR":10.000000000000000000000000000, + // "DR":0.0000000000000000000000000000, + // "Counterparty":3, + // "TransactionType":"Other", + // "ReferenceType":"Deposit", + // "ProductId":1, + // "Balance":10.000000000000000000000000000, + // "TimeStamp":1607532331591 + // }, + // ] + // + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + } + return this.parseLedger (response, currency, since, limit); + } + + parseOrderStatus (status) { + const statuses = { + 'Accepted': 'open', + 'Rejected': 'rejected', + 'Working': 'open', + 'Canceled': 'canceled', + 'Expired': 'expired', + 'FullyExecuted': 'closed', + }; + return this.safeString (statuses, status, status); + } + + parseOrder (order, market = undefined) { + // + // createOrder + // + // { + // "status":"Accepted", + // "errormsg":"", + // "OrderId": 2543565231 + // } + // + // editOrder + // + // { + // "ReplacementOrderId": 1234, + // "ReplacementClOrdId": 1561, + // "OrigOrderId": 5678, + // "OrigClOrdId": 91011, + // } + // + // fetchOpenOrders, fetchClosedOrders + // + // { + // "Side":"Buy", + // "OrderId":2543565233, + // "Price":19010, + // "Quantity":0.345, + // "DisplayQuantity":0.345, + // "Instrument":8, + // "Account":449, + // "AccountName":"igor@ccxt.trade", + // "OrderType":"Limit", + // "ClientOrderId":0, + // "OrderState":"Working", + // "ReceiveTime":1607579326003, + // "ReceiveTimeTicks":637431761260028981, + // "LastUpdatedTime":1607579326005, + // "LastUpdatedTimeTicks":637431761260054714, + // "OrigQuantity":0.345, + // "QuantityExecuted":0, + // "GrossValueExecuted":0, + // "ExecutableValue":0, + // "AvgPrice":0, + // "CounterPartyId":0, + // "ChangeReason":"NewInputAccepted", + // "OrigOrderId":2543565233, + // "OrigClOrdId":0, + // "EnteredBy":446, + // "UserName":"igor@ccxt.trade", + // "IsQuote":false, + // "InsideAsk":19069.32, + // "InsideAskSize":0.099736, + // "InsideBid":19068.25, + // "InsideBidSize":1.330001, + // "LastTradePrice":19068.25, + // "RejectReason":"", + // "IsLockedIn":false, + // "CancelReason":"", + // "OrderFlag":"AddedToBook", + // "UseMargin":false, + // "StopPrice":0, + // "PegPriceType":"Unknown", + // "PegOffset":0, + // "PegLimitOffset":0, + // "IpAddress":null, + // "ClientOrderIdUuid":null, + // "OMSId":1 + // } + // + const id = this.safeString2 (order, 'ReplacementOrderId', 'OrderId'); + const timestamp = this.safeInteger (order, 'ReceiveTime'); + let lastTradeTimestamp = undefined; + const marketId = this.safeString (order, 'Instrument'); + const symbol = this.safeSymbol (marketId, market); + const side = this.safeStringLower (order, 'Side'); + const type = this.safeStringLower (order, 'OrderType'); + const clientOrderId = this.safeString2 (order, 'ReplacementClOrdId', 'ClientOrderId'); + let price = this.safeFloat (order, 'Price', 0.0); + price = (price > 0.0) ? price : undefined; + const amount = this.safeFloat (order, 'OrigQuantity'); + const filled = this.safeFloat (order, 'QuantityExecuted'); + const cost = this.safeFloat (order, 'GrossValueExecuted'); + let remaining = undefined; + let average = undefined; + if (filled !== undefined) { + if (amount !== undefined) { + remaining = Math.max (0, amount - filled); + } + if (filled > 0) { + lastTradeTimestamp = this.safeInteger (order, 'LastUpdatedTime'); + average = this.safeFloat (order, 'AvgPrice', 0.0); + average = (average > 0) ? average : undefined; + } + } + let stopPrice = this.safeFloat (order, 'StopPrice', 0.0); + stopPrice = (stopPrice > 0.0) ? stopPrice : undefined; + const timeInForce = undefined; + const status = this.parseOrderStatus (this.safeString (order, 'OrderState')); + const fee = undefined; + const trades = undefined; + return { + 'id': id, + 'clientOrderId': clientOrderId, + 'info': order, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'lastTradeTimestamp': lastTradeTimestamp, + 'status': status, + 'symbol': symbol, + 'type': type, + 'timeInForce': timeInForce, + 'postOnly': undefined, + 'side': side, + 'price': price, + 'stopPrice': stopPrice, + 'cost': cost, + 'amount': amount, + 'filled': filled, + 'average': average, + 'remaining': remaining, + 'fee': fee, + 'trades': trades, + }; + } + + async createOrder (symbol, type, side, amount, price = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + const clientOrderId = this.safeInteger2 (params, 'ClientOrderId', 'clientOrderId'); + params = this.omit (params, [ 'accountId', 'AccountId', 'clientOrderId', 'ClientOrderId' ]); + const market = this.market (symbol); + const orderSide = (side === 'buy') ? 0 : 1; + const request = { + 'InstrumentId': parseInt (market['id']), + 'omsId': omsId, + 'AccountId': accountId, + 'TimeInForce': 1, // 0 Unknown, 1 GTC by default, 2 OPG execute as close to opening price as possible, 3 IOC immediate or canceled, 4 FOK fill-or-kill, 5 GTX good 'til executed, 6 GTD good 'til date + // 'ClientOrderId': clientOrderId, // defaults to 0 + // If this order is order A, OrderIdOCO refers to the order ID of an order B (which is not the order being created by this call). + // If order B executes, then order A created by this call is canceled. + // You can also set up order B to watch order A in the same way, but that may require an update to order B to make it watch this one, which could have implications for priority in the order book. + // See CancelReplaceOrder and ModifyOrder. + // 'OrderIdOCO': 0, // The order ID if One Cancels the Other. + // 'UseDisplayQuantity': false, // If you enter a Limit order with a reserve, you must set UseDisplayQuantity to true + 'Side': orderSide, // 0 Buy, 1 Sell, 2 Short, 3 unknown an error condition + 'Quantity': parseFloat (this.amountToPrecision (symbol, amount)), + 'OrderType': this.safeInteger (this.options['orderTypes'], this.capitalize (type)), // 0 Unknown, 1 Market, 2 Limit, 3 StopMarket, 4 StopLimit, 5 TrailingStopMarket, 6 TrailingStopLimit, 7 BlockTrade + // 'PegPriceType': 3, // 1 Last, 2 Bid, 3 Ask, 4 Midpoint + // 'LimitPrice': parseFloat (this.priceToPrecision (symbol, price)), + }; + // If OrderType=1 (Market), Side=0 (Buy), and LimitPrice is supplied, the Market order will execute up to the value specified + if (price !== undefined) { + request['LimitPrice'] = parseFloat (this.priceToPrecision (symbol, price)); + } + if (clientOrderId !== undefined) { + request['ClientOrderId'] = clientOrderId; + } + const response = await this.privatePostSendOrder (this.extend (request, params)); + // + // { + // "status":"Accepted", + // "errormsg":"", + // "OrderId": 2543565231 + // } + // + return this.parseOrder (response, market); + } + + async editOrder (id, symbol, type, side, amount, price = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + const clientOrderId = this.safeInteger2 (params, 'ClientOrderId', 'clientOrderId'); + params = this.omit (params, [ 'accountId', 'AccountId', 'clientOrderId', 'ClientOrderId' ]); + const market = this.market (symbol); + const orderSide = (side === 'buy') ? 0 : 1; + const request = { + 'OrderIdToReplace': parseInt (id), + 'InstrumentId': parseInt (market['id']), + 'omsId': omsId, + 'AccountId': accountId, + 'TimeInForce': 1, // 0 Unknown, 1 GTC by default, 2 OPG execute as close to opening price as possible, 3 IOC immediate or canceled, 4 FOK fill-or-kill, 5 GTX good 'til executed, 6 GTD good 'til date + // 'ClientOrderId': clientOrderId, // defaults to 0 + // If this order is order A, OrderIdOCO refers to the order ID of an order B (which is not the order being created by this call). + // If order B executes, then order A created by this call is canceled. + // You can also set up order B to watch order A in the same way, but that may require an update to order B to make it watch this one, which could have implications for priority in the order book. + // See CancelReplaceOrder and ModifyOrder. + // 'OrderIdOCO': 0, // The order ID if One Cancels the Other. + // 'UseDisplayQuantity': false, // If you enter a Limit order with a reserve, you must set UseDisplayQuantity to true + 'Side': orderSide, // 0 Buy, 1 Sell, 2 Short, 3 unknown an error condition + 'Quantity': parseFloat (this.amountToPrecision (symbol, amount)), + 'OrderType': this.safeInteger (this.options['orderTypes'], this.capitalize (type)), // 0 Unknown, 1 Market, 2 Limit, 3 StopMarket, 4 StopLimit, 5 TrailingStopMarket, 6 TrailingStopLimit, 7 BlockTrade + // 'PegPriceType': 3, // 1 Last, 2 Bid, 3 Ask, 4 Midpoint + // 'LimitPrice': parseFloat (this.priceToPrecision (symbol, price)), + }; + // If OrderType=1 (Market), Side=0 (Buy), and LimitPrice is supplied, the Market order will execute up to the value specified + if (price !== undefined) { + request['LimitPrice'] = parseFloat (this.priceToPrecision (symbol, price)); + } + if (clientOrderId !== undefined) { + request['ClientOrderId'] = clientOrderId; + } + const response = await this.privatePostCancelReplaceOrder (this.extend (request, params)); + // + // { + // "replacementOrderId": 1234, + // "replacementClOrdId": 1561, + // "origOrderId": 5678, + // "origClOrdId": 91011, + // } + // + return this.parseOrder (response, market); + } + + async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + const request = { + 'omsId': omsId, + 'AccountId': accountId, + // 'InstrumentId': market['id'], + // 'TradeId': 123, // If you specify TradeId, GetTradesHistory can return all states for a single trade + // 'OrderId': 456, // If specified, the call returns all trades associated with the order + // 'UserId': integer. The ID of the logged-in user. If not specified, the call returns trades associated with the users belonging to the default account for the logged-in user of this OMS. + // 'StartTimeStamp': long integer. The historical date and time at which to begin the trade report, in POSIX format. If not specified, reverts to the start date of this account on the trading venue. + // 'EndTimeStamp': long integer. Date at which to end the trade report, in POSIX format. + // 'Depth': integer. In this case, the count of trades to return, counting from the StartIndex. If Depth is not specified, returns all trades between BeginTimeStamp and EndTimeStamp, beginning at StartIndex. + // 'StartIndex': 0 // from the most recent trade 0 and moving backwards in time + // 'ExecutionId': 123, // The ID of the individual buy or sell execution. If not specified, returns all. + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['InstrumentId'] = market['id']; + } + if (since !== undefined) { + request['StartTimeStamp'] = since; + } + if (limit !== undefined) { + request['Depth'] = limit; + } + const response = await this.privateGetGetTradesHistory (this.extend (request, params)); + // + // [ + // { + // "OMSId":1, + // "ExecutionId":16916567, + // "TradeId":14476351, + // "OrderId":2543565231, + // "AccountId":449, + // "AccountName":"igor@ccxt.trade", + // "SubAccountId":0, + // "ClientOrderId":0, + // "InstrumentId":8, + // "Side":"Sell", + // "OrderType":"Market", + // "Quantity":0.1230000000000000000000000000, + // "RemainingQuantity":0.0000000000000000000000000000, + // "Price":19069.310000000000000000000000, + // "Value":2345.5251300000000000000000000, + // "CounterParty":"7", + // "OrderTradeRevision":1, + // "Direction":"NoChange", + // "IsBlockTrade":false, + // "Fee":1.1727625650000000000000000000, + // "FeeProductId":8, + // "OrderOriginator":446, + // "UserName":"igor@ccxt.trade", + // "TradeTimeMS":1607565031569, + // "MakerTaker":"Taker", + // "AdapterTradeId":0, + // "InsideBid":19069.310000000000000000000000, + // "InsideBidSize":0.2400950000000000000000000000, + // "InsideAsk":19069.320000000000000000000000, + // "InsideAskSize":0.0997360000000000000000000000, + // "IsQuote":false, + // "CounterPartyClientUserId":1, + // "NotionalProductId":2, + // "NotionalRate":1.0000000000000000000000000000, + // "NotionalValue":2345.5251300000000000000000000, + // "NotionalHoldAmount":0, + // "TradeTime":637431618315686826 + // } + // ] + // + return this.parseTrades (response, market, since, limit); + } + + async cancelAllOrders (symbol = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + const request = { + 'omsId': omsId, + 'AccountId': accountId, + }; + if (symbol !== undefined) { + const market = this.market (symbol); + request['IntrumentId'] = market['id']; + } + const response = await this.privatePostCancelAllOrders (this.extend (request, params)); + // + // { + // "result":true, + // "errormsg":null, + // "errorcode":0, + // "detail":null + // } + // + return response; + } + + async cancelOrder (id, symbol = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + // const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + // const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + // params = this.omit (params, [ 'accountId', 'AccountId' ]); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + } + const request = { + 'omsId': omsId, + // 'AccountId': accountId, + }; + const clientOrderId = this.safeInteger2 (params, 'clientOrderId', 'ClOrderId'); + if (clientOrderId !== undefined) { + request['ClOrderId'] = clientOrderId; + } else { + request['OrderId'] = parseInt (id); + } + params = this.omit (params, [ 'clientOrderId', 'ClOrderId' ]); + const response = await this.privatePostCancelOrder (this.extend (request, params)); + const order = this.parseOrder (response, market); + return this.extend (order, { + 'id': id, + 'clientOrderId': clientOrderId, + }); + } + + async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + } + const request = { + 'omsId': omsId, + 'AccountId': accountId, + }; + const response = await this.privateGetGetOpenOrders (this.extend (request, params)); + // + // [ + // { + // "Side":"Buy", + // "OrderId":2543565233, + // "Price":19010, + // "Quantity":0.345, + // "DisplayQuantity":0.345, + // "Instrument":8, + // "Account":449, + // "AccountName":"igor@ccxt.trade", + // "OrderType":"Limit", + // "ClientOrderId":0, + // "OrderState":"Working", + // "ReceiveTime":1607579326003, + // "ReceiveTimeTicks":637431761260028981, + // "LastUpdatedTime":1607579326005, + // "LastUpdatedTimeTicks":637431761260054714, + // "OrigQuantity":0.345, + // "QuantityExecuted":0, + // "GrossValueExecuted":0, + // "ExecutableValue":0, + // "AvgPrice":0, + // "CounterPartyId":0, + // "ChangeReason":"NewInputAccepted", + // "OrigOrderId":2543565233, + // "OrigClOrdId":0, + // "EnteredBy":446, + // "UserName":"igor@ccxt.trade", + // "IsQuote":false, + // "InsideAsk":19069.32, + // "InsideAskSize":0.099736, + // "InsideBid":19068.25, + // "InsideBidSize":1.330001, + // "LastTradePrice":19068.25, + // "RejectReason":"", + // "IsLockedIn":false, + // "CancelReason":"", + // "OrderFlag":"AddedToBook", + // "UseMargin":false, + // "StopPrice":0, + // "PegPriceType":"Unknown", + // "PegOffset":0, + // "PegLimitOffset":0, + // "IpAddress":null, + // "ClientOrderIdUuid":null, + // "OMSId":1 + // } + // ] + // + return this.parseOrders (response, market, since, limit); + } + + async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + const request = { + 'omsId': omsId, + 'AccountId': accountId, + // 'ClientOrderId': clientOrderId, + // 'OriginalOrderId': id, + // 'OriginalClientOrderId': long integer, + // 'UserId': integer, + // 'InstrumentId': market['id'], + // 'StartTimestamp': since, + // 'EndTimestamp': this.milliseconds (), + // 'Depth': limit, + // 'StartIndex': 0, + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['InstrumentId'] = market['id']; + } + if (since !== undefined) { + request['StartTimeStamp'] = since; + } + if (limit !== undefined) { + request['Depth'] = limit; + } + const response = await this.privateGetGetOrdersHistory (this.extend (request, params)); + // + // [ + // { + // "Side":"Buy", + // "OrderId":2543565233, + // "Price":19010.000000000000000000000000, + // "Quantity":0.0000000000000000000000000000, + // "DisplayQuantity":0.3450000000000000000000000000, + // "Instrument":8, + // "Account":449, + // "AccountName":"igor@ccxt.trade", + // "OrderType":"Limit", + // "ClientOrderId":0, + // "OrderState":"Canceled", + // "ReceiveTime":1607579326003, + // "ReceiveTimeTicks":637431761260028981, + // "LastUpdatedTime":1607580965346, + // "LastUpdatedTimeTicks":637431777653463754, + // "OrigQuantity":0.3450000000000000000000000000, + // "QuantityExecuted":0.0000000000000000000000000000, + // "GrossValueExecuted":0.0000000000000000000000000000, + // "ExecutableValue":0.0000000000000000000000000000, + // "AvgPrice":0.0000000000000000000000000000, + // "CounterPartyId":0, + // "ChangeReason":"UserModified", + // "OrigOrderId":2543565233, + // "OrigClOrdId":0, + // "EnteredBy":446, + // "UserName":"igor@ccxt.trade", + // "IsQuote":false, + // "InsideAsk":19069.320000000000000000000000, + // "InsideAskSize":0.0997360000000000000000000000, + // "InsideBid":19068.250000000000000000000000, + // "InsideBidSize":1.3300010000000000000000000000, + // "LastTradePrice":19068.250000000000000000000000, + // "RejectReason":"", + // "IsLockedIn":false, + // "CancelReason":"UserModified", + // "OrderFlag":"AddedToBook, RemovedFromBook", + // "UseMargin":false, + // "StopPrice":0.0000000000000000000000000000, + // "PegPriceType":"Unknown", + // "PegOffset":0.0000000000000000000000000000, + // "PegLimitOffset":0.0000000000000000000000000000, + // "IpAddress":"5.228.233.138", + // "ClientOrderIdUuid":null, + // "OMSId":1 + // }, + // ] + // + return this.parseOrders (response, market, since, limit); + } + + async fetchOrder (id, symbol = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + } + const request = { + 'omsId': omsId, + 'AccountId': accountId, + 'OrderId': parseInt (id), + }; + const response = await this.privateGetGetOrderStatus (this.extend (request, params)); + // + // { + // "Side":"Sell", + // "OrderId":2543565232, + // "Price":0.0000000000000000000000000000, + // "Quantity":0.0000000000000000000000000000, + // "DisplayQuantity":0.0000000000000000000000000000, + // "Instrument":8, + // "Account":449, + // "AccountName":"igor@ccxt.trade", + // "OrderType":"Market", + // "ClientOrderId":0, + // "OrderState":"FullyExecuted", + // "ReceiveTime":1607569475591, + // "ReceiveTimeTicks":637431662755912377, + // "LastUpdatedTime":1607569475596, + // "LastUpdatedTimeTicks":637431662755960902, + // "OrigQuantity":1.0000000000000000000000000000, + // "QuantityExecuted":1.0000000000000000000000000000, + // "GrossValueExecuted":19068.270478610000000000000000, + // "ExecutableValue":0.0000000000000000000000000000, + // "AvgPrice":19068.270478610000000000000000, + // "CounterPartyId":0, + // "ChangeReason":"Trade", + // "OrigOrderId":2543565232, + // "OrigClOrdId":0, + // "EnteredBy":446, + // "UserName":"igor@ccxt.trade", + // "IsQuote":false, + // "InsideAsk":19069.320000000000000000000000, + // "InsideAskSize":0.0997360000000000000000000000, + // "InsideBid":19069.310000000000000000000000, + // "InsideBidSize":0.2400950000000000000000000000, + // "LastTradePrice":19069.310000000000000000000000, + // "RejectReason":"", + // "IsLockedIn":false, + // "CancelReason":"", + // "OrderFlag":"0", + // "UseMargin":false, + // "StopPrice":0.0000000000000000000000000000, + // "PegPriceType":"Unknown", + // "PegOffset":0.0000000000000000000000000000, + // "PegLimitOffset":0.0000000000000000000000000000, + // "IpAddress":"5.228.233.138", + // "ClientOrderIdUuid":null, + // "OMSId":1 + // } + // + return this.parseOrder (response, market); + } + + async fetchOrderTrades (id, symbol = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + // const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + // const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + // params = this.omit (params, [ 'accountId', 'AccountId' ]); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + } + const request = { + 'OMSId': parseInt (omsId), + // 'AccountId': accountId, + 'OrderId': id, + }; + const response = await this.privatePostGetOrderHistoryByOrderId (this.extend (request, params)); + // + // [ + // { + // "Side":"Sell", + // "OrderId":2543565235, + // "Price":18600.000000000000000000000000, + // "Quantity":0.0000000000000000000000000000, + // "DisplayQuantity":0.0000000000000000000000000000, + // "Instrument":8, + // "Account":449, + // "AccountName":"igor@ccxt.trade", + // "OrderType":"Limit", + // "ClientOrderId":0, + // "OrderState":"FullyExecuted", + // "ReceiveTime":1607585844956, + // "ReceiveTimeTicks":637431826449564182, + // "LastUpdatedTime":1607585844959, + // "LastUpdatedTimeTicks":637431826449593893, + // "OrigQuantity":0.1230000000000000000000000000, + // "QuantityExecuted":0.1230000000000000000000000000, + // "GrossValueExecuted":2345.3947500000000000000000000, + // "ExecutableValue":0.0000000000000000000000000000, + // "AvgPrice":19068.250000000000000000000000, + // "CounterPartyId":0, + // "ChangeReason":"Trade", + // "OrigOrderId":2543565235, + // "OrigClOrdId":0, + // "EnteredBy":446, + // "UserName":"igor@ccxt.trade", + // "IsQuote":false, + // "InsideAsk":19069.320000000000000000000000, + // "InsideAskSize":0.0997360000000000000000000000, + // "InsideBid":19068.250000000000000000000000, + // "InsideBidSize":1.3300010000000000000000000000, + // "LastTradePrice":19068.250000000000000000000000, + // "RejectReason":"", + // "IsLockedIn":false, + // "CancelReason":"", + // "OrderFlag":"0", + // "UseMargin":false, + // "StopPrice":0.0000000000000000000000000000, + // "PegPriceType":"Unknown", + // "PegOffset":0.0000000000000000000000000000, + // "PegLimitOffset":0.0000000000000000000000000000, + // "IpAddress":"5.228.233.138", + // "ClientOrderIdUuid":null, + // "OMSId":1 + // }, + // ] + // + const grouped = this.groupBy (response, 'ChangeReason'); + const trades = this.safeValue (grouped, 'Trade', []); + return this.parseTrades (trades, market, since, limit); + } + + async fetchDepositAddress (code, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + const currency = this.currency (code); + const request = { + 'omsId': omsId, + 'AccountId': accountId, + 'ProductId': currency['id'], + 'GenerateNewKey': false, + }; + const response = await this.privateGetGetDepositInfo (this.extend (request, params)); + // + // { + // "result":true, + // "errormsg":null, + // "statuscode":0, + // "AssetManagerId":1, + // "AccountId":57922, + // "AssetId":16, + // "ProviderId":23, + // "DepositInfo":"[\"0x8A27564b5c30b91C93B1591821642420F323a210\"]" + // } + // + return this.parseDepositAddress (response, currency); + } + + parseDepositAddress (depositAddress, currency = undefined) { + // + // fetchDepositAddress, createDepositAddress + // + // { + // "result":true, + // "errormsg":null, + // "statuscode":0, + // "AssetManagerId":1, + // "AccountId":449, + // "AssetId":1, + // "ProviderId":1, + // "DepositInfo":"[\"r3e95RwVsLH7yCbnMfyh7SA8FdwUJCB4S2?memo=241452010\"]" + // } + // + const depositInfoString = this.safeString (depositAddress, 'DepositInfo'); + const depositInfo = JSON.parse (depositInfoString); + const depositInfoLength = depositInfo.length; + const lastString = this.safeString (depositInfo, depositInfoLength - 1); + const parts = lastString.split ('?memo='); + const address = this.safeString (parts, 0); + const tag = this.safeString (parts, 1); + let code = undefined; + if (currency !== undefined) { + code = currency['code']; + } + this.checkAddress (address); + return { + 'currency': code, + 'address': address, + 'tag': tag, + 'info': depositAddress, + }; + } + + async createDepositAddress (code, params = {}) { + const request = { + 'GenerateNewKey': true, + }; + return await this.fetchDepositAddress (code, this.extend (request, params)); + } + + async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + } + const request = { + 'omsId': omsId, + 'AccountId': accountId, + }; + const response = await this.privateGetGetDeposits (this.extend (request, params)); + // + // [ + // { + // "OMSId":1, + // "DepositId":44, + // "AccountId":449, + // "SubAccountId":0, + // "ProductId":4, + // "Amount":200.00000000000000000000000000, + // "LastUpdateTimeStamp":637431291261187806, + // "ProductType":"CryptoCurrency", + // "TicketStatus":"FullyProcessed", + // "DepositInfo":"{}", + // "DepositCode":"ab0e23d5-a9ce-4d94-865f-9ab464fb1de3", + // "TicketNumber":71, + // "NotionalProductId":13, + // "NotionalValue":200.00000000000000000000000000, + // "FeeAmount":0.0000000000000000000000000000, + // }, + // ] + // + return this.parseTransactions (response, currency, since, limit); + } + + async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + } + const request = { + 'omsId': omsId, + 'AccountId': accountId, + }; + const response = await this.privateGetGetWithdraws (this.extend (request, params)); + // + // [ + // { + // "Amount": 0.0, + // "FeeAmount": 0.0, + // "NotionalValue": 0.0, + // "WithdrawId": 0, + // "AssetManagerId": 0, + // "AccountId": 0, + // "AssetId": 0, + // "TemplateForm": "{\"TemplateType\": \"TetherRPCWithdraw\",\"Comment\": \"TestWithdraw\",\"ExternalAddress\": \"ms6C3pKAAr8gRCcnVebs8VRkVrjcvqNYv3\"}", + // "TemplateFormType": "TetherRPCWithdraw", + // "omsId": 0, + // "TicketStatus": 0, + // "TicketNumber": 0, + // "WithdrawTransactionDetails": "", + // "WithdrawType": "", + // "WithdrawCode": "490b4fa3-53fc-44f4-bd29-7e16be86fba3", + // "AssetType": 0, + // "Reaccepted": true, + // "NotionalProductId": 0 + // }, + // ] + // + return this.parseTransactions (response, currency, since, limit); + } + + parseTransactionStatusByType (status, type = undefined) { + const statusesByType = { + 'deposit': { + 'New': 'pending', // new ticket awaiting operator review + 'AdminProcessing': 'pending', // an admin is looking at the ticket + 'Accepted': 'pending', // an admin accepts the ticket + 'Rejected': 'rejected', // admin rejects the ticket + 'SystemProcessing': 'pending', // automatic processing; an unlikely status for a deposit + 'FullyProcessed': 'ok', // the deposit has concluded + 'Failed': 'failed', // the deposit has failed for some reason + 'Pending': 'pending', // Account Provider has set status to pending + 'Confirmed': 'pending', // Account Provider confirms the deposit + 'AmlProcessing': 'pending', // anti-money-laundering process underway + 'AmlAccepted': 'pending', // anti-money-laundering process successful + 'AmlRejected': 'rejected', // deposit did not stand up to anti-money-laundering process + 'AmlFailed': 'failed', // anti-money-laundering process failed/did not complete + 'LimitsAccepted': 'pending', // deposit meets limits for fiat or crypto asset + 'LimitsRejected': 'rejected', // deposit does not meet limits for fiat or crypto asset + }, + 'withdrawal': { + 'New': 'pending', // awaiting operator review + 'AdminProcessing': 'pending', // An admin is looking at the ticket + 'Accepted': 'pending', // withdrawal will proceed + 'Rejected': 'rejected', // admin or automatic rejection + 'SystemProcessing': 'pending', // automatic processing underway + 'FullyProcessed': 'ok', // the withdrawal has concluded + 'Failed': 'failed', // the withdrawal failed for some reason + 'Pending': 'pending', // the admin has placed the withdrawal in pending status + 'Pending2Fa': 'pending', // user must click 2-factor authentication confirmation link + 'AutoAccepted': 'pending', // withdrawal will be automatically processed + 'Delayed': 'pending', // waiting for funds to be allocated for the withdrawal + 'UserCanceled': 'canceled', // withdraw canceled by user or Superuser + 'AdminCanceled': 'canceled', // withdraw canceled by Superuser + 'AmlProcessing': 'pending', // anti-money-laundering process underway + 'AmlAccepted': 'pending', // anti-money-laundering process complete + 'AmlRejected': 'rejected', // withdrawal did not stand up to anti-money-laundering process + 'AmlFailed': 'failed', // withdrawal did not complete anti-money-laundering process + 'LimitsAccepted': 'pending', // withdrawal meets limits for fiat or crypto asset + 'LimitsRejected': 'rejected', // withdrawal does not meet limits for fiat or crypto asset + 'Submitted': 'pending', // withdrawal sent to Account Provider; awaiting blockchain confirmation + 'Confirmed': 'pending', // Account Provider confirms that withdrawal is on the blockchain + 'ManuallyConfirmed': 'pending', // admin has sent withdrawal via wallet or admin function directly; marks ticket as FullyProcessed; debits account + 'Confirmed2Fa': 'pending', // user has confirmed withdraw via 2-factor authentication. + }, + }; + const statuses = this.safeValue (statusesByType, type, {}); + return this.safeString (statuses, status, status); + } + + parseTransaction (transaction, currency = undefined) { + // + // fetchDeposits + // + // { + // "OMSId":1, + // "DepositId":44, + // "AccountId":449, + // "SubAccountId":0, + // "ProductId":4, + // "Amount":200.00000000000000000000000000, + // "LastUpdateTimeStamp":637431291261187806, + // "ProductType":"CryptoCurrency", + // "TicketStatus":"FullyProcessed", + // "DepositInfo":"{}", + // "DepositCode":"ab0e23d5-a9ce-4d94-865f-9ab464fb1de3", + // "TicketNumber":71, + // "NotionalProductId":13, + // "NotionalValue":200.00000000000000000000000000, + // "FeeAmount":0.0000000000000000000000000000, + // } + // + // fetchWithdrawals + // + // { + // "Amount": 0.0, + // "FeeAmount": 0.0, + // "NotionalValue": 0.0, + // "WithdrawId": 0, + // "AssetManagerId": 0, + // "AccountId": 0, + // "AssetId": 0, + // "TemplateForm": "{\"TemplateType\": \"TetherRPCWithdraw\",\"Comment\": \"TestWithdraw\",\"ExternalAddress\": \"ms6C3pKAAr8gRCcnVebs8VRkVrjcvqNYv3\"}", + // "TemplateFormType": "TetherRPCWithdraw", + // "omsId": 0, + // "TicketStatus": 0, + // "TicketNumber": 0, + // "WithdrawTransactionDetails": "", + // "WithdrawType": "", + // "WithdrawCode": "490b4fa3-53fc-44f4-bd29-7e16be86fba3", + // "AssetType": 0, + // "Reaccepted": true, + // "NotionalProductId": 0 + // } + // + const id = this.safeString (transaction, 'DepositId'); + let txid = undefined; + const currencyId = this.safeString (transaction, 'ProductId'); + const code = this.safeCurrencyCode (currencyId, currency); + let timestamp = undefined; + let type = undefined; + if ('DepositId' in transaction) { + type = 'deposit'; + } else if ('WithdrawId' in transaction) { + type = 'withdrawal'; + } + const templateFormString = this.safeString (transaction, 'TemplateForm'); + let address = undefined; + let updated = this.safeInteger (transaction, 'LastUpdateTimeStamp'); + if (templateFormString !== undefined) { + const templateForm = JSON.parse (templateFormString); + address = this.safeString (templateForm, 'ExternalAddress'); + txid = this.safeString (templateForm, 'TxId'); + timestamp = this.safeInteger (templateForm, 'TimeSubmitted'); + updated = this.safeInteger (templateForm, 'LastUpdated', updated); + } + const addressTo = address; + const status = this.parseTransactionStatusByType (this.safeString (transaction, 'TicketStatus'), type); + const amount = this.safeFloat (transaction, 'Amount'); + const feeCost = this.safeFloat (transaction, 'FeeAmount'); + let fee = undefined; + if (feeCost !== undefined) { + fee = { 'currency': code, 'cost': feeCost }; + } + return { + 'info': transaction, + 'id': id, + 'txid': txid, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'address': address, + 'addressTo': addressTo, + 'addressFrom': undefined, + 'tag': undefined, + 'tagTo': undefined, + 'tagFrom': undefined, + 'type': type, + 'amount': amount, + 'currency': code, + 'status': status, + 'updated': updated, + 'fee': fee, + }; + } + + nonce () { + return this.milliseconds (); + } + + sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { + let url = this.urls['api'][api] + '/' + this.implodeParams (path, params); + const query = this.omit (params, this.extractParams (path)); + if (api === 'public') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } else if (api === 'private') { + this.checkRequiredCredentials (); + const nonce = this.nonce ().toString (); + const auth = nonce + this.uid + this.apiKey; + const signature = this.hmac (this.encode (auth), this.encode (this.secret)); + headers = { + 'Nonce': nonce, + 'APIKey': this.apiKey, + 'Signature': signature, + 'UserId': this.uid, + }; + if (method === 'POST') { + headers['Content-Type'] = 'application/json'; + body = this.json (query); + } else { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } + } + return { 'url': url, 'method': method, 'body': body, 'headers': headers }; + } + + handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { + if (code === 404) { + throw new AuthenticationError (this.id + ' ' + body); + } + if (response === undefined) { + return; + } + // + // {"status":"Rejected","errormsg":"Not_Enough_Funds","errorcode":101} + // {"result":false,"errormsg":"Server Error","errorcode":102,"detail":null} + // + const message = this.safeString (response, 'errormsg'); + if ((message !== undefined) && (message !== '')) { + const feedback = this.id + ' ' + body; + this.throwExactlyMatchedException (this.exceptions['exact'], message, feedback); + this.throwBroadlyMatchedException (this.exceptions['broad'], body, feedback); + throw new ExchangeError (feedback); + } + } +}; diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/novadax.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/novadax.js index c02d4f1a9..dfc6569d2 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/novadax.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/novadax.js @@ -871,6 +871,7 @@ module.exports = class novadax extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/oceanex.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/oceanex.js index b77c3dde7..28cb8e857 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/oceanex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/oceanex.js @@ -512,7 +512,7 @@ module.exports = class oceanex extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a `symbol` argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a `symbol` argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -573,6 +573,7 @@ module.exports = class oceanex extends Exchange { 'symbol': symbol, 'type': this.safeValue (order, 'ord_type'), 'timeInForce': undefined, + 'postOnly': undefined, 'side': this.safeValue (order, 'side'), 'price': this.safeFloat (order, 'price'), 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/okex.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/okex.js index a1d6e3c48..b9b09c4e0 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/okex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/okex.js @@ -3,7 +3,7 @@ // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { ExchangeError, ExchangeNotAvailable, OnMaintenance, ArgumentsRequired, BadRequest, AccountSuspended, InvalidAddress, PermissionDenied, DDoSProtection, InsufficientFunds, InvalidNonce, CancelPending, InvalidOrder, OrderNotFound, AuthenticationError, RequestTimeout, NotSupported, BadSymbol } = require ('./base/errors'); +const { ExchangeError, ExchangeNotAvailable, OnMaintenance, ArgumentsRequired, BadRequest, AccountSuspended, InvalidAddress, PermissionDenied, DDoSProtection, InsufficientFunds, InvalidNonce, CancelPending, InvalidOrder, OrderNotFound, AuthenticationError, RequestTimeout, NotSupported, BadSymbol, RateLimitExceeded } = require ('./base/errors'); const { TICK_SIZE, TRUNCATE } = require ('./base/functions/number'); // --------------------------------------------------------------------------- @@ -108,6 +108,7 @@ module.exports = class okex extends Exchange { 'accounts/{currency}', 'accounts/{currency}/ledger', 'orders', + 'amend_order/{instrument_id}', 'orders_pending', 'orders/{order_id}', 'orders/{client_oid}', @@ -198,6 +199,7 @@ module.exports = class okex extends Exchange { 'post': [ 'accounts/{underlying}/leverage', 'order', + 'amend_order/{instrument_id}', 'orders', 'cancel_order/{instrument_id}/{order_id}', 'cancel_order/{instrument_id}/{client_oid}', @@ -244,12 +246,17 @@ module.exports = class okex extends Exchange { 'post': [ 'accounts/{instrument_id}/leverage', 'order', + 'amend_order/{instrument_id}', 'orders', 'cancel_order/{instrument_id}/{order_id}', 'cancel_order/{instrument_id}/{client_oid}', 'cancel_batch_orders/{instrument_id}', 'order_algo', 'cancel_algos', + 'close_position', + 'cancel_all', + 'order_algo', + 'cancel_algos', ], }, 'option': { @@ -526,7 +533,7 @@ module.exports = class okex extends Exchange { '34021': InvalidAddress, // { "code": 34021, "message": "Not verified address" } '34022': ExchangeError, // { "code": 34022, "message": "Withdrawals are not available for sub accounts" } '34023': PermissionDenied, // { "code": 34023, "message": "Please enable futures trading before transferring your funds" } - '34026': ExchangeError, // transfer too frequently(transfer too frequently) + '34026': RateLimitExceeded, // transfer too frequently(transfer too frequently) '34036': ExchangeError, // Parameter is incorrect, please refer to API documentation '34037': ExchangeError, // Get the sub-account balance interface, account type is not supported '34038': ExchangeError, // Since your C2C transaction is unusual, you are restricted from fund transfer. Please contact our customer support to cancel the restriction @@ -555,7 +562,7 @@ module.exports = class okex extends Exchange { '35031': InvalidOrder, // { "code": 35031, "message": "Cancel order size too large" } '35032': ExchangeError, // { "code": 35032, "message": "Invalid user status" } '35037': ExchangeError, // No last traded price in cache - '35039': ExchangeError, // { "code": 35039, "message": "Open order quantity exceeds limit" } + '35039': InsufficientFunds, // { "code": 35039, "message": "Open order quantity exceeds limit" } '35040': InvalidOrder, // {"error_message":"Invalid order type","result":"true","error_code":"35040","order_id":"-1"} '35044': ExchangeError, // { "code": 35044, "message": "Invalid order status" } '35046': InsufficientFunds, // { "code": 35046, "message": "Negative account balance" } @@ -608,6 +615,7 @@ module.exports = class okex extends Exchange { '35097': ExchangeError, // Order status and order ID cannot exist at the same time '35098': ExchangeError, // An order status or order ID must exist '35099': ExchangeError, // Algo order ID error + '35102': RateLimitExceeded, // {"error_message":"The operation that close all at market price is too frequent","result":"true","error_code":"35102","order_id":"-1"} // option '36001': BadRequest, // Invalid underlying index. '36002': BadRequest, // Instrument does not exist. @@ -677,6 +685,7 @@ module.exports = class okex extends Exchange { 'HOT': 'Hydro Protocol', 'HSR': 'HC', 'MAG': 'Maggie', + 'SBTC': 'Super Bitcoin', 'YOYO': 'YOYOW', 'WIN': 'WinToken', // https://github.com/ccxt/ccxt/issues/5701 }, @@ -976,7 +985,7 @@ module.exports = class okex extends Exchange { const currency = response[i]; const id = this.safeString (currency, 'currency'); const code = this.safeCurrencyCode (id); - const precision = 8; // default precision, todo: fix "magic constants" + const precision = 0.00000001; // default precision, todo: fix "magic constants" const name = this.safeString (currency, 'name'); const canDeposit = this.safeInteger (currency, 'can_deposit'); const canWithdraw = this.safeInteger (currency, 'can_withdraw'); @@ -1712,7 +1721,7 @@ module.exports = class okex extends Exchange { const defaultType = this.safeString2 (this.options, 'fetchBalance', 'defaultType'); const type = this.safeString (params, 'type', defaultType); if (type === undefined) { - throw new ArgumentsRequired (this.id + " fetchBalance requires a type parameter (one of 'account', 'spot', 'margin', 'futures', 'swap')"); + throw new ArgumentsRequired (this.id + " fetchBalance() requires a type parameter (one of 'account', 'spot', 'margin', 'futures', 'swap')"); } await this.loadMarkets (); const suffix = (type === 'account') ? 'Wallet' : 'Accounts'; @@ -1958,7 +1967,7 @@ module.exports = class okex extends Exchange { type = this.safeString (params, 'type', defaultType); } if (type === undefined) { - throw new ArgumentsRequired (this.id + " cancelOrder requires a type parameter (one of 'spot', 'margin', 'futures', 'swap')."); + throw new ArgumentsRequired (this.id + " cancelOrder() requires a type parameter (one of 'spot', 'margin', 'futures', 'swap')."); } let method = type + 'PostCancelOrder'; const request = { @@ -2165,6 +2174,7 @@ module.exports = class okex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -2181,14 +2191,14 @@ module.exports = class okex extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); const defaultType = this.safeString2 (this.options, 'fetchOrder', 'defaultType', market['type']); const type = this.safeString (params, 'type', defaultType); if (type === undefined) { - throw new ArgumentsRequired (this.id + " fetchOrder requires a type parameter (one of 'spot', 'margin', 'futures', 'swap')."); + throw new ArgumentsRequired (this.id + " fetchOrder() requires a type parameter (one of 'spot', 'margin', 'futures', 'swap')."); } const instrumentId = (market['futures'] || market['swap']) ? 'InstrumentId' : ''; let method = type + 'GetOrders' + instrumentId; @@ -2256,7 +2266,7 @@ module.exports = class okex extends Exchange { async fetchOrdersByState (state, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrdersByState requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrdersByState() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -2268,7 +2278,7 @@ module.exports = class okex extends Exchange { type = this.safeString (params, 'type', defaultType); } if (type === undefined) { - throw new ArgumentsRequired (this.id + " fetchOrder requires a type parameter (one of 'spot', 'margin', 'futures', 'swap')."); + throw new ArgumentsRequired (this.id + " fetchOrdersByState() requires a type parameter (one of 'spot', 'margin', 'futures', 'swap')."); } const request = { 'instrument_id': market['id'], @@ -2598,6 +2608,7 @@ module.exports = class okex extends Exchange { // "currency": "XMR", // "from": "", // "to": "48PjH3ksv1fiXniKvKvyH5UtFs5WhfS2Vf7U3TwzdRJtCc7HJWvCQe56dRahyhQyTAViXZ8Nzk4gQg6o4BJBMUoxNy8y8g7", + // "tag": "1234567", // "deposit_id": 11571659, <-- we can use this // "timestamp": "2019-10-01T14:54:19.000Z", // "status": "2" @@ -2609,6 +2620,7 @@ module.exports = class okex extends Exchange { const withdrawalId = this.safeString (transaction, 'withdrawal_id'); const addressFrom = this.safeString (transaction, 'from'); const addressTo = this.safeString (transaction, 'to'); + const tagTo = this.safeString (transaction, 'tag'); if (withdrawalId !== undefined) { type = 'withdrawal'; id = withdrawalId; @@ -2649,8 +2661,8 @@ module.exports = class okex extends Exchange { 'addressTo': addressTo, 'address': address, 'tagFrom': undefined, - 'tagTo': undefined, - 'tag': undefined, + 'tagTo': tagTo, + 'tag': tagTo, 'status': status, 'type': type, 'updated': undefined, @@ -2823,7 +2835,7 @@ module.exports = class okex extends Exchange { // this aspect renders the 'fills' endpoint unusable for fetchOrderTrades // until either OKEX fixes the API or we workaround this on our side somehow if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -3212,16 +3224,28 @@ module.exports = class okex extends Exchange { request['limit'] = limit; } let currency = undefined; - if ((type === 'spot') || (type === 'futures')) { + if (type === 'spot') { if (code === undefined) { - throw new ArgumentsRequired (this.id + " fetchLedger requires a currency code argument for '" + type + "' markets"); + throw new ArgumentsRequired (this.id + " fetchLedger() requires a currency code argument for '" + type + "' markets"); } argument = 'Currency'; currency = this.currency (code); request['currency'] = currency['id']; + } else if (type === 'futures') { + if (code === undefined) { + throw new ArgumentsRequired (this.id + " fetchLedger() requires an underlying symbol for '" + type + "' markets"); + } + argument = 'Underlying'; + const market = this.market (code); // we intentionally put a market inside here for the margin and swap ledgers + const marketInfo = this.safeValue (market, 'info', {}); + const settlementCurrencyId = this.safeString (marketInfo, 'settlement_currency'); + const settlementCurrencyСode = this.safeCurrencyCode (settlementCurrencyId); + currency = this.currency (settlementCurrencyСode); + const underlyingId = this.safeString (marketInfo, 'underlying'); + request['underlying'] = underlyingId; } else if ((type === 'margin') || (type === 'swap')) { if (code === undefined) { - throw new ArgumentsRequired (this.id + " fetchLedger requires a code argument (a market symbol) for '" + type + "' markets"); + throw new ArgumentsRequired (this.id + " fetchLedger() requires a code argument (a market symbol) for '" + type + "' markets"); } argument = 'InstrumentId'; const market = this.market (code); // we intentionally put a market inside here for the margin and swap ledgers diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/phemex.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/phemex.js index 5fa317455..b1c294ab2 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/phemex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/phemex.js @@ -102,6 +102,7 @@ module.exports = class phemex extends Exchange { 'exchange/spot/order/trades', // ?symbol=&start=&end=&limit=&offset= // swap 'accounts/accountPositions', // ?currency= + 'accounts/positions', // ?currency= 'orders/activeList', // ?symbol= 'exchange/order/list', // ?symbol=&start=&end=&offset=&limit=&ordStatus=&withCount= 'exchange/order', // ?symbol=&orderID= @@ -728,7 +729,7 @@ module.exports = class phemex extends Exchange { parseBidAsk (bidask, priceKey = 0, amountKey = 1, market = undefined) { if (market === undefined) { - throw new ArgumentsRequired (this.id + ' parseBidAsk requires a market argument'); + throw new ArgumentsRequired (this.id + ' parseBidAsk() requires a market argument'); } let amount = this.safeFloat (bidask, amountKey); if (market['spot']) { @@ -821,6 +822,9 @@ module.exports = class phemex extends Exchange { } fromEn (en, scale, precision, precisionMode = undefined) { + if (en === undefined) { + return en; + } precisionMode = (precisionMode === undefined) ? this.precisionMode : precisionMode; return parseFloat (this.decimalToPrecision (en * Math.pow (10, -scale), ROUND, precision, precisionMode)); } @@ -864,13 +868,19 @@ module.exports = class phemex extends Exchange { // 48759063370, // quote volume // ] // + let baseVolume = undefined; + if ((market !== undefined) && market['spot']) { + baseVolume = this.fromEv (this.safeFloat (ohlcv, 7), market); + } else { + baseVolume = this.safeInteger (ohlcv, 7); + } return [ this.safeTimestamp (ohlcv, 0), this.fromEp (this.safeFloat (ohlcv, 3), market), this.fromEp (this.safeFloat (ohlcv, 4), market), this.fromEp (this.safeFloat (ohlcv, 5), market), this.fromEp (this.safeFloat (ohlcv, 6), market), - this.fromEv (this.safeFloat (ohlcv, 7), market), + baseVolume, ]; } @@ -897,7 +907,7 @@ module.exports = class phemex extends Exchange { request['from'] = now - duration * this.sum (limit, 1); request['to'] = now; } else { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a since argument, or a limit argument, or both'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a since argument, or a limit argument, or both'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1402,7 +1412,7 @@ module.exports = class phemex extends Exchange { } else { const currency = this.safeString (params, 'currency'); if (currency === undefined) { - throw new ArgumentsRequired (this.id + ' fetchBalance requires a code parameter or a currency parameter for ' + type + ' type'); + throw new ArgumentsRequired (this.id + ' fetchBalance() requires a code parameter or a currency parameter for ' + type + ' type'); } } method = 'privateGetAccountsAccountPositions'; @@ -1637,8 +1647,9 @@ module.exports = class phemex extends Exchange { filled = Math.min (0, amount - remaining); } } - const timeInForce = this.parseTimeInForce (this.safeStirng (order, 'timeInForce')); + const timeInForce = this.parseTimeInForce (this.safeString (order, 'timeInForce')); const stopPrice = this.fromEp (this.safeFloat (order, 'stopPxEp', market)); + const postOnly = (timeInForce === 'PO'); return { 'info': order, 'id': id, @@ -1649,6 +1660,7 @@ module.exports = class phemex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -1721,6 +1733,7 @@ module.exports = class phemex extends Exchange { } const timeInForce = this.parseTimeInForce (this.safeString (order, 'timeInForce')); const stopPrice = this.safeFloat (order, 'stopPx'); + const postOnly = (timeInForce === 'PO'); return { 'info': order, 'id': id, @@ -1731,6 +1744,7 @@ module.exports = class phemex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -1786,8 +1800,10 @@ module.exports = class phemex extends Exchange { }; if (market['spot']) { let qtyType = this.safeValue (params, 'qtyType', 'ByBase'); - if (price !== undefined) { - qtyType = 'ByQuote'; + if ((type === 'Market') || (type === 'Stop') || (type === 'MarketIfTouched')) { + if (price !== undefined) { + qtyType = 'ByQuote'; + } } request['qtyType'] = qtyType; if (qtyType === 'ByQuote') { @@ -1797,7 +1813,7 @@ module.exports = class phemex extends Exchange { if (price !== undefined) { cost = amount * price; } else if (cost === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder ' + qtyType + ' requires a price argument or a cost parameter'); + throw new ArgumentsRequired (this.id + ' createOrder() ' + qtyType + ' requires a price argument or a cost parameter'); } } cost = (cost === undefined) ? amount : cost; @@ -1900,7 +1916,7 @@ module.exports = class phemex extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1940,7 +1956,7 @@ module.exports = class phemex extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1974,7 +1990,7 @@ module.exports = class phemex extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1996,7 +2012,7 @@ module.exports = class phemex extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -2020,7 +2036,7 @@ module.exports = class phemex extends Exchange { async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchClosedOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchClosedOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -2082,7 +2098,7 @@ module.exports = class phemex extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchClosedOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchClosedOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -2317,7 +2333,7 @@ module.exports = class phemex extends Exchange { const currencyId = this.safeString (transaction, 'currency'); currency = this.safeCurrency (currencyId, currency); const code = currency['code']; - const timestamp = this.safeInteger (transaction, 'createdAt'); + const timestamp = this.safeInteger2 (transaction, 'createdAt', 'submitedAt'); let type = this.safeStringLower (transaction, 'type'); const feeCost = this.fromEn (this.safeFloat (transaction, 'feeEv'), currency['valueScale'], currency['precision']); let fee = undefined; diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/poloniex.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/poloniex.js index f0b874031..30eee15c9 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/poloniex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/poloniex.js @@ -204,7 +204,6 @@ module.exports = class poloniex extends Exchange { 'Error pulling ': ExchangeError, // {"error":"Error pulling order book"} }, }, - 'orders': {}, // orders cache / emulation }); } @@ -923,6 +922,7 @@ module.exports = class poloniex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/probit.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/probit.js index 9fb49b9d1..522045f2c 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/probit.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/probit.js @@ -121,6 +121,7 @@ module.exports = class probit extends Exchange { 'RATE_LIMIT_EXCEEDED': RateLimitExceeded, // You are sending requests too frequently. Please try it later. 'MARKET_UNAVAILABLE': ExchangeNotAvailable, // Market is closed today 'INVALID_MARKET': BadSymbol, // Requested market is not exist + 'MARKET_CLOSED': BadSymbol, // {"errorCode":"MARKET_CLOSED"} 'INVALID_CURRENCY': BadRequest, // Requested currency is not exist on ProBit system 'TOO_MANY_OPEN_ORDERS': DDoSProtection, // Too many open orders 'DUPLICATE_ADDRESS': InvalidAddress, // Address already exists in withdrawal address list @@ -142,6 +143,7 @@ module.exports = class probit extends Exchange { 'BTCBEAR': 'BEAR', 'BTCBULL': 'BULL', 'CBC': 'CryptoBharatCoin', + 'HBC': 'Hybrid Bank Cash', 'UNI': 'UNICORN Token', }, }); @@ -299,7 +301,18 @@ module.exports = class probit extends Exchange { const withdrawalSuspended = this.safeValue (platform, 'withdrawal_suspended'); const active = !(depositSuspended && withdrawalSuspended); const withdrawalFees = this.safeValue (platform, 'withdrawal_fee', {}); - const withdrawalFeesByPriority = this.sortBy (withdrawalFees, 'priority'); + const fees = []; + // sometimes the withdrawal fee is an empty object + // [ { 'amount': '0.015', 'priority': 1, 'currency_id': 'ETH' }, {} ] + for (let j = 0; j < withdrawalFees.length; j++) { + const withdrawalFee = withdrawalFees[j]; + const amount = this.safeFloat (withdrawalFee, 'amount'); + const priority = this.safeInteger (withdrawalFee, 'priority'); + if ((amount !== undefined) && (priority !== undefined)) { + fees.push (withdrawalFee); + } + } + const withdrawalFeesByPriority = this.sortBy (fees, 'priority'); const withdrawalFee = this.safeValue (withdrawalFeesByPriority, 0, {}); const fee = this.safeFloat (withdrawalFee, 'amount'); result[code] = { @@ -729,7 +742,7 @@ module.exports = class probit extends Exchange { let endTime = now; if (since === undefined) { if (limit === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires either a since argument or a limit argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires either a since argument or a limit argument'); } else { startTime = now - limit * duration * 1000; } @@ -829,7 +842,7 @@ module.exports = class probit extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1022,7 +1035,7 @@ module.exports = class probit extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/qtrade.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/qtrade.js index b1a3ab46e..aa66545bf 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/qtrade.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/qtrade.js @@ -915,6 +915,7 @@ module.exports = class qtrade extends Exchange { 'symbol': symbol, 'type': orderType, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/rightbtc.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/rightbtc.js index ca2de52dd..d22048303 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/rightbtc.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/rightbtc.js @@ -431,7 +431,7 @@ module.exports = class rightbtc extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -541,6 +541,7 @@ module.exports = class rightbtc extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -557,7 +558,7 @@ module.exports = class rightbtc extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -595,7 +596,7 @@ module.exports = class rightbtc extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -632,7 +633,7 @@ module.exports = class rightbtc extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { let ids = this.safeString (params, 'ids'); if ((symbol === undefined) || (ids === undefined)) { - throw new ArgumentsRequired (this.id + " fetchOrders requires a 'symbol' argument and an extra 'ids' parameter. The 'ids' should be an array or a string of one or more order ids separated with slashes."); // eslint-disable-line quotes + throw new ArgumentsRequired (this.id + " fetchOrders() requires a 'symbol' argument and an extra 'ids' parameter. The 'ids' should be an array or a string of one or more order ids separated with slashes."); // eslint-disable-line quotes } if (Array.isArray (ids)) { ids = ids.join ('/'); @@ -671,7 +672,7 @@ module.exports = class rightbtc extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/ripio.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/ripio.js index 4c6595d11..b3a30607e 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/ripio.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/ripio.js @@ -830,6 +830,7 @@ module.exports = class ripio extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/southxchange.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/southxchange.js index 126cfdfb3..d2bdd8cec 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/southxchange.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/southxchange.js @@ -264,6 +264,7 @@ module.exports = class southxchange extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/static_dependencies/elliptic/package.json b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/static_dependencies/elliptic/package.json new file mode 100644 index 000000000..ec6f8c8e5 --- /dev/null +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/static_dependencies/elliptic/package.json @@ -0,0 +1,84 @@ +{ + "_args": [ + [ + "elliptic@6.4.0", + "/Users/carlorevelli/Documents/important/code/ccxt" + ] + ], + "_development": true, + "_from": "elliptic@6.4.0", + "_id": "elliptic@6.4.0", + "_inBundle": false, + "_integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "_location": "/elliptic", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "elliptic@6.4.0", + "name": "elliptic", + "escapedName": "elliptic", + "rawSpec": "6.4.0", + "saveSpec": null, + "fetchSpec": "6.4.0" + }, + "_requiredBy": [ + "/browserify-sign", + "/create-ecdh" + ], + "_resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "_spec": "6.4.0", + "_where": "/Users/carlorevelli/Documents/important/code/ccxt", + "author": { + "name": "Fedor Indutny", + "email": "fedor@indutny.com" + }, + "bugs": { + "url": "https://github.com/indutny/elliptic/issues" + }, + "dependencies": { + }, + "description": "EC cryptography", + "devDependencies": { + "brfs": "^1.4.3", + "coveralls": "^2.11.3", + "grunt": "^0.4.5", + "grunt-browserify": "^5.0.0", + "grunt-cli": "^1.2.0", + "grunt-contrib-connect": "^1.0.0", + "grunt-contrib-copy": "^1.0.0", + "grunt-contrib-uglify": "^1.0.1", + "grunt-mocha-istanbul": "^3.0.1", + "grunt-saucelabs": "^8.6.2", + "istanbul": "^0.4.2", + "jscs": "^2.9.0", + "jshint": "^2.6.0", + "mocha": "^2.1.0" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/indutny/elliptic", + "keywords": [ + "EC", + "Elliptic", + "curve", + "Cryptography" + ], + "license": "MIT", + "main": "lib/elliptic.js", + "name": "elliptic", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indutny/elliptic.git" + }, + "scripts": { + "jscs": "jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js", + "jshint": "jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js", + "lint": "npm run jscs && npm run jshint", + "test": "npm run lint && npm run unit", + "unit": "istanbul test _mocha --reporter=spec test/index.js", + "version": "grunt dist && git add dist/" + }, + "version": "6.4.0" +} diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/stex.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/stex.js index aaf34ea4a..af2e256f3 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/stex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/stex.js @@ -185,6 +185,8 @@ module.exports = class stex extends Exchange { 'BITS': 'Bitcoinus', 'BITSW': 'BITS', 'BHD': 'Bithold', + 'BTH': 'Bithereum', + 'SBTC': 'SBTCT', // SiamBitcoin }, 'options': { 'parseOrderToPrecision': false, @@ -926,6 +928,7 @@ module.exports = class stex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -1222,7 +1225,7 @@ module.exports = class stex extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/test/Exchange/test.fetchCurrencies.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/test/Exchange/test.fetchCurrencies.js index 79c018d74..563ed1eea 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/test/Exchange/test.fetchCurrencies.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/test/Exchange/test.fetchCurrencies.js @@ -27,7 +27,9 @@ module.exports = async (exchange) => { const method = 'fetchCurrencies' const currencies = await exchange[method] () - Object.values (currencies).forEach ((currency) => testCurrency (exchange, currency, method)) + if (currencies !== undefined) { + Object.values (currencies).forEach ((currency) => testCurrency (exchange, currency, method)) + } return currencies } else { diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/test/Exchange/test.ticker.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/test/Exchange/test.ticker.js index 33a86ceaf..7d91ea0ba 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/test/Exchange/test.ticker.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/test/Exchange/test.ticker.js @@ -82,8 +82,12 @@ module.exports = (exchange, ticker, method, symbol) => { 'okex', 'southxchange', // https://user-images.githubusercontent.com/1294454/59953532-314bea80-9489-11e9-85b3-2a711ca49aa7.png 'bitmart', + 'ftx', 'gateio', // some ticker bids are greaters than asks 'timex', + 'poloniex', + 'qtrade', + 'bigone', ].includes (exchange.id)) { diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/therock.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/therock.js index c26b1b8fe..12217e2b2 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/therock.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/therock.js @@ -965,6 +965,7 @@ module.exports = class therock extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -994,7 +995,7 @@ module.exports = class therock extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1039,7 +1040,7 @@ module.exports = class therock extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1078,7 +1079,7 @@ module.exports = class therock extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/tidebit.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/tidebit.js index 1f2ef5cd9..acf65de25 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/tidebit.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/tidebit.js @@ -422,6 +422,7 @@ module.exports = class tidebit extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/tidex.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/tidex.js index 5b2504114..0988a4ad1 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/tidex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/tidex.js @@ -580,6 +580,7 @@ module.exports = class tidex extends Exchange { 'lastTradeTimestamp': undefined, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': this.safeString (order, 'type'), 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/timex.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/timex.js index 3937e4660..4c71ac4ff 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/timex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/timex.js @@ -460,16 +460,19 @@ module.exports = class timex extends Exchange { async createOrder (symbol, type, side, amount, price = undefined, params = {}) { await this.loadMarkets (); const market = this.market (symbol); + const uppercaseSide = side.toUpperCase (); + const uppercaseType = type.toUpperCase (); const request = { 'symbol': market['id'], 'quantity': this.amountToPrecision (symbol, amount), - 'side': side.toUpperCase (), + 'side': uppercaseSide, + 'orderTypes': uppercaseType, // 'clientOrderId': '123', // 'expireIn': 1575523308, // in seconds // 'expireTime': 1575523308, // unix timestamp }; let query = params; - if (type === 'limit') { + if (uppercaseType === 'LIMIT') { request['price'] = this.priceToPrecision (symbol, price); const defaultExpireIn = this.safeInteger (this.options, 'expireIn'); const expireTime = this.safeValue (params, 'expireTime'); @@ -479,7 +482,7 @@ module.exports = class timex extends Exchange { } else if (expireIn !== undefined) { request['expireIn'] = expireIn; } else { - throw new InvalidOrder (this.id + ' createOrder method requires a expireTime or expireIn param for a ' + type + ' order, you can also set the expireIn exchange-wide option'); + throw new InvalidOrder (this.id + ' createOrder() method requires a expireTime or expireIn param for a ' + type + ' order, you can also set the expireIn exchange-wide option'); } query = this.omit (params, [ 'expireTime', 'expireIn' ]); } else { @@ -1182,6 +1185,7 @@ module.exports = class timex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/upbit.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/upbit.js index b7665f041..829aa6586 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/upbit.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/upbit.js @@ -15,7 +15,6 @@ module.exports = class upbit extends Exchange { 'countries': [ 'KR' ], 'version': 'v1', 'rateLimit': 1000, - 'certified': true, 'pro': true, // new metainfo interface 'has': { @@ -221,7 +220,7 @@ module.exports = class upbit extends Exchange { const walletLocked = this.safeValue (memberInfo, 'wallet_locked'); const locked = this.safeValue (memberInfo, 'locked'); let active = true; - if ((canWithdraw !== undefined) && canWithdraw) { + if ((canWithdraw !== undefined) && !canWithdraw) { active = false; } else if (walletState !== 'working') { active = false; @@ -1204,6 +1203,7 @@ module.exports = class upbit extends Exchange { 'symbol': market['symbol'], 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/vcc.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/vcc.js index 006c36ec6..bd3a9602d 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/vcc.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/vcc.js @@ -1056,6 +1056,7 @@ module.exports = class vcc extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/wavesexchange.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/wavesexchange.js index 976435981..139780062 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/wavesexchange.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/wavesexchange.js @@ -1056,7 +1056,7 @@ module.exports = class wavesexchange extends Exchange { this.checkRequiredDependencies (); this.checkRequiredKeys (); if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1269,6 +1269,7 @@ module.exports = class wavesexchange extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/xena.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/xena.js index 8be88d342..2facd429b 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/xena.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/xena.js @@ -38,6 +38,10 @@ module.exports = class xena extends Exchange { }, 'urls': { 'logo': 'https://user-images.githubusercontent.com/51840849/87489843-bb469280-c64c-11ea-91aa-69c6326506af.jpg', + 'test': { + 'public': 'https://trading.demo.xena.io/api', + 'private': 'https://api.demo.xena.io', + }, 'api': { 'public': 'https://trading.xena.exchange/api', 'private': 'https://api.xena.exchange', @@ -958,6 +962,7 @@ module.exports = class xena extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -1017,14 +1022,14 @@ module.exports = class xena extends Exchange { }; if ((type === 'limit') || (type === 'stop-limit')) { if (price === undefined) { - throw new InvalidOrder (this.id + ' createOrder requires a price argument for order type ' + type); + throw new InvalidOrder (this.id + ' createOrder() requires a price argument for order type ' + type); } request['price'] = this.priceToPrecision (symbol, price); } if ((type === 'stop') || (type === 'stop-limit')) { const stopPx = this.safeFloat (params, 'stopPx'); if (stopPx === undefined) { - throw new InvalidOrder (this.id + ' createOrder requires a stopPx param for order type ' + type); + throw new InvalidOrder (this.id + ' createOrder() requires a stopPx param for order type ' + type); } request['stopPx'] = this.priceToPrecision (symbol, stopPx); params = this.omit (params, 'stopPx'); @@ -1062,7 +1067,7 @@ module.exports = class xena extends Exchange { async editOrder (id, symbol, type, side, amount = undefined, price = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); await this.loadAccounts (); @@ -1117,7 +1122,7 @@ module.exports = class xena extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); await this.loadAccounts (); diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/yobit.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/yobit.js index 46fc1d99d..0ab100f68 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/yobit.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/yobit.js @@ -133,6 +133,7 @@ module.exports = class yobit extends Exchange { 'LOCX': 'LOC', 'LUNYR': 'LUN', 'LUN': 'LunarCoin', // they just change the ticker if it is already taken + 'MASK': 'Yobit MASK', 'MDT': 'Midnight', 'NAV': 'NavajoCoin', 'NBT': 'NiceBytes', @@ -149,6 +150,7 @@ module.exports = class yobit extends Exchange { 'RCN': 'RCoin', 'REP': 'Republicoin', 'RUR': 'RUB', + 'SBTC': 'Super Bitcoin', 'TTC': 'TittieCoin', 'UNI': 'Universe', 'UST': 'Uservice', @@ -595,6 +597,7 @@ module.exports = class yobit extends Exchange { 'lastTradeTimestamp': undefined, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -639,7 +642,7 @@ module.exports = class yobit extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a `symbol` argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a `symbol` argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -727,24 +730,6 @@ module.exports = class yobit extends Exchange { }; } - calculateFee (symbol, type, side, amount, price, takerOrMaker = 'taker', params = {}) { - const market = this.markets[symbol]; - let key = 'quote'; - const rate = market[takerOrMaker]; - let cost = parseFloat (this.costToPrecision (symbol, amount * rate)); - if (side === 'sell') { - cost *= price; - } else { - key = 'base'; - } - return { - 'type': takerOrMaker, - 'currency': market[key], - 'rate': rate, - 'cost': cost, - }; - } - sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { let url = this.urls['api'][api]; const query = this.omit (params, this.extractParams (path)); diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/zaif.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/zaif.js index b9618184e..2c6454a05 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/zaif.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/zaif.js @@ -357,6 +357,7 @@ module.exports = class zaif extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/zb.js b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/zb.js index 9b4d81872..1f8f61cdf 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/zb.js +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/js/zb.js @@ -3,7 +3,7 @@ // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { BadRequest, ExchangeError, ArgumentsRequired, AuthenticationError, InsufficientFunds, OrderNotFound, ExchangeNotAvailable, DDoSProtection, InvalidOrder } = require ('./base/errors'); +const { BadRequest, ExchangeError, ArgumentsRequired, AuthenticationError, InsufficientFunds, OrderNotFound, ExchangeNotAvailable, DDoSProtection, InvalidOrder, InvalidAddress } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -22,15 +22,19 @@ module.exports = class zb extends Exchange { 'createOrder': true, 'fetchBalance': true, 'fetchDepositAddress': true, + 'fetchDepositAddresses': true, + 'fetchDeposits': true, 'fetchMarkets': true, 'fetchOHLCV': true, 'fetchOpenOrders': true, 'fetchOrder': true, 'fetchOrderBook': true, 'fetchOrders': true, + 'fetchClosedOrders': true, 'fetchTicker': true, 'fetchTickers': true, 'fetchTrades': true, + 'fetchWithdrawals': true, 'withdraw': true, }, 'timeframes': { @@ -49,33 +53,38 @@ module.exports = class zb extends Exchange { '1w': '1week', }, 'exceptions': { - // '1000': 'Successful operation', - '1001': ExchangeError, // 'General error message', - '1002': ExchangeError, // 'Internal error', - '1003': AuthenticationError, // 'Verification does not pass', - '1004': AuthenticationError, // 'Funding security password lock', - '1005': AuthenticationError, // 'Funds security password is incorrect, please confirm and re-enter.', - '1006': AuthenticationError, // 'Real-name certification pending approval or audit does not pass', - '1009': ExchangeNotAvailable, // 'This interface is under maintenance', - '2001': InsufficientFunds, // 'Insufficient CNY Balance', - '2002': InsufficientFunds, // 'Insufficient BTC Balance', - '2003': InsufficientFunds, // 'Insufficient LTC Balance', - '2005': InsufficientFunds, // 'Insufficient ETH Balance', - '2006': InsufficientFunds, // 'Insufficient ETC Balance', - '2007': InsufficientFunds, // 'Insufficient BTS Balance', - '2009': InsufficientFunds, // 'Account balance is not enough', - '3001': OrderNotFound, // 'Pending orders not found', - '3002': InvalidOrder, // 'Invalid price', - '3003': InvalidOrder, // 'Invalid amount', - '3004': AuthenticationError, // 'User does not exist', - '3005': BadRequest, // 'Invalid parameter', - '3006': AuthenticationError, // 'Invalid IP or inconsistent with the bound IP', - '3007': AuthenticationError, // 'The request time has expired', - '3008': OrderNotFound, // 'Transaction records not found', - '3009': InvalidOrder, // 'The price exceeds the limit', - '3011': InvalidOrder, // 'The entrusted price is abnormal, please modify it and place order again', - '4001': ExchangeNotAvailable, // 'API interface is locked or not enabled', - '4002': DDoSProtection, // 'Request too often', + 'exact': { + // '1000': 'Successful operation', + '1001': ExchangeError, // 'General error message', + '1002': ExchangeError, // 'Internal error', + '1003': AuthenticationError, // 'Verification does not pass', + '1004': AuthenticationError, // 'Funding security password lock', + '1005': AuthenticationError, // 'Funds security password is incorrect, please confirm and re-enter.', + '1006': AuthenticationError, // 'Real-name certification pending approval or audit does not pass', + '1009': ExchangeNotAvailable, // 'This interface is under maintenance', + '2001': InsufficientFunds, // 'Insufficient CNY Balance', + '2002': InsufficientFunds, // 'Insufficient BTC Balance', + '2003': InsufficientFunds, // 'Insufficient LTC Balance', + '2005': InsufficientFunds, // 'Insufficient ETH Balance', + '2006': InsufficientFunds, // 'Insufficient ETC Balance', + '2007': InsufficientFunds, // 'Insufficient BTS Balance', + '2009': InsufficientFunds, // 'Account balance is not enough', + '3001': OrderNotFound, // 'Pending orders not found', + '3002': InvalidOrder, // 'Invalid price', + '3003': InvalidOrder, // 'Invalid amount', + '3004': AuthenticationError, // 'User does not exist', + '3005': BadRequest, // 'Invalid parameter', + '3006': AuthenticationError, // 'Invalid IP or inconsistent with the bound IP', + '3007': AuthenticationError, // 'The request time has expired', + '3008': OrderNotFound, // 'Transaction records not found', + '3009': InvalidOrder, // 'The price exceeds the limit', + '3011': InvalidOrder, // 'The entrusted price is abnormal, please modify it and place order again', + '4001': ExchangeNotAvailable, // 'API interface is locked or not enabled', + '4002': DDoSProtection, // 'Request too often', + }, + 'broad': { + '提币地址有误,请先添加提币地址。': InvalidAddress, // {"code":1001,"message":"提币地址有误,请先添加提币地址。"} + }, }, 'urls': { 'logo': 'https://user-images.githubusercontent.com/1294454/32859187-cd5214f0-ca5e-11e7-967d-96568e2e2bd1.jpg', @@ -102,20 +111,28 @@ module.exports = class zb extends Exchange { 'get': [ // spot API 'order', + 'orderMoreV2', 'cancelOrder', 'getOrder', 'getOrders', 'getOrdersNew', 'getOrdersIgnoreTradeType', 'getUnfinishedOrdersIgnoreTradeType', + 'getFinishedAndPartialOrders', 'getAccountInfo', 'getUserAddress', + 'getPayinAddress', 'getWithdrawAddress', 'getWithdrawRecord', 'getChargeRecord', 'getCnyWithdrawRecord', 'getCnyChargeRecord', 'withdraw', + // sub accounts + 'addSubUser', + 'getSubUserList', + 'doTransferFunds', + 'createSubUserKey', // leverage API 'getLeverAssetsInfo', 'getLeverBills', @@ -126,8 +143,21 @@ module.exports = class zb extends Exchange { 'getLoans', 'getLoanRecords', 'borrow', + 'autoBorrow', 'repay', + 'doAllRepay', 'getRepayments', + 'getFinanceRecords', + 'changeInvestMark', + 'changeLoop', + // cross API + 'getCrossAssets', + 'getCrossBills', + 'transferInCross', + 'transferOutCross', + 'doCrossLoan', + 'doCrossRepay', + 'getCrossRepayRecords', ], }, }, @@ -245,8 +275,96 @@ module.exports = class zb extends Exchange { return this.parseBalance (result); } - getMarketFieldName () { - return 'market'; + parseDepositAddress (depositAddress, currency = undefined) { + // + // fetchDepositAddress + // + // { + // "key": "0x0af7f36b8f09410f3df62c81e5846da673d4d9a9" + // } + // + // fetchDepositAddresses + // + // { + // "blockChain": "btc", + // "isUseMemo": false, + // "address": "1LL5ati6pXHZnTGzHSA3rWdqi4mGGXudwM", + // "canWithdraw": true, + // "canDeposit": true + // } + // { + // "blockChain": "bts", + // "isUseMemo": true, + // "account": "btstest", + // "memo": "123", + // "canWithdraw": true, + // "canDeposit": true + // } + // + let address = this.safeString (depositAddress, 'key'); + let tag = undefined; + const memo = this.safeString (depositAddress, 'memo'); + if (memo !== undefined) { + tag = memo; + } else if (address.indexOf ('_') >= 0) { + const parts = address.split ('_'); + address = parts[0]; // WARNING: MAY BE tag_address INSTEAD OF address_tag FOR SOME CURRENCIES!! + tag = parts[1]; + } + const currencyId = this.safeString (depositAddress, 'blockChain'); + const code = this.safeCurrencyCode (currencyId, currency); + return { + 'currency': code, + 'address': address, + 'tag': tag, + 'info': depositAddress, + }; + } + + parseDepositAddresses (addresses, codes = undefined) { + let result = []; + for (let i = 0; i < addresses.length; i++) { + const address = this.parseDepositAddress (addresses[i]); + result.push (address); + } + if (codes) { + result = this.filterByArray (result, 'currency', codes); + } + return this.indexBy (result, 'currency'); + } + + async fetchDepositAddresses (codes = undefined, params = {}) { + await this.loadMarkets (); + const response = await this.privateGetGetPayinAddress (params); + // + // { + // "code": 1000, + // "message": { + // "des": "success", + // "isSuc": true, + // "datas": [ + // { + // "blockChain": "btc", + // "isUseMemo": false, + // "address": "1LL5ati6pXHZnTGzHSA3rWdqi4mGGXudwM", + // "canWithdraw": true, + // "canDeposit": true + // }, + // { + // "blockChain": "bts", + // "isUseMemo": true, + // "account": "btstest", + // "memo": "123", + // "canWithdraw": true, + // "canDeposit": true + // }, + // ] + // } + // } + // + const message = this.safeValue (response, 'message', {}); + const datas = this.safeValue (message, 'datas', []); + return this.parseDepositAddresses (datas, codes); } async fetchDepositAddress (code, params = {}) { @@ -256,27 +374,29 @@ module.exports = class zb extends Exchange { 'currency': currency['id'], }; const response = await this.privateGetGetUserAddress (this.extend (request, params)); - let address = response['message']['datas']['key']; - let tag = undefined; - if (address.indexOf ('_') >= 0) { - const parts = address.split ('_'); - address = parts[0]; // WARNING: MAY BE tag_address INSTEAD OF address_tag FOR SOME CURRENCIES!! - tag = parts[1]; - } - return { - 'currency': code, - 'address': address, - 'tag': tag, - 'info': response, - }; + // + // { + // "code": 1000, + // "message": { + // "des": "success", + // "isSuc": true, + // "datas": { + // "key": "0x0af7f36b8f09410f3df62c81e5846da673d4d9a9" + // } + // } + // } + // + const message = this.safeValue (response, 'message', {}); + const datas = this.safeValue (message, 'datas', {}); + return this.parseDepositAddress (datas, currency); } async fetchOrderBook (symbol, limit = undefined, params = {}) { await this.loadMarkets (); const market = this.market (symbol); - const marketFieldName = this.getMarketFieldName (); - const request = {}; - request[marketFieldName] = market['id']; + const request = { + 'market': market['id'], + }; if (limit !== undefined) { request['size'] = limit; } @@ -305,9 +425,9 @@ module.exports = class zb extends Exchange { async fetchTicker (symbol, params = {}) { await this.loadMarkets (); const market = this.market (symbol); - const marketFieldName = this.getMarketFieldName (); - const request = {}; - request[marketFieldName] = market['id']; + const request = { + 'market': market['id'], + }; const response = await this.publicGetTicker (this.extend (request, params)); const ticker = response['ticker']; return this.parseTicker (ticker, market); @@ -400,9 +520,9 @@ module.exports = class zb extends Exchange { async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); const market = this.market (symbol); - const marketFieldName = this.getMarketFieldName (); - const request = {}; - request[marketFieldName] = market['id']; + const request = { + 'market': market['id'], + }; const response = await this.publicGetTrades (this.extend (request, params)); return this.parseTrades (response, market, since, limit); } @@ -462,7 +582,7 @@ module.exports = class zb extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = 50, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + 'fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + 'fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -488,9 +608,24 @@ module.exports = class zb extends Exchange { return this.parseOrders (response, market, since, limit); } + async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + 'fetchClosedOrders() requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'currency': market['id'], + 'pageIndex': 1, // default pageIndex is 1 + 'pageSize': 10, // default pageSize is 10, doesn't work with other values now + }; + const response = await this.privateGetGetFinishedAndPartialOrders (this.extend (request, params)); + return this.parseOrders (response, market, since, limit); + } + async fetchOpenOrders (symbol = undefined, since = undefined, limit = 10, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + 'fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + 'fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -517,29 +652,26 @@ module.exports = class zb extends Exchange { } parseOrder (order, market = undefined) { - // - // fetchOrder // // { - // 'total_amount': 0.01, - // 'id': '20180910244276459', - // 'price': 180.0, - // 'trade_date': 1536576744960, - // 'status': 2, - // 'trade_money': '1.96742', - // 'trade_amount': 0.01, - // 'type': 0, - // 'currency': 'eth_usdt' - // } + // acctType: 0, + // currency: 'btc_usdt', + // fees: 3.6e-7, + // id: '202102282829772463', + // price: 45177.5, + // status: 2, + // total_amount: 0.0002, + // trade_amount: 0.0002, + // trade_date: 1614515104998, + // trade_money: 8.983712, + // type: 1, + // useZbFee: false + // }, // let side = this.safeInteger (order, 'type'); side = (side === 1) ? 'buy' : 'sell'; const type = 'limit'; // market order is not availalbe in ZB - let timestamp = undefined; - const createDateField = this.getCreateDateField (); - if (createDateField in order) { - timestamp = order[createDateField]; - } + const timestamp = this.safeInteger (order, 'trade_date'); const marketId = this.safeString (order, 'currency'); const symbol = this.safeSymbol (marketId, market, '_'); const price = this.safeFloat (order, 'price'); @@ -558,6 +690,21 @@ module.exports = class zb extends Exchange { average = cost / filled; } const id = this.safeString (order, 'id'); + const feeCost = this.safeFloat (order, 'fees'); + let fee = undefined; + if (feeCost !== undefined) { + let feeCurrency = undefined; + const zbFees = this.safeValue (order, 'useZbFee'); + if (zbFees === true) { + feeCurrency = 'ZB'; + } else if (market !== undefined) { + feeCurrency = (side === 'sell') ? market['quote'] : market['base']; + } + fee = { + 'cost': feeCost, + 'currency': feeCurrency, + }; + } return { 'info': order, 'id': id, @@ -568,6 +715,7 @@ module.exports = class zb extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -577,7 +725,7 @@ module.exports = class zb extends Exchange { 'filled': filled, 'remaining': remaining, 'status': status, - 'fee': undefined, + 'fee': fee, 'trades': undefined, }; } @@ -592,8 +740,241 @@ module.exports = class zb extends Exchange { return this.safeString (statuses, status, status); } - getCreateDateField () { - return 'trade_date'; + parseTransactionStatus (status) { + const statuses = { + '0': 'pending', // submitted, pending confirmation + '1': 'failed', + '2': 'ok', + '3': 'canceled', + '5': 'ok', // confirmed + }; + return this.safeString (statuses, status, status); + } + + parseTransaction (transaction, currency = undefined) { + // + // withdraw + // + // { + // "code": 1000, + // "message": "success", + // "id": "withdrawalId" + // } + // + // fetchWithdrawals + // + // { + // "amount": 0.01, + // "fees": 0.001, + // "id": 2016042556231, + // "manageTime": 1461579340000, + // "status": 3, + // "submitTime": 1461579288000, + // "toAddress": "14fxEPirL9fyfw1i9EF439Pq6gQ5xijUmp", + // } + // + // fetchDeposits + // + // { + // "address": "1FKN1DZqCm8HaTujDioRL2Aezdh7Qj7xxx", + // "amount": "1.00000000", + // "confirmTimes": 1, + // "currency": "BTC", + // "description": "Successfully Confirm", + // "hash": "7ce842de187c379abafadd64a5fe66c5c61c8a21fb04edff9532234a1dae6xxx", + // "id": 558, + // "itransfer": 1, + // "status": 2, + // "submit_time": "2016-12-07 18:51:57", + // } + // + const id = this.safeString (transaction, 'id'); + const txid = this.safeString (transaction, 'hash'); + const amount = this.safeFloat (transaction, 'amount'); + let timestamp = this.parse8601 (this.safeString (transaction, 'submit_time')); + timestamp = this.safeInteger (transaction, 'submitTime', timestamp); + let address = this.safeString2 (transaction, 'toAddress', 'address'); + let tag = undefined; + if (address !== undefined) { + const parts = address.split ('_'); + address = this.safeString (parts, 0); + tag = this.safeString (parts, 1); + } + const confirmTimes = this.safeInteger (transaction, 'confirmTimes'); + const updated = this.safeInteger (transaction, 'manageTime'); + let type = undefined; + const currencyId = this.safeString (transaction, 'currency'); + const code = this.safeCurrencyCode (currencyId, currency); + if (address !== undefined) { + type = (confirmTimes === undefined) ? 'withdrawal' : 'deposit'; + } + const status = this.parseTransactionStatus (this.safeString (transaction, 'status')); + let fee = undefined; + const feeCost = this.safeFloat (transaction, 'fees'); + if (feeCost !== undefined) { + fee = { + 'cost': feeCost, + 'currency': code, + }; + } + return { + 'info': transaction, + 'id': id, + 'txid': txid, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'addressFrom': undefined, + 'address': address, + 'addressTo': address, + 'tagFrom': undefined, + 'tag': tag, + 'tagTo': tag, + 'type': type, + 'amount': amount, + 'currency': code, + 'status': status, + 'updated': updated, + 'fee': fee, + }; + } + + async withdraw (code, amount, address, tag = undefined, params = {}) { + const password = this.safeString (params, 'safePwd', this.password); + if (password === undefined) { + throw new ArgumentsRequired (this.id + ' withdraw() requires exchange.password or a safePwd parameter'); + } + const fees = this.safeFloat (params, 'fees'); + if (fees === undefined) { + throw new ArgumentsRequired (this.id + ' withdraw() requires a fees parameter'); + } + this.checkAddress (address); + await this.loadMarkets (); + const currency = this.currency (code); + if (tag !== undefined) { + address += '_' + tag; + } + const request = { + 'amount': this.currencyToPrecision (code, amount), + 'currency': currency['id'], + 'fees': this.currencyToPrecision (code, fees), + // 'itransfer': 0, // agree for an internal transfer, 0 disagree, 1 agree, the default is to disagree + 'method': 'withdraw', + 'receiveAddr': address, + 'safePwd': password, + }; + const response = await this.privateGetWithdraw (this.extend (request, params)); + // + // { + // "code": 1000, + // "message": "success", + // "id": "withdrawalId" + // } + // + const transaction = this.parseTransaction (response, currency); + return this.extend (transaction, { + 'type': 'withdrawal', + 'address': address, + 'addressTo': address, + 'amount': amount, + }); + } + + async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'currency': currency['id'], + // 'pageIndex': 1, + // 'pageSize': limit, + }; + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + request['currency'] = currency['id']; + } + if (limit !== undefined) { + request['pageSize'] = limit; + } + const response = await this.privateGetGetWithdrawRecord (this.extend (request, params)); + // + // { + // "code": 1000, + // "message": { + // "des": "success", + // "isSuc": true, + // "datas": { + // "list": [ + // { + // "amount": 0.01, + // "fees": 0.001, + // "id": 2016042556231, + // "manageTime": 1461579340000, + // "status": 3, + // "submitTime": 1461579288000, + // "toAddress": "14fxEPirL9fyfw1i9EF439Pq6gQ5xijUmp", + // }, + // ], + // "pageIndex": 1, + // "pageSize": 10, + // "totalCount": 4, + // "totalPage": 1 + // } + // } + // } + // + const message = this.safeValue (response, 'message', {}); + const datas = this.safeValue (message, 'datas', {}); + const withdrawals = this.safeValue (datas, 'list', []); + return this.parseTransactions (withdrawals, currency, since, limit); + } + + async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'currency': currency['id'], + // 'pageIndex': 1, + // 'pageSize': limit, + }; + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + request['currency'] = currency['id']; + } + if (limit !== undefined) { + request['pageSize'] = limit; + } + const response = await this.privateGetGetChargeRecord (this.extend (request, params)); + // + // { + // "code": 1000, + // "message": { + // "des": "success", + // "isSuc": true, + // "datas": { + // "list": [ + // { + // "address": "1FKN1DZqCm8HaTujDioRL2Aezdh7Qj7xxx", + // "amount": "1.00000000", + // "confirmTimes": 1, + // "currency": "BTC", + // "description": "Successfully Confirm", + // "hash": "7ce842de187c379abafadd64a5fe66c5c61c8a21fb04edff9532234a1dae6xxx", + // "id": 558, + // "itransfer": 1, + // "status": 2, + // "submit_time": "2016-12-07 18:51:57", + // }, + // ], + // "pageIndex": 1, + // "pageSize": 10, + // "total": 8 + // } + // } + // } + // + const message = this.safeValue (response, 'message', {}); + const datas = this.safeValue (message, 'datas', {}); + const deposits = this.safeValue (datas, 'list', []); + return this.parseTransactions (deposits, currency, since, limit); } nonce () { @@ -629,9 +1010,10 @@ module.exports = class zb extends Exchange { } if (body[0] === '{') { const feedback = this.id + ' ' + body; + this.throwBroadlyMatchedException (this.exceptions['broad'], body, feedback); if ('code' in response) { const code = this.safeString (response, 'code'); - this.throwExactlyMatchedException (this.exceptions, code, feedback); + this.throwExactlyMatchedException (this.exceptions['exact'], code, feedback); if (code !== '1000') { throw new ExchangeError (feedback); } diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/package.json b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/package.json index e9ee481cb..a5305f19f 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/package.json +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/node_modules/ccxt/package.json @@ -1,28 +1,28 @@ { - "_from": "ccxt", - "_id": "ccxt@1.38.76", + "_from": "ccxt@1.42.77", + "_id": "ccxt@1.42.77", "_inBundle": false, - "_integrity": "sha512-t2XalR99Uv4YdRMyBk/sCKwynA7voPl3TRF/IfzICQf8vr7EyGh3CTuV9o3TYAHSNliotitk3SNC8cp1e/ULjw==", + "_integrity": "sha512-vPaw8G3hr9iq1iJ59EHuA6iqjufgK6dNC7MjT3qV8YQbpEJoD2ynoFwfl1hbuvlyKlFjiOa3gHwhRV64UacBDQ==", "_location": "/ccxt", "_phantomChildren": {}, "_requested": { - "type": "tag", + "type": "version", "registry": true, - "raw": "ccxt", + "raw": "ccxt@1.42.77", "name": "ccxt", "escapedName": "ccxt", - "rawSpec": "", + "rawSpec": "1.42.77", "saveSpec": null, - "fetchSpec": "latest" + "fetchSpec": "1.42.77" }, "_requiredBy": [ "#USER", "/" ], - "_resolved": "https://registry.npmjs.org/ccxt/-/ccxt-1.38.76.tgz", - "_shasum": "5b231f550ba1a328480528401944f630ed2685e3", - "_spec": "ccxt", - "_where": "c:\\Superalgos\\Projects\\Superalgos\\TS\\Bot-Modules\\Sensor-Bot\\Exchange-Raw-Data", + "_resolved": "https://registry.npmjs.org/ccxt/-/ccxt-1.42.77.tgz", + "_shasum": "8ab5f8e7190854e163da6d4fcf44530794d0a21c", + "_spec": "ccxt@1.42.77", + "_where": "C:\\Superalgos\\Projects\\Superalgos\\TS\\Bot-Modules\\Sensor-Bot\\Exchange-Raw-Data", "author": { "name": "Igor Kroitor", "email": "igor.kroitor@gmail.com", @@ -529,7 +529,21 @@ "bitcoin.com", "bibox365.com", "vcc.exchange", - "VCC Exchange" + "VCC Exchange", + "cdax.io", + "CDAX", + "delta.exchange", + "Delta Exchange", + "gopax.co.kr", + "Gopax", + "GOPAX", + "aax.com", + "AAX", + "aaxpro.com", + "equos.io", + "EQUOS", + "ndax.io", + "NDAX" ], "license": "MIT", "main": "./ccxt.js", @@ -540,9 +554,8 @@ }, "scripts": { "browserify": "browserify ./ccxt.browser.js > ./dist/ccxt.browser.js", - "build": "npm run build-without-docs && npm run update-badges", - "build-without-docs": "npm run export-exchanges && npm run vss && npm run copy-python-files && npm run check-js-syntax && npm run browserify && npm run transpile && npm run check-python-syntax && npm run check-php-syntax", - "check-js-syntax": "pwd && eslint --version && eslint \"js/*.js\"", + "build": "npm run pre-transpile && npm run transpile && npm run post-transpile && npm run update-badges", + "check-js-syntax": "node -e \"console.log(process.cwd())\" && eslint --version && eslint \"js/*.js\"", "check-php-syntax": "php -f php/test/syntax.php", "check-python-syntax": "cd python && tox -e qa && cd ..", "check-syntax": "npm run transpile && npm run check-js-syntax && npm run check-python-syntax && npm run check-php-syntax", @@ -554,20 +567,25 @@ "docker": "docker-compose run --rm ccxt", "export-exchanges": "node build/export-exchanges", "fast-test": "node run-tests --js", + "force-build": "npm run pre-transpile && npm run force-transpile && npm run post-transpile && npm run update-badges", + "force-transpile": "node build/transpile --force", "git-ignore-generated-files": "node build/git-ignore-generated-files", "git-unignore-generated-files": "node build/git-ignore-generated-files --unignore", "lint": "eslint", + "post-transpile": "npm run check-python-syntax && npm run check-php-syntax", "postinstall": "node postinstall", + "pre-transpile": "npm run export-exchanges && npm run vss && npm run copy-python-files && npm run check-js-syntax && npm run browserify", "test": "npm run build && node run-tests", "test-base": "npm run test-js-base && npm run test-python-base && npm run test-php-base", "test-js-base": "mocha js/test/base/test.base.js --reporter ololog/reporter", "test-php-base": "php -f php/test/decimal_to_precision.php && php -f php/test/test_crypto.php", - "test-python-base": "python python/test/test_decimal_to_precision.py", + "test-python-base": "python python/ccxt/test/test_decimal_to_precision.py", "transpile": "node build/transpile", "update-badges": "node build/update-badges", + "update-links": "node build/update-links", "vss": "node build/vss" }, "types": "./ccxt.d.ts", "unpkg": "dist/ccxt.browser.js", - "version": "1.38.76" + "version": "1.42.77" } diff --git a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/package-lock.json b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/package-lock.json index 4eb0d27c5..976144cc2 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/package-lock.json +++ b/Projects/Superalgos/TS/Bot-Modules/Sensor-Bot/Exchange-Raw-Data/package-lock.json @@ -3,9 +3,9 @@ "lockfileVersion": 1, "dependencies": { "ccxt": { - "version": "1.38.76", - "resolved": "https://registry.npmjs.org/ccxt/-/ccxt-1.38.76.tgz", - "integrity": "sha512-t2XalR99Uv4YdRMyBk/sCKwynA7voPl3TRF/IfzICQf8vr7EyGh3CTuV9o3TYAHSNliotitk3SNC8cp1e/ULjw==" + "version": "1.42.77", + "resolved": "https://registry.npmjs.org/ccxt/-/ccxt-1.42.77.tgz", + "integrity": "sha512-vPaw8G3hr9iq1iJ59EHuA6iqjufgK6dNC7MjT3qV8YQbpEJoD2ynoFwfl1hbuvlyKlFjiOa3gHwhRV64UacBDQ==" } } } diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/.eslintignore b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/.eslintignore new file mode 100644 index 000000000..a007feab0 --- /dev/null +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/.eslintignore @@ -0,0 +1 @@ +build/* diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/.gitattributes b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/.gitattributes index 147ee79bf..513b2a256 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/.gitattributes +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/.gitattributes @@ -1,4 +1,5 @@ *.* text eol=lf php/test/*.php linguist-generated=true +php/*.php linguist-generated=true python/ccxt/*.py linguist-generated=true python/ccxt/__init__.py linguist-generated=false diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/CONTRIBUTING.md b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/CONTRIBUTING.md index 5ce4a0405..1d3ff05d1 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/CONTRIBUTING.md +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/CONTRIBUTING.md @@ -246,7 +246,7 @@ These files containing derived exchange classes are transpiled from JS into Pyth - `js/[_a-z].js` → `python/ccxt/async/[_a-z].py` - `python/ccxt/async[_a-z].py` → `python/ccxt/[_a-z].py` (Python 3 asyncio → Python 2 sync transpilation stage) -- `python/test/test_async.py` → `python/test/test.py` (the sync test is generated from the async test) +- `python/ccxt/test/test_async.py` → `python/ccxt/test/test_sync.py` (the sync test is generated from the async test) These Python base classes and files are not transpiled: @@ -868,14 +868,6 @@ npm run git-unignore-generated-files ## Financial Contributions We also welcome financial contributions in full transparency on our [open collective](https://opencollective.com/ccxt). -Anyone can file an expense. If the expense makes sense for the development of the community, it will be "merged" in the ledger of our open collective by the core contributors and the person who filed the expense will be reimbursed. - -``` -ETH 0x26a3CB49578F07000575405a57888681249c35Fd (ETH only!) -BTC 33RmVRfhK2WZVQR1R83h2e9yXoqRNDvJva -BCH 1GN9p233TvNcNQFthCgfiHUnj5JRKEc2Ze -LTC LbT8mkAqQBphc4yxLXEDgYDfEax74et3bP -``` ## Credits diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/README.md b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/README.md index 8782b3b2c..3f8dfeea4 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/README.md +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/README.md @@ -1,11 +1,11 @@ # CCXT – CryptoCurrency eXchange Trading Library -[![Build Status](https://travis-ci.com/ccxt/ccxt.svg?branch=master)](https://travis-ci.com/ccxt/ccxt) [![npm](https://img.shields.io/npm/v/ccxt.svg)](https://npmjs.com/package/ccxt) [![PyPI](https://img.shields.io/pypi/v/ccxt.svg)](https://pypi.python.org/pypi/ccxt) [![NPM Downloads](https://img.shields.io/npm/dm/ccxt.svg)](https://www.npmjs.com/package/ccxt) [![Discord](https://img.shields.io/discord/690203284119617602?logo=discord&logoColor=white)](https://discord.gg/dhzSKYU) [![Supported Exchanges](https://img.shields.io/badge/exchanges-123-blue.svg)](https://github.com/ccxt/ccxt/wiki/Exchange-Markets) [![Open Collective](https://opencollective.com/ccxt/backers/badge.svg)](https://opencollective.com/ccxt) +[![Build Status](https://travis-ci.com/ccxt/ccxt.svg?branch=master)](https://travis-ci.com/ccxt/ccxt) [![npm](https://img.shields.io/npm/v/ccxt.svg)](https://npmjs.com/package/ccxt) [![PyPI](https://img.shields.io/pypi/v/ccxt.svg)](https://pypi.python.org/pypi/ccxt) [![NPM Downloads](https://img.shields.io/npm/dy/ccxt.svg)](https://www.npmjs.com/package/ccxt) [![Discord](https://img.shields.io/discord/690203284119617602?logo=discord&logoColor=white)](https://discord.gg/dhzSKYU) [![Supported Exchanges](https://img.shields.io/badge/exchanges-126-blue.svg)](https://github.com/ccxt/ccxt/wiki/Exchange-Markets) [![Open Collective](https://opencollective.com/ccxt/backers/badge.svg)](https://opencollective.com/ccxt) [![Twitter Follow](https://img.shields.io/twitter/follow/ccxt_official.svg?style=social&label=CCXT)](https://twitter.com/ccxt_official) A JavaScript / Python / PHP library for cryptocurrency trading and e-commerce with support for many bitcoin/ether/altcoin exchange markets and merchant APIs. -### [Install](#install) · [Usage](#usage) · [Manual](https://github.com/ccxt/ccxt/wiki) · [FAQ](https://github.com/ccxt/ccxt/wiki/FAQ) · [Examples](https://github.com/ccxt/ccxt/tree/master/examples) · [Contributing](https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md) · [Social](#social) +### [Install](#install) · [Usage](#usage) · [Manual](https://github.com/ccxt/ccxt/wiki) · [FAQ](https://github.com/ccxt/ccxt/wiki/FAQ) · [Examples](https://github.com/ccxt/ccxt/tree/master/examples) · [Contributing](https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md) · [Social](#social) · [CCXT Pro](https://ccxt.pro) The **CCXT** library is used to connect and trade with cryptocurrency exchanges and payment processing services worldwide. It provides quick access to market data for storage, analysis, visualization, indicator development, algorithmic trading, strategy backtesting, bot programming, and related software engineering. @@ -21,42 +21,44 @@ Current feature list: ## Sponsored Promotion -[![CCXT Pro – A JavaScript / Python / PHP cryptocurrency exchange trading WebSocket API for professionals](https://user-images.githubusercontent.com/1294454/93346896-22dfb080-f83d-11ea-957f-6b8ae008f62a.png)](https://ccxt.pro) **[A JavaScript / Python / PHP cryptocurrency exchange trading WebSocket API for professionals](https://ccxt.pro)** +[![CCXT Pro – A JavaScript / Python / PHP cryptocurrency exchange trading WebSocket API for professionals](https://user-images.githubusercontent.com/1294454/106092533-865ce180-613f-11eb-8d67-0830771fde32.png)](https://ccxt.pro) ## See Also - [![Quadency](https://user-images.githubusercontent.com/1294454/69334382-a0618100-0c6b-11ea-9ba9-40aa97440cfa.png)](https://quadency.com?utm_source=ccxt)  **[Quadency](https://quadency.com?utm_source=ccxt)** — trading automation terminal for leading exchanges with streaming APIs + Python IDE. - [![TabTrader](https://user-images.githubusercontent.com/1294454/66755907-9c3e8880-eea1-11e9-846e-0bff349ceb87.png)](https://tab-trader.com/?utm_source=ccxt)  **[TabTrader](https://tab-trader.com/?utm_source=ccxt)** — trading on all exchanges in one app. Avaliable on [Android](https://play.google.com/store/apps/details?id=com.tabtrader.android&referrer=utm_source%3Dccxt) and [iOS](https://itunes.apple.com/app/apple-store/id1095716562?mt=8). +- [![Pionex](https://user-images.githubusercontent.com/1294454/106112806-c2ec0580-615e-11eb-870c-0b7aef021db2.png)](https://www.pionex.com/en-US/sign?r=8wSFCbNk&utm_source=ad&utm_medium=banner&utm_campaign=ccxt-2)  **[Pionex](https://www.pionex.com/en-US/sign?r=8wSFCbNk&utm_source=ad&utm_medium=banner&utm_campaign=ccxt-2)** — 6 grid bots, spot-futures arb bot, smart trade and DCA bots. Free for [Android](https://play.google.com/store/apps/details?id=com.pionex.client&referrer=utm_source%3Dccxt) and [iOS](https://apps.apple.com/us/app/pionex/id1485348891?pt=ccxt&ct=inline)! +- [![AAX](https://user-images.githubusercontent.com/1294454/106509642-ef957980-64de-11eb-92e0-8323cda7874e.png)](https://www.aaxpro.com/en-US/ad-sign-up/?utm_source=ccxt&utm_medium=one-liner&utm_campaign=futures)  **[AAX](https://www.aaxpro.com/en-US/ad-sign-up/?utm_source=ccxt&utm_medium=one-liner&utm_campaign=futures)** — trade bitcoin futures with fees as low as 0.02% and up to 100x leverage! ## Certified Cryptocurrency Exchanges -| logo | id | name | ver | doc | certified | pro | -|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|-----------------------------------------------------------------------------|:---:|:----------------------------------------------------------------------------------:|-----------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------| -| [![binance](https://user-images.githubusercontent.com/1294454/29604020-d5483cdc-87ee-11e7-94c7-d1a8d9169293.jpg)](https://www.binance.com/?ref=10205187) | binance | [Binance](https://www.binance.com/?ref=10205187) | * | [API](https://binance-docs.github.io/apidocs/spot/en) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | -| [![bitfinex](https://user-images.githubusercontent.com/1294454/27766244-e328a50c-5ed2-11e7-947b-041416579bb3.jpg)](https://www.bitfinex.com/?refcode=P61eYxFL) | bitfinex | [Bitfinex](https://www.bitfinex.com/?refcode=P61eYxFL) | 1 | [API](https://docs.bitfinex.com/v1/docs) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | -| [![bittrex](https://user-images.githubusercontent.com/51840849/87153921-edf53180-c2c0-11ea-96b9-f2a9a95a455b.jpg)](https://bittrex.com/Account/Register?referralCode=1ZE-G0G-M3B) | bittrex | [Bittrex](https://bittrex.com/Account/Register?referralCode=1ZE-G0G-M3B) | 3 | [API](https://bittrex.github.io/api/v3) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | -| [![bitvavo](https://user-images.githubusercontent.com/1294454/83165440-2f1cf200-a116-11ea-9046-a255d09fb2ed.jpg)](https://bitvavo.com/?a=24F34952F7) | bitvavo | [Bitvavo](https://bitvavo.com/?a=24F34952F7) | 2 | [API](https://docs.bitvavo.com/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | -| [![bytetrade](https://user-images.githubusercontent.com/1294454/67288762-2f04a600-f4e6-11e9-9fd6-c60641919491.jpg)](https://www.byte-trade.com) | bytetrade | [ByteTrade](https://www.byte-trade.com) | * | [API](https://docs.byte-trade.com/#description) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | | -| [![currencycom](https://user-images.githubusercontent.com/1294454/83718672-36745c00-a63e-11ea-81a9-677b1f789a4d.jpg)](https://currency.com/trading/signup?c=362jaimv&pid=referral) | currencycom | [Currency.com](https://currency.com/trading/signup?c=362jaimv&pid=referral) | 1 | [API](https://currency.com/api) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | -| [![eterbase](https://user-images.githubusercontent.com/1294454/82067900-faeb0f80-96d9-11ea-9f22-0071cfcb9871.jpg)](https://eterbase.exchange/invite/1wjjh4Pe) | eterbase | [Eterbase](https://eterbase.exchange/invite/1wjjh4Pe) | 1 | [API](https://developers.eterbase.exchange) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | | -| [![ftx](https://user-images.githubusercontent.com/1294454/67149189-df896480-f2b0-11e9-8816-41593e17f9ec.jpg)](https://ftx.com/#a=1623029) | ftx | [FTX](https://ftx.com/#a=1623029) | * | [API](https://github.com/ftexchange/ftx) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | -| [![idex](https://user-images.githubusercontent.com/51840849/94481303-2f222100-01e0-11eb-97dd-bc14c5943a86.jpg)](https://idex.io) | idex | [IDEX](https://idex.io) | 2 | [API](https://docs.idex.io/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | -| [![kraken](https://user-images.githubusercontent.com/51840849/76173629-fc67fb00-61b1-11ea-84fe-f2de582f58a3.jpg)](https://www.kraken.com) | kraken | [Kraken](https://www.kraken.com) | 0 | [API](https://www.kraken.com/features/api) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | -| [![upbit](https://user-images.githubusercontent.com/1294454/49245610-eeaabe00-f423-11e8-9cba-4b0aed794799.jpg)](https://upbit.com) | upbit | [Upbit](https://upbit.com) | 1 | [API](https://docs.upbit.com/docs/%EC%9A%94%EC%B2%AD-%EC%88%98-%EC%A0%9C%ED%95%9C) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | -| [![wavesexchange](https://user-images.githubusercontent.com/1294454/84547058-5fb27d80-ad0b-11ea-8711-78ac8b3c7f31.jpg)](https://waves.exchange) | wavesexchange | [Waves.Exchange](https://waves.exchange) | * | [API](https://docs.waves.exchange) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | | -| [![xena](https://user-images.githubusercontent.com/51840849/87489843-bb469280-c64c-11ea-91aa-69c6326506af.jpg)](https://xena.exchange) | xena | [Xena Exchange](https://xena.exchange) | * | [API](https://support.xena.exchange/support/solutions/44000808700) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | | +| logo | id | name | ver | doc | certified | pro | +|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|-----------------------------------------------------------------------------|:---:|:------------------------------------------------------------------:|-----------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------| +| [![aax](https://user-images.githubusercontent.com/1294454/104140087-a27f2580-53c0-11eb-87c1-5d9e81208fe9.jpg)](https://www.aaxpro.com/invite/sign-up?inviteCode=JXGm5Fy7R2MB) | aax | [AAX](https://www.aaxpro.com/invite/sign-up?inviteCode=JXGm5Fy7R2MB) | 2 | [API](https://www.aaxpro.com/apidoc/index.html) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | | +| [![binance](https://user-images.githubusercontent.com/1294454/29604020-d5483cdc-87ee-11e7-94c7-d1a8d9169293.jpg)](https://www.binance.com/?ref=10205187) | binance | [Binance](https://www.binance.com/?ref=10205187) | * | [API](https://binance-docs.github.io/apidocs/spot/en) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | +| [![bittrex](https://user-images.githubusercontent.com/51840849/87153921-edf53180-c2c0-11ea-96b9-f2a9a95a455b.jpg)](https://bittrex.com/Account/Register?referralCode=1ZE-G0G-M3B) | bittrex | [Bittrex](https://bittrex.com/Account/Register?referralCode=1ZE-G0G-M3B) | 3 | [API](https://bittrex.github.io/api/v3) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | +| [![bitvavo](https://user-images.githubusercontent.com/1294454/83165440-2f1cf200-a116-11ea-9046-a255d09fb2ed.jpg)](https://bitvavo.com/?a=24F34952F7) | bitvavo | [Bitvavo](https://bitvavo.com/?a=24F34952F7) | 2 | [API](https://docs.bitvavo.com/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | +| [![bytetrade](https://user-images.githubusercontent.com/1294454/67288762-2f04a600-f4e6-11e9-9fd6-c60641919491.jpg)](https://www.byte-trade.com) | bytetrade | [ByteTrade](https://www.byte-trade.com) | * | [API](https://docs.byte-trade.com/#description) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | | +| [![currencycom](https://user-images.githubusercontent.com/1294454/83718672-36745c00-a63e-11ea-81a9-677b1f789a4d.jpg)](https://currency.com/trading/signup?c=362jaimv&pid=referral) | currencycom | [Currency.com](https://currency.com/trading/signup?c=362jaimv&pid=referral) | 1 | [API](https://currency.com/api) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | +| [![eterbase](https://user-images.githubusercontent.com/1294454/82067900-faeb0f80-96d9-11ea-9f22-0071cfcb9871.jpg)](https://eterbase.exchange/invite/1wjjh4Pe) | eterbase | [Eterbase](https://eterbase.exchange/invite/1wjjh4Pe) | 1 | [API](https://developers.eterbase.exchange) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | | +| [![ftx](https://user-images.githubusercontent.com/1294454/67149189-df896480-f2b0-11e9-8816-41593e17f9ec.jpg)](https://ftx.com/#a=1623029) | ftx | [FTX](https://ftx.com/#a=1623029) | * | [API](https://github.com/ftexchange/ftx) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | +| [![gopax](https://user-images.githubusercontent.com/1294454/102897212-ae8a5e00-4478-11eb-9bab-91507c643900.jpg)](https://www.gopax.co.kr) | gopax | [GOPAX](https://www.gopax.co.kr) | 1 | [API](https://gopax.github.io/API/index.en.html) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | +| [![idex](https://user-images.githubusercontent.com/51840849/94481303-2f222100-01e0-11eb-97dd-bc14c5943a86.jpg)](https://idex.io) | idex | [IDEX](https://idex.io) | 2 | [API](https://docs.idex.io/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | +| [![kraken](https://user-images.githubusercontent.com/51840849/76173629-fc67fb00-61b1-11ea-84fe-f2de582f58a3.jpg)](https://www.kraken.com) | kraken | [Kraken](https://www.kraken.com) | 0 | [API](https://www.kraken.com/features/api) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | +| [![wavesexchange](https://user-images.githubusercontent.com/1294454/84547058-5fb27d80-ad0b-11ea-8711-78ac8b3c7f31.jpg)](https://waves.exchange) | wavesexchange | [Waves.Exchange](https://waves.exchange) | * | [API](https://docs.waves.exchange) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | | +| [![xena](https://user-images.githubusercontent.com/51840849/87489843-bb469280-c64c-11ea-91aa-69c6326506af.jpg)](https://xena.exchange) | xena | [Xena Exchange](https://xena.exchange) | * | [API](https://support.xena.exchange/support/solutions/44000808700) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | | ## Supported Cryptocurrency Exchange Markets -The CCXT library currently supports the following 123 cryptocurrency exchange markets and trading APIs: +The CCXT library currently supports the following 126 cryptocurrency exchange markets and trading APIs: | logo | id | name | ver | doc | certified | pro | |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------|-----------------------------------------------------------------------------------------|:---:|:-------------------------------------------------------------------------------------------:|-----------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------| +| [![aax](https://user-images.githubusercontent.com/1294454/104140087-a27f2580-53c0-11eb-87c1-5d9e81208fe9.jpg)](https://www.aaxpro.com/invite/sign-up?inviteCode=JXGm5Fy7R2MB) | aax | [AAX](https://www.aaxpro.com/invite/sign-up?inviteCode=JXGm5Fy7R2MB) | 2 | [API](https://www.aaxpro.com/apidoc/index.html) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | | | [![acx](https://user-images.githubusercontent.com/1294454/30247614-1fe61c74-9621-11e7-9e8c-f1a627afa279.jpg)](https://acx.io) | acx | [ACX](https://acx.io) | 2 | [API](https://acx.io/documents/api_v2) | | | | [![aofex](https://user-images.githubusercontent.com/51840849/77670271-056d1080-6f97-11ea-9ac2-4268e9ed0c1f.jpg)](https://aofex.com/#/register?key=9763840) | aofex | [AOFEX](https://aofex.com/#/register?key=9763840) | * | [API](https://aofex.zendesk.com/hc/en-us/sections/360005576574-API) | | | -| [![bcex](https://user-images.githubusercontent.com/51840849/77231516-851c6900-6bac-11ea-8fd6-ee5c23eddbd4.jpg)](https://www.bcex.top/register?invite_code=758978&lang=en) | bcex | [BCEX](https://www.bcex.top/register?invite_code=758978&lang=en) | 1 | [API](https://github.com/BCEX-TECHNOLOGY-LIMITED/API_Docs/wiki/Interface) | | | | [![bequant](https://user-images.githubusercontent.com/1294454/55248342-a75dfe00-525a-11e9-8aa2-05e9dca943c6.jpg)](https://bequant.io) | bequant | [Bequant](https://bequant.io) | 2 | [API](https://api.bequant.io/) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | | [![bibox](https://user-images.githubusercontent.com/51840849/77257418-3262b000-6c85-11ea-8fb8-20bdf20b3592.jpg)](https://w2.bibox365.com/login/register?invite_code=05Kj3I) | bibox | [Bibox](https://w2.bibox365.com/login/register?invite_code=05Kj3I) | 1 | [API](https://biboxcom.github.io/en/) | | | | [![bigone](https://user-images.githubusercontent.com/1294454/69354403-1d532180-0c91-11ea-88ed-44c06cefdf87.jpg)](https://b1.run/users/new?code=D3LLBVFT) | bigone | [BigONE](https://b1.run/users/new?code=D3LLBVFT) | 3 | [API](https://open.big.one/docs/api.html) | | | @@ -66,14 +68,14 @@ The CCXT library currently supports the following 123 cryptocurrency exchange ma | [![bitbank](https://user-images.githubusercontent.com/1294454/37808081-b87f2d9c-2e59-11e8-894d-c1900b7584fe.jpg)](https://bitbank.cc/) | bitbank | [bitbank](https://bitbank.cc/) | 1 | [API](https://docs.bitbank.cc/) | | | | [![bitbay](https://user-images.githubusercontent.com/1294454/27766132-978a7bd8-5ece-11e7-9540-bc96d1e9bbb8.jpg)](https://auth.bitbay.net/ref/jHlbB4mIkdS1) | bitbay | [BitBay](https://auth.bitbay.net/ref/jHlbB4mIkdS1) | * | [API](https://bitbay.net/public-api) | | | | [![bitcoincom](https://user-images.githubusercontent.com/1294454/97296144-514fa300-1861-11eb-952b-3d55d492200b.jpg)](https://exchange.bitcoin.com/referral/da948b21d6c92d69) | bitcoincom | [bitcoin.com](https://exchange.bitcoin.com/referral/da948b21d6c92d69) | 2 | [API](https://api.exchange.bitcoin.com/api/2/explore) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | -| [![bitfinex](https://user-images.githubusercontent.com/1294454/27766244-e328a50c-5ed2-11e7-947b-041416579bb3.jpg)](https://www.bitfinex.com/?refcode=P61eYxFL) | bitfinex | [Bitfinex](https://www.bitfinex.com/?refcode=P61eYxFL) | 1 | [API](https://docs.bitfinex.com/v1/docs) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | +| [![bitfinex](https://user-images.githubusercontent.com/1294454/27766244-e328a50c-5ed2-11e7-947b-041416579bb3.jpg)](https://www.bitfinex.com/?refcode=P61eYxFL) | bitfinex | [Bitfinex](https://www.bitfinex.com/?refcode=P61eYxFL) | 1 | [API](https://docs.bitfinex.com/v1/docs) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | | [![bitfinex2](https://user-images.githubusercontent.com/1294454/27766244-e328a50c-5ed2-11e7-947b-041416579bb3.jpg)](https://www.bitfinex.com/?refcode=P61eYxFL) | bitfinex2 | [Bitfinex](https://www.bitfinex.com/?refcode=P61eYxFL) | 2 | [API](https://docs.bitfinex.com/v2/docs/) | | | | [![bitflyer](https://user-images.githubusercontent.com/1294454/28051642-56154182-660e-11e7-9b0d-6042d1e6edd8.jpg)](https://bitflyer.com) | bitflyer | [bitFlyer](https://bitflyer.com) | 1 | [API](https://lightning.bitflyer.com/docs?lang=en) | | | | [![bitforex](https://user-images.githubusercontent.com/51840849/87295553-1160ec00-c50e-11ea-8ea0-df79276a9646.jpg)](https://www.bitforex.com/en/invitationRegister?inviterId=1867438) | bitforex | [Bitforex](https://www.bitforex.com/en/invitationRegister?inviterId=1867438) | 1 | [API](https://github.com/githubdev2020/API_Doc_en/wiki) | | | | [![bitget](https://user-images.githubusercontent.com/51840849/88317935-a8a21c80-cd22-11ea-8e2b-4b9fac5975eb.jpg)](https://www.bitget.com/expressly?languageType=0&channelCode=ccxt&vipCode=tg9j) | bitget | [Bitget](https://www.bitget.com/expressly?languageType=0&channelCode=ccxt&vipCode=tg9j) | 3 | [API](https://bitgetlimited.github.io/apidoc/en/swap) | | | | [![bithumb](https://user-images.githubusercontent.com/1294454/30597177-ea800172-9d5e-11e7-804c-b9d4fa9b56b0.jpg)](https://www.bithumb.com) | bithumb | [Bithumb](https://www.bithumb.com) | * | [API](https://apidocs.bithumb.com) | | | | [![bitkk](https://user-images.githubusercontent.com/1294454/32859187-cd5214f0-ca5e-11e7-967d-96568e2e2bd1.jpg)](https://www.bitkk.com) | bitkk | [bitkk](https://www.bitkk.com) | 1 | [API](https://www.bitkk.com/i/developer) | | | -| [![bitmart](https://user-images.githubusercontent.com/1294454/61835713-a2662f80-ae85-11e9-9d00-6442919701fd.jpg)](http://www.bitmart.com/?r=rQCFLh) | bitmart | [BitMart](http://www.bitmart.com/?r=rQCFLh) | 1 | [API](https://github.com/bitmartexchange/bitmart-official-api-docs) | | | +| [![bitmart](https://user-images.githubusercontent.com/1294454/61835713-a2662f80-ae85-11e9-9d00-6442919701fd.jpg)](http://www.bitmart.com/?r=rQCFLh) | bitmart | [BitMart](http://www.bitmart.com/?r=rQCFLh) | 1 | [API](https://developer-pro.bitmart.com/) | | | | [![bitmax](https://user-images.githubusercontent.com/1294454/66820319-19710880-ef49-11e9-8fbe-16be62a11992.jpg)](https://bitmax.io/#/register?inviteCode=EL6BXBQM) | bitmax | [BitMax](https://bitmax.io/#/register?inviteCode=EL6BXBQM) | 1 | [API](https://bitmax-exchange.github.io/bitmax-pro-api/#bitmax-pro-api-documentation) | | | | [![bitmex](https://user-images.githubusercontent.com/1294454/27766319-f653c6e6-5ed4-11e7-933d-f0bc3699ae8f.jpg)](https://www.bitmex.com/register/upZpOX) | bitmex | [BitMEX](https://www.bitmex.com/register/upZpOX) | 1 | [API](https://www.bitmex.com/app/apiOverview) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | | [![bitpanda](https://user-images.githubusercontent.com/51840849/87591171-9a377d80-c6f0-11ea-94ac-97a126eac3bc.jpg)](https://www.bitpanda.com/en/pro) | bitpanda | [Bitpanda Pro](https://www.bitpanda.com/en/pro) | 1 | [API](https://developers.bitpanda.com/exchange/) | | | @@ -95,6 +97,7 @@ The CCXT library currently supports the following 123 cryptocurrency exchange ma | [![bw](https://user-images.githubusercontent.com/1294454/69436317-31128c80-0d52-11ea-91d1-eb7bb5818812.jpg)](https://www.bw.com/regGetCommission/N3JuT1R3bWxKTE0) | bw | [BW](https://www.bw.com/regGetCommission/N3JuT1R3bWxKTE0) | 1 | [API](https://github.com/bw-exchange/api_docs_en/wiki) | | | | [![bybit](https://user-images.githubusercontent.com/51840849/76547799-daff5b80-649e-11ea-87fb-3be9bac08954.jpg)](https://www.bybit.com/app/register?ref=X7Prm) | bybit | [Bybit](https://www.bybit.com/app/register?ref=X7Prm) | 2 | [API](https://bybit-exchange.github.io/docs/inverse/) | | | | [![bytetrade](https://user-images.githubusercontent.com/1294454/67288762-2f04a600-f4e6-11e9-9fd6-c60641919491.jpg)](https://www.byte-trade.com) | bytetrade | [ByteTrade](https://www.byte-trade.com) | * | [API](https://docs.byte-trade.com/#description) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | | +| [![cdax](https://user-images.githubusercontent.com/1294454/102157692-fd406280-3e90-11eb-8d46-4511b617cd17.jpg)](https://cdax.io/invite?invite_code=esc74) | cdax | [CDAX](https://cdax.io/invite?invite_code=esc74) | 1 | [API](https://github.com/cloudapidoc/API_Docs) | | | | [![cex](https://user-images.githubusercontent.com/1294454/27766442-8ddc33b0-5ed8-11e7-8b98-f786aef0f3c9.jpg)](https://cex.io/r/0/up105393824/0/) | cex | [CEX.IO](https://cex.io/r/0/up105393824/0/) | * | [API](https://cex.io/cex-api) | | | | [![chilebit](https://user-images.githubusercontent.com/1294454/27991414-1298f0d8-647f-11e7-9c40-d56409266336.jpg)](https://chilebit.net) | chilebit | [ChileBit](https://chilebit.net) | 1 | [API](https://blinktrade.com/docs) | | | | [![coinbase](https://user-images.githubusercontent.com/1294454/40811661-b6eceae2-653a-11e8-829e-10bfadb078cf.jpg)](https://www.coinbase.com/join/58cbe25a355148797479dbd2) | coinbase | [Coinbase](https://www.coinbase.com/join/58cbe25a355148797479dbd2) | 2 | [API](https://developers.coinbase.com/api/v2) | | | @@ -112,9 +115,11 @@ The CCXT library currently supports the following 123 cryptocurrency exchange ma | [![coinspot](https://user-images.githubusercontent.com/1294454/28208429-3cacdf9a-6896-11e7-854e-4c79a772a30f.jpg)](https://www.coinspot.com.au/register?code=PJURCU) | coinspot | [CoinSpot](https://www.coinspot.com.au/register?code=PJURCU) | * | [API](https://www.coinspot.com.au/api) | | | | [![crex24](https://user-images.githubusercontent.com/1294454/47813922-6f12cc00-dd5d-11e8-97c6-70f957712d47.jpg)](https://crex24.com/?refid=slxsjsjtil8xexl9hksr) | crex24 | [CREX24](https://crex24.com/?refid=slxsjsjtil8xexl9hksr) | 2 | [API](https://docs.crex24.com/trade-api/v2) | | | | [![currencycom](https://user-images.githubusercontent.com/1294454/83718672-36745c00-a63e-11ea-81a9-677b1f789a4d.jpg)](https://currency.com/trading/signup?c=362jaimv&pid=referral) | currencycom | [Currency.com](https://currency.com/trading/signup?c=362jaimv&pid=referral) | 1 | [API](https://currency.com/api) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | +| [![delta](https://user-images.githubusercontent.com/1294454/99450025-3be60a00-2931-11eb-9302-f4fd8d8589aa.jpg)](https://www.delta.exchange/app/signup/?code=IULYNB) | delta | [Delta Exchange](https://www.delta.exchange/app/signup/?code=IULYNB) | 2 | [API](https://docs.delta.exchange) | | | | [![deribit](https://user-images.githubusercontent.com/1294454/41933112-9e2dd65a-798b-11e8-8440-5bab2959fcb8.jpg)](https://www.deribit.com/reg-1189.4038) | deribit | [Deribit](https://www.deribit.com/reg-1189.4038) | 2 | [API](https://docs.deribit.com/v2) | | | | [![digifinex](https://user-images.githubusercontent.com/51840849/87443315-01283a00-c5fe-11ea-8628-c2a0feaf07ac.jpg)](https://www.digifinex.com/en-ww/from/DhOzBg?channelCode=ljaUPp) | digifinex | [DigiFinex](https://www.digifinex.com/en-ww/from/DhOzBg?channelCode=ljaUPp) | 3 | [API](https://docs.digifinex.com) | | | | [![dsx](https://user-images.githubusercontent.com/51840849/76909626-cb2bb100-68bc-11ea-99e0-28ba54f04792.jpg)](https://dsxglobal.com) | dsx | [DSX](https://dsxglobal.com) | 3 | [API](https://dsxglobal.com/developers/publicApi) | | | +| [![equos](https://user-images.githubusercontent.com/1294454/107758499-05edd180-6d38-11eb-9e09-0b69602a7a15.jpg)](https://equos.io?referredByCode=zpa8kij4ouvBFup3) | equos | [EQUOS](https://equos.io?referredByCode=zpa8kij4ouvBFup3) | * | [API](https://developer.equos.io) | | | | [![eterbase](https://user-images.githubusercontent.com/1294454/82067900-faeb0f80-96d9-11ea-9f22-0071cfcb9871.jpg)](https://eterbase.exchange/invite/1wjjh4Pe) | eterbase | [Eterbase](https://eterbase.exchange/invite/1wjjh4Pe) | 1 | [API](https://developers.eterbase.exchange) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | | | [![exmo](https://user-images.githubusercontent.com/1294454/27766491-1b0ea956-5eda-11e7-9225-40d67b481b8d.jpg)](https://exmo.me/?ref=131685) | exmo | [EXMO](https://exmo.me/?ref=131685) | 1.1 | [API](https://exmo.me/en/api_doc?ref=131685) | | | | [![exx](https://user-images.githubusercontent.com/1294454/37770292-fbf613d0-2de4-11e8-9f79-f2dc451b8ccb.jpg)](https://www.exx.com/r/fde4260159e53ab8a58cc9186d35501f?recommQd=1) | exx | [EXX](https://www.exx.com/r/fde4260159e53ab8a58cc9186d35501f?recommQd=1) | * | [API](https://www.exx.com/help/restApi) | | | @@ -125,12 +130,12 @@ The CCXT library currently supports the following 123 cryptocurrency exchange ma | [![ftx](https://user-images.githubusercontent.com/1294454/67149189-df896480-f2b0-11e9-8816-41593e17f9ec.jpg)](https://ftx.com/#a=1623029) | ftx | [FTX](https://ftx.com/#a=1623029) | * | [API](https://github.com/ftexchange/ftx) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | | [![gateio](https://user-images.githubusercontent.com/1294454/31784029-0313c702-b509-11e7-9ccc-bc0da6a0e435.jpg)](https://www.gate.io/signup/2436035) | gateio | [Gate.io](https://www.gate.io/signup/2436035) | 2 | [API](https://gate.io/api2) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | | [![gemini](https://user-images.githubusercontent.com/1294454/27816857-ce7be644-6096-11e7-82d6-3c257263229c.jpg)](https://gemini.com/) | gemini | [Gemini](https://gemini.com/) | 1 | [API](https://docs.gemini.com/rest-api) | | | +| [![gopax](https://user-images.githubusercontent.com/1294454/102897212-ae8a5e00-4478-11eb-9bab-91507c643900.jpg)](https://www.gopax.co.kr) | gopax | [GOPAX](https://www.gopax.co.kr) | 1 | [API](https://gopax.github.io/API/index.en.html) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | | [![hbtc](https://user-images.githubusercontent.com/51840849/80134449-70663300-85a7-11ea-8942-e204cdeaab5d.jpg)](https://www.hbtc.com/register/O2S8NS) | hbtc | [HBTC](https://www.hbtc.com/register/O2S8NS) | 1 | [API](https://github.com/bhexopen/BHEX-OpenApi/tree/master/doc) | | | | [![hitbtc](https://user-images.githubusercontent.com/1294454/27766555-8eaec20e-5edc-11e7-9c5b-6dc69fc42f5e.jpg)](https://hitbtc.com/?ref_id=5a5d39a65d466) | hitbtc | [HitBTC](https://hitbtc.com/?ref_id=5a5d39a65d466) | 2 | [API](https://api.hitbtc.com) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | | [![hollaex](https://user-images.githubusercontent.com/1294454/75841031-ca375180-5ddd-11ea-8417-b975674c23cb.jpg)](https://pro.hollaex.com/signup?affiliation_code=QSWA6G) | hollaex | [HollaEx](https://pro.hollaex.com/signup?affiliation_code=QSWA6G) | 1 | [API](https://apidocs.hollaex.com) | | | | [![huobijp](https://user-images.githubusercontent.com/1294454/85734211-85755480-b705-11ea-8b35-0b7f1db33a2f.jpg)](https://www.huobi.co.jp/register/?invite_code=znnq3) | huobijp | [Huobi Japan](https://www.huobi.co.jp/register/?invite_code=znnq3) | 1 | [API](https://api-doc.huobi.co.jp) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | | [![huobipro](https://user-images.githubusercontent.com/1294454/76137448-22748a80-604e-11ea-8069-6e389271911d.jpg)](https://www.huobi.com/en-us/topic/invited/?invite_code=rwrd3) | huobipro | [Huobi Pro](https://www.huobi.com/en-us/topic/invited/?invite_code=rwrd3) | 1 | [API](https://huobiapi.github.io/docs/spot/v1/cn/) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | -| [![huobiru](https://user-images.githubusercontent.com/1294454/52978816-e8552e00-33e3-11e9-98ed-845acfece834.jpg)](https://www.huobi.com.ru/invite?invite_code=esc74) | huobiru | [Huobi Russia](https://www.huobi.com.ru/invite?invite_code=esc74) | 1 | [API](https://github.com/cloudapidoc/API_Docs_en) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | | [![ice3x](https://user-images.githubusercontent.com/51840849/87460809-1dd06c00-c616-11ea-98ad-7d5e1cb7fcdd.jpg)](https://ice3x.com?ref=14341802) | ice3x | [ICE3X](https://ice3x.com?ref=14341802) | 1 | [API](https://ice3x.co.za/ice-cubed-bitcoin-exchange-api-documentation-1-june-2017) | | | | [![idex](https://user-images.githubusercontent.com/51840849/94481303-2f222100-01e0-11eb-97dd-bc14c5943a86.jpg)](https://idex.io) | idex | [IDEX](https://idex.io) | 2 | [API](https://docs.idex.io/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | | [![independentreserve](https://user-images.githubusercontent.com/51840849/87182090-1e9e9080-c2ec-11ea-8e49-563db9a38f37.jpg)](https://www.independentreserve.com) | independentreserve | [Independent Reserve](https://www.independentreserve.com) | * | [API](https://www.independentreserve.com/API) | | | @@ -143,11 +148,11 @@ The CCXT library currently supports the following 123 cryptocurrency exchange ma | [![latoken](https://user-images.githubusercontent.com/1294454/61511972-24c39f00-aa01-11e9-9f7c-471f1d6e5214.jpg)](https://latoken.com) | latoken | [Latoken](https://latoken.com) | 1 | [API](https://api.latoken.com) | | | | [![lbank](https://user-images.githubusercontent.com/1294454/38063602-9605e28a-3302-11e8-81be-64b1e53c4cfb.jpg)](https://www.lbex.io/invite?icode=7QCY) | lbank | [LBank](https://www.lbex.io/invite?icode=7QCY) | 1 | [API](https://github.com/LBank-exchange/lbank-official-api-docs) | | | | [![liquid](https://user-images.githubusercontent.com/1294454/45798859-1a872600-bcb4-11e8-8746-69291ce87b04.jpg)](https://www.liquid.com/sign-up/?affiliate=SbzC62lt30976) | liquid | [Liquid](https://www.liquid.com/sign-up/?affiliate=SbzC62lt30976) | 2 | [API](https://developers.liquid.com) | | | -| [![livecoin](https://user-images.githubusercontent.com/1294454/27980768-f22fc424-638a-11e7-89c9-6010a54ff9be.jpg)](https://livecoin.net/?from=Livecoin-CQ1hfx44) | livecoin | [LiveCoin](https://livecoin.net/?from=Livecoin-CQ1hfx44) | * | [API](https://www.livecoin.net/api?lang=en) | | | | [![luno](https://user-images.githubusercontent.com/1294454/27766607-8c1a69d8-5ede-11e7-930c-540b5eb9be24.jpg)](https://www.luno.com/invite/44893A) | luno | [luno](https://www.luno.com/invite/44893A) | 1 | [API](https://www.luno.com/en/api) | | | | [![lykke](https://user-images.githubusercontent.com/1294454/34487620-3139a7b0-efe6-11e7-90f5-e520cef74451.jpg)](https://www.lykke.com) | lykke | [Lykke](https://www.lykke.com) | 1 | [API](https://hft-api.lykke.com/swagger/ui/) | | | | [![mercado](https://user-images.githubusercontent.com/1294454/27837060-e7c58714-60ea-11e7-9192-f05e86adb83f.jpg)](https://www.mercadobitcoin.com.br) | mercado | [Mercado Bitcoin](https://www.mercadobitcoin.com.br) | 3 | [API](https://www.mercadobitcoin.com.br/api-doc) | | | | [![mixcoins](https://user-images.githubusercontent.com/51840849/87460810-1dd06c00-c616-11ea-9276-956f400d6ffa.jpg)](https://mixcoins.com) | mixcoins | [MixCoins](https://mixcoins.com) | 1 | [API](https://mixcoins.com/help/api/) | | | +| [![ndax](https://user-images.githubusercontent.com/1294454/108623144-67a3ef00-744e-11eb-8140-75c6b851e945.jpg)](https://one.ndax.io/bfQiSL) | ndax | [NDAX](https://one.ndax.io/bfQiSL) | * | [API](https://apidoc.ndax.io/) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | | [![novadax](https://user-images.githubusercontent.com/1294454/92337550-2b085500-f0b3-11ea-98e7-5794fb07dd3b.jpg)](https://www.novadax.com.br/?s=ccxt) | novadax | [NovaDAX](https://www.novadax.com.br/?s=ccxt) | 1 | [API](https://doc.novadax.com/pt-BR/) | | | | [![oceanex](https://user-images.githubusercontent.com/1294454/58385970-794e2d80-8001-11e9-889c-0567cd79b78e.jpg)](https://oceanex.pro/signup?referral=VE24QX) | oceanex | [OceanEx](https://oceanex.pro/signup?referral=VE24QX) | 1 | [API](https://api.oceanex.pro/doc/v1) | | | | [![okcoin](https://user-images.githubusercontent.com/51840849/87295551-102fbf00-c50e-11ea-90a9-462eebba5829.jpg)](https://www.okcoin.com/account/register?flag=activity&channelId=600001513) | okcoin | [OKCoin](https://www.okcoin.com/account/register?flag=activity&channelId=600001513) | 3 | [API](https://www.okcoin.com/docs/en/) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | @@ -166,7 +171,7 @@ The CCXT library currently supports the following 123 cryptocurrency exchange ma | [![tidebit](https://user-images.githubusercontent.com/51840849/87460811-1e690280-c616-11ea-8652-69f187305add.jpg)](http://bit.ly/2IX0LrM) | tidebit | [TideBit](http://bit.ly/2IX0LrM) | 2 | [API](https://www.tidebit.com/documents/api/guide) | | | | [![tidex](https://user-images.githubusercontent.com/1294454/30781780-03149dc4-a12e-11e7-82bb-313b269d24d4.jpg)](https://tidex.com/exchange/?ref=57f5638d9cd7) | tidex | [Tidex](https://tidex.com/exchange/?ref=57f5638d9cd7) | 3 | [API](https://tidex.com/exchange/public-api) | | | | [![timex](https://user-images.githubusercontent.com/1294454/70423869-6839ab00-1a7f-11ea-8f94-13ae72c31115.jpg)](https://timex.io/?refcode=1x27vNkTbP1uwkCck) | timex | [TimeX](https://timex.io/?refcode=1x27vNkTbP1uwkCck) | 1 | [API](https://docs.timex.io) | | | -| [![upbit](https://user-images.githubusercontent.com/1294454/49245610-eeaabe00-f423-11e8-9cba-4b0aed794799.jpg)](https://upbit.com) | upbit | [Upbit](https://upbit.com) | 1 | [API](https://docs.upbit.com/docs/%EC%9A%94%EC%B2%AD-%EC%88%98-%EC%A0%9C%ED%95%9C) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | +| [![upbit](https://user-images.githubusercontent.com/1294454/49245610-eeaabe00-f423-11e8-9cba-4b0aed794799.jpg)](https://upbit.com) | upbit | [Upbit](https://upbit.com) | 1 | [API](https://docs.upbit.com/docs/%EC%9A%94%EC%B2%AD-%EC%88%98-%EC%A0%9C%ED%95%9C) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | | [![vaultoro](https://user-images.githubusercontent.com/1294454/27766880-f205e870-5ee9-11e7-8fe2-0d5b15880752.jpg)](https://www.vaultoro.com) | vaultoro | [Vaultoro](https://www.vaultoro.com) | 1 | [API](https://api.vaultoro.com) | | | | [![vbtc](https://user-images.githubusercontent.com/1294454/27991481-1f53d1d8-6481-11e7-884e-21d17e7939db.jpg)](https://vbtc.exchange) | vbtc | [VBTC](https://vbtc.exchange) | 1 | [API](https://blinktrade.com/docs) | | | | [![vcc](https://user-images.githubusercontent.com/1294454/100545356-8427f500-326c-11eb-9539-7d338242d61b.jpg)](https://vcc.exchange?ref=l4xhrH) | vcc | [VCC Exchange](https://vcc.exchange?ref=l4xhrH) | 3 | [API](https://vcc.exchange/api) | | | @@ -224,13 +229,13 @@ console.log (ccxt.exchanges) // print all available exchanges All-in-one browser bundle (dependencies included), served from a CDN of your choice: -* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@1.38.75/dist/ccxt.browser.js -* unpkg: https://unpkg.com/ccxt@1.38.75/dist/ccxt.browser.js +* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@1.42.77/dist/ccxt.browser.js +* unpkg: https://unpkg.com/ccxt@1.42.77/dist/ccxt.browser.js CDNs are not updated in real-time and may have delays. Defaulting to the most recent version without specifying the version number is not recommended. Please, keep in mind that we are not responsible for the correct operation of those CDN servers. ```HTML - + ``` Creates a global `ccxt` object: @@ -275,6 +280,8 @@ include "ccxt.php"; var_dump (\ccxt\Exchange::$exchanges); // print a list of all available exchange classes ``` +The library supports concurrent asynchronous mode using tools from [RecoilPHP](https://github.com/recoilphp/recoil) and [ReactPHP](https://reactphp.org/) in PHP 7.1+. Read the [Manual](https://github.com/ccxt/ccxt/wiki) for more details. + ### Docker You can get CCXT installed in a container along with all the supported languages and dependencies. This may be useful if you want to contribute to CCXT (e.g. run the build scripts and tests — please see the [Contributing](https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md) document for the details on that). @@ -529,15 +536,6 @@ Thank you to all our backers! [[Become a backer](https://opencollective.com/ccxt -### Crypto - -``` -ETH 0x26a3CB49578F07000575405a57888681249c35Fd (ETH only) -BTC 33RmVRfhK2WZVQR1R83h2e9yXoqRNDvJva -BCH 1GN9p233TvNcNQFthCgfiHUnj5JRKEc2Ze -LTC LgM5hkvPzytEFfQGGDFGKYkE743jwUA7qv -``` - Thank you! ## Social diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/build/transpile.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/build/transpile.js index 0f4d1dcc6..948a34c0f 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/build/transpile.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/build/transpile.js @@ -274,6 +274,7 @@ class Transpiler { [ /(?<=[^\s#]) \]/g, ']' ], // PEP8 E202 remove whitespaces before right ] square bracket [ /(?<=[^\s#]) \}/g, '}' ], // PEP8 E202 remove whitespaces before right } bracket [ /([^a-z])(elif|if|or|else)\(/g, '$1$2 \(' ], // a correction for PEP8 E225 side-effect for compound and ternary conditionals + [ /\!\=\sTrue/g, 'is not True' ], // a correction for PEP8 E712, it likes "is not True", not "!= True" [ /\=\=\sTrue/g, 'is True' ], // a correction for PEP8 E712, it likes "is True", not "== True" [ /\sdelete\s/g, ' del ' ], [ /(?\=]+(\<=|\>=|<|>)\s*(.*)\s*\;([^\)]+)\)\s*{/g, 'for ($1 = $2; $1 $3 $4;$5) {' ], [ /([^\s]+)\.length\;/g, 'is_array($1) ? count($1) : 0;' ], [ /\.push\s*\(([\s\S]+?)\)\;/g, '[] = $1;' ], - [ /(\s)await(\s)/g, '$1' ], + [ /(\b)await(\b)/g, 'yield' ], [ /([\S])\: /g, '$1 => ' ], // add {}-array syntax conversions up to 20 levels deep @@ -441,7 +448,7 @@ class Transpiler { "import os", "import sys", "", - "root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))", + "root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))", "sys.path.append(root)", "", "# ----------------------------------------------------------------------------", @@ -598,11 +605,11 @@ class Transpiler { return 'class ' + className + ' extends ' + baseClass + ' {' } - createPHPClassHeader (className, baseClass, bodyAsString) { + createPHPClassHeader (className, baseClass, bodyAsString, namespace) { return [ " sync PHP + let phpBody = this.transpileAsyncPHPToSyncPHP (phpAsyncBody) + + return { python3Body, python2Body, phpBody, phpAsyncBody } } //----------------------------------------------------------------------------- transpilePythonAsyncToSync () { - const async = './python/test/test_async.py' - const sync = './python/test/test.py' + const async = './python/ccxt/test/test_async.py' + const sync = './python/ccxt/test/test_sync.py' log.magenta ('Transpiling ' + async .yellow + ' → ' + sync.yellow) const fileContents = fs.readFileSync (async, 'utf8') let lines = fileContents.split ("\n") lines = lines.filter (line => ![ 'import asyncio' ].includes (line)) - .map (line => { - return ( - line.replace ('asyncio.get_event_loop().run_until_complete(main())', 'main()') - .replace ('import ccxt.async_support as ccxt', 'import ccxt') - .replace (/.*token\_bucket.*/g, '') - .replace ('await asyncio.sleep', 'time.sleep') - .replace ('async ', '') - .replace ('await ', '')) - }) + .map (line => { + return ( + line.replace ('asyncio.get_event_loop().run_until_complete(main())', 'main()') + .replace ('import ccxt.async_support as ccxt', 'import ccxt') + .replace (/.*token\_bucket.*/g, '') + .replace ('await asyncio.sleep', 'time.sleep') + .replace ('async ', '') + .replace ('await ', '')) + }) // lines.forEach (line => log (line)) @@ -803,22 +822,47 @@ class Transpiler { fs.writeFileSync (sync, newContents) } + //----------------------------------------------------------------------------- + + transpilePhpAsyncToSync () { + + const async = './php/test/test_async.php' + const sync = './php/test/test_sync.php' + log.magenta ('Transpiling ' + async .yellow + ' → ' + sync.yellow) + const fileContents = fs.readFileSync (async, 'utf8') + const syncBody = this.transpileAsyncPHPToSyncPHP (fileContents) + + const phpSyncRegexes = [ + [ /\$kernel->execute\(\$main\)/, '\$main()' ], + [ /\$kernel->run\(\);\n/, '' ], + [ /\$kernel = async\\Exchange::get_kernel\(\);\n/, '' ], + [ /ccxt\\\\async/, 'ccxt' ], + ] + + const newContents = this.regexAll (syncBody, phpSyncRegexes) + + fs.truncateSync (sync) + fs.writeFileSync (sync, newContents) + } + + // ------------------------------------------------------------------------ + + getExchangeClassDeclarationMatches (contents) { + return contents.match (/^module\.exports\s*=\s*class\s+([\S]+)\s+extends\s+([\S]+)\s+{([\s\S]+?)^};*/m) + } + // ------------------------------------------------------------------------ transpileDerivedExchangeClass (contents, methodNames = undefined) { - let exchangeClassDeclarationMatches = contents.match (/^module\.exports\s*=\s*class\s+([\S]+)\s+extends\s+([\S]+)\s+{([\s\S]+?)^};*/m) + const [ _, className, baseClass, methodMatches ] = this.getExchangeClassDeclarationMatches (contents) - // log.green (file, exchangeClassDeclarationMatches[3]) - - let className = exchangeClassDeclarationMatches[1] - let baseClass = exchangeClassDeclarationMatches[2] - - let methods = exchangeClassDeclarationMatches[3].trim ().split (/\n\s*\n/) + const methods = methodMatches.trim ().split (/\n\s*\n/) let python2 = [] let python3 = [] let php = [] + let phpAsync = [] methodNames = [] // methodNames || [] @@ -838,14 +882,6 @@ class Transpiler { // async or not let keyword = matches[1] - // try { - // keyword = matches[1] - // } catch (e) { - // log.red (e) - // log.green (methods[i]) - // log.yellow (exchangeClassDeclarationMatches[3].trim ().split (/\n\s*\n/)) - // process.exit () - // } // method name let method = matches[2] @@ -869,17 +905,17 @@ class Transpiler { // remove excessive spacing from argument defaults in Python method signature let pythonArgs = args.map (x => x.replace (' = ', '=')) - .join (', ') - .replace (/undefined/g, 'None') - .replace (/false/g, 'False') - .replace (/true/g, 'True') + .join (', ') + .replace (/undefined/g, 'None') + .replace (/false/g, 'False') + .replace (/true/g, 'True') // method body without the signature (first line) // and without the closing bracket (last line) let js = lines.slice (1, -1).join ("\n") // transpile everything - let { python3Body, python2Body, phpBody } = this.transpileJavaScriptToPythonAndPHP ({ js, className, variables, removeEmptyLines: true }) + let { python3Body, python2Body, phpBody, phpAsyncBody } = this.transpileJavaScriptToPythonAndPHP ({ js, className, variables, removeEmptyLines: true }) // compile the final Python code for the method signature let pythonString = 'def ' + method + '(self' + (pythonArgs.length ? ', ' + pythonArgs : '') + '):' @@ -900,14 +936,19 @@ class Transpiler { php.push (phpBody); php.push (' }') + phpAsync.push (''); + phpAsync.push (' public function ' + method + '(' + phpArgs + ') {'); + phpAsync.push (phpAsyncBody); + phpAsync.push (' }') } return { - // altogether in PHP, Python 2 and 3 (async) - python2: this.createPythonClass (className, baseClass, python2, methodNames), - python3: this.createPythonClass (className, baseClass, python3, methodNames, true), - php: this.createPHPClass (className, baseClass, php, methodNames), + // altogether in PHP, async PHP, Python 2 and 3 (async) + python2: this.createPythonClass (className, baseClass, python2, methodNames), + python3: this.createPythonClass (className, baseClass, python3, methodNames, true), + php: this.createPHPClass (className, baseClass, php, methodNames), + phpAsync: this.createPHPClass (className, baseClass, phpAsync, methodNames, true), className, baseClass, @@ -916,46 +957,58 @@ class Transpiler { // ======================================================================== - transpileDerivedExchangeFile (jsFolder, filename, options) { + transpileDerivedExchangeFile (jsFolder, filename, options, force = false) { // todo normalize jsFolder and other arguments try { - const { python2Folder, python3Folder, phpFolder } = options - const path = jsFolder + filename - const contents = fs.readFileSync (path, 'utf8') + const { python2Folder, python3Folder, phpFolder, phpAsyncFolder } = options + const pythonFilename = filename.replace ('.js', '.py') + const phpFilename = filename.replace ('.js', '.php') - // function getMethodNames (object) { - // let functions = [] - // let o = object - // do { - // functions = functions.concat (Object.getOwnPropertyNames (o)) - // } while (o = Object.getPrototypeOf (o)) - // return unique (functions.filter (f => (typeof object[f] === 'function'))) - // } - // const exchangeClass = require ('.' + path) - // const exchange = new exchangeClass () - // const methodNames = getMethodNames (exchange) - // const { python2, python3, php, className, baseClass } = - // this.transpileDerivedExchangeClass (contents, methodNames) + const jsMtime = fs.statSync (jsFolder + filename).mtime.getTime () - const { python2, python3, php, className, baseClass } = - this.transpileDerivedExchangeClass (contents) + const python2Path = python2Folder ? (python2Folder + pythonFilename) : undefined + const python3Path = python3Folder ? (python3Folder + pythonFilename) : undefined + const phpPath = phpFolder ? (phpFolder + phpFilename) : undefined + const phpAsyncPath = phpAsyncFolder ? (phpAsyncFolder + phpFilename) : undefined - log.cyan ('Transpiling from', filename.yellow) + const python2Mtime = python2Folder ? (fs.existsSync (python2Path) ? fs.statSync (python2Path).mtime.getTime () : 0) : undefined + const python3Mtime = python3Path ? (fs.existsSync (python3Path) ? fs.statSync (python3Path).mtime.getTime () : 0) : undefined + const phpAsyncMtime = phpAsyncFolder ? (fs.existsSync (phpAsyncPath) ? fs.statSync (phpAsyncPath).mtime.getTime () : 0) : undefined + const phpMtime = phpPath ? (fs.existsSync (phpPath) ? fs.statSync (phpPath).mtime.getTime () : 0) : undefined - ;[ - [ python2Folder, filename.replace ('.js', '.py'), python2 ], - [ python3Folder, filename.replace ('.js', '.py'), python3 ], - [ phpFolder, filename.replace ('.js', '.php'), php ], - ].forEach (([ folder, filename, code ]) => { - if (folder) { - overwriteFile (folder + filename, code) - } - }) + const contents = fs.readFileSync (jsFolder + filename, 'utf8') - return { className, baseClass } + if (force || + (python3Folder && (jsMtime > python3Mtime)) || + (phpFolder && (jsMtime > phpMtime)) || + (phpAsyncFolder && (jsMtime > phpAsyncMtime)) || + (python2Folder && (jsMtime > python2Mtime))) { + const { python2, python3, php, phpAsync, className, baseClass } = this.transpileDerivedExchangeClass (contents) + log.cyan ('Transpiling from', filename.yellow) + + ;[ + [ python2Folder, pythonFilename, python2 ], + [ python3Folder, pythonFilename, python3 ], + [ phpFolder, phpFilename, php ], + [ phpAsyncFolder, phpFilename, phpAsync ], + ].forEach (([ folder, filename, code ]) => { + if (folder) { + overwriteFile (folder + filename, code) + fs.utimesSync (folder + filename, new Date (), new Date (jsMtime)) + } + }) + + return { className, baseClass } + + } else { + + const [ _, className, baseClass ] = this.getExchangeClassDeclarationMatches (contents) + log.green ('Already transpiled', filename.yellow) + return { className, baseClass } + } } catch (e) { @@ -967,11 +1020,11 @@ class Transpiler { //------------------------------------------------------------------------- - transpileDerivedExchangeFiles (jsFolder, options, pattern = '.js') { + transpileDerivedExchangeFiles (jsFolder, options, pattern = '.js', force = false) { // todo normalize jsFolder and other arguments - const { python2Folder, python3Folder, phpFolder } = options + const { python2Folder, python3Folder, phpFolder, phpAsyncFolder } = options // exchanges.json accounts for ids included in exchanges.cfg let ids = undefined @@ -984,7 +1037,7 @@ class Transpiler { const classNames = fs.readdirSync (jsFolder) .filter (file => file.match (regex) && (!ids || ids.includes (basename (file, '.js')))) - .map (file => this.transpileDerivedExchangeFile (jsFolder, file, options)) + .map (file => this.transpileDerivedExchangeFile (jsFolder, file, options, force)) const classes = {} @@ -1013,6 +1066,7 @@ class Transpiler { [ python2Folder, /\.pyc?$/ ], [ python3Folder, /\.pyc?$/ ], [ phpFolder, /\.php$/ ], + [ phpAsyncFolder, /\.php$/ ], ].forEach (([ folder, pattern ]) => { if (folder) { deleteOldTranspiledFiles (folder, pattern) @@ -1026,19 +1080,37 @@ class Transpiler { // ======================================================================== - exportTypeScriptDeclarations (file, classes) { + exportTypeScriptClassNames (file, classes) { - log.bright.cyan ('Exporting TypeScript declarations →', file.yellow) + log.bright.cyan ('Exporting TypeScript class names →', file.yellow) const regex = /\/[\n]{2}(?: export class [^\s]+ extends [^\s]+ \{\}[\r]?[\n])+/ const replacement = "/\n\n" + Object.keys (classes).map (className => { - const baseClass = classes[className] + const baseClass = classes[className].replace (/ccxt\.[a-z_]+/, 'Exchange') return ' export class ' + className + ' extends ' + baseClass + " {}" }).join ("\n") + "\n" replaceInFile (file, regex, replacement) } + exportTypeScriptExchangeIds (file, classes) { + + log.bright.cyan ('Exporting TypeScript exchange ids →', file.yellow) + + const regex = /\/[\n]{2} export type ExchangeId =\n(?: \| \'[a-z0-9_]+\'[\r]?[\n])+/ + const replacement = "/\n\n export type ExchangeId =\n" + Object.keys (classes).map (className => { + return " | '" + className + "'" + }).join ("\n") + "\n" + + replaceInFile (file, regex, replacement) + } + + exportTypeScriptDeclarations (file, classes) { + + this.exportTypeScriptClassNames (file, classes) + this.exportTypeScriptExchangeIds (file, classes) + } + // ======================================================================== transpileErrorHierarchy () { @@ -1092,7 +1164,7 @@ class Transpiler { const quote = (s) => "'" + s + "'" // helper to add quotes around class names - const pythonExports = [ 'error_hierarchy' ] + const pythonExports = [ 'error_hierarchy', 'BaseError' ] const pythonErrors = intellisense (root, 'BaseError', pythonDeclareErrorClass, pythonExports) const pythonAll = '__all__ = [\n ' + pythonExports.map (quote).join (',\n ') + '\n]' @@ -1157,7 +1229,7 @@ class Transpiler { transpileDateTimeTests () { const jsFile = './js/test/base/functions/test.datetime.js' - const pyFile = './python/test/test_exchange_datetime_functions.py' + const pyFile = './python/ccxt/test/test_exchange_datetime_functions.py' const phpFile = './php/test/test_exchange_datetime_functions.php' log.magenta ('Transpiling from', jsFile.yellow) @@ -1169,7 +1241,7 @@ class Transpiler { [/^\/\*.*\s+/mg, ''], ]) - let { python3Body, python2Body, phpBody } = this.transpileJavaScriptToPythonAndPHP ({ js, removeEmptyLines: false }) + let { python3Body, python2Body, phpBody, phpAsyncBody } = this.transpileJavaScriptToPythonAndPHP ({ js, removeEmptyLines: false }) // phpBody = phpBody.replace (/exchange\./g, 'Exchange::') @@ -1198,7 +1270,7 @@ class Transpiler { transpilePrecisionTests () { const jsFile = './js/test/base/functions/test.number.js' - const pyFile = './python/test/test_decimal_to_precision.py' + const pyFile = './python/ccxt/test/test_decimal_to_precision.py' const phpFile = './php/test/decimal_to_precision.php' log.magenta ('Transpiling from', jsFile.yellow) @@ -1212,7 +1284,7 @@ class Transpiler { [ /numberToString/g, 'number_to_string' ], ]) - let { python3Body, python2Body, phpBody } = this.transpileJavaScriptToPythonAndPHP ({ js, removeEmptyLines: false }) + let { python3Body, python2Body, phpBody, phpAsyncBody } = this.transpileJavaScriptToPythonAndPHP ({ js, removeEmptyLines: false }) const pythonHeader = [ "", @@ -1283,7 +1355,7 @@ class Transpiler { transpileCryptoTests () { const jsFile = './js/test/base/functions/test.crypto.js' - const pyFile = './python/test/test_crypto.py' + const pyFile = './python/ccxt/test/test_crypto.py' const phpFile = './php/test/test_crypto.php' log.magenta ('Transpiling from', jsFile.yellow) @@ -1295,7 +1367,7 @@ class Transpiler { [ /function equals \([\S\s]+?return true\n}\n/g, '' ], ]) - let { python3Body, python2Body, phpBody } = this.transpileJavaScriptToPythonAndPHP ({ js, removeEmptyLines: false }) + let { python3Body, python2Body, phpBody, phpAsyncBody } = this.transpileJavaScriptToPythonAndPHP ({ js, removeEmptyLines: false }) const pythonHeader = [ "", @@ -1352,22 +1424,22 @@ class Transpiler { const tests = [ { 'jsFile': './js/test/Exchange/test.trade.js', - 'pyFile': './python/test/test_trade.py', + 'pyFile': './python/ccxt/test/test_trade.py', 'phpFile': './php/test/test_trade.php', }, { 'jsFile': './js/test/Exchange/test.order.js', - 'pyFile': './python/test/test_order.py', + 'pyFile': './python/ccxt/test/test_order.py', 'phpFile': './php/test/test_order.php', }, { 'jsFile': './js/test/Exchange/test.transaction.js', - 'pyFile': './python/test/test_transaction.py', + 'pyFile': './python/ccxt/test/test_transaction.py', 'phpFile': './php/test/test_transaction.php', }, { 'jsFile': './js/test/Exchange/test.ohlcv.js', - 'pyFile': './python/test/test_ohlcv.py', + 'pyFile': './python/ccxt/test/test_ohlcv.py', 'phpFile': './php/test/test_ohlcv.php', }, ] @@ -1389,7 +1461,6 @@ class Transpiler { ]) const pythonHeader = [ - '', 'import numbers # noqa: E402', 'try:', ' basestring # basestring was removed in Python 3', @@ -1400,7 +1471,7 @@ class Transpiler { ].join('\n') let { python3Body, python2Body, phpBody } = this.transpileJavaScriptToPythonAndPHP ({ js, removeEmptyLines: false }) - const python = this.getPythonPreamble () + pythonHeader + python3Body; + const python = pythonHeader + python3Body; const php = this.getPHPPreamble (false) + phpBody; log.magenta ('→', test.pyFile.yellow) @@ -1423,22 +1494,53 @@ class Transpiler { // ============================================================================ - transpileEverything () { + transpilePhpBaseClassMethods () { + const baseMethods = this.getPHPBaseMethods () + const indent = 4 + const space = ' '.repeat (indent) + const result = [ + 'public static $camelcase_methods = array(', + ] + for (const method of baseMethods) { + const underscoreCase = unCamelCase (method) + if (underscoreCase !== method) { + result.push (space.repeat (2) + '\'' + method + '\' => ' + '\'' + underscoreCase + '\',') + } + } + result.push (space + ');') + const string = result.join ('\n') + + const phpBaseClass = './php/base/Exchange.php'; + const phpBody = fs.readFileSync (phpBaseClass, 'utf8') + const regex = /public static \$camelcase_methods = array\([\s\S]+?\);/g + const bodyArray = phpBody.split (regex) + + const newBody = bodyArray[0] + string + bodyArray[1] + + log.magenta ('Transpiling from ', phpBaseClass.yellow, '→', phpBaseClass.yellow) + overwriteFile (phpBaseClass, newBody) + } + + // ============================================================================ + + transpileEverything (force = false) { // default pattern is '.js' - const [ /* node */, /* script */, pattern ] = process.argv - , python2Folder = './python/ccxt/' - , python3Folder = './python/ccxt/async_support/' - , phpFolder = './php/' - , options = { python2Folder, python3Folder, phpFolder } + const [ /* node */, /* script */, pattern ] = process.argv.filter (x => !x.startsWith ('--')) + , python2Folder = './python/ccxt/' + , python3Folder = './python/ccxt/async_support/' + , phpFolder = './php/' + , phpAsyncFolder = './php/async/' + , options = { python2Folder, python3Folder, phpFolder, phpAsyncFolder } createFolderRecursively (python2Folder) createFolderRecursively (python3Folder) createFolderRecursively (phpFolder) + createFolderRecursively (phpAsyncFolder) //* - const classes = this.transpileDerivedExchangeFiles ('./js/', options, pattern) + const classes = this.transpileDerivedExchangeFiles ('./js/', options, pattern, force) if (classes === null) { log.bright.yellow ('0 files transpiled.') @@ -1457,6 +1559,10 @@ class Transpiler { this.transpilePythonAsyncToSync () + this.transpilePhpAsyncToSync () + + this.transpilePhpBaseClassMethods () + log.bright.green ('Transpiled successfully.') } } @@ -1469,12 +1575,14 @@ if (require.main === module) { // called directly like `node module` const transpiler = new Transpiler () const test = process.argv.includes ('--test') || process.argv.includes ('--tests') const errors = process.argv.includes ('--error') || process.argv.includes ('--errors') + const force = process.argv.includes ('--force') + log.bright.green ({ force }) if (test) { transpiler.transpileTests () } else if (errors) { transpiler.transpileErrorHierarchy () } else { - transpiler.transpileEverything () + transpiler.transpileEverything (force) } } else { // if required as a module diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/build/vss.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/build/vss.js index 24db17ce1..0d98e3c07 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/build/vss.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/build/vss.js @@ -52,6 +52,8 @@ function vssEverything () { vss ('./ccxt.js', "const version = '{version}'", version) vss ('./php/base/Exchange.php', "$version = '{version}'", version) + vss ('./php/async/base/Exchange.php', "VERSION = '{version}'", version) + vss ('./php/async/base/Exchange.php', "$version = '{version}'", version) vss ('./php/base/Exchange.php', "VERSION = '{version}'", version) vss ('./python/ccxt/__init__.py', "__version__ = '{version}'", version) vss ('./python/ccxt/base/exchange.py', "__version__ = '{version}'", version) diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/ccxt.d.ts b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/ccxt.d.ts index eae728f4c..823f7825b 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/ccxt.d.ts +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/ccxt.d.ts @@ -56,16 +56,21 @@ declare module 'ccxt' { symbol: string; base: string; quote: string; - baseId: string, - quoteId: string, + baseId: string; + quoteId: string; + type?: string; + spot?: boolean; + margin?: boolean; + swap?: boolean; + future?: boolean; active: boolean; precision: { base: number, quote: number, amount: number, price: number }; limits: { amount: MinMax, price: MinMax, cost?: MinMax }; - tierBased: boolean, - percentage: boolean, - taker: number, - maker: number, - info: any, + tierBased: boolean; + percentage: boolean; + taker: number; + maker: number; + info: any; } export interface Order { @@ -417,9 +422,9 @@ declare module 'ccxt' { /* tslint:disable */ + export class aax extends Exchange {} export class acx extends Exchange {} export class aofex extends Exchange {} - export class bcex extends Exchange {} export class bequant extends hitbtc {} export class bibox extends Exchange {} export class bigone extends Exchange {} @@ -458,6 +463,7 @@ declare module 'ccxt' { export class bw extends Exchange {} export class bybit extends Exchange {} export class bytetrade extends Exchange {} + export class cdax extends huobipro {} export class cex extends Exchange {} export class chilebit extends foxbit {} export class coinbase extends Exchange {} @@ -475,9 +481,11 @@ declare module 'ccxt' { export class coinspot extends Exchange {} export class crex24 extends Exchange {} export class currencycom extends Exchange {} + export class delta extends Exchange {} export class deribit extends Exchange {} export class digifinex extends Exchange {} export class dsx extends Exchange {} + export class equos extends Exchange {} export class eterbase extends Exchange {} export class exmo extends Exchange {} export class exx extends Exchange {} @@ -488,12 +496,12 @@ declare module 'ccxt' { export class ftx extends Exchange {} export class gateio extends Exchange {} export class gemini extends Exchange {} + export class gopax extends Exchange {} export class hbtc extends Exchange {} export class hitbtc extends Exchange {} export class hollaex extends Exchange {} export class huobijp extends huobipro {} export class huobipro extends Exchange {} - export class huobiru extends huobipro {} export class ice3x extends Exchange {} export class idex extends Exchange {} export class independentreserve extends Exchange {} @@ -506,11 +514,11 @@ declare module 'ccxt' { export class latoken extends Exchange {} export class lbank extends Exchange {} export class liquid extends Exchange {} - export class livecoin extends Exchange {} export class luno extends Exchange {} export class lykke extends Exchange {} export class mercado extends Exchange {} export class mixcoins extends Exchange {} + export class ndax extends Exchange {} export class novadax extends Exchange {} export class oceanex extends Exchange {} export class okcoin extends okex {} @@ -543,4 +551,132 @@ declare module 'ccxt' { /* tslint:enable */ + export type ExchangeId = + | 'aax' + | 'acx' + | 'aofex' + | 'bequant' + | 'bibox' + | 'bigone' + | 'binance' + | 'binanceus' + | 'bit2c' + | 'bitbank' + | 'bitbay' + | 'bitcoincom' + | 'bitfinex' + | 'bitfinex2' + | 'bitflyer' + | 'bitforex' + | 'bitget' + | 'bithumb' + | 'bitkk' + | 'bitmart' + | 'bitmax' + | 'bitmex' + | 'bitpanda' + | 'bitso' + | 'bitstamp' + | 'bitstamp1' + | 'bittrex' + | 'bitvavo' + | 'bitz' + | 'bl3p' + | 'bleutrade' + | 'braziliex' + | 'btcalpha' + | 'btcbox' + | 'btcmarkets' + | 'btctradeua' + | 'btcturk' + | 'buda' + | 'bw' + | 'bybit' + | 'bytetrade' + | 'cdax' + | 'cex' + | 'chilebit' + | 'coinbase' + | 'coinbaseprime' + | 'coinbasepro' + | 'coincheck' + | 'coinegg' + | 'coinex' + | 'coinfalcon' + | 'coinfloor' + | 'coingi' + | 'coinmarketcap' + | 'coinmate' + | 'coinone' + | 'coinspot' + | 'crex24' + | 'currencycom' + | 'delta' + | 'deribit' + | 'digifinex' + | 'dsx' + | 'equos' + | 'eterbase' + | 'exmo' + | 'exx' + | 'fcoin' + | 'fcoinjp' + | 'flowbtc' + | 'foxbit' + | 'ftx' + | 'gateio' + | 'gemini' + | 'gopax' + | 'hbtc' + | 'hitbtc' + | 'hollaex' + | 'huobijp' + | 'huobipro' + | 'ice3x' + | 'idex' + | 'independentreserve' + | 'indodax' + | 'itbit' + | 'kraken' + | 'kucoin' + | 'kuna' + | 'lakebtc' + | 'latoken' + | 'lbank' + | 'liquid' + | 'luno' + | 'lykke' + | 'mercado' + | 'mixcoins' + | 'ndax' + | 'novadax' + | 'oceanex' + | 'okcoin' + | 'okex' + | 'paymium' + | 'phemex' + | 'poloniex' + | 'probit' + | 'qtrade' + | 'rightbtc' + | 'ripio' + | 'southxchange' + | 'stex' + | 'surbitcoin' + | 'therock' + | 'tidebit' + | 'tidex' + | 'timex' + | 'upbit' + | 'vaultoro' + | 'vbtc' + | 'vcc' + | 'wavesexchange' + | 'whitebit' + | 'xbtce' + | 'xena' + | 'yobit' + | 'zaif' + | 'zb' + } diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/ccxt.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/ccxt.js index ca416bfae..1d5c72642 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/ccxt.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/ccxt.js @@ -35,16 +35,16 @@ const Exchange = require ('./js/base/Exchange') //----------------------------------------------------------------------------- // this is updated by vss.js when building -const version = '1.38.75' +const version = '1.42.77' Exchange.ccxtVersion = version //----------------------------------------------------------------------------- const exchanges = { + 'aax': require ('./js/aax.js'), 'acx': require ('./js/acx.js'), 'aofex': require ('./js/aofex.js'), - 'bcex': require ('./js/bcex.js'), 'bequant': require ('./js/bequant.js'), 'bibox': require ('./js/bibox.js'), 'bigone': require ('./js/bigone.js'), @@ -83,6 +83,7 @@ const exchanges = { 'bw': require ('./js/bw.js'), 'bybit': require ('./js/bybit.js'), 'bytetrade': require ('./js/bytetrade.js'), + 'cdax': require ('./js/cdax.js'), 'cex': require ('./js/cex.js'), 'chilebit': require ('./js/chilebit.js'), 'coinbase': require ('./js/coinbase.js'), @@ -100,9 +101,11 @@ const exchanges = { 'coinspot': require ('./js/coinspot.js'), 'crex24': require ('./js/crex24.js'), 'currencycom': require ('./js/currencycom.js'), + 'delta': require ('./js/delta.js'), 'deribit': require ('./js/deribit.js'), 'digifinex': require ('./js/digifinex.js'), 'dsx': require ('./js/dsx.js'), + 'equos': require ('./js/equos.js'), 'eterbase': require ('./js/eterbase.js'), 'exmo': require ('./js/exmo.js'), 'exx': require ('./js/exx.js'), @@ -113,12 +116,12 @@ const exchanges = { 'ftx': require ('./js/ftx.js'), 'gateio': require ('./js/gateio.js'), 'gemini': require ('./js/gemini.js'), + 'gopax': require ('./js/gopax.js'), 'hbtc': require ('./js/hbtc.js'), 'hitbtc': require ('./js/hitbtc.js'), 'hollaex': require ('./js/hollaex.js'), 'huobijp': require ('./js/huobijp.js'), 'huobipro': require ('./js/huobipro.js'), - 'huobiru': require ('./js/huobiru.js'), 'ice3x': require ('./js/ice3x.js'), 'idex': require ('./js/idex.js'), 'independentreserve': require ('./js/independentreserve.js'), @@ -131,11 +134,11 @@ const exchanges = { 'latoken': require ('./js/latoken.js'), 'lbank': require ('./js/lbank.js'), 'liquid': require ('./js/liquid.js'), - 'livecoin': require ('./js/livecoin.js'), 'luno': require ('./js/luno.js'), 'lykke': require ('./js/lykke.js'), 'mercado': require ('./js/mercado.js'), 'mixcoins': require ('./js/mixcoins.js'), + 'ndax': require ('./js/ndax.js'), 'novadax': require ('./js/novadax.js'), 'oceanex': require ('./js/oceanex.js'), 'okcoin': require ('./js/okcoin.js'), diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/cleanup.sh b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/cleanup.sh new file mode 100644 index 000000000..0dc60ed78 --- /dev/null +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/cleanup.sh @@ -0,0 +1,2 @@ +#!/bin/bash +git checkout HEAD package.json README.md ccxt.d.ts ccxt.js wiki python php dist doc diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/dist/ccxt.browser.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/dist/ccxt.browser.js index 6e6c398a4..e8b439fb1 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/dist/ccxt.browser.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/dist/ccxt.browser.js @@ -43,16 +43,16 @@ const Exchange = require ('./js/base/Exchange') //----------------------------------------------------------------------------- // this is updated by vss.js when building -const version = '1.38.75' +const version = '1.42.77' Exchange.ccxtVersion = version //----------------------------------------------------------------------------- const exchanges = { + 'aax': require ('./js/aax.js'), 'acx': require ('./js/acx.js'), 'aofex': require ('./js/aofex.js'), - 'bcex': require ('./js/bcex.js'), 'bequant': require ('./js/bequant.js'), 'bibox': require ('./js/bibox.js'), 'bigone': require ('./js/bigone.js'), @@ -91,6 +91,7 @@ const exchanges = { 'bw': require ('./js/bw.js'), 'bybit': require ('./js/bybit.js'), 'bytetrade': require ('./js/bytetrade.js'), + 'cdax': require ('./js/cdax.js'), 'cex': require ('./js/cex.js'), 'chilebit': require ('./js/chilebit.js'), 'coinbase': require ('./js/coinbase.js'), @@ -108,9 +109,11 @@ const exchanges = { 'coinspot': require ('./js/coinspot.js'), 'crex24': require ('./js/crex24.js'), 'currencycom': require ('./js/currencycom.js'), + 'delta': require ('./js/delta.js'), 'deribit': require ('./js/deribit.js'), 'digifinex': require ('./js/digifinex.js'), 'dsx': require ('./js/dsx.js'), + 'equos': require ('./js/equos.js'), 'eterbase': require ('./js/eterbase.js'), 'exmo': require ('./js/exmo.js'), 'exx': require ('./js/exx.js'), @@ -121,12 +124,12 @@ const exchanges = { 'ftx': require ('./js/ftx.js'), 'gateio': require ('./js/gateio.js'), 'gemini': require ('./js/gemini.js'), + 'gopax': require ('./js/gopax.js'), 'hbtc': require ('./js/hbtc.js'), 'hitbtc': require ('./js/hitbtc.js'), 'hollaex': require ('./js/hollaex.js'), 'huobijp': require ('./js/huobijp.js'), 'huobipro': require ('./js/huobipro.js'), - 'huobiru': require ('./js/huobiru.js'), 'ice3x': require ('./js/ice3x.js'), 'idex': require ('./js/idex.js'), 'independentreserve': require ('./js/independentreserve.js'), @@ -139,11 +142,11 @@ const exchanges = { 'latoken': require ('./js/latoken.js'), 'lbank': require ('./js/lbank.js'), 'liquid': require ('./js/liquid.js'), - 'livecoin': require ('./js/livecoin.js'), 'luno': require ('./js/luno.js'), 'lykke': require ('./js/lykke.js'), 'mercado': require ('./js/mercado.js'), 'mixcoins': require ('./js/mixcoins.js'), + 'ndax': require ('./js/ndax.js'), 'novadax': require ('./js/novadax.js'), 'oceanex': require ('./js/oceanex.js'), 'okcoin': require ('./js/okcoin.js'), @@ -181,7 +184,1793 @@ module.exports = Object.assign ({ version, Exchange, 'exchanges': Object.keys (e //----------------------------------------------------------------------------- -},{"./js/acx.js":3,"./js/aofex.js":4,"./js/base/Exchange":5,"./js/base/errors":7,"./js/base/functions":8,"./js/bcex.js":19,"./js/bequant.js":20,"./js/bibox.js":21,"./js/bigone.js":22,"./js/binance.js":23,"./js/binanceus.js":24,"./js/bit2c.js":25,"./js/bitbank.js":26,"./js/bitbay.js":27,"./js/bitcoincom.js":28,"./js/bitfinex.js":29,"./js/bitfinex2.js":30,"./js/bitflyer.js":31,"./js/bitforex.js":32,"./js/bitget.js":33,"./js/bithumb.js":34,"./js/bitkk.js":35,"./js/bitmart.js":36,"./js/bitmax.js":37,"./js/bitmex.js":38,"./js/bitpanda.js":39,"./js/bitso.js":40,"./js/bitstamp.js":41,"./js/bitstamp1.js":42,"./js/bittrex.js":43,"./js/bitvavo.js":44,"./js/bitz.js":45,"./js/bl3p.js":46,"./js/bleutrade.js":47,"./js/braziliex.js":48,"./js/btcalpha.js":49,"./js/btcbox.js":50,"./js/btcmarkets.js":51,"./js/btctradeua.js":52,"./js/btcturk.js":53,"./js/buda.js":54,"./js/bw.js":55,"./js/bybit.js":56,"./js/bytetrade.js":57,"./js/cex.js":58,"./js/chilebit.js":59,"./js/coinbase.js":60,"./js/coinbaseprime.js":61,"./js/coinbasepro.js":62,"./js/coincheck.js":63,"./js/coinegg.js":64,"./js/coinex.js":65,"./js/coinfalcon.js":66,"./js/coinfloor.js":67,"./js/coingi.js":68,"./js/coinmarketcap.js":69,"./js/coinmate.js":70,"./js/coinone.js":71,"./js/coinspot.js":72,"./js/crex24.js":73,"./js/currencycom.js":74,"./js/deribit.js":75,"./js/digifinex.js":76,"./js/dsx.js":77,"./js/eterbase.js":78,"./js/exmo.js":79,"./js/exx.js":80,"./js/fcoin.js":81,"./js/fcoinjp.js":82,"./js/flowbtc.js":83,"./js/foxbit.js":84,"./js/ftx.js":85,"./js/gateio.js":86,"./js/gemini.js":87,"./js/hbtc.js":88,"./js/hitbtc.js":89,"./js/hollaex.js":90,"./js/huobijp.js":91,"./js/huobipro.js":92,"./js/huobiru.js":93,"./js/ice3x.js":94,"./js/idex.js":95,"./js/independentreserve.js":96,"./js/indodax.js":97,"./js/itbit.js":98,"./js/kraken.js":99,"./js/kucoin.js":100,"./js/kuna.js":101,"./js/lakebtc.js":102,"./js/latoken.js":103,"./js/lbank.js":104,"./js/liquid.js":105,"./js/livecoin.js":106,"./js/luno.js":107,"./js/lykke.js":108,"./js/mercado.js":109,"./js/mixcoins.js":110,"./js/novadax.js":111,"./js/oceanex.js":112,"./js/okcoin.js":113,"./js/okex.js":114,"./js/paymium.js":115,"./js/phemex.js":116,"./js/poloniex.js":117,"./js/probit.js":118,"./js/qtrade.js":119,"./js/rightbtc.js":120,"./js/ripio.js":121,"./js/southxchange.js":122,"./js/stex.js":163,"./js/surbitcoin.js":164,"./js/therock.js":165,"./js/tidebit.js":166,"./js/tidex.js":167,"./js/timex.js":168,"./js/upbit.js":169,"./js/vaultoro.js":170,"./js/vbtc.js":171,"./js/vcc.js":172,"./js/wavesexchange.js":173,"./js/whitebit.js":174,"./js/xbtce.js":175,"./js/xena.js":176,"./js/yobit.js":177,"./js/zaif.js":178,"./js/zb.js":179}],3:[function(require,module,exports){ +},{"./js/aax.js":3,"./js/acx.js":4,"./js/aofex.js":5,"./js/base/Exchange":6,"./js/base/errors":8,"./js/base/functions":9,"./js/bequant.js":20,"./js/bibox.js":21,"./js/bigone.js":22,"./js/binance.js":23,"./js/binanceus.js":24,"./js/bit2c.js":25,"./js/bitbank.js":26,"./js/bitbay.js":27,"./js/bitcoincom.js":28,"./js/bitfinex.js":29,"./js/bitfinex2.js":30,"./js/bitflyer.js":31,"./js/bitforex.js":32,"./js/bitget.js":33,"./js/bithumb.js":34,"./js/bitkk.js":35,"./js/bitmart.js":36,"./js/bitmax.js":37,"./js/bitmex.js":38,"./js/bitpanda.js":39,"./js/bitso.js":40,"./js/bitstamp.js":41,"./js/bitstamp1.js":42,"./js/bittrex.js":43,"./js/bitvavo.js":44,"./js/bitz.js":45,"./js/bl3p.js":46,"./js/bleutrade.js":47,"./js/braziliex.js":48,"./js/btcalpha.js":49,"./js/btcbox.js":50,"./js/btcmarkets.js":51,"./js/btctradeua.js":52,"./js/btcturk.js":53,"./js/buda.js":54,"./js/bw.js":55,"./js/bybit.js":56,"./js/bytetrade.js":57,"./js/cdax.js":58,"./js/cex.js":59,"./js/chilebit.js":60,"./js/coinbase.js":61,"./js/coinbaseprime.js":62,"./js/coinbasepro.js":63,"./js/coincheck.js":64,"./js/coinegg.js":65,"./js/coinex.js":66,"./js/coinfalcon.js":67,"./js/coinfloor.js":68,"./js/coingi.js":69,"./js/coinmarketcap.js":70,"./js/coinmate.js":71,"./js/coinone.js":72,"./js/coinspot.js":73,"./js/crex24.js":74,"./js/currencycom.js":75,"./js/delta.js":76,"./js/deribit.js":77,"./js/digifinex.js":78,"./js/dsx.js":79,"./js/equos.js":80,"./js/eterbase.js":81,"./js/exmo.js":82,"./js/exx.js":83,"./js/fcoin.js":84,"./js/fcoinjp.js":85,"./js/flowbtc.js":86,"./js/foxbit.js":87,"./js/ftx.js":88,"./js/gateio.js":89,"./js/gemini.js":90,"./js/gopax.js":91,"./js/hbtc.js":92,"./js/hitbtc.js":93,"./js/hollaex.js":94,"./js/huobijp.js":95,"./js/huobipro.js":96,"./js/ice3x.js":97,"./js/idex.js":98,"./js/independentreserve.js":99,"./js/indodax.js":100,"./js/itbit.js":101,"./js/kraken.js":102,"./js/kucoin.js":103,"./js/kuna.js":104,"./js/lakebtc.js":105,"./js/latoken.js":106,"./js/lbank.js":107,"./js/liquid.js":108,"./js/luno.js":109,"./js/lykke.js":110,"./js/mercado.js":111,"./js/mixcoins.js":112,"./js/ndax.js":113,"./js/novadax.js":114,"./js/oceanex.js":115,"./js/okcoin.js":116,"./js/okex.js":117,"./js/paymium.js":118,"./js/phemex.js":119,"./js/poloniex.js":120,"./js/probit.js":121,"./js/qtrade.js":122,"./js/rightbtc.js":123,"./js/ripio.js":124,"./js/southxchange.js":125,"./js/stex.js":166,"./js/surbitcoin.js":167,"./js/therock.js":168,"./js/tidebit.js":169,"./js/tidex.js":170,"./js/timex.js":171,"./js/upbit.js":172,"./js/vaultoro.js":173,"./js/vbtc.js":174,"./js/vcc.js":175,"./js/wavesexchange.js":176,"./js/whitebit.js":177,"./js/xbtce.js":178,"./js/xena.js":179,"./js/yobit.js":180,"./js/zaif.js":181,"./js/zb.js":182}],3:[function(require,module,exports){ +'use strict'; + +// ---------------------------------------------------------------------------- + +const Exchange = require ('./base/Exchange'); +const { ArgumentsRequired, AuthenticationError, ExchangeError, ExchangeNotAvailable, OrderNotFound, InvalidOrder, CancelPending, RateLimitExceeded, InsufficientFunds, BadRequest, BadSymbol, PermissionDenied } = require ('./base/errors'); +const { TICK_SIZE } = require ('./base/functions/number'); + +// ---------------------------------------------------------------------------- + +module.exports = class aax extends Exchange { + describe () { + return this.deepExtend (super.describe (), { + 'id': 'aax', + 'name': 'AAX', + 'countries': [ 'MT' ], // Malta + 'enableRateLimit': true, + 'rateLimit': 500, + 'version': 'v2', + 'hostname': 'aaxpro.com', // aax.com + 'certified': true, + 'has': { + 'cancelAllOrders': true, + 'cancelOrder': true, + 'createOrder': true, + 'editOrder': true, + 'fetchBalance': true, + 'fetchCanceledOrders': true, + 'fetchClosedOrders': true, + 'fetchDepositAddress': true, + 'fetchMarkets': true, + 'fetchMyTrades': true, + 'fetchOHLCV': true, + 'fetchOpenOrders': true, + 'fetchOrder': true, + 'fetchOrderBook': true, + 'fetchOrders': true, + 'fetchTicker': 'emulated', + 'fetchTickers': true, + 'fetchTrades': true, + }, + 'timeframes': { + '1m': '1m', + '5m': '5m', + '15m': '15m', + '30m': '30m', + '1h': '1h', + '2h': '2h', + '4h': '4h', + '12h': '12h', + '1d': '1d', + '3d': '3d', + '1w': '1w', + }, + 'urls': { + 'logo': 'https://user-images.githubusercontent.com/1294454/104140087-a27f2580-53c0-11eb-87c1-5d9e81208fe9.jpg', + 'test': { + 'v1': 'https://api.testnet.{hostname}/marketdata/v1', + 'public': 'https://api.testnet.{hostname}', + 'private': 'https://api.testnet.{hostname}', + }, + 'api': { + 'v1': 'https://api.{hostname}/marketdata/v1', + 'public': 'https://api.{hostname}', + 'private': 'https://api.{hostname}', + }, + 'www': 'https://www.aaxpro.com', // string website URL + 'doc': 'https://www.aaxpro.com/apidoc/index.html', + 'fees': 'https://www.aaxpro.com/en-US/fees/', + 'referral': 'https://www.aaxpro.com/invite/sign-up?inviteCode=JXGm5Fy7R2MB', + }, + 'api': { + 'v1': { + 'get': [ + 'getHistMarketData', // Get OHLC k line of specific market + ], + }, + 'public': { + // these endpoints are not documented + // 'get': [ + // 'order_book', // Get the order book of specified market + // 'order_book/{market}', + // 'trades', // Get recent trades on market, each trade is included only once Trades are sorted in reverse creation order. + // 'trades/{market}', + // 'tickers', // Get ticker of all markets + // 'tickers/{market}', // Get ticker of specific market + // ], + 'get': [ + 'announcement/maintenance', // System Maintenance Notice + 'instruments', // Retrieve all trading pairs information + 'market/orderbook', // Order Book + 'futures/position/openInterest', // Open Interest + 'market/tickers', // Get the Last 24h Market Summary + 'market/candles', // Get Current Candlestick + 'market/history/candles', // Get Current Candlestick + 'market/trades', // Get the Most Recent Trades + 'market/markPrice', // Get Current Mark Price + 'futures/funding/predictedFunding/{symbol}', // Get Predicted Funding Rate + 'futures/funding/prevFundingRate/{symbol}', // Get Last Funding Rate + 'market/candles/index', // Get Current Index Candlestick + ], + }, + 'private': { + 'get': [ + 'user/info', // Retrieve user information + 'account/balances', // Get Account Balances + 'account/deposit/address', // undocumented + 'spot/trades', // Retrieve trades details for a spot order + 'spot/openOrders', // Retrieve spot open orders + 'spot/orders', // Retrieve historical spot orders + 'futures/position', // Get positions for all contracts + 'futures/position/closed', // Get closed positions + 'futures/trades', // Retrieve trade details for a futures order + 'futures/openOrders', // Retrieve futures open orders + 'futures/orders', // Retrieve historical futures orders + 'futures/funding/predictedFundingFee/{symbol}', // Get predicted funding fee + ], + 'post': [ + 'account/transfer', // Asset Transfer + 'spot/orders', // Create a new spot order + 'spot/orders/cancelAllOnTimeout', // Automatically cancel all your spot orders after a specified timeout. + 'futures/orders', // Create a new futures order + 'futures/orders/cancelAllOnTimeout', // Automatically cancel all your futures orders after a specified timeout. + 'futures/position/sltp', // Set take profit and stop loss orders for an opening position + 'futures/position/close', // Close position + 'futures/position/leverage', // Update leverage for position + 'futures/position/margin', // Modify Isolated Position Margin + ], + 'put': [ + 'spot/orders', // Amend spot order + 'futures/orders', // Amend the quantity of an open futures order + ], + 'delete': [ + 'spot/orders/cancel/{orderID}', // Cancel a spot order + 'spot/orders/cancel/all', // Batch cancel spot orders + 'futures/orders/cancel/{orderID}', // Cancel a futures order + 'futures/orders/cancel/all', // Batch cancel futures orders + ], + }, + }, + 'fees': { + 'trading': { + 'tierBased': false, + 'percentage': true, + 'maker': 0.06 / 100, + 'taker': 0.10 / 100, + }, + 'funding': { + 'tierBased': false, + 'percentage': true, + 'withdraw': {}, // There is only 1% fee on withdrawals to your bank account. + }, + }, + 'commonCurrencies': { + 'XBT': 'XBT', + }, + 'exceptions': { + 'exact': { + '2002': InsufficientFunds, + '2003': OrderNotFound, + '10003': BadRequest, // Parameter validation error + '10006': AuthenticationError, // Session expired, please relogin + '10007': AuthenticationError, // Invalid authentication key or token + '11007': AuthenticationError, // Invalid key format + '20001': InsufficientFunds, // Insufficient balance. Please deposit to trade. + '20009': InvalidOrder, // Order amount must be positive + '30000': OrderNotFound, // {"code":30000,"data":null,"message":"The order does not exist","ts":1610259732263} + '30001': InvalidOrder, // The order is being submitted, please try again later + '30004': InvalidOrder, // Minimum quantity is {0} + '30005': InvalidOrder, // Quantity maximum precision is {0} decimal places + '30006': InvalidOrder, // Price maximum precision is {0} decimal places + '30007': InvalidOrder, // Minimum price is {0} + '30008': InvalidOrder, // Stop price maximum precision is {0} decimal places + '30009': InvalidOrder, // Stop Price cannot be less than {0} + '30010': InvalidOrder, // Market price cannot be empty + '30011': CancelPending, // The order is being cancelled, please wait. + '30012': BadRequest, // Unknown currency + '30013': BadSymbol, // Unknown symbol + '30014': OrderNotFound, // Futures order cannot be found + '30015': InvalidOrder, // This is not an open order and cannot modified + '30016': ExchangeError, // No position found + '30017': InvalidOrder, // The current close position is 0. It is recommended that you cancel the current order closing order. + '30018': InvalidOrder, // Order price cannot be greater than {0} + '30019': InvalidOrder, // Order quantity cannot be greater than {0} + '30020': InvalidOrder, // Order price must be a multiple of {0} + '30021': InvalidOrder, // Margin adjustement must be greater than 0 + '30022': InvalidOrder, // New quantity must be greater than filled quantity + '30023': InvalidOrder, // Order failed, please try again + '30024': InvalidOrder, // TimeInForce error, only GTC or IOC are allowed + '30025': InvalidOrder, // TimeInForce error, only GTC is allowed + '30026': InvalidOrder, // Quantity is not a multiple of {0} + '30027': InvalidOrder, // Close position failed, it is recommended that you cancel the current order and then close the position. + '30028': BadSymbol, // Symbol cannot be traded at this time + '30029': InvalidOrder, // Modified quantity or price cannot be empty + '30030': InvalidOrder, // Price cannot be specified for market orders + '30031': InvalidOrder, // Liquidation orders cannot be modified + '30032': InvalidOrder, // Leverage cannot be greater than {0} + '30033': InvalidOrder, // Leverage cannot be smaller than {0} + '30034': RateLimitExceeded, // The max number of open orders is {0}. To place a new order, please cancel a previous one + '30035': RateLimitExceeded, // The max number of {0} open orders is {1}. To place a new order, please cancel a previous one + '30036': ExchangeNotAvailable, // Liquidation is in progress, please try again later + '30037': InvalidOrder, // Once stop limit order triggered, stop price cannot be amended + '30038': ExchangeError, // The total value of your orders has exceeded the current risk limit. Please adjust the risk limit + '30039': InsufficientFunds, // Your risk limit has now been changed to {0}, your maximum leverage less than 1, please readjust accordingly + '30040': InvalidOrder, // Order status has changed, please try again later + '30041': InvalidOrder, // Liquidation orders cannot be cancelled + '30042': InvalidOrder, // Order cannot be placed as you will be breaching you max limit value of {1} BTC for {0} + '30043': InvalidOrder, // The risk limit cannot be less than 0 + '30044': BadRequest, // Timeout cannot be greater than 60 minutes + '30045': InvalidOrder, // Side is not valid, it should be BUY or SELL + '30046': InvalidOrder, // Order type is not valid, it should be MARKET or LIMIT or STOP-LIMIT or STOP + '30047': InvalidOrder, // The order is closed. Can't cancel + '30048': InvalidOrder, // Market orders cannot be modified + '30049': InvalidOrder, // The order is being modified, please wait + '30050': InvalidOrder, // Maximum 10 orders + '40004': BadRequest, // Requested resource doesn't exist + '40009': RateLimitExceeded, // Too many requests + '40102': AuthenticationError, // {"code":40102,"message":"Unauthorized(invalid key)"} + '40103': AuthenticationError, // {"code":40103,"message":"Unauthorized(invalid sign)"} + '40303': PermissionDenied, // {"code":40303,"message":"Forbidden(invalid scopes)"} + '41001': BadRequest, // Incorrect HTTP request + '41002': BadRequest, // Unsupported HTTP request method + '42001': ExchangeNotAvailable, // Duplicated data entry, please check and try again + '50001': ExchangeError, // Server side exception, please try again later + '50002': ExchangeError, // Server is busy, please try again later + }, + 'broad': {}, + }, + 'precisionMode': TICK_SIZE, + 'options': { + 'defaultType': 'spot', // 'spot', 'future' + }, + }); + } + + async fetchMarkets (params = {}) { + const response = await this.publicGetInstruments (params); + // + // { + // "code":1, + // "message":"success", + // "ts":1610159448962, + // "data":[ + // { + // "tickSize":"0.01", + // "lotSize":"1", + // "base":"BTC", + // "quote":"USDT", + // "minQuantity":"1.0000000000", + // "maxQuantity":"30000", + // "minPrice":"0.0100000000", + // "maxPrice":"999999.0000000000", + // "status":"readOnly", + // "symbol":"BTCUSDTFP", + // "code":"FP", + // "takerFee":"0.00040", + // "makerFee":"0.00020", + // "multiplier":"0.001000000000", + // "mmRate":"0.00500", + // "imRate":"0.01000", + // "type":"futures", + // "settleType":"Vanilla", + // "settleCurrency":"USDT" + // }, + // { + // "tickSize":"0.5", + // "lotSize":"10", + // "base":"BTC", + // "quote":"USD", + // "minQuantity":"10.0000000000", + // "maxQuantity":"300000", + // "minPrice":"0.5000000000", + // "maxPrice":"999999.0000000000", + // "status":"readOnly", + // "symbol":"BTCUSDFP", + // "code":"FP", + // "takerFee":"0.00040", + // "makerFee":"0.00020", + // "multiplier":"1.000000000000", + // "mmRate":"0.00500", + // "imRate":"0.01000", + // "type":"futures", + // "settleType":"Inverse", + // "settleCurrency":"BTC" + // }, + // { + // "tickSize":"0.0001", + // "lotSize":"0.01", + // "base":"AAB", + // "quote":"USDT", + // "minQuantity":"5.0000000000", + // "maxQuantity":"50000.0000000000", + // "minPrice":"0.0001000000", + // "maxPrice":"999999.0000000000", + // "status":"readOnly", + // "symbol":"AABUSDT", + // "code":null, + // "takerFee":"0.00100", + // "makerFee":"0.00100", + // "multiplier":"1.000000000000", + // "mmRate":"0.02500", + // "imRate":"0.05000", + // "type":"spot", + // "settleType":null, + // "settleCurrency":null + // }, + // ] + // } + // + const data = this.safeValue (response, 'data'); + const result = []; + for (let i = 0; i < data.length; i++) { + const market = data[i]; + const id = this.safeString (market, 'symbol'); + const baseId = this.safeString (market, 'base'); + const quoteId = this.safeString (market, 'quote'); + const base = this.safeCurrencyCode (baseId); + const quote = this.safeCurrencyCode (quoteId); + const status = this.safeString (market, 'status'); + const active = (status === 'enable'); + const taker = this.safeFloat (market, 'takerFee'); + const maker = this.safeFloat (market, 'makerFee'); + const type = this.safeString (market, 'type'); + let inverse = undefined; + let linear = undefined; + let quanto = undefined; + const spot = (type === 'spot'); + const futures = (type === 'futures'); + const settleType = this.safeStringLower (market, 'settleType'); + if (settleType !== undefined) { + inverse = (settleType === 'inverse'); + linear = (settleType === 'vanilla'); + quanto = (settleType === 'quanto'); + } + let symbol = id; + if (type === 'spot') { + symbol = base + '/' + quote; + } + const precision = { + 'amount': this.safeFloat (market, 'lotSize'), + 'price': this.safeFloat (market, 'tickSize'), + }; + result.push ({ + 'id': id, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'baseId': baseId, + 'quoteId': quoteId, + 'type': type, + 'spot': spot, + 'futures': futures, + 'inverse': inverse, + 'linear': linear, + 'quanto': quanto, + 'precision': precision, + 'info': market, + 'active': active, + 'taker': taker, + 'maker': maker, + 'percentage': false, + 'tierBased': true, + 'limits': { + 'amount': { + 'min': this.safeString (market, 'minQuantity'), + 'max': this.safeString (market, 'maxQuantity'), + }, + 'price': { + 'min': this.safeString (market, 'minPrice'), + 'max': this.safeString (market, 'maxPrice'), + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + }, + }); + } + return result; + } + + parseTicker (ticker, market = undefined) { + // + // { + // "t":1610162685342, // timestamp + // "a":"0.00000000", // trading volume in USD in the last 24 hours, futures only + // "c":"435.20000000", // close + // "d":"4.22953489", // change + // "h":"455.04000000", // high + // "l":"412.78000000", // low + // "o":"417.54000000", // open + // "s":"BCHUSDTFP", // market id + // "v":"2031068.00000000", // trading volume in quote currency of last 24 hours + // } + // + const timestamp = this.safeInteger (ticker, 't'); + const marketId = this.safeString (ticker, 's'); + const symbol = this.safeSymbol (marketId, market); + const last = this.safeFloat (ticker, 'c'); + const open = this.safeFloat (ticker, 'o'); + let change = undefined; + let percentage = undefined; + let average = undefined; + if (last !== undefined && open !== undefined) { + change = last - open; + if (open > 0) { + percentage = change / open * 100; + } + average = this.sum (last, open) / 2; + } + const quoteVolume = this.safeFloat (ticker, 'v'); + return { + 'symbol': symbol, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'high': this.safeFloat (ticker, 'h'), + 'low': this.safeFloat (ticker, 'l'), + 'bid': undefined, + 'bidVolume': undefined, + 'ask': undefined, + 'askVolume': undefined, + 'vwap': undefined, + 'open': open, + 'close': last, + 'last': last, + 'previousClose': undefined, + 'change': change, + 'percentage': percentage, + 'average': average, + 'baseVolume': undefined, + 'quoteVolume': quoteVolume, + 'info': ticker, + }; + } + + async fetchTicker (symbol, params = {}) { + const tickers = await this.fetchTickers (undefined, params); + if (symbol in tickers) { + return tickers[symbol]; + } + throw new BadSymbol (this.id + ' fetchTicker() symbol ' + symbol + ' ticker not found'); + } + + async fetchTickers (symbols = undefined, params = {}) { + await this.loadMarkets (); + const response = await this.publicGetMarketTickers (params); + // + // { + // "e":"tickers", + // "t":1610162685342, + // "tickers":[ + // { + // "a":"0.00000000", + // "c":"435.20000000", + // "d":"4.22953489", + // "h":"455.04000000", + // "l":"412.78000000", + // "o":"417.54000000", + // "s":"BCHUSDTFP", + // "v":"2031068.00000000", + // }, + // ], + // } + // + const tickers = this.safeValue (response, 'tickers', []); + const result = []; + const timestamp = this.safeInteger (response, 't'); + for (let i = 0; i < tickers.length; i++) { + const ticker = this.parseTicker (this.extend (tickers[i], { 't': timestamp })); + result.push (ticker); + } + return this.filterByArray (result, 'symbol', symbols); + } + + async fetchOrderBook (symbol, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + if (limit === undefined) { + limit = 20; + } else { + if ((limit !== 20) && (limit !== 50)) { + throw new BadRequest (this.id + ' fetchOrderBook() limit argument must be undefined, 20 or 50'); + } + } + const request = { + 'symbol': market['id'], + 'level': limit, // required + }; + // + const response = await this.publicGetMarketOrderbook (this.extend (request, params)); + // + // { + // "asks":[ + // ["10823.00000000","0.004000"], + // ["10823.10000000","0.100000"], + // ["10823.20000000","0.010000"] + // ], + // "bids":[ + // ["10821.20000000","0.002000"], + // ["10821.10000000","0.005000"], + // ["10820.40000000","0.013000"] + // ], + // "e":"BTCUSDT@book_50", + // "t":1561543614756 + // } + // + const timestamp = this.safeInteger (response, 't'); // need unix type + return this.parseOrderBook (response, timestamp); + } + + parseTrade (trade, market = undefined) { + // + // public fetchTrades + // + // { + // "p":"9395.50000000", + // "q":"50.000000", + // "t":1592563996718 + // } + // + // private fetchMyTrades + // + // { + // "avgPrice":"1199.8", + // "base":"ETH", + // "clOrdID":null, + // "commission":"0.00002", + // "createTime":"2021-01-11T02:47:51.512Z", + // "cumQty":"0.02", + // "filledOrderID":"1eUD4F5rwK", + // "filledPrice":"1199.8", + // "filledQty":"0.02", + // "leavesQty":"0", + // "oCreateTime":"2021-01-11T02:47:51.377Z", + // "orderID":"1eUD4EHfdU", + // "orderQty":"0.02", + // "orderStatus":3, + // "orderType":1, + // "price":"1198.25", + // "quote":"USDT", + // "rejectCode":null, + // "rejectReason":null, + // "side":1, + // "stopPrice":"0", + // "symbol":"ETHUSDT", + // "taker":true, + // "tradeID":"E04WTIgfmULU", + // "transactTime":"2021-01-11T02:47:51.389Z", + // "updateTime":null, + // "userID":"1362494" + // } + // + let timestamp = this.safeInteger (trade, 't'); + if (timestamp === undefined) { + timestamp = this.parse8601 (this.safeString (trade, 'createTime')); + } + const id = this.safeString2 (trade, 'tid', 'tradeID'); + let symbol = undefined; + const marketId = this.safeString (trade, 'symbol'); + market = this.safeMarket (marketId, market); + if (market !== undefined) { + symbol = market['symbol']; + } + let price = this.safeFloat2 (trade, 'p', 'filledPrice'); + const amount = this.safeFloat2 (trade, 'q', 'filledQty'); + const orderId = this.safeString (trade, 'orderID'); + const isTaker = this.safeValue (trade, 'taker'); + let takerOrMaker = undefined; + if (isTaker !== undefined) { + takerOrMaker = isTaker ? 'taker' : 'maker'; + } + let side = this.safeString (trade, 'side'); + if (side === '1') { + side = 'buy'; + } else if (side === '2') { + side = 'sell'; + } + if (side === undefined) { + side = (price > 0) ? 'buy' : 'sell'; + } + side = (price > 0) ? 'buy' : 'sell'; + price = Math.abs (price); + let cost = undefined; + if ((price !== undefined) && (amount !== undefined)) { + cost = price * amount; + } + const orderType = this.parseOrderType (this.safeString (trade, 'orderType')); + let fee = undefined; + const feeCost = this.safeFloat (trade, 'commission'); + if (feeCost !== undefined) { + let feeCurrency = undefined; + if (market !== undefined) { + if (side === 'buy') { + feeCurrency = market['base']; + } else if (side === 'sell') { + feeCurrency = market['quote']; + } + } + fee = { + 'currency': feeCurrency, + 'cost': feeCost, + }; + } + return { + 'info': trade, + 'id': id, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'symbol': symbol, + 'type': orderType, + 'side': side, + 'order': orderId, + 'takerOrMaker': takerOrMaker, + 'price': price, + 'amount': amount, + 'cost': cost, + 'fee': fee, + }; + } + + async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + limit = (limit === undefined) ? 2000 : limit; + limit = Math.min (limit, 2000); + const request = { + 'symbol': market['id'], + 'limit': limit, + }; + const response = await this.publicGetMarketTrades (request); + // + // { + // "e":"BTCUSDFP@trades", + // "trades": [ + // {"p":"9395.50000000","q":"50.000000","t":1592563996718}, + // {"p":"9395.50000000","q":"50.000000","t":1592563993577}, + // ], + // } + // + const trades = this.safeValue (response, 'trades', []); + return this.parseTrades (trades, market, since, limit); + } + + parseOHLCV (ohlcv, market = undefined) { + // + // [ + // 0.042398, // 0 open + // 0.042684, // 1 high + // 0.042366, // 2 low + // 0.042386, // 3 close + // 0.93734243, // 4 volume + // 1611514800, // 5 timestamp + // ] + // + return [ + this.safeTimestamp (ohlcv, 5), + this.safeFloat (ohlcv, 0), + this.safeFloat (ohlcv, 1), + this.safeFloat (ohlcv, 2), + this.safeFloat (ohlcv, 3), + this.safeFloat (ohlcv, 4), + ]; + } + + async fetchOHLCV (symbol, timeframe = '1h', since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + // 'limit': limit, // if set counts from now into the past + 'symbol': market['id'], + 'timeFrame': this.timeframes[timeframe], + }; + limit = (limit === undefined) ? 500 : limit; + const duration = this.parseTimeframe (timeframe); + if (since === undefined) { + const end = this.seconds (); + request['start'] = end - duration * limit; + request['end'] = end; + } else { + const start = parseInt (since / 1000); + request['start'] = start; + request['end'] = this.sum (start, duration * limit); + } + const response = await this.publicGetMarketHistoryCandles (this.extend (request, params)); + // + // { + // "data":[ + // [0.042398,0.042684,0.042366,0.042386,0.93734243,1611514800], + // [0.042386,0.042602,0.042234,0.042373,1.01925239,1611518400], + // [0.042373,0.042558,0.042362,0.042389,0.93801705,1611522000], + // ], + // "success":true, + // "t":1611875157 + // } + // + const data = this.safeValue (response, 'data', []); + return this.parseOHLCVs (data, market, timeframe, since, limit); + } + + async fetchBalance (params = {}) { + await this.loadMarkets (); + const defaultType = this.safeString2 (this.options, 'fetchBalance', 'defaultType', 'spot'); + const type = this.safeString (params, 'type', defaultType); + const types = { + 'spot': 'SPTP', + 'future': 'FUTP', + 'otc': 'F2CP', + 'saving': 'VLTP', + }; + const purseType = this.safeString (types, type, type); + const request = { + 'purseType': purseType, + }; + params = this.omit (params, 'type'); + const response = await this.privateGetAccountBalances (this.extend (request, params)); + // + // { + // "code":1, + // "data":[ + // { + // "purseType":"FUTP", + // "currency":"BTC", + // "available":"0.41000000", + // "unavailable":"0.00000000" + // }, + // { + // "purseType":"FUTP", + // "currency":"USDT", + // "available":"0.21000000", + // "unvaliable":"0.00000000" + // } + // ] + // "message":"success", + // "ts":1573530401020 + // } + // + const data = this.safeValue (response, 'data'); + const result = { 'info': response }; + for (let i = 0; i < data.length; i++) { + const balance = data[i]; + const balanceType = this.safeString (balance, 'purseType'); + if (balanceType === purseType) { + const currencyId = this.safeString (balance, 'currency'); + const code = this.safeCurrencyCode (currencyId); + const account = this.account (); + account['free'] = this.safeFloat (balance, 'available'); + account['used'] = this.safeFloat (balance, 'unavailable'); + result[code] = account; + } + } + return this.parseBalance (result); + } + + async createOrder (symbol, type, side, amount, price = undefined, params = {}) { + let orderType = type.toUpperCase (); + const orderSide = side.toUpperCase (); + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + // 'orderType': orderType, // MARKET, LIMIT, STOP, STOP-LIMIT + 'symbol': market['id'], + 'orderQty': this.amountToPrecision (symbol, amount), + 'side': orderSide, + // 'stopPrice': this.priceToPrecision (symbol, stopPrice), + // 'clOrdID': clientOrderId, // up to 20 chars, lowercase and uppercase letters only + // 'timeInForce': 'GTC', // GTC, IOC, FOK, default is GTC + // 'execInst': 'Post-Only', // the only value supported by the exchange, futures-only + }; + const timeInForce = this.safeString (params, 'timeInForce'); + if (timeInForce !== undefined) { + request['timeInForce'] = timeInForce; + params = this.omit (params, 'timeInForce'); + } + const clientOrderId = this.safeString2 (params, 'clOrdID', 'clientOrderId'); + if (clientOrderId !== undefined) { + request['clOrdID'] = clientOrderId; + params = this.omit (params, [ 'clOrdID', 'clientOrderId' ]); + } + const stopPrice = this.safeFloat (params, 'stopPrice'); + if (stopPrice === undefined) { + if ((orderType === 'STOP-LIMIT') || (orderType === 'STOP')) { + throw new ArgumentsRequired (this.id + ' createOrder() requires a stopPrice parameter for ' + orderType + ' orders'); + } + } else { + if (orderType === 'LIMIT') { + orderType = 'STOP-LIMIT'; + } else if (orderType === 'MARKET') { + orderType = 'STOP'; + } + request['stopPrice'] = this.priceToPrecision (symbol, stopPrice); + params = this.omit (params, 'stopPrice'); + } + if (orderType === 'LIMIT' || orderType === 'STOP-LIMIT') { + request['price'] = this.priceToPrecision (symbol, price); + } + request['orderType'] = orderType; + let method = undefined; + if (market['spot']) { + method = 'privatePostSpotOrders'; + } else if (market['futures']) { + method = 'privatePostFuturesOrders'; + } + const response = await this[method] (this.extend (request, params)); + // + // spot + // + // { + // "code":1, + // "data":{ + // "symbol":"ETHUSDT", + // "orderType":2, + // "avgPrice":"0", + // "execInst":null, + // "orderStatus":0, + // "userID":"1362494", + // "quote":"USDT", + // "rejectReason":null, + // "rejectCode":null, + // "price":"1500", + // "orderQty":"1", + // "commission":"0", + // "id":"268323430253735936", + // "timeInForce":1, + // "isTriggered":false, + // "side":2, + // "orderID":"1eO51MDSpQ", + // "leavesQty":"0", + // "cumQty":"0", + // "updateTime":null, + // "lastQty":"0", + // "clOrdID":null, + // "stopPrice":null, + // "createTime":null, + // "transactTime":null, + // "base":"ETH", + // "lastPrice":"0" + // }, + // "message":"success", + // "ts":1610245290980 + // } + // + // futures + // + // { + // "code":1, + // "data":{ + // "liqType":0, + // "symbol":"ETHUSDTFP", + // "orderType":2, + // "leverage":"1", + // "marketPrice":"1318.3150000000", + // "code":"FP", + // "avgPrice":"0", + // "execInst":null, + // "orderStatus":0, + // "userID":"1362494", + // "quote":"USDT", + // "rejectReason":null, + // "rejectCode":null, + // "price":"500", + // "orderQty":"1", + // "commission":"0", + // "id":"268346885133053953", + // "timeInForce":1, + // "isTriggered":false, + // "side":1, + // "orderID":"1eOuPUAAkq", + // "leavesQty":"1", + // "cumQty":"0", + // "updateTime":null, + // "lastQty":null, + // "clOrdID":null, + // "stopPrice":null, + // "createTime":null, + // "transactTime":null, + // "settleType":"VANILLA", + // "base":"ETH", + // "lastPrice":"0" + // }, + // "message":"success", + // "ts":1610250883059 + // } + // + const data = this.safeValue (response, 'data', {}); + return this.parseOrder (data, market); + } + + async editOrder (id, symbol, type, side, amount, price = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'orderID': id, + // 'orderQty': this.amountToPrecision (symbol, amount), + // 'price': this.priceToPrecision (symbol, price), + // 'stopPrice': this.priceToPrecision (symbol, stopPrice), + }; + const stopPrice = this.safeFloat (params, 'stopPrice'); + if (stopPrice !== undefined) { + request['stopPrice'] = this.priceToPrecision (symbol, stopPrice); + params = this.omit (params, 'stopPrice'); + } + if (price !== undefined) { + request['price'] = this.priceToPrecision (symbol, price); + } + if (amount !== undefined) { + request['orderQty'] = this.amountToPrecision (symbol, amount); + } + let method = undefined; + if (market['spot']) { + method = 'privatePutSpotOrders'; + } else if (market['futures']) { + method = 'privatePutFuturesOrders'; + } + const response = await this[method] (this.extend (request, params)); + // + // spot + // + // { + // "code":1, + // "data":{ + // "symbol":"ETHUSDT", + // "orderType":2, + // "avgPrice":"0", + // "execInst":null, + // "orderStatus":0, + // "userID":"1362494", + // "quote":"USDT", + // "rejectReason":null, + // "rejectCode":null, + // "price":"1500", + // "orderQty":"1", + // "commission":"0", + // "id":"268323430253735936", + // "timeInForce":1, + // "isTriggered":false, + // "side":2, + // "orderID":"1eO51MDSpQ", + // "leavesQty":"0", + // "cumQty":"0", + // "updateTime":null, + // "lastQty":"0", + // "clOrdID":null, + // "stopPrice":null, + // "createTime":null, + // "transactTime":null, + // "base":"ETH", + // "lastPrice":"0" + // }, + // "message":"success", + // "ts":1610245290980 + // } + // + // futures + // + // { + // "code":1, + // "data":{ + // "liqType":0, + // "symbol":"ETHUSDTFP", + // "orderType":2, + // "leverage":"1", + // "marketPrice":"1318.3150000000", + // "code":"FP", + // "avgPrice":"0", + // "execInst":null, + // "orderStatus":0, + // "userID":"1362494", + // "quote":"USDT", + // "rejectReason":null, + // "rejectCode":null, + // "price":"500", + // "orderQty":"1", + // "commission":"0", + // "id":"268346885133053953", + // "timeInForce":1, + // "isTriggered":false, + // "side":1, + // "orderID":"1eOuPUAAkq", + // "leavesQty":"1", + // "cumQty":"0", + // "updateTime":null, + // "lastQty":null, + // "clOrdID":null, + // "stopPrice":null, + // "createTime":null, + // "transactTime":null, + // "settleType":"VANILLA", + // "base":"ETH", + // "lastPrice":"0" + // }, + // "message":"success", + // "ts":1610250883059 + // } + // + const data = this.safeValue (response, 'data', {}); + return this.parseOrder (data, market); + } + + async cancelOrder (id, symbol = undefined, params = {}) { + await this.loadMarkets (); + const request = { + 'orderID': id, + }; + let method = undefined; + const defaultType = this.safeString2 (this.options, 'cancelOrder', 'defaultType', 'spot'); + let type = this.safeString (params, 'type', defaultType); + params = this.omit (params, 'type'); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + type = market['type']; + } + if (type === 'spot') { + method = 'privateDeleteSpotOrdersCancelOrderID'; + } else if (type === 'futures') { + method = 'privateDeleteFuturesOrdersCancelOrderID'; + } + const response = await this[method] (this.extend (request, params)); + // + // spot + // + // { + // "code":1, + // "data":{ + // "avgPrice":"0", + // "base":"BTC", + // "clOrdID":"aax", + // "commission":"0", + // "createTime":"2019-11-12T03:46:41Z", + // "cumQty":"0", + // "id":"114330021504606208", + // "isTriggered":false, + // "lastPrice":"0", + // "lastQty":"0", + // "leavesQty":"0", + // "orderID":"wJ4L366KB", + // "orderQty":"0.05", + // "orderStatus":1, + // "orderType":2, + // "price":"8000", + // "quote":"USDT", + // "rejectCode":0, + // "rejectReason":null, + // "side":1, + // "stopPrice":"0", + // "symbol":"BTCUSDT", + // "transactTime":null, + // "updateTime":"2019-11-12T03:46:41Z", + // "timeInForce":1, + // "userID":"216214" + // }, + // "message":"success", + // "ts":1573530402029 + // } + // + // futures + // + // { + // "code":1, + // "data":{ + // "avgPrice":"0", + // "base":"BTC", + // "clOrdID":"aax_futures", + // "code":"FP", + // "commission":"0", + // "createTime":"2019-11-12T06:48:58Z", + // "cumQty":"0", + // "id":"114375893764395008", + // "isTriggered":false, + // "lastPrice":"0", + // "lastQty":null, + // "leavesQty":"300", + // "leverage":"1", + // "liqType":0, + // "marketPrice":"8760.75", + // "orderID":"wJTewQc81", + // "orderQty":"300", + // "orderStatus":1, + // "orderType":2, + // "price":"8000", + // "quote":"USD", + // "rejectCode":0, + // "rejectReason":null, + // "settleType":"INVERSE", + // "side":1, + // "stopPrice":"0", + // "symbol":"BTCUSDFP", + // "transactTime":"2019-11-12T06:48:58Z", + // "updateTime":"2019-11-12T06:48:58Z", + // "timeInForce":1, + // "execInst": "", + // "userID":"216214" + // }, + // "message":"success", + // "ts":1573541642970 + // } + // + const data = this.safeValue (response, 'data', {}); + return this.parseOrder (data, market); + } + + async cancelAllOrders (symbol = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + ' cancelAllOrders() requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'symbol': market['id'], + }; + let method = undefined; + if (market['spot']) { + method = 'privateDeleteSpotOrdersCancelAll'; + } else if (market['futures']) { + method = 'privateDeleteFuturesOrdersCancelAll'; + } + const response = await this[method] (this.extend (request, params)); + // + // { + // "code":1, + // "data":[ + // "vBC9rXsEE", + // "vBCc46OI0" + // ], + // "message":"success", + // "ts":1572597435470 + // } + // + return response; + } + + async fetchOrder (id, symbol = undefined, params = {}) { + await this.loadMarkets (); + const defaultType = this.safeString2 (this.options, 'fetchOrder', 'defaultType', 'spot'); + params['type'] = this.safeString (params, 'type', defaultType); + const request = {}; + const clientOrderId = this.safeString2 (params, 'clOrdID', 'clientOrderId'); + if (clientOrderId === undefined) { + request['orderID'] = id; + } else { + request['clOrdID'] = clientOrderId; + params = this.omit (params, [ 'clOrdID', 'clientOrderId' ]); + } + const orders = await this.fetchOrders (symbol, undefined, undefined, this.extend (request, params)); + const order = this.safeValue (orders, 0); + if (order === undefined) { + if (clientOrderId === undefined) { + throw new OrderNotFound (this.id + ' fetchOrder() could not find order id ' + id); + } else { + throw new OrderNotFound (this.id + ' fetchOrder() could not find order clientOrderID ' + clientOrderId); + } + } + return order; + } + + async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'pageNum': '1', + // 'pageSize': '10', + // 'symbol': market['id'], + // 'orderID': id, + // 'side': 'undefined', // BUY, SELL + // 'clOrdID': clientOrderId, + }; + const defaultType = this.safeString2 (this.options, 'fetchOpenOrders', 'defaultType', 'spot'); + let type = this.safeString (params, 'type', defaultType); + params = this.omit (params, 'type'); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['symbol'] = market['id']; + type = market['type']; + } + const clientOrderId = this.safeString2 (params, 'clOrdID', 'clientOrderId'); + if (clientOrderId !== undefined) { + request['clOrdID'] = clientOrderId; + params = this.omit (params, [ 'clOrdID', 'clientOrderId' ]); + } + let method = undefined; + if (type === 'spot') { + method = 'privateGetSpotOpenOrders'; + } else if (type === 'futures') { + method = 'privateGetFuturesOpenOrders'; + } + if (limit !== undefined) { + request['pageSize'] = limit; // default 10 + } + const response = await this[method] (this.extend (request, params)); + // + // spot + // + // { + // "code":1, + // "data":{ + // "total":19, + // "pageSize":10, + // "list":[ + // { + // "orderType":2, + // "symbol":"BTCUSDT", + // "avgPrice":"0", + // "orderStatus":0, + // "userID":"7225", + // "quote":"USDT", + // "rejectReason":null, + // "rejectCode":null, + // "price":"0", + // "orderQty":"0.002", + // "commission":"0", + // "id":"110419975166304256", + // "isTriggered":null, + // "side":1, + // "orderID":"vBGlDcLwk", + // "cumQty":"0", + // "leavesQty":"0", + // "updateTime":null, + // "clOrdID":"0001", + // "lastQty":"0", + // "stopPrice":"0", + // "createTime":"2019-11-01T08:49:33Z", + // "transactTime":null, + // "timeInForce":1, + // "base":"BTC", + // "lastPrice":"0" + // } + // ], + // "pageNum":1 + // }, + // "message":"success", + // "ts":1572598173682 + // } + // + // futures + // + // { + // "code":1, + // "data":{ + // "list":[ + // { + // "avgPrice":"8768.99999999484997", + // "base":"BTC", + // "clOrdID":null, + // "code":"FP", + // "commission":"0.00000913", + // "createTime":"2019-11-12T07:05:52.000Z, + // "cumQty":"100", + // "id":"114380149603028993", + // "isTriggered":false, + // "lastPrice":"8769", + // "lastQty":"100", + // "leavesQty":"0", + // "leverage":"1", + // "liqType":1, + // "marketPrice":"8769.75", + // "orderID":"wJXURIFBT", + // "orderQty":"100", + // "orderStatus":3, + // "orderType":1, + // "price":"8769.75", + // "quote":"USD", + // "rejectCode":0, + // "rejectReason":null, + // "settleType":"INVERSE", + // "side":2, + // "stopPrice":"0", + // "symbol":"BTCUSDFP", + // "transactTime":"2019-11-12T07:05:52.000Z, + // "updateTime":"2019-11-12T07:05:52.000Z, + // "timeInForce":1, + // "execInst": "", + // "userID":"216214" + // }, + // ], + // "pageNum":1, + // "pageSize":10, + // "total":21 + // }, + // "message":"success", + // "ts":1573546960172 + // } + // + const data = this.safeValue (response, 'data', {}); + const orders = this.safeValue (data, 'list', []); + return this.parseOrders (orders, market, since, limit); + } + + async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const request = { + 'orderStatus': '2', // 1 new, 2 filled, 3 canceled + }; + return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); + } + + async fetchCanceledOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const request = { + 'orderStatus': '3', // 1 new, 2 filled, 3 canceled + }; + return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); + } + + async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'pageNum': '1', + // 'pageSize': '10', + // 'symbol': market['id'], + // 'orderID': id, + // 'base': market['baseId'], + // 'quote': market['quoteId'], + // 'orderStatus': undefined, // 1 new, 2 filled, 3 canceled + // 'startDate': this.ymd (since), + // 'endDate': this.ymd (this.milliseconds()), + // 'orderType': undefined, // MARKET, LIMIT, STOP, STOP-LIMIT + // 'side': 'undefined', // BUY, SELL + // 'clOrdID': clientOrderId, + }; + let method = undefined; + const defaultType = this.safeString2 (this.options, 'fetchOrders', 'defaultType', 'spot'); + let type = this.safeString (params, 'type', defaultType); + params = this.omit (params, 'type'); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['symbol'] = market['id']; + type = market['type']; + } + if (type === 'spot') { + method = 'privateGetSpotOrders'; + } else if (type === 'futures') { + method = 'privateGetFuturesOrders'; + } + const clientOrderId = this.safeString2 (params, 'clOrdID', 'clientOrderId'); + if (clientOrderId !== undefined) { + request['clOrdID'] = clientOrderId; + params = this.omit (params, [ 'clOrdID', 'clientOrderId' ]); + } + if (limit !== undefined) { + request['pageSize'] = limit; // default 10 + } + if (since !== undefined) { + request['startDate'] = this.ymd (since); + } + const response = await this[method] (this.extend (request, params)); + // + // spot + // + // { + // "code":1, + // "data":{ + // "total":19, + // "pageSize":10, + // "list":[ + // { + // "orderType":2, + // "symbol":"BTCUSDT", + // "avgPrice":"0", + // "orderStatus":0, + // "userID":"7225", + // "quote":"USDT", + // "rejectReason":null, + // "rejectCode":null, + // "price":"0", + // "orderQty":"0.002", + // "commission":"0", + // "id":"110419975166304256", + // "isTriggered":null, + // "side":1, + // "orderID":"vBGlDcLwk", + // "cumQty":"0", + // "leavesQty":"0", + // "updateTime":null, + // "clOrdID":"0001", + // "lastQty":"0", + // "stopPrice":"0", + // "createTime":"2019-11-01T08:49:33Z", + // "transactTime":null, + // "timeInForce":1, + // "base":"BTC", + // "lastPrice":"0" + // } + // ], + // "pageNum":1 + // }, + // "message":"success", + // "ts":1572598173682 + // } + // + // futures + // + // { + // "code":1, + // "data":{ + // "list":[ + // { + // "avgPrice":"8768.99999999484997", + // "base":"BTC", + // "clOrdID":null, + // "code":"FP", + // "commission":"0.00000913", + // "createTime":"2019-11-12T07:05:52.000Z, + // "cumQty":"100", + // "id":"114380149603028993", + // "isTriggered":false, + // "lastPrice":"8769", + // "lastQty":"100", + // "leavesQty":"0", + // "leverage":"1", + // "liqType":1, + // "marketPrice":"8769.75", + // "orderID":"wJXURIFBT", + // "orderQty":"100", + // "orderStatus":3, + // "orderType":1, + // "price":"8769.75", + // "quote":"USD", + // "rejectCode":0, + // "rejectReason":null, + // "settleType":"INVERSE", + // "side":2, + // "stopPrice":"0", + // "symbol":"BTCUSDFP", + // "transactTime":"2019-11-12T07:05:52.000Z, + // "updateTime":"2019-11-12T07:05:52.000Z, + // "timeInForce":1, + // "execInst": "", + // "userID":"216214" + // }, + // ], + // "pageNum":1, + // "pageSize":10, + // "total":21 + // }, + // "message":"success", + // "ts":1573546960172 + // } + // + const data = this.safeValue (response, 'data', {}); + const orders = this.safeValue (data, 'list', []); + return this.parseOrders (orders, market, since, limit); + } + + parseOrderStatus (status) { + const statuses = { + '0': 'open', // pending new + '1': 'open', // new + '2': 'open', // partially-filled + '3': 'closed', // filled + '4': 'canceled', // cancel-reject + '5': 'canceled', // canceled + '6': 'rejected', // rejected + '10': 'expired', // expired + '11': 'rejected', // business-reject + }; + return this.safeString (statuses, status, status); + } + + parseOrderType (status) { + const statuses = { + '1': 'market', + '2': 'limit', + '3': 'stop', + '4': 'stop-limit', + '7': 'stop-loss', + '8': 'take-profit', + }; + return this.safeString (statuses, status, status); + } + + parseTimeInForce (timeInForce) { + const timeInForces = { + '1': 'GTC', + '3': 'IOC', + '4': 'FOK', + }; + return this.safeString (timeInForces, timeInForce, timeInForce); + } + + parseOrder (order, market = undefined) { + // + // { + // "avgPrice":"8768.99999999484997", + // "base":"BTC", + // "clOrdID":null, + // "code":"FP", // futures only + // "commission":"0.00000913", + // "createTime":"2019-11-12T07:05:52.000Z, + // "cumQty":"100", + // "id":"114380149603028993", // futures only + // "isTriggered":false, + // "lastPrice":"8769", + // "lastQty":"100", + // "leavesQty":"0", + // "leverage":"1", // futures only + // "liqType":1, // futures only + // "marketPrice":"8769.75", // futures only + // "orderID":"wJXURIFBT", + // "orderQty":"100", + // "orderStatus":3, + // "orderType":1, + // "price":"8769.75", + // "quote":"USD", + // "rejectCode":0, + // "rejectReason":null, + // "settleType":"INVERSE", // futures only + // "side":2, + // "stopPrice":"0", + // "symbol":"BTCUSDFP", + // "transactTime":"2019-11-12T07:05:52.000Z, + // "updateTime":"2019-11-12T07:05:52.000Z, + // "timeInForce":1, + // "execInst": "", + // "userID":"216214" + // } + // + // sometimes the timestamp is returned in milliseconds + let timestamp = this.safeValue (order, 'createTime'); + if (typeof timestamp === 'string') { + timestamp = this.parse8601 (timestamp); + } + const status = this.parseOrderStatus (this.safeString (order, 'orderStatus')); + const type = this.parseOrderType (this.safeString (order, 'orderType')); + let side = this.safeString (order, 'side'); + if (side === '1') { + side = 'buy'; + } else if (side === '2') { + side = 'sell'; + } + const id = this.safeString (order, 'orderID'); + const clientOrderId = this.safeString (order, 'clOrdID'); + const marketId = this.safeString (order, 'symbol'); + market = this.safeMarket (marketId, market); + const symbol = market['symbol']; + const price = this.safeFloat (order, 'price'); + const stopPrice = this.safeFloat (order, 'stopPrice'); + const timeInForce = this.parseTimeInForce (this.safeString (order, 'timeInForce')); + const execInst = this.safeString (order, 'execInst'); + const postOnly = (execInst === 'Post-Only'); + const average = this.safeFloat (order, 'avgPrice'); + const amount = this.safeFloat (order, 'orderQty'); + const filled = this.safeFloat (order, 'cumQty'); + const remaining = this.safeString (order, 'leavesQty'); + let cost = undefined; + let lastTradeTimestamp = undefined; + if (filled !== undefined) { + if (price !== undefined) { + cost = filled * price; + } + if (filled > 0) { + lastTradeTimestamp = this.safeValue (order, 'transactTime'); + if (typeof lastTradeTimestamp === 'string') { + lastTradeTimestamp = this.parse8601 (lastTradeTimestamp); + } + } + } + let fee = undefined; + const feeCost = this.safeFloat (order, 'commission'); + if (feeCost !== undefined) { + let feeCurrency = undefined; + if (market !== undefined) { + if (side === 'buy') { + feeCurrency = market['base']; + } else if (side === 'sell') { + feeCurrency = market['quote']; + } + } + fee = { + 'currency': feeCurrency, + 'cost': feeCost, + }; + } + return { + 'id': id, + 'info': order, + 'clientOrderId': clientOrderId, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'lastTradeTimestamp': lastTradeTimestamp, + 'status': status, + 'symbol': symbol, + 'type': type, + 'timeInForce': timeInForce, + 'postOnly': postOnly, + 'side': side, + 'price': price, + 'stopPrice': stopPrice, + 'average': average, + 'amount': amount, + 'filled': filled, + 'remaining': remaining, + 'cost': cost, + 'trades': undefined, + 'fee': fee, + }; + } + + async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'pageNum': '1', + // 'pageSize': '10', + // 'symbol': market['id'], + // 'orderID': id, + // 'base': market['baseId'], + // 'quote': market['quoteId'], + // 'startDate': this.ymd (since), + // 'endDate': this.ymd (this.milliseconds()), + // 'orderType': undefined, // MARKET, LIMIT, STOP, STOP-LIMIT + // 'side': 'undefined', // BUY, SELL + }; + let method = undefined; + const defaultType = this.safeString2 (this.options, 'fetchMyTrades', 'defaultType', 'spot'); + let type = this.safeString (params, 'type', defaultType); + params = this.omit (params, 'type'); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['symbol'] = market['id']; + type = market['type']; + } + if (type === 'spot') { + method = 'privateGetSpotTrades'; + } else if (type === 'futures') { + method = 'privateGetFuturesTrades'; + } + if (limit !== undefined) { + request['pageSize'] = limit; // default 10 + } + if (since !== undefined) { + request['startDate'] = this.ymd (since); + } + const response = await this[method] (this.extend (request, params)); + // + // { + // "code":1, + // "data":{ + // "list":[ + // { + // "avgPrice":"1199.8", + // "base":"ETH", + // "clOrdID":null, + // "commission":"0.00002", + // "createTime":"2021-01-11T02:47:51.512Z", + // "cumQty":"0.02", + // "filledOrderID":"1eUD4F5rwK", + // "filledPrice":"1199.8", + // "filledQty":"0.02", + // "leavesQty":"0", + // "oCreateTime":"2021-01-11T02:47:51.377Z", + // "orderID":"1eUD4EHfdU", + // "orderQty":"0.02", + // "orderStatus":3, + // "orderType":1, + // "price":"1198.25", + // "quote":"USDT", + // "rejectCode":null, + // "rejectReason":null, + // "side":1, + // "stopPrice":"0", + // "symbol":"ETHUSDT", + // "taker":true, + // "tradeID":"E04WTIgfmULU", + // "transactTime":"2021-01-11T02:47:51.389Z", + // "updateTime":null, + // "userID":"1362494" + // } + // ], + // "pageNum":1, + // "pageSize":10, + // "total":1 + // }, + // "message":"success", + // "ts":1610333278042 + // } + // + const data = this.safeValue (response, 'data', {}); + const trades = this.safeValue (data, 'list', []); + return this.parseTrades (trades, market, since, limit); + } + + async fetchDepositAddress (code, params = {}) { + await this.loadMarkets (); + const currency = this.currency (code); + const request = { + 'currency': currency['id'], + // 'network': undefined, // 'ERC20 + }; + const response = await this.privateGetAccountDepositAddress (this.extend (request, params)); + // + // { + // "code":1, + // "data":{ + // "address":"0x080c5c667381404cca9be0be9a04b2e47691ff86", + // "tag":null, + // "currency":"USDT", + // "network":"ERC20" + // }, + // "message":"success", + // "ts":1610270465132 + // } + // + const data = this.safeValue (response, 'data', {}); + return this.parseDepositAddress (data, currency); + } + + parseDepositAddress (depositAddress, currency = undefined) { + // + // { + // "address":"0x080c5c667381404cca9be0be9a04b2e47691ff86", + // "tag":null, + // "currency":"USDT", + // "network":"ERC20" + // } + // + const address = this.safeString (depositAddress, 'address'); + const tag = this.safeString (depositAddress, 'tag'); + const currencyId = this.safeString (depositAddress, 'currency'); + const code = this.safeCurrencyCode (currencyId); + return { + 'info': depositAddress, + 'code': code, + 'address': address, + 'tag': tag, + }; + } + + nonce () { + return this.milliseconds (); + } + + sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { + let url = '/' + this.implodeParams (path, params); + const query = this.omit (params, this.extractParams (path)); + if (api === 'v1') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } else { + url = '/' + this.version + url; + if (api === 'public') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } else if (api === 'private') { + this.checkRequiredCredentials (); + const nonce = this.nonce ().toString (); + headers = { + 'X-ACCESS-KEY': this.apiKey, + 'X-ACCESS-NONCE': nonce, + }; + let auth = nonce + ':' + method; + if (method === 'GET') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + auth += url; + } else { + headers['Content-Type'] = 'application/json'; + body = this.json (query); + auth += url + body; + } + const signature = this.hmac (this.encode (auth), this.encode (this.secret)); + headers['X-ACCESS-SIGN'] = signature; + } + } + url = this.implodeParams (this.urls['api'][api], { 'hostname': this.hostname }) + url; + return { 'url': url, 'method': method, 'body': body, 'headers': headers }; + } + + handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { + if (response === undefined) { + return; // fallback to default error handler + } + // + // {"code":40102,"message":"Unauthorized(invalid key)"} + // + const errorCode = this.safeString (response, 'code'); + if ((errorCode !== undefined) && (errorCode !== '1')) { + const feedback = this.id + ' ' + this.json (response); + this.throwExactlyMatchedException (this.exceptions['exact'], errorCode, feedback); + this.throwBroadlyMatchedException (this.exceptions['broad'], body, feedback); + } + } +}; + +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],4:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -530,6 +2319,7 @@ module.exports = class acx extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': this.safeFloat (order, 'price'), 'stopPrice': undefined, @@ -669,7 +2459,7 @@ module.exports = class acx extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],4:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],5:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -804,6 +2594,9 @@ module.exports = class aofex extends Exchange { 'show_all': '0', // '1' to show zero balances }, }, + 'commonCurrencies': { + 'CPC': 'Consensus Planet Coin', + }, }); } @@ -1470,6 +3263,7 @@ module.exports = class aofex extends Exchange { 'symbol': market['symbol'], 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -1767,7 +3561,7 @@ module.exports = class aofex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],5:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],6:[function(require,module,exports){ "use strict"; // ---------------------------------------------------------------------------- @@ -2181,20 +3975,20 @@ module.exports = class Exchange { if (!!enabled) { // eslint-disable-line no-extra-boolean-cast if ('test' in this.urls) { if (typeof this.urls['api'] === 'string') { - this.urls['api_backup'] = this.urls['api'] + this.urls['apiBackup'] = this.urls['api'] this.urls['api'] = this.urls['test'] } else { - this.urls['api_backup'] = clone (this.urls['api']) + this.urls['apiBackup'] = clone (this.urls['api']) this.urls['api'] = clone (this.urls['test']) } } else { throw new NotSupported (this.id + ' does not have a sandbox URL') } - } else if ('api_backup' in this.urls) { + } else if ('apiBackup' in this.urls) { if (typeof this.urls['api'] === 'string') { - this.urls['api'] = this.urls['api_backup'] + this.urls['api'] = this.urls['apiBackup'] } else { - this.urls['api'] = clone (this.urls['api_backup']) + this.urls['api'] = clone (this.urls['apiBackup']) } } } @@ -2346,34 +4140,31 @@ module.exports = class Exchange { handleRestResponse (response, url, method = 'GET', requestHeaders = undefined, requestBody = undefined) { return response.text ().then ((responseBody) => { - - const json = this.parseJson (responseBody) - const responseHeaders = this.getResponseHeaders (response) - + const bodyText = this.onRestResponse (response.status, response.statusText, url, method, responseHeaders, responseBody, requestHeaders, requestBody); + const json = this.parseJson (bodyText) if (this.enableLastResponseHeaders) { this.last_response_headers = responseHeaders } - if (this.enableLastHttpResponse) { this.last_http_response = responseBody } - if (this.enableLastJsonResponse) { this.last_json_response = json } - if (this.verbose) { this.print ("handleRestResponse:\n", this.id, method, url, response.status, response.statusText, "\nResponse:\n", responseHeaders, "\n", responseBody, "\n") } - this.handleErrors (response.status, response.statusText, url, method, responseHeaders, responseBody, json, requestHeaders, requestBody) this.handleHttpStatusCode (response.status, response.statusText, url, method, responseBody) - return json || responseBody }) } + onRestResponse (statusCode, statusText, url, method, responseHeaders, responseBody, requestHeaders, requestBody) { + return responseBody.trim ().replace (/:(\d{15,}),/g, ':"$1",'); + } + setMarkets (markets, currencies = undefined) { const values = Object.values (markets).map ((market) => deepExtend ({ 'limits': this.limits, @@ -2673,6 +4464,10 @@ module.exports = class Exchange { return symbols.map ((symbol) => this.marketId (symbol)) } + currencyIds (codes) { + return codes.map ((code) => this.currencyId (code)) + } + symbol (symbol) { return this.market (symbol).symbol || symbol } @@ -2806,7 +4601,7 @@ module.exports = class Exchange { array = array.filter ((entry) => entry[key] >= since) } if (limit !== undefined && limit !== null) { - array = (tail && !sinceIsDefined) ? array.slice (-limit) : array.slice (0, limit) + array = tail ? array.slice (-limit) : array.slice (0, limit) } return array } @@ -2824,18 +4619,18 @@ module.exports = class Exchange { } if (limit !== undefined && limit !== null) { - array = (tail && !sinceIsDefined) ? array.slice (-limit) : array.slice (0, limit) + array = tail ? array.slice (-limit) : array.slice (0, limit) } return array } - filterBySymbolSinceLimit (array, symbol = undefined, since = undefined, limit = undefined) { - return this.filterByValueSinceLimit (array, 'symbol', symbol, since, limit) + filterBySymbolSinceLimit (array, symbol = undefined, since = undefined, limit = undefined, tail = false) { + return this.filterByValueSinceLimit (array, 'symbol', symbol, since, limit, 'timestamp', tail) } - filterByCurrencySinceLimit (array, code = undefined, since = undefined, limit = undefined) { - return this.filterByValueSinceLimit (array, 'currency', code, since, limit) + filterByCurrencySinceLimit (array, code = undefined, since = undefined, limit = undefined, tail = false) { + return this.filterByValueSinceLimit (array, 'currency', code, since, limit, 'timestamp', tail) } filterByArray (objects, key, values = undefined, indexed = true) { @@ -2865,7 +4660,8 @@ module.exports = class Exchange { let result = Object.values (trades || []).map ((trade) => this.extend (this.parseTrade (trade, market), params)) result = sortBy (result, 'timestamp') const symbol = (market !== undefined) ? market['symbol'] : undefined - return this.filterBySymbolSinceLimit (result, symbol, since, limit) + const tail = since === undefined + return this.filterBySymbolSinceLimit (result, symbol, since, limit, tail) } parseTransactions (transactions, currency = undefined, since = undefined, limit = undefined, params = {}) { @@ -2876,7 +4672,8 @@ module.exports = class Exchange { let result = Object.values (transactions || []).map ((transaction) => this.extend (this.parseTransaction (transaction, currency), params)) result = this.sortBy (result, 'timestamp'); const code = (currency !== undefined) ? currency['code'] : undefined; - return this.filterByCurrencySinceLimit (result, code, since, limit); + const tail = since === undefined; + return this.filterByCurrencySinceLimit (result, code, since, limit, tail); } parseLedger (data, currency = undefined, since = undefined, limit = undefined, params = {}) { @@ -2894,7 +4691,8 @@ module.exports = class Exchange { } result = this.sortBy (result, 'timestamp'); const code = (currency !== undefined) ? currency['code'] : undefined; - return this.filterByCurrencySinceLimit (result, code, since, limit); + const tail = since === undefined; + return this.filterByCurrencySinceLimit (result, code, since, limit, tail); } parseOrders (orders, market = undefined, since = undefined, limit = undefined, params = {}) { @@ -2924,7 +4722,8 @@ module.exports = class Exchange { Object.entries (orders).map (([ id, order ]) => this.extend (this.parseOrder (this.extend ({ 'id': id }, order), market), params)) result = sortBy (result, 'timestamp') const symbol = (market !== undefined) ? market['symbol'] : undefined - return this.filterBySymbolSinceLimit (result, symbol, since, limit) + const tail = since === undefined + return this.filterBySymbolSinceLimit (result, symbol, since, limit, tail) } safeCurrency (currencyId, currency = undefined) { @@ -2995,19 +4794,10 @@ module.exports = class Exchange { // if (!this.isArray (ohlcvs)) { // throw new ExchangeError (this.id + ' parseOHLCVs expected an array in the ohlcvs argument, but got ' + typeof ohlcvs); // } - ohlcvs = Object.values (ohlcvs || []) - const result = [] - for (let i = 0; i < ohlcvs.length; i++) { - if (limit && (result.length >= limit)) { - break; - } - const ohlcv = this.parseOHLCV (ohlcvs[i], market) - if (since && (ohlcv[0] < since)) { - continue - } - result.push (ohlcv) - } - return this.sortBy (result, 0) + const parsed = ohlcvs.map ((ohlcv) => this.parseOHLCV (ohlcv, market)) + const sorted = this.sortBy (parsed, 0) + const tail = since === undefined + return this.filterBySinceLimit (sorted, since, limit, 0, tail) } editLimitBuyOrder (id, symbol, ...args) { @@ -3030,20 +4820,20 @@ module.exports = class Exchange { return this.createOrder (symbol, ...args) } - createLimitOrder (symbol, ...args) { - return this.createOrder (symbol, 'limit', ...args) + createLimitOrder (symbol, side, amount, price = undefined, params = {}) { + return this.createOrder (symbol, 'limit', side, amount, price, params) } - createMarketOrder (symbol, ...args) { - return this.createOrder (symbol, 'market', ...args) + createMarketOrder (symbol, side, amount, price = undefined, params = {}) { + return this.createOrder (symbol, 'market', side, amount, price, params) } - createLimitBuyOrder (symbol, ...args) { - return this.createOrder (symbol, 'limit', 'buy', ...args) + createLimitBuyOrder (symbol, amount, price = undefined, params = {}) { + return this.createOrder (symbol, 'limit', 'buy', amount, price, params) } - createLimitSellOrder (symbol, ...args) { - return this.createOrder (symbol, 'limit', 'sell', ...args) + createLimitSellOrder (symbol, amount, price = undefined, params = {}) { + return this.createOrder (symbol, 'limit', 'sell', amount, price, params) } createMarketBuyOrder (symbol, amount, params = {}) { @@ -3055,7 +4845,7 @@ module.exports = class Exchange { } costToPrecision (symbol, cost) { - return decimalToPrecision (cost, ROUND, this.markets[symbol].precision.price, this.precisionMode, this.paddingMode) + return decimalToPrecision (cost, TRUNCATE, this.markets[symbol].precision.price, this.precisionMode, this.paddingMode) } priceToPrecision (symbol, price) { @@ -3142,7 +4932,7 @@ module.exports = class Exchange { // still takes the input as a hex string // same as above but returns a string instead of an object const signature = this.signMessage (message, privateKey) - return signature['r'] + this.remove0xPrefix (signature['s']) + this.binaryToBase16 (this.numberToBE (signature['v'])); + return signature['r'] + this.remove0xPrefix (signature['s']) + this.binaryToBase16 (this.numberToBE (signature['v'])) } oath () { @@ -3166,10 +4956,79 @@ module.exports = class Exchange { integerPow (a, b) { return new BN (a).pow (new BN (b)) } + + safeOrder (order) { + // Cost + // Remaining + // Average + // Price + // Amount + // Filled + // + // First we try to calculate filled from the trades + const parseFilled = order['filled'] === undefined; + const parseCost = order['cost'] === undefined; + if (parseFilled) { + order['filled'] = 0 + } + if (parseCost) { + order['cost'] = 0 + } + if (parseFilled || parseCost) { + if (Array.isArray (order['trades'])) { + for (let i = 0; i < order['trades'].length; i++) { + const trade = order['trades'][i] + if (parseFilled) { + order['filled'] = this.sum (order['filled'], trade['amount']) + } + if (parseCost) { + order['cost'] = this.sum (order['cost'], trade['cost']) + } + } + } + } + // We ensure amount = filled + remaining + if (order['amount'] === undefined) { + if (order['filled'] !== undefined && order['remaining'] !== undefined) { + order['amount'] = this.sum (order['filled'], order['remaining']) + } + } + if (order['filled'] === undefined) { + if (order['amount'] !== undefined && order['remaining'] !== undefined) { + order['filled'] = Math.max (this.sum (order['amount'], -order['remaining']), 0) + } + } + if (order['remaining'] === undefined) { + if (order['amount'] !== undefined && order['filled'] !== undefined) { + order['remaining'] = Math.max (this.sum (order['amount'], -order['filled']), 0) + } + } + // We ensure that the average field is calculated correctly + if (order['average'] === undefined) { + if (order['filled'] !== undefined && order['cost'] !== undefined && order['cost'] > 0) { + order['average'] = order['filled'] / order['cost'] + } + } + // We also ensure the cost field is calculated correctly + const costPriceExists = (order['average'] !== undefined) || (order['price'] !== undefined) + if ((order['filled'] !== undefined) && costPriceExists) { + let costPrice = undefined; + if (order['average'] === undefined) { + costPrice = order['price'] + } else { + costPrice = order['average'] + } + order['cost'] = costPrice * order['filled'] + } + // We add support for market orders + if (order['price'] === undefined && order['type'] === 'market') { + order['price'] = order['average'] + } + return order + } } - -},{"../static_dependencies/BN/bn":123,"./errors":7,"./functions":8}],6:[function(require,module,exports){ +},{"../static_dependencies/BN/bn":126,"./errors":8,"./functions":9}],7:[function(require,module,exports){ 'use strict'; const errorHierarchy = { @@ -3215,7 +5074,7 @@ const errorHierarchy = { module.exports = errorHierarchy; -},{}],7:[function(require,module,exports){ +},{}],8:[function(require,module,exports){ 'use strict'; const errorHierarchy = require ('./errorHierarchy.js') @@ -3248,6 +5107,10 @@ function subclass (BaseClass, classes, namespace = {}) { this.__proto__ = Class.prototype this.name = className this.message = message + + // https://github.com/Microsoft/TypeScript/wiki/FAQ#why-doesnt-extending-built-ins-like-error-array-and-map-work + + Object.setPrototypeOf (this, Class.prototype) } } @@ -3268,7 +5131,7 @@ module.exports = subclass ( errorHierarchy ) -},{"./errorHierarchy.js":6}],8:[function(require,module,exports){ +},{"./errorHierarchy.js":7}],9:[function(require,module,exports){ 'use strict'; /* ------------------------------------------------------------------------ */ @@ -3298,7 +5161,7 @@ module.exports = unCamelCasePropertyNames (Object.assign ({} /* ------------------------------------------------------------------------ */ -},{"./functions/crypto":9,"./functions/encode":10,"./functions/generic":11,"./functions/misc":12,"./functions/number":13,"./functions/platform":14,"./functions/string":15,"./functions/throttle":16,"./functions/time":17,"./functions/type":18}],9:[function(require,module,exports){ +},{"./functions/crypto":10,"./functions/encode":11,"./functions/generic":12,"./functions/misc":13,"./functions/number":14,"./functions/platform":15,"./functions/string":16,"./functions/throttle":17,"./functions/time":18,"./functions/type":19}],10:[function(require,module,exports){ 'use strict' /* ------------------------------------------------------------------------ */ @@ -3458,7 +5321,7 @@ module.exports = { /* ------------------------------------------------------------------------ */ -},{"../../static_dependencies/BN/bn.js":123,"../../static_dependencies/crypto-js/crypto-js":124,"./../../static_dependencies/elliptic/lib/elliptic":125,"./../../static_dependencies/node-rsa/NodeRSA":143,"./../errors":7,"./encode":10,"./string":15}],10:[function(require,module,exports){ +},{"../../static_dependencies/BN/bn.js":126,"../../static_dependencies/crypto-js/crypto-js":127,"./../../static_dependencies/elliptic/lib/elliptic":128,"./../../static_dependencies/node-rsa/NodeRSA":146,"./../errors":8,"./encode":11,"./string":16}],11:[function(require,module,exports){ "use strict"; /* ------------------------------------------------------------------------ */ @@ -3578,7 +5441,7 @@ module.exports['byteArrayToWordArray'] = byteArrayToWordArray /* ------------------------------------------------------------------------ */ -},{"../../static_dependencies/BN/bn":123,"../../static_dependencies/crypto-js/crypto-js":124,"../../static_dependencies/qs/index":159}],11:[function(require,module,exports){ +},{"../../static_dependencies/BN/bn":126,"../../static_dependencies/crypto-js/crypto-js":127,"../../static_dependencies/qs/index":162}],12:[function(require,module,exports){ "use strict"; // ---------------------------------------------------------------------------- @@ -3816,7 +5679,7 @@ module.exports = { } -},{"./type":18}],12:[function(require,module,exports){ +},{"./type":19}],13:[function(require,module,exports){ 'use strict'; const { ROUND_UP, ROUND_DOWN } = require ('./number') @@ -3956,7 +5819,7 @@ module.exports = { /* ------------------------------------------------------------------------ */ -},{"../errors":7,"./number":13}],13:[function(require,module,exports){ +},{"../errors":8,"./number":14}],14:[function(require,module,exports){ 'use strict' /* ------------------------------------------------------------------------ @@ -4297,7 +6160,7 @@ module.exports = { /* ------------------------------------------------------------------------ */ -},{}],14:[function(require,module,exports){ +},{}],15:[function(require,module,exports){ (function (process){ "use strict"; @@ -4338,30 +6201,27 @@ module.exports = { defaultFetch, } }).call(this,require('_process')) -},{"../../static_dependencies/fetch-ponyfill/fetch-node":141,"_process":207}],15:[function(require,module,exports){ +},{"../../static_dependencies/fetch-ponyfill/fetch-node":144,"_process":210}],16:[function(require,module,exports){ "use strict"; -/* ------------------------------------------------------------------------ */ +// ---------------------------------------------------------------------------- -const uuid = a => a ? (a ^ Math.random () * 16 >> a / 4).toString (16) - : ([1e7]+-1e3+-4e3+-8e3+-1e11).replace (/[018]/g, uuid) +const uuid = a => a ? (a ^ Math.random () * 16 >> a / 4).toString (16) : ([1e7]+-1e3+-4e3+-8e3+-1e11).replace (/[018]/g, uuid) +const uuid22 = a => a ? (a ^ Math.random () * 16 >> a / 4).toString (16) : ([1e7]+1e3+4e3+8e5).replace (/[018]/g, uuid22) -module.exports = +// ---------------------------------------------------------------------------- - { uuid +module.exports = { - // hasFetchOHLCV → has_fetch_ohlcv; parseHTTPResponse → parse_http_response + uuid + , uuid22 + // hasFetchOHLCV → has_fetch_ohlcv; parseHTTPResponse → parse_http_response , unCamelCase: s => s.match (/^[A-Z0-9_]+$/) ? s : (s.replace (/[a-z0-9][A-Z]/g, x => x[0] + '_' + x[1]).replace(/[A-Z0-9][A-Z0-9][a-z]/g, x => x[0] + '_' + x[1] + x[2]).toLowerCase ()) - - , capitalize: s => s.length - ? (s.charAt (0).toUpperCase () + s.slice (1)) - : s + , capitalize: s => s.length ? (s.charAt (0).toUpperCase () + s.slice (1)) : s , strip: s => s.replace(/^\s+|\s+$/g, '') - } +} -/* ------------------------------------------------------------------------ */ - -},{}],16:[function(require,module,exports){ +},{}],17:[function(require,module,exports){ "use strict"; /* ------------------------------------------------------------------------ */ @@ -4427,7 +6287,7 @@ module.exports = { /* ------------------------------------------------------------------------ */ -},{"./time":17}],17:[function(require,module,exports){ +},{"./time":18}],18:[function(require,module,exports){ 'use strict'; /* ------------------------------------------------------------------------ */ @@ -4631,7 +6491,7 @@ module.exports = /* ------------------------------------------------------------------------ */ -},{}],18:[function(require,module,exports){ +},{}],19:[function(require,module,exports){ "use strict"; /* ------------------------------------------------------------------------ */ @@ -4699,696 +6559,7 @@ module.exports = { /* ------------------------------------------------------------------------ */ -},{}],19:[function(require,module,exports){ -'use strict'; - -// --------------------------------------------------------------------------- - -const Exchange = require ('./base/Exchange'); -const { ExchangeError, ArgumentsRequired, AuthenticationError, InsufficientFunds, InvalidOrder, OrderNotFound } = require ('./base/errors'); - -// --------------------------------------------------------------------------- - -module.exports = class bcex extends Exchange { - describe () { - return this.deepExtend (super.describe (), { - 'id': 'bcex', - 'name': 'BCEX', - 'countries': [ 'CN', 'HK' ], - 'version': '1', - 'has': { - 'cancelOrder': true, - 'createOrder': true, - 'fetchBalance': true, - 'fetchClosedOrders': 'emulated', - 'fetchMarkets': true, - 'fetchMyTrades': true, - 'fetchOpenOrders': true, - 'fetchOrder': true, - 'fetchOrders': true, - 'fetchOrderBook': true, - 'fetchTicker': true, - 'fetchTickers': false, - 'fetchTrades': true, - 'fetchTradingLimits': true, - }, - 'urls': { - 'logo': 'https://user-images.githubusercontent.com/51840849/77231516-851c6900-6bac-11ea-8fd6-ee5c23eddbd4.jpg', - 'api': 'https://www.bcex.top', - 'www': 'https://www.bcex.top', - 'doc': 'https://github.com/BCEX-TECHNOLOGY-LIMITED/API_Docs/wiki/Interface', - 'fees': 'https://bcex.udesk.cn/hc/articles/57085', - 'referral': 'https://www.bcex.top/register?invite_code=758978&lang=en', - }, - 'status': { - 'status': 'error', - 'updated': undefined, - 'eta': undefined, - 'url': undefined, - }, - 'api': { - 'public': { - 'get': [ - 'Api_Market/getPriceList', // tickers - 'Api_Order/ticker', // last ohlcv candle (ticker) - 'Api_Order/depth', // orderbook - 'Api_Market/getCoinTrade', // ticker - 'Api_Order/marketOrder', // trades... - ], - 'post': [ - 'Api_Market/getPriceList', // tickers - 'Api_Order/ticker', // last ohlcv candle (ticker) - 'Api_Order/depth', // orderbook - 'Api_Market/getCoinTrade', // ticker - 'Api_Order/marketOrder', // trades... - ], - }, - 'private': { - 'post': [ - 'Api_Order/cancel', - 'Api_Order/coinTrust', // limit order - 'Api_Order/orderList', // open / all orders (my trades?) - 'Api_Order/orderInfo', - 'Api_Order/tradeList', // open / all orders - 'Api_Order/trustList', // ? - 'Api_User/userBalance', - ], - }, - }, - 'fees': { - 'trading': { - 'tierBased': false, - 'percentage': true, - 'maker': 0.1 / 100, - 'taker': 0.2 / 100, - }, - 'funding': { - 'tierBased': false, - 'percentage': false, - 'withdraw': { - 'ckusd': 0.0, - 'other': 0.05 / 100, - }, - 'deposit': {}, - }, - }, - 'exceptions': { - '该币不存在,非法操作': ExchangeError, // { code: 1, msg: "该币不存在,非法操作" } - returned when a required symbol parameter is missing in the request (also, maybe on other types of errors as well) - '公钥不合法': AuthenticationError, // { code: 1, msg: '公钥不合法' } - wrong public key - '您的可用余额不足': InsufficientFunds, // { code: 1, msg: '您的可用余额不足' } - your available balance is insufficient - '您的btc不足': InsufficientFunds, // { code: 1, msg: '您的btc不足' } - your btc is insufficient - '参数非法': InvalidOrder, // {'code': 1, 'msg': '参数非法'} - 'Parameter illegal' - '订单信息不存在': OrderNotFound, // {'code': 1, 'msg': '订单信息不存在'} - 'Order information does not exist' - }, - 'commonCurrencies': { - 'UNI': 'UNI COIN', - 'PNT': 'Penta', - }, - 'options': { - 'limits': { - // hardcoding is deprecated, using these predefined values is not recommended, use loadTradingLimits instead - 'AFC/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 6, 'max': 120000 }}}, - 'AFC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 6, 'max': 120000 }}}, - 'AFT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 15, 'max': 300000 }}}, - 'AICC/CNET': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 5, 'max': 50000 }}}, - 'AIDOC/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 5, 'max': 100000 }}}, - 'AISI/ETH': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.001, 'max': 500 }}}, - 'AIT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 20, 'max': 400000 }}}, - 'ANS/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.1, 'max': 500 }}}, - 'ANS/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.1, 'max': 1000 }}}, - 'ARC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 60, 'max': 600000 }}}, - 'AXF/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 100, 'max': 1000000 }}}, - 'BASH/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 250, 'max': 3000000 }}}, - 'BATT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 60, 'max': 1500000 }}}, - 'BCD/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 0.3, 'max': 7000 }}}, - 'BHPC/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 2, 'max': 70000 }}}, - 'BHPC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 2, 'max': 60000 }}}, - 'BOPO/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 100, 'max': 2000000 }}}, - 'BOPO/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 100, 'max': 10000000 }}}, - 'BTC/CKUSD': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.001, 'max': 10 }}}, - 'BTC/CNET': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.0005, 'max': 5 }}}, - 'BTC/USDT': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.0002, 'max': 4 }}}, - 'BTE/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 25, 'max': 250000 }}}, - 'BU/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 20, 'max': 400000 }}}, - 'CIC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 3000, 'max': 30000000 }}}, - 'CIT/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 4, 'max': 40000 }}}, - 'CIT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 4, 'max': 40000 }}}, - 'CMT/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 5, 'max': 2500000 }}}, - 'CNET/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 12, 'max': 120000 }}}, - 'CNMC/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 4, 'max': 50000 }}}, - 'CTC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 5, 'max': 550000 }}}, - 'CZR/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 12, 'max': 500000 }}}, - 'DCON/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 8, 'max': 300000 }}}, - 'DCT/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 2, 'max': 40000 }}}, - 'DCT/CKUSD': { 'precision': { 'amount': 2, 'price': 3 }, 'limits': { 'amount': { 'min': 2, 'max': 2000 }}}, - 'DOGE/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 3000, 'max': 14000000 }}}, - 'DOGE/CKUSD': { 'precision': { 'amount': 2, 'price': 6 }, 'limits': { 'amount': { 'min': 500, 'max': 2000000 }}}, - 'DRCT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 16, 'max': 190000 }}}, - 'ELA/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 0.02, 'max': 500 }}}, - 'ELF/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 0.1, 'max': 100000 }}}, - 'ELF/CKUSD': { 'precision': { 'amount': 2, 'price': 3 }, 'limits': { 'amount': { 'min': 0.01, 'max': 100000 }}}, - 'EOS/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.5, 'max': 5000 }}}, - 'EOS/CNET': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 2.5, 'max': 30000 }}}, - 'EOS/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 0.18, 'max': 1800 }}}, - 'ETC/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.2, 'max': 2500 }}}, - 'ETC/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.2, 'max': 2500 }}}, - 'ETF/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 7, 'max': 150000 }}}, - 'ETH/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.015, 'max': 100 }}}, - 'ETH/CKUSD': { 'precision': { 'amount': 4, 'price': 4 }, 'limits': { 'amount': { 'min': 0.005, 'max': 100 }}}, - 'ETH/USDT': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.005, 'max': 100 }}}, - 'FCT/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.24, 'max': 1000 }}}, - 'FCT/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.24, 'max': 1000 }}}, - 'GAME/CNET': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 1, 'max': 10000 }}}, - 'GOOC/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 200, 'max': 2000000 }}}, - 'GP/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 600, 'max': 6000000 }}}, - 'HSC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 1000, 'max': 20000000 }}}, - 'IFISH/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 300, 'max': 8000000 }}}, - 'IIC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 50, 'max': 4000000 }}}, - 'IMOS/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 15, 'max': 300000 }}}, - 'JC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 300, 'max': 3000000 }}}, - 'LBTC/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 0.1, 'max': 3000 }}}, - 'LEC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 500, 'max': 5000000 }}}, - 'LKY/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 10, 'max': 70000 }}}, - 'LKY/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 10, 'max': 100000 }}}, - 'LMC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 25, 'max': 250000 }}}, - 'LSK/CNET': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.3, 'max': 3000 }}}, - 'LTC/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.01, 'max': 500 }}}, - 'LTC/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.01, 'max': 500 }}}, - 'LTC/USDT': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.02, 'max': 450 }}}, - 'MC/CNET': { 'precision': { 'amount': 2, 'price': 6 }, 'limits': { 'amount': { 'min': 10000, 'max': 100000000 }}}, - 'MCC/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 30, 'max': 350000 }}}, - 'MOC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 25, 'max': 600000 }}}, - 'MRYC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 300, 'max': 3000000 }}}, - 'MT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 200, 'max': 6000000 }}}, - 'MXI/CNET': { 'precision': { 'amount': 2, 'price': 6 }, 'limits': { 'amount': { 'min': 5000, 'max': 60000000 }}}, - 'NAI/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 10, 'max': 100000 }}}, - 'NAS/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.2, 'max': 15000 }}}, - 'NAS/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.5, 'max': 5000 }}}, - 'NEWOS/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 65, 'max': 700000 }}}, - 'NKN/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 3, 'max': 350000 }}}, - 'NTK/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 2, 'max': 30000 }}}, - 'ONT/CKUSD': { 'precision': { 'amount': 2, 'price': 3 }, 'limits': { 'amount': { 'min': 0.2, 'max': 2000 }}}, - 'ONT/ETH': { 'precision': { 'amount': 3, 'price': 8 }, 'limits': { 'amount': { 'min': 0.01, 'max': 1000 }}}, - 'PNT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 80, 'max': 800000 }}}, - 'PST/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 5, 'max': 100000 }}}, - 'PTT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 450, 'max': 10000000 }}}, - 'QTUM/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.4, 'max': 2800 }}}, - 'QTUM/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.1, 'max': 1000 }}}, - 'RATING/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 500, 'max': 10000000 }}}, - 'RHC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 1000, 'max': 10000000 }}}, - 'SDA/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 20, 'max': 500000 }}}, - 'SDD/CKUSD': { 'precision': { 'amount': 2, 'price': 3 }, 'limits': { 'amount': { 'min': 10, 'max': 100000 }}}, - 'SHC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 250, 'max': 2500000 }}}, - 'SHE/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 100, 'max': 5000000 }}}, - 'SMC/CNET': { 'precision': { 'amount': 2, 'price': 6 }, 'limits': { 'amount': { 'min': 1000, 'max': 10000000 }}}, - 'SOP/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 50, 'max': 1000000 }}}, - 'TAC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 35, 'max': 800000 }}}, - 'TIP/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 7, 'max': 200000 }}}, - 'TKT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 40, 'max': 400000 }}}, - 'TLC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 500, 'max': 10000000 }}}, - 'TNC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 10, 'max': 110000 }}}, - 'TUB/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 200, 'max': 8000000 }}}, - 'UC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 100, 'max': 3000000 }}}, - 'UDB/CNET': { 'precision': { 'amount': 2, 'price': 6 }, 'limits': { 'amount': { 'min': 2000, 'max': 40000000 }}}, - 'UIC/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 5, 'max': 150000 }}}, - 'VAAC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 10, 'max': 250000 }}}, - 'VPN/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 200, 'max': 2000000 }}}, - 'VSC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 30, 'max': 650000 }}}, - 'WAVES/CKUSD': { 'precision': { 'amount': 2, 'price': 3 }, 'limits': { 'amount': { 'min': 0.15, 'max': 1500 }}}, - 'WDNA/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 100, 'max': 250000 }}}, - 'WIC/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 3, 'max': 30000 }}}, - 'XAS/CNET': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 2.5, 'max': 25000 }}}, - 'XLM/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 10, 'max': 300000 }}}, - 'XLM/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 1, 'max': 300000 }}}, - 'XLM/USDT': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 5, 'max': 150000 }}}, - 'XRP/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 24, 'max': 100000 }}}, - 'XRP/CKUSD': { 'precision': { 'amount': 2, 'price': 3 }, 'limits': { 'amount': { 'min': 5, 'max': 50000 }}}, - 'YBCT/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 15, 'max': 200000 }}}, - 'YBCT/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 10, 'max': 200000 }}}, - 'YBY/CNET': { 'precision': { 'amount': 2, 'price': 6 }, 'limits': { 'amount': { 'min': 25000, 'max': 250000000 }}}, - 'ZEC/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.02, 'max': 100 }}}, - 'ZEC/CKUSD': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.02, 'max': 100 }}}, - }, - }, - }); - } - - async fetchTradingLimits (symbols = undefined, params = {}) { - // this method should not be called directly, use loadTradingLimits () instead - // by default it will try load withdrawal fees of all currencies (with separate requests, sequentially) - // however if you define symbols = [ 'ETH/BTC', 'LTC/BTC' ] in args it will only load those - await this.loadMarkets (); - if (symbols === undefined) { - symbols = this.symbols; - } - const result = {}; - for (let i = 0; i < symbols.length; i++) { - const symbol = symbols[i]; - result[symbol] = await this.fetchTradingLimitsById (this.marketId (symbol), params); - } - return result; - } - - async fetchTradingLimitsById (id, params = {}) { - const request = { - 'symbol': id, - }; - const response = await this.publicPostApiOrderTicker (this.extend (request, params)); - // - // { code: 0, - // msg: "获取牌价信息成功", - // data: { high: 0.03721392, - // low: 0.03335362, - // buy: "0.03525757", - // sell: "0.03531160", - // last: 0.0352634, - // vol: "184742.4176", - // min_trade: "0.01500000", - // max_trade: "100.00000000", - // number_float: "4", - // price_float: "8" } } } - // - return this.parseTradingLimits (this.safeValue (response, 'data', {})); - } - - parseTradingLimits (limits, symbol = undefined, params = {}) { - // - // { high: 0.03721392, - // low: 0.03335362, - // buy: "0.03525757", - // sell: "0.03531160", - // last: 0.0352634, - // vol: "184742.4176", - // min_trade: "0.01500000", - // max_trade: "100.00000000", - // number_float: "4", - // price_float: "8" } - // - return { - 'info': limits, - 'precision': { - 'amount': this.safeInteger (limits, 'number_float'), - 'price': this.safeInteger (limits, 'price_float'), - }, - 'limits': { - 'amount': { - 'min': this.safeFloat (limits, 'min_trade'), - 'max': this.safeFloat (limits, 'max_trade'), - }, - }, - }; - } - - async fetchMarkets (params = {}) { - const response = await this.publicGetApiMarketGetPriceList (params); - const result = []; - const keys = Object.keys (response); - for (let i = 0; i < keys.length; i++) { - const currentMarketId = keys[i]; - const currentMarkets = response[currentMarketId]; - for (let j = 0; j < currentMarkets.length; j++) { - const market = currentMarkets[j]; - const baseId = this.safeString (market, 'coin_from'); - const quoteId = this.safeString (market, 'coin_to'); - let base = baseId.toUpperCase (); - let quote = quoteId.toUpperCase (); - base = this.safeCurrencyCode (base); - quote = this.safeCurrencyCode (quote); - const id = baseId + '2' + quoteId; - const symbol = base + '/' + quote; - const active = true; - const defaults = this.safeValue (this.options['limits'], symbol, {}); - result.push (this.extend ({ - 'id': id, - 'symbol': symbol, - 'base': base, - 'quote': quote, - 'baseId': baseId, - 'quoteId': quoteId, - 'active': active, - // overrided by defaults from this.options['limits'] - 'precision': { - 'amount': undefined, - 'price': undefined, - }, - // overrided by defaults from this.options['limits'] - 'limits': { - 'amount': { 'min': undefined, 'max': undefined }, - 'price': { 'min': undefined, 'max': undefined }, - 'cost': { 'min': undefined, 'max': undefined }, - }, - 'info': market, - }, defaults)); - } - } - return result; - } - - parseTrade (trade, market = undefined) { - let symbol = undefined; - if (market !== undefined) { - symbol = market['symbol']; - } - const timestamp = this.safeTimestamp2 (trade, 'date', 'created'); - const id = this.safeString (trade, 'tid'); - const orderId = this.safeString (trade, 'order_id'); - const amount = this.safeFloat2 (trade, 'number', 'amount'); - const price = this.safeFloat (trade, 'price'); - let cost = undefined; - if (price !== undefined) { - if (amount !== undefined) { - cost = amount * price; - } - } - let side = this.safeString (trade, 'side'); - if (side === 'sale') { - side = 'sell'; - } - return { - 'info': trade, - 'id': id, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'symbol': symbol, - 'type': undefined, - 'side': side, - 'price': price, - 'amount': amount, - 'cost': cost, - 'order': orderId, - 'fee': undefined, - 'takerOrMaker': undefined, - }; - } - - async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const request = { - 'symbol': this.marketId (symbol), - }; - if (limit !== undefined) { - request['limit'] = limit; - } - const market = this.market (symbol); - const response = await this.publicPostApiOrderMarketOrder (this.extend (request, params)); - return this.parseTrades (response['data'], market, since, limit); - } - - async fetchBalance (params = {}) { - await this.loadMarkets (); - const response = await this.privatePostApiUserUserBalance (params); - const data = this.safeValue (response, 'data'); - let keys = Object.keys (data); - const result = { }; - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - const amount = this.safeFloat (data, key); - const parts = key.split ('_'); - const currencyId = parts[0]; - const lockOrOver = parts[1]; - const code = this.safeCurrencyCode (currencyId); - if (!(code in result)) { - result[code] = this.account (); - } - if (lockOrOver === 'lock') { - result[code]['used'] = parseFloat (amount); - } else { - result[code]['free'] = parseFloat (amount); - } - } - keys = Object.keys (result); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - const total = this.sum (result[key]['used'], result[key]['free']); - result[key]['total'] = total; - } - result['info'] = data; - return this.parseBalance (result); - } - - async fetchTicker (symbol, params = {}) { - await this.loadMarkets (); - const market = this.markets[symbol]; - const request = { - 'part': market['quoteId'], - 'coin': market['baseId'], - }; - const response = await this.publicPostApiMarketGetCoinTrade (this.extend (request, params)); - const timestamp = this.milliseconds (); - return { - 'symbol': symbol, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'high': this.safeFloat (response, 'max'), - 'low': this.safeFloat (response, 'min'), - 'bid': this.safeFloat (response, 'buy'), - 'bidVolume': undefined, - 'ask': this.safeFloat (response, 'sale'), - 'askVolume': undefined, - 'vwap': undefined, - 'open': undefined, - 'close': this.safeFloat (response, 'price'), - 'last': this.safeFloat (response, 'price'), - 'previousClose': undefined, - 'change': undefined, - 'percentage': this.safeFloat (response, 'change_24h'), - 'average': undefined, - 'baseVolume': this.safeFloat (response, 'volume_24h'), - 'quoteVolume': undefined, - 'info': response, - }; - } - - async fetchOrderBook (symbol, limit = undefined, params = {}) { - await this.loadMarkets (); - const marketId = this.marketId (symbol); - const request = { - 'symbol': marketId, - }; - const response = await this.publicPostApiOrderDepth (this.extend (request, params)); - const data = this.safeValue (response, 'data'); - const timestamp = this.safeTimestamp (data, 'date'); - return this.parseOrderBook (data, timestamp); - } - - async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const market = this.market (symbol); - const request = { - 'symbol': market['id'], - }; - const response = await this.privatePostApiOrderOrderList (this.extend (request, params)); - return this.parseTrades (response['data'], market, since, limit); - } - - parseOrderStatus (status) { - const statuses = { - '0': 'open', - '1': 'open', // partially filled - '2': 'closed', - '3': 'canceled', - }; - return this.safeString (statuses, status, status); - } - - async fetchOrder (id, symbol = undefined, params = {}) { - if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a `symbol` argument'); - } - await this.loadMarkets (); - const request = { - 'symbol': this.marketId (symbol), - 'trust_id': id, - }; - const response = await this.privatePostApiOrderOrderInfo (this.extend (request, params)); - const order = this.safeValue (response, 'data'); - const timestamp = this.safeTimestamp (order, 'created'); - const status = this.parseOrderStatus (this.safeString (order, 'status')); - let side = this.safeString (order, 'flag'); - if (side === 'sale') { - side = 'sell'; - } - // Can't use parseOrder because the data format is different btw endpoint for fetchOrder and fetchOrders - return { - 'info': order, - 'id': id, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'lastTradeTimestamp': undefined, - 'symbol': symbol, - 'type': undefined, - 'side': side, - 'price': this.safeFloat (order, 'price'), - 'cost': undefined, - 'average': this.safeFloat (order, 'avg_price'), - 'amount': this.safeFloat (order, 'number'), - 'filled': this.safeFloat (order, 'numberdeal'), - 'remaining': this.safeFloat (order, 'numberover'), - 'status': status, - 'fee': undefined, - 'clientOrderId': undefined, - 'trades': undefined, - }; - } - - parseOrder (order, market = undefined) { - const id = this.safeString (order, 'id'); - const timestamp = this.safeTimestamp (order, 'datetime'); - let symbol = undefined; - if (market !== undefined) { - symbol = market['symbol']; - } - const type = undefined; - let side = this.safeString (order, 'type'); - if (side === 'sale') { - side = 'sell'; - } - const price = this.safeFloat (order, 'price'); - const average = this.safeFloat (order, 'avg_price'); - const amount = this.safeFloat (order, 'amount'); - const remaining = this.safeFloat (order, 'amount_outstanding'); - const filled = amount - remaining; - const status = this.parseOrderStatus (this.safeString (order, 'status')); - const cost = filled * price; - const fee = undefined; - const result = { - 'info': order, - 'id': id, - 'clientOrderId': undefined, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'lastTradeTimestamp': undefined, - 'symbol': symbol, - 'type': type, - 'timeInForce': undefined, - 'side': side, - 'price': price, - 'stopPrice': undefined, - 'cost': cost, - 'average': average, - 'amount': amount, - 'filled': filled, - 'remaining': remaining, - 'status': status, - 'fee': fee, - 'trades': undefined, - }; - return result; - } - - async fetchOrdersByType (type, symbol = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const request = { - 'type': type, - }; - let market = undefined; - if (symbol !== undefined) { - market = this.market (symbol); - request['symbol'] = market['id']; - } - const response = await this.privatePostApiOrderTradeList (this.extend (request, params)); - if ('data' in response) { - return this.parseOrders (response['data'], market, since, limit); - } - return []; - } - - async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - return this.fetchOrdersByType ('open', symbol, since, limit, params); - } - - async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - const orders = await this.fetchOrders (symbol, since, limit, params); - return this.filterBy (orders, 'status', 'closed'); - } - - async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - return this.fetchOrdersByType ('all', symbol, since, limit, params); - } - - async createOrder (symbol, type, side, amount, price = undefined, params = {}) { - await this.loadMarkets (); - const request = { - 'symbol': this.marketId (symbol), - 'type': side, - 'price': this.priceToPrecision (symbol, price), - 'number': this.amountToPrecision (symbol, amount), - }; - const response = await this.privatePostApiOrderCoinTrust (this.extend (request, params)); - const data = this.safeValue (response, 'data', {}); - const id = this.safeString (data, 'order_id'); - return { - 'info': response, - 'id': id, - }; - } - - async cancelOrder (id, symbol = undefined, params = {}) { - if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a `symbol` argument'); - } - await this.loadMarkets (); - const request = {}; - if (symbol !== undefined) { - request['symbol'] = this.marketId (symbol); - } - if (id !== undefined) { - request['order_id'] = id; - } - return await this.privatePostApiOrderCancel (this.extend (request, params)); - } - - sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { - let url = this.urls['api'] + '/' + this.implodeParams (path, params); - const query = this.omit (params, this.extractParams (path)); - if (api === 'public') { - if (Object.keys (query).length) { - url += '?' + this.urlencode (query); - } - } else { - this.checkRequiredCredentials (); - let payload = this.urlencode ({ 'api_key': this.apiKey }); - if (Object.keys (query).length) { - payload += '&' + this.urlencode (this.keysort (query)); - } - const auth = payload + '&secret_key=' + this.secret; - const signature = this.hash (this.encode (auth)); - body = payload + '&sign=' + signature; - headers = { - 'Content-Type': 'application/x-www-form-urlencoded', - }; - } - return { 'url': url, 'method': method, 'body': body, 'headers': headers }; - } - - handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { - if (response === undefined) { - return; // fallback to default error handler - } - const errorCode = this.safeValue (response, 'code'); - if (errorCode !== undefined) { - if (errorCode !== 0) { - // - // { code: 1, msg: "该币不存在,非法操作" } - returned when a required symbol parameter is missing in the request (also, maybe on other types of errors as well) - // { code: 1, msg: '公钥不合法' } - wrong public key - // { code: 1, msg: '价格输入有误,请检查你的数值精度' } - 'The price input is incorrect, please check your numerical accuracy' - // { code: 1, msg: '单笔最小交易数量不能小于0.00100000,请您重新挂单'} - - // 'The minimum number of single transactions cannot be less than 0.00100000. Please re-post the order' - // - const message = this.safeString (response, 'msg'); - const feedback = this.id + ' ' + message; - this.throwExactlyMatchedException (this.exceptions, message, feedback); - if (message.indexOf ('请您重新挂单') >= 0) { // minimum limit - throw new InvalidOrder (feedback); - } else { - throw new ExchangeError (feedback); - } - } - } - } -}; - -},{"./base/Exchange":5,"./base/errors":7}],20:[function(require,module,exports){ +},{}],20:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -5422,13 +6593,13 @@ module.exports = class bequant extends hitbtc { } }; -},{"./hitbtc":89}],21:[function(require,module,exports){ +},{"./hitbtc":93}],21:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { ExchangeError, AccountSuspended, ArgumentsRequired, AuthenticationError, DDoSProtection, ExchangeNotAvailable, InvalidOrder, OrderNotFound, PermissionDenied, InsufficientFunds, BadSymbol } = require ('./base/errors'); +const { ExchangeError, AccountSuspended, ArgumentsRequired, AuthenticationError, DDoSProtection, ExchangeNotAvailable, InvalidOrder, OrderNotFound, PermissionDenied, InsufficientFunds, BadSymbol, RateLimitExceeded, BadRequest } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -5496,6 +6667,7 @@ module.exports = class bibox extends Exchange { 'get': [ 'cquery', 'mdata', + 'cdata', ], }, 'private': { @@ -5533,9 +6705,16 @@ module.exports = class bibox extends Exchange { '2021': InsufficientFunds, // Insufficient balance available for withdrawal '2027': InsufficientFunds, // Insufficient balance available (for trade) '2033': OrderNotFound, // operation failed! Orders have been completed or revoked + '2065': InvalidOrder, // Precatory price is exorbitant, please reset + '2066': InvalidOrder, // Precatory price is low, please reset '2067': InvalidOrder, // Does not support market orders '2068': InvalidOrder, // The number of orders can not be less than + '2078': InvalidOrder, // unvalid order price '2085': InvalidOrder, // Order quantity is too small + '2091': RateLimitExceeded, // request is too frequency, please try again later + '2092': InvalidOrder, // Minimum amount not met + '3000': BadRequest, // Requested parameter incorrect + '3002': BadRequest, // Parameter cannot be null '3012': AuthenticationError, // invalid apiKey '3016': BadSymbol, // Trading pair error '3024': PermissionDenied, // wrong apikey permissions @@ -5549,6 +6728,10 @@ module.exports = class bibox extends Exchange { 'KEY': 'Bihu', 'MTC': 'MTC Mesh Network', // conflict with MTC Docademic doc.com Token https://github.com/ccxt/ccxt/issues/6081 https://github.com/ccxt/ccxt/issues/3025 'PAI': 'PCHAIN', + 'TERN': 'Ternio-ERC20', + }, + 'options': { + 'fetchCurrencies': 'fetch_currencies_public', // or 'fetch_currencies_private' with apiKey and secret }, }); } @@ -5848,6 +7031,78 @@ module.exports = class bibox extends Exchange { } async fetchCurrencies (params = {}) { + const method = this.safeString (this.options, 'fetchCurrencies', 'fetch_currencies_public'); + return await this[method] (params); + } + + async fetchCurrenciesPublic (params = {}) { + const request = { + 'cmd': 'currencies', + }; + const response = await this.publicGetCdata (this.extend (request, params)); + // + // publicGetCdata + // + // { + // "result":[ + // { + // "symbol":"BTC", + // "name":"BTC", + // "valid_decimals":8, + // "original_decimals":8, + // "is_erc20":0, + // "enable_withdraw":1, + // "enable_deposit":1, + // "withdraw_min":0.005, + // "describe_summary":"[{\"lang\":\"zh-cn\",\"text\":\"Bitcoin 比特币的概念最初由中本聪在2009年提出,是点对点的基于 SHA-256 算法的一种P2P形式的数字货币,点对点的传输意味着一个去中心化的支付系统。\"},{\"lang\":\"en-ww\",\"text\":\"Bitcoin is a digital asset and a payment system invented by Satoshi Nakamoto who published a related paper in 2008 and released it as open-source software in 2009. The system featured as peer-to-peer; users can transact directly without an intermediary.\"}]" + // } + // ], + // "cmd":"currencies" + // } + // + const currencies = this.safeValue (response, 'result'); + const result = {}; + for (let i = 0; i < currencies.length; i++) { + const currency = currencies[i]; + const id = this.safeString (currency, 'symbol'); + const name = this.safeString (currency, 'name'); // contains hieroglyphs causing python ASCII bug + const code = this.safeCurrencyCode (id); + const precision = this.safeInteger (currency, 'valid_decimals'); + const deposit = this.safeValue (currency, 'enable_deposit'); + const withdraw = this.safeValue (currency, 'enable_withdraw'); + const active = (deposit && withdraw); + result[code] = { + 'id': id, + 'code': code, + 'info': currency, + 'name': name, + 'active': active, + 'fee': undefined, + 'precision': precision, + 'limits': { + 'amount': { + 'min': Math.pow (10, -precision), + 'max': undefined, + }, + 'price': { + 'min': Math.pow (10, -precision), + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + 'withdraw': { + 'min': this.safeFloat (currency, 'withdraw_min'), + 'max': undefined, + }, + }, + }; + } + return result; + } + + async fetchCurrenciesPrivate (params = {}) { if (!this.apiKey || !this.secret) { throw new AuthenticationError (this.id + " fetchCurrencies is an authenticated endpoint, therefore it requires 'apiKey' and 'secret' credentials. If you don't need currency details, set exchange.has['fetchCurrencies'] = false before calling its methods."); } @@ -5860,46 +7115,42 @@ module.exports = class bibox extends Exchange { // { // "result":[ // { - // "result":[ - // { - // "totalBalance":"14.57582269", - // "balance":"14.57582269", - // "freeze":"0.00000000", - // "id":60, - // "symbol":"USDT", - // "icon_url":"/appimg/USDT_icon.png", - // "describe_url":"[{\"lang\":\"zh-cn\",\"link\":\"https://bibox.zendesk.com/hc/zh-cn/articles/115004798234\"},{\"lang\":\"en-ww\",\"link\":\"https://bibox.zendesk.com/hc/en-us/articles/115004798234\"}]", - // "name":"USDT", - // "enable_withdraw":1, - // "enable_deposit":1, - // "enable_transfer":1, - // "confirm_count":2, - // "is_erc20":1, - // "forbid_info":null, - // "describe_summary":"[{\"lang\":\"zh-cn\",\"text\":\"USDT 是 Tether 公司推出的基于稳定价值货币美元(USD)的代币 Tether USD(简称USDT),1USDT=1美元,用户可以随时使用 USDT 与 USD 进行1:1的兑换。\"},{\"lang\":\"en-ww\",\"text\":\"USDT is a cryptocurrency asset issued on the Bitcoin blockchain via the Omni Layer Protocol. Each USDT unit is backed by a U.S Dollar held in the reserves of the Tether Limited and can be redeemed through the Tether Platform.\"}]", - // "total_amount":4776930644, - // "supply_amount":4642367414, - // "price":"--", - // "contract_father":"OMNI", - // "supply_time":"--", - // "comment":null, - // "contract":"31", - // "original_decimals":8, - // "deposit_type":0, - // "hasCobo":0, - // "BTCValue":"0.00126358", - // "CNYValue":"100.93381445", - // "USDValue":"14.57524654", - // "children":[ - // {"type":"OMNI","symbol":"USDT","enable_deposit":1,"enable_withdraw":1,"confirm_count":2}, - // {"type":"TRC20","symbol":"tUSDT","enable_deposit":1,"enable_withdraw":1,"confirm_count":20}, - // {"type":"ERC20","symbol":"eUSDT","enable_deposit":1,"enable_withdraw":1,"confirm_count":25} - // ] - // }, - // ], - // "cmd":"transfer/coinList" - // } - // ] + // "totalBalance":"14.57582269", + // "balance":"14.57582269", + // "freeze":"0.00000000", + // "id":60, + // "symbol":"USDT", + // "icon_url":"/appimg/USDT_icon.png", + // "describe_url":"[{\"lang\":\"zh-cn\",\"link\":\"https://bibox.zendesk.com/hc/zh-cn/articles/115004798234\"},{\"lang\":\"en-ww\",\"link\":\"https://bibox.zendesk.com/hc/en-us/articles/115004798234\"}]", + // "name":"USDT", + // "enable_withdraw":1, + // "enable_deposit":1, + // "enable_transfer":1, + // "confirm_count":2, + // "is_erc20":1, + // "forbid_info":null, + // "describe_summary":"[{\"lang\":\"zh-cn\",\"text\":\"USDT 是 Tether 公司推出的基于稳定价值货币美元(USD)的代币 Tether USD(简称USDT),1USDT=1美元,用户可以随时使用 USDT 与 USD 进行1:1的兑换。\"},{\"lang\":\"en-ww\",\"text\":\"USDT is a cryptocurrency asset issued on the Bitcoin blockchain via the Omni Layer Protocol. Each USDT unit is backed by a U.S Dollar held in the reserves of the Tether Limited and can be redeemed through the Tether Platform.\"}]", + // "total_amount":4776930644, + // "supply_amount":4642367414, + // "price":"--", + // "contract_father":"OMNI", + // "supply_time":"--", + // "comment":null, + // "contract":"31", + // "original_decimals":8, + // "deposit_type":0, + // "hasCobo":0, + // "BTCValue":"0.00126358", + // "CNYValue":"100.93381445", + // "USDValue":"14.57524654", + // "children":[ + // {"type":"OMNI","symbol":"USDT","enable_deposit":1,"enable_withdraw":1,"confirm_count":2}, + // {"type":"TRC20","symbol":"tUSDT","enable_deposit":1,"enable_withdraw":1,"confirm_count":20}, + // {"type":"ERC20","symbol":"eUSDT","enable_deposit":1,"enable_withdraw":1,"confirm_count":25} + // ] + // }, + // ], + // "cmd":"transfer/coinList" // } // const currencies = this.safeValue (response, 'result'); @@ -6224,6 +7475,7 @@ module.exports = class bibox extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -6276,7 +7528,7 @@ module.exports = class bibox extends Exchange { async fetchClosedOrders (symbol = undefined, since = undefined, limit = 200, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchClosedOrders requires a `symbol` argument'); + throw new ArgumentsRequired (this.id + ' fetchClosedOrders() requires a `symbol` argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -6296,7 +7548,7 @@ module.exports = class bibox extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a `symbol` argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a `symbol` argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -6423,7 +7675,7 @@ module.exports = class bibox extends Exchange { } } else if (api === 'v2private') { this.checkRequiredCredentials (); - url = this.urls['api'] + '/v2/' + path; + url = this.implodeParams (this.urls['api'], { 'hostname': this.hostname }) + '/v2/' + path; const json_params = this.json (params); body = { 'body': json_params, @@ -6473,7 +7725,7 @@ module.exports = class bibox extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],22:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],22:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -6554,6 +7806,7 @@ module.exports = class bigone extends Exchange { 'private': { 'get': [ 'accounts', + 'fund/accounts', 'assets/{asset_symbol}/address', 'orders', 'orders/{id}', @@ -6567,6 +7820,7 @@ module.exports = class bigone extends Exchange { 'orders/{id}/cancel', 'orders/cancel', 'withdrawals', + 'transfer', ], }, }, @@ -7121,7 +8375,10 @@ module.exports = class bigone extends Exchange { async fetchBalance (params = {}) { await this.loadMarkets (); - const response = await this.privateGetAccounts (params); + const type = this.safeString (params, 'type', ''); + params = this.omit (params, 'type'); + const method = 'privateGet' + this.capitalize (type) + 'Accounts'; + const response = await this[method] (params); // // { // "code":0, @@ -7197,6 +8454,7 @@ module.exports = class bigone extends Exchange { 'symbol': symbol, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -7234,7 +8492,7 @@ module.exports = class bigone extends Exchange { if (isStopLimit || isStopMarket) { const stopPrice = this.safeFloat2 (params, 'stop_price', 'stopPrice'); if (stopPrice === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires a stop_price parameter'); + throw new ArgumentsRequired (this.id + ' createOrder() requires a stop_price parameter'); } request['stop_price'] = this.priceToPrecision (symbol, stopPrice); params = this.omit (params, [ 'stop_price', 'stopPrice' ]); @@ -7742,13 +9000,13 @@ module.exports = class bigone extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],23:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],23:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { ExchangeError, ArgumentsRequired, ExchangeNotAvailable, InsufficientFunds, OrderNotFound, InvalidOrder, DDoSProtection, InvalidNonce, AuthenticationError, InvalidAddress, RateLimitExceeded, PermissionDenied, NotSupported, BadRequest, BadSymbol, AccountSuspended, OrderImmediatelyFillable } = require ('./base/errors'); +const { ExchangeError, ArgumentsRequired, ExchangeNotAvailable, InsufficientFunds, OrderNotFound, InvalidOrder, DDoSProtection, InvalidNonce, AuthenticationError, RateLimitExceeded, PermissionDenied, NotSupported, BadRequest, BadSymbol, AccountSuspended, OrderImmediatelyFillable } = require ('./base/errors'); const { ROUND, TRUNCATE } = require ('./base/functions/number'); // --------------------------------------------------------------------------- @@ -7768,6 +9026,7 @@ module.exports = class binance extends Exchange { 'cancelOrder': true, 'CORS': false, 'createOrder': true, + 'fetchCurrencies': true, 'fetchBalance': true, 'fetchBidsAsks': true, 'fetchClosedOrders': 'emulated', @@ -7858,6 +9117,7 @@ module.exports = class binance extends Exchange { 'margin/priceIndex', // these endpoints require this.apiKey + this.secret 'asset/assetDividend', + 'asset/transfer', 'margin/loan', 'margin/repay', 'margin/account', @@ -7899,6 +9159,7 @@ module.exports = class binance extends Exchange { 'sub-account/spotSummary', 'sub-account/status', 'sub-account/transfer/subUserHistory', + 'sub-account/universalTransfer', // lending endpoints 'lending/daily/product/list', 'lending/daily/userLeftQuota', @@ -7924,9 +9185,23 @@ module.exports = class binance extends Exchange { 'bswap/liquidityOps', 'bswap/quote', 'bswap/swap', + // leveraged token endpoints + 'blvt/tokenInfo', + 'blvt/subscribe/record', + 'blvt/redeem/record', + 'blvt/userLimit', + // broker api + 'apiReferral/ifNewUser', + 'apiReferral/customization', + 'apiReferral/userCustomization', + 'apiReferral/rebate/recentRecord', + 'apiReferral/rebate/historicalRecord', + 'apiReferral/kickback/recentRecord', + 'apiReferral/kickback/historicalRecord', ], 'post': [ 'asset/dust', + 'asset/transfer', 'account/disableFastWithdrawSwitch', 'account/enableFastWithdrawSwitch', 'capital/withdraw/apply', @@ -7944,6 +9219,7 @@ module.exports = class binance extends Exchange { 'sub-account/futures/internalTransfer', 'sub-account/transfer/subToSub', 'sub-account/transfer/subToMaster', + 'sub-account/universalTransfer', 'userDataStream', 'userDataStream/isolated', 'futures/transfer', @@ -7958,12 +9234,21 @@ module.exports = class binance extends Exchange { 'bswap/liquidityAdd', 'bswap/liquidityRemove', 'bswap/swap', + // leveraged token endpoints + 'blvt/subscribe', + 'blvt/redeem', + // broker api + 'apiReferral/customization', + 'apiReferral/userCustomization', + 'apiReferral/rebate/historicalRecord', + 'apiReferral/kickback/historicalRecord', ], 'put': [ 'userDataStream', 'userDataStream/isolated', ], 'delete': [ + 'margin/openOrders', 'margin/order', 'userDataStream', 'userDataStream/isolated', @@ -8068,6 +9353,7 @@ module.exports = class binance extends Exchange { 'historicalTrades', 'aggTrades', 'klines', + 'continuousKlines', 'fundingRate', 'premiumIndex', 'ticker/24hr', @@ -8102,6 +9388,15 @@ module.exports = class binance extends Exchange { 'positionSide/dual', 'userTrades', 'income', + // broker endpoints + 'apiReferral/ifNewUser', + 'apiReferral/customization', + 'apiReferral/userCustomization', + 'apiReferral/traderNum', + 'apiReferral/overview', + 'apiReferral/tradeVol', + 'apiReferral/rebateVol', + 'apiReferral/traderSummary', ], 'post': [ 'batchOrders', @@ -8112,6 +9407,9 @@ module.exports = class binance extends Exchange { 'leverage', 'listenKey', 'countdownCancelAll', + // broker endpoints + 'apiReferral/customization', + 'apiReferral/userCustomization', ], 'put': [ 'listenKey', @@ -8191,6 +9489,7 @@ module.exports = class binance extends Exchange { }, // exchange-specific options 'options': { + 'fetchCurrencies': false, // this is a private call and it requires API keys // 'fetchTradesMethod': 'publicGetAggTrades', // publicGetTrades, publicGetHistoricalTrades 'defaultTimeInForce': 'GTC', // 'GTC' = Good To Cancel (default), 'IOC' = Immediate Or Cancel 'defaultType': 'spot', // 'spot', 'future', 'margin', 'delivery' @@ -8205,11 +9504,20 @@ module.exports = class binance extends Exchange { 'limit': 'RESULT', // we change it from 'ACK' by default to 'RESULT' }, 'quoteOrderQty': true, // whether market orders support amounts in quote currency + 'broker': { + 'spot': 'x-R4BD3S82', + 'margin': 'x-R4BD3S82', + 'future': 'x-xcKtGhcu', + 'delivery': 'x-xcKtGhcu', + }, }, // https://binance-docs.github.io/apidocs/spot/en/#error-codes-2 'exceptions': { + 'System abnormality': ExchangeError, // {"code":-1000,"msg":"System abnormality"} + 'You are not authorized to execute this request.': PermissionDenied, // {"msg":"You are not authorized to execute this request."} 'API key does not exist': AuthenticationError, 'Order would trigger immediately.': OrderImmediatelyFillable, + 'Stop price would trigger immediately.': OrderImmediatelyFillable, // {"code":-2010,"msg":"Stop price would trigger immediately."} 'Order would immediately match and take.': OrderImmediatelyFillable, // {"code":-2010,"msg":"Order would immediately match and take."} 'Account has insufficient balance for requested action.': InsufficientFunds, 'Rest API trading is not enabled.': ExchangeNotAvailable, @@ -8253,14 +9561,21 @@ module.exports = class binance extends Exchange { '-2013': OrderNotFound, // fetchOrder (1, 'BTC/USDT') -> 'Order does not exist' '-2014': AuthenticationError, // { "code":-2014, "msg": "API-key format invalid." } '-2015': AuthenticationError, // "Invalid API-key, IP, or permissions for action." + '-2019': InsufficientFunds, // {"code":-2019,"msg":"Margin is insufficient."} '-3005': InsufficientFunds, // {"code":-3005,"msg":"Transferring out not allowed. Transfer out amount exceeds max amount."} '-3008': InsufficientFunds, // {"code":-3008,"msg":"Borrow not allowed. Your borrow amount has exceed maximum borrow amount."} '-3010': ExchangeError, // {"code":-3010,"msg":"Repay not allowed. Repay amount exceeds borrow amount."} '-3022': AccountSuspended, // You account's trading is banned. + '-4028': BadRequest, // {"code":-4028,"msg":"Leverage 100 is not valid"} + '-5013': InsufficientFunds, // Asset transfer failed: insufficient balance" }, }); } + currencyToPrecision (currency, fee) { + return this.numberToString (fee); + } + nonce () { return this.milliseconds () - this.options['timeDifference']; } @@ -8284,6 +9599,145 @@ module.exports = class binance extends Exchange { return this.options['timeDifference']; } + async fetchCurrencies (params = {}) { + const fetchCurrenciesEnabled = this.safeValue (this.options, 'fetchCurrencies'); + if (!fetchCurrenciesEnabled) { + return undefined; + } + // this endpoint requires authentication + // while fetchCurrencies is a public API method by design + // therefore we check the keys here + // and fallback to generating the currencies from the markets + if (!this.checkRequiredCredentials (false)) { + return undefined; + } + // sandbox/testnet does not support sapi endpoints + const apiBackup = this.safeString (this.urls, 'apiBackup'); + if (apiBackup !== undefined) { + return undefined; + } + const response = await this.sapiGetCapitalConfigGetall (params); + const result = {}; + for (let i = 0; i < response.length; i++) { + // + // { + // coin: 'LINK', + // depositAllEnable: true, + // withdrawAllEnable: true, + // name: 'ChainLink', + // free: '0.06168', + // locked: '0', + // freeze: '0', + // withdrawing: '0', + // ipoing: '0', + // ipoable: '0', + // storage: '0', + // isLegalMoney: false, + // trading: true, + // networkList: [ + // { + // network: 'BNB', + // coin: 'LINK', + // withdrawIntegerMultiple: '0', + // isDefault: false, + // depositEnable: true, + // withdrawEnable: true, + // depositDesc: '', + // withdrawDesc: '', + // specialTips: 'Both a MEMO and an Address are required to successfully deposit your LINK BEP2 tokens to Binance.', + // name: 'BEP2', + // resetAddressStatus: false, + // addressRegex: '^(bnb1)[0-9a-z]{38}$', + // memoRegex: '^[0-9A-Za-z\\-_]{1,120}$', + // withdrawFee: '0.002', + // withdrawMin: '0.01', + // withdrawMax: '9999999', + // minConfirm: 1, + // unLockConfirm: 0 + // }, + // { + // network: 'BSC', + // coin: 'LINK', + // withdrawIntegerMultiple: '0.00000001', + // isDefault: false, + // depositEnable: true, + // withdrawEnable: true, + // depositDesc: '', + // withdrawDesc: '', + // specialTips: '', + // name: 'BEP20 (BSC)', + // resetAddressStatus: false, + // addressRegex: '^(0x)[0-9A-Fa-f]{40}$', + // memoRegex: '', + // withdrawFee: '0.005', + // withdrawMin: '0.01', + // withdrawMax: '9999999', + // minConfirm: 15, + // unLockConfirm: 0 + // }, + // { + // network: 'ETH', + // coin: 'LINK', + // withdrawIntegerMultiple: '0.00000001', + // isDefault: true, + // depositEnable: true, + // withdrawEnable: true, + // depositDesc: '', + // withdrawDesc: '', + // name: 'ERC20', + // resetAddressStatus: false, + // addressRegex: '^(0x)[0-9A-Fa-f]{40}$', + // memoRegex: '', + // withdrawFee: '0.34', + // withdrawMin: '0.68', + // withdrawMax: '0', + // minConfirm: 12, + // unLockConfirm: 0 + // } + // ] + // } + // + const entry = response[i]; + const id = this.safeString (entry, 'coin'); + const name = this.safeString (entry, 'name'); + const code = this.safeCurrencyCode (id); + const precision = undefined; + let isWithdrawEnabled = true; + let isDepositEnabled = true; + const networkList = this.safeValue (entry, 'networkList', []); + const fees = {}; + let fee = undefined; + for (let j = 0; j < networkList.length; j++) { + const networkItem = networkList[j]; + const name = this.safeString (networkItem, 'name'); + const withdrawFee = this.safeFloat (networkItem, 'withdrawFee'); + const depositEnable = this.safeValue (networkItem, 'depositEnable'); + const withdrawEnable = this.safeValue (networkItem, 'withdrawEnable'); + isDepositEnabled = isDepositEnabled || depositEnable; + isWithdrawEnabled = isWithdrawEnabled || withdrawEnable; + fees[name] = withdrawFee; + const isDefault = this.safeValue (networkItem, 'isDefault'); + if (isDefault || fee === undefined) { + fee = withdrawFee; + } + } + const trading = this.safeValue (entry, 'trading'); + const active = (isWithdrawEnabled && isDepositEnabled && trading); + result[code] = { + 'id': id, + 'name': name, + 'code': code, + 'precision': precision, + 'info': entry, + 'active': active, + 'fee': fee, + 'fees': fees, + 'limits': this.limits, + }; + } + return result; + } + async fetchMarkets (params = {}) { const defaultType = this.safeString2 (this.options, 'fetchMarkets', 'defaultType', 'spot'); const type = this.safeString (params, 'type', defaultType); @@ -8460,9 +9914,8 @@ module.exports = class binance extends Exchange { const quoteId = this.safeString (market, 'quoteAsset'); const base = this.safeCurrencyCode (baseId); const quote = this.safeCurrencyCode (quoteId); - const parts = id.split ('_'); - const lastPart = this.safeString (parts, 1); - const idSymbol = (delivery) && (lastPart !== 'PERP'); + const contractType = this.safeString (market, 'contractType'); + const idSymbol = (future || delivery) && (contractType !== 'PERPETUAL'); const symbol = idSymbol ? id : (base + '/' + quote); const filters = this.safeValue (market, 'filters', []); const filtersByType = this.indexBy (filters, 'filterType'); @@ -8540,7 +9993,7 @@ module.exports = class binance extends Exchange { } if ('MIN_NOTIONAL' in filtersByType) { const filter = this.safeValue (filtersByType, 'MIN_NOTIONAL', {}); - entry['limits']['cost']['min'] = this.safeFloat (filter, 'minNotional'); + entry['limits']['cost']['min'] = this.safeFloat2 (filter, 'minNotional', 'notional'); } result.push (entry); } @@ -8942,15 +10395,24 @@ module.exports = class binance extends Exchange { async fetchOHLCV (symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); const market = this.market (symbol); + // binance docs say that the default limit 500, max 1500 for futures, max 1000 for spot markets + // the reality is that the time range wider than 500 candles won't work right + const defaultLimit = 500; + const maxLimit = 1500; + limit = (limit === undefined) ? defaultLimit : Math.min (limit, maxLimit); const request = { 'symbol': market['id'], 'interval': this.timeframes[timeframe], + 'limit': limit, }; + const duration = this.parseTimeframe (timeframe); if (since !== undefined) { request['startTime'] = since; - } - if (limit !== undefined) { - request['limit'] = limit; // default == max == 500 + if (since > 0) { + const endTime = this.sum (since, limit * duration * 1000 - 1); + const now = this.milliseconds (); + request['endTime'] = Math.min (now, endTime); + } } let method = 'publicGetKlines'; if (market['future']) { @@ -9038,6 +10500,23 @@ module.exports = class binance extends Exchange { // "symbol": "BTCUSDT", // "time": 1569514978020 // } + // { + // "symbol": "BTCUSDT", + // "id": 477128891, + // "orderId": 13809777875, + // "side": "SELL", + // "price": "38479.55", + // "qty": "0.001", + // "realizedPnl": "-0.00009534", + // "marginAsset": "USDT", + // "quoteQty": "38.47955", + // "commission": "-0.00076959", + // "commissionAsset": "USDT", + // "time": 1612733566708, + // "positionSide": "BOTH", + // "maker": true, + // "buyer": false + // } // const timestamp = this.safeInteger2 (trade, 'T', 'time'); const price = this.safeFloat2 (trade, 'p', 'price'); @@ -9067,6 +10546,9 @@ module.exports = class binance extends Exchange { if ('isMaker' in trade) { takerOrMaker = trade['isMaker'] ? 'maker' : 'taker'; } + if ('maker' in trade) { + takerOrMaker = trade['maker'] ? 'maker' : 'taker'; + } const marketId = this.safeString (trade, 'symbol'); const symbol = this.safeSymbol (marketId, market); let cost = undefined; @@ -9184,7 +10666,7 @@ module.exports = class binance extends Exchange { 'CANCELED': 'canceled', 'PENDING_CANCEL': 'canceling', // currently unused 'REJECTED': 'rejected', - 'EXPIRED': 'canceled', + 'EXPIRED': 'expired', }; return this.safeString (statuses, status, status); } @@ -9310,6 +10792,8 @@ module.exports = class binance extends Exchange { } const clientOrderId = this.safeString (order, 'clientOrderId'); const timeInForce = this.safeString (order, 'timeInForce'); + const postOnly = (type === 'limit_maker') || (timeInForce === 'GTX'); + const stopPrice = this.safeFloat (order, 'stopPrice'); return { 'info': order, 'id': id, @@ -9320,8 +10804,10 @@ module.exports = class binance extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, + 'stopPrice': stopPrice, 'amount': amount, 'cost': cost, 'average': average, @@ -9366,7 +10852,15 @@ module.exports = class binance extends Exchange { 'type': uppercaseType, 'side': side.toUpperCase (), }; - if (clientOrderId !== undefined) { + if (clientOrderId === undefined) { + const broker = this.safeValue (this.options, 'broker'); + if (broker) { + const brokerId = this.safeString (broker, orderType); + if (brokerId !== undefined) { + request['newClientOrderId'] = brokerId + this.uuid22 (); + } + } + } else { request['newClientOrderId'] = clientOrderId; } if (market['spot']) { @@ -9445,7 +10939,7 @@ module.exports = class binance extends Exchange { quantityIsRequired = true; const callbackRate = this.safeFloat (params, 'callbackRate'); if (callbackRate === undefined) { - throw new InvalidOrder (this.id + ' createOrder method requires a callbackRate extra param for a ' + type + ' order'); + throw new InvalidOrder (this.id + ' createOrder() requires a callbackRate extra param for a ' + type + ' order'); } } if (quantityIsRequired) { @@ -9453,7 +10947,7 @@ module.exports = class binance extends Exchange { } if (priceIsRequired) { if (price === undefined) { - throw new InvalidOrder (this.id + ' createOrder method requires a price argument for a ' + type + ' order'); + throw new InvalidOrder (this.id + ' createOrder() requires a price argument for a ' + type + ' order'); } request['price'] = this.priceToPrecision (symbol, price); } @@ -9463,7 +10957,7 @@ module.exports = class binance extends Exchange { if (stopPriceIsRequired) { const stopPrice = this.safeFloat (params, 'stopPrice'); if (stopPrice === undefined) { - throw new InvalidOrder (this.id + ' createOrder method requires a stopPrice extra param for a ' + type + ' order'); + throw new InvalidOrder (this.id + ' createOrder() requires a stopPrice extra param for a ' + type + ' order'); } else { params = this.omit (params, 'stopPrice'); request['stopPrice'] = this.priceToPrecision (symbol, stopPrice); @@ -9475,7 +10969,7 @@ module.exports = class binance extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -9496,7 +10990,7 @@ module.exports = class binance extends Exchange { if (clientOrderId !== undefined) { request['origClientOrderId'] = clientOrderId; } else { - request['orderId'] = parseInt (id); + request['orderId'] = id; } const query = this.omit (params, [ 'type', 'clientOrderId', 'origClientOrderId' ]); const response = await this[method] (this.extend (request, query)); @@ -9505,7 +10999,7 @@ module.exports = class binance extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -9618,7 +11112,7 @@ module.exports = class binance extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -9628,11 +11122,11 @@ module.exports = class binance extends Exchange { const origClientOrderId = this.safeValue2 (params, 'origClientOrderId', 'clientOrderId'); const request = { 'symbol': market['id'], - // 'orderId': parseInt (id), + // 'orderId': id, // 'origClientOrderId': id, }; if (origClientOrderId === undefined) { - request['orderId'] = parseInt (id); + request['orderId'] = id; } else { request['origClientOrderId'] = origClientOrderId; } @@ -9651,7 +11145,7 @@ module.exports = class binance extends Exchange { async cancelAllOrders (symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelAllOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelAllOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -9662,7 +11156,9 @@ module.exports = class binance extends Exchange { const type = this.safeString (params, 'type', defaultType); const query = this.omit (params, 'type'); let method = 'privateDeleteOpenOrders'; - if (type === 'future') { + if (type === 'margin') { + method = 'sapiDeleteMarginOpenOrders'; + } else if (type === 'future') { method = 'fapiPrivateDeleteAllOpenOrders'; } else if (type === 'delivery') { method = 'dapiPrivateDeleteAllOpenOrders'; @@ -9728,20 +11224,23 @@ module.exports = class binance extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); - const type = this.safeValue (params, 'type', market['type']); + const defaultType = this.safeString2 (this.options, 'fetchMyTrades', 'defaultType', market['type']); + const type = this.safeString (params, 'type', defaultType); + params = this.omit (params, 'type'); let method = undefined; if (type === 'spot') { method = 'privateGetMyTrades'; + } else if (type === 'margin') { + method = 'sapiGetMarginMyTrades'; } else if (type === 'future') { method = 'fapiPrivateGetUserTrades'; } else if (type === 'delivery') { method = 'dapiPrivateGetUserTrades'; } - params = this.omit (params, 'type'); const request = { 'symbol': market['id'], }; @@ -10025,7 +11524,10 @@ module.exports = class binance extends Exchange { tag = undefined; } } - const txid = this.safeString (transaction, 'txId'); + let txid = this.safeString (transaction, 'txId'); + if ((txid !== undefined) && (txid.indexOf ('Internal transfer ') >= 0)) { + txid = txid.slice (18); + } const currencyId = this.safeString (transaction, 'asset'); const code = this.safeCurrencyCode (currencyId, currency); let timestamp = undefined; @@ -10074,15 +11576,27 @@ module.exports = class binance extends Exchange { await this.loadMarkets (); const currency = this.currency (code); const request = { - 'asset': currency['id'], + 'coin': currency['id'], + // 'network': 'ETH', // 'BSC', 'XMR', you can get network and isDefault in networkList in the response of sapiGetCapitalConfigDetail }; - const response = await this.wapiGetDepositAddress (this.extend (request, params)); - const success = this.safeValue (response, 'success'); - if ((success === undefined) || !success) { - throw new InvalidAddress (this.id + ' fetchDepositAddress returned an empty response – create the deposit address in the user settings first.'); - } + // has support for the 'network' parameter + // https://binance-docs.github.io/apidocs/spot/en/#deposit-address-supporting-network-user_data + const response = await this.sapiGetCapitalDepositAddress (this.extend (request, params)); + // + // { + // currency: 'XRP', + // address: 'rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh', + // tag: '108618262', + // info: { + // coin: 'XRP', + // address: 'rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh', + // tag: '108618262', + // url: 'https://bithomp.com/explorer/rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh' + // } + // } + // const address = this.safeString (response, 'address'); - const tag = this.safeString (response, 'addressTag'); + const tag = this.safeString (response, 'tag'); this.checkAddress (address); return { 'currency': code, @@ -10260,7 +11774,7 @@ module.exports = class binance extends Exchange { 'timestamp': this.nonce (), 'recvWindow': recvWindow, }, params)); - } else if (path === 'batchOrders') { + } else if ((path === 'batchOrders') || (path.indexOf ('sub-account') >= 0)) { query = this.rawencode (this.extend ({ 'timestamp': this.nonce (), 'recvWindow': recvWindow, @@ -10371,7 +11885,7 @@ module.exports = class binance extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],24:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],24:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -10416,6 +11930,10 @@ module.exports = class binanceus extends binance { }, }); } + + async fetchCurrencies (params = {}) { + return undefined; + } }; @@ -10728,6 +12246,7 @@ module.exports = class bit2c extends Exchange { 'symbol': symbol, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -10879,7 +12398,7 @@ module.exports = class bit2c extends Exchange { }; -},{"./base/Exchange":5,"./base/errors":7}],26:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],26:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -10964,6 +12483,8 @@ module.exports = class bitbank extends Exchange { 'BCH/JPY': { 'id': 'bcc_jpy', 'symbol': 'BCH/JPY', 'base': 'BCH', 'quote': 'JPY', 'baseId': 'bcc', 'quoteId': 'jpy' }, 'MONA/BTC': { 'id': 'mona_btc', 'symbol': 'MONA/BTC', 'base': 'MONA', 'quote': 'BTC', 'baseId': 'mona', 'quoteId': 'btc' }, 'MONA/JPY': { 'id': 'mona_jpy', 'symbol': 'MONA/JPY', 'base': 'MONA', 'quote': 'JPY', 'baseId': 'mona', 'quoteId': 'jpy' }, + 'QTUM/BTC': { 'id': 'qtum_btc', 'symbol': 'QTUM/BTC', 'base': 'QTUM', 'quote': 'BTC', 'baseId': 'qtum', 'quoteId': 'btc' }, + 'QTUM/JPY': { 'id': 'qtum_jpy', 'symbol': 'QTUM/JPY', 'base': 'QTUM', 'quote': 'JPY', 'baseId': 'qtum', 'quoteId': 'jpy' }, 'ETH/BTC': { 'id': 'eth_btc', 'symbol': 'ETH/BTC', 'base': 'ETH', 'quote': 'BTC', 'baseId': 'eth', 'quoteId': 'btc' }, 'LTC/BTC': { 'id': 'ltc_btc', 'symbol': 'LTC/BTC', 'base': 'LTC', 'quote': 'BTC', 'baseId': 'ltc', 'quoteId': 'btc' }, 'XRP/JPY': { 'id': 'xrp_jpy', 'symbol': 'XRP/JPY', 'base': 'XRP', 'quote': 'JPY', 'baseId': 'xrp', 'quoteId': 'jpy' }, @@ -10972,6 +12493,7 @@ module.exports = class bitbank extends Exchange { 'ETH/JPY': { 'id': 'eth_jpy', 'symbol': 'ETH/JPY', 'base': 'ETH', 'quote': 'JPY', 'baseId': 'eth', 'quoteId': 'jpy' }, 'LTC/JPY': { 'id': 'ltc_jpy', 'symbol': 'LTC/JPY', 'base': 'LTC', 'quote': 'JPY', 'baseId': 'ltc', 'quoteId': 'jpy' }, 'XRP/BTC': { 'id': 'xrp_btc', 'symbol': 'XRP/BTC', 'base': 'XRP', 'quote': 'BTC', 'baseId': 'xrp', 'quoteId': 'btc' }, + 'XLM/BTC': { 'id': 'xlm_btc', 'symbol': 'XLM/BTC', 'base': 'XLM', 'quote': 'BTC', 'baseId': 'xlm', 'quoteId': 'btc' }, }, 'fees': { 'trading': { @@ -11089,8 +12611,8 @@ module.exports = class bitbank extends Exchange { const feeCost = this.safeFloat (trade, 'fee_amount_quote'); if (feeCost !== undefined) { fee = { - 'currency': market['quote'], - 'cost': feeCurrency, + 'currency': feeCurrency, + 'cost': feeCost, }; } const orderId = this.safeString (trade, 'order_id'); @@ -11249,6 +12771,7 @@ module.exports = class bitbank extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -11267,7 +12790,7 @@ module.exports = class bitbank extends Exchange { await this.loadMarkets (); const market = this.market (symbol); if (price === undefined) { - throw new InvalidOrder (this.id + ' createOrder requires a price argument for both market and limit orders'); + throw new InvalidOrder (this.id + ' createOrder() requires a price argument for both market and limit orders'); } const request = { 'pair': market['id'], @@ -11503,7 +13026,7 @@ module.exports = class bitbank extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],27:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],27:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -11857,6 +13380,7 @@ module.exports = class bitbay extends Exchange { filled = Math.max (0, amount - remaining); } } + const postOnly = this.safeValue (order, 'postOnly'); return { 'id': this.safeString (order, 'id'), 'clientOrderId': undefined, @@ -11868,6 +13392,7 @@ module.exports = class bitbay extends Exchange { 'symbol': symbol, 'type': this.safeString (order, 'mode'), 'timeInForce': undefined, + 'postOnly': postOnly, 'side': this.safeStringLower (order, 'offerType'), 'price': this.safeFloat (order, 'rate'), 'stopPrice': undefined, @@ -12777,7 +14302,7 @@ module.exports = class bitbay extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],28:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],28:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -12813,7 +14338,7 @@ module.exports = class bitcoincom extends hitbtc { } }; -},{"./hitbtc.js":89}],29:[function(require,module,exports){ +},{"./hitbtc.js":93}],29:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -12832,7 +14357,6 @@ module.exports = class bitfinex extends Exchange { 'countries': [ 'VG' ], 'version': 'v1', 'rateLimit': 1500, - 'certified': true, 'pro': true, // new metainfo interface 'has': { @@ -12870,6 +14394,7 @@ module.exports = class bitfinex extends Exchange { '30m': '30m', '1h': '1h', '3h': '3h', + '4h': '4h', '6h': '6h', '12h': '12h', '1d': '1D', @@ -13416,13 +14941,32 @@ module.exports = class bitfinex extends Exchange { async fetchBalance (params = {}) { await this.loadMarkets (); + const types = { + 'exchange': 'exchange', + 'deposit': 'funding', + 'trading': 'margin', + }; const balanceType = this.safeString (params, 'type', 'exchange'); const query = this.omit (params, 'type'); const response = await this.privatePostBalances (query); + // [ { type: 'deposit', + // currency: 'btc', + // amount: '0.00116721', + // available: '0.00116721' }, + // { type: 'exchange', + // currency: 'ust', + // amount: '0.0000002', + // available: '0.0000002' }, + // { type: 'trading', + // currency: 'btc', + // amount: '0.0005', + // available: '0.0005' } ], const result = { 'info': response }; for (let i = 0; i < response.length; i++) { const balance = response[i]; - if (balance['type'] === balanceType) { + const type = this.safeString (balance, 'type'); + const parsedType = this.safeString (types, type); + if ((parsedType === balanceType) || (type === balanceType)) { const currencyId = this.safeString (balance, 'currency'); const code = this.safeCurrencyCode (currencyId); // bitfinex had BCH previously, now it's BAB, but the old @@ -13585,7 +15129,7 @@ module.exports = class bitfinex extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a `symbol` argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a `symbol` argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -13703,6 +15247,7 @@ module.exports = class bitfinex extends Exchange { 'symbol': symbol, 'type': orderType, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': this.safeFloat (order, 'price'), 'stopPrice': undefined, @@ -14078,13 +15623,13 @@ module.exports = class bitfinex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],30:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],30:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const bitfinex = require ('./bitfinex.js'); -const { ExchangeError, InvalidAddress, ArgumentsRequired, InsufficientFunds, AuthenticationError, OrderNotFound, InvalidOrder, BadRequest, InvalidNonce, BadSymbol, OnMaintenance } = require ('./base/errors'); +const { ExchangeError, InvalidAddress, ArgumentsRequired, InsufficientFunds, AuthenticationError, OrderNotFound, InvalidOrder, BadRequest, InvalidNonce, BadSymbol, OnMaintenance, NotSupported } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -14134,6 +15679,7 @@ module.exports = class bitfinex2 extends bitfinex { '30m': '30m', '1h': '1h', '3h': '3h', + '4h': '4h', '6h': '6h', '12h': '12h', '1d': '1D', @@ -14252,7 +15798,9 @@ module.exports = class bitfinex2 extends bitfinex { 'auth/w/position/claim', 'auth/r/positions/hist', 'auth/r/positions/audit', + 'auth/r/positions/snap', 'auth/w/deriv/collateral/set', + 'auth/w/deriv/collateral/limits', 'auth/r/funding/offers', 'auth/r/funding/offers/{symbol}', 'auth/w/funding/offer/submit', @@ -14664,6 +16212,10 @@ module.exports = class bitfinex2 extends bitfinex { return this.parseBalance (result); } + async fetchOrder (id, symbol = undefined, params = {}) { + throw new NotSupported (this.id + ' fetchOrder is not implemented yet'); + } + async fetchOrderBook (symbol, limit = undefined, params = {}) { await this.loadMarkets (); const precision = this.safeValue (this.options, 'precision', 'R0'); @@ -15004,6 +16556,7 @@ module.exports = class bitfinex2 extends bitfinex { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -15022,16 +16575,43 @@ module.exports = class bitfinex2 extends bitfinex { await this.loadMarkets (); const market = this.market (symbol); const orderTypes = this.safeValue (this.options, 'orderTypes', {}); - const orderType = this.safeString (orderTypes, type, type); + const orderType = this.safeStringUpper (orderTypes, type, type); amount = (side === 'sell') ? -amount : amount; const request = { 'symbol': market['id'], 'type': orderType, 'amount': this.numberToString (amount), }; - if (type !== 'market') { + if ((orderType === 'LIMIT') || (orderType === 'EXCHANGE LIMIT')) { + request['price'] = this.numberToString (price); + } else if ((orderType === 'STOP') || (orderType === 'EXCHANGE STOP')) { + const stopPrice = this.safeFloat (params, 'stopPrice', price); + request['price'] = this.numberToString (stopPrice); + } else if ((orderType === 'STOP LIMIT') || (orderType === 'EXCHANGE STOP LIMIT')) { + const priceAuxLimit = this.safeFloat (params, 'price_aux_limit'); + let stopPrice = this.safeFloat (params, 'stopPrice'); + if (priceAuxLimit === undefined) { + if (stopPrice === undefined) { + throw new ArgumentsRequired (this.id + ' createOrder() requires a stopPrice parameter or a price_aux_limit parameter for a ' + orderType + ' order'); + } else { + request['price_aux_limit'] = this.numberToString (price); + } + } else { + request['price_aux_limit'] = this.numberToString (priceAuxLimit); + if (stopPrice === undefined) { + stopPrice = price; + } + } + request['price'] = this.numberToString (stopPrice); + } else if ((orderType === 'TRAILING STOP') || (orderType === 'EXCHANGE TRAILING STOP')) { + const priceTrailing = this.safeFloat (params, 'price_trailing'); + request['price_trailing'] = this.numberToString (priceTrailing); + const stopPrice = this.safeFloat (params, 'stopPrice', price); + request['price'] = this.numberToString (stopPrice); + } else if ((orderType === 'FOK') || (orderType === 'EXCHANGE FOK') || (orderType === 'IOC') || (orderType === 'EXCHANGE IOC')) { request['price'] = this.numberToString (price); } + params = this.omit (params, [ 'stopPrice', 'price_aux_limit', 'price_trailing' ]); const clientOrderId = this.safeValue2 (params, 'cid', 'clientOrderId'); if (clientOrderId !== undefined) { request['cid'] = clientOrderId; @@ -15617,7 +17197,7 @@ module.exports = class bitfinex2 extends bitfinex { } }; -},{"./base/errors":7,"./bitfinex.js":29}],31:[function(require,module,exports){ +},{"./base/errors":8,"./bitfinex.js":29}],31:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -15985,6 +17565,7 @@ module.exports = class bitflyer extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -16044,7 +17625,7 @@ module.exports = class bitflyer extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a `symbol` argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a `symbol` argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -16060,7 +17641,7 @@ module.exports = class bitflyer extends Exchange { async fetchPositions (symbols = undefined, since = undefined, limit = undefined, params = {}) { if (symbols === undefined) { - throw new ArgumentsRequired (this.id + ' fetchPositions requires a `symbols` argument, exactly one symbol in an array'); + throw new ArgumentsRequired (this.id + ' fetchPositions() requires a `symbols` argument, exactly one symbol in an array'); } await this.loadMarkets (); const request = { @@ -16142,13 +17723,13 @@ module.exports = class bitflyer extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],32:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],32:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { ExchangeError, AuthenticationError, OrderNotFound, InsufficientFunds, DDoSProtection, PermissionDenied } = require ('./base/errors'); +const { ExchangeError, AuthenticationError, OrderNotFound, InsufficientFunds, DDoSProtection, PermissionDenied, BadSymbol } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -16368,6 +17949,7 @@ module.exports = class bitforex extends Exchange { }, 'commonCurrencies': { 'CREDIT': 'TerraCredit', + 'HBC': 'Hybrid Bank Cash', 'IQ': 'IQ.Cash', 'UOS': 'UOS Network', }, @@ -16376,6 +17958,7 @@ module.exports = class bitforex extends Exchange { '1013': AuthenticationError, '1016': AuthenticationError, '1017': PermissionDenied, // {"code":"1017","success":false,"time":1602670594367,"message":"IP not allow"} + '1019': BadSymbol, // {"code":"1019","success":false,"time":1607087743778,"message":"Symbol Invalid"} '3002': InsufficientFunds, '10204': DDoSProtection, }, @@ -16644,6 +18227,7 @@ module.exports = class bitforex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -16772,7 +18356,7 @@ module.exports = class bitforex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],33:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],33:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -18479,7 +20063,7 @@ module.exports = class bitget extends Exchange { const type = this.safeString (params, 'type', defaultType); params = this.omit (params, 'type'); if (type === undefined) { - throw new ArgumentsRequired (this.id + " requires an 'accountId' parameter"); + throw new ArgumentsRequired (this.id + " getAccountId() requires an 'accountId' parameter"); } const account = await this.findAccountByType (type); return account['id']; @@ -18491,7 +20075,7 @@ module.exports = class bitget extends Exchange { const defaultType = this.safeString2 (this.options, 'fetchBalance', 'defaultType'); const type = this.safeString (params, 'type', defaultType); if (type === undefined) { - throw new ArgumentsRequired (this.id + " fetchBalance requires a 'type' parameter, one of 'spot', 'swap'"); + throw new ArgumentsRequired (this.id + " fetchBalance() requires a 'type' parameter, one of 'spot', 'swap'"); } let method = undefined; const query = this.omit (params, 'type'); @@ -18735,6 +20319,7 @@ module.exports = class bitget extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -18817,7 +20402,7 @@ module.exports = class bitget extends Exchange { request['client_oid'] = clientOrderId; const orderType = this.safeString (params, 'type'); if (orderType === undefined) { - throw new ArgumentsRequired (this.id + " createOrder requires a type parameter, '1' = open long, '2' = open short, '3' = close long, '4' = close short for " + market['type'] + ' orders'); + throw new ArgumentsRequired (this.id + " createOrder() requires a type parameter, '1' = open long, '2' = open short, '3' = close long, '4' = close short for " + market['type'] + ' orders'); } request['size'] = this.amountToPrecision (symbol, amount); request['type'] = orderType; @@ -18859,7 +20444,7 @@ module.exports = class bitget extends Exchange { const type = this.safeString (params, 'type', defaultType); if (type === 'spot') { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument for spot orders'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument for spot orders'); } } } else { @@ -18900,14 +20485,15 @@ module.exports = class bitget extends Exchange { async cancelOrders (ids, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); const type = this.safeString (params, 'type', market['type']); if (type === undefined) { - throw new ArgumentsRequired (this.id + " cancelOrders requires a type parameter (one of 'spot', 'swap')."); + throw new ArgumentsRequired (this.id + " cancelOrders() requires a type parameter (one of 'spot', 'swap')."); } + params = this.omit (params, 'type'); const request = {}; let method = undefined; if (type === 'spot') { @@ -18964,13 +20550,13 @@ module.exports = class bitget extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); const type = this.safeString (params, 'type', market['type']); if (type === undefined) { - throw new ArgumentsRequired (this.id + " fetchOrder requires a type parameter (one of 'spot', 'swap')."); + throw new ArgumentsRequired (this.id + " fetchOrder() requires a type parameter (one of 'spot', 'swap')."); } let method = undefined; const request = {}; @@ -19041,7 +20627,7 @@ module.exports = class bitget extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -19126,7 +20712,7 @@ module.exports = class bitget extends Exchange { async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchClosedOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchClosedOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -19218,7 +20804,7 @@ module.exports = class bitget extends Exchange { async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchDeposits requires a currency code argument'); + throw new ArgumentsRequired (this.id + ' fetchDeposits() requires a currency code argument'); } await this.loadMarkets (); const currency = this.currency (code); @@ -19255,7 +20841,7 @@ module.exports = class bitget extends Exchange { async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchWithdrawals requires a currency code argument'); + throw new ArgumentsRequired (this.id + ' fetchWithdrawals() requires a currency code argument'); } await this.loadMarkets (); const currency = this.currency (code); @@ -19378,14 +20964,14 @@ module.exports = class bitget extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); const type = this.safeString (params, 'type', market['type']); const query = this.omit (params, 'type'); if (type === 'swap') { - throw new ArgumentsRequired (this.id + ' fetchMyTrades is not supported for ' + type + ' type'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() is not supported for ' + type + ' type'); } // // spot @@ -19442,12 +21028,12 @@ module.exports = class bitget extends Exchange { async fetchOrderTrades (id, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrderTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrderTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); const type = this.safeString (params, 'type', market['type']); - const query = this.omit (params, 'type'); + params = this.omit (params, 'type'); let method = undefined; const request = {}; if (type === 'spot') { @@ -19459,7 +21045,7 @@ module.exports = class bitget extends Exchange { request['symbol'] = market['id']; method = 'swapGetOrderFills'; } - const response = await this[method] (this.extend (request, query)); + const response = await this[method] (this.extend (request, params)); // // spot // @@ -19678,7 +21264,7 @@ module.exports = class bitget extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],34:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],34:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -19703,6 +21289,7 @@ module.exports = class bithumb extends Exchange { 'createOrder': true, 'fetchBalance': true, 'fetchMarkets': true, + 'fetchOHLCV': true, 'fetchOpenOrders': true, 'fetchOrder': true, 'fetchOrderBook': true, @@ -19726,10 +21313,13 @@ module.exports = class bithumb extends Exchange { 'get': [ 'ticker/{currency}', 'ticker/all', + 'ticker/ALL_BTC', + 'ticker/ALL_KRW', 'orderbook/{currency}', 'orderbook/all', 'transaction_history/{currency}', 'transaction_history/all', + 'candlestick/{currency}/{interval}', ], }, 'private': { @@ -19773,6 +21363,27 @@ module.exports = class bithumb extends Exchange { 'Unknown Error': ExchangeError, 'After May 23th, recent_transactions is no longer, hence users will not be able to connect to recent_transactions': ExchangeError, // {"status":"5100","message":"After May 23th, recent_transactions is no longer, hence users will not be able to connect to recent_transactions"} }, + 'timeframes': { + '1m': '1m', + '3m': '3m', + '5m': '5m', + '10m': '10m', + '30m': '30m', + '1h': '1h', + '6h': '6h', + '12h': '12h', + '1d': '24h', + }, + 'options': { + 'quoteCurrencies': { + 'BTC': { + 'precision': { + 'price': 8, + }, + }, + 'KRW': {}, + }, + }, }); } @@ -19781,54 +21392,61 @@ module.exports = class bithumb extends Exchange { } async fetchMarkets (params = {}) { - const response = await this.publicGetTickerAll (params); - const data = this.safeValue (response, 'data'); - const currencyIds = Object.keys (data); const result = []; - const quote = this.safeCurrencyCode ('KRW'); - for (let i = 0; i < currencyIds.length; i++) { - const currencyId = currencyIds[i]; - if (currencyId === 'date') { - continue; - } - const market = data[currencyId]; - const base = this.safeCurrencyCode (currencyId); - const symbol = currencyId + '/' + quote; - let active = true; - if (Array.isArray (market)) { - const numElements = market.length; - if (numElements === 0) { - active = false; + const quoteCurrencies = this.safeValue (this.options, 'quoteCurrencies', {}); + const quotes = Object.keys (quoteCurrencies); + for (let i = 0; i < quotes.length; i++) { + const quote = quotes[i]; + const extension = this.safeValue (quoteCurrencies, quote, {}); + const method = 'publicGetTickerALL' + quote; + const response = await this[method] (params); + const data = this.safeValue (response, 'data'); + const currencyIds = Object.keys (data); + for (let j = 0; j < currencyIds.length; j++) { + const currencyId = currencyIds[j]; + if (currencyId === 'date') { + continue; } + const market = data[currencyId]; + const base = this.safeCurrencyCode (currencyId); + const symbol = currencyId + '/' + quote; + let active = true; + if (Array.isArray (market)) { + const numElements = market.length; + if (numElements === 0) { + active = false; + } + } + const entry = this.deepExtend ({ + 'id': currencyId, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'info': market, + 'active': active, + 'precision': { + 'amount': 4, + 'price': 4, + }, + 'limits': { + 'amount': { + 'min': undefined, + 'max': undefined, + }, + 'price': { + 'min': undefined, + 'max': undefined, + }, + 'cost': { + 'min': 500, + 'max': 5000000000, + }, + }, + 'baseId': undefined, + 'quoteId': undefined, + }, extension); + result.push (entry); } - result.push ({ - 'id': currencyId, - 'symbol': symbol, - 'base': base, - 'quote': quote, - 'info': market, - 'active': active, - 'precision': { - 'amount': 4, - 'price': 4, - }, - 'limits': { - 'amount': { - 'min': undefined, - 'max': undefined, - }, - 'price': { - 'min': undefined, - 'max': undefined, - }, - 'cost': { - 'min': 500, - 'max': 5000000000, - }, - }, - 'baseId': undefined, - 'quoteId': undefined, - }); } return result; } @@ -20030,6 +21648,62 @@ module.exports = class bithumb extends Exchange { return this.parseTicker (data, market); } + parseOHLCV (ohlcv, market = undefined) { + // + // [ + // 1576823400000, // 기준 시간 + // '8284000', // 시가 + // '8286000', // 종가 + // '8289000', // 고가 + // '8276000', // 저가 + // '15.41503692' // 거래량 + // ] + // + return [ + this.safeInteger (ohlcv, 0), + this.safeFloat (ohlcv, 1), + this.safeFloat (ohlcv, 3), + this.safeFloat (ohlcv, 4), + this.safeFloat (ohlcv, 2), + this.safeFloat (ohlcv, 5), + ]; + } + + async fetchOHLCV (symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'currency': market['base'], + 'interval': this.timeframes[timeframe], + }; + const response = await this.publicGetCandlestickCurrencyInterval (this.extend (request, params)); + // + // { + // 'status': '0000', + // 'data': { + // [ + // 1576823400000, // 기준 시간 + // '8284000', // 시가 + // '8286000', // 종가 + // '8289000', // 고가 + // '8276000', // 저가 + // '15.41503692' // 거래량 + // ], + // [ + // 1576824000000, // 기준 시간 + // '8284000', // 시가 + // '8281000', // 종가 + // '8289000', // 고가 + // '8275000', // 저가 + // '6.19584467' // 거래량 + // ], + // } + // } + // + const data = this.safeValue (response, 'data', []); + return this.parseOHLCVs (data, market, timeframe, since, limit); + } + parseTrade (trade, market = undefined) { // // fetchTrades (public) @@ -20151,7 +21825,7 @@ module.exports = class bithumb extends Exchange { const market = this.market (symbol); const request = { 'order_currency': market['id'], - 'Payment_currency': market['quote'], + 'payment_currency': market['quote'], 'units': amount, }; let method = 'privatePostTradePlace'; @@ -20164,7 +21838,7 @@ module.exports = class bithumb extends Exchange { const response = await this[method] (this.extend (request, params)); const id = this.safeString (response, 'order_id'); if (id === undefined) { - throw new InvalidOrder (this.id + ' createOrder did not return an order id'); + throw new InvalidOrder (this.id + ' createOrder() did not return an order id'); } return { 'info': response, @@ -20177,7 +21851,7 @@ module.exports = class bithumb extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -20389,6 +22063,7 @@ module.exports = class bithumb extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -20411,7 +22086,7 @@ module.exports = class bithumb extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -20451,10 +22126,10 @@ module.exports = class bithumb extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { const side_in_params = ('side' in params); if (!side_in_params) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a `symbol` argument and a `side` parameter (sell or buy)'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a `symbol` argument and a `side` parameter (sell or buy)'); } if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a `symbol` argument and a `side` parameter (sell or buy)'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a `symbol` argument and a `side` parameter (sell or buy)'); } const market = this.market (symbol); const side = (params['side'] === 'buy') ? 'bid' : 'ask'; @@ -20485,7 +22160,7 @@ module.exports = class bithumb extends Exchange { 'address': address, 'currency': currency['id'], }; - if (currency === 'XRP' || currency === 'XMR') { + if (currency === 'XRP' || currency === 'XMR' || currency === 'EOS' || currency === 'STEEM') { const destination = this.safeString (params, 'destination'); if ((tag === undefined) && (destination === undefined)) { throw new ArgumentsRequired (this.id + ' ' + code + ' withdraw() requires a tag argument or an extra destination param'); @@ -20566,7 +22241,7 @@ module.exports = class bithumb extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],35:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],35:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -20590,11 +22265,14 @@ module.exports = class bitkk extends zb { 'doc': 'https://www.bitkk.com/i/developer', 'fees': 'https://www.bitkk.com/i/rate', }, + 'commonCurrencies': { + 'BCH': 'BCHOLD', + }, }); } }; -},{"./zb.js":179}],36:[function(require,module,exports){ +},{"./zb.js":182}],36:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -20645,7 +22323,7 @@ module.exports = class bitmart extends Exchange { 'logo': 'https://user-images.githubusercontent.com/1294454/61835713-a2662f80-ae85-11e9-9d00-6442919701fd.jpg', 'api': 'https://api-cloud.{hostname}', // bitmart.info for Hong Kong users 'www': 'https://www.bitmart.com/', - 'doc': 'https://github.com/bitmartexchange/bitmart-official-api-docs', + 'doc': 'https://developer-pro.bitmart.com/', 'referral': 'http://www.bitmart.com/?r=rQCFLh', 'fees': 'https://www.bitmart.com/fee/en', }, @@ -20758,8 +22436,8 @@ module.exports = class bitmart extends Exchange { 'trading': { 'tierBased': true, 'percentage': true, - 'taker': 0.002, - 'maker': 0.001, + 'taker': 0.0025, + 'maker': 0.0025, 'tiers': { 'taker': [ [0, 0.20 / 100], @@ -20893,6 +22571,8 @@ module.exports = class bitmart extends Exchange { 'broad': {}, }, 'commonCurrencies': { + 'COT': 'Community Coin', + 'CPC': 'CPCoin', 'ONE': 'Menlo One', 'PLA': 'Plair', }, @@ -21838,7 +23518,7 @@ module.exports = class bitmart extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -21846,7 +23526,7 @@ module.exports = class bitmart extends Exchange { const request = {}; if (market['spot']) { request['symbol'] = market['id']; - request['offset'] = 1; + request['offset'] = 1; // max offset * limit < 500 if (limit === undefined) { limit = 100; // max 100 } @@ -21919,7 +23599,7 @@ module.exports = class bitmart extends Exchange { async fetchOrderTrades (id, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrderTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrderTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -22197,6 +23877,7 @@ module.exports = class bitmart extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -22302,7 +23983,7 @@ module.exports = class bitmart extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -22330,6 +24011,15 @@ module.exports = class bitmart extends Exchange { // } // } // + // spot alternative + // + // { + // "code": 1000, + // "trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1", + // "message": "OK", + // "data": true + // } + // // contract // // { @@ -22345,16 +24035,19 @@ module.exports = class bitmart extends Exchange { // } // const data = this.safeValue (response, 'data'); + if (data === true) { + return this.parseOrder (id, market); + } const succeeded = this.safeValue (data, 'succeed'); if (succeeded !== undefined) { id = this.safeString (succeeded, 0); if (id === undefined) { - throw new InvalidOrder (this.id + ' cancelOrder failed to cancel ' + symbol + ' order id ' + id); + throw new InvalidOrder (this.id + ' cancelOrder() failed to cancel ' + symbol + ' order id ' + id); } } else { const result = this.safeValue (data, 'result'); if (!result) { - throw new InvalidOrder (this.id + ' cancelOrder ' + symbol + ' order id ' + id + ' is filled or canceled'); + throw new InvalidOrder (this.id + ' cancelOrder() ' + symbol + ' order id ' + id + ' is filled or canceled'); } } const order = this.parseOrder (id, market); @@ -22363,16 +24056,16 @@ module.exports = class bitmart extends Exchange { async cancelAllOrders (symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelAllOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelAllOrders() requires a symbol argument'); } const side = this.safeString (params, 'side'); if (side === undefined) { - throw new ArgumentsRequired (this.id + " cancelAllOrders requires a `side` parameter ('buy' or 'sell')"); + throw new ArgumentsRequired (this.id + " cancelAllOrders() requires a `side` parameter ('buy' or 'sell')"); } await this.loadMarkets (); const market = this.market (symbol); if (!market['spot']) { - throw new NotSupported (this.id + ' cancelAllOrders does not support ' + market['type'] + ' orders, only spot orders are accepted'); + throw new NotSupported (this.id + ' cancelAllOrders() does not support ' + market['type'] + ' orders, only spot orders are accepted'); } const request = { 'symbol': market['id'], @@ -22392,12 +24085,12 @@ module.exports = class bitmart extends Exchange { async cancelOrders (ids, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' canelOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' canelOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); if (!market['spot']) { - throw new NotSupported (this.id + ' cancelOrders does not support ' + market['type'] + ' orders, only contract orders are accepted'); + throw new NotSupported (this.id + ' cancelOrders() does not support ' + market['type'] + ' orders, only contract orders are accepted'); } const orders = []; for (let i = 0; i < ids.length; i++) { @@ -22438,7 +24131,7 @@ module.exports = class bitmart extends Exchange { async fetchOrdersByStatus (status, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrdersByStatus requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrdersByStatus() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -22560,7 +24253,7 @@ module.exports = class bitmart extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -22572,7 +24265,7 @@ module.exports = class bitmart extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const request = {}; @@ -22650,7 +24343,7 @@ module.exports = class bitmart extends Exchange { const orders = this.safeValue (data, 'orders', []); const firstOrder = this.safeValue (orders, 0); if (firstOrder === undefined) { - throw new OrderNotFound (this.id + ' fetchOrder could not find ' + symbol + ' order id ' + id); + throw new OrderNotFound (this.id + ' fetchOrder() could not find ' + symbol + ' order id ' + id); } return this.parseOrder (firstOrder, market); } else { @@ -22944,7 +24637,7 @@ module.exports = class bitmart extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],37:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],37:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -23080,8 +24773,8 @@ module.exports = class bitmax extends Exchange { 'trading': { 'tierBased': true, 'percentage': true, - 'taker': 0.001, - 'maker': 0.001, + 'taker': 0.002, + 'maker': 0.002, }, }, 'precisionMode': TICK_SIZE, @@ -23986,6 +25679,7 @@ module.exports = class bitmax extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -24036,7 +25730,7 @@ module.exports = class bitmax extends Exchange { if ((type === 'stop_limit') || (type === 'stop_market')) { const stopPrice = this.safeFloat (params, 'stopPrice'); if (stopPrice === undefined) { - throw new InvalidOrder (this.id + ' createOrder requires a stopPrice parameter for ' + type + ' orders'); + throw new InvalidOrder (this.id + ' createOrder() requires a stopPrice parameter for ' + type + ' orders'); } else { request['stopPrice'] = this.priceToPrecision (symbol, stopPrice); params = this.omit (params, 'stopPrice'); @@ -24291,7 +25985,7 @@ module.exports = class bitmax extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); await this.loadAccounts (); @@ -24671,14 +26365,14 @@ module.exports = class bitmax extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],38:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],38:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); const { TICK_SIZE } = require ('./base/functions/number'); -const { AuthenticationError, BadRequest, DDoSProtection, ExchangeError, ExchangeNotAvailable, InsufficientFunds, InvalidOrder, OrderNotFound, PermissionDenied } = require ('./base/errors'); +const { AuthenticationError, BadRequest, DDoSProtection, ExchangeError, ExchangeNotAvailable, InsufficientFunds, InvalidOrder, OrderNotFound, PermissionDenied, ArgumentsRequired } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -24841,6 +26535,7 @@ module.exports = class bitmex extends Exchange { 'Account has insufficient Available Balance': InsufficientFunds, 'Service unavailable': ExchangeNotAvailable, // {"error":{"message":"Service unavailable","name":"HTTPError"}} 'Server Error': ExchangeError, // {"error":{"message":"Server Error","name":"HTTPError"}} + 'Unable to cancel order due to existing state': InvalidOrder, }, }, 'precisionMode': TICK_SIZE, @@ -25893,6 +27588,43 @@ module.exports = class bitmex extends Exchange { } parseOrder (order, market = undefined) { + // + // { + // "orderID":"56222c7a-9956-413a-82cf-99f4812c214b", + // "clOrdID":"", + // "clOrdLinkID":"", + // "account":1455728, + // "symbol":"XBTUSD", + // "side":"Sell", + // "simpleOrderQty":null, + // "orderQty":1, + // "price":40000, + // "displayQty":null, + // "stopPx":null, + // "pegOffsetValue":null, + // "pegPriceType":"", + // "currency":"USD", + // "settlCurrency":"XBt", + // "ordType":"Limit", + // "timeInForce":"GoodTillCancel", + // "execInst":"", + // "contingencyType":"", + // "exDestination":"XBME", + // "ordStatus":"New", + // "triggered":"", + // "workingIndicator":true, + // "ordRejReason":"", + // "simpleLeavesQty":null, + // "leavesQty":1, + // "simpleCumQty":null, + // "cumQty":0, + // "avgPx":null, + // "multiLegReportingType":"SingleSecurity", + // "text":"Submitted via API.", + // "transactTime":"2021-01-02T21:38:49.246Z", + // "timestamp":"2021-01-02T21:38:49.246Z" + // } + // const status = this.parseOrderStatus (this.safeString (order, 'ordStatus')); const marketId = this.safeString (order, 'symbol'); const symbol = this.safeSymbol (marketId, market); @@ -25922,6 +27654,8 @@ module.exports = class bitmex extends Exchange { const clientOrderId = this.safeString (order, 'clOrdID'); const timeInForce = this.parseTimeInForce (this.safeString (order, 'timeInForce')); const stopPrice = this.safeFloat (order, 'stopPx'); + const execInst = this.safeString (order, 'execInst'); + const postOnly = (execInst === 'ParticipateDoNotInitiate'); return { 'info': order, 'id': id, @@ -25932,6 +27666,7 @@ module.exports = class bitmex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -26000,18 +27735,21 @@ module.exports = class bitmex extends Exchange { const request = { 'symbol': market['id'], 'side': this.capitalize (side), - 'orderQty': amount, + 'orderQty': parseFloat (this.amountToPrecision (symbol, amount)), 'ordType': orderType, }; - if (price !== undefined) { - if (orderType === 'Stop') { - const stopPrice = this.safeFloat2 (params, 'stopPx', 'stopPrice'); - request['stopPx'] = stopPrice; - params = this.omit (params, [ 'stopPx', 'stopPrice' ]); + if ((orderType === 'Stop') || (orderType === 'StopLimit') || (orderType === 'MarketIfTouched') || (orderType === 'LimitIfTouched')) { + const stopPrice = this.safeFloat2 (params, 'stopPx', 'stopPrice'); + if (stopPrice === undefined) { + throw new ArgumentsRequired (this.id + ' createOrder() requires a stopPx or stopPrice parameter for the ' + orderType + ' order type'); } else { - request['price'] = price; + request['stopPx'] = parseFloat (this.priceToPrecision (symbol, stopPrice)); + params = this.omit (params, [ 'stopPx', 'stopPrice' ]); } } + if ((orderType === 'Limit') || (orderType === 'StopLimit') || (orderType === 'LimitIfTouched')) { + request['price'] = parseFloat (this.priceToPrecision (symbol, price)); + } const clientOrderId = this.safeString2 (params, 'clOrdID', 'clientOrderId'); if (clientOrderId !== undefined) { request['clOrdID'] = clientOrderId; @@ -26313,7 +28051,7 @@ module.exports = class bitmex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],39:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],39:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -27106,7 +28844,10 @@ module.exports = class bitpanda extends Exchange { // const feeInfo = this.safeValue (trade, 'fee', {}); trade = this.safeValue (trade, 'trade', trade); - const timestamp = this.parse8601 (this.safeString (trade, 'time')); + let timestamp = this.safeInteger (trade, 'trade_timestamp'); + if (timestamp === undefined) { + timestamp = this.parse8601 (this.safeString (trade, 'time')); + } const side = this.safeStringLower2 (trade, 'side', 'taker_side'); const price = this.safeFloat (trade, 'price'); const amount = this.safeFloat (trade, 'amount'); @@ -27281,7 +29022,7 @@ module.exports = class bitpanda extends Exchange { if (since !== undefined) { const to = this.safeString (params, 'to'); if (to === undefined) { - throw new ArgumentsRequired (this.id + ' fetchDeposits requires a "to" iso8601 string param with the since argument is specified'); + throw new ArgumentsRequired (this.id + ' fetchDeposits() requires a "to" iso8601 string param with the since argument is specified'); } request['from'] = this.iso8601 (since); } @@ -27336,7 +29077,7 @@ module.exports = class bitpanda extends Exchange { if (since !== undefined) { const to = this.safeString (params, 'to'); if (to === undefined) { - throw new ArgumentsRequired (this.id + ' fetchWithdrawals requires a "to" iso8601 string param with the since argument is specified'); + throw new ArgumentsRequired (this.id + ' fetchWithdrawals() requires a "to" iso8601 string param with the since argument is specified'); } request['from'] = this.iso8601 (since); } @@ -27641,6 +29382,7 @@ module.exports = class bitpanda extends Exchange { } const timeInForce = this.parseTimeInForce (this.safeString (order, 'time_in_force')); const stopPrice = this.safeFloat (order, 'trigger_price'); + const postOnly = this.safeValue (order, 'is_post_only'); const result = { 'id': id, 'clientOrderId': clientOrderId, @@ -27651,6 +29393,7 @@ module.exports = class bitpanda extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -27725,7 +29468,7 @@ module.exports = class bitpanda extends Exchange { if (uppercaseType === 'STOP') { const triggerPrice = this.safeFloat (params, 'trigger_price'); if (triggerPrice === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires a trigger_price param for ' + type + ' orders'); + throw new ArgumentsRequired (this.id + ' createOrder() requires a trigger_price param for ' + type + ' orders'); } request['trigger_price'] = this.priceToPrecision (symbol, triggerPrice); params = this.omit (params, 'trigger_price'); @@ -27876,7 +29619,7 @@ module.exports = class bitpanda extends Exchange { if (since !== undefined) { const to = this.safeString (params, 'to'); if (to === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a "to" iso8601 string param with the since argument is specified, max range is 100 days'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a "to" iso8601 string param with the since argument is specified, max range is 100 days'); } request['from'] = this.iso8601 (since); } @@ -28040,7 +29783,7 @@ module.exports = class bitpanda extends Exchange { if (since !== undefined) { const to = this.safeString (params, 'to'); if (to === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a "to" iso8601 string param with the since argument is specified, max range is 100 days'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a "to" iso8601 string param with the since argument is specified, max range is 100 days'); } request['from'] = this.iso8601 (since); } @@ -28126,14 +29869,14 @@ module.exports = class bitpanda extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],40:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],40:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); const { ExchangeError, InvalidNonce, AuthenticationError, OrderNotFound } = require ('./base/errors'); -const { TICK_SIZE } = require ('./base/functions/number'); +const { TICK_SIZE, ROUND } = require ('./base/functions/number'); // --------------------------------------------------------------------------- @@ -28310,23 +30053,25 @@ module.exports = class bitso extends Exchange { const taker = this.safeFloat (flatRate, 'taker'); const feeTiers = this.safeValue (fees, 'structure', []); const fee = { - 'maker': maker, - 'taker': taker, + 'taker': parseFloat (this.decimalToPrecision (taker / 100, ROUND, 0.00000001, TICK_SIZE)), + 'maker': parseFloat (this.decimalToPrecision (maker / 100, ROUND, 0.00000001, TICK_SIZE)), 'percentage': true, 'tierBased': true, }; const takerFees = []; const makerFees = []; - for (let i = 0; i < feeTiers.length; i++) { - const tier = feeTiers[i]; + for (let j = 0; j < feeTiers.length; j++) { + const tier = feeTiers[j]; const volume = this.safeFloat (tier, 'volume'); const takerFee = this.safeFloat (tier, 'taker'); const makerFee = this.safeFloat (tier, 'maker'); - takerFees.push ([ volume, takerFee ]); - makerFees.push ([ volume, makerFee ]); - if (i === 0) { - fee['taker'] = taker; - fee['maker'] = maker; + const takerFeeToPrecision = parseFloat (this.decimalToPrecision (takerFee / 100, ROUND, 0.00000001, TICK_SIZE)); + const makerFeeToPrecision = parseFloat (this.decimalToPrecision (makerFee / 100, ROUND, 0.00000001, TICK_SIZE)); + takerFees.push ([ volume, takerFeeToPrecision ]); + makerFees.push ([ volume, makerFeeToPrecision ]); + if (j === 0) { + fee['taker'] = parseFloat (this.decimalToPrecision (taker / 100, ROUND, 0.00000001, TICK_SIZE)); + fee['maker'] = parseFloat (this.decimalToPrecision (maker / 100, ROUND, 0.00000001, TICK_SIZE)); } } const tiers = { @@ -28563,6 +30308,7 @@ module.exports = class bitso extends Exchange { 'symbol': symbol, 'type': orderType, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -28750,13 +30496,13 @@ module.exports = class bitso extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],41:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],41:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { AuthenticationError, ExchangeError, NotSupported, PermissionDenied, InvalidNonce, OrderNotFound, InsufficientFunds, InvalidAddress, InvalidOrder, ArgumentsRequired, OnMaintenance } = require ('./base/errors'); +const { AuthenticationError, ExchangeError, NotSupported, PermissionDenied, InvalidNonce, OrderNotFound, InsufficientFunds, InvalidAddress, InvalidOrder, ArgumentsRequired, OnMaintenance, ExchangeNotAvailable } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -28976,6 +30722,7 @@ module.exports = class bitstamp extends Exchange { 'Order not found': OrderNotFound, 'Price is more than 20% below market price.': InvalidOrder, 'Bitstamp.net is under scheduled maintenance.': OnMaintenance, // { "error": "Bitstamp.net is under scheduled maintenance. We'll be back soon." } + 'Order could not be placed.': ExchangeNotAvailable, // Order could not be placed (perhaps due to internal error or trade halt). Please retry placing order. }, 'broad': { 'Minimum order size is': InvalidOrder, // Minimum order size is 5.0 EUR. @@ -29458,7 +31205,7 @@ module.exports = class bitstamp extends Exchange { const duration = this.parseTimeframe (timeframe); if (limit === undefined) { if (since === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a since argument or a limit argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a since argument or a limit argument'); } else { limit = 1000; const start = parseInt (since / 1000); @@ -29524,8 +31271,8 @@ module.exports = class bitstamp extends Exchange { return { 'info': balance, 'symbol': symbol, - 'maker': balance.fee, - 'taker': balance.fee, + 'maker': balance['fee'], + 'taker': balance['fee'], }; } @@ -30015,6 +31762,7 @@ module.exports = class bitstamp extends Exchange { 'symbol': symbol, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -30357,7 +32105,7 @@ module.exports = class bitstamp extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],42:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],42:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -30658,13 +32406,13 @@ module.exports = class bitstamp1 extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],43:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],43:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { BadSymbol, ExchangeError, ExchangeNotAvailable, AuthenticationError, InvalidOrder, InsufficientFunds, OrderNotFound, DDoSProtection, PermissionDenied, AddressPending, OnMaintenance, BadRequest } = require ('./base/errors'); +const { BadSymbol, ExchangeError, ExchangeNotAvailable, AuthenticationError, InvalidOrder, InsufficientFunds, OrderNotFound, DDoSProtection, PermissionDenied, AddressPending, OnMaintenance, BadRequest, InvalidAddress } = require ('./base/errors'); const { TRUNCATE, DECIMAL_PLACES } = require ('./base/functions/number'); // --------------------------------------------------------------------------- @@ -30684,6 +32432,7 @@ module.exports = class bittrex extends Exchange { 'CORS': false, 'cancelAllOrders': true, 'cancelOrder': true, + 'createDepositAddress': true, 'createMarketOrder': true, 'createOrder': true, 'fetchBalance': true, @@ -30798,10 +32547,10 @@ module.exports = class bittrex extends Exchange { }, 'fees': { 'trading': { - 'tierBased': false, + 'tierBased': true, 'percentage': true, - 'maker': 0.0025, - 'taker': 0.0025, + 'maker': 0.0035, + 'taker': 0.0035, }, 'funding': { 'tierBased': false, @@ -31419,7 +33168,22 @@ module.exports = class bittrex extends Exchange { const isCeilingMarket = (uppercaseType === 'CEILING_MARKET'); const isCeilingOrder = isCeilingLimit || isCeilingMarket; if (isCeilingOrder) { - request['ceiling'] = this.priceToPrecision (symbol, price); + let cost = undefined; + if (isCeilingLimit) { + request['limit'] = this.priceToPrecision (symbol, price); + cost = this.safeFloat2 (params, 'ceiling', 'cost', amount); + } else if (isCeilingMarket) { + cost = this.safeFloat2 (params, 'ceiling', 'cost'); + if (cost === undefined) { + if (price === undefined) { + cost = amount; + } else { + cost = amount * price; + } + } + } + params = this.omit (params, [ 'ceiling', 'cost' ]); + request['ceiling'] = this.costToPrecision (symbol, cost); // bittrex only accepts IMMEDIATE_OR_CANCEL or FILL_OR_KILL for ceiling orders request['timeInForce'] = 'IMMEDIATE_OR_CANCEL'; } else { @@ -31636,7 +33400,7 @@ module.exports = class bittrex extends Exchange { 'GOOD_TIL_CANCELLED': 'GTC', 'IMMEDIATE_OR_CANCEL': 'IOC', 'FILL_OR_KILL': 'FOK', - 'POST_ONLY_GOOD_TIL_CANCELLED': 'POST_ONLY_GOOD_TIL_CANCELLED', + 'POST_ONLY_GOOD_TIL_CANCELLED': 'PO', }; return this.safeString (timeInForces, timeInForce, timeInForce); } @@ -31706,6 +33470,7 @@ module.exports = class bittrex extends Exchange { status = 'canceled'; } const timeInForce = this.parseTimeInForce (this.safeString (order, 'timeInForce')); + const postOnly = (timeInForce === 'PO'); return { 'id': this.safeString (order, 'id'), 'clientOrderId': undefined, @@ -31715,6 +33480,7 @@ module.exports = class bittrex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': direction, 'price': limit, 'stopPrice': undefined, @@ -31852,6 +33618,40 @@ module.exports = class bittrex extends Exchange { return this.parseOrders (response, market, since, limit); } + async createDepositAddress (code, params = {}) { + await this.loadMarkets (); + const currency = this.currency (code); + const request = { + 'currencySymbol': currency['id'], + }; + const response = await this.privatePostAddresses (this.extend (request, params)); + // + // { + // "status":"PROVISIONED", + // "currencySymbol":"XRP", + // "cryptoAddress":"rPVMhWBsfF9iMXYj3aAzJVkPDTFNSyWdKy", + // "cryptoAddressTag":"392034158" + // } + // + let address = this.safeString (response, 'cryptoAddress'); + const message = this.safeString (response, 'status'); + if (!address || message === 'REQUESTED') { + throw new AddressPending (this.id + ' the address for ' + code + ' is being generated (pending, not ready yet, retry again later)'); + } + let tag = this.safeString (response, 'cryptoAddressTag'); + if ((tag === undefined) && (currency['type'] in this.options['tag'])) { + tag = address; + address = currency['address']; + } + this.checkAddress (address); + return { + 'currency': code, + 'address': address, + 'tag': tag, + 'info': response, + }; + } + async fetchDepositAddress (code, params = {}) { await this.loadMarkets (); const currency = this.currency (code); @@ -31859,18 +33659,21 @@ module.exports = class bittrex extends Exchange { 'currencySymbol': currency['id'], }; const response = await this.privateGetAddressesCurrencySymbol (this.extend (request, params)); - // { - // "status": "PROVISIONED", - // "currencySymbol": "BTC", - // "cryptoAddress": "1PhmYjnJPZH5NUwV8AUjqkeDkCBpbE2xqX" - // } + // + // { + // "status":"PROVISIONED", + // "currencySymbol":"XRP", + // "cryptoAddress":"rPVMhWBsfF9iMXYj3aAzJVkPDTFNSyWdKy", + // "cryptoAddressTag":"392034158" + // } + // let address = this.safeString (response, 'cryptoAddress'); const message = this.safeString (response, 'status'); if (!address || message === 'REQUESTED') { throw new AddressPending (this.id + ' the address for ' + code + ' is being generated (pending, not ready yet, retry again later)'); } - let tag = undefined; - if (currency['type'] in this.options['tag']) { + let tag = this.safeString (response, 'cryptoAddressTag'); + if ((tag === undefined) && (currency['type'] in this.options['tag'])) { tag = address; address = currency['address']; } @@ -31970,6 +33773,9 @@ module.exports = class bittrex extends Exchange { this.throwExactlyMatchedException (this.exceptions['exact'], code, feedback); this.throwBroadlyMatchedException (this.exceptions['broad'], code, feedback); } + if ((code === 'NOT_FOUND') && (url.indexOf ('addresses') >= 0)) { + throw new InvalidAddress (feedback); + } // throw new ExchangeError (this.id + ' malformed response ' + this.json (response)); return; } @@ -32033,14 +33839,14 @@ module.exports = class bittrex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],44:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],44:[function(require,module,exports){ 'use strict'; // ---------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); const { ExchangeError, BadSymbol, AuthenticationError, InsufficientFunds, InvalidOrder, ArgumentsRequired, OrderNotFound, InvalidAddress, BadRequest, RateLimitExceeded, PermissionDenied, ExchangeNotAvailable, AccountSuspended, OnMaintenance } = require ('./base/errors'); -const { TRUNCATE } = require ('./base/functions/number'); +const { SIGNIFICANT_DIGITS, DECIMAL_PLACES, TRUNCATE, ROUND } = require ('./base/functions/number'); // ---------------------------------------------------------------------------- @@ -32257,12 +34063,33 @@ module.exports = class bitvavo extends Exchange { 'expires': 1000, // 1 second }, }, + 'precisionMode': SIGNIFICANT_DIGITS, 'commonCurrencies': { 'MIOTA': 'IOTA', // https://github.com/ccxt/ccxt/issues/7487 }, }); } + currencyToPrecision (currency, fee) { + return this.decimalToPrecision (fee, 0, this.currencies[currency]['precision']); + } + + amountToPrecision (symbol, amount) { + // https://docs.bitfinex.com/docs/introduction#amount-precision + // The amount field allows up to 8 decimals. + // Anything exceeding this will be rounded to the 8th decimal. + return this.decimalToPrecision (amount, TRUNCATE, this.markets[symbol]['precision']['amount'], DECIMAL_PLACES); + } + + priceToPrecision (symbol, price) { + price = this.decimalToPrecision (price, ROUND, this.markets[symbol]['precision']['price'], this.precisionMode); + // https://docs.bitfinex.com/docs/introduction#price-precision + // The precision level of all trading prices is based on significant figures. + // All pairs on Bitfinex use up to 5 significant digits and up to 8 decimals (e.g. 1.2345, 123.45, 1234.5, 0.00012345). + // Prices submit with a precision larger than 5 will be cut by the API. + return this.decimalToPrecision (price, TRUNCATE, 8, DECIMAL_PLACES); + } + async fetchTime (params = {}) { const response = await this.publicGetTime (params); // @@ -32804,16 +34631,18 @@ module.exports = class bitvavo extends Exchange { const request = { 'market': market['id'], 'side': side, - 'orderType': type, + 'orderType': type, // 'market', 'limit', 'stopLoss', 'stopLossLimit', 'takeProfit', 'takeProfitLimit' // 'amount': this.amountToPrecision (symbol, amount), // 'price': this.priceToPrecision (symbol, price), // 'amountQuote': this.costToPrecision (symbol, cost), - // 'timeInForce': 'GTC', // "GTC" "IOC" "FOK" - // 'selfTradePrevention': "decrementAndCancel", // "decrementAndCancel" "cancelOldest" "cancelNewest" "cancelBoth" + // 'timeInForce': 'GTC', // 'GTC', 'IOC', 'FOK' + // 'selfTradePrevention': 'decrementAndCancel', // 'decrementAndCancel', 'cancelOldest', 'cancelNewest', 'cancelBoth' // 'postOnly': false, // 'disableMarketProtection': false, // don't cancel if the next fill price is 10% worse than the best fill price // 'responseRequired': true, // false is faster }; + const isStopLimit = (type === 'stopLossLimit') || (type === 'takeProfitLimit'); + const isStopMarket = (type === 'stopLoss') || (type === 'takeProfit'); if (type === 'market') { let cost = undefined; if (price !== undefined) { @@ -32831,6 +34660,26 @@ module.exports = class bitvavo extends Exchange { } else if (type === 'limit') { request['price'] = this.priceToPrecision (symbol, price); request['amount'] = this.amountToPrecision (symbol, amount); + } else if (isStopMarket || isStopLimit) { + let stopPrice = this.safeFloat2 (params, 'stopPrice', 'triggerAmount'); + if (stopPrice === undefined) { + if (isStopLimit) { + throw new ArgumentsRequired (this.id + ' createOrder requires a stopPrice parameter for a ' + type + ' order'); + } else if (isStopMarket) { + if (price === undefined) { + throw new ArgumentsRequired (this.id + ' createOrder requires a price argument or a stopPrice parameter for a ' + type + ' order'); + } else { + stopPrice = price; + } + } + } + if (isStopLimit) { + request['price'] = this.priceToPrecision (symbol, price); + } + params = this.omit (params, [ 'stopPrice', 'triggerAmount' ]); + request['triggerAmount'] = this.priceToPrecision (symbol, stopPrice); + request['triggerType'] = 'price'; + request['amount'] = this.amountToPrecision (symbol, amount); } const response = await this.privatePostOrder (this.extend (request, params)); // @@ -32892,13 +34741,13 @@ module.exports = class bitvavo extends Exchange { const response = await this.privatePutOrder (this.extend (request, params)); return this.parseOrder (response, market); } else { - throw new ArgumentsRequired (this.id + ' editOrder requires an amount argument, or a price argument, or non-empty params'); + throw new ArgumentsRequired (this.id + ' editOrder() requires an amount argument, or a price argument, or non-empty params'); } } async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -32936,7 +34785,7 @@ module.exports = class bitvavo extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); await this.loadMarkets (); @@ -32985,7 +34834,7 @@ module.exports = class bitvavo extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -33046,24 +34895,13 @@ module.exports = class bitvavo extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); const request = { - // 'market': market['id'], - // 'limit': 500, - // 'start': since, - // 'end': this.milliseconds (), - // 'orderIdFrom': 'af76d6ce-9f7c-4006-b715-bb5d430652d0', - // 'orderIdTo': 'af76d6ce-9f7c-4006-b715-bb5d430652d0', + // 'market': market['id'], // rate limit 25 without a market, 1 with market specified }; let market = undefined; if (symbol !== undefined) { market = this.market (symbol); request['market'] = market['id']; } - if (since !== undefined) { - request['start'] = since; - } - if (limit !== undefined) { - request['limit'] = limit; // default 500, max 1000 - } const response = await this.privateGetOrdersOpen (this.extend (request, params)); // // [ @@ -33118,6 +34956,7 @@ module.exports = class bitvavo extends Exchange { 'partiallyFilled': 'open', 'expired': 'canceled', 'rejected': 'canceled', + 'awaitingTrigger': 'open', // https://github.com/ccxt/ccxt/issues/8489 }; return this.safeString (statuses, status, status); } @@ -33219,6 +35058,9 @@ module.exports = class bitvavo extends Exchange { } } const timeInForce = this.safeString (order, 'timeInForce'); + const postOnly = this.safeValue (order, 'postOnly'); + // https://github.com/ccxt/ccxt/issues/8489 + const stopPrice = this.safeFloat (order, 'triggerPrice'); return { 'info': order, 'id': id, @@ -33229,9 +35071,10 @@ module.exports = class bitvavo extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, - 'stopPrice': undefined, + 'stopPrice': stopPrice, 'amount': amount, 'cost': cost, 'average': average, @@ -33245,7 +35088,7 @@ module.exports = class bitvavo extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -33530,7 +35373,7 @@ module.exports = class bitvavo extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],45:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],45:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -34208,7 +36051,7 @@ module.exports = class bitz extends Exchange { } } else { if (since !== undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a limit argument if the since argument is specified'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a limit argument if the since argument is specified'); } } const response = await this.marketGetKline (this.extend (request, params)); @@ -34312,6 +36155,7 @@ module.exports = class bitz extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -34481,7 +36325,7 @@ module.exports = class bitz extends Exchange { async fetchOrdersWithMethod (method, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -34817,7 +36661,7 @@ module.exports = class bitz extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],46:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],46:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -35055,7 +36899,7 @@ module.exports = class bl3p extends Exchange { } }; -},{"./base/Exchange":5}],47:[function(require,module,exports){ +},{"./base/Exchange":6}],47:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -35720,6 +37564,7 @@ module.exports = class bleutrade extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -35870,7 +37715,7 @@ module.exports = class bleutrade extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],48:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],48:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -36333,6 +38178,7 @@ module.exports = class braziliex extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -36513,7 +38359,7 @@ module.exports = class braziliex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],49:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],49:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -36864,6 +38710,7 @@ module.exports = class btcalpha extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -37017,7 +38864,7 @@ module.exports = class btcalpha extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],50:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],50:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -37326,6 +39173,7 @@ module.exports = class btcbox extends Exchange { 'side': side, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'status': status, 'symbol': symbol, 'price': price, @@ -37444,7 +39292,7 @@ module.exports = class btcbox extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],51:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],51:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -38312,6 +40160,7 @@ module.exports = class btcmarkets extends Exchange { const clientOrderId = this.safeString (order, 'clientOrderId'); const timeInForce = this.safeString (order, 'timeInForce'); const stopPrice = this.safeFloat (order, 'triggerPrice'); + const postOnly = this.safeValue (order, 'postOnly'); return { 'info': order, 'id': id, @@ -38322,6 +40171,7 @@ module.exports = class btcmarkets extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -38501,7 +40351,7 @@ module.exports = class btcmarkets extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],52:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],52:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -38839,6 +40689,7 @@ module.exports = class btctradeua extends Exchange { 'symbol': symbol, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'side': this.safeString (order, 'type'), 'price': this.safeFloat (order, 'price'), 'stopPrice': undefined, @@ -38855,7 +40706,7 @@ module.exports = class btctradeua extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -38896,7 +40747,7 @@ module.exports = class btctradeua extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],53:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],53:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -39174,7 +41025,7 @@ module.exports = class btcturk extends Exchange { }; if (type === 'market') { if (!('Total' in params)) { - throw new ExchangeError (this.id + ' createOrder requires the "Total" extra parameter for market orders (amount and price are both ignored)'); + throw new ExchangeError (this.id + ' createOrder() requires the "Total" extra parameter for market orders (amount and price are both ignored)'); } } else { request['Price'] = price; @@ -39225,7 +41076,7 @@ module.exports = class btcturk extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],54:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],54:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -39765,29 +41616,65 @@ module.exports = class buda extends Exchange { } parseOrder (order, market = undefined) { + // + // { + // 'id': 63679183, + // 'uuid': 'f9697bee-627e-4175-983f-0d5a41963fec', + // 'market_id': 'ETH-CLP', + // 'account_id': 51590, + // 'type': 'Ask', + // 'state': 'received', + // 'created_at': '2021-01-04T08:29:52.730Z', + // 'fee_currency': 'CLP', + // 'price_type': 'limit', + // 'source': None, + // 'limit': ['741000.0', 'CLP'], + // 'amount': ['0.001', 'ETH'], + // 'original_amount': ['0.001', 'ETH'], + // 'traded_amount': ['0.0', 'ETH'], + // 'total_exchanged': ['0.0', 'CLP'], + // 'paid_fee': ['0.0', 'CLP'] + // } + // const id = this.safeString (order, 'id'); const timestamp = this.parse8601 (this.safeString (order, 'created_at')); const marketId = this.safeString (order, 'market_id'); - const symbol = this.safeSymbol (marketId, market); + const symbol = this.safeSymbol (marketId, market, '-'); const type = this.safeString (order, 'price_type'); const side = this.safeStringLower (order, 'type'); const status = this.parseOrderStatus (this.safeString (order, 'state')); - const amount = parseFloat (order['original_amount'][0]); - const remaining = parseFloat (order['amount'][0]); - const filled = parseFloat (order['traded_amount'][0]); - const cost = parseFloat (order['total_exchanged'][0]); - let price = this.safeFloat (order, 'limit'); - if (price !== undefined) { - price = parseFloat (price[0]); + const originalAmount = this.safeValue (order, 'original_amount', []); + const amount = this.safeFloat (originalAmount, 0); + const remainingAmount = this.safeValue (order, 'amount', []); + const remaining = this.safeFloat (remainingAmount, 0); + const tradedAmount = this.safeValue (order, 'traded_amount', []); + const filled = this.safeFloat (tradedAmount, 0); + const totalExchanged = this.safeValue (order, 'totalExchanged', []); + const cost = this.safeFloat (totalExchanged, 0); + const limitPrice = this.safeValue (order, 'limit', []); + let price = this.safeFloat (limitPrice, 0); + if (price === undefined) { + if (limitPrice !== undefined) { + price = limitPrice; + } } - if (cost > 0 && filled > 0) { - price = this.priceToPrecision (symbol, cost / filled); + let average = undefined; + if ((cost !== undefined) && (filled !== undefined) && (filled > 0)) { + average = this.priceToPrecision (symbol, cost / filled); + } + const paidFee = this.safeValue (order, 'paid_fee', []); + const feeCost = this.safeFloat (paidFee, 0); + let fee = undefined; + if (feeCost !== undefined) { + const feeCurrencyId = this.safeString (paidFee, 1); + const feeCurrencyCode = this.safeCurrencyCode (feeCurrencyId); + fee = { + 'cost': feeCost, + 'code': feeCurrencyCode, + }; } - const fee = { - 'cost': parseFloat (order['paid_fee'][0]), - 'currency': order['paid_fee'][1], - }; return { + 'info': order, 'id': id, 'clientOrderId': undefined, 'datetime': this.iso8601 (timestamp), @@ -39797,17 +41684,17 @@ module.exports = class buda extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, + 'average': average, 'cost': cost, 'amount': amount, 'filled': filled, 'remaining': remaining, 'trades': undefined, 'fee': fee, - 'info': order, - 'average': undefined, }; } @@ -40015,7 +41902,7 @@ module.exports = class buda extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],55:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],55:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -40779,6 +42666,7 @@ module.exports = class bw extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -40795,7 +42683,7 @@ module.exports = class bw extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -40830,7 +42718,7 @@ module.exports = class bw extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -41222,7 +43110,7 @@ module.exports = class bw extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],56:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],56:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -41242,6 +43130,7 @@ module.exports = class bybit extends Exchange { 'version': 'v2', 'userAgent': undefined, 'rateLimit': 100, + 'hostname': 'bybit.com', // bybit.com, bytick.com 'has': { 'cancelOrder': true, 'CORS': true, @@ -41284,9 +43173,9 @@ module.exports = class bybit extends Exchange { '1y': 'Y', }, 'urls': { - 'test': 'https://api-testnet.bybit.com', + 'test': 'https://api-testnet.{hostname}', 'logo': 'https://user-images.githubusercontent.com/51840849/76547799-daff5b80-649e-11ea-87fb-3be9bac08954.jpg', - 'api': 'https://api.bybit.com', + 'api': 'https://api.{hostname}', 'www': 'https://www.bybit.com', 'doc': [ 'https://bybit-exchange.github.io/docs/inverse/', @@ -41297,117 +43186,112 @@ module.exports = class bybit extends Exchange { 'referral': 'https://www.bybit.com/app/register?ref=X7Prm', }, 'api': { + 'v2': { + 'public': { + 'get': [ + 'orderBook/L2', + 'kline/list', + 'tickers', + 'trading-records', + 'symbols', + 'liq-records', + 'mark-price-kline', + 'index-price-kline', + 'premium-index-kline', + 'open-interest', + 'big-deal', + 'account-ratio', + 'time', + 'announcement', + ], + }, + 'private': { + 'get': [ + 'order/list', + 'order', + 'stop-order/list', + 'stop-order', + 'position/list', + 'execution/list', + 'trade/closed-pnl/list', + 'funding/prev-funding-rate', + 'funding/prev-funding', + 'funding/predicted-funding', + 'account/api-key', + 'account/lcp', + 'wallet/balance', + 'wallet/fund/records', + 'wallet/withdraw/list', + 'exchange-order/list', + ], + 'post': [ + 'order/create', + 'order/cancel', + 'order/cancelAll', + 'order/replace', + 'stop-order/create', + 'stop-order/cancel', + 'stop-order/cancelAll', + 'stop-order/replace', + 'position/change-position-margin', + 'position/trading-stop', + 'position/leverage/save', + ], + }, + }, 'public': { - 'get': [ - 'orderBook/L2', - 'kline/list', - 'tickers', - 'trading-records', - 'symbols', - 'liq-records', - 'mark-price-kline', - 'open-interest', - 'big-deal', - 'account-ratio', - 'time', - 'announcement', - ], + 'linear': { + 'get': [ + 'kline', + 'recent-trading-records', + 'funding/prev-funding-rate', + 'mark-price-kline', + 'index-price-kline', + 'premium-index-kline', + 'risk-limit', + ], + }, }, 'private': { - 'get': [ - 'order/list', - 'order', - 'stop-order/list', - 'stop-order', - 'position/list', - 'wallet/balance', - 'execution/list', - 'trade/closed-pnl/list', - 'account/lcp', - 'exchange-order/list', - ], - 'post': [ - 'order/create', - 'order/cancel', - 'order/cancelAll', - 'order/replace', - 'stop-order/create', - 'stop-order/cancel', - 'stop-order/cancelAll', - 'stop-order/replace', - ], + 'linear': { + 'get': [ + 'order/list', + 'order/search', + 'stop-order/list', + 'stop-order/search', + 'position/list', + 'trade/execution/list', + 'trade/closed-pnl/list', + 'funding/predicted-funding', + 'funding/prev-funding', + ], + 'post': [ + 'order/create', + 'order/cancel', + 'order/cancel-all', + 'order/replace', + 'stop-order/create', + 'stop-order/cancel', + 'stop-order/cancel-all', + 'stop-order/replace', + 'position/set-auto-add-margin', + 'position/switch-isolated', + 'tpsl/switch-mode', + 'position/add-margin', + 'position/set-leverage', + 'position/trading-stop', + ], + }, }, 'openapi': { - 'get': [ - 'order/list', // deprecated - 'stop-order/list', // deprecated - 'wallet/risk-limit/list', - 'funding/prev-funding-rate', - 'funding/prev-funding', - 'funding/predicted-funding', - 'api-key', - 'wallet/fund/records', - 'wallet/withdraw/list', - ], - 'post': [ - 'order/replace', // deprecated - 'stop-order/create', // deprecated - 'stop-order/cancel', // deprecated - 'stop-order/replace', // deprecated - 'position/trading-stop', - 'wallet/risk-limit', - ], - }, - 'publicLinear': { - 'get': [ - 'kline', - 'recent-trading-records', - 'funding/prev-funding-rate', - 'mark-price-kline', - 'risk-limit', - ], - }, - 'privateLinear': { - 'get': [ - 'order/list', - 'order/search', - 'stop-order/list', - 'stop-order/search', - 'position/list', - 'trade/execution/list', - 'trade/closed-pnl/list', - 'funding/prev-funding', - 'funding/predicted-funding', - ], - 'post': [ - 'order/create', - 'order/cancel', - 'order/cancel-all', - 'order/replace', - 'stop-order/create', - 'stop-order/cancel', - 'stop-order/cancel-all', - 'stop-order/replace', - 'position/switch-isolated', - 'position/set-auto-add-margin', - 'tpsl/switch-mode', - 'position/set-leverage', - 'position/trading-stop', - 'position/add-margin', - ], - }, - 'position': { - 'post': [ - 'change-position-margin', - ], - }, - 'user': { - 'get': [ - 'leverage', // deprecated - ], - 'post': [ - 'leverage/save', - ], + 'wallet': { + 'get': [ + 'risk-limit/list', + ], + 'post': [ + 'risk-limit', + ], + }, }, }, 'httpExceptions': { @@ -41510,6 +43394,7 @@ module.exports = class bybit extends Exchange { 'options': { 'marketTypes': { 'BTC/USDT': 'linear', + 'BCH/USDT': 'linear', 'ETH/USDT': 'linear', 'LTC/USDT': 'linear', 'XTZ/USDT': 'linear', @@ -41517,10 +43402,10 @@ module.exports = class bybit extends Exchange { }, 'code': 'BTC', 'cancelAllOrders': { - 'method': 'privatePostOrderCancelAll', // privatePostStopOrderCancelAll + // 'method': 'v2PrivatePostOrderCancelAll', // v2PrivatePostStopOrderCancelAll }, 'recvWindow': 5 * 1000, // 5 sec default - 'timeDifference': 0, // the difference between system clock and Binance clock + 'timeDifference': 0, // the difference between system clock and exchange server clock 'adjustForTimeDifference': false, // controls the adjustment logic upon instantiation }, 'fees': { @@ -41552,7 +43437,7 @@ module.exports = class bybit extends Exchange { } async fetchTime (params = {}) { - const response = await this.publicGetTime (params); + const response = await this.v2PublicGetTime (params); // // { // ret_code: 0, @@ -41570,30 +43455,7 @@ module.exports = class bybit extends Exchange { if (this.options['adjustForTimeDifference']) { await this.loadTimeDifference (); } - const response = await this.publicGetSymbols (params); - // - // { - // ret_code: 0, - // ret_msg: 'OK', - // ext_code: '', - // ext_info: '', - // result: [ - // { - // name: 'BTCUSD', - // base_currency: 'BTC', - // quote_currency: 'USD', - // price_scale: 2, - // taker_fee: '0.00075', - // maker_fee: '-0.00025', - // leverage_filter: { min_leverage: 1, max_leverage: 100, leverage_step: '0.01' }, - // price_filter: { min_price: '0.5', max_price: '999999.5', tick_size: '0.5' }, - // lot_size_filter: { max_trading_qty: 1000000, min_trading_qty: 1, qty_step: 1 } - // }, - // ], - // time_now: '1583930495.454196' - // } - // - // sandbox/testnet + const response = await this.v2PublicGetSymbols (params); // // { // "ret_code":0, @@ -41602,8 +43464,8 @@ module.exports = class bybit extends Exchange { // "ext_info":"", // "result":[ // { - // "symbol":"BTCUSD", - // "symbol_alias":"BTCUSD", + // "name":"BTCUSD", + // "alias":"BTCUSD", // "status":"Trading", // "base_currency":"BTC", // "quote_currency":"USD", @@ -41613,9 +43475,22 @@ module.exports = class bybit extends Exchange { // "leverage_filter":{"min_leverage":1,"max_leverage":100,"leverage_step":"0.01"}, // "price_filter":{"min_price":"0.5","max_price":"999999.5","tick_size":"0.5"}, // "lot_size_filter":{"max_trading_qty":1000000,"min_trading_qty":1,"qty_step":1} - // } + // }, + // { + // "name":"BTCUSDT", + // "alias":"BTCUSDT", + // "status":"Trading", + // "base_currency":"BTC", + // "quote_currency":"USDT", + // "price_scale":2, + // "taker_fee":"0.00075", + // "maker_fee":"-0.00025", + // "leverage_filter":{"min_leverage":1,"max_leverage":100,"leverage_step":"0.01"}, + // "price_filter":{"min_price":"0.5","max_price":"999999.5","tick_size":"0.5"}, + // "lot_size_filter":{"max_trading_qty":100,"min_trading_qty":0.001,"qty_step":0.001} + // }, // ], - // "time_now":"1605916574.118500" + // "time_now":"1610539664.818033" // } // const markets = this.safeValue (response, 'result', []); @@ -41682,65 +43557,6 @@ module.exports = class bybit extends Exchange { return result; } - async fetchBalance (params = {}) { - await this.loadMarkets (); - const request = {}; - const coin = this.safeString (params, 'coin'); - const code = this.safeString (params, 'code'); - if (coin !== undefined) { - request['coin'] = coin; - } else if (code !== undefined) { - const currency = this.currency (code); - request['coin'] = currency['id']; - } - const response = await this.privateGetWalletBalance (this.extend (request, params)); - // - // { - // ret_code: 0, - // ret_msg: 'OK', - // ext_code: '', - // ext_info: '', - // result: { - // BTC: { - // equity: 0, - // available_balance: 0, - // used_margin: 0, - // order_margin: 0, - // position_margin: 0, - // occ_closing_fee: 0, - // occ_funding_fee: 0, - // wallet_balance: 0, - // realised_pnl: 0, - // unrealised_pnl: 0, - // cum_realised_pnl: 0, - // given_cash: 0, - // service_cash: 0 - // } - // }, - // time_now: '1583937810.370020', - // rate_limit_status: 119, - // rate_limit_reset_ms: 1583937810367, - // rate_limit: 120 - // } - // - const result = { - 'info': response, - }; - const balances = this.safeValue (response, 'result', {}); - const currencyIds = Object.keys (balances); - for (let i = 0; i < currencyIds.length; i++) { - const currencyId = currencyIds[i]; - const balance = balances[currencyId]; - const code = this.safeCurrencyCode (currencyId); - const account = this.account (); - account['free'] = this.safeFloat (balance, 'available_balance'); - account['used'] = this.safeFloat (balance, 'used_margin'); - account['total'] = this.safeFloat (balance, 'equity'); - result[code] = account; - } - return this.parseBalance (result); - } - parseTicker (ticker, market = undefined) { // // fetchTicker @@ -41819,7 +43635,7 @@ module.exports = class bybit extends Exchange { const request = { 'symbol': market['id'], }; - const response = await this.publicGetTickers (this.extend (request, params)); + const response = await this.v2PublicGetTickers (this.extend (request, params)); // // { // ret_code: 0, @@ -41867,7 +43683,7 @@ module.exports = class bybit extends Exchange { async fetchTickers (symbols = undefined, params = {}) { await this.loadMarkets (); - const response = await this.publicGetTickers (params); + const response = await this.v2PublicGetTickers (params); // // { // ret_code: 0, @@ -41965,7 +43781,7 @@ module.exports = class bybit extends Exchange { const now = this.seconds (); if (since === undefined) { if (limit === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a since argument or a limit argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a since argument or a limit argument'); } else { request['from'] = now - limit * duration; } @@ -41977,7 +43793,7 @@ module.exports = class bybit extends Exchange { } const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - const method = (marketType === 'linear') ? 'publicLinearGetKline' : 'publicGetKlineList'; + const method = (marketType === 'linear') ? 'publicLinearGetKline' : 'v2PublicGetKlineList'; const response = await this[method] (this.extend (request, params)); // // inverse perpetual BTC/USD @@ -42132,7 +43948,7 @@ module.exports = class bybit extends Exchange { } const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - const method = (marketType === 'linear') ? 'publicLinearGetRecentTradingRecords' : 'publicGetTradingRecords'; + const method = (marketType === 'linear') ? 'publicLinearGetRecentTradingRecords' : 'v2PublicGetTradingRecords'; const response = await this[method] (this.extend (request, params)); // // { @@ -42186,7 +44002,7 @@ module.exports = class bybit extends Exchange { const request = { 'symbol': market['id'], }; - const response = await this.publicGetOrderBookL2 (this.extend (request, params)); + const response = await this.v2PublicGetOrderBookL2 (this.extend (request, params)); // // { // ret_code: 0, @@ -42209,6 +44025,65 @@ module.exports = class bybit extends Exchange { return this.parseOrderBook (result, timestamp, 'Buy', 'Sell', 'price', 'size'); } + async fetchBalance (params = {}) { + await this.loadMarkets (); + const request = {}; + const coin = this.safeString (params, 'coin'); + const code = this.safeString (params, 'code'); + if (coin !== undefined) { + request['coin'] = coin; + } else if (code !== undefined) { + const currency = this.currency (code); + request['coin'] = currency['id']; + } + const response = await this.v2PrivateGetWalletBalance (this.extend (request, params)); + // + // { + // ret_code: 0, + // ret_msg: 'OK', + // ext_code: '', + // ext_info: '', + // result: { + // BTC: { + // equity: 0, + // available_balance: 0, + // used_margin: 0, + // order_margin: 0, + // position_margin: 0, + // occ_closing_fee: 0, + // occ_funding_fee: 0, + // wallet_balance: 0, + // realised_pnl: 0, + // unrealised_pnl: 0, + // cum_realised_pnl: 0, + // given_cash: 0, + // service_cash: 0 + // } + // }, + // time_now: '1583937810.370020', + // rate_limit_status: 119, + // rate_limit_reset_ms: 1583937810367, + // rate_limit: 120 + // } + // + const result = { + 'info': response, + }; + const balances = this.safeValue (response, 'result', {}); + const currencyIds = Object.keys (balances); + for (let i = 0; i < currencyIds.length; i++) { + const currencyId = currencyIds[i]; + const balance = balances[currencyId]; + const code = this.safeCurrencyCode (currencyId); + const account = this.account (); + account['free'] = this.safeFloat (balance, 'available_balance'); + account['used'] = this.safeFloat (balance, 'used_margin'); + account['total'] = this.safeFloat (balance, 'equity'); + result[code] = account; + } + return this.parseBalance (result); + } + parseOrderStatus (status) { const statuses = { // basic orders @@ -42391,6 +44266,7 @@ module.exports = class bybit extends Exchange { } const timeInForce = this.parseTimeInForce (this.safeString (order, 'time_in_force')); const stopPrice = this.safeFloat (order, 'stop_px'); + const postOnly = (timeInForce === 'PO'); return { 'info': order, 'id': id, @@ -42401,6 +44277,7 @@ module.exports = class bybit extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -42417,7 +44294,7 @@ module.exports = class bybit extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -42431,7 +44308,7 @@ module.exports = class bybit extends Exchange { }; const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - let method = (marketType === 'linear') ? 'privateLinearGetOrderSearch' : 'privateGetOrder'; + let method = (marketType === 'linear') ? 'privateLinearGetOrderSearch' : 'v2PrivateGetOrder'; const stopOrderId = this.safeString (params, 'stop_order_id'); if (stopOrderId === undefined) { const orderLinkId = this.safeString (params, 'order_link_id'); @@ -42439,7 +44316,7 @@ module.exports = class bybit extends Exchange { request['order_id'] = id; } } else { - method = (marketType === 'linear') ? 'privateLinearGetStopOrderSearch' : 'privateGetStopOrder'; + method = (marketType === 'linear') ? 'privateLinearGetStopOrderSearch' : 'v2PrivateGetStopOrder'; } const response = await this[method] (this.extend (request, params)); // @@ -42552,7 +44429,7 @@ module.exports = class bybit extends Exchange { if (price !== undefined) { request['price'] = parseFloat (this.priceToPrecision (symbol, price)); } else { - throw new ArgumentsRequired (this.id + ' createOrder requires a price argument for a ' + type + ' order'); + throw new ArgumentsRequired (this.id + ' createOrder() requires a price argument for a ' + type + ' order'); } } const clientOrderId = this.safeString2 (params, 'order_link_id', 'clientOrderId'); @@ -42564,7 +44441,7 @@ module.exports = class bybit extends Exchange { const basePrice = this.safeValue (params, 'base_price'); const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - let method = (marketType === 'linear') ? 'privateLinearPostOrderCreate' : 'privatePostOrderCreate'; + let method = (marketType === 'linear') ? 'privateLinearPostOrderCreate' : 'v2PrivatePostOrderCreate'; if (marketType === 'linear') { method = 'privateLinearPostOrderCreate'; request['reduce_only'] = false; @@ -42572,15 +44449,15 @@ module.exports = class bybit extends Exchange { } if (stopPx !== undefined) { if (basePrice === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires both the stop_px and base_price params for a conditional ' + type + ' order'); + throw new ArgumentsRequired (this.id + ' createOrder() requires both the stop_px and base_price params for a conditional ' + type + ' order'); } else { - method = (marketType === 'linear') ? 'privateLinearPostStopOrderCreate' : 'openapiPostStopOrderCreate'; + method = (marketType === 'linear') ? 'privateLinearPostStopOrderCreate' : 'v2PrivatePostStopOrderCreate'; request['stop_px'] = parseFloat (this.priceToPrecision (symbol, stopPx)); request['base_price'] = parseFloat (this.priceToPrecision (symbol, basePrice)); params = this.omit (params, [ 'stop_px', 'stopPrice', 'base_price' ]); } } else if (basePrice !== undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires both the stop_px and base_price params for a conditional ' + type + ' order'); + throw new ArgumentsRequired (this.id + ' createOrder() requires both the stop_px and base_price params for a conditional ' + type + ' order'); } const response = await this[method] (this.extend (request, params)); // @@ -42666,7 +44543,7 @@ module.exports = class bybit extends Exchange { async editOrder (id, symbol, type, side, amount = undefined, price = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' editOrder requires an symbol argument'); + throw new ArgumentsRequired (this.id + ' editOrder() requires an symbol argument'); } const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); @@ -42682,17 +44559,23 @@ module.exports = class bybit extends Exchange { // 'stop_order_id': id, // only for conditional orders // 'p_r_trigger_price': 123.45, // new trigger price also known as stop_px }; - let method = (marketType === 'linear') ? 'privateLinearPostOrderReplace' : 'openapiPostOrderReplace'; + let method = (marketType === 'linear') ? 'privateLinearPostOrderReplace' : 'v2PrivatePostOrderReplace'; const stopOrderId = this.safeString (params, 'stop_order_id'); if (stopOrderId !== undefined) { - method = (marketType === 'linear') ? 'privateLinearPostStopOrderReplace' : 'openapiPostStopOrderReplace'; + method = (marketType === 'linear') ? 'privateLinearPostStopOrderReplace' : 'v2PrivatePostStopOrderReplace'; request['stop_order_id'] = stopOrderId; params = this.omit (params, [ 'stop_order_id' ]); } else { request['order_id'] = id; } if (amount !== undefined) { - request['p_r_qty'] = parseInt (this.amountToPrecision (symbol, amount)); + let qty = this.amountToPrecision (symbol, amount); + if (market['inverse']) { + qty = parseInt (qty); + } else { + qty = parseFloat (qty); + } + request['p_r_qty'] = qty; } if (price !== undefined) { request['p_r_price'] = parseFloat (this.priceToPrecision (symbol, price)); @@ -42735,7 +44618,7 @@ module.exports = class bybit extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -42749,7 +44632,7 @@ module.exports = class bybit extends Exchange { }; const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeValue (marketTypes, symbol); - let method = (marketType === 'linear') ? 'privateLinearPostOrderCancel' : 'privatePostOrderCancel'; + let method = (marketType === 'linear') ? 'privateLinearPostOrderCancel' : 'v2PrivatePostOrderCancel'; const stopOrderId = this.safeString (params, 'stop_order_id'); if (stopOrderId === undefined) { const orderLinkId = this.safeString (params, 'order_link_id'); @@ -42757,7 +44640,7 @@ module.exports = class bybit extends Exchange { request['order_id'] = id; } } else { - method = (marketType === 'linear') ? 'privateLinearPostStopOrderCancel' : 'openapiPostStopOrderCancel'; + method = (marketType === 'linear') ? 'privateLinearPostStopOrderCancel' : 'v2PrivatePostStopOrderCancel'; } const response = await this[method] (this.extend (request, params)); const result = this.safeValue (response, 'result', {}); @@ -42766,17 +44649,17 @@ module.exports = class bybit extends Exchange { async cancelAllOrders (symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelAllOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelAllOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); const request = { 'symbol': market['id'], }; - const options = this.safeValue (this.options, 'cancelAllOrders'); + const options = this.safeValue (this.options, 'cancelAllOrders', {}); const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - const defaultMethod = (marketType === 'linear') ? 'privateLinearPostOrderCancelAll' : 'privatePostOrderCancelAll'; + const defaultMethod = (marketType === 'linear') ? 'privateLinearPostOrderCancelAll' : 'v2PrivatePostOrderCancelAll'; const method = this.safeString (options, 'method', defaultMethod); const response = await this[method] (this.extend (request, params)); const result = this.safeValue (response, 'result', []); @@ -42808,7 +44691,7 @@ module.exports = class bybit extends Exchange { const options = this.safeValue (this.options, 'fetchOrders', {}); const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - let defaultMethod = (marketType === 'linear') ? 'privateLinearGetOrderList' : 'openapiGetOrderList'; + let defaultMethod = (marketType === 'linear') ? 'privateLinearGetOrderList' : 'v2PrivateGetOrderList'; let query = params; if (('stop_order_id' in params) || ('stop_order_status' in params)) { let stopOrderStatus = this.safeValue (params, 'stopOrderStatus'); @@ -42819,7 +44702,7 @@ module.exports = class bybit extends Exchange { request['stop_order_status'] = stopOrderStatus; query = this.omit (params, 'stop_order_status'); } - defaultMethod = (marketType === 'linear') ? 'privateLinearGetStopOrderList' : 'openapiGetStopOrderList'; + defaultMethod = (marketType === 'linear') ? 'privateLinearGetStopOrderList' : 'v2PrivateGetStopOrderList'; } const method = this.safeString (options, 'method', defaultMethod); const response = await this[method] (this.extend (request, query)); @@ -42985,7 +44868,7 @@ module.exports = class bybit extends Exchange { if (symbol === undefined) { const orderId = this.safeString (params, 'order_id'); if (orderId === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument or an order_id param'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument or an order_id param'); } else { request['order_id'] = orderId; params = this.omit (params, 'order_id'); @@ -43002,7 +44885,7 @@ module.exports = class bybit extends Exchange { } const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - const method = (marketType === 'linear') ? 'privateLinearGetTradeExecutionList' : 'privateGetExecutionList'; + const method = (marketType === 'linear') ? 'privateLinearGetTradeExecutionList' : 'v2PrivateGetExecutionList'; const response = await this[method] (this.extend (request, params)); // // inverse @@ -43092,41 +44975,60 @@ module.exports = class bybit extends Exchange { } async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { - if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchWithdrawals() requires a currency code argument'); - } await this.loadMarkets (); - const currency = this.currency (code); const request = { - 'currency': currency['id'], + // 'coin': currency['id'], + // 'currency': currency['id'], // alias + // 'start_date': this.iso8601 (since), + // 'end_date': this.iso8601 (till), + 'wallet_fund_type': 'Deposit', // Deposit, Withdraw, RealisedPNL, Commission, Refund, Prize, ExchangeOrderWithdraw, ExchangeOrderDeposit + // 'page': 1, + // 'limit': 20, // max 50 }; - if (limit !== undefined) { - request['count'] = limit; + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + request['coin'] = currency['id']; } - const response = await this.privateGetGetDeposits (this.extend (request, params)); + if (since !== undefined) { + request['start_date'] = this.ymd (since); + } + if (limit !== undefined) { + request['limit'] = limit; + } + const response = await this.v2PrivateGetWalletFundRecords (this.extend (request, params)); // // { - // "jsonrpc": "2.0", - // "id": 5611, + // "ret_code": 0, + // "ret_msg": "ok", + // "ext_code": "", // "result": { - // "count": 1, // "data": [ // { - // "address": "2N35qDKDY22zmJq9eSyiAerMD4enJ1xx6ax", - // "amount": 5, - // "currency": "BTC", - // "received_timestamp": 1549295017670, - // "state": "completed", - // "transaction_id": "230669110fdaf0a0dbcdc079b6b8b43d5af29cc73683835b9bc6b3406c065fda", - // "updated_timestamp": 1549295130159 + // "id": 234467, + // "user_id": 1, + // "coin": "BTC", + // "wallet_id": 27913, + // "type": "Realized P&L", + // "amount": "-0.00000006", + // "tx_id": "", + // "address": "BTCUSD", + // "wallet_balance": "0.03000330", + // "exec_time": "2019-12-09T00:00:25.000Z", + // "cross_seq": 0 // } // ] - // } + // }, + // "ext_info": null, + // "time_now": "1577481867.115552", + // "rate_limit_status": 119, + // "rate_limit_reset_ms": 1577481867122, + // "rate_limit": 120 // } // const result = this.safeValue (response, 'result', {}); const data = this.safeValue (result, 'data', []); - return this.parseTransactions (data, currency, since, limit, params); + return this.parseTransactions (data, currency, since, limit); } async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { @@ -43145,12 +45047,12 @@ module.exports = class bybit extends Exchange { request['coin'] = currency['id']; } if (since !== undefined) { - request['start_date'] = this.iso8601 (since); + request['start_date'] = this.ymd (since); } if (limit !== undefined) { request['limit'] = limit; } - const response = await this.openapiGetWalletWithdrawList (this.extend (request, params)); + const response = await this.v2PrivateGetWalletWithdrawList (this.extend (request, params)); // // { // "ret_code": 0, @@ -43216,9 +45118,25 @@ module.exports = class bybit extends Exchange { // "updated_at": "2019-06-11T02:20:24.000Z" // } // + // fetchDeposits ledger entries + // + // { + // "id": 234467, + // "user_id": 1, + // "coin": "BTC", + // "wallet_id": 27913, + // "type": "Realized P&L", + // "amount": "-0.00000006", + // "tx_id": "", + // "address": "BTCUSD", + // "wallet_balance": "0.03000330", + // "exec_time": "2019-12-09T00:00:25.000Z", + // "cross_seq": 0 + // } + // const currencyId = this.safeString (transaction, 'coin'); const code = this.safeCurrencyCode (currencyId, currency); - const timestamp = this.parse8601 (this.safeString (transaction, 'submited_at')); + const timestamp = this.parse8601 (this.safeString2 (transaction, 'submited_at', 'exec_time')); const updated = this.parse8601 (this.safeString (transaction, 'updated_at')); const status = this.parseTransactionStatus (this.safeString (transaction, 'status')); const address = this.safeString (transaction, 'address'); @@ -43268,12 +45186,12 @@ module.exports = class bybit extends Exchange { request['coin'] = currency['id']; } if (since !== undefined) { - request['start_date'] = this.iso8601 (since); + request['start_date'] = this.ymd (since); } if (limit !== undefined) { request['limit'] = limit; } - const response = await this.openapiGetWalletFundRecords (this.extend (request, params)); + const response = await this.v2PrivateGetWalletFundRecords (this.extend (request, params)); // // { // "ret_code": 0, @@ -43372,45 +45290,28 @@ module.exports = class bybit extends Exchange { } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { - let url = this.urls['api']; - let request = path; + let url = this.implodeParams (this.urls['api'], { 'hostname': this.hostname }); + const type = this.safeString (api, 0); + const section = this.safeString (api, 1); + let request = '/' + type + '/' + section + '/' + path; // public v2 - if (api === 'public') { - request = '/' + this.version + '/' + api + '/' + request; + if (section === 'public') { if (Object.keys (params).length) { request += '?' + this.rawencode (params); } - } else if (api === 'publicLinear') { - request = '/public/linear/' + request; + } else if (type === 'public') { if (Object.keys (params).length) { request += '?' + this.rawencode (params); } } else { this.checkRequiredCredentials (); - if (api === 'openapi') { - request = '/open-api/' + request; - } else if (api === 'private') { - // private v2 - request = '/' + this.version + '/' + api + '/' + request; - } else if (api === 'privateLinear') { - request = '/private/linear/' + request; - } else { - // position, user - request = '/' + api + '/' + request; - } const timestamp = this.nonce (); const query = this.extend (params, { 'api_key': this.apiKey, 'recv_window': this.options['recvWindow'], 'timestamp': timestamp, }); - let auth = this.rawencode (this.keysort (query)); - // https://github.com/ccxt/ccxt/issues/7377 - // https://github.com/ccxt/ccxt/issues/7515 - // bybit encodes whole floats as integers without .0 for conditional stop-orders only - if (path.indexOf ('stop-order') >= 0) { - auth = auth.replace ('.0&', '&'); - } + const auth = this.rawencode (this.keysort (query)); const signature = this.hmac (this.encode (auth), this.encode (this.secret)); if (method === 'POST') { body = this.json (this.extend (query, { @@ -43453,7 +45354,7 @@ module.exports = class bybit extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],57:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],57:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -43741,7 +45642,7 @@ module.exports = class bytetrade extends Exchange { async fetchBalance (params = {}) { if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired (this.id + ' fetchDeposits requires this.apiKey or userid argument'); + throw new ArgumentsRequired (this.id + ' fetchDeposits() requires this.apiKey or userid argument'); } await this.loadMarkets (); const request = { @@ -44036,6 +45937,7 @@ module.exports = class bytetrade extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -44053,7 +45955,7 @@ module.exports = class bytetrade extends Exchange { async createOrder (symbol, type, side, amount, price = undefined, params = {}) { this.checkRequiredDependencies (); if (this.apiKey === undefined) { - throw new ArgumentsRequired ('createOrder requires this.apiKey or userid in params'); + throw new ArgumentsRequired ('createOrder() requires this.apiKey or userid in params'); } await this.loadMarkets (); const market = this.market (symbol); @@ -44237,7 +46139,7 @@ module.exports = class bytetrade extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchOrder requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchOrder() requires this.apiKey or userid argument'); } await this.loadMarkets (); const request = { @@ -44255,7 +46157,7 @@ module.exports = class bytetrade extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchOpenOrders requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchOpenOrders() requires this.apiKey or userid argument'); } await this.loadMarkets (); const request = { @@ -44275,7 +46177,7 @@ module.exports = class bytetrade extends Exchange { async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchClosedOrders requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchClosedOrders() requires this.apiKey or userid argument'); } await this.loadMarkets (); let market = undefined; @@ -44295,7 +46197,7 @@ module.exports = class bytetrade extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchOrders requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchOrders() requires this.apiKey or userid argument'); } await this.loadMarkets (); let market = undefined; @@ -44315,10 +46217,10 @@ module.exports = class bytetrade extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (this.apiKey === undefined) { - throw new ArgumentsRequired ('cancelOrder requires hasAlreadyAuthenticatedSuccessfully'); + throw new ArgumentsRequired ('cancelOrder() requires hasAlreadyAuthenticatedSuccessfully'); } if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -44416,7 +46318,7 @@ module.exports = class bytetrade extends Exchange { async transfer (code, amount, address, message = '', params = {}) { this.checkRequiredDependencies (); if (this.apiKey === undefined) { - throw new ArgumentsRequired ('transfer requires this.apiKey'); + throw new ArgumentsRequired ('transfer() requires this.apiKey'); } await this.loadMarkets (); const currency = this.currency (code); @@ -44522,7 +46424,7 @@ module.exports = class bytetrade extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchMyTrades requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchMyTrades() requires this.apiKey or userid argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -44542,7 +46444,7 @@ module.exports = class bytetrade extends Exchange { async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchDeposits requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchDeposits() requires this.apiKey or userid argument'); } let currency = undefined; const request = { @@ -44565,7 +46467,7 @@ module.exports = class bytetrade extends Exchange { async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchWithdrawals requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchWithdrawals() requires this.apiKey or userid argument'); } let currency = undefined; const request = { @@ -44649,7 +46551,7 @@ module.exports = class bytetrade extends Exchange { async fetchDepositAddress (code, params = {}) { await this.loadMarkets (); if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchDepositAddress requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchDepositAddress() requires this.apiKey or userid argument'); } const currency = this.currency (code); const request = { @@ -44675,7 +46577,7 @@ module.exports = class bytetrade extends Exchange { this.checkAddress (address); await this.loadMarkets (); if (this.apiKey === undefined) { - throw new ArgumentsRequired ('withdraw requires this.apiKey'); + throw new ArgumentsRequired (this.id + ' withdraw() requires this.apiKey'); } const addressResponse = await this.fetchDepositAddress (code); const chainTypeString = this.safeString (addressResponse, 'chainType'); @@ -44885,7 +46787,42 @@ module.exports = class bytetrade extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],58:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],58:[function(require,module,exports){ +'use strict'; + +// --------------------------------------------------------------------------- + +const huobipro = require ('./huobipro.js'); + +// --------------------------------------------------------------------------- + +module.exports = class cdax extends huobipro { + describe () { + return this.deepExtend (super.describe (), { + 'id': 'cdax', + 'name': 'CDAX', + 'countries': [ 'RU' ], + 'hostname': 'cdax.io', + 'pro': false, + 'urls': { + 'logo': 'https://user-images.githubusercontent.com/1294454/102157692-fd406280-3e90-11eb-8d46-4511b617cd17.jpg', + 'api': { + 'market': 'https://{hostname}/api', + 'public': 'https://{hostname}/api', + 'private': 'https://{hostname}/api', + 'v2Public': 'https://{hostname}/api', + 'v2Private': 'https://{hostname}/api', + }, + 'www': 'https://cdax.io', + 'referral': 'https://cdax.io/invite?invite_code=esc74', + 'doc': 'https://github.com/cloudapidoc/API_Docs', + 'fees': 'https://cdax.io/about/fee', + }, + }); + } +}; + +},{"./huobipro.js":96}],59:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -45564,10 +47501,9 @@ module.exports = class cex extends Exchange { let cost = undefined; if (market !== undefined) { symbol = market['symbol']; - cost = this.safeFloat (order, 'ta:' + market['quote']); - if (cost === undefined) { - cost = this.safeFloat (order, 'tta:' + market['quote']); - } + const taCost = this.safeFloat (order, 'ta:' + market['quote']); + const ttaCost = this.safeFloat (order, 'tta:' + market['quote']); + cost = this.sum (taCost, ttaCost); const baseFee = 'fa:' + market['base']; const baseTakerFee = 'tfa:' + market['base']; const quoteFee = 'fa:' + market['quote']; @@ -45771,6 +47707,7 @@ module.exports = class cex extends Exchange { 'symbol': symbol, 'type': (price === undefined) ? 'market' : 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -45806,7 +47743,7 @@ module.exports = class cex extends Exchange { await this.loadMarkets (); const method = 'privatePostArchivedOrdersPair'; if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchClosedOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchClosedOrders() requires a symbol argument'); } const market = this.market (symbol); const request = { 'pair': market['id'] }; @@ -46140,10 +48077,10 @@ module.exports = class cex extends Exchange { async editOrder (id, symbol, type, side, amount = undefined, price = undefined, params = {}) { if (amount === undefined) { - throw new ArgumentsRequired (this.id + ' editOrder requires a amount argument'); + throw new ArgumentsRequired (this.id + ' editOrder() requires a amount argument'); } if (price === undefined) { - throw new ArgumentsRequired (this.id + ' editOrder requires a price argument'); + throw new ArgumentsRequired (this.id + ' editOrder() requires a price argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -46235,7 +48172,7 @@ module.exports = class cex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],59:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],60:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -46269,13 +48206,13 @@ module.exports = class chilebit extends foxbit { } }; -},{"./foxbit.js":84}],60:[function(require,module,exports){ +},{"./foxbit.js":87}],61:[function(require,module,exports){ 'use strict'; // ---------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { ExchangeError, ArgumentsRequired, AuthenticationError, RateLimitExceeded } = require ('./base/errors'); +const { ExchangeError, ArgumentsRequired, AuthenticationError, RateLimitExceeded, InvalidNonce } = require ('./base/errors'); // ---------------------------------------------------------------------------- @@ -46395,23 +48332,28 @@ module.exports = class coinbase extends Exchange { }, }, 'exceptions': { - 'two_factor_required': AuthenticationError, // 402 When sending money over 2fa limit - 'param_required': ExchangeError, // 400 Missing parameter - 'validation_error': ExchangeError, // 400 Unable to validate POST/PUT - 'invalid_request': ExchangeError, // 400 Invalid request - 'personal_details_required': AuthenticationError, // 400 User’s personal detail required to complete this request - 'identity_verification_required': AuthenticationError, // 400 Identity verification is required to complete this request - 'jumio_verification_required': AuthenticationError, // 400 Document verification is required to complete this request - 'jumio_face_match_verification_required': AuthenticationError, // 400 Document verification including face match is required to complete this request - 'unverified_email': AuthenticationError, // 400 User has not verified their email - 'authentication_error': AuthenticationError, // 401 Invalid auth (generic) - 'invalid_token': AuthenticationError, // 401 Invalid Oauth token - 'revoked_token': AuthenticationError, // 401 Revoked Oauth token - 'expired_token': AuthenticationError, // 401 Expired Oauth token - 'invalid_scope': AuthenticationError, // 403 User hasn’t authenticated necessary scope - 'not_found': ExchangeError, // 404 Resource not found - 'rate_limit_exceeded': RateLimitExceeded, // 429 Rate limit exceeded - 'internal_server_error': ExchangeError, // 500 Internal server error + 'exact': { + 'two_factor_required': AuthenticationError, // 402 When sending money over 2fa limit + 'param_required': ExchangeError, // 400 Missing parameter + 'validation_error': ExchangeError, // 400 Unable to validate POST/PUT + 'invalid_request': ExchangeError, // 400 Invalid request + 'personal_details_required': AuthenticationError, // 400 User’s personal detail required to complete this request + 'identity_verification_required': AuthenticationError, // 400 Identity verification is required to complete this request + 'jumio_verification_required': AuthenticationError, // 400 Document verification is required to complete this request + 'jumio_face_match_verification_required': AuthenticationError, // 400 Document verification including face match is required to complete this request + 'unverified_email': AuthenticationError, // 400 User has not verified their email + 'authentication_error': AuthenticationError, // 401 Invalid auth (generic) + 'invalid_token': AuthenticationError, // 401 Invalid Oauth token + 'revoked_token': AuthenticationError, // 401 Revoked Oauth token + 'expired_token': AuthenticationError, // 401 Expired Oauth token + 'invalid_scope': AuthenticationError, // 403 User hasn’t authenticated necessary scope + 'not_found': ExchangeError, // 404 Resource not found + 'rate_limit_exceeded': RateLimitExceeded, // 429 Rate limit exceeded + 'internal_server_error': ExchangeError, // 500 Internal server error + }, + 'broad': { + 'request timestamp expired': InvalidNonce, // {"errors":[{"id":"authentication_error","message":"request timestamp expired"}]} + }, }, 'commonCurrencies': { 'CGLD': 'CELO', @@ -46444,7 +48386,11 @@ module.exports = class coinbase extends Exchange { } async fetchAccounts (params = {}) { - const response = await this.privateGetAccounts (params); + await this.loadMarkets (); + const request = { + 'limit': 100, + }; + const response = await this.privateGetAccounts (this.extend (request, params)); // // { // "id": "XLM", @@ -46975,7 +48921,10 @@ module.exports = class coinbase extends Exchange { async fetchBalance (params = {}) { await this.loadMarkets (); - const response = await this.privateGetAccounts (params); + const request = { + 'limit': 100, + }; + const response = await this.privateGetAccounts (this.extend (request, params)); const balances = this.safeValue (response, 'data'); const accounts = this.safeValue (params, 'type', this.options['accounts']); const result = { 'info': response }; @@ -47447,7 +49396,9 @@ module.exports = class coinbase extends Exchange { // let errorCode = this.safeString (response, 'error'); if (errorCode !== undefined) { - this.throwExactlyMatchedException (this.exceptions, errorCode, feedback); + const errorMessage = this.safeString (response, 'error_description'); + this.throwExactlyMatchedException (this.exceptions['exact'], errorCode, feedback); + this.throwBroadlyMatchedException (this.exceptions['broad'], errorMessage, feedback); throw new ExchangeError (feedback); } const errors = this.safeValue (response, 'errors'); @@ -47456,8 +49407,10 @@ module.exports = class coinbase extends Exchange { const numErrors = errors.length; if (numErrors > 0) { errorCode = this.safeString (errors[0], 'id'); + const errorMessage = this.safeString (errors[0], 'message'); if (errorCode !== undefined) { - this.throwExactlyMatchedException (this.exceptions, errorCode, feedback); + this.throwExactlyMatchedException (this.exceptions['exact'], errorCode, feedback); + this.throwBroadlyMatchedException (this.exceptions['broad'], errorMessage, feedback); throw new ExchangeError (feedback); } } @@ -47471,7 +49424,7 @@ module.exports = class coinbase extends Exchange { }; -},{"./base/Exchange":5,"./base/errors":7}],61:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],62:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -47504,7 +49457,7 @@ module.exports = class coinbaseprime extends coinbasepro { } }; -},{"./coinbasepro.js":62}],62:[function(require,module,exports){ +},{"./coinbasepro.js":63}],63:[function(require,module,exports){ 'use strict'; // ---------------------------------------------------------------------------- @@ -47852,6 +49805,7 @@ module.exports = class coinbasepro extends Exchange { } async fetchAccounts (params = {}) { + await this.loadMarkets (); const response = await this.privateGetAccounts (params); // // [ @@ -48030,12 +49984,20 @@ module.exports = class coinbasepro extends Exchange { // trade_id: 82047307, // maker_order_id: '0f358725-2134-435e-be11-753912a326e0', // taker_order_id: '252b7002-87a3-425c-ac73-f5b9e23f3caf', + // order_id: 'd50ec984-77a8-460a-b958-66f114b0de9b', // side: 'sell', // size: '0.00513192', // price: '9314.78', // product_id: 'BTC-USD', + // profile_id: '6244401d-c078-40d9-b305-7ad3551bc3b0', // sequence: 12038915443, // time: '2020-01-31T20:03:41.158814Z' + // created_at: '2014-11-07T22:19:28.578544Z', + // liquidity: 'T', + // fee: '0.00025', + // settled: true, + // usd_volume: '0.0924556000000000', + // user_id: '595eb864313c2b02ddf2937d' // } // const timestamp = this.parse8601 (this.safeString2 (trade, 'time', 'created_at')); @@ -48044,10 +50006,15 @@ module.exports = class coinbasepro extends Exchange { let feeRate = undefined; let feeCurrency = undefined; let takerOrMaker = undefined; + let cost = undefined; if (market !== undefined) { + const feeCurrencyId = this.safeStringLower (market, 'quoteId'); + const costField = feeCurrencyId + '_value'; + cost = this.safeFloat (trade, costField); feeCurrency = market['quote']; - if ('liquidity' in trade) { - takerOrMaker = (trade['liquidity'] === 'T') ? 'taker' : 'maker'; + const liquidity = this.safeString (trade, 'liquidity'); + if (liquidity !== undefined) { + takerOrMaker = (liquidity === 'T') ? 'taker' : 'maker'; feeRate = market[takerOrMaker]; } } @@ -48067,6 +50034,9 @@ module.exports = class coinbasepro extends Exchange { } const price = this.safeFloat (trade, 'price'); const amount = this.safeFloat (trade, 'size'); + if (cost === undefined) { + cost = amount * price; + } return { 'id': id, 'order': orderId, @@ -48080,14 +50050,14 @@ module.exports = class coinbasepro extends Exchange { 'price': price, 'amount': amount, 'fee': fee, - 'cost': price * amount, + 'cost': cost, }; } async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { // as of 2018-08-23 if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -48107,6 +50077,9 @@ module.exports = class coinbasepro extends Exchange { const request = { 'id': market['id'], // fixes issue #2 }; + if (limit !== undefined) { + request['limit'] = limit; // default 100 + } const response = await this.publicGetProductsIdTrades (this.extend (request, params)); return this.parseTrades (response, market, since, limit); } @@ -48183,6 +50156,27 @@ module.exports = class coinbasepro extends Exchange { } parseOrder (order, market = undefined) { + // + // createOrder + // + // { + // "id": "d0c5340b-6d6c-49d9-b567-48c4bfca13d2", + // "price": "0.10000000", + // "size": "0.01000000", + // "product_id": "BTC-USD", + // "side": "buy", + // "stp": "dc", + // "type": "limit", + // "time_in_force": "GTC", + // "post_only": false, + // "created_at": "2016-12-08T20:02:28.53864Z", + // "fill_fees": "0.0000000000000000", + // "filled_size": "0.00000000", + // "executed_value": "0.0000000000000000", + // "status": "pending", + // "settled": false + // } + // const timestamp = this.parse8601 (this.safeString (order, 'created_at')); const marketId = this.safeString (order, 'product_id'); market = this.safeMarket (marketId, market, '-'); @@ -48213,9 +50207,13 @@ module.exports = class coinbasepro extends Exchange { const id = this.safeString (order, 'id'); const type = this.safeString (order, 'type'); const side = this.safeString (order, 'side'); + const timeInForce = this.safeString (order, 'time_in_force'); + const postOnly = this.safeValue (order, 'post_only'); + const stopPrice = this.safeFloat (order, 'stop_price'); + const clientOrderId = this.safeString (order, 'client_oid'); return { 'id': id, - 'clientOrderId': undefined, + 'clientOrderId': clientOrderId, 'info': order, 'timestamp': timestamp, 'datetime': this.iso8601 (timestamp), @@ -48223,10 +50221,11 @@ module.exports = class coinbasepro extends Exchange { 'status': status, 'symbol': market['symbol'], 'type': type, - 'timeInForce': undefined, + 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, - 'stopPrice': undefined, + 'stopPrice': stopPrice, 'cost': cost, 'amount': amount, 'filled': filled, @@ -48239,10 +50238,18 @@ module.exports = class coinbasepro extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { await this.loadMarkets (); - const request = { - 'id': id, - }; - const response = await this.privateGetOrdersId (this.extend (request, params)); + const request = {}; + const clientOrderId = this.safeString2 (params, 'clientOrderId', 'client_oid'); + let method = undefined; + if (clientOrderId === undefined) { + method = 'privateGetOrdersId'; + request['id'] = id; + } else { + method = 'privateGetOrdersClientClientOid'; + request['client_oid'] = clientOrderId; + params = this.omit (params, [ 'clientOrderId', 'client_oid' ]); + } + const response = await this[method] (this.extend (request, params)); return this.parseOrder (response); } @@ -48260,17 +50267,10 @@ module.exports = class coinbasepro extends Exchange { } async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); const request = { 'status': 'all', }; - let market = undefined; - if (symbol !== undefined) { - market = this.market (symbol); - request['product_id'] = market['id']; - } - const response = await this.privateGetOrders (this.extend (request, params)); - return this.parseOrders (response, market, since, limit); + return await this.fetchOpenOrders (symbol, since, limit, this.extend (request, params)); } async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { @@ -48281,47 +50281,131 @@ module.exports = class coinbasepro extends Exchange { market = this.market (symbol); request['product_id'] = market['id']; } + if (limit !== undefined) { + request['limit'] = limit; // default 100 + } const response = await this.privateGetOrders (this.extend (request, params)); return this.parseOrders (response, market, since, limit); } async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); const request = { 'status': 'done', }; - let market = undefined; - if (symbol !== undefined) { - market = this.market (symbol); - request['product_id'] = market['id']; - } - const response = await this.privateGetOrders (this.extend (request, params)); - return this.parseOrders (response, market, since, limit); + return await this.fetchOpenOrders (symbol, since, limit, this.extend (request, params)); } async createOrder (symbol, type, side, amount, price = undefined, params = {}) { await this.loadMarkets (); - // let oid = this.nonce ().toString (); + const market = this.market (symbol); const request = { - 'product_id': this.marketId (symbol), - 'side': side, - 'size': this.amountToPrecision (symbol, amount), + // common params -------------------------------------------------- + // 'client_oid': clientOrderId, 'type': type, + 'side': side, + 'product_id': market['id'], + // 'size': this.amountToPrecision (symbol, amount), + // 'stp': 'dc', // self-trade prevention, dc = decrease and cancel, co = cancel oldest, cn = cancel newest, cb = cancel both + // 'stop': 'loss', // "loss" = stop loss below price, "entry" = take profit above price + // 'stop_price': this.priceToPrecision (symbol, price), + // limit order params --------------------------------------------- + // 'price': this.priceToPrecision (symbol, price), + // 'size': this.amountToPrecision (symbol, amount), + // 'time_in_force': 'GTC', // GTC, GTT, IOC, or FOK + // 'cancel_after' [optional]* min, hour, day, requires time_in_force to be GTT + // 'post_only': false, // invalid when time_in_force is IOC or FOK + // market order params -------------------------------------------- + // 'size': this.amountToPrecision (symbol, amount), + // 'funds': this.costToPrecision (symbol, amount), }; + const clientOrderId = this.safeString2 (params, 'clientOrderId', 'client_oid'); + if (clientOrderId !== undefined) { + request['client_oid'] = clientOrderId; + params = this.omit (params, [ 'clientOrderId', 'client_oid' ]); + } + const stopPrice = this.safeFloat2 (params, 'stopPrice', 'stop_price'); + if (stopPrice !== undefined) { + request['stop_price'] = this.priceToPrecision (symbol, stopPrice); + params = this.omit (params, [ 'stopPrice', 'stop_price' ]); + } + const timeInForce = this.safeString2 (params, 'timeInForce', 'time_in_force'); + if (timeInForce !== undefined) { + request['time_in_force'] = timeInForce; + params = this.omit (params, [ 'timeInForce', 'time_in_force' ]); + } if (type === 'limit') { request['price'] = this.priceToPrecision (symbol, price); + request['size'] = this.amountToPrecision (symbol, amount); + } else if (type === 'market') { + let cost = this.safeFloat2 (params, 'cost', 'funds'); + if (cost === undefined) { + if (price !== undefined) { + cost = amount * price; + } + } else { + params = this.omit (params, [ 'cost', 'funds' ]); + } + if (cost !== undefined) { + request['funds'] = this.costToPrecision (symbol, cost); + } else { + request['size'] = this.amountToPrecision (symbol, amount); + } } const response = await this.privatePostOrders (this.extend (request, params)); - return this.parseOrder (response); + // + // { + // "id": "d0c5340b-6d6c-49d9-b567-48c4bfca13d2", + // "price": "0.10000000", + // "size": "0.01000000", + // "product_id": "BTC-USD", + // "side": "buy", + // "stp": "dc", + // "type": "limit", + // "time_in_force": "GTC", + // "post_only": false, + // "created_at": "2016-12-08T20:02:28.53864Z", + // "fill_fees": "0.0000000000000000", + // "filled_size": "0.00000000", + // "executed_value": "0.0000000000000000", + // "status": "pending", + // "settled": false + // } + // + return this.parseOrder (response, market); } async cancelOrder (id, symbol = undefined, params = {}) { await this.loadMarkets (); - return await this.privateDeleteOrdersId ({ 'id': id }); + const request = { + // 'product_id': market['id'], // the request will be more performant if you include it + }; + const clientOrderId = this.safeString2 (params, 'clientOrderId', 'client_oid'); + let method = undefined; + if (clientOrderId === undefined) { + method = 'privateDeleteOrdersId'; + request['id'] = id; + } else { + method = 'privateDeleteOrdersClientClientOid'; + request['client_oid'] = clientOrderId; + params = this.omit (params, [ 'clientOrderId', 'client_oid' ]); + } + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['product_id'] = market['symbol']; // the request will be more performant if you include it + } + return await this[method] (this.extend (request, params)); } async cancelAllOrders (symbol = undefined, params = {}) { - return await this.privateDeleteOrders (params); + await this.loadMarkets (); + const request = {}; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['product_id'] = market['symbol']; // the request will be more performant if you include it + } + return await this.privateDeleteOrders (this.extend (request, params)); } calculateFee (symbol, type, side, amount, price, takerOrMaker = 'taker', params = {}) { @@ -48387,6 +50471,9 @@ module.exports = class coinbasepro extends Exchange { } else { method += 'Crypto'; request['crypto_address'] = address; + if (tag !== undefined) { + request['destination_tag'] = tag; + } } const response = await this[method] (this.extend (request, params)); if (!response) { @@ -48472,7 +50559,7 @@ module.exports = class coinbasepro extends Exchange { const currencyId = this.safeString (transaction, 'currency'); const code = this.safeCurrencyCode (currencyId, currency); const status = this.parseTransactionStatus (transaction); - const amount = this.safeFloat (transaction, 'amount'); + let amount = this.safeFloat (transaction, 'amount'); let type = this.safeString (transaction, 'type'); let address = this.safeString (details, 'crypto_address'); const tag = this.safeString (details, 'destination_tag'); @@ -48483,9 +50570,12 @@ module.exports = class coinbasepro extends Exchange { address = this.safeString (details, 'sent_to_address', address); const feeCost = this.safeFloat (details, 'fee'); if (feeCost !== undefined) { + if (amount !== undefined) { + amount -= feeCost; + } fee = { 'cost': feeCost, - 'code': code, + 'currency': code, }; } } @@ -48592,7 +50682,7 @@ module.exports = class coinbasepro extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],63:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],64:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -48676,10 +50766,11 @@ module.exports = class coincheck extends Exchange { 'markets': { 'BTC/JPY': { 'id': 'btc_jpy', 'symbol': 'BTC/JPY', 'base': 'BTC', 'quote': 'JPY', 'baseId': 'btc', 'quoteId': 'jpy' }, // the only real pair // 'ETH/JPY': { 'id': 'eth_jpy', 'symbol': 'ETH/JPY', 'base': 'ETH', 'quote': 'JPY', 'baseId': 'eth', 'quoteId': 'jpy' }, - // 'ETC/JPY': { 'id': 'etc_jpy', 'symbol': 'ETC/JPY', 'base': 'ETC', 'quote': 'JPY', 'baseId': 'etc', 'quoteId': 'jpy' }, + 'ETC/JPY': { 'id': 'etc_jpy', 'symbol': 'ETC/JPY', 'base': 'ETC', 'quote': 'JPY', 'baseId': 'etc', 'quoteId': 'jpy' }, // 'DAO/JPY': { 'id': 'dao_jpy', 'symbol': 'DAO/JPY', 'base': 'DAO', 'quote': 'JPY', 'baseId': 'dao', 'quoteId': 'jpy' }, // 'LSK/JPY': { 'id': 'lsk_jpy', 'symbol': 'LSK/JPY', 'base': 'LSK', 'quote': 'JPY', 'baseId': 'lsk', 'quoteId': 'jpy' }, - // 'FCT/JPY': { 'id': 'fct_jpy', 'symbol': 'FCT/JPY', 'base': 'FCT', 'quote': 'JPY', 'baseId': 'fct', 'quoteId': 'jpy' }, + 'FCT/JPY': { 'id': 'fct_jpy', 'symbol': 'FCT/JPY', 'base': 'FCT', 'quote': 'JPY', 'baseId': 'fct', 'quoteId': 'jpy' }, + 'MONA/JPY': { 'id': 'mona_jpy', 'symbol': 'MONA/JPY', 'base': 'MONA', 'quote': 'JPY', 'baseId': 'mona', 'quoteId': 'jpy' }, // 'XMR/JPY': { 'id': 'xmr_jpy', 'symbol': 'XMR/JPY', 'base': 'XMR', 'quote': 'JPY', 'baseId': 'xmr', 'quoteId': 'jpy' }, // 'REP/JPY': { 'id': 'rep_jpy', 'symbol': 'REP/JPY', 'base': 'REP', 'quote': 'JPY', 'baseId': 'rep', 'quoteId': 'jpy' }, // 'XRP/JPY': { 'id': 'xrp_jpy', 'symbol': 'XRP/JPY', 'base': 'XRP', 'quote': 'JPY', 'baseId': 'xrp', 'quoteId': 'jpy' }, @@ -48688,7 +50779,7 @@ module.exports = class coincheck extends Exchange { // 'LTC/JPY': { 'id': 'ltc_jpy', 'symbol': 'LTC/JPY', 'base': 'LTC', 'quote': 'JPY', 'baseId': 'ltc', 'quoteId': 'jpy' }, // 'DASH/JPY': { 'id': 'dash_jpy', 'symbol': 'DASH/JPY', 'base': 'DASH', 'quote': 'JPY', 'baseId': 'dash', 'quoteId': 'jpy' }, // 'ETH/BTC': { 'id': 'eth_btc', 'symbol': 'ETH/BTC', 'base': 'ETH', 'quote': 'BTC', 'baseId': 'eth', 'quoteId': 'btc' }, - // 'ETC/BTC': { 'id': 'etc_btc', 'symbol': 'ETC/BTC', 'base': 'ETC', 'quote': 'BTC', 'baseId': 'etc', 'quoteId': 'btc' }, + 'ETC/BTC': { 'id': 'etc_btc', 'symbol': 'ETC/BTC', 'base': 'ETC', 'quote': 'BTC', 'baseId': 'etc', 'quoteId': 'btc' }, // 'LSK/BTC': { 'id': 'lsk_btc', 'symbol': 'LSK/BTC', 'base': 'LSK', 'quote': 'BTC', 'baseId': 'lsk', 'quoteId': 'btc' }, // 'FCT/BTC': { 'id': 'fct_btc', 'symbol': 'FCT/BTC', 'base': 'FCT', 'quote': 'BTC', 'baseId': 'fct', 'quoteId': 'btc' }, // 'XMR/BTC': { 'id': 'xmr_btc', 'symbol': 'XMR/BTC', 'base': 'XMR', 'quote': 'BTC', 'baseId': 'xmr', 'quoteId': 'btc' }, @@ -48792,6 +50883,7 @@ module.exports = class coincheck extends Exchange { 'side': side, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'status': status, 'symbol': symbol, 'price': price, @@ -48805,11 +50897,12 @@ module.exports = class coincheck extends Exchange { } async fetchOrderBook (symbol, limit = undefined, params = {}) { - if (symbol !== 'BTC/JPY') { - throw new BadSymbol (this.id + ' fetchOrderBook () supports BTC/JPY only'); - } await this.loadMarkets (); - const response = await this.publicGetOrderBooks (params); + const market = this.market (symbol); + const request = { + 'pair': market['id'], + }; + const response = await this.publicGetOrderBooks (this.extend (request, params)); return this.parseOrderBook (response); } @@ -48818,7 +50911,11 @@ module.exports = class coincheck extends Exchange { throw new BadSymbol (this.id + ' fetchTicker () supports BTC/JPY only'); } await this.loadMarkets (); - const ticker = await this.publicGetTicker (params); + const market = this.market (symbol); + const request = { + 'pair': market['id'], + }; + const ticker = await this.publicGetTicker (this.extend (request, params)); const timestamp = this.safeTimestamp (ticker, 'timestamp'); const last = this.safeFloat (ticker, 'last'); return { @@ -48932,9 +51029,6 @@ module.exports = class coincheck extends Exchange { } async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { - if (symbol !== 'BTC/JPY') { - throw new BadSymbol (this.id + ' fetchTrades () supports BTC/JPY only'); - } await this.loadMarkets (); const market = this.market (symbol); const request = { @@ -49024,7 +51118,7 @@ module.exports = class coincheck extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],64:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],65:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -49181,6 +51275,7 @@ module.exports = class coinegg extends Exchange { }, 'commonCurrencies': { 'JBC': 'JubaoCoin', + 'SBTC': 'Super Bitcoin', }, }); } @@ -49394,6 +51489,7 @@ module.exports = class coinegg extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -49541,7 +51637,7 @@ module.exports = class coinegg extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],65:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],66:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -49636,6 +51732,8 @@ module.exports = class coinex extends Exchange { 'order/status', 'order/status/batch', 'order/user/deals', + 'sub_account/balance', + 'sub_account/transfer/history', ], 'post': [ 'balance/coin/withdraw', @@ -50043,6 +52141,7 @@ module.exports = class coinex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -50106,7 +52205,7 @@ module.exports = class coinex extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -50303,7 +52402,7 @@ module.exports = class coinex extends Exchange { const timestamp = this.safeTimestamp (transaction, 'create_time'); const type = ('coin_withdraw_id' in transaction) ? 'withdraw' : 'deposit'; const status = this.parseTransactionStatus (this.safeString (transaction, 'status')); - const amount = this.safeFloat (transaction, 'amount'); + let amount = this.safeFloat (transaction, 'amount'); let feeCost = this.safeFloat (transaction, 'tx_fee'); if (type === 'deposit') { feeCost = 0; @@ -50312,6 +52411,10 @@ module.exports = class coinex extends Exchange { 'cost': feeCost, 'currency': code, }; + // https://github.com/ccxt/ccxt/issues/8321 + if (amount !== undefined) { + amount = amount - feeCost; + } return { 'info': transaction, 'id': id, @@ -50331,7 +52434,7 @@ module.exports = class coinex extends Exchange { async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchWithdrawals requires a currency code argument'); + throw new ArgumentsRequired (this.id + ' fetchWithdrawals() requires a currency code argument'); } await this.loadMarkets (); const currency = this.currency (code); @@ -50389,7 +52492,7 @@ module.exports = class coinex extends Exchange { async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchDeposits requires a currency code argument'); + throw new ArgumentsRequired (this.id + ' fetchDeposits() requires a currency code argument'); } await this.loadMarkets (); const currency = this.currency (code); @@ -50454,7 +52557,7 @@ module.exports = class coinex extends Exchange { 'tonce': nonce.toString (), }, query); query = this.keysort (query); - const urlencoded = this.urlencode (query); + const urlencoded = this.rawencode (query); const signature = this.hash (this.encode (urlencoded + '&secret_key=' + this.secret)); headers = { 'Authorization': signature.toUpperCase (), @@ -50491,7 +52594,7 @@ module.exports = class coinex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],66:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],67:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -50711,7 +52814,7 @@ module.exports = class coinfalcon extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -50814,6 +52917,7 @@ module.exports = class coinfalcon extends Exchange { type = type[0]; } const side = this.safeString (order, 'order_type'); + const postOnly = this.safeValue (order, 'post_only'); return { 'id': this.safeString (order, 'id'), 'clientOrderId': undefined, @@ -50823,6 +52927,7 @@ module.exports = class coinfalcon extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': undefined, @@ -50945,7 +53050,7 @@ module.exports = class coinfalcon extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],67:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],68:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -50975,7 +53080,7 @@ module.exports = class coinfloor extends Exchange { }, 'urls': { 'logo': 'https://user-images.githubusercontent.com/51840849/87153925-ef265e80-c2c0-11ea-91b5-020c804b90e0.jpg', - 'api': 'https://webapi.coinfloor.co.uk/bist', + 'api': 'https://webapi.coinfloor.co.uk/v2/bist', 'www': 'https://www.coinfloor.co.uk', 'doc': [ 'https://github.com/coinfloor/api', @@ -51038,7 +53143,7 @@ module.exports = class coinfloor extends Exchange { market = this.markets_by_id[marketId]; } if (market === undefined) { - throw new ArgumentsRequired (this.id + ' fetchBalance requires a symbol param'); + throw new ArgumentsRequired (this.id + ' fetchBalance() requires a symbol param'); } const request = { 'id': market['id'], @@ -51171,7 +53276,7 @@ module.exports = class coinfloor extends Exchange { if (code !== undefined) { market = this.market (code); if (market === undefined) { - throw new ArgumentsRequired (this.id + ' fetchTransactions requires a code argument (a market symbol)'); + throw new ArgumentsRequired (this.id + ' fetchTransactions() requires a code argument (a market symbol)'); } } const request = { @@ -51379,7 +53484,7 @@ module.exports = class coinfloor extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -51428,6 +53533,7 @@ module.exports = class coinfloor extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -51443,7 +53549,7 @@ module.exports = class coinfloor extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol param'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol param'); } await this.loadMarkets (); const market = this.market (symbol); @@ -51497,7 +53603,7 @@ module.exports = class coinfloor extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],68:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],69:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -51847,7 +53953,7 @@ module.exports = class coingi extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],69:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],70:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -52000,6 +54106,8 @@ module.exports = class coinmarketcap extends Exchange { // https://github.com/ccxt/ccxt/issues/6081 // https://github.com/ccxt/ccxt/issues/3365 // https://github.com/ccxt/ccxt/issues/2873 + 'SBTCT': 'SiamBitcoin', // conflict with sBTC + 'Super Bitcoin': 'Super Bitcoin', // conflict with sBTC 'TerraCredit': 'TerraCredit', // conflict with CREDIT (PROXI) 'Themis': 'Themis', // conflict with GET (Guaranteed Entrance Token, GET Protocol) 'UNI COIN': 'UNI COIN', // conflict with UNI (Uniswap) @@ -52194,7 +54302,7 @@ module.exports = class coinmarketcap extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],70:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],71:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -52726,7 +54834,7 @@ module.exports = class coinmate extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -52838,6 +54946,7 @@ module.exports = class coinmate extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -52955,7 +55064,7 @@ module.exports = class coinmate extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],71:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],72:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -53331,7 +55440,7 @@ module.exports = class coinone extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -53476,6 +55585,7 @@ module.exports = class coinone extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -53525,7 +55635,7 @@ module.exports = class coinone extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -53560,14 +55670,14 @@ module.exports = class coinone extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { // eslint-disable-next-line quotes - throw new ArgumentsRequired (this.id + " cancelOrder requires a symbol argument. To cancel the order, pass a symbol argument and {'price': 12345, 'qty': 1.2345, 'is_ask': 0} in the params argument of cancelOrder."); + throw new ArgumentsRequired (this.id + " cancelOrder() requires a symbol argument. To cancel the order, pass a symbol argument and {'price': 12345, 'qty': 1.2345, 'is_ask': 0} in the params argument of cancelOrder."); } const price = this.safeFloat (params, 'price'); const qty = this.safeFloat (params, 'qty'); const isAsk = this.safeInteger (params, 'is_ask'); if ((price === undefined) || (qty === undefined) || (isAsk === undefined)) { // eslint-disable-next-line quotes - throw new ArgumentsRequired (this.id + " cancelOrder requires {'price': 12345, 'qty': 1.2345, 'is_ask': 0} in the params argument."); + throw new ArgumentsRequired (this.id + " cancelOrder() requires {'price': 12345, 'qty': 1.2345, 'is_ask': 0} in the params argument."); } await this.loadMarkets (); const request = { @@ -53638,13 +55748,13 @@ module.exports = class coinone extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],72:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],73:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { ExchangeError, AuthenticationError, NotSupported } = require ('./base/errors'); +const { ExchangeError, ArgumentsRequired, AuthenticationError } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -53711,27 +55821,72 @@ module.exports = class coinspot extends Exchange { }, 'markets': { 'BTC/AUD': { 'id': 'btc', 'symbol': 'BTC/AUD', 'base': 'BTC', 'quote': 'AUD', 'baseId': 'btc', 'quoteId': 'aud' }, + 'ETH/AUD': { 'id': 'eth', 'symbol': 'ETH/AUD', 'base': 'ETH', 'quote': 'AUD', 'baseId': 'eth', 'quoteId': 'aud' }, + 'XRP/AUD': { 'id': 'xrp', 'symbol': 'XRP/AUD', 'base': 'XRP', 'quote': 'AUD', 'baseId': 'xrp', 'quoteId': 'aud' }, 'LTC/AUD': { 'id': 'ltc', 'symbol': 'LTC/AUD', 'base': 'LTC', 'quote': 'AUD', 'baseId': 'ltc', 'quoteId': 'aud' }, 'DOGE/AUD': { 'id': 'doge', 'symbol': 'DOGE/AUD', 'base': 'DOGE', 'quote': 'AUD', 'baseId': 'doge', 'quoteId': 'aud' }, + 'RFOX/AUD': { 'id': 'rfox', 'symbol': 'RFOX/AUD', 'base': 'RFOX', 'quote': 'AUD', 'baseId': 'rfox', 'quoteId': 'aud' }, + 'POWR/AUD': { 'id': 'powr', 'symbol': 'POWR/AUD', 'base': 'POWR', 'quote': 'AUD', 'baseId': 'powr', 'quoteId': 'aud' }, + 'NEO/AUD': { 'id': 'neo', 'symbol': 'NEO/AUD', 'base': 'NEO', 'quote': 'AUD', 'baseId': 'neo', 'quoteId': 'aud' }, + 'TRX/AUD': { 'id': 'trx', 'symbol': 'TRX/AUD', 'base': 'TRX', 'quote': 'AUD', 'baseId': 'trx', 'quoteId': 'aud' }, + 'EOS/AUD': { 'id': 'eos', 'symbol': 'EOS/AUD', 'base': 'EOS', 'quote': 'AUD', 'baseId': 'eos', 'quoteId': 'aud' }, + 'XLM/AUD': { 'id': 'xlm', 'symbol': 'XLM/AUD', 'base': 'XLM', 'quote': 'AUD', 'baseId': 'xlm', 'quoteId': 'aud' }, + 'RHOC/AUD': { 'id': 'rhoc', 'symbol': 'RHOC/AUD', 'base': 'RHOC', 'quote': 'AUD', 'baseId': 'rhoc', 'quoteId': 'aud' }, + 'GAS/AUD': { 'id': 'gas', 'symbol': 'GAS/AUD', 'base': 'GAS', 'quote': 'AUD', 'baseId': 'gas', 'quoteId': 'aud' }, }, 'commonCurrencies': { 'DRK': 'DASH', }, + 'options': { + 'fetchBalance': 'private_post_my_balances', + }, }); } async fetchBalance (params = {}) { await this.loadMarkets (); - const response = await this.privatePostMyBalances (params); + const method = this.safeString (this.options, 'fetchBalance', 'private_post_my_balances'); + const response = await this[method] (params); + // + // read-write api keys + // + // ... + // + // read-only api keys + // + // { + // "status":"ok", + // "balances":[ + // { + // "LTC":{"balance":0.1,"audbalance":16.59,"rate":165.95} + // } + // ] + // } + // const result = { 'info': response }; - const balances = this.safeValue (response, 'balance', {}); - const currencyIds = Object.keys (balances); - for (let i = 0; i < currencyIds.length; i++) { - const currencyId = currencyIds[i]; - const code = this.safeCurrencyCode (currencyId); - const account = this.account (); - account['total'] = this.safeFloat (balances, currencyId); - result[code] = account; + const balances = this.safeValue2 (response, 'balance', 'balances'); + if (Array.isArray (balances)) { + for (let i = 0; i < balances.length; i++) { + const currencies = balances[i]; + const currencyIds = Object.keys (currencies); + for (let j = 0; j < currencyIds.length; j++) { + const currencyId = currencyIds[j]; + const balance = currencies[currencyId]; + const code = this.safeCurrencyCode (currencyId); + const account = this.account (); + account['total'] = this.safeFloat (balance, 'balance'); + result[code] = account; + } + } + } else { + const currencyIds = Object.keys (balances); + for (let i = 0; i < currencyIds.length; i++) { + const currencyId = currencyIds[i]; + const code = this.safeCurrencyCode (currencyId); + const account = this.account (); + account['total'] = this.safeFloat (balances, currencyId); + result[code] = account; + } } return this.parseBalance (result); } @@ -53851,9 +56006,16 @@ module.exports = class coinspot extends Exchange { } async cancelOrder (id, symbol = undefined, params = {}) { - throw new NotSupported (this.id + ' cancelOrder () is not fully implemented yet'); - // let method = 'privatePostMyBuy'; - // return await this[method] ({ 'id': id }); + const side = this.safeString (params, 'side'); + if (side !== 'buy' && side !== 'sell') { + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a side parameter, "buy" or "sell"'); + } + params = this.omit (params, 'side'); + const method = 'privatePostMy' + this.capitalize (side) + 'Cancel'; + const request = { + 'id': id, + }; + return await this[method] (this.extend (request, params)); } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { @@ -53875,7 +56037,7 @@ module.exports = class coinspot extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],73:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],74:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -54011,6 +56173,7 @@ module.exports = class crex24 extends Exchange { 'GHOST': 'GHOSTPRISM', 'IQ': 'IQ.Cash', 'PUT': 'PutinCoin', + 'SBTC': 'SBTCT', // SiamBitcoin 'UNI': 'Universe', 'YOYO': 'YOYOW', }, @@ -54036,6 +56199,7 @@ module.exports = class crex24 extends Exchange { "Parameter 'instrument' contains invalid value.": BadSymbol, }, 'broad': { + 'try again later': ExchangeNotAvailable, // {"errorDescription":"Failed to process the request. Please, try again later."} 'API Key': AuthenticationError, // "API Key '9edc48de-d5b0-4248-8e7e-f59ffcd1c7f1' doesn't exist." 'Insufficient funds': InsufficientFunds, // "Insufficient funds: new order requires 10 ETH which is more than the available balance." 'has been delisted.': BadSymbol, // {"errorDescription":"Instrument '$PAC-BTC' has been delisted."} @@ -54635,14 +56799,14 @@ module.exports = class crex24 extends Exchange { } if (priceIsRequired) { if (price === undefined) { - throw new InvalidOrder (this.id + ' createOrder method requires a price argument for a ' + type + ' order'); + throw new InvalidOrder (this.id + ' createOrder() requires a price argument for a ' + type + ' order'); } request['price'] = this.priceToPrecision (symbol, price); } if (stopPriceIsRequired) { const stopPrice = this.safeFloat (params, 'stopPrice'); if (stopPrice === undefined) { - throw new InvalidOrder (this.id + ' createOrder method requires a stopPrice extra param for a ' + type + ' order'); + throw new InvalidOrder (this.id + ' createOrder() requires a stopPrice extra param for a ' + type + ' order'); } else { request['stopPrice'] = this.priceToPrecision (symbol, stopPrice); } @@ -55185,7 +57349,7 @@ module.exports = class crex24 extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],74:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],75:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -56104,7 +58268,7 @@ module.exports = class currencycom extends Exchange { if (market['margin']) { accountId = this.safeInteger (params, 'accountId'); if (accountId === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires an accountId parameter for ' + market['type'] + ' market ' + symbol); + throw new ArgumentsRequired (this.id + ' createOrder() requires an accountId parameter for ' + market['type'] + ' market ' + symbol); } } const uppercaseType = type.toUpperCase (); @@ -56165,7 +58329,7 @@ module.exports = class currencycom extends Exchange { const symbols = this.symbols; const numSymbols = symbols.length; const fetchOpenOrdersRateLimit = parseInt (numSymbols / 2); - throw new ExchangeError (this.id + ' fetchOpenOrders WARNING: fetching open orders without specifying a symbol is rate-limited to one call per ' + fetchOpenOrdersRateLimit.toString () + ' seconds. Do not call this method frequently to avoid ban. Set ' + this.id + '.options["warnOnFetchOpenOrdersWithoutSymbol"] = false to suppress this warning message.'); + throw new ExchangeError (this.id + ' fetchOpenOrders() WARNING: fetching open orders without specifying a symbol is rate-limited to one call per ' + fetchOpenOrdersRateLimit.toString () + ' seconds. Do not call this method frequently to avoid ban. Set ' + this.id + '.options["warnOnFetchOpenOrdersWithoutSymbol"] = false to suppress this warning message.'); } const response = await this.privateGetOpenOrders (this.extend (request, params)); return this.parseOrders (response, market, since, limit); @@ -56173,7 +58337,7 @@ module.exports = class currencycom extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -56208,7 +58372,7 @@ module.exports = class currencycom extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -56306,7 +58470,1492 @@ module.exports = class currencycom extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],75:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],76:[function(require,module,exports){ +'use strict'; + +// --------------------------------------------------------------------------- + +const Exchange = require ('./base/Exchange'); +const { ExchangeError, InsufficientFunds, BadRequest, BadSymbol, InvalidOrder, AuthenticationError, ArgumentsRequired, OrderNotFound, ExchangeNotAvailable } = require ('./base/errors'); +const { TICK_SIZE } = require ('./base/functions/number'); + +// --------------------------------------------------------------------------- + +module.exports = class delta extends Exchange { + describe () { + return this.deepExtend (super.describe (), { + 'id': 'delta', + 'name': 'Delta Exchange', + 'countries': [ 'VC' ], // Saint Vincent and the Grenadines + 'rateLimit': 300, + 'version': 'v2', + // new metainfo interface + 'has': { + 'cancelAllOrders': true, + 'cancelOrder': true, + 'createOrder': true, + 'editOrder': true, + 'fetchBalance': true, + 'fetchClosedOrders': true, + 'fetchDepositAddress': true, + 'fetchCurrencies': true, + 'fetchLedger': true, + 'fetchMarkets': true, + 'fetchMyTrades': true, + 'fetchOHLCV': true, + 'fetchOpenOrders': true, + 'fetchOrderBook': true, + 'fetchStatus': true, + 'fetchTicker': true, + 'fetchTickers': true, + 'fetchTime': true, + 'fetchTrades': true, + }, + 'timeframes': { + '1m': '1m', + '3m': '3m', + '5m': '5m', + '15m': '15m', + '30m': '30m', + '1h': '1h', + '2h': '2h', + '4h': '4h', + '6h': '6h', + '1d': '1d', + '7d': '7d', + '1w': '1w', + '2w': '2w', + '1M': '30d', + }, + 'urls': { + 'logo': 'https://user-images.githubusercontent.com/1294454/99450025-3be60a00-2931-11eb-9302-f4fd8d8589aa.jpg', + 'test': { + 'public': 'https://testnet-api.delta.exchange', + 'private': 'https://testnet-api.delta.exchange', + }, + 'api': { + 'public': 'https://api.delta.exchange', + 'private': 'https://api.delta.exchange', + }, + 'www': 'https://www.delta.exchange', + 'doc': [ + 'https://docs.delta.exchange', + ], + 'fees': 'https://www.delta.exchange/fees', + 'referral': 'https://www.delta.exchange/app/signup/?code=IULYNB', + }, + 'api': { + 'public': { + 'get': [ + 'assets', + 'settings', + 'indices', + 'products', + 'tickers', + 'tickers/{symbol}', + 'l2orderbook/{symbol}', + 'trades/{symbol}', + 'history/candles', + 'history/sparklines', + ], + }, + 'private': { + 'get': [ + 'orders', + 'orders/leverage', + 'positions', + 'positions/margined', + 'orders/history', + 'fills', + 'fills/history/download/csv', + 'wallet/balances', + 'wallet/transactions', + 'wallet/transactions/download', + 'deposits/address', + ], + 'post': [ + 'orders', + 'orders/batch', + 'orders/leverage', + 'positions/change_margin', + ], + 'put': [ + 'orders', + 'orders/batch', + ], + 'delete': [ + 'orders', + 'orders/all', + 'orders/batch', + ], + }, + }, + 'fees': { + 'trading': { + 'tierBased': true, + 'percentage': true, + 'taker': 0.15 / 100, + 'maker': 0.10 / 100, + 'tiers': { + 'taker': [ + [0, 0.15 / 100], + [100, 0.13 / 100], + [250, 0.13 / 100], + [1000, 0.1 / 100], + [5000, 0.09 / 100], + [10000, 0.075 / 100], + [20000, 0.065 / 100], + ], + 'maker': [ + [0, 0.1 / 100], + [100, 0.1 / 100], + [250, 0.09 / 100], + [1000, 0.075 / 100], + [5000, 0.06 / 100], + [10000, 0.05 / 100], + [20000, 0.05 / 100], + ], + }, + }, + }, + 'precisionMode': TICK_SIZE, + 'requiredCredentials': { + 'apiKey': true, + 'secret': false, + }, + 'exceptions': { + 'exact': { + // Margin required to place order with selected leverage and quantity is insufficient. + 'insufficient_margin': InsufficientFunds, // {"error":{"code":"insufficient_margin","context":{"available_balance":"0.000000000000000000","required_additional_balance":"1.618626000000000000000000000"}},"success":false} + 'order_size_exceed_available': InvalidOrder, // The order book doesn't have sufficient liquidity, hence the order couldnt be filled, for example, ioc orders + 'risk_limits_breached': BadRequest, // orders couldn't be placed as it will breach allowed risk limits. + 'invalid_contract': BadSymbol, // The contract/product is either doesn't exist or has already expired. + 'immediate_liquidation': InvalidOrder, // Order will cause immediate liquidation. + 'out_of_bankruptcy': InvalidOrder, // Order prices are out of position bankruptcy limits. + 'self_matching_disrupted_post_only': InvalidOrder, // Self matching is not allowed during auction. + 'immediate_execution_post_only': InvalidOrder, // orders couldn't be placed as it includes post only orders which will be immediately executed + 'bad_schema': BadRequest, // {"error":{"code":"bad_schema","context":{"schema_errors":[{"code":"validation_error","message":"id is required","param":""}]}},"success":false} + 'invalid_api_key': AuthenticationError, // {"success":false,"error":{"code":"invalid_api_key"}} + 'invalid_signature': AuthenticationError, // {"success":false,"error":{"code":"invalid_signature"}} + 'open_order_not_found': OrderNotFound, // {"error":{"code":"open_order_not_found"},"success":false} + 'unavailable': ExchangeNotAvailable, // {"error":{"code":"unavailable"},"success":false} + }, + 'broad': { + }, + }, + }); + } + + async fetchTime (params = {}) { + const response = await this.publicGetSettings (params); + // + // { + // "result":{ + // "server_time":1605472733766141, + // "deto_referral_mining_daily_reward":"25000", + // "deto_total_reward_pool":"100000000", + // "deto_trade_mining_daily_reward":"75000", + // "kyc_deposit_limit":"20", + // "kyc_withdrawal_limit":"2", + // "under_maintenance":"false" + // }, + // "success":true + // } + // + const result = this.safeValue (response, 'result', {}); + return this.safeIntegerProduct (result, 'server_time', 0.001); + } + + async fetchStatus (params = {}) { + const response = await this.publicGetSettings (params); + const result = this.safeValue (response, 'result', {}); + const underMaintenance = this.safeValue (result, 'under_maintenance'); + const status = (underMaintenance === 'true') ? 'maintenance' : 'ok'; + const updated = this.safeIntegerProduct (result, 'server_time', 0.001); + this.status = this.extend (this.status, { + 'status': status, + 'updated': updated, + }); + return this.status; + } + + async fetchCurrencies (params = {}) { + const response = await this.publicGetAssets (params); + // + // { + // "result":[ + // { + // "base_withdrawal_fee":"0.0005", + // "deposit_status":"enabled", + // "id":2, + // "interest_credit":true, + // "interest_slabs":[ + // {"limit":"0.1","rate":"0"}, + // {"limit":"1","rate":"0.05"}, + // {"limit":"5","rate":"0.075"}, + // {"limit":"10","rate":"0.1"}, + // {"limit":"9999999999999999","rate":"0"} + // ], + // "kyc_deposit_limit":"10", + // "kyc_withdrawal_limit":"2", + // "min_withdrawal_amount":"0.001", + // "minimum_precision":4, + // "name":"Bitcoin", + // "precision":8, + // "sort_priority":1, + // "symbol":"BTC", + // "variable_withdrawal_fee":"0", + // "withdrawal_status":"enabled" + // }, + // ], + // "success":true + // } + // + const currencies = this.safeValue (response, 'result', []); + const result = {}; + for (let i = 0; i < currencies.length; i++) { + const currency = currencies[i]; + const id = this.safeString (currency, 'symbol'); + const numericId = this.safeInteger (currency, 'id'); + const code = this.safeCurrencyCode (id); + const depositStatus = this.safeString (currency, 'deposit_status'); + const withdrawalStatus = this.safeString (currency, 'withdrawal_status'); + const depositsEnabled = (depositStatus === 'enabled'); + const withdrawalsEnabled = (withdrawalStatus === 'enabled'); + const active = depositsEnabled && withdrawalsEnabled; + const precision = this.safeInteger (currency, 'precision'); + result[code] = { + 'id': id, + 'numericId': numericId, + 'code': code, + 'name': this.safeString (currency, 'name'), + 'info': currency, // the original payload + 'active': active, + 'fee': this.safeFloat (currency, 'base_withdrawal_fee'), + 'precision': 1 / Math.pow (10, precision), + 'limits': { + 'amount': { 'min': undefined, 'max': undefined }, + 'price': { 'min': undefined, 'max': undefined }, + 'cost': { 'min': undefined, 'max': undefined }, + 'withdraw': { + 'min': this.safeFloat (currency, 'min_withdrawal_amount'), + 'max': undefined, + }, + }, + }; + } + return result; + } + + async loadMarkets (reload = false, params = {}) { + const markets = await super.loadMarkets (reload, params); + const currenciesByNumericId = this.safeValue (this.options, 'currenciesByNumericId'); + if ((currenciesByNumericId === undefined) || reload) { + this.options['currenciesByNumericId'] = this.indexBy (this.currencies, 'numericId'); + } + const marketsByNumericId = this.safeValue (this.options, 'marketsByNumericId'); + if ((marketsByNumericId === undefined) || reload) { + this.options['marketsByNumericId'] = this.indexBy (this.markets, 'numericId'); + } + return markets; + } + + async fetchMarkets (params = {}) { + const response = await this.publicGetProducts (params); + // + // { + // "meta":{ + // "after":null, + // "before":null, + // "limit":100, + // "total_count":81 + // }, + // "result":[ + // { + // "annualized_funding":"5.475000000000000000", + // "is_quanto":false, + // "ui_config":{ + // "default_trading_view_candle":"15", + // "leverage_slider_values":[1,3,5,10,25,50], + // "price_clubbing_values":[0.001,0.005,0.05,0.1,0.5,1,5], + // "show_bracket_orders":false, + // "sort_priority":29, + // "tags":[] + // }, + // "basis_factor_max_limit":"0.15", + // "symbol":"P-LINK-D-151120", + // "id":1584, + // "default_leverage":"5.000000000000000000", + // "maker_commission_rate":"0.0005", + // "contract_unit_currency":"LINK", + // "strike_price":"12.507948", + // "settling_asset":{ + // // asset structure + // }, + // "auction_start_time":null, + // "auction_finish_time":null, + // "settlement_time":"2020-11-15T12:00:00Z", + // "launch_time":"2020-11-14T11:55:05Z", + // "spot_index":{ + // // index structure + // }, + // "trading_status":"operational", + // "tick_size":"0.001", + // "position_size_limit":100000, + // "notional_type":"vanilla", // vanilla, inverse + // "price_band":"0.4", + // "barrier_price":null, + // "description":"Daily LINK PUT options quoted in USDT and settled in USDT", + // "insurance_fund_margin_contribution":"1", + // "quoting_asset":{ + // // asset structure + // }, + // "liquidation_penalty_factor":"0.2", + // "product_specs":{"max_volatility":3,"min_volatility":0.3,"spot_price_band":"0.40"}, + // "initial_margin_scaling_factor":"0.0001", + // "underlying_asset":{ + // // asset structure + // }, + // "state":"live", + // "contract_value":"1", + // "initial_margin":"2", + // "impact_size":5000, + // "settlement_price":null, + // "contract_type":"put_options", // put_options, call_options, move_options, perpetual_futures, interest_rate_swaps, futures, spreads + // "taker_commission_rate":"0.0005", + // "maintenance_margin":"1", + // "short_description":"LINK Daily PUT Options", + // "maintenance_margin_scaling_factor":"0.00005", + // "funding_method":"mark_price", + // "max_leverage_notional":"20000" + // }, + // ], + // "success":true + // } + // + const markets = this.safeValue (response, 'result', []); + const result = []; + for (let i = 0; i < markets.length; i++) { + const market = markets[i]; + let type = this.safeString (market, 'contract_type'); + // const settlingAsset = this.safeValue (market, 'settling_asset', {}); + const quotingAsset = this.safeValue (market, 'quoting_asset', {}); + const underlyingAsset = this.safeValue (market, 'underlying_asset', {}); + const baseId = this.safeString (underlyingAsset, 'symbol'); + const quoteId = this.safeString (quotingAsset, 'symbol'); + const id = this.safeString (market, 'symbol'); + const numericId = this.safeInteger (market, 'id'); + const base = this.safeCurrencyCode (baseId); + const quote = this.safeCurrencyCode (quoteId); + let symbol = id; + let swap = false; + let future = false; + let option = false; + if (type === 'perpetual_futures') { + type = 'swap'; + swap = true; + future = false; + option = false; + if (id.indexOf ('_') < 0) { + symbol = base + '/' + quote; + } + } else if ((type === 'call_options') || (type === 'put_options') || (type === 'move_options')) { + type = 'option'; + swap = false; + option = true; + future = false; + } else if (type === 'futures') { + type = 'future'; + swap = false; + option = false; + future = true; + } + const precision = { + 'amount': 1.0, // number of contracts + 'price': this.safeFloat (market, 'tick_size'), + }; + const limits = { + 'amount': { + 'min': 1.0, + 'max': this.safeFloat (market, 'position_size_limit'), + }, + 'price': { + 'min': precision['price'], + 'max': undefined, + }, + 'cost': { + 'min': this.safeFloat (market, 'min_size'), + 'max': undefined, + }, + }; + const state = this.safeString (market, 'state'); + const active = (state === 'live'); + const maker = this.safeFloat (market, 'maker_commission_rate'); + const taker = this.safeFloat (market, 'taker_commission_rate'); + result.push ({ + 'id': id, + 'numericId': numericId, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'baseId': baseId, + 'quoteId': quoteId, + 'type': type, + 'option': option, + 'swap': swap, + 'future': future, + 'maker': maker, + 'taker': taker, + 'precision': precision, + 'limits': limits, + 'info': market, + 'active': active, + }); + } + return result; + } + + parseTicker (ticker, market = undefined) { + // + // fetchTicker, fetchTickers + // + // { + // "close":15837.5, + // "high":16354, + // "low":15751.5, + // "mark_price":"15820.100867", + // "open":16140.5, + // "product_id":139, + // "size":640552, + // "spot_price":"15827.050000000001", + // "symbol":"BTCUSDT", + // "timestamp":1605373550208262, + // "turnover":10298630.3735, + // "turnover_symbol":"USDT", + // "turnover_usd":10298630.3735, + // "volume":640.5520000000001 + // } + // + const timestamp = this.safeIntegerProduct (ticker, 'timestamp', 0.001); + const marketId = this.safeString (ticker, 'symbol'); + const symbol = this.safeSymbol (marketId, market); + const last = this.safeFloat (ticker, 'close'); + const open = this.safeFloat (ticker, 'open'); + let change = undefined; + let average = undefined; + let percentage = undefined; + if ((open !== undefined) && (last !== undefined)) { + change = last - open; + average = this.sum (last, open) / 2; + if (open !== 0.0) { + percentage = (change / open) * 100; + } + } + const baseVolume = this.safeFloat (ticker, 'volume'); + const quoteVolume = this.safeFloat (ticker, 'turnover'); + const vwap = this.vwap (baseVolume, quoteVolume); + return { + 'symbol': symbol, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'high': this.safeFloat (ticker, 'high'), + 'low': this.safeFloat (ticker, 'low'), + 'bid': undefined, + 'bidVolume': undefined, + 'ask': undefined, + 'askVolume': undefined, + 'vwap': vwap, + 'open': open, + 'close': last, + 'last': last, + 'previousClose': undefined, + 'change': change, + 'percentage': percentage, + 'average': average, + 'baseVolume': baseVolume, + 'quoteVolume': quoteVolume, + 'info': ticker, + }; + } + + async fetchTicker (symbol, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'symbol': market['id'], + }; + const response = await this.publicGetTickersSymbol (this.extend (request, params)); + // + // { + // "result":{ + // "close":15837.5, + // "high":16354, + // "low":15751.5, + // "mark_price":"15820.100867", + // "open":16140.5, + // "product_id":139, + // "size":640552, + // "spot_price":"15827.050000000001", + // "symbol":"BTCUSDT", + // "timestamp":1605373550208262, + // "turnover":10298630.3735, + // "turnover_symbol":"USDT", + // "turnover_usd":10298630.3735, + // "volume":640.5520000000001 + // }, + // "success":true + // } + // + const result = this.safeValue (response, 'result', {}); + return this.parseTicker (result, market); + } + + async fetchTickers (symbols = undefined, params = {}) { + await this.loadMarkets (); + const response = await this.publicGetTickers (params); + // + // { + // "result":[ + // { + // "close":0.003966, + // "high":0.004032, + // "low":0.003606, + // "mark_price":"0.00396328", + // "open":0.003996, + // "product_id":1327, + // "size":6242, + // "spot_price":"0.0039555", + // "symbol":"AAVEBTC", + // "timestamp":1605374143864107, + // "turnover":23.997904999999996, + // "turnover_symbol":"BTC", + // "turnover_usd":387957.4544782897, + // "volume":6242 + // }, + // ], + // "success":true + // } + // + const tickers = this.safeValue (response, 'result', []); + const result = {}; + for (let i = 0; i < tickers.length; i++) { + const ticker = this.parseTicker (tickers[i]); + const symbol = ticker['symbol']; + result[symbol] = ticker; + } + return this.filterByArray (result, 'symbol', symbols); + } + + async fetchOrderBook (symbol, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + 'symbol': this.marketId (symbol), + }; + if (limit !== undefined) { + request['depth'] = limit; + } + const response = await this.publicGetL2orderbookSymbol (this.extend (request, params)); + // + // { + // "result":{ + // "buy":[ + // {"price":"15814.0","size":912}, + // {"price":"15813.5","size":1279}, + // {"price":"15813.0","size":1634}, + // ], + // "sell":[ + // {"price":"15814.5","size":625}, + // {"price":"15815.0","size":982}, + // {"price":"15815.5","size":1328}, + // ], + // "symbol":"BTCUSDT" + // }, + // "success":true + // } + // + const result = this.safeValue (response, 'result', {}); + return this.parseOrderBook (result, undefined, 'buy', 'sell', 'price', 'size'); + } + + parseTrade (trade, market = undefined) { + // + // public fetchTrades + // + // { + // "buyer_role":"maker", + // "price":"15896.5", + // "seller_role":"taker", + // "size":241, + // "symbol":"BTCUSDT", + // "timestamp":1605376684714595 + // } + // + // private fetchMyTrades + // + // { + // "commission":"0.008335000000000000", + // "created_at":"2020-11-16T19:07:19Z", + // "fill_type":"normal", + // "id":"e7ff05c233a74245b72381f8dd91d1ce", + // "meta_data":{ + // "effective_commission_rate":"0.0005", + // "order_price":"16249", + // "order_size":1, + // "order_type":"market_order", + // "order_unfilled_size":0, + // "trading_fee_credits_used":"0" + // }, + // "order_id":"152999629", + // "price":"16669", + // "product":{ + // "contract_type":"perpetual_futures", + // "contract_unit_currency":"BTC", + // "contract_value":"0.001", + // "id":139, + // "notional_type":"vanilla", + // "quoting_asset":{"minimum_precision":2,"precision":6,"symbol":"USDT"}, + // "settling_asset":{"minimum_precision":2,"precision":6,"symbol":"USDT"}, + // "symbol":"BTCUSDT", + // "tick_size":"0.5", + // "underlying_asset":{"minimum_precision":4,"precision":8,"symbol":"BTC"} + // }, + // "product_id":139, + // "role":"taker", + // "side":"sell", + // "size":1 + // } + // + const id = this.safeString (trade, 'id'); + const orderId = this.safeString (trade, 'order_id'); + let timestamp = this.parse8601 (this.safeString (trade, 'created_at')); + timestamp = this.safeIntegerProduct (trade, 'timestamp', 0.001, timestamp); + const price = this.safeFloat (trade, 'price'); + const amount = this.safeFloat (trade, 'size'); + let cost = undefined; + if ((amount !== undefined) && (price !== undefined)) { + cost = amount * price; + } + const product = this.safeValue (trade, 'product', {}); + const marketId = this.safeString (product, 'symbol'); + const symbol = this.safeSymbol (marketId, market); + const sellerRole = this.safeString (trade, 'seller_role'); + let side = this.safeString (trade, 'side'); + if (side === undefined) { + if (sellerRole === 'taker') { + side = 'sell'; + } else if (sellerRole === 'maker') { + side = 'buy'; + } + } + const takerOrMaker = this.safeString (trade, 'role'); + const metaData = this.safeValue (trade, 'meta_data', {}); + let type = this.safeString (metaData, 'order_type'); + if (type !== undefined) { + type = type.replace ('_order', ''); + } + const feeCost = this.safeFloat (trade, 'commission'); + let fee = undefined; + if (feeCost !== undefined) { + const settlingAsset = this.safeValue (product, 'settling_asset', {}); + const feeCurrencyId = this.safeString (settlingAsset, 'symbol'); + const feeCurrencyCode = this.safeCurrencyCode (feeCurrencyId); + fee = { + 'cost': feeCost, + 'currency': feeCurrencyCode, + }; + } + return { + 'id': id, + 'order': orderId, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'symbol': symbol, + 'type': type, + 'side': side, + 'price': price, + 'amount': amount, + 'cost': cost, + 'takerOrMaker': takerOrMaker, + 'fee': fee, + 'info': trade, + }; + } + + async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'symbol': market['id'], + }; + const response = await this.publicGetTradesSymbol (this.extend (request, params)); + // + // { + // "result":[ + // { + // "buyer_role":"maker", + // "price":"15896.5", + // "seller_role":"taker", + // "size":241, + // "symbol":"BTCUSDT", + // "timestamp":1605376684714595 + // } + // ], + // "success":true + // } + // + const result = this.safeValue (response, 'result', []); + return this.parseTrades (result, market, since, limit); + } + + parseOHLCV (ohlcv, market = undefined) { + // + // { + // "time":1605393120, + // "open":15989, + // "high":15989, + // "low":15987.5, + // "close":15987.5, + // "volume":565 + // } + // + return [ + this.safeTimestamp (ohlcv, 'time'), + this.safeFloat (ohlcv, 'open'), + this.safeFloat (ohlcv, 'high'), + this.safeFloat (ohlcv, 'low'), + this.safeFloat (ohlcv, 'close'), + this.safeFloat (ohlcv, 'volume'), + ]; + } + + async fetchOHLCV (symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'symbol': market['id'], + 'resolution': this.timeframes[timeframe], + }; + const duration = this.parseTimeframe (timeframe); + limit = limit ? limit : 2000; // max 2000 + if (since === undefined) { + const end = this.seconds (); + request['end'] = end; + request['start'] = end - limit * duration; + } else { + const start = parseInt (since / 1000); + request['start'] = start; + request['end'] = this.sum (start, limit * duration); + } + const response = await this.publicGetHistoryCandles (this.extend (request, params)); + // + // { + // "success":true, + // "result":[ + // {"time":1605393120,"open":15989,"high":15989,"low":15987.5,"close":15987.5,"volume":565}, + // {"time":1605393180,"open":15966,"high":15966,"low":15959,"close":15959,"volume":24}, + // {"time":1605393300,"open":15973,"high":15973,"low":15973,"close":15973,"volume":1288}, + // ] + // } + // + const result = this.safeValue (response, 'result', []); + return this.parseOHLCVs (result, market, timeframe, since, limit); + } + + async fetchBalance (params = {}) { + await this.loadMarkets (); + const response = await this.privateGetWalletBalances (params); + // + // { + // "result":[ + // { + // "asset_id":1, + // "available_balance":"0", + // "balance":"0", + // "commission":"0", + // "id":154883, + // "interest_credit":"0", + // "order_margin":"0", + // "pending_referral_bonus":"0", + // "pending_trading_fee_credit":"0", + // "position_margin":"0", + // "trading_fee_credit":"0", + // "user_id":22142 + // }, + // ], + // "success":true + // } + // + const balances = this.safeValue (response, 'result', []); + const result = { 'info': response }; + const currenciesByNumericId = this.safeValue (this.options, 'currenciesByNumericId', {}); + for (let i = 0; i < balances.length; i++) { + const balance = balances[i]; + const currencyId = this.safeString (balance, 'asset_id'); + const currency = this.safeValue (currenciesByNumericId, currencyId); + const code = (currency === undefined) ? currencyId : currency['code']; + const account = this.account (); + account['total'] = this.safeFloat (balance, 'balance'); + account['free'] = this.safeFloat (balance, 'available_balance'); + result[code] = account; + } + return this.parseBalance (result); + } + + async fetchPosition (symbol, params = undefined) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'product_id': market['numericId'], + }; + const response = await this.privateGetPositions (this.extend (request, params)); + // + // { + // "result":{ + // "entry_price":null, + // "size":0, + // "timestamp":1605454074268079 + // }, + // "success":true + // } + // + const result = this.safeValue (response, 'result', {}); + return result; + } + + async fetchPositions (symbols = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const response = await this.privateGetPositionsMargined (params); + // + // { + // "success": true, + // "result": [ + // { + // "user_id": 0, + // "size": 0, + // "entry_price": "string", + // "margin": "string", + // "liquidation_price": "string", + // "bankruptcy_price": "string", + // "adl_level": 0, + // "product_id": 0 + // } + // ] + // } + // + const result = this.safeValue (response, 'result', []); + return result; + } + + parseOrderStatus (status) { + const statuses = { + 'open': 'open', + 'pending': 'open', + 'closed': 'closed', + 'cancelled': 'canceled', + }; + return this.safeString (statuses, status, status); + } + + parseOrder (order, market = undefined) { + // + // createOrder, cancelOrder, editOrder, fetchOpenOrders, fetchClosedOrders + // + // { + // "average_fill_price":null, + // "bracket_order":null, + // "bracket_stop_loss_limit_price":null, + // "bracket_stop_loss_price":null, + // "bracket_take_profit_limit_price":null, + // "bracket_take_profit_price":null, + // "bracket_trail_amount":null, + // "cancellation_reason":null, + // "client_order_id":null, + // "close_on_trigger":"false", + // "commission":"0", + // "created_at":"2020-11-16T02:38:26Z", + // "id":152870626, + // "limit_price":"10000", + // "meta_data":{"source":"api"}, + // "order_type":"limit_order", + // "paid_commission":"0", + // "product_id":139, + // "reduce_only":false, + // "side":"buy", + // "size":0, + // "state":"open", + // "stop_order_type":null, + // "stop_price":null, + // "stop_trigger_method":"mark_price", + // "time_in_force":"gtc", + // "trail_amount":null, + // "unfilled_size":0, + // "user_id":22142 + // } + // + const id = this.safeString (order, 'id'); + const clientOrderId = this.safeString (order, 'client_order_id'); + const timestamp = this.parse8601 (this.safeString (order, 'created_at')); + const marketId = this.safeString (order, 'product_id'); + const marketsByNumericId = this.safeValue (this.options, 'marketsByNumericId', {}); + market = this.safeValue (marketsByNumericId, marketId, market); + const symbol = (market === undefined) ? marketId : market['symbol']; + const status = this.parseOrderStatus (this.safeString (order, 'state')); + const side = this.safeString (order, 'side'); + let type = this.safeString (order, 'order_type'); + type = type.replace ('_order', ''); + const price = this.safeFloat (order, 'limit_price'); + const amount = this.safeFloat (order, 'size'); + const remaining = this.safeFloat (order, 'unfilled_size'); + let filled = undefined; + if ((amount !== undefined) && (remaining !== undefined)) { + filled = Math.max (0, amount - remaining); + } + let cost = undefined; + const average = this.safeFloat (order, 'average_fill_price'); + if ((average !== undefined) && filled) { + cost = average * filled; + } + let fee = undefined; + const feeCost = this.safeFloat (order, 'paid_commission'); + if (feeCost !== undefined) { + let feeCurrencyCode = undefined; + if (market !== undefined) { + const settlingAsset = this.safeValue (market['info'], 'settling_asset', {}); + const feeCurrencyId = this.safeString (settlingAsset, 'symbol'); + feeCurrencyCode = this.safeCurrencyCode (feeCurrencyId); + } + fee = { + 'cost': feeCost, + 'currency': feeCurrencyCode, + }; + } + return { + 'info': order, + 'id': id, + 'clientOrderId': clientOrderId, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'lastTradeTimestamp': undefined, + 'symbol': symbol, + 'type': type, + 'side': side, + 'price': price, + 'amount': amount, + 'cost': cost, + 'average': average, + 'filled': filled, + 'remaining': remaining, + 'status': status, + 'fee': fee, + 'trades': undefined, + }; + } + + async createOrder (symbol, type, side, amount, price = undefined, params = {}) { + await this.loadMarkets (); + const orderType = type + '_order'; + const market = this.market (symbol); + const request = { + 'product_id': market['numericId'], + // 'limit_price': this.priceToPrecision (symbol, price), + 'size': this.amountToPrecision (symbol, amount), + 'side': side, + 'order_type': orderType, + // 'client_order_id': 'string', + // 'time_in_force': 'gtc', // gtc, ioc, fok + // 'post_only': 'false', // 'true', + // 'reduce_only': 'false', // 'true', + }; + if (type === 'limit') { + request['limit_price'] = this.priceToPrecision (symbol, price); + } + const clientOrderId = this.safeString2 (params, 'clientOrderId', 'client_order_id'); + params = this.omit (params, [ 'clientOrderId', 'client_order_id' ]); + if (clientOrderId !== undefined) { + request['client_order_id'] = clientOrderId; + } + const response = await this.privatePostOrders (this.extend (request, params)); + // + // { + // "result":{ + // "average_fill_price":null, + // "bracket_order":null, + // "bracket_stop_loss_limit_price":null, + // "bracket_stop_loss_price":null, + // "bracket_take_profit_limit_price":null, + // "bracket_take_profit_price":null, + // "bracket_trail_amount":null, + // "cancellation_reason":null, + // "client_order_id":null, + // "close_on_trigger":"false", + // "commission":"0", + // "created_at":"2020-11-16T02:38:26Z", + // "id":152870626, + // "limit_price":"10000", + // "meta_data":{"source":"api"}, + // "order_type":"limit_order", + // "paid_commission":"0", + // "product_id":139, + // "reduce_only":false, + // "side":"buy", + // "size":0, + // "state":"open", + // "stop_order_type":null, + // "stop_price":null, + // "stop_trigger_method":"mark_price", + // "time_in_force":"gtc", + // "trail_amount":null, + // "unfilled_size":0, + // "user_id":22142 + // }, + // "success":true + // } + // + const result = this.safeValue (response, 'result', {}); + return this.parseOrder (result, market); + } + + async editOrder (id, symbol, type, side, amount, price = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'id': parseInt (id), + 'product_id': market['numericId'], + // 'limit_price': this.priceToPrecision (symbol, price), + // 'size': this.amountToPrecision (symbol, amount), + }; + if (amount !== undefined) { + request['size'] = parseInt (this.amountToPrecision (symbol, amount)); + } + if (price !== undefined) { + request['limit_price'] = this.priceToPrecision (symbol, price); + } + const response = await this.privatePutOrders (this.extend (request, params)); + // + // { + // "success": true, + // "result": { + // "id": "ashb1212", + // "product_id": 27, + // "limit_price": "9200", + // "side": "buy", + // "size": 100, + // "unfilled_size": 50, + // "user_id": 1, + // "order_type": "limit_order", + // "state": "open", + // "created_at": "..." + // } + // } + // + const result = this.safeValue (response, 'result'); + return this.parseOrder (result, market); + } + + async cancelOrder (id, symbol = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'id': parseInt (id), + 'product_id': market['numericId'], + }; + const response = await this.privateDeleteOrders (this.extend (request, params)); + // + // { + // "result":{ + // "average_fill_price":null, + // "bracket_order":null, + // "bracket_stop_loss_limit_price":null, + // "bracket_stop_loss_price":null, + // "bracket_take_profit_limit_price":null, + // "bracket_take_profit_price":null, + // "bracket_trail_amount":null, + // "cancellation_reason":"cancelled_by_user", + // "client_order_id":null, + // "close_on_trigger":"false", + // "commission":"0", + // "created_at":"2020-11-16T02:38:26Z", + // "id":152870626, + // "limit_price":"10000", + // "meta_data":{"source":"api"}, + // "order_type":"limit_order", + // "paid_commission":"0", + // "product_id":139, + // "reduce_only":false, + // "side":"buy", + // "size":0, + // "state":"cancelled", + // "stop_order_type":null, + // "stop_price":null, + // "stop_trigger_method":"mark_price", + // "time_in_force":"gtc", + // "trail_amount":null, + // "unfilled_size":0, + // "user_id":22142 + // }, + // "success":true + // } + // + const result = this.safeValue (response, 'result'); + return this.parseOrder (result, market); + } + + async cancelAllOrders (symbol = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + ' cancelAllOrders() requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'product_id': market['numericId'], + // 'cancel_limit_orders': 'true', + // 'cancel_stop_orders': 'true', + }; + const response = this.privateDeleteOrdersAll (this.extend (request, params)); + // + // { + // "result":{}, + // "success":true + // } + // + return response; + } + + async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + return await this.fetchOrdersWithMethod ('privateGetOrders', symbol, since, limit, params); + } + + async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + return await this.fetchOrdersWithMethod ('privateGetOrdersHistory', symbol, since, limit, params); + } + + async fetchOrdersWithMethod (method, symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'product_ids': market['id'], // comma-separated + // 'contract_types': types, // comma-separated, futures, perpetual_futures, call_options, put_options, interest_rate_swaps, move_options, spreads + // 'order_types': types, // comma-separated, market, limit, stop_market, stop_limit, all_stop + // 'start_time': since * 1000, + // 'end_time': this.microseconds (), + // 'after': string, // after cursor for pagination + // 'before': string, // before cursor for pagination + // 'page_size': limit, // number of records per page + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['product_ids'] = market['numericId']; // accepts a comma-separated list of ids + } + if (since !== undefined) { + request['start_time'] = since.toString () + '000'; + } + if (limit !== undefined) { + request['page_size'] = limit; + } + const response = await this[method] (this.extend (request, params)); + // + // { + // "success": true, + // "result": [ + // { + // "id": "ashb1212", + // "product_id": 27, + // "limit_price": "9200", + // "side": "buy", + // "size": 100, + // "unfilled_size": 50, + // "user_id": 1, + // "order_type": "limit_order", + // "state": "open", + // "created_at": "..." + // } + // ], + // "meta": { + // "after": "string", + // "before": "string" + // } + // } + // + const result = this.safeValue (response, 'result', []); + return this.parseOrders (result, market, since, limit); + } + + async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'product_ids': market['id'], // comma-separated + // 'contract_types': types, // comma-separated, futures, perpetual_futures, call_options, put_options, interest_rate_swaps, move_options, spreads + // 'start_time': since * 1000, + // 'end_time': this.microseconds (), + // 'after': string, // after cursor for pagination + // 'before': string, // before cursor for pagination + // 'page_size': limit, // number of records per page + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['product_ids'] = market['numericId']; // accepts a comma-separated list of ids + } + if (since !== undefined) { + request['start_time'] = since.toString () + '000'; + } + if (limit !== undefined) { + request['page_size'] = limit; + } + const response = await this.privateGetFills (this.extend (request, params)); + // + // { + // "meta":{ + // "after":null, + // "before":null, + // "limit":10, + // "total_count":2 + // }, + // "result":[ + // { + // "commission":"0.008335000000000000", + // "created_at":"2020-11-16T19:07:19Z", + // "fill_type":"normal", + // "id":"e7ff05c233a74245b72381f8dd91d1ce", + // "meta_data":{ + // "effective_commission_rate":"0.0005", + // "order_price":"16249", + // "order_size":1, + // "order_type":"market_order", + // "order_unfilled_size":0, + // "trading_fee_credits_used":"0" + // }, + // "order_id":"152999629", + // "price":"16669", + // "product":{ + // "contract_type":"perpetual_futures", + // "contract_unit_currency":"BTC", + // "contract_value":"0.001", + // "id":139, + // "notional_type":"vanilla", + // "quoting_asset":{"minimum_precision":2,"precision":6,"symbol":"USDT"}, + // "settling_asset":{"minimum_precision":2,"precision":6,"symbol":"USDT"}, + // "symbol":"BTCUSDT", + // "tick_size":"0.5", + // "underlying_asset":{"minimum_precision":4,"precision":8,"symbol":"BTC"} + // }, + // "product_id":139, + // "role":"taker", + // "side":"sell", + // "size":1 + // } + // ], + // "success":true + // } + // + const result = this.safeValue (response, 'result', []); + return this.parseTrades (result, market, since, limit); + } + + async fetchLedger (code = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'asset_id': currency['numericId'], + // 'end_time': this.seconds (), + // 'after': 'string', // after cursor for pagination + // 'before': 'string', // before cursor for pagination + // 'page_size': limit, + }; + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + request['asset_id'] = currency['numericId']; + } + if (limit !== undefined) { + request['page_size'] = limit; + } + const response = await this.privateGetWalletTransactions (this.extend (request, params)); + // + // { + // "meta":{"after":null,"before":null,"limit":10,"total_count":1}, + // "result":[ + // { + // "amount":"29.889184", + // "asset_id":5, + // "balance":"29.889184", + // "created_at":"2020-11-15T21:25:01Z", + // "meta_data":{ + // "deposit_id":3884, + // "transaction_id":"0x41a60174849828530abb5008e98fc63c9b598288743ec4ba9620bcce900a3b8d" + // }, + // "transaction_type":"deposit", + // "user_id":22142, + // "uuid":"70bb5679da3c4637884e2dc63efaa846" + // } + // ], + // "success":true + // } + // + const result = this.safeValue (response, 'result', []); + return this.parseLedger (result, currency, since, limit); + } + + parseLedgerEntryType (type) { + const types = { + 'pnl': 'pnl', + 'deposit': 'transaction', + 'withdrawal': 'transaction', + 'commission': 'fee', + 'conversion': 'trade', + // 'perpetual_futures_funding': 'perpetual_futures_funding', + // 'withdrawal_cancellation': 'withdrawal_cancellation', + 'referral_bonus': 'referral', + 'commission_rebate': 'rebate', + // 'promo_credit': 'promo_credit', + }; + return this.safeString (types, type, type); + } + + parseLedgerEntry (item, currency = undefined) { + // + // { + // "amount":"29.889184", + // "asset_id":5, + // "balance":"29.889184", + // "created_at":"2020-11-15T21:25:01Z", + // "meta_data":{ + // "deposit_id":3884, + // "transaction_id":"0x41a60174849828530abb5008e98fc63c9b598288743ec4ba9620bcce900a3b8d" + // }, + // "transaction_type":"deposit", + // "user_id":22142, + // "uuid":"70bb5679da3c4637884e2dc63efaa846" + // } + // + const id = this.safeString (item, 'uuid'); + let direction = undefined; + const account = undefined; + const metaData = this.safeValue (item, 'meta_data', {}); + const referenceId = this.safeString (metaData, 'transaction_id'); + const referenceAccount = undefined; + let type = this.safeString (item, 'transaction_type'); + if ((type === 'deposit') || (type === 'commission_rebate') || (type === 'referral_bonus') || (type === 'pnl') || (type === 'withdrawal_cancellation') || (type === 'promo_credit')) { + direction = 'in'; + } else if ((type === 'withdrawal') || (type === 'commission') || (type === 'conversion') || (type === 'perpetual_futures_funding')) { + direction = 'out'; + } + type = this.parseLedgerEntryType (type); + const currencyId = this.safeInteger (item, 'asset_id'); + const currenciesByNumericId = this.safeValue (this.options, 'currenciesByNumericId'); + currency = this.safeValue (currenciesByNumericId, currencyId, currency); + const code = (currency === undefined) ? undefined : currency['code']; + const amount = this.safeFloat (item, 'amount'); + const timestamp = this.parse8601 (this.safeString (item, 'created_at')); + const after = this.safeFloat (item, 'balance'); + const before = Math.max (0, after - amount); + const status = 'ok'; + return { + 'info': item, + 'id': id, + 'direction': direction, + 'account': account, + 'referenceId': referenceId, + 'referenceAccount': referenceAccount, + 'type': type, + 'currency': code, + 'amount': amount, + 'before': before, + 'after': after, + 'status': status, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'fee': undefined, + }; + } + + async fetchDepositAddress (code, params = {}) { + await this.loadMarkets (); + const currency = this.currency (code); + const request = { + 'asset_symbol': currency['id'], + }; + const response = await this.privateGetDepositsAddress (this.extend (request, params)); + // + // { + // "success":true, + // "result":{ + // "id":19628, + // "user_id":22142, + // "address":"0x0eda26523397534f814d553a065d8e46b4188e9a", + // "status":"active", + // "updated_at":"2020-11-15T20:25:53.000Z", + // "created_at":"2020-11-15T20:25:53.000Z", + // "asset_symbol":"USDT", + // "custodian":"onc" + // } + // } + // + const result = this.safeValue (response, 'result', {}); + const address = this.safeString (result, 'address'); + this.checkAddress (address); + return { + 'currency': code, + 'address': address, + 'tag': undefined, + 'info': response, + }; + } + + sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { + const requestPath = '/' + this.version + '/' + this.implodeParams (path, params); + let url = this.urls['api'][api] + requestPath; + const query = this.omit (params, this.extractParams (path)); + if (api === 'public') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } else if (api === 'private') { + this.checkRequiredCredentials (); + const timestamp = this.seconds ().toString (); + headers = { + 'api-key': this.apiKey, + 'timestamp': timestamp, + }; + let auth = method + timestamp + requestPath; + if ((method === 'GET') || (method === 'DELETE')) { + if (Object.keys (query).length) { + const queryString = '?' + this.urlencode (query); + auth += queryString; + url += queryString; + } + } else { + body = this.json (query); + auth += body; + headers['Content-Type'] = 'application/json'; + } + const signature = this.hmac (this.encode (auth), this.encode (this.secret)); + headers['signature'] = signature; + } + return { 'url': url, 'method': method, 'body': body, 'headers': headers }; + } + + handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { + if (response === undefined) { + return; + } + // + // {"error":{"code":"insufficient_margin","context":{"available_balance":"0.000000000000000000","required_additional_balance":"1.618626000000000000000000000"}},"success":false} + // + const error = this.safeValue (response, 'error', {}); + const errorCode = this.safeString (error, 'code'); + if (errorCode !== undefined) { + const feedback = this.id + ' ' + body; + this.throwExactlyMatchedException (this.exceptions['exact'], errorCode, feedback); + this.throwBroadlyMatchedException (this.exceptions['broad'], errorCode, feedback); + throw new ExchangeError (feedback); // unknown message + } + } +}; + +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],77:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -57087,7 +60736,7 @@ module.exports = class deribit extends Exchange { const now = this.milliseconds (); if (since === undefined) { if (limit === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a since argument or a limit argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a since argument or a limit argument'); } else { request['start_timestamp'] = now - (limit - 1) * duration * 1000; request['end_timestamp'] = now; @@ -57320,7 +60969,7 @@ module.exports = class deribit extends Exchange { 'cancelled': 'canceled', 'filled': 'closed', 'rejected': 'rejected', - // 'untriggered': 'open', + 'untriggered': 'open', }; return this.safeString (statuses, status, status); } @@ -57405,7 +61054,8 @@ module.exports = class deribit extends Exchange { trades = this.parseTrades (trades, market); } const timeInForce = this.parseTimeInForce (this.safeString (order, 'time_in_force')); - const stopPrice = undefined; + const stopPrice = this.safeValue (order, 'stop_price'); + const postOnly = this.safeValue (order, 'post_only'); return { 'info': order, 'id': id, @@ -57416,6 +61066,7 @@ module.exports = class deribit extends Exchange { 'symbol': market['symbol'], 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -57500,13 +61151,13 @@ module.exports = class deribit extends Exchange { if (price !== undefined) { request['price'] = this.priceToPrecision (symbol, price); } else { - throw new ArgumentsRequired (this.id + ' createOrder requires a price argument for a ' + type + ' order'); + throw new ArgumentsRequired (this.id + ' createOrder() requires a price argument for a ' + type + ' order'); } } if (stopPriceIsRequired) { const stopPrice = this.safeFloat2 (params, 'stop_price', 'stopPrice'); if (stopPrice === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires a stop_price or stopPrice param for a ' + type + ' order'); + throw new ArgumentsRequired (this.id + ' createOrder() requires a stop_price or stopPrice param for a ' + type + ' order'); } else { request['stop_price'] = this.priceToPrecision (symbol, stopPrice); } @@ -57575,10 +61226,10 @@ module.exports = class deribit extends Exchange { async editOrder (id, symbol, type, side, amount = undefined, price = undefined, params = {}) { if (amount === undefined) { - throw new ArgumentsRequired (this.id + ' editOrder requires an amount argument'); + throw new ArgumentsRequired (this.id + ' editOrder() requires an amount argument'); } if (price === undefined) { - throw new ArgumentsRequired (this.id + ' editOrder requires a price argument'); + throw new ArgumentsRequired (this.id + ' editOrder() requires a price argument'); } await this.loadMarkets (); const request = { @@ -57940,7 +61591,7 @@ module.exports = class deribit extends Exchange { const request = { 'instrument_name': market['id'], }; - const response = await this.privateGetPosition (this.extend (request, params)); + const response = await this.privateGetGetPosition (this.extend (request, params)); // // { // "jsonrpc": "2.0", @@ -57979,7 +61630,7 @@ module.exports = class deribit extends Exchange { const request = { 'currency': currency['id'], }; - const response = await this.privateGetPositions (this.extend (request, params)); + const response = await this.privateGetGetPositions (this.extend (request, params)); // // { // "jsonrpc": "2.0", @@ -58093,7 +61744,7 @@ module.exports = class deribit extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],76:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],78:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -58598,7 +62249,7 @@ module.exports = class digifinex extends Exchange { async fetchTickers (symbols = undefined, params = {}) { const apiKey = this.safeValue (params, 'apiKey', this.apiKey); if (!apiKey) { - throw new ArgumentsRequired (this.id + ' fetchTicker is a private v2 endpoint that requires an `exchange.apiKey` credential or an `apiKey` extra parameter'); + throw new ArgumentsRequired (this.id + ' fetchTickers() is a private v2 endpoint that requires an `exchange.apiKey` credential or an `apiKey` extra parameter'); } await this.loadMarkets (); const request = { @@ -58644,7 +62295,7 @@ module.exports = class digifinex extends Exchange { async fetchTicker (symbol, params = {}) { const apiKey = this.safeValue (params, 'apiKey', this.apiKey); if (!apiKey) { - throw new ArgumentsRequired (this.id + ' fetchTicker is a private v2 endpoint that requires an `exchange.apiKey` credential or an `apiKey` extra parameter'); + throw new ArgumentsRequired (this.id + ' fetchTicker() is a private v2 endpoint that requires an `exchange.apiKey` credential or an `apiKey` extra parameter'); } await this.loadMarkets (); const market = this.market (symbol); @@ -59090,6 +62741,7 @@ module.exports = class digifinex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -59380,7 +63032,7 @@ module.exports = class digifinex extends Exchange { const address = this.safeString (depositAddress, 'address'); const tag = this.safeString (depositAddress, 'addressTag'); const currencyId = this.safeStringUpper (depositAddress, 'currency'); - const code = this.safeCurrencCode (currencyId); + const code = this.safeCurrencyCode (currencyId); return { 'info': depositAddress, 'code': code, @@ -59623,7 +63275,7 @@ module.exports = class digifinex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],77:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],79:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -60279,7 +63931,7 @@ module.exports = class dsx extends Exchange { await this.loadMarkets (); const market = this.market (symbol); if (type === 'market' && price === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires a price argument even for market orders, that is the worst price that you agree to fill your order for'); + throw new ArgumentsRequired (this.id + ' createOrder() requires a price argument even for market orders, that is the worst price that you agree to fill your order for'); } const request = { 'pair': market['id'], @@ -60466,6 +64118,7 @@ module.exports = class dsx extends Exchange { 'lastTradeTimestamp': lastTradeTimestamp, 'type': orderType, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -60898,7 +64551,1557 @@ module.exports = class dsx extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],78:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],80:[function(require,module,exports){ +'use strict'; + +// ---------------------------------------------------------------------------- + +const Exchange = require ('./base/Exchange'); +const { ExchangeError, ArgumentsRequired, BadSymbol } = require ('./base/errors'); + +// ---------------------------------------------------------------------------- + +module.exports = class equos extends Exchange { + describe () { + return this.deepExtend (super.describe (), { + 'id': 'equos', + 'name': 'EQUOS', + 'countries': [ 'US', 'SG' ], // United States, Singapore + 'rateLimit': 10, + 'has': { + 'CORS': false, + 'cancelOrder': true, + 'createOrder': true, + 'editOrder': true, + 'fetchBalance': true, + 'fetchCanceledOrders': true, + 'fetchClosedOrders': true, + 'fetchCurrencies': true, + 'fetchDepositAddress': true, + 'fetchDeposits': true, + 'fetchMarkets': true, + 'fetchMyTrades': true, + 'fetchOHLCV': true, + 'fetchOrder': true, + 'fetchOrderBook': true, + 'fetchOrders': true, + 'fetchTicker': false, + 'fetchTrades': true, + 'fetchTradingFees': true, + 'fetchWithdrawals': true, + 'withdraw': true, + }, + 'timeframes': { + '1m': 1, + '5m': 2, + '15m': 3, + '1h': 4, + '6h': 5, + '1d': 6, + '7d': 7, + }, + 'urls': { + 'logo': 'https://user-images.githubusercontent.com/1294454/107758499-05edd180-6d38-11eb-9e09-0b69602a7a15.jpg', + 'test': { + 'public': 'https://testnet.equos.io/api', + 'private': 'https://testnet.equos.io/api', + }, + 'api': { + 'public': 'https://equos.io/api', + 'private': 'https://equos.io/api', + }, + 'www': 'https://equos.io', + 'doc': [ + 'https://developer.equos.io', + ], + 'referral': 'https://equos.io?referredByCode=zpa8kij4ouvBFup3', + }, + 'api': { + 'public': { + 'get': [ + 'health', + 'getInstruments', + 'getInstrumentPairs', + 'getOrderBook', + 'getRisk', + 'getTradeHistory', + 'getFundingRateHistory', + 'getChart', + 'getExchangeInfo', // not documented + ], + }, + 'private': { + 'post': [ + 'logon', + 'order', + 'cancelOrder', + 'cancelReplaceOrder', + 'getOrder', + 'getOrders', + 'getOrderStatus', + 'getOrderHistory', + 'userTrades', + 'getPositions', + 'cancelAll', + 'getUserHistory', + 'getRisk', + 'getDepositAddresses', + 'getDepositHistory', // not documented + 'getWithdrawRequests', + 'sendWithdrawRequest', + 'getTransferHistory', + ], + }, + }, + 'requiredCredentials': { + 'apiKey': true, + 'secret': true, + 'uid': true, + }, + 'exceptions': { + 'broad': { + 'symbol not found': BadSymbol, + }, + }, + }); + } + + async fetchMarkets (params = {}) { + const request = { + 'verbose': true, + }; + const response = await this.publicGetGetInstrumentPairs (this.extend (request, params)); + // + // { + // "instrumentPairs":[ + // { + // "instrumentId":52, + // "symbol":"BTC/USDC", + // "quoteId":1, + // "baseId":3, + // "price_scale":2, + // "quantity_scale":6, + // "securityStatus":1, + // "securityDesc":"BTC/USDC", // "BTC/USDC[F]" + // "assetType":"PAIR", // "PERPETUAL_SWAP" + // "currency":"BTC", + // "contAmtCurr":"USDC", + // "settlCurrency":"USDC", + // "commCurrency":"USDC", + // "cfiCode":"XXXXXX", + // "securityExchange":"XXXX", + // "instrumentPricePrecision":2, + // "minPriceIncrement":1.0, + // "minPriceIncrementAmount":1.0, + // "roundLot":1, + // "minTradeVol":0.001000, + // "maxTradeVol":0.000000 + // // contracts onlye + // "qtyType":0, + // "contractMultiplier":1.0, + // "issueDate":1598608087000 + // }, + // ] + // } + // + const instrumentPairs = this.safeValue (response, 'instrumentPairs', []); + const markets = []; + for (let i = 0; i < instrumentPairs.length; i++) { + const market = this.parseMarket (instrumentPairs[i]); + markets.push (market); + } + return markets; + } + + parseMarket (market) { + // + // { + // "instrumentId":52, + // "symbol":"BTC/USDC", // "BTC/USDC[F]" + // "quoteId":1, + // "baseId":3, + // "price_scale":2, + // "quantity_scale":6, + // "securityStatus":1, + // "securityDesc":"BTC/USDC", // "BTC/USDC[F]" + // "assetType":"PAIR", // "PERPETUAL_SWAP" + // "currency":"BTC", + // "contAmtCurr":"USDC", + // "settlCurrency":"USDC", + // "commCurrency":"USDC", + // "cfiCode":"XXXXXX", + // "securityExchange":"XXXX", + // "instrumentPricePrecision":2, + // "minPriceIncrement":1.0, + // "minPriceIncrementAmount":1.0, + // "roundLot":1, + // "minTradeVol":0.001000, + // "maxTradeVol":0.000000 + // // contracts onlye + // "qtyType":0, + // "contractMultiplier":1.0, + // "issueDate":1598608087000 + // } + // + const id = this.safeString (market, 'instrumentId'); + const uppercaseId = this.safeString (market, 'symbol'); + const assetType = this.safeString (market, 'assetType'); + const spot = (assetType === 'PAIR'); + const swap = (assetType === 'PERPETUAL_SWAP'); + const type = swap ? 'swap' : 'spot'; + const baseId = this.safeString (market, 'currency'); + const quoteId = this.safeString (market, 'contAmtCurr'); + const base = this.safeCurrencyCode (baseId); + const quote = this.safeCurrencyCode (quoteId); + const symbol = swap ? uppercaseId : (base + '/' + quote); + const status = this.safeInteger (market, 'securityStatus'); + const active = (status === 1); + const precision = { + 'amount': this.safeInteger (market, 'quantity_scale'), + 'price': this.safeInteger (market, 'price_scale'), + }; + return { + 'id': id, + 'uppercaseId': uppercaseId, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'baseId': baseId, + 'quoteId': quoteId, + 'type': type, + 'spot': spot, + 'swap': swap, + 'active': active, + 'precision': precision, + 'limits': { + 'amount': { + 'min': this.safeFloat (market, 'minTradeVol'), + 'max': undefined, + }, + 'price': { + 'min': undefined, + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + }, + 'info': market, + }; + } + + async fetchCurrencies (params = {}) { + const response = await this.publicGetGetInstruments (params); + // + // { + // "instruments": [ + // [ + // 3, // id + // "BTC", // symbol + // 2, // price_scale + // 6, // amount_scale + // 1, // status + // 0, // withdraw_fee + // "BTC", // name + // true, // withdrawal_pct + // ], + // ] + // } + // + const currencies = {}; + const instruments = this.safeValue (response, 'instruments', []); + for (let i = 0; i < instruments.length; i++) { + const currency = this.parseCurrency (instruments[i]); + const code = currency['code']; + currencies[code] = currency; + } + return currencies; + } + + parseCurrency (currency) { + // + // [ + // 3, // 0 id + // "BTC", // 1 symbol + // 2, // 2 price_scale + // 6, // 3 amount_scale + // 1, // 4 status + // 0, // 5 withdraw_fee + // "BTC", // 6 name + // true, // 7 withdrawal_pct + // ], + // + const id = this.safeString (currency, 0); + const uppercaseId = this.safeString (currency, 1); + const code = this.safeCurrencyCode (uppercaseId); + const priceScale = this.safeInteger (currency, 2); + const amountScale = this.safeInteger (currency, 3); + const precision = Math.max (priceScale, amountScale); + const name = this.safeString (currency, 6); + const status = this.safeInteger (currency, 4); + const active = (status === 1); + const fee = this.safeFloat (currency, 5); // withdraw_fee + return { + 'id': id, + 'info': currency, + 'uppercaseId': uppercaseId, + 'code': code, + 'name': name, + 'precision': precision, + 'fee': fee, + 'active': active, + 'limits': { + 'amount': { + 'min': undefined, + 'max': undefined, + }, + 'price': { + 'min': undefined, + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + 'withdraw': { + 'min': undefined, + 'max': undefined, + }, + }, + }; + } + + async fetchOHLCV (symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'pairId': parseInt (market['id']), + 'timespan': this.timeframes[timeframe], + }; + if (limit !== undefined) { + request['limit'] = limit; + } + const response = await this.publicGetGetChart (this.extend (request, params)); + // + // { + // "pairId":57, + // "t":1, + // "s":"ETH/BTC", + // "lastPx":44099, + // "lastQty":100000, + // "o":0.043831000000000016, + // "h":0.04427100000000002, + // "l":0.032000000000000015, + // "c":0.04409900000000002, + // "v":0.21267333000000016, + // "q":4.850000000000001, + // "chart":[ + // [1612519260000,44099,44099,44099,44099,0,441], + // [1612519200000,44099,44099,44099,44099,0,440], + // [1612519140000,44269,44271,44269,44271,0,439], + // ] + // } + // + const chart = this.safeValue (response, 'chart', []); + return this.parseOHLCVs (chart, market, timeframe, since, limit); + } + + parseOHLCV (ohlcv, market = undefined) { + // + // [ + // 1612519260000, // timestamp + // 44099, // open + // 44099, // high + // 44099, // low + // 44099, // close + // 0, // base volume + // 441, // seqNumber + // ] + // + const timestamp = this.safeInteger (ohlcv, 0); + const open = this.convertFromScale (ohlcv[1], market['precision']['price']); + const high = this.convertFromScale (ohlcv[2], market['precision']['price']); + const low = this.convertFromScale (ohlcv[3], market['precision']['price']); + const close = this.convertFromScale (ohlcv[4], market['precision']['price']); + const volume = this.convertFromScale (ohlcv[5], market['precision']['amount']); + // volume = ohlcv[5]; + return [timestamp, open, high, low, close, volume]; + } + + parseBidAsk (bidask, priceKey = 0, amountKey = 1, market = undefined) { + if (market === undefined) { + throw new ArgumentsRequired (this.id + ' parseBidAsk() requires a market argument'); + } + const price = this.safeFloat (bidask, priceKey); + const amount = this.safeFloat (bidask, amountKey); + return [ + this.convertFromScale (price, market['precision']['price']), + this.convertFromScale (amount, market['precision']['amount']), + ]; + } + + parseOrderBook (orderbook, timestamp = undefined, bidsKey = 'bids', asksKey = 'asks', priceKey = 0, amountKey = 1, market = undefined) { + const result = { + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'nonce': undefined, + }; + const sides = [ bidsKey, asksKey ]; + for (let i = 0; i < sides.length; i++) { + const side = sides[i]; + const orders = []; + const bidasks = this.safeValue (orderbook, side); + for (let k = 0; k < bidasks.length; k++) { + orders.push (this.parseBidAsk (bidasks[k], priceKey, amountKey, market)); + } + result[side] = orders; + } + result[bidsKey] = this.sortBy (result[bidsKey], 0, true); + result[asksKey] = this.sortBy (result[asksKey], 0); + return result; + } + + async fetchOrderBook (symbol, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'pairId': parseInt (market['id']), + }; + const response = await this.publicGetGetOrderBook (this.extend (request, params)); + // + // { + // "bids":[ + // [4000480,30000,1612644984667], + // [3999304,200000,1612644984667], + // [3998862,50000,1612644984667], + // ], + // "asks":[ + // [4001962,1790000,1612644984667], + // [4002616,1000,1612644984667], + // [4003889,1000,1612644984667], + // ], + // "usdMark":40011.02, + // "marketStatus":0, + // "estFundingRate":0.0, + // "fundingRateTime":0, + // "auctionPrice":0.0, + // "auctionVolume":0.0 + // } + // + return this.parseOrderBook (response, undefined, 'bids', 'asks', 0, 1, market); + } + + async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'pairId': parseInt (market['id']), + }; + const response = await this.publicGetGetTradeHistory (this.extend (request, params)); + // + // { + // "trades":[ + // [4022800,47000,"20210206-21:39:12.886",256323,1], + // [4023066,1000,"20210206-21:38:55.030",256322,1], + // [4022406,50000,"20210206-21:36:56.334",256321,1], + // ] + // } + // + const trades = this.safeValue (response, 'trades', []); + return this.parseTrades (trades, market, since, limit, params); + } + + parseTrade (trade, market = undefined) { + // + // public fetchTrades + // + // [ + // 4022800, // 0 price + // 47000, // 1 quantity + // "20210206-21:39:12.886", // 2 timestamp + // 256323, // 3 sequence number + // 1 // 4 taker side 1 = buy, 2 = sell + // ] + // + // private fetchMyTrades + // + // { + // "account":3583, + // "commission":"-0.015805", + // "commCurrency":"USDC", + // "execId":265757, + // "ordType":"2", + // "ordStatus":"2", + // "execType":"F", + // "aggressorIndicator":true, + // "orderId":388953019, + // "price":"1842.04", + // "qty":"0.010000", + // "lastPx":"1756.22", + // "avgPx":"1756.22", + // "cumQty":"0.010000", + // "quoteQty":"0.010000", + // "side":"BUY", + // "symbol":"ETH/USDC", + // "clOrdId":"1613106766970339107", + // "submitterId":3583, + // "targetStrategy":"0", + // "time":1613106766971, + // "date":"20210212-05:12:46.971" + // } + // + let id = undefined; + let timestamp = undefined; + let orderId = undefined; + let type = undefined; + let side = undefined; + let price = undefined; + let amount = undefined; + let cost = undefined; + let fee = undefined; + let symbol = undefined; + if (Array.isArray (trade)) { + id = this.safeString (trade, 3); + price = this.convertFromScale (this.safeInteger (trade, 0), market['precision']['price']); + amount = this.convertFromScale (this.safeInteger (trade, 1), market['precision']['amount']); + timestamp = this.toMilliseconds (this.safeString (trade, 2)); + const takerSide = this.safeInteger (trade, 4); + if (takerSide === 1) { + side = 'buy'; + } else if (takerSide === 2) { + side = 'sell'; + } + } else { + id = this.safeString (trade, 'execId'); + timestamp = this.safeInteger (trade, 'time'); + const marketId = this.safeString (trade, 'symbol'); + symbol = this.safeSymbol (marketId, market); + orderId = this.safeString (trade, 'orderId'); + side = this.safeStringLower (trade, 'side'); + type = this.parseOrderType (this.safeString (trade, 'ordType')); + price = this.safeFloat (trade, 'lastPx'); + amount = this.safeFloat (trade, 'quoteQty'); + let feeCost = this.safeFloat (trade, 'commission'); + if (feeCost !== undefined) { + feeCost = -feeCost; + const feeCurrencyId = this.safeString (trade, 'commCurrency'); + const feeCurrencyCode = this.safeCurrencyCode (feeCurrencyId); + fee = { + 'cost': feeCost, + 'currency': feeCurrencyCode, + }; + } + } + if ((symbol === undefined) && (market !== undefined)) { + symbol = market['symbol']; + } + if (cost === undefined) { + if ((amount !== undefined) && (price !== undefined)) { + cost = amount * price; + } + } + return { + 'info': trade, + 'id': id, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'symbol': symbol, + 'order': orderId, + 'type': type, + 'side': side, + 'takerOrMaker': undefined, + 'price': price, + 'amount': amount, + 'cost': cost, + 'fee': fee, + }; + } + + async fetchBalance (params = {}) { + await this.loadMarkets (); + const response = await this.privatePostGetPositions (params); + // { + // "positions":[ + // { + // "instrumentId":1, + // "userId":3583, + // "quantity":0, + // "availableQuantity":0, + // "quantity_scale":6, + // "symbol":"USDC", + // "assetType":"ASSET", + // "usdCostBasis":0.0, + // "usdAvgCostBasis":0.0, + // "usdValue":0.0, + // "usdUnrealized":0.0, + // "usdRealized":0.0, + // "baseUsdMark":1.0, + // "settleCoinUsdMark":0.0, + // "settleCoinUnrealized":0.0, + // "settleCoinRealized":0.0 + // }, + // ] + // } + const positions = this.safeValue (response, 'positions', []); + const result = { + 'info': response, + }; + for (let i = 0; i < positions.length; i++) { + const position = positions[i]; + const assetType = this.safeString (position, 'assetType'); + if (assetType === 'ASSET') { + const currencyId = this.safeString (position, 'symbol'); + const code = this.safeCurrencyCode (currencyId); + const quantity = this.safeFloat (position, 'quantity'); + const availableQuantity = this.safeFloat (position, 'availableQuantity'); + const scale = this.safeInteger (position, 'quantity_scale'); + const account = this.account (); + account['free'] = this.convertFromScale (availableQuantity, scale); + account['total'] = this.convertFromScale (quantity, scale); + result[code] = account; + } + } + return this.parseBalance (result); + } + + async createOrder (symbol, type, side, amount, price = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const orderSide = (side === 'buy') ? 1 : 2; + const quantityScale = this.getScale (amount); + const request = { + // 'id': 0, + // 'account': 0, // required for institutional users + 'instrumentId': parseInt (market['id']), + 'symbol': market['uppercaseId'], + // 'clOrdId': '', + 'side': orderSide, // 1 = buy, 2 = sell + // 'ordType': 1, // 1 = market, 2 = limit, 3 = stop market, 4 = stop limit + // 'price': this.priceToPrecision (symbol, price), // required for limit and stop limit orders + // 'price_scale': this.getScale (price), + 'quantity': this.convertToScale (amount, quantityScale), + 'quantity_scale': quantityScale, + // 'stopPx': this.priceToPrecision (symbol, stopPx), + // 'stopPx_scale': this.getScale (stopPx), + // 'targetStrategy': 0, + // 'isHidden': false, + // 'timeInForce': 1, // 1 = Good Till Cancel (GTC), 3 = Immediate or Cancel (IOC), 4 = Fill or Kill (FOK), 5 = Good Till Crossing (GTX), 6 = Good Till Date (GTD) + // 'interval': 0, + // 'intervalCount': 0, + // 'intervalDelay': 0, + // 'price2': 0, + // 'price2_scale': this.getScale (price2), + // 'blockWaitAck': 0, // 1 = wait for order acknowledgement, when set, response will include the matching engine "orderId" field + }; + if (type === 'market') { + request['ordType'] = 1; + } else if (type === 'limit') { + request['ordType'] = 2; + request['price'] = this.convertToScale (price, this.getScale (price)); + } else { + const stopPrice = this.safeFloat2 (params, 'stopPrice', 'stopPx'); + params = this.omit (params, [ 'stopPrice', 'stopPx' ]); + if (stopPrice === undefined) { + if (type === 'stop') { + if (price === undefined) { + throw new ArgumentsRequired (this.id + ' createOrder() requires a price argument or a stopPrice parameter or a stopPx parameter for ' + type + ' orders'); + } + request['ordType'] = 3; + request['stopPx'] = this.convertToScale (price, this.getScale (price)); + } else if (type === 'stop limit') { + throw new ArgumentsRequired (this.id + ' createOrder() requires a stopPrice parameter or a stopPx parameter for ' + type + ' orders'); + } + } else { + if (type === 'stop') { + request['ordType'] = 3; + request['stopPx'] = this.convertToScale (stopPrice, this.getScale (stopPrice)); + } else if (type === 'stop limit') { + request['ordType'] = 4; + const priceScale = this.getScale (price); + const stopPriceScale = this.getScale (stopPrice); + request['price_scale'] = priceScale; + request['stopPx_scale'] = stopPriceScale; + request['stopPx'] = this.convertToScale (stopPrice, stopPriceScale); + request['price'] = this.convertToScale (price, priceScale); + } + } + } + const response = await this.privatePostOrder (this.extend (request, params)); + // + // { + // "status":"sent", + // "id":385617863, + // "instrumentId":53, + // "clOrdId":"1613037510849637345", + // "userId":3583, + // "price":2000, + // "quantity":200, + // "ordType":2 + // } + // + return this.parseOrder (response, market); + } + + async cancelOrder (id, symbol = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'origOrderId': parseInt (id), + 'instrumentId': parseInt (market['id']), + }; + const response = await this.privatePostCancelOrder (this.extend (request, params)); + // + // { + // "status":"sent", + // "id":0, + // "origOrderId":385613629, + // "instrumentId":53, + // "userId":3583, + // "price":0, + // "quantity":0, + // "ordType":0 + // } + // + return this.parseOrder (response, market); + } + + async editOrder (id, symbol, type, side, amount, price = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const orderSide = (side === 'buy') ? 1 : 2; + const quantityScale = this.getScale (amount); + const request = { + // 'id': 0, + 'origOrderId': id, + // 'account': 0, // required for institutional users + 'instrumentId': parseInt (market['id']), + 'symbol': market['uppercaseId'], + // 'clOrdId': '', + 'side': orderSide, // 1 = buy, 2 = sell + // 'ordType': 1, // 1 = market, 2 = limit, 3 = stop market, 4 = stop limit + // 'price': this.priceToPrecision (symbol, price), // required for limit and stop limit orders + // 'price_scale': this.getScale (price), + 'quantity': this.convertToScale (amount, quantityScale), + 'quantity_scale': quantityScale, + // 'stopPx': this.priceToPrecision (symbol, stopPx), + // 'stopPx_scale': this.getScale (stopPx), + // 'timeInForce': 1, // 1 = Good Till Cancel (GTC), 3 = Immediate or Cancel (IOC), 4 = Fill or Kill (FOK), 5 = Good Till Crossing (GTX), 6 = Good Till Date (GTD) + }; + if (type === 'market') { + request['ordType'] = 1; + } else if (type === 'limit') { + request['ordType'] = 2; + request['price'] = this.convertToScale (price, this.getScale (price)); + } else { + const stopPrice = this.safeFloat2 (params, 'stopPrice', 'stopPx'); + params = this.omit (params, [ 'stopPrice', 'stopPx' ]); + if (stopPrice === undefined) { + if (type === 'stop') { + if (price === undefined) { + throw new ArgumentsRequired (this.id + ' editOrder() requires a price argument or a stopPrice parameter or a stopPx parameter for ' + type + ' orders'); + } + request['ordType'] = 3; + request['stopPx'] = this.convertToScale (price, this.getScale (price)); + } else if (type === 'stop limit') { + throw new ArgumentsRequired (this.id + ' editOrder() requires a stopPrice parameter or a stopPx parameter for ' + type + ' orders'); + } + } else { + if (type === 'stop') { + request['ordType'] = 3; + request['stopPx'] = this.convertToScale (stopPrice, this.getScale (stopPrice)); + } else if (type === 'stop limit') { + request['ordType'] = 4; + const priceScale = this.getScale (price); + const stopPriceScale = this.getScale (stopPrice); + request['price_scale'] = priceScale; + request['stopPx_scale'] = stopPriceScale; + request['stopPx'] = this.convertToScale (stopPrice, stopPriceScale); + request['price'] = this.convertToScale (price, priceScale); + } + } + } + const response = await this.privatePostOrder (this.extend (request, params)); + // + // { + // "status":"sent", + // "id":385617863, + // "instrumentId":53, + // "clOrdId":"1613037510849637345", + // "userId":3583, + // "price":2000, + // "quantity":200, + // "ordType":2 + // } + // + return this.parseOrder (response, market); + } + + async fetchOrder (id, symbol = undefined, params = {}) { + await this.loadMarkets (); + const request = { + 'orderId': parseInt (id), + }; + const response = await this.privatePostGetOrderStatus (this.extend (request, params)); + // + // { + // "orderId":388953019, + // "clOrdId":"1613106766970339107", + // "symbol":"ETH/USDC", + // "instrumentId":53, + // "side":"1", + // "userId":3583, + // "account":3583, + // "execType":"F", + // "ordType":"2", + // "ordStatus":"2", + // "timeInForce":"3", + // "timeStamp":"20210212-05:12:46.971", + // "execId":265757, + // "targetStrategy":0, + // "isHidden":false, + // "isReduceOnly":false, + // "isLiquidation":false, + // "fee":0, + // "fee_scale":6, + // "feeInstrumentId":1, + // "price":184204, + // "price_scale":2, + // "quantity":10000, + // "quantity_scale":6, + // "leavesQty":0, + // "leavesQty_scale":6, + // "cumQty":10000, + // "cumQty_scale":6, + // "lastPx":175622, + // "lastPx_scale":2, + // "avgPx":175622, + // "avgPx_scale":2, + // "lastQty":10000, + // "lastQty_scale":6 + // } + // + return this.parseOrder (response); + } + + async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const request = { + 'ordStatus': '2', // '0' = New, '1' = Partially filled, '2' = Filled, '4' = Cancelled, '8' = Rejected, 'C' = Expired + }; + return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); + } + + async fetchCanceledOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const request = { + 'ordStatus': '4', // '0' = New, '1' = Partially filled, '2' = Filled, '4' = Cancelled, '8' = Rejected, 'C' = Expired + }; + return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); + } + + async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + let market = undefined; + const request = { + // 'account': id, // for institutional users + // 'symbol': marketSymbol, // cannot be used with instrumentId + // 'instrumentId': market['numericId'], + // 'limit': limit, + // 'execType': execType, // '0' = New, '4' = Canceled, '5' = Replace, '8' = Rejected, 'C' = Expired, 'F' = Fill Status, 'I' = Order Status + // 'ordStatus': ordStatus, // '0' = New, '1' = Partially filled, '2' = Filled, '4' = Cancelled, '8' = Rejected, 'C' = Expired + }; + if (symbol !== undefined) { + market = this.market (symbol); + request['instrumentId'] = parseInt (market['id']); + } + if (limit !== undefined) { + request['limit'] = limit; + } + const response = await this.privatePostGetOrders (this.extend (request, params)); + // + // { + // "isInitialSnap":false, + // "orders":[ + // { + // "orderId":385613629, + // "orderUpdateSeq":1, + // "clOrdId":"1613037448945798198", + // "symbol":"ETH/USDC", + // "instrumentId":53, + // "side":"1", + // "userId":3583, + // "account":3583, + // "execType":"4", + // "ordType":"2", + // "ordStatus":"C", + // "timeInForce":"3", + // "timeStamp":"20210211-09:57:28.944", + // "execId":0, + // "targetStrategy":0, + // "isHidden":false, + // "isReduceOnly":false, + // "isLiquidation":false, + // "fee":0, + // "feeTotal":0, + // "fee_scale":0, + // "feeInstrumentId":0, + // "price":999, + // "price_scale":2, + // "quantity":10000000, + // "quantity_scale":6, + // "leavesQty":10000000, + // "leavesQty_scale":6, + // "cumQty":0, + // "cumQty_scale":0, + // "lastPx":0, + // "lastPx_scale":2, + // "avgPx":0, + // "avgPx_scale":0, + // "lastQty":0, + // "lastQty_scale":6 + // } + // ] + // } + // + const orders = this.safeValue (response, 'orders', []); + return this.parseOrders (orders, market, since, limit, params); + } + + async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'account': 123, // for institutional users + // 'instrumentId': market['id'], + // 'startTime': since, + // 'endTime': this.milliseconds (), + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['instrumentId'] = market['id']; + } + if (since !== undefined) { + request['startTime'] = since; + } + const response = await this.privatePostUserTrades (this.extend (request, params)); + // + // { + // "trades":[ + // { + // "account":3583, + // "commission":"-0.015805", + // "commCurrency":"USDC", + // "execId":265757, + // "ordType":"2", + // "ordStatus":"2", + // "execType":"F", + // "aggressorIndicator":true, + // "orderId":388953019, + // "price":"1842.04", + // "qty":"0.010000", + // "lastPx":"1756.22", + // "avgPx":"1756.22", + // "cumQty":"0.010000", + // "quoteQty":"0.010000", + // "side":"BUY", + // "symbol":"ETH/USDC", + // "clOrdId":"1613106766970339107", + // "submitterId":3583, + // "targetStrategy":"0", + // "time":1613106766971, + // "date":"20210212-05:12:46.971" + // } + // ] + // } + // + const trades = this.safeValue (response, 'trades', []); + return this.parseTrades (trades, market, since, limit, params); + } + + async fetchDepositAddress (code, params = {}) { + await this.loadMarkets (); + const currency = this.currency (code); + const request = { + 'instrumentId': parseInt (currency['id']), + }; + const response = await this.privatePostGetDepositAddresses (this.extend (request, params)); + // + // { + // "addresses":[ + // {"instrumentId":1,"userId":3583,"symbol":"USDC","address":"0xdff47af071ea3c537e57278290516cda32a78b97","status":1} + // ] + // } + // + const addresses = this.safeValue (response, 'addresses', []); + const address = this.safeValue (addresses, 0); + return this.parseDepositAddress (address, currency); + } + + parseDepositAddress (depositAddress, currency = undefined) { + // + // { + // "instrumentId":1, + // "userId":3583, + // "symbol":"USDC", + // "address":"0xdff47af071ea3c537e57278290516cda32a78b97", + // "status":1 + // } + // + const currencyId = this.safeString (depositAddress, 'symbol'); + const code = this.safeCurrencyCode (currencyId, currency); + const address = this.safeString (depositAddress, 'address'); + this.checkAddress (address); + return { + 'currency': code, + 'address': address, + 'tag': undefined, + 'info': depositAddress, + }; + } + + async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = {}; + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + request['instrumentId'] = parseInt (currency['id']); + } + const response = await this.privatePostGetDepositHistory (this.extend (request, params)); + // + // { + // "deposits":[ + // { + // "id":4309, + // "instrumentId":1, + // "userId":3583, + // "symbol":"USDC", + // "address":"null", + // "timestamp":"1613021112189", + // "status":1, + // "balance":0.0, + // "balance_change":100.0, + // "confirms":1, + // "transactionId":"caba4500-489f-424e-abd7-b4dabc09a800" + // } + // ] + // } + // + const deposits = this.safeValue (response, 'deposits', []); + return this.parseTransactions (deposits, currency, since, limit, { 'type': 'deposit' }); + } + + async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = {}; + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + request['instrumentId'] = parseInt (currency['id']); + } + const response = await this.privatePostGetWithdrawRequests (this.extend (request, params)); + // + // { + // "addresses":[ + // { + // "id":3841, + // "instrumentId":3, + // "userId":4245, + // "symbol":"BTC", + // "address":"XXXXXYYYYYZZZZZ", + // "timestamp":"20200806-11:04:35.053", + // "status":0, + // "balance":1, + // "balance_scale":3, + // "confirms":0, + // "transactionId":"null" + // } + // ] + // } + // + const withdrawals = this.safeValue (response, 'addresses', []); + return this.parseTransactions (withdrawals, currency, since, limit, { 'type': 'withdrawal' }); + } + + parseTransaction (transaction, currency = undefined) { + // + // fetchDeposits, fetchWithdrawals + // + // { + // "id":4309, + // "instrumentId":1, + // "userId":3583, + // "symbol":"USDC", + // "address":"null", + // "timestamp":"1613021112189", + // "status":1, + // "balance":0.0, + // "balance_change":100.0, + // "confirms":1, + // "transactionId":"caba4500-489f-424e-abd7-b4dabc09a800" + // } + // + // withdraw + // + // { + // "instrumentId": 1, + // "userId": 23750, + // "symbol": "USDC", + // "timestamp": "20200201-05:37:16.584", + // "status": 1, + // "userUuid": "b9e33713-c28f-468f-99bd-f6deab0dd854", + // "currencyCode": "USDC", + // "address": "2MvW97yT6E2Kq8bWc1aj1DqfbgMzjRNk2LE", + // "quantity": 20, + // "requestUuid": "56782b34-8a78-4f5f-b164-4b8f7d583b7f", + // "transactionUuid": "1004eb0f-41e1-41e9-9d48-8eefcc6c09f2", + // "transactionId": "WS23436", + // "destinationWalletAlias": "Test", + // "quantity_scale": 0 + // } + // + const id = this.safeString (transaction, 'id', 'transactionId'); + const txid = this.safeString (transaction, 'transactionUuid'); + const timestamp = this.safeInteger (transaction, 'timestamp'); + let address = this.safeString (transaction, 'address'); + if (address === 'null') { + address = undefined; + } + const type = this.safeString (transaction, 'type'); + let amount = this.safeFloat (transaction, 'balance_change'); + if (amount === undefined) { + amount = this.safeInteger (transaction, 'quantity'); + const amountScale = this.safeInteger (transaction, 'quantity_scale'); + amount = this.convertFromScale (amount, amountScale); + } + const currencyId = this.safeString (transaction, 'symbol'); + const code = this.safeCurrencyCode (currencyId, currency); + const status = this.parseTransactionStatus (this.safeString (transaction, 'status')); + return { + 'info': transaction, + 'id': id, + 'txid': txid, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'addressFrom': undefined, + 'address': address, + 'addressTo': undefined, + 'tagFrom': undefined, + 'tag': undefined, + 'tagTo': undefined, + 'type': type, + 'amount': amount, + 'currency': code, + 'status': status, + 'updated': undefined, + 'comment': undefined, + 'fee': undefined, + }; + } + + parseTransactionStatus (status) { + const statuses = { + '0': 'pending', + '1': 'ok', + }; + return this.safeString (statuses, status, status); + } + + async withdraw (code, amount, address, tag = undefined, params = {}) { + this.checkAddress (address); + await this.loadMarkets (); + const currency = this.currency (code); + const scale = this.getScale (amount); + const quantity = this.convertToScale (amount, scale); + const request = { + 'instrumentId': parseInt (currency['id']), + 'symbol': currency['uppercaseId'], + 'quantity': quantity, + 'quantity_scale': scale, + 'address': address, + }; + const response = await this.privatePostSendWithdrawRequest (this.extend (request, params)); + // + // { + // "instrumentId": 1, + // "userId": 23750, + // "symbol": "USDC", + // "timestamp": "20200201-05:37:16.584", + // "status": 1, + // "userUuid": "b9e33713-c28f-468f-99bd-f6deab0dd854", + // "currencyCode": "USDC", + // "address": "2MvW97yT6E2Kq8bWc1aj1DqfbgMzjRNk2LE", + // "quantity": 20, + // "requestUuid": "56782b34-8a78-4f5f-b164-4b8f7d583b7f", + // "transactionUuid": "1004eb0f-41e1-41e9-9d48-8eefcc6c09f2", + // "transactionId": "WS23436", + // "destinationWalletAlias": "Test", + // "quantity_scale": 0 + // } + // + return this.parseTransaction (response, currency); + } + + async fetchTradingFees (params = {}) { + // getExchangeInfo + const response = await this.publicGetGetExchangeInfo (params); + const tradingFees = this.safeValue (response, 'spotFees', []); + const taker = {}; + const maker = {}; + for (let i = 0; i < tradingFees.length; i++) { + const tradingFee = tradingFees[i]; + if (this.safeString (tradingFee, 'tier') !== undefined) { + taker[tradingFee['tier']] = this.safeFloat (tradingFee, 'taker'); + maker[tradingFee['tier']] = this.safeFloat (tradingFee, 'maker'); + } + } + return { + 'info': tradingFees, + 'tierBased': true, + 'maker': maker, + 'taker': taker, + }; + } + + async fetchTradingLimits (symbols = undefined, params = {}) { + await this.loadMarkets (); + // getExchangeInfo + const response = await this.publicGetGetExchangeInfo (params); + const tradingLimits = this.safeValue (response, 'tradingLimits', []); + // To-do parsing response when available + return { + 'info': tradingLimits, + 'limits': { + 'amount': { + 'min': undefined, + 'max': undefined, + }, + 'price': { + 'min': undefined, + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + }, + }; + } + + async fetchFundingLimits (params = {}) { + // getExchangeInfo + const response = await this.publicGetGetExchangeInfo (params); + const withdrawLimits = this.safeValue (response, 'withdrawLimits', []); + // TO-DO parse response when available + return { + 'info': withdrawLimits, + 'withdraw': undefined, + }; + } + + parseOrder (order, market = undefined) { + // + // createOrder, editOrder, cancelOrder + // + // { + // "status":"sent", + // "id":385617863, + // "instrumentId":53, + // "clOrdId":"1613037510849637345", + // "userId":3583, + // "price":2000, + // "quantity":200, + // "ordType":2 + // } + // + // fetchOrders, fetchOrder + // + // { + // "orderId":385613629, + // "orderUpdateSeq":1, + // "clOrdId":"1613037448945798198", + // "symbol":"ETH/USDC", + // "instrumentId":53, + // "side":"1", + // "userId":3583, + // "account":3583, + // "execType":"4", + // "ordType":"2", + // "ordStatus":"C", + // "timeInForce":"3", + // "timeStamp":"20210211-09:57:28.944", + // "execId":0, + // "targetStrategy":0, + // "isHidden":false, + // "isReduceOnly":false, + // "isLiquidation":false, + // "fee":0, + // "feeTotal":0, + // "fee_scale":0, + // "feeInstrumentId":0, + // "price":999, + // "price_scale":2, + // "quantity":10000000, + // "quantity_scale":6, + // "leavesQty":10000000, + // "leavesQty_scale":6, + // "cumQty":0, + // "cumQty_scale":0, + // "lastPx":0, + // "lastPx_scale":2, + // "avgPx":0, + // "avgPx_scale":0, + // "lastQty":0, + // "lastQty_scale":6 + // } + // + let id = this.safeString2 (order, 'orderId', 'id'); + id = this.safeString (order, 'origOrderId', id); + const clientOrderId = this.safeString (order, 'clOrdId'); + const type = this.parseOrderType (this.safeString (order, 'ordType')); + const side = this.parseOrderSide (this.safeString (order, 'side')); + const status = this.parseOrderStatus (this.safeString (order, 'ordStatus')); + const marketId = this.safeString (order, 'instrumentId'); + const symbol = this.safeSymbol (marketId, market); + const timestamp = this.toMilliseconds (this.safeString (order, 'timeStamp')); + const lastTradeTimestamp = undefined; + let price = this.safeInteger (order, 'price'); + if (price === 0) { + price = undefined; + } + const priceScale = this.safeInteger (order, 'price_scale'); + price = this.convertFromScale (price, priceScale); + let amount = this.safeInteger (order, 'quantity'); + if (amount === 0) { + amount = undefined; + } + const amountScale = this.safeInteger (order, 'quantity_scale'); + amount = this.convertFromScale (amount, amountScale); + let filled = this.safeInteger (order, 'cumQty'); + const filledScale = this.safeInteger (order, 'cumQty_scale'); + filled = this.convertFromScale (filled, filledScale); + let remaining = this.safeInteger (order, 'leavesQty'); + const remainingScale = this.safeInteger (order, 'leavesQty_scale'); + remaining = this.convertFromScale (remaining, remainingScale); + if (remaining <= 0) { + if ((filled !== undefined) && (amount !== undefined) && (filled < amount)) { + remaining = undefined; + } + } + if ((remaining === undefined) && (amount !== undefined) && (filled !== undefined)) { + remaining = Math.max (amount - filled, 0); + } + let average = this.safeInteger (order, 'price', 0); + if (average === 0) { + average = undefined; + } + const averageScale = this.safeInteger (order, 'price_scale'); + average = this.convertFromScale (average, averageScale); + let cost = undefined; + if (filled !== 0) { + if (average > 0) { + cost = average * filled; + } else if (price > 0) { + cost = price * filled; + } + } + let fee = undefined; + const currencyId = this.safeInteger (order, 'feeInstrumentId'); + const feeCurrencyCode = this.safeCurrencyCode (currencyId); + let feeCost = this.safeInteger (order, 'feeTotal'); + const feeScale = this.safeInteger (order, 'fee_scale'); + if (feeCost !== undefined) { + feeCost = -feeCost; + feeCost = this.convertFromScale (feeCost, feeScale); + } + if (feeCost !== undefined) { + fee = { + 'currency': feeCurrencyCode, + 'cost': feeCost, + 'rate': undefined, + }; + } + let timeInForce = this.parseTimeInForce (this.safeString (order, 'timeInForce')); + if (timeInForce === '0') { + timeInForce = undefined; + } + const stopPriceScale = this.safeInteger (order, 'stopPx_scale', 0); + const stopPrice = this.convertFromScale (this.safeInteger (order, 'stopPx'), stopPriceScale); + return { + 'info': order, + 'id': id, + 'clientOrderId': clientOrderId, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'lastTradeTimestamp': lastTradeTimestamp, + 'symbol': symbol, + 'type': type, + 'timeInForce': timeInForce, + 'postOnly': undefined, + 'side': side, + 'price': price, + 'stopPrice': stopPrice, + 'amount': amount, + 'cost': cost, + 'average': average, + 'filled': filled, + 'remaining': remaining, + 'status': status, + 'fee': fee, + 'trades': undefined, + }; + } + + parseOrderStatus (status) { + const statuses = { + '0': 'open', + '1': 'open', // 'partially filled', + '2': 'closed', // 'filled', + '3': 'open', // 'done for day', + '4': 'canceled', + '5': 'canceled', // 'replaced', + '6': 'canceling', // 'pending cancel', + '7': 'canceled', // 'stopped', + '8': 'rejected', // 'rejected', + '9': 'canceled', // 'suspended', + 'A': 'open', // 'pending new', + 'B': 'open', // 'calculated', + 'C': 'expired', + 'D': 'open', // 'accepted for bidding', + 'E': 'canceling', // 'pending replace', + 'F': 'open', // 'partial fill or fill', + }; + return this.safeString (statuses, status, status); + } + + parseOrderSide (side) { + const sides = { + '1': 'buy', + '2': 'sell', + }; + return this.safeString (sides, side, side); + } + + parseOrderType (type) { + const types = { + '1': 'market', + '2': 'limit', + '3': 'stop', + '4': 'stop limit', + }; + return this.safeString (types, type, type); + } + + parseTimeInForce (timeInForce) { + const timeInForces = { + '1': 'GTC', // Good Till Canceled + '3': 'IOC', // Immediate or Cancel + '4': 'FOK', // Fill or Kill + '5': 'GTX', // Good Till Crossing (GTX) + '6': 'GTD', // Good Till Date + }; + return this.safeString (timeInForces, timeInForce, timeInForce); + } + + toMilliseconds (dateString) { + if (dateString === undefined) { + return dateString; + } + // '20200328-10:31:01.575' -> '2020-03-28 12:42:48.000' + const splits = dateString.split ('-'); + const partOne = this.safeString (splits, 0); + const partTwo = this.safeString (splits, 1); + if (partOne === undefined || partTwo === undefined) { + return undefined; + } + if (partOne.length !== 8) { + return undefined; + } + const date = partOne.slice (0, 4) + '-' + partOne.slice (4, 6) + '-' + partOne.slice (6, 8); + return this.parse8601 (date + ' ' + partTwo); + } + + convertFromScale (number, scale) { + if ((number === undefined) || (scale === undefined)) { + return undefined; + } + return this.fromWei (number, scale); + } + + getScale (num) { + const s = this.numberToString (num); + return this.precisionFromString (s); + } + + convertToScale (number, scale) { + if ((number === undefined) || (scale === undefined)) { + return undefined; + } + return parseInt (this.toWei (number, scale)); + } + + nonce () { + return this.milliseconds (); + } + + handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { + if (response === undefined) { + return; // fallback to default error handler + } + const error = this.safeString (response, 'error'); + if (error !== undefined) { + const feedback = this.id + ' ' + body; + this.throwExactlyMatchedException (this.exceptions, error, feedback); + this.throwBroadlyMatchedException (this.exceptions, body, feedback); + throw new ExchangeError (this.id + ' ' + body); + } + } + + sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { + let url = this.implodeParams (path, params); + let query = this.omit (params, this.extractParams (path)); + if (api === 'public') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } else if (api === 'private') { + // special case for getUserHistory + const format = this.safeValue (params, 'format'); + const type = this.safeValue (params, 'type'); + const extension = {}; + if (format !== undefined) { + extension['format'] = format; + } + if (type !== undefined) { + extension['type'] = type; + } + if (Object.keys (extension).length) { + url += '?' + this.urlencode (extension); + } + params = this.omit (params, [ 'format', 'type' ]); + this.checkRequiredCredentials (); + const nonce = this.nonce (); + query = this.extend (query, { + 'userId': this.uid, + 'nonce': nonce, + }); + params['nonce'] = this.nonce (); + body = this.json (query); + const signature = this.hmac (this.encode (body), this.encode (this.secret), 'sha384'); + headers = { + 'Content-Type': 'application/json', + 'requestToken': this.apiKey, + 'signature': signature, + }; + } + url = this.urls['api'][api] + '/' + url; + return { 'url': url, 'method': method, 'body': body, 'headers': headers }; + } +}; + +},{"./base/Exchange":6,"./base/errors":8}],81:[function(require,module,exports){ 'use strict'; // ---------------------------------------------------------------------------- @@ -61506,7 +66709,7 @@ module.exports = class eterbase extends Exchange { request['start'] = now - duration * limit * 1000; request['end'] = now; } else { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a since argument, or a limit argument, or both'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a since argument, or a limit argument, or both'); } await this.loadMarkets (); const market = this.market (symbol); @@ -61708,6 +66911,7 @@ module.exports = class eterbase extends Exchange { } const timeInForce = this.safeString (order, 'timeInForce'); const stopPrice = this.safeFloat (order, 'stopPrice'); + const postOnly = this.safeValue (order, 'postOnly'); return { 'info': order, 'id': id, @@ -61717,8 +66921,9 @@ module.exports = class eterbase extends Exchange { 'lastTradeTimestamp': undefined, 'symbol': symbol, 'type': type, - 'side': side, 'timeInForce': timeInForce, + 'postOnly': postOnly, + 'side': side, 'price': price, 'stopPrice': stopPrice, 'amount': amount, @@ -62041,7 +67246,7 @@ module.exports = class eterbase extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],79:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],82:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -62746,7 +67951,7 @@ module.exports = class exmo extends Exchange { const now = this.milliseconds (); if (since === undefined) { if (limit === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a since argument or a limit argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a since argument or a limit argument'); } else { if (limit > maxLimit) { throw new BadRequest (this.id + ' fetchOHLCV will serve ' + maxLimit.toString () + ' candles at most'); @@ -63362,6 +68567,7 @@ module.exports = class exmo extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -63480,12 +68686,21 @@ module.exports = class exmo extends Exchange { const type = this.safeString (transaction, 'type'); const currencyId = this.safeString (transaction, 'curr'); const code = this.safeCurrencyCode (currencyId, currency); - let address = this.safeString (transaction, 'account'); - if (address !== undefined) { - const parts = address.split (':'); - const numParts = parts.length; - if (numParts === 2) { - address = parts[1].replace (' ', ''); + let address = undefined; + const tag = undefined; + let comment = undefined; + const account = this.safeString (transaction, 'account'); + if (type === 'deposit') { + comment = account; + } else if (type === 'withdrawal') { + address = account; + if (address !== undefined) { + const parts = address.split (':'); + const numParts = parts.length; + if (numParts === 2) { + address = this.safeString (parts, 1); + address = address.replace (' ', ''); + } } } let fee = undefined; @@ -63513,16 +68728,21 @@ module.exports = class exmo extends Exchange { return { 'info': transaction, 'id': undefined, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), 'currency': code, 'amount': amount, 'address': address, - 'tag': undefined, // refix it properly + 'addressTo': address, + 'addressFrom': undefined, + 'tag': tag, + 'tagTo': tag, + 'tagFrom': undefined, 'status': status, 'type': type, 'updated': undefined, + 'comment': comment, 'txid': txid, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), 'fee': fee, }; } @@ -63634,7 +68854,7 @@ module.exports = class exmo extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],80:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],83:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -63963,6 +69183,7 @@ module.exports = class exx extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': order['type'], 'price': price, 'stopPrice': undefined, @@ -64024,7 +69245,7 @@ module.exports = class exx extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } const market = this.market (symbol); const request = { @@ -64099,7 +69320,7 @@ module.exports = class exx extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],81:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],84:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -64694,6 +69915,7 @@ module.exports = class fcoin extends Exchange { 'symbol': symbol, 'type': orderType, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -64843,7 +70065,7 @@ module.exports = class fcoin extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],82:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],85:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -64869,7 +70091,7 @@ module.exports = class fcoinjp extends fcoin { } }; -},{"./fcoin.js":81}],83:[function(require,module,exports){ +},{"./fcoin.js":84}],86:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -65118,7 +70340,7 @@ module.exports = class flowbtc extends Exchange { }; return await this.privatePostCancelOrder (this.extend (request, params)); } - throw new ExchangeError (this.id + ' requires `ins` symbol parameter for cancelling an order'); + throw new ExchangeError (this.id + ' cancelOrder() requires an `ins` symbol parameter for cancelling an order'); } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { @@ -65155,7 +70377,7 @@ module.exports = class flowbtc extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],84:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],87:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -65420,14 +70642,14 @@ module.exports = class foxbit extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],85:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],88:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); const { TICK_SIZE } = require ('./base/functions/number'); -const { ExchangeError, InvalidOrder, BadRequest, InsufficientFunds, OrderNotFound, AuthenticationError } = require ('./base/errors'); +const { ExchangeError, InvalidOrder, BadRequest, InsufficientFunds, OrderNotFound, AuthenticationError, RateLimitExceeded, ExchangeNotAvailable, CancelPending } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -65437,7 +70659,7 @@ module.exports = class ftx extends Exchange { 'id': 'ftx', 'name': 'FTX', 'countries': [ 'HK' ], - 'rateLimit': 100, + 'rateLimit': 50, 'certified': true, 'pro': true, 'hostname': 'ftx.com', // or ftx.us @@ -65522,9 +70744,12 @@ module.exports = class ftx extends Exchange { 'wallet/coins', 'wallet/balances', 'wallet/all_balances', - 'wallet/deposit_address/{coin}', + 'wallet/deposit_address/{coin}', // ?method={method} 'wallet/deposits', 'wallet/withdrawals', + 'wallet/withdrawal_fee', + 'wallet/airdrops', + 'wallet/saved_addresses', 'orders', // ?market={market} 'orders/history', // ?market={market} 'orders/{order_id}', @@ -65532,6 +70757,14 @@ module.exports = class ftx extends Exchange { 'conditional_orders', // ?market={market} 'conditional_orders/{conditional_order_id}/triggers', 'conditional_orders/history', // ?market={market} + 'spot_margin/borrow_rates', + 'spot_margin/lending_rates', + 'spot_margin/borrow_summary', + 'spot_margin/market_info', // ?market={market} + 'spot_margin/borrow_history', + 'spot_margin/lending_history', + 'spot_margin/offers', + 'spot_margin/lending_info', 'fills', // ?market={market} 'funding_payments', // leverage tokens @@ -65550,15 +70783,23 @@ module.exports = class ftx extends Exchange { 'options/account_info', 'options/positions', 'options/fills', + // staking + 'staking/stakes', + 'staking/unstake_requests', + 'staking/balances', + 'staking/staking_rewards', ], 'post': [ 'account/leverage', 'wallet/withdrawals', + 'wallet/saved_addresses', 'orders', 'conditional_orders', 'orders/{order_id}/modify', 'orders/by_client_id/{client_order_id}/modify', 'conditional_orders/{order_id}/modify', + // spot margin + 'spot_margin/offers', // leverage tokens 'lt/{token_name}/create', 'lt/{token_name}/redeem', @@ -65573,8 +70814,12 @@ module.exports = class ftx extends Exchange { 'options/requests', 'options/requests/{request_id}/quotes', 'options/quotes/{quote_id}/accept', + // staking + 'staking/unstake_requests', + 'srm_stakes/stakes', ], 'delete': [ + 'wallet/saved_addresses/{saved_address_id}', 'orders/{order_id}', 'orders/by_client_id/{client_order_id}', 'orders', @@ -65584,6 +70829,8 @@ module.exports = class ftx extends Exchange { // options 'options/requests/{request_id}', 'options/quotes/{quote_id}', + // staking + 'staking/unstake_requests/{request_id}', ], }, }, @@ -65618,6 +70865,8 @@ module.exports = class ftx extends Exchange { }, 'exceptions': { 'exact': { + 'Please slow down': RateLimitExceeded, // {"error":"Please slow down","success":false} + 'Size too small for provide': InvalidOrder, // {"error":"Size too small for provide","success":false} 'Not logged in': AuthenticationError, // {"error":"Not logged in","success":false} 'Not enough balances': InsufficientFunds, // {"error":"Not enough balances","success":false} 'InvalidPrice': InvalidOrder, // {"error":"Invalid price","success":false} @@ -65625,13 +70874,20 @@ module.exports = class ftx extends Exchange { 'Missing parameter price': InvalidOrder, // {"error":"Missing parameter price","success":false} 'Order not found': OrderNotFound, // {"error":"Order not found","success":false} 'Order already closed': InvalidOrder, // {"error":"Order already closed","success":false} + 'Trigger price too high': InvalidOrder, // {"error":"Trigger price too high","success":false} + 'Trigger price too low': InvalidOrder, // {"error":"Trigger price too low","success":false} + 'Order already queued for cancellation': CancelPending, // {"error":"Order already queued for cancellation","success":false} }, 'broad': { + 'Account does not have enough margin for order': InsufficientFunds, 'Invalid parameter': BadRequest, // {"error":"Invalid parameter start_time","success":false} 'The requested URL was not found on the server': BadRequest, 'No such coin': BadRequest, 'No such market': BadRequest, - 'An unexpected error occurred': ExchangeError, // {"error":"An unexpected error occurred, please try again later (58BC21C795).","success":false} + 'Do not send more than': RateLimitExceeded, + 'An unexpected error occurred': ExchangeNotAvailable, // {"error":"An unexpected error occurred, please try again later (58BC21C795).","success":false} + 'Please retry request': ExchangeNotAvailable, // {"error":"Please retry request","success":false} + 'Please try again': ExchangeNotAvailable, // {"error":"Please try again","success":false} }, }, 'precisionMode': TICK_SIZE, @@ -65761,7 +71017,7 @@ module.exports = class ftx extends Exchange { 'amount': sizeIncrement, 'price': priceIncrement, }; - const entry = { + result.push ({ 'id': id, 'symbol': symbol, 'base': base, @@ -65788,8 +71044,7 @@ module.exports = class ftx extends Exchange { }, }, 'info': market, - }; - result.push (entry); + }); } return result; } @@ -66088,22 +71343,39 @@ module.exports = class ftx extends Exchange { // "type": "order" // } // + // { + // "baseCurrency": "BTC", + // "fee": 0, + // "feeCurrency": "USD", + // "feeRate": 0, + // "future": null, + // "id": 664079556, + // "liquidity": "taker", + // "market": null, + // "orderId": null, + // "price": 34830.61359, + // "quoteCurrency": "USD", + // "side": "sell", + // "size": 0.0005996, + // "time": "2021-01-15T16:05:29.246135+00:00", + // "tradeId": null, + // "type": "otc" + // } + // const id = this.safeString (trade, 'id'); const takerOrMaker = this.safeString (trade, 'liquidity'); const marketId = this.safeString (trade, 'market'); let symbol = undefined; - if (marketId !== undefined) { - if (marketId in this.markets_by_id) { - market = this.markets_by_id[marketId]; - symbol = market['symbol']; + if (marketId in this.markets_by_id) { + market = this.markets_by_id[marketId]; + symbol = market['symbol']; + } else { + const base = this.safeCurrencyCode (this.safeString (trade, 'baseCurrency')); + const quote = this.safeCurrencyCode (this.safeString (trade, 'quoteCurrency')); + if ((base !== undefined) && (quote !== undefined)) { + symbol = base + '/' + quote; } else { - const base = this.safeCurrencyCode (this.safeString (trade, 'baseCurrency')); - const quote = this.safeCurrencyCode (this.safeString (trade, 'quoteCurrency')); - if ((base !== undefined) && (quote !== undefined)) { - symbol = base + '/' + quote; - } else { - symbol = marketId; - } + symbol = marketId; } } const timestamp = this.parse8601 (this.safeString (trade, 'time')); @@ -66421,6 +71693,7 @@ module.exports = class ftx extends Exchange { const lastTradeTimestamp = this.parse8601 (this.safeString (order, 'triggeredAt')); const clientOrderId = this.safeString (order, 'clientId'); const stopPrice = this.safeFloat (order, 'triggerPrice'); + const postOnly = this.safeValue (order, 'postOnly'); return { 'info': order, 'id': id, @@ -66431,6 +71704,7 @@ module.exports = class ftx extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -66568,12 +71842,12 @@ module.exports = class ftx extends Exchange { } } else { if (clientOrderId === undefined) { + method = 'privatePostOrdersOrderIdModify'; + request['order_id'] = id; + } else { method = 'privatePostOrdersByClientIdClientOrderIdModify'; request['client_order_id'] = clientOrderId; // request['clientId'] = clientOrderId; - } else { - method = 'privatePostOrdersOrderIdModify'; - request['order_id'] = id; } if (price !== undefined) { request['price'] = parseFloat (this.priceToPrecision (symbol, price)); @@ -66639,9 +71913,7 @@ module.exports = class ftx extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { await this.loadMarkets (); - const request = { - 'order_id': parseInt (id), - }; + const request = {}; // support for canceling conditional orders // https://github.com/ccxt/ccxt/issues/6669 const options = this.safeValue (this.options, 'cancelOrder', {}); @@ -66674,8 +71946,8 @@ module.exports = class ftx extends Exchange { await this.loadMarkets (); const request = { // 'market': market['id'], // optional - 'conditionalOrdersOnly': false, // cancel conditional orders only - 'limitOrdersOnly': false, // cancel existing limit orders (non-conditional orders) only + // 'conditionalOrdersOnly': false, // cancel conditional orders only + // 'limitOrdersOnly': false, // cancel existing limit orders (non-conditional orders) only }; const marketId = this.getMarketId (symbol, 'market', params); if (marketId !== undefined) { @@ -66844,6 +72116,7 @@ module.exports = class ftx extends Exchange { } if (since !== undefined) { request['start_time'] = parseInt (since / 1000); + request['end_time'] = this.seconds (); } const response = await this.privateGetFills (this.extend (request, params)); // @@ -67033,6 +72306,15 @@ module.exports = class ftx extends Exchange { // "txid": "0x8078356ae4b06a036d64747546c274af19581f1c78c510b60505798a7ffcaf1" // } // + // { + // "coin": 'BTC', + // "id": 1969806, + // "notes": 'Transfer to Dd6gi7m2Eg4zzBbPAxuwfEaHs6tYvyUX5hbPpsTcNPXo', + // "size": 0.003, + // "status": 'complete', + // "time": '2021-02-03T20:28:54.918146+00:00' + // } + // const code = this.safeCurrencyCode (this.safeString (transaction, 'coin')); const id = this.safeString (transaction, 'id'); const amount = this.safeFloat (transaction, 'size'); @@ -67045,8 +72327,14 @@ module.exports = class ftx extends Exchange { tag = this.safeString (address, 'tag'); address = this.safeString (address, 'address'); } + if (address === undefined) { + // parse address from internal transfer + const notes = this.safeString (transaction, 'notes'); + if (notes !== undefined) { + address = notes.slice (12); + } + } const fee = this.safeFloat (transaction, 'fee'); - const type = ('destinationName' in transaction) ? 'withdrawal' : 'deposit'; return { 'info': transaction, 'id': id, @@ -67059,7 +72347,7 @@ module.exports = class ftx extends Exchange { 'tagFrom': undefined, 'tag': tag, 'tagTo': tag, - 'type': type, + 'type': undefined, 'amount': amount, 'currency': code, 'status': status, @@ -67097,7 +72385,7 @@ module.exports = class ftx extends Exchange { if (code !== undefined) { currency = this.currency (code); } - return this.parseTransactions (result, currency, since, limit); + return this.parseTransactions (result, currency, since, limit, { 'type': 'deposit' }); } async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { @@ -67124,7 +72412,7 @@ module.exports = class ftx extends Exchange { if (code !== undefined) { currency = this.currency (code); } - return this.parseTransactions (result, currency, since, limit); + return this.parseTransactions (result, currency, since, limit, { 'type': 'withdrawal' }); } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { @@ -67181,7 +72469,7 @@ module.exports = class ftx extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],86:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],89:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -67351,6 +72639,7 @@ module.exports = class gateio extends Exchange { 'BOX': 'DefiBox', 'BTCBEAR': 'BEAR', 'BTCBULL': 'BULL', + 'SBTC': 'Super Bitcoin', 'TNC': 'Trinity Network Credit', }, }); @@ -67874,6 +73163,7 @@ module.exports = class gateio extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -67914,7 +73204,7 @@ module.exports = class gateio extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires symbol argument'); } await this.loadMarkets (); const request = { @@ -67937,13 +73227,13 @@ module.exports = class gateio extends Exchange { if ((address !== undefined) && (address.indexOf ('address') >= 0)) { throw new InvalidAddress (this.id + ' queryDepositAddress ' + address); } - if (code === 'XRP') { + if ((code === 'XRP') || (code === 'HBAR') || (code === 'STEEM') || (code === 'XLM') || (code === 'EOS')) { const parts = address.split (' '); address = parts[0]; tag = parts[1]; } return { - 'currency': currency, + 'currency': code, 'address': address, 'tag': tag, 'info': response, @@ -67970,7 +73260,7 @@ module.exports = class gateio extends Exchange { async fetchOrderTrades (id, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrderTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -67984,7 +73274,7 @@ module.exports = class gateio extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -68066,21 +73356,21 @@ module.exports = class gateio extends Exchange { // withdrawal // // { - // 'id': 'w5864259', - // 'currency': 'ETH', - // 'address': '0x72632f462....', - // 'amount': '0.4947', - // 'txid': '0x111167d120f736....', - // 'timestamp': '1553123688', - // 'status': 'DONE', - // 'type': 'withdrawal' - // } + // "id": "w6754336", + // "fee": "0.1", + // "txid": "zzyy", + // "amount": "1", + // "status": "DONE", + // "address": "tz11234", + // "currency": "XTZ", + // "timestamp": "1561030206" + // } // const currencyId = this.safeString (transaction, 'currency'); const code = this.safeCurrencyCode (currencyId, currency); const id = this.safeString (transaction, 'id'); const txid = this.safeString (transaction, 'txid'); - const amount = this.safeFloat (transaction, 'amount'); + let amount = this.safeFloat (transaction, 'amount'); let address = this.safeString (transaction, 'address'); if (address === 'false') { address = undefined; @@ -68088,6 +73378,17 @@ module.exports = class gateio extends Exchange { const timestamp = this.safeTimestamp (transaction, 'timestamp'); const status = this.parseTransactionStatus (this.safeString (transaction, 'status')); const type = this.parseTransactionType (id[0]); + const feeCost = this.safeFloat (transaction, 'fee'); + let fee = undefined; + if (feeCost !== undefined) { + fee = { + 'currency': code, + 'cost': feeCost, + }; + if (amount !== undefined) { + amount = amount - feeCost; + } + } return { 'info': transaction, 'id': id, @@ -68100,7 +73401,7 @@ module.exports = class gateio extends Exchange { 'type': type, 'timestamp': timestamp, 'datetime': this.iso8601 (timestamp), - 'fee': undefined, + 'fee': fee, }; } @@ -68166,7 +73467,7 @@ module.exports = class gateio extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],87:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],90:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -68838,6 +74139,7 @@ module.exports = class gemini extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -68901,7 +74203,7 @@ module.exports = class gemini extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -69078,7 +74380,1356 @@ module.exports = class gemini extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],88:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],91:[function(require,module,exports){ +'use strict'; + +// --------------------------------------------------------------------------- + +const Exchange = require ('./base/Exchange'); +const { ExchangeError, InvalidOrder, AuthenticationError, InsufficientFunds, BadSymbol, OrderNotFound, InvalidAddress, BadRequest } = require ('./base/errors'); +const { TRUNCATE, ROUND, TICK_SIZE } = require ('./base/functions/number'); + +// --------------------------------------------------------------------------- + +module.exports = class gopax extends Exchange { + describe () { + return this.deepExtend (super.describe (), { + 'id': 'gopax', + 'name': 'GOPAX', + 'countries': [ 'KR' ], // South Korea + 'version': 'v1', + 'rateLimit': 50, + 'hostname': 'gopax.co.kr', // or 'gopax.com' + 'certified': true, + 'pro': true, + 'has': { + 'cancelOrder': true, + 'createMarketOrder': true, + 'createOrder': true, + 'fetchBalance': true, + 'fetchCurrencies': true, + 'fetchDepositAddress': 'emulated', + 'fetchDepositAddresses': true, + 'fetchMarkets': true, + 'fetchMyTrades': true, + 'fetchOHLCV': true, + 'fetchOpenOrders': true, + 'fetchOrder': true, + 'fetchOrderBook': true, + 'fetchOrders': true, + 'fetchTicker': true, + 'fetchTickers': true, + 'fetchTime': true, + 'fetchTrades': true, + 'fetchTransactions': true, + }, + 'timeframes': { + '1m': '1', + '5m': '5', + '30m': '30', + '1d': '1440', + }, + 'urls': { + 'logo': 'https://user-images.githubusercontent.com/1294454/102897212-ae8a5e00-4478-11eb-9bab-91507c643900.jpg', + 'api': { + 'public': 'https://api.{hostname}', // or 'https://api.gopax.co.kr' + 'private': 'https://api.{hostname}', + }, + 'www': 'https://www.gopax.co.kr', + 'doc': 'https://gopax.github.io/API/index.en.html', + 'fees': 'https://www.gopax.com/feeinfo', + }, + 'api': { + 'public': { + 'get': [ + 'notices', + 'assets', + 'price-tick-size', + 'trading-pairs', + 'trading-pairs/{tradingPair}/ticker', + 'trading-pairs/{tradingPair}/book', + 'trading-pairs/{tradingPair}/trades', + 'trading-pairs/{tradingPair}/stats', + 'trading-pairs/{tradingPair}/price-tick-size', + 'trading-pairs/stats', + 'trading-pairs/{tradingPair}/candles', + 'time', + ], + }, + 'private': { + 'get': [ + 'balances', + 'balances/{assetName}', + 'orders', + 'orders/{orderId}', + 'orders/clientOrderId/{clientOrderId}', + 'trades', + 'deposit-withdrawal-status', + 'crypto-deposit-addresses', + 'crypto-withdrawal-addresses', + ], + 'post': [ + 'orders', + ], + 'delete': [ + 'orders/{orderId}', + 'orders/clientOrderId/{clientOrderId}', + ], + }, + }, + 'fees': { + 'trading': { + 'percentage': true, + 'tierBased': false, + 'maker': 0.04 / 100, + 'taker': 0.04 / 100, + }, + }, + 'exceptions': { + 'broad': { + 'ERROR_INVALID_ORDER_TYPE': InvalidOrder, + 'ERROR_INVALID_AMOUNT': InvalidOrder, + 'ERROR_INVALID_TRADING_PAIR': BadSymbol, // Unlikely to be triggered, due to ccxt.gopax.js implementation + 'No such order ID': OrderNotFound, // {"errorMessage":"No such order ID","errorCode":202,"errorData":"Order server error: 202"} + // 'Not enough amount': InsufficientFunds, // {"errorMessage":"Not enough amount, try increasing your order amount","errorCode":10212,"errorData":{}} + 'Forbidden order type': InvalidOrder, + 'the client order ID will be reusable which order has already been completed or canceled': InvalidOrder, + 'ERROR_NO_SUCH_TRADING_PAIR': BadSymbol, // Unlikely to be triggered, due to ccxt.gopax.js implementation + 'ERROR_INVALID_ORDER_SIDE': InvalidOrder, + 'ERROR_NOT_HEDGE_TOKEN_USER': InvalidOrder, + 'ORDER_EVENT_ERROR_NOT_ALLOWED_BID_ORDER': InvalidOrder, // Triggered only when the exchange is locked + 'ORDER_EVENT_ERROR_INSUFFICIENT_BALANCE': InsufficientFunds, + 'Invalid option combination': InvalidOrder, + 'No such client order ID': OrderNotFound, + }, + 'exact': { + '100': BadSymbol, // Invalid asset name + '101': BadSymbol, // Invalid trading pair + '103': InvalidOrder, // Invalid order type + '104': BadSymbol, // Invalid trading pair + '105': BadSymbol, // Trading pair temporarily disabled + '106': BadSymbol, // Invalid asset name + '107': InvalidOrder, // Invalid order amount + '108': InvalidOrder, // Invalid order price + '111': InvalidOrder, // Invalid event type + '201': InsufficientFunds, // Not enough balance + '202': InvalidOrder, // Invalid order ID + '203': InvalidOrder, // Order amount X order price too large + '204': InvalidOrder, // Bid order temporarily unavailable + '205': InvalidOrder, // Invalid side + '206': InvalidOrder, // Invalid order option combination + '10004': AuthenticationError, // Not authorized + // '10004': ExchangeError, // API key not exist + // '10004': ExchangeError, // User KYC not approved + // '10004': ExchangeError, // User account is frozen + // '10004': ExchangeError, // User is under deactivation process + // '10004': ExchangeError, // 2FA is not enabled + // '10004': ExchangeError, // Invalid signature + '10041': BadRequest, // Invalid exchange + '10056': BadRequest, // No registered asset + '10057': BadSymbol, // No registered trading pair + '10059': BadSymbol, // Invalid trading pair + '10062': BadRequest, // Invalid chart interval + '10069': OrderNotFound, // {"errorMessage":"No such order ID: 73152094","errorCode":10069,"errorData":"73152094"} + '10155': AuthenticationError, // {"errorMessage":"Invalid API key","errorCode":10155} + '10166': BadRequest, // Invalid chart range + '10212': InvalidOrder, // {"errorMessage":"Not enough amount, try increasing your order amount","errorCode":10212,"errorData":{}} + '10221': OrderNotFound, // No such client order ID + '10222': InvalidOrder, // Client order ID being used + '10223': InvalidOrder, // Soon the client order ID will be reusable which order has already been completed or canceled + '10227': InvalidOrder, // Invalid client order ID format + '10319': BadRequest, // Pagination is required as you have too many orders + '10358': InvalidOrder, // Invalid order type + '10359': InvalidOrder, // Invalid order side + '10360': InvalidOrder, // Invalid order status + '10361': InvalidOrder, // Invalid order time in force + '10362': InvalidOrder, // Invalid order protection + '10363': InvalidOrder, // Invalid forced completion reason + }, + }, + 'options': { + 'createMarketBuyOrderRequiresPrice': true, + }, + }); + } + + async fetchTime (params = {}) { + const response = await this.publicGetTime (params); + // + // {"serverTime":1608327726656} + // + return this.safeInteger (response, 'serverTime'); + } + + async fetchMarkets (params = {}) { + const response = await this.publicGetTradingPairs (params); + // + // [ + // { + // "id":1, + // "name":"ETH-KRW", + // "baseAsset":"ETH", + // "quoteAsset":"KRW", + // "baseAssetScale":8, + // "quoteAssetScale":0, + // "priceMin":1, + // "restApiOrderAmountMin":{ + // "limitAsk":{"amount":10000,"unit":"KRW"}, + // "limitBid":{"amount":10000,"unit":"KRW"}, + // "marketAsk":{"amount":0.001,"unit":"ETH"}, + // "marketBid":{"amount":10000,"unit":"KRW"}, + // }, + // "makerFeePercent":0.2, + // "takerFeePercent":0.2, + // }, + // ] + // + const result = []; + for (let i = 0; i < response.length; i++) { + const market = response[i]; + const id = this.safeString (market, 'name'); + const numericId = this.safeInteger (market, 'id'); + const baseId = this.safeString (market, 'baseAsset'); + const quoteId = this.safeString (market, 'quoteAsset'); + const base = this.safeCurrencyCode (baseId); + const quote = this.safeCurrencyCode (quoteId); + const symbol = base + '/' + quote; + const precision = { + 'price': this.safeInteger (market, 'quoteAssetScale'), + 'amount': this.safeInteger (market, 'baseAssetScale'), + }; + const minimums = this.safeValue (market, 'restApiOrderAmountMin', {}); + const marketAsk = this.safeValue (minimums, 'marketAsk', {}); + const marketBid = this.safeValue (minimums, 'marketBid', {}); + const takerFeePercent = this.safeFloat (market, 'takerFeePercent'); + const makerFeePercent = this.safeFloat (market, 'makerFeePercent'); + const taker = parseFloat (this.decimalToPrecision (takerFeePercent / 100, ROUND, 0.00000001, TICK_SIZE)); + const maker = parseFloat (this.decimalToPrecision (makerFeePercent / 100, ROUND, 0.00000001, TICK_SIZE)); + result.push ({ + 'id': id, + 'info': market, + 'numericId': numericId, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'baseId': this.safeString (market, 'baseAsset'), + 'quoteId': this.safeString (market, 'quoteAsset'), + 'active': true, + 'taker': taker, + 'maker': maker, + 'precision': precision, + 'limits': { + 'amount': { + 'min': this.safeFloat (marketAsk, 'amount'), + 'max': undefined, + }, + 'price': { + 'min': this.safeFloat (market, 'priceMin'), + 'max': undefined, + }, + 'cost': { + 'min': this.safeFloat (marketBid, 'amount'), + 'max': undefined, + }, + }, + }); + } + return result; + } + + async fetchCurrencies (params = {}) { + const response = await this.publicGetAssets (params); + // + // [ + // { + // "id":"KRW", + // "name":"대한민국 원", + // "scale":0, + // "withdrawalFee":1000, + // "withdrawalAmountMin":5000 + // }, + // { + // "id":"ETH", + // "name":"이더리움", + // "scale":8, + // "withdrawalFee":0.03, + // "withdrawalAmountMin":0.015 + // }, + // ] + // + const result = {}; + for (let i = 0; i < response.length; i++) { + const currency = response[i]; + const id = this.safeString (currency, 'id'); + const code = this.safeCurrencyCode (id); + const name = this.safeString (currency, 'name'); + const fee = this.safeFloat (currency, 'withdrawalFee'); + const precision = this.safeFloat (currency, 'scale'); + result[code] = { + 'id': id, + 'info': currency, + 'code': code, + 'name': name, + 'active': true, + 'fee': fee, + 'precision': precision, + 'limits': { + 'amount': { + 'min': undefined, + 'max': undefined, + }, + 'price': { + 'min': undefined, + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + 'withdraw': { + 'min': this.safeFloat (currency, 'withdrawalAmountMin'), + 'max': undefined, + }, + }, + }; + } + return result; + } + + async fetchOrderBook (symbol, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'tradingPair': market['id'], + // 'level': 3, // 1 best bidask, 2 top 50 bidasks, 3 all bidasks + }; + const response = await this.publicGetTradingPairsTradingPairBook (this.extend (request, params)); + // + // { + // "sequence":17691957, + // "bid":[ + // ["17690499",25019000,0.00008904,"1608326468921"], + // ["17691894",25010000,0.4295,"1608326499940"], + // ["17691895",25009000,0.2359,"1608326499953"], + // ], + // "ask":[ + // ["17689176",25024000,0.000098,"1608326442006"], + // ["17691351",25031000,0.206,"1608326490418"], + // ["17691571",25035000,0.3996,"1608326493742"], + // ] + // } + // + const nonce = this.safeInteger (response, 'sequence'); + const result = this.parseOrderBook (response, undefined, 'bid', 'ask', 1, 2); + result['nonce'] = nonce; + return result; + } + + parseTicker (ticker, market = undefined) { + // + // fetchTicker + // + // { + // "price":25087000, + // "ask":25107000, + // "askVolume":0.05837704, + // "bid":25087000, + // "bidVolume":0.00398628, + // "volume":350.09171591, + // "quoteVolume":8721016926.06529, + // "time":"2020-12-18T21:42:13.774Z", + // } + // + // fetchTickers + // + // { + // "name":"ETH-KRW", + // "open":690500, + // "high":719500, + // "low":681500, + // "close":709500, + // "volume":2784.6081544, + // "time":"2020-12-18T21:54:50.795Z" + // } + // + const marketId = this.safeString (ticker, 'name'); + const symbol = this.safeSymbol (marketId, market, '-'); + const timestamp = this.parse8601 (this.safeString (ticker, 'time')); + const open = this.safeFloat (ticker, 'open'); + const last = this.safeFloat2 (ticker, 'price', 'close'); + let change = undefined; + let percentage = undefined; + let average = undefined; + if ((last !== undefined) && (open !== undefined)) { + average = this.sum (last, open) / 2; + change = last - open; + if (open > 0) { + percentage = change / open * 100; + } + } + const baseVolume = this.safeFloat (ticker, 'volume'); + const quoteVolume = this.safeFloat (ticker, 'quoteVolume'); + const vwap = this.vwap (baseVolume, quoteVolume); + return { + 'symbol': symbol, + 'info': ticker, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'high': this.safeFloat (ticker, 'high'), + 'low': this.safeFloat (ticker, 'low'), + 'bid': this.safeFloat (ticker, 'bid'), + 'bidVolume': this.safeFloat (ticker, 'bidVolume'), + 'ask': this.safeFloat (ticker, 'ask'), + 'askVolume': this.safeFloat (ticker, 'askVolume'), + 'vwap': vwap, + 'open': open, + 'close': last, + 'last': last, + 'previousClose': undefined, + 'change': change, + 'percentage': percentage, + 'average': average, + 'baseVolume': baseVolume, + 'quoteVolume': quoteVolume, + }; + } + + async fetchTicker (symbol, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'tradingPair': market['id'], + }; + const response = await this.publicGetTradingPairsTradingPairTicker (this.extend (request, params)); + // + // { + // "price":25087000, + // "ask":25107000, + // "askVolume":0.05837704, + // "bid":25087000, + // "bidVolume":0.00398628, + // "volume":350.09171591, + // "quoteVolume":8721016926.06529, + // "time":"2020-12-18T21:42:13.774Z", + // } + // + return this.parseTicker (response, market); + } + + parseTickers (rawTickers, symbols = undefined) { + const tickers = []; + for (let i = 0; i < rawTickers.length; i++) { + tickers.push (this.parseTicker (rawTickers[i])); + } + return this.filterByArray (tickers, 'symbol', symbols); + } + + async fetchTickers (symbols = undefined, params = {}) { + await this.loadMarkets (); + const response = await this.publicGetTradingPairsStats (params); + // + // [ + // { + // "name":"ETH-KRW", + // "open":690500, + // "high":719500, + // "low":681500, + // "close":709500, + // "volume":2784.6081544, + // "time":"2020-12-18T21:54:50.795Z" + // } + // ] + // + return this.parseTickers (response, symbols); + } + + parsePublicTrade (trade, market = undefined) { + const timestamp = this.parse8601 (this.safeString (trade, 'time')); + const price = this.safeFloat (trade, 'price'); + const amount = this.safeFloat (trade, 'amount'); + let symbol = undefined; + if ('symbol' in market) { + symbol = this.safeString (market, 'symbol'); + } + return { + 'info': trade, + 'id': this.safeString (trade, 'id'), + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'symbol': symbol, + 'order': undefined, // Not mandatory to specify + 'type': undefined, // Not mandatory to specify + 'side': this.safeString (trade, 'side'), + 'takerOrMaker': undefined, + 'price': price, + 'amount': amount, + 'cost': price * amount, + 'fee': undefined, + }; + } + + parsePrivateTrade (trade, market = undefined) { + const timestamp = this.parse8601 (this.safeString (trade, 'timestamp')); + const symbol = this.safeString (trade, 'tradingPairName').replace ('-', '/'); + const side = this.safeString (trade, 'side'); + const price = this.safeFloat (trade, 'price'); + const amount = this.safeFloat (trade, 'baseAmount'); + let feeCurrency = symbol.slice (0, 3); + if (side === 'sell') { + feeCurrency = symbol.slice (4); + } + const fee = { + 'cost': this.safeFloat (trade, 'fee'), + 'currency': feeCurrency, + 'rate': undefined, + }; + return { + 'info': trade, + 'id': this.safeString (trade, 'id'), + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'symbol': symbol, + 'order': this.safeInteger (trade, 'orderId'), + 'type': undefined, + 'side': side, + 'takerOrMaker': this.safeString (trade, 'position'), + 'price': price, + 'amount': amount, + 'cost': price * amount, + 'fee': fee, + }; + } + + parseTrade (trade, market = undefined) { + // + // public fetchTrades + // + // { + // "time":"2020-12-19T12:17:43.000Z", + // "date":1608380263, + // "id":23903608, + // "price":25155000, + // "amount":0.0505, + // "side":"sell", + // } + // + // private fetchMyTrades + // + // { + // "id": 73953, // trading event ID + // "orderId": 453324, // order ID + // "baseAmount": 3, // traded base asset amount + // "quoteAmount": 3000000, // traded quote asset amount + // "fee": 0.0012, // fee + // "price": 1000000, // price + // "timestamp": "2020-09-25T04:06:30.000Z", // trading time + // "side": "buy", // buy, sell + // "tradingPairName": "ZEC-KRW", // order book + // "position": "maker" // maker, taker + // } + // + // { + // "tradeId": 74072, // trade ID + // "orderId": 453529, // order ID + // "side": 2, // 1(bid), 2(ask) + // "type": 1, // 1(limit), 2(market) + // "baseAmount": 0.01, // filled base asset amount (in ZEC for this case) + // "quoteAmount": 1, // filled quote asset amount (in KRW for this case) + // "fee": 0.0004, // fee + // "price": 100, // price + // "isSelfTrade": false, // whether both of matching orders are yours + // "occurredAt": 1603932107, // trade occurrence time + // "tradingPairName": "ZEC-KRW" // order book + // } + // + const id = this.safeString2 (trade, 'id', 'tradeId'); + const orderId = this.safeInteger (trade, 'orderId'); + let timestamp = this.parse8601 (this.safeString2 (trade, 'time', 'timestamp')); + timestamp = this.safeTimestamp (trade, 'occuredAt', timestamp); + const marketId = this.safeString (trade, 'tradingPairName'); + market = this.safeMarket (marketId, market, '-'); + const symbol = market['symbol']; + let side = this.safeString (trade, 'side'); + if (side === '1') { + side = 'buy'; + } else if (side === '2') { + side = 'sell'; + } + let type = this.safeString (trade, 'type'); + if (type === '1') { + type = 'limit'; + } else if (type === '2') { + type = 'market'; + } + const price = this.safeFloat (trade, 'price'); + const amount = this.safeFloat2 (trade, 'amount', 'baseAmount'); + let cost = this.safeFloat (trade, 'quoteAmount'); + if (cost === undefined) { + if ((price !== undefined) && (amount !== undefined)) { + cost = price * amount; + } + } + const feeCost = this.safeFloat (trade, 'fee'); + let fee = undefined; + if (feeCost !== undefined) { + fee = { + 'cost': feeCost, + 'currency': market['base'], + }; + } + const takerOrMaker = this.safeString (trade, 'position'); + return { + 'info': trade, + 'id': id, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'symbol': symbol, + 'order': orderId, + 'type': undefined, + 'side': side, + 'takerOrMaker': takerOrMaker, + 'price': price, + 'amount': amount, + 'cost': cost, + 'fee': fee, + }; + } + + async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'tradingPair': market['id'], + // 'limit': limit, + // 'pastmax': id, // read data older than this ID + // 'latestmin': id, // read data newer than this ID + // 'after': parseInt (since / 1000), + // 'before': this.seconds (), + }; + if (since !== undefined) { + request['after'] = parseInt (since / 1000); + } + if (limit !== undefined) { + request['limit'] = limit; + } + const response = await this.publicGetTradingPairsTradingPairTrades (this.extend (request, params)); + // + // [ + // {"time":"2020-12-19T12:17:43.000Z","date":1608380263,"id":23903608,"price":25155000,"amount":0.0505,"side":"sell"}, + // {"time":"2020-12-19T12:17:13.000Z","date":1608380233,"id":23903604,"price":25140000,"amount":0.019,"side":"sell"}, + // {"time":"2020-12-19T12:16:49.000Z","date":1608380209,"id":23903599,"price":25140000,"amount":0.0072,"side":"sell"}, + // ] + // + return this.parseTrades (response, market, since, limit); + } + + parseOHLCV (ohlcv, market = undefined) { + // + // [ + // 1606780800000, // timestamp + // 21293000, // low + // 21300000, // high + // 21294000, // open + // 21300000, // close + // 1.019126, // volume + // ] + // + return [ + this.safeInteger (ohlcv, 0), + this.safeFloat (ohlcv, 3), + this.safeFloat (ohlcv, 2), + this.safeFloat (ohlcv, 1), + this.safeFloat (ohlcv, 4), + this.safeFloat (ohlcv, 5), + ]; + } + + async fetchOHLCV (symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + limit = (limit === undefined) ? 1024 : limit; // default 1024 + const request = { + 'tradingPair': market['id'], + // 'start': since, + // 'end': this.milliseconds (), + 'interval': this.timeframes[timeframe], + }; + const duration = this.parseTimeframe (timeframe); + if (since === undefined) { + const end = this.milliseconds (); + request['end'] = end; + request['start'] = end - limit * duration * 1000; + } else { + request['start'] = since; + request['end'] = this.sum (since, limit * duration * 1000); + } + const response = await this.publicGetTradingPairsTradingPairCandles (this.extend (request, params)); + // + // [ + // [1606780800000,21293000,21300000,21294000,21300000,1.019126], + // [1606780860000,21237000,21293000,21293000,21263000,0.96800057], + // [1606780920000,21240000,21240000,21240000,21240000,0.11068715], + // ] + // + return this.parseOHLCVs (response, market, timeframe, since, limit); + } + + parseBalanceResponse (response) { + const result = { 'info': response }; + for (let i = 0; i < response.length; i++) { + const balance = response[i]; + const currencyId = this.safeString2 (balance, 'asset', 'isoAlpha3'); + const code = this.safeCurrencyCode (currencyId); + const hold = this.safeFloat (balance, 'hold'); + const pendingWithdrawal = this.safeFloat (balance, 'pendingWithdrawal'); + const account = this.account (); + account['free'] = this.safeFloat (balance, 'avail'); + account['used'] = this.sum (hold, pendingWithdrawal); + result[code] = account; + } + return this.parseBalance (result); + } + + async fetchBalance (params = {}) { + await this.loadMarkets (); + const response = await this.privateGetBalances (params); + // + // [ + // { + // "asset": "KRW", // asset name + // "avail": 1759466.76, // available amount to place order + // "hold": 16500, // outstanding amount on order books + // "pendingWithdrawal": 0, // amount being withdrawn + // "lastUpdatedAt": "1600684352032", // balance last update time + // }, + // ] + // + return this.parseBalanceResponse (response); + } + + parseOrderStatus (status) { + const statuses = { + 'placed': 'open', + 'cancelled': 'canceled', + 'completed': 'closed', + 'updated': 'open', + 'reserved': 'open', + }; + return this.safeString (statuses, status, status); + } + + parseOrder (order, market = undefined) { + // + // cancelOrder + // + // {} // empty object + // + // fetchOrder, fetchOrders, fetchOpenOrders, createOrder + // + // { + // "id": "453324", // order ID + // "clientOrderId": "zeckrw23456", // client order ID (showed only when it exists) + // "status": "updated", // placed, cancelled, completed, updated, reserved + // "forcedCompletionReason": undefined, // the reason in case it was canceled in the middle (protection or timeInForce) + // "tradingPairName": "ZEC-KRW", // order book + // "side": "buy", // buy, sell + // "type": "limit", // limit, market + // "price": 1000000, // price + // "stopPrice": undefined, // stop price (showed only for stop orders) + // "amount": 4, // initial amount + // "remaining": 1, // outstanding amount + // "protection": "yes", // whether protection is activated (yes or no) + // "timeInForce": "gtc", // limit order's time in force (gtc/po/ioc/fok) + // "createdAt": "2020-09-25T04:06:20.000Z", // order placement time + // "updatedAt": "2020-09-25T04:06:29.000Z", // order last update time + // "balanceChange": { + // "baseGross": 3, // base asset balance's gross change (in ZEC for this case) + // "baseFee": { + // "taking": 0, // base asset fee imposed as taker + // "making": -0.0012 // base asset fee imposed as maker + // }, + // "baseNet": 2.9988, // base asset balance's net change (in ZEC for this case) + // "quoteGross": -3000000, // quote asset balance's gross change (in KRW for + // "quoteFee": { + // "taking": 0, // quote asset fee imposed as taker + // "making": 0 // quote asset fee imposed as maker + // }, + // "quoteNet": -3000000 // quote asset balance's net change (in KRW for this case) + // } + // } + // + const id = this.safeString (order, 'id'); + const clientOrderId = this.safeString (order, 'clientOrderId'); + const timestamp = this.parse8601 (this.safeString (order, 'createdAt')); + const type = this.safeString (order, 'type'); + const side = this.safeString (order, 'side'); + const timeInForce = this.safeStringUpper (order, 'timeInForce'); + const price = this.safeFloat (order, 'price'); + const amount = this.safeFloat (order, 'amount'); + const stopPrice = this.safeFloat (order, 'stopPrice'); + const remaining = this.safeFloat (order, 'remaining'); + const marketId = this.safeString (order, 'tradingPairName'); + market = this.safeMarket (marketId, market, '-'); + const status = this.parseOrderStatus (this.safeString (order, 'status')); + const balanceChange = this.safeValue (order, 'balanceChange', {}); + let filled = this.safeFloat (balanceChange, 'baseNet'); + let cost = this.safeFloat (balanceChange, 'quoteNet'); + if (cost !== undefined) { + cost = Math.abs (cost); + } + let updated = undefined; + if ((filled === undefined) && (amount !== undefined) && (remaining !== undefined)) { + filled = Math.max (0, amount - remaining); + } + if ((filled !== undefined) && (filled > 0)) { + updated = this.parse8601 (this.safeString (order, 'updatedAt')); + } + if ((cost === undefined) && (price !== undefined) && (filled !== undefined)) { + cost = filled * price; + } + let fee = undefined; + if (side === 'buy') { + const baseFee = this.safeValue (balanceChange, 'baseFee', {}); + const taking = this.safeFloat (baseFee, 'taking'); + const making = this.safeFloat (baseFee, 'making'); + fee = { + 'currency': market['base'], + 'cost': this.sum (taking, making), + }; + } else { + const quoteFee = this.safeValue (balanceChange, 'quoteFee', {}); + const taking = this.safeFloat (quoteFee, 'taking'); + const making = this.safeFloat (quoteFee, 'making'); + fee = { + 'currency': market['quote'], + 'cost': this.sum (taking, making), + }; + } + let postOnly = undefined; + if (timeInForce !== undefined) { + postOnly = (timeInForce === 'PO'); + } + return { + 'id': id, + 'clientOrderId': clientOrderId, + 'datetime': this.iso8601 (timestamp), + 'timestamp': timestamp, + 'lastTradeTimestamp': updated, + 'status': status, + 'symbol': market['symbol'], + 'type': type, + 'timeInForce': timeInForce, + 'postOnly': postOnly, + 'side': side, + 'price': price, + 'stopPrice': stopPrice, + 'average': undefined, + 'amount': amount, + 'filled': filled, + 'remaining': remaining, + 'cost': cost, + 'trades': undefined, + 'fee': fee, + 'info': order, + }; + } + + async fetchOrder (id, symbol = undefined, params = {}) { + await this.loadMarkets (); + let method = undefined; + const clientOrderId = this.safeString (params, 'clientOrderId'); + params = this.omit (params, 'clientOrderId'); + const request = {}; + if (clientOrderId === undefined) { + method = 'privateGetOrdersOrderId'; + request['orderId'] = id; + } else { + method = 'privateGetOrdersClientOrderIdClientOrderId'; + request['clientOrderId'] = clientOrderId; + } + const response = await this[method] (this.extend (request, params)); + // + // { + // "id": "453324", // order ID + // "clientOrderId": "zeckrw23456", // client order ID (showed only when it exists) + // "status": "updated", // placed, cancelled, completed, updated, reserved + // "forcedCompletionReason": undefined, // the reason in case it was canceled in the middle (protection or timeInForce) + // "tradingPairName": "ZEC-KRW", // order book + // "side": "buy", // buy, sell + // "type": "limit", // limit, market + // "price": 1000000, // price + // "stopPrice": undefined, // stop price (showed only for stop orders) + // "amount": 4, // initial amount + // "remaining": 1, // outstanding amount + // "protection": "yes", // whether protection is activated (yes or no) + // "timeInForce": "gtc", // limit order's time in force (gtc/po/ioc/fok) + // "createdAt": "2020-09-25T04:06:20.000Z", // order placement time + // "updatedAt": "2020-09-25T04:06:29.000Z", // order last update time + // "balanceChange": { + // "baseGross": 3, // base asset balance's gross change (in ZEC for this case) + // "baseFee": { + // "taking": 0, // base asset fee imposed as taker + // "making": -0.0012 // base asset fee imposed as maker + // }, + // "baseNet": 2.9988, // base asset balance's net change (in ZEC for this case) + // "quoteGross": -3000000, // quote asset balance's gross change (in KRW for + // "quoteFee": { + // "taking": 0, // quote asset fee imposed as taker + // "making": 0 // quote asset fee imposed as maker + // }, + // "quoteNet": -3000000 // quote asset balance's net change (in KRW for this case) + // } + // } + // + return this.parseOrder (response); + } + + async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + 'includePast': 'true', // if true, completed and canceled orders are included as the result, they are accessible for one hour only from its completion or cancellation time + // 'pagination': 'false', // if the result is more than 3,000 orders, set this value as true to access 1000 orders at max per each page + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + } + const response = await this.privateGetOrders (this.extend (request, params)); + // + // [ + // { + // "id": "453324", // order ID + // "clientOrderId": "zeckrw23456", // client order ID (showed only when it exists) + // "status": "updated", // placed, cancelled, completed, updated, reserved + // "forcedCompletionReason": undefined, // the reason in case it was canceled in the middle (protection or timeInForce) + // "tradingPairName": "ZEC-KRW", // order book + // "side": "buy", // buy, sell + // "type": "limit", // limit, market + // "price": 1000000, // price + // "stopPrice": undefined, // stop price (showed only for stop orders) + // "amount": 4, // initial amount + // "remaining": 1, // outstanding amount + // "protection": "yes", // whether protection is activated (yes or no) + // "timeInForce": "gtc", // limit order's time in force (gtc/po/ioc/fok) + // "createdAt": "2020-09-25T04:06:20.000Z", // order placement time + // "updatedAt": "2020-09-25T04:06:29.000Z", // order last update time + // "balanceChange": { + // "baseGross": 3, // base asset balance's gross change (in ZEC for this case) + // "baseFee": { + // "taking": 0, // base asset fee imposed as taker + // "making": -0.0012 // base asset fee imposed as maker + // }, + // "baseNet": 2.9988, // base asset balance's net change (in ZEC for this case) + // "quoteGross": -3000000, // quote asset balance's gross change (in KRW for + // "quoteFee": { + // "taking": 0, // quote asset fee imposed as taker + // "making": 0 // quote asset fee imposed as maker + // }, + // "quoteNet": -3000000 // quote asset balance's net change (in KRW for this case) + // } + // }, + // ] + // + return this.parseOrders (response, market, since, limit); + } + + async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const request = { + 'includePast': 'false', + }; + return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); + } + + async createOrder (symbol, type, side, amount, price = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + // 'clientOrderId': 'test4321', // max 20 characters of [a-zA-Z0-9_-] + 'tradingPairName': market['id'], + 'side': side, // buy, sell + 'type': type, // limit, market + // 'price': this.priceToPrecision (symbol, price), + // 'stopPrice': this.priceToPrecision (symbol, stopPrice), // optional, becomes a stop order if set + // 'amount': this.amountToPrecision (symbol, amount), + // 'protection': 'no', // whether protection is activated + // 'timeInForce': 'gtc', // gtc, po, ioc, fok + }; + if (type === 'limit') { + request['price'] = this.priceToPrecision (symbol, price); + request['amount'] = this.amountToPrecision (symbol, amount); + } else if (type === 'market') { + // for market buy it requires the amount of quote currency to spend + if (side === 'buy') { + let total = amount; + const createMarketBuyOrderRequiresPrice = this.safeValue (this.options, 'createMarketBuyOrderRequiresPrice', true); + if (createMarketBuyOrderRequiresPrice) { + if (price === undefined) { + throw new InvalidOrder (this.id + " createOrder() requires the price argument with market buy orders to calculate total order cost (amount to spend), where cost = amount * price. Supply a price argument to createOrder() call if you want the cost to be calculated for you from price and amount, or, alternatively, add .options['createMarketBuyOrderRequiresPrice'] = false and supply the total cost value in the 'amount' argument"); + } + total = price * amount; + } + const precision = market['precision']['price']; + request['amount'] = this.decimalToPrecision (total, TRUNCATE, precision, this.precisionMode); + } else { + request['amount'] = this.amountToPrecision (symbol, amount); + } + } + const clientOrderId = this.safeString (params, 'clientOrderId'); + if (clientOrderId !== undefined) { + request['clientOrderId'] = clientOrderId; + params = this.omit (params, 'clientOrderId'); + } + const stopPrice = this.safeFloat (params, 'stopPrice'); + if (stopPrice !== undefined) { + request['stopPrice'] = this.priceToPrecision (symbol, stopPrice); + params = this.omit (params, 'stopPrice'); + } + const timeInForce = this.safeStringLower (params, 'timeInForce'); + if (timeInForce !== undefined) { + request['timeInForce'] = timeInForce; + params = this.omit (params, 'timeInForce'); + } + const response = await this.privatePostOrders (this.extend (request, params)); + // + // { + // "id": "453327", // order ID + // "clientOrderId": "test4321", // client order ID (showed only when it exists) + // "status": "reserved", // placed, cancelled, completed, updated, reserved + // "forcedCompletionReason": undefined, // the reason in case it was canceled in the middle (protection or timeInForce) + // "tradingPairName": "BCH-KRW", // order book + // "side": "sell", // buy, sell + // "type": "limit", // limit, market + // "price": 11000000, // price + // "stopPrice": 12000000, // stop price (showed only for stop orders) + // "amount": 0.5, // initial amount + // "remaining": 0.5, // outstanding amount + // "protection": "no", // whether protection is activated (yes or no) + // "timeInForce": "gtc", // limit order's time in force (gtc/po/ioc/fok) + // "createdAt": "2020-09-25T04:51:31.000Z", // order placement time + // "balanceChange": { + // "baseGross": 0, // base asset balance's gross change (in BCH for this case) + // "baseFee": { + // "taking": 0, // base asset fee imposed as taker + // "making": 0 // base asset fee imposed as maker + // }, + // "baseNet": 0, // base asset balance's net change (in BCH for this case) + // "quoteGross": 0, // quote asset balance's gross change (in KRW for + // "quoteFee": { + // "taking": 0, // quote asset fee imposed as taker + // "making": 0 // quote asset fee imposed as maker + // }, + // "quoteNet": 0 // quote asset balance's net change (in KRW for this case) + // } + // } + // + return this.parseOrder (response, market); + } + + async cancelOrder (id, symbol = undefined, params = {}) { + await this.loadMarkets (); + const request = {}; + const clientOrderId = this.safeString (params, 'clientOrderId'); + let method = undefined; + if (clientOrderId === undefined) { + method = 'privateDeleteOrdersOrderId'; + request['orderId'] = id; + } else { + method = 'privateDeleteOrdersClientOrderIdClientOrderId'; + request['clientOrderId'] = clientOrderId; + params = this.omit (params, 'clientOrderId'); + } + const response = await this[method] (this.extend (request, params)); + // + // {} + // + const order = this.parseOrder (response); + return this.extend (order, { 'id': id }); + } + + async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'limit': limit, // max 100 + // 'pastmax': id, // read data older than this id + // 'latestmin': id, // read data newer than this id + // 'after': parseInt (since / 1000), // Read data after this timestamp in seconds + // 'before': this.seconds (), // Read data before this timestamp in seconds + 'deepSearch': 'true', // read data older than one month ago are inclusively looked up only when it is "true" + }; + if (since !== undefined) { + request['after'] = parseInt (since / 1000); + } + if (limit !== undefined) { + request['limit'] = limit; + } + const response = await this.privateGetTrades (this.extend (request, params)); + // + // [ + // { + // "id": 73953, // trading event ID + // "orderId": 453324, // order ID + // "baseAmount": 3, // traded base asset amount + // "quoteAmount": 3000000, // traded quote asset amount + // "fee": 0.0012, // fee + // "price": 1000000, // price + // "timestamp": "2020-09-25T04:06:30.000Z", // trading time + // "side": "buy", // buy, sell + // "tradingPairName": "ZEC-KRW", // order book + // "position": "maker" // maker, taker + // }, + // ] + // + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + } + return this.parseTrades (response, market, since, limit); + } + + parseDepositAddress (depositAddress, currency = undefined) { + // + // { + // "asset": "BTC", // asset name + // "address": "1CwC2cMFu1jRQUBtw925cENbT1kctJBMdm", // deposit address + // "memoId": null, // memo ID (showed only for assets using memo ID) + // "createdAt": 1594802312 // deposit address creation time + // } + // + const address = this.safeString (depositAddress, 'address'); + const tag = this.safeString (depositAddress, 'memoId'); + const currencyId = this.safeString (depositAddress, 'asset'); + const code = this.safeCurrencyCode (currencyId); + this.checkAddress (address); + return { + 'currency': code, + 'address': address, + 'tag': tag, + 'info': depositAddress, + }; + } + + parseDepositAddresses (addresses, codes = undefined) { + let result = []; + for (let i = 0; i < addresses.length; i++) { + const address = this.parseDepositAddress (addresses[i]); + result.push (address); + } + if (codes) { + result = this.filterByArray (result, 'currency', codes); + } + return this.indexBy (result, 'currency'); + } + + async fetchDepositAddresses (codes = undefined, params = {}) { + await this.loadMarkets (); + const response = await this.privateGetCryptoDepositAddresses (params); + // + // [ + // { + // "asset": "BTC", // asset name + // "address": "1CwC2cMFu1jRQUBtw925cENbT1kctJBMdm", // deposit address + // "memoId": null, // memo ID (showed only for assets using memo ID) + // "createdAt": 1594802312 // deposit address creation time + // }, + // ] + // + return this.parseDepositAddresses (response, codes); + } + + async fetchDepositAddress (code, params = {}) { + await this.loadMarkets (); + const response = await this.fetchDepositAddresses (undefined, params); + const address = this.safeValue (response, code); + if (address === undefined) { + throw new InvalidAddress (this.id + ' fetchDepositAddress() ' + code + ' address not found'); + } + return address; + } + + parseTransactionStatus (status) { + const statuses = { + 'reviewing': 'pending', + 'rejected': 'rejected', + 'processing': 'pending', + 'failed': 'failed', + 'completed': 'ok', + }; + return this.safeString (statuses, status, status); + } + + parseTransaction (transaction, currency = undefined) { + // + // { + // "id": 640, // deposit/withdrawal event ID + // "asset": "BTC", // asset name + // "type": "crypto_withdrawal", // fiat_withdrawal, fiat_deposit, crypto_withdrawal, crypto_deposit + // "netAmount": 0.0001, // amount + // "feeAmount": 0.0005, // fee (null if there is no imposed fee) + // "status": "completed", // reviewing, rejected, processing, failed, completed + // "reviewStartedAt": 1595556218, // request time + // "completedAt": 1595556902, // completion time (showed only in case of completed) + // "txId": "eaca5ad3...", // tx ID + // "sourceAddress": null, // sender address (showed only in case of crypto_deposit) + // "destinationAddress: "3H8...", // recipient address (showed only in case of crypto_withdrawal) + // "destinationMemoId": null // recipient address's memo ID + // } + // + const id = this.safeString (transaction, 'id'); + const txid = this.safeString (transaction, 'txId'); + const currencyId = this.safeString (transaction, 'asset'); + const code = this.safeCurrencyCode (currencyId, currency); + let type = this.safeString (transaction, 'type'); + if ((type === 'crypto_withdrawal') || (type === 'fiat_withdrawal')) { + type = 'withdrawal'; + } else if ((type === 'crypto_deposit' || type === 'fiat_deposit')) { + type = 'deposit'; + } + const amount = this.safeFloat (transaction, 'netAmount'); + const feeCost = this.safeFloat (transaction, 'feeAmount'); + let fee = undefined; + if (feeCost !== undefined) { + fee = { + 'cost': feeCost, + 'currency': code, + }; + } + const timestamp = this.safeTimestamp (transaction, 'reviewStartedAt'); + const updated = this.safeTimestamp (transaction, 'completedAt'); + const addressFrom = this.safeString (transaction, 'sourceAddress'); + const addressTo = this.safeString (transaction, 'destinationAddress'); + const tagFrom = this.safeString (transaction, 'sourceMemoId'); + const tagTo = this.safeString (transaction, 'destinationMemoId'); + const status = this.parseTransactionStatus (this.safeString (transaction, 'status')); + return { + 'info': transaction, + 'id': id, + 'txid': txid, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'addressFrom': addressFrom, + 'address': addressTo, + 'addressTo': addressTo, + 'tagFrom': tagFrom, + 'tag': tagTo, + 'tagTo': tagTo, + 'type': type, + 'amount': amount, + 'currency': code, + 'status': status, + 'updated': updated, + 'comment': undefined, + 'fee': fee, + }; + } + + async fetchTransactions (code = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'limit': limit, // max 20 + // 'latestmin': limit, // read data older than this id + // 'after': this.milliseconds (), + // 'before': since, + // 'completedOnly': 'no', + }; + if (since !== undefined) { + request['before'] = since; + } + if (limit !== undefined) { + request['limit'] = limit; + } + const response = await this.privateGetDepositWithdrawalStatus (this.extend (request, params)); + // + // [ + // { + // "id": 640, // deposit/withdrawal event ID + // "asset": "BTC", // asset name + // "type": "crypto_withdrawal", // fiat_withdrawal, fiat_deposit, crypto_withdrawal, crypto_deposit + // "netAmount": 0.0001, // amount + // "feeAmount": 0.0005, // fee (null if there is no imposed fee) + // "status": "completed", // reviewing, rejected, processing, failed, completed + // "reviewStartedAt": 1595556218, // request time + // "completedAt": 1595556902, // completion time (showed only in case of completed) + // "txId": "eaca5ad3...", // tx ID + // "sourceAddress": null, // sender address (showed only in case of crypto_deposit) + // "destinationAddress: "3H8...", // recipient address (showed only in case of crypto_withdrawal) + // "destinationMemoId": null // recipient address's memo ID + // }, + // ] + // + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + } + return this.parseTransactions (response, currency, since, limit, params); + } + + nonce () { + return this.milliseconds (); + } + + sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { // for authentication in private API calls + const endpoint = '/' + this.implodeParams (path, params); + let url = this.implodeParams (this.urls['api'][api], { 'hostname': this.hostname }) + endpoint; + const query = this.omit (params, this.extractParams (path)); + if (api === 'public') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } else if (api === 'private') { + this.checkRequiredCredentials (); + const timestamp = this.nonce ().toString (); + let auth = 't' + timestamp + method + endpoint; + headers = { + 'api-key': this.apiKey, + 'timestamp': timestamp, + }; + if (method === 'POST') { + headers['Content-Type'] = 'application/json'; + body = this.json (params); + auth += body; + } else if (endpoint === '/orders') { + if (Object.keys (query).length) { + const urlQuery = '?' + this.urlencode (query); + auth += urlQuery; + url += urlQuery; + } + } else if (method === 'GET') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } + const rawSecret = this.base64ToBinary (this.secret); + const signature = this.hmac (this.encode (auth), rawSecret, 'sha512', 'base64'); + headers['signature'] = signature; + } + return { 'url': url, 'method': method, 'body': body, 'headers': headers }; + } + + handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { + if (response === undefined) { + return; + } + // + // {"errorMessage":"Invalid API key","errorCode":10155} + // + if (!Array.isArray (response)) { + const errorCode = this.safeString (response, 'errorCode'); + const errorMessage = this.safeString (response, 'errorMessage'); + const feedback = this.id + ' ' + body; + if (errorMessage !== undefined) { + this.throwBroadlyMatchedException (this.exceptions['broad'], body, feedback); + } + if (errorCode !== undefined) { + this.throwExactlyMatchedException (this.exceptions['exact'], errorCode, feedback); + } + if ((errorCode !== undefined) || (errorMessage !== undefined)) { + throw new ExchangeError (feedback); + } + } + } +}; + +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],92:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -69922,7 +76573,7 @@ module.exports = class hbtc extends Exchange { method = 'optionGetMyTrades'; } else { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a `symbol` argument for ' + type + ' markets'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a `symbol` argument for ' + type + ' markets'); } const market = this.market (symbol); request['symbol'] = market['id']; @@ -71035,6 +77686,7 @@ module.exports = class hbtc extends Exchange { 'NEW': 'open', 'CANCELED': 'canceled', 'FILLED': 'closed', + 'PARTIALLY_FILLED': 'open', 'PENDING_CANCEL': 'canceled', }; return this.safeString (statuses, status, status); @@ -71088,7 +77740,7 @@ module.exports = class hbtc extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],89:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],93:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -71150,6 +77802,10 @@ module.exports = class hitbtc extends Exchange { }, 'urls': { 'logo': 'https://user-images.githubusercontent.com/1294454/27766555-8eaec20e-5edc-11e7-9c5b-6dc69fc42f5e.jpg', + 'test': { + 'public': 'https://api.demo.hitbtc.com', + 'private': 'https://api.demo.hitbtc.com', + }, 'api': { 'public': 'https://api.hitbtc.com', 'private': 'https://api.hitbtc.com', @@ -71251,6 +77907,7 @@ module.exports = class hitbtc extends Exchange { 'LNC': 'LinkerCoin', 'PLA': 'PlayChip', 'PNT': 'Penta', + 'SBTC': 'Super Bitcoin', 'TV': 'Tokenville', 'USD': 'USDT', 'XPNT': 'PNT', @@ -71888,22 +78545,44 @@ module.exports = class hitbtc extends Exchange { // // createMarketOrder // - // { clientOrderId: "fe36aa5e190149bf9985fb673bbb2ea0", - // createdAt: "2018-10-25T16:41:44.780Z", - // cumQuantity: "1", - // id: "66799540063", - // quantity: "1", - // side: "sell", - // status: "filled", - // symbol: "XRPUSDT", - // timeInForce: "FOK", - // tradesReport: [ { fee: "0.0004644", - // id: 386394956, - // price: "0.4644", - // quantity: "1", - // timestamp: "2018-10-25T16:41:44.780Z" } ], - // type: "market", - // updatedAt: "2018-10-25T16:41:44.780Z" } + // { + // clientOrderId: "fe36aa5e190149bf9985fb673bbb2ea0", + // createdAt: "2018-10-25T16:41:44.780Z", + // cumQuantity: "1", + // id: "66799540063", + // quantity: "1", + // side: "sell", + // status: "filled", + // symbol: "XRPUSDT", + // timeInForce: "FOK", + // tradesReport: [ + // { + // fee: "0.0004644", + // id: 386394956, + // price: "0.4644", + // quantity: "1", + // timestamp: "2018-10-25T16:41:44.780Z" + // } + // ], + // type: "market", + // updatedAt: "2018-10-25T16:41:44.780Z" + // } + // + // { + // "id": 119499457455, + // "clientOrderId": "87baab109d58401b9202fa0749cb8288", + // "symbol": "ETHUSD", + // "side": "buy", + // "status": "filled", + // "type": "market", + // "timeInForce": "FOK", + // "quantity": "0.0007", + // "price": "181.487", + // "avgPrice": "164.989", + // "cumQuantity": "0.0007", + // "createdAt": "2019-04-17T13:27:38.062Z", + // "updatedAt": "2019-04-17T13:27:38.062Z" + // } // const created = this.parse8601 (this.safeString (order, 'createdAt')); const updated = this.parse8601 (this.safeString (order, 'updatedAt')); @@ -71933,7 +78612,7 @@ module.exports = class hitbtc extends Exchange { const side = this.safeString (order, 'side'); let trades = this.safeValue (order, 'tradesReport'); let fee = undefined; - let average = undefined; + let average = this.safeValue (order, 'avgPrice'); if (trades !== undefined) { trades = this.parseTrades (trades, market); let feeCost = undefined; @@ -71952,7 +78631,9 @@ module.exports = class hitbtc extends Exchange { } cost = tradesCost; if ((filled !== undefined) && (filled > 0)) { - average = cost / filled; + if (average === undefined) { + average = cost / filled; + } if (type === 'market') { if (price === undefined) { price = average; @@ -72249,7 +78930,7 @@ module.exports = class hitbtc extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],90:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],94:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -72772,7 +79453,7 @@ module.exports = class hollaex extends Exchange { const duration = this.parseTimeframe (timeframe); if (since === undefined) { if (limit === undefined) { - throw new ArgumentsRequired (this.id + " fetchOHLCV requires a 'since' or a 'limit' argument"); + throw new ArgumentsRequired (this.id + " fetchOHLCV() requires a 'since' or a 'limit' argument"); } else { const end = this.seconds (); const start = end - duration * limit; @@ -72954,6 +79635,7 @@ module.exports = class hollaex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -73423,7 +80105,7 @@ module.exports = class hollaex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],91:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],95:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -73464,7 +80146,7 @@ module.exports = class huobijp extends huobipro { } }; -},{"./base/errors":7,"./huobipro.js":92}],92:[function(require,module,exports){ +},{"./base/errors":8,"./huobipro.js":96}],96:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -73565,6 +80247,7 @@ module.exports = class huobipro extends Exchange { 'user/api-key', // 母子用户API key信息查询 ], 'post': [ + 'account/transfer', 'point/transfer', // 点卡划转 'sub-user/management', // 冻结/解冻子用户 'sub-user/creation', // 子用户创建 @@ -73662,9 +80345,14 @@ module.exports = class huobipro extends Exchange { }, }, 'exceptions': { + 'broad': { + 'contract is restricted of closing positions on API. Please contact customer service': OnMaintenance, + 'maintain': OnMaintenance, + }, 'exact': { // err-code 'bad-request': BadRequest, + 'base-date-limit-error': BadRequest, // {"status":"error","err-code":"base-date-limit-error","err-msg":"date less than system limit","data":null} 'api-not-support-temp-addr': PermissionDenied, // {"status":"error","err-code":"api-not-support-temp-addr","err-msg":"API withdrawal does not support temporary addresses","data":null} 'timeout': RequestTimeout, // {"ts":1571653730865,"status":"error","err-code":"timeout","err-msg":"Request Timeout"} 'gateway-internal-error': ExchangeNotAvailable, // {"status":"error","err-code":"gateway-internal-error","err-msg":"Failed to load data. Try again later.","data":null} @@ -73675,6 +80363,8 @@ module.exports = class huobipro extends Exchange { 'order-marketorder-amount-min-error': InvalidOrder, // market order amount error, min: `0.01` 'order-limitorder-price-min-error': InvalidOrder, // limit order price error 'order-limitorder-price-max-error': InvalidOrder, // limit order price error + 'order-holding-limit-failed': InvalidOrder, // {"status":"error","err-code":"order-holding-limit-failed","err-msg":"Order failed, exceeded the holding limit of this currency","data":null} + 'order-orderprice-precision-error': InvalidOrder, // {"status":"error","err-code":"order-orderprice-precision-error","err-msg":"order price precision error, scale: `4`","data":null} 'order-orderstate-error': OrderNotFound, // canceling an already canceled order 'order-queryorder-invalid': OrderNotFound, // querying a non-existent order 'order-update-error': ExchangeNotAvailable, // undocumented error @@ -73710,6 +80400,7 @@ module.exports = class huobipro extends Exchange { // https://coinmarketcap.com/currencies/penta/markets/ // https://en.cryptonomist.ch/blog/eidoo/the-edo-to-pnt-upgrade-what-you-need-to-know-updated/ 'PNT': 'Penta', + 'SBTC': 'Super Bitcoin', }, }); } @@ -74142,7 +80833,8 @@ module.exports = class huobipro extends Exchange { request['size'] = limit; // 1-100 orders, default is 100 } if (since !== undefined) { - request['start-date'] = this.ymd (since); // maximum query window size is 2 days, query window shift should be within past 120 days + request['start-date'] = this.ymd (since); // a date within 61 days from today + request['end-date'] = this.ymd (this.sum (since, 86400000)); } const response = await this.privateGetOrderMatchresults (this.extend (request, params)); const trades = this.parseTrades (response['data'], market, since, limit); @@ -74410,7 +81102,7 @@ module.exports = class huobipro extends Exchange { async fetchOpenOrdersV1 (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrdersV1 requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrdersV1() requires a symbol argument'); } return await this.fetchOrdersByStates ('pre-submitted,submitted,partial-filled', symbol, since, limit, params); } @@ -74422,7 +81114,7 @@ module.exports = class huobipro extends Exchange { async fetchOpenOrdersV2 (symbol = undefined, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } const market = this.market (symbol); let accountId = this.safeString (params, 'account-id'); @@ -74572,6 +81264,7 @@ module.exports = class huobipro extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -74951,6 +81644,7 @@ module.exports = class huobipro extends Exchange { if (status === 'error') { const code = this.safeString (response, 'err-code'); const feedback = this.id + ' ' + body; + this.throwBroadlyMatchedException (this.exceptions['broad'], body, feedback); this.throwExactlyMatchedException (this.exceptions['exact'], code, feedback); const message = this.safeString (response, 'err-msg'); this.throwExactlyMatchedException (this.exceptions['exact'], message, feedback); @@ -74960,40 +81654,7 @@ module.exports = class huobipro extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],93:[function(require,module,exports){ -'use strict'; - -// --------------------------------------------------------------------------- - -const huobipro = require ('./huobipro.js'); - -// --------------------------------------------------------------------------- - -module.exports = class huobiru extends huobipro { - describe () { - return this.deepExtend (super.describe (), { - 'id': 'huobiru', - 'name': 'Huobi Russia', - 'countries': [ 'RU' ], - 'hostname': 'www.huobi.com.ru', - 'pro': true, - 'urls': { - 'logo': 'https://user-images.githubusercontent.com/1294454/52978816-e8552e00-33e3-11e9-98ed-845acfece834.jpg', - 'api': { - 'market': 'https://{hostname}/api', - 'public': 'https://{hostname}/api', - 'private': 'https://{hostname}/api', - }, - 'www': 'https://www.huobi.com.ru/ru-ru', - 'referral': 'https://www.huobi.com.ru/invite?invite_code=esc74', - 'doc': 'https://github.com/cloudapidoc/API_Docs_en', - 'fees': 'https://www.huobi.com.ru/ru-ru/about/fee/', - }, - }); - } -}; - -},{"./huobipro.js":92}],94:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],97:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -75221,7 +81882,7 @@ module.exports = class ice3x extends Exchange { const type = this.safeString (params, 'type'); if ((type !== 'ask') && (type !== 'bid')) { // eslint-disable-next-line quotes - throw new ArgumentsRequired (this.id + " fetchOrderBook requires an exchange-specific extra 'type' param ('bid' or 'ask') when used with a limit"); + throw new ArgumentsRequired (this.id + " fetchOrderBook() requires an exchange-specific extra 'type' param ('bid' or 'ask') when used with a limit"); } else { request['items_per_page'] = limit; } @@ -75341,6 +82002,7 @@ module.exports = class ice3x extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': this.safeString (order, 'type'), 'price': price, 'stopPrice': undefined, @@ -75489,7 +82151,7 @@ module.exports = class ice3x extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],95:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],98:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -75548,8 +82210,8 @@ module.exports = class idex extends Exchange { }, 'logo': 'https://user-images.githubusercontent.com/51840849/94481303-2f222100-01e0-11eb-97dd-bc14c5943a86.jpg', 'api': { - 'public': 'https://api.idex.io', - 'private': 'https://api.idex.io', + 'ETH': 'https://api-eth.idex.io', + 'BSC': 'https://api-bsc.idex.io', }, 'www': 'https://idex.io', 'doc': [ @@ -75595,6 +82257,7 @@ module.exports = class idex extends Exchange { 'options': { 'defaultTimeInForce': 'gtc', 'defaultSelfTradePrevention': 'cn', + 'network': 'ETH', // also supports BSC }, 'exceptions': { 'INVALID_ORDER_QUANTITY': InvalidOrder, @@ -76314,16 +82977,8 @@ module.exports = class idex extends Exchange { const type = this.safeString (order, 'type'); const amount = this.safeFloat (order, 'originalQuantity'); const filled = this.safeFloat (order, 'executedQuantity'); - let remaining = undefined; - if ((amount !== undefined) && (filled !== undefined)) { - remaining = amount - filled; - } const average = this.safeFloat (order, 'avgExecutionPrice'); - const price = this.safeFloat (order, 'price', average); // for market orders - let cost = undefined; - if ((amount !== undefined) && (price !== undefined)) { - cost = amount * price; - } + const price = this.safeFloat (order, 'price'); const rawStatus = this.safeString (order, 'status'); const status = this.parseOrderStatus (rawStatus); const fee = { @@ -76337,7 +82992,7 @@ module.exports = class idex extends Exchange { fee['cost'] = this.sum (fee['cost'], lastTrade['fee']['cost']); } const lastTradeTimestamp = this.safeInteger (lastTrade, 'timestamp'); - return { + return this.safeOrder ({ 'info': order, 'id': id, 'clientOrderId': clientOrderId, @@ -76347,18 +83002,19 @@ module.exports = class idex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, 'amount': amount, - 'cost': cost, + 'cost': undefined, 'average': average, 'filled': filled, - 'remaining': remaining, + 'remaining': undefined, 'status': status, 'fee': fee, 'trades': trades, - }; + }); } async associateWallet (walletAddress, params = {}) { @@ -76435,7 +83091,8 @@ module.exports = class idex extends Exchange { } const sideEnum = (side === 'buy') ? 0 : 1; const walletBytes = this.remove0xPrefix (this.walletAddress); - const orderVersion = 1; + const network = this.safeString (this.options, 'network', 'ETH'); + const orderVersion = (network === 'ETH') ? 1 : 2; const amountString = this.amountToPrecision (symbol, amount); // https://docs.idex.io/#time-in-force const timeInForceEnums = { @@ -76764,8 +83421,9 @@ module.exports = class idex extends Exchange { } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { + const network = this.safeString (this.options, 'network', 'ETH'); const version = this.safeString (this.options, 'version', 'v1'); - let url = this.urls['api'][api] + '/' + version + '/' + path; + let url = this.urls['api'][network] + '/' + version + '/' + path; const keys = Object.keys (params); const length = keys.length; let query = undefined; @@ -76796,7 +83454,7 @@ module.exports = class idex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],96:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],99:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -77086,6 +83744,7 @@ module.exports = class independentreserve extends Exchange { 'symbol': symbol, 'type': orderType, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -77193,10 +83852,13 @@ module.exports = class independentreserve extends Exchange { cost = price * amount; } } - let symbol = undefined; - if (market !== undefined) { - symbol = market['symbol']; + const baseId = this.safeString (trade, 'PrimaryCurrencyCode'); + const quoteId = this.safeString (trade, 'SecondaryCurrencyCode'); + let marketId = undefined; + if ((baseId !== undefined) && (quoteId !== undefined)) { + marketId = baseId + '/' + quoteId; } + const symbol = this.safeSymbol (marketId, market, '/'); let side = this.safeString (trade, 'OrderType'); if (side !== undefined) { if (side.indexOf ('Bid') >= 0) { @@ -77302,7 +83964,7 @@ module.exports = class independentreserve extends Exchange { } }; -},{"./base/Exchange":5}],97:[function(require,module,exports){ +},{"./base/Exchange":6}],100:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -77704,6 +84366,7 @@ module.exports = class indodax extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -77720,7 +84383,7 @@ module.exports = class indodax extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol'); } await this.loadMarkets (); const market = this.market (symbol); @@ -77767,7 +84430,7 @@ module.exports = class indodax extends Exchange { async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const request = {}; @@ -77811,11 +84474,11 @@ module.exports = class indodax extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } const side = this.safeValue (params, 'side'); if (side === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires an extra "side" param'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires an extra "side" param'); } await this.loadMarkets (); const market = this.market (symbol); @@ -77922,7 +84585,7 @@ module.exports = class indodax extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],98:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],101:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -78193,7 +84856,7 @@ module.exports = class itbit extends Exchange { await this.loadMarkets (); const walletId = this.safeString (params, 'walletId'); if (walletId === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a walletId parameter'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a walletId parameter'); } const request = { 'walletId': walletId, @@ -78262,7 +84925,7 @@ module.exports = class itbit extends Exchange { await this.loadMarkets (); const walletId = this.safeString (params, 'walletId'); if (walletId === undefined) { - throw new ExchangeError (this.id + ' fetchMyTrades requires a walletId parameter'); + throw new ExchangeError (this.id + ' fetchMyTrades() requires a walletId parameter'); } const request = { 'walletId': walletId, @@ -78352,7 +85015,7 @@ module.exports = class itbit extends Exchange { async fetchWallets (params = {}) { await this.loadMarkets (); if (!this.uid) { - throw new AuthenticationError (this.id + ' fetchWallets requires uid API credential'); + throw new AuthenticationError (this.id + ' fetchWallets() requires uid API credential'); } const request = { 'userId': this.uid, @@ -78390,7 +85053,7 @@ module.exports = class itbit extends Exchange { } const walletIdInParams = ('walletId' in params); if (!walletIdInParams) { - throw new ExchangeError (this.id + ' fetchOrders requires a walletId parameter'); + throw new ExchangeError (this.id + ' fetchOrders() requires a walletId parameter'); } const walletId = params['walletId']; const request = { @@ -78454,6 +85117,8 @@ module.exports = class itbit extends Exchange { } const clientOrderId = this.safeString (order, 'clientOrderIdentifier'); const id = this.safeString (order, 'id'); + const postOnlyString = this.safeString (order, 'postOnly'); + const postOnly = (postOnlyString === 'True'); return { 'id': id, 'clientOrderId': clientOrderId, @@ -78465,6 +85130,7 @@ module.exports = class itbit extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': undefined, @@ -78490,7 +85156,7 @@ module.exports = class itbit extends Exchange { } const walletIdInParams = ('walletId' in params); if (!walletIdInParams) { - throw new ExchangeError (this.id + ' createOrder requires a walletId parameter'); + throw new ExchangeError (this.id + ' createOrder() requires a walletId parameter'); } amount = amount.toString (); price = price.toString (); @@ -78515,7 +85181,7 @@ module.exports = class itbit extends Exchange { await this.loadMarkets (); const walletIdInParams = ('walletId' in params); if (!walletIdInParams) { - throw new ExchangeError (this.id + ' fetchOrder requires a walletId parameter'); + throw new ExchangeError (this.id + ' fetchOrder() requires a walletId parameter'); } const request = { 'id': id, @@ -78527,7 +85193,7 @@ module.exports = class itbit extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { const walletIdInParams = ('walletId' in params); if (!walletIdInParams) { - throw new ExchangeError (this.id + ' cancelOrder requires a walletId parameter'); + throw new ExchangeError (this.id + ' cancelOrder() requires a walletId parameter'); } const request = { 'id': id, @@ -78574,13 +85240,13 @@ module.exports = class itbit extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],99:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],102:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { BadSymbol, ExchangeNotAvailable, ArgumentsRequired, PermissionDenied, AuthenticationError, ExchangeError, OrderNotFound, DDoSProtection, InvalidNonce, InsufficientFunds, CancelPending, InvalidOrder, InvalidAddress } = require ('./base/errors'); +const { BadSymbol, ExchangeNotAvailable, ArgumentsRequired, PermissionDenied, AuthenticationError, ExchangeError, OrderNotFound, DDoSProtection, InvalidNonce, InsufficientFunds, CancelPending, InvalidOrder, InvalidAddress, RateLimitExceeded } = require ('./base/errors'); const { TRUNCATE, DECIMAL_PLACES } = require ('./base/functions/number'); // --------------------------------------------------------------------------- @@ -78596,6 +85262,7 @@ module.exports = class kraken extends Exchange { 'certified': true, 'pro': true, 'has': { + 'cancelAllOrders': true, 'cancelOrder': true, 'CORS': false, 'createDepositAddress': true, @@ -78756,6 +85423,7 @@ module.exports = class kraken extends Exchange { 'AddOrder', 'AddExport', 'Balance', + 'CancelAll', 'CancelOrder', 'ClosedOrders', 'DepositAddresses', @@ -78783,6 +85451,7 @@ module.exports = class kraken extends Exchange { }, 'commonCurrencies': { 'XBT': 'BTC', + 'XBT.M': 'BTC.M', // https://support.kraken.com/hc/en-us/articles/360039879471-What-is-Asset-S-and-Asset-M- 'XDG': 'DOGE', 'REPV2': 'REP', 'REP': 'REPV1', @@ -78926,13 +85595,17 @@ module.exports = class kraken extends Exchange { return result; } - safeCurrencyCode (currencyId, currency = undefined) { + safeCurrency (currencyId, currency = undefined) { if (currencyId.length > 3) { if ((currencyId.indexOf ('X') === 0) || (currencyId.indexOf ('Z') === 0)) { - currencyId = currencyId.slice (1); + if (currencyId.indexOf ('.') > 0) { + return super.safeCurrency (currencyId, currency); + } else { + currencyId = currencyId.slice (1); + } } } - return super.safeCurrencyCode (currencyId, currency); + return super.safeCurrency (currencyId, currency); } appendInactiveMarkets (result) { @@ -79397,7 +86070,7 @@ module.exports = class kraken extends Exchange { let amount = undefined; let cost = undefined; let id = undefined; - let order = undefined; + let orderId = undefined; let fee = undefined; let symbol = undefined; if (Array.isArray (trade)) { @@ -79421,7 +86094,7 @@ module.exports = class kraken extends Exchange { // delisted market ids go here market = this.getDelistedMarketById (marketId); } - order = trade['ordertxid']; + orderId = this.safeString (trade, 'ordertxid'); id = this.safeString2 (trade, 'id', 'postxid'); timestamp = this.safeTimestamp (trade, 'time'); side = this.safeString (trade, 'type'); @@ -79449,7 +86122,7 @@ module.exports = class kraken extends Exchange { } return { 'id': id, - 'order': order, + 'order': orderId, 'info': trade, 'timestamp': timestamp, 'datetime': this.iso8601 (timestamp), @@ -79512,6 +86185,7 @@ module.exports = class kraken extends Exchange { } async fetchBalance (params = {}) { + await this.loadMarkets (); const response = await this.privatePostBalance (params); const balances = this.safeValue (response, 'result', {}); const result = { 'info': balances }; @@ -79536,18 +86210,50 @@ module.exports = class kraken extends Exchange { 'volume': this.amountToPrecision (symbol, amount), }; const clientOrderId = this.safeString2 (params, 'userref', 'clientOrderId'); - const query = this.omit (params, [ 'userref', 'clientOrderId' ]); + params = this.omit (params, [ 'userref', 'clientOrderId' ]); if (clientOrderId !== undefined) { request['userref'] = clientOrderId; } - const priceIsDefined = (price !== undefined); - const marketOrder = (type === 'market'); - const limitOrder = (type === 'limit'); - const shouldIncludePrice = limitOrder || (!marketOrder && priceIsDefined); - if (shouldIncludePrice) { + // + // market + // limit (price = limit price) + // stop-loss (price = stop loss price) + // take-profit (price = take profit price) + // stop-loss-limit (price = stop loss trigger price, price2 = triggered limit price) + // take-profit-limit (price = take profit trigger price, price2 = triggered limit price) + // settle-position + // + if (type === 'limit') { request['price'] = this.priceToPrecision (symbol, price); + } else if ((type === 'stop-loss') || (type === 'take-profit')) { + const stopPrice = this.safeFloat2 (params, 'price', 'stopPrice', price); + if (stopPrice === undefined) { + throw new ArgumentsRequired (this.id + ' createOrder() requires a price argument or a price/stopPrice parameter for a ' + type + ' order'); + } else { + request['price'] = this.priceToPrecision (symbol, stopPrice); + } + } else if ((type === 'stop-loss-limit') || (type === 'take-profit-limit')) { + const stopPrice = this.safeFloat2 (params, 'price', 'stopPrice'); + const limitPrice = this.safeFloat (params, 'price2'); + const stopPriceDefined = (stopPrice !== undefined); + const limitPriceDefined = (limitPrice !== undefined); + if (stopPriceDefined && limitPriceDefined) { + request['price'] = this.priceToPrecision (symbol, stopPrice); + request['price2'] = this.priceToPrecision (symbol, limitPrice); + } else if ((price === undefined) || (!(stopPriceDefined || limitPriceDefined))) { + throw new ArgumentsRequired (this.id + ' createOrder() requires a price argument and/or price/stopPrice/price2 parameters for a ' + type + ' order'); + } else { + if (stopPriceDefined) { + request['price'] = this.priceToPrecision (symbol, stopPrice); + request['price2'] = this.priceToPrecision (symbol, price); + } else if (limitPriceDefined) { + request['price'] = this.priceToPrecision (symbol, price); + request['price2'] = this.priceToPrecision (symbol, limitPrice); + } + } } - const response = await this.privatePostAddOrder (this.extend (request, query)); + params = this.omit (params, [ 'price', 'stopPrice', 'price2' ]); + const response = await this.privatePostAddOrder (this.extend (request, params)); // // { // error: [], @@ -79710,6 +86416,7 @@ module.exports = class kraken extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -79776,8 +86483,11 @@ module.exports = class kraken extends Exchange { // } // } // - const orders = this.safeValue (response, 'result', []); - const order = this.parseOrder (this.extend ({ 'id': id }, orders[id])); + const result = this.safeValue (response, 'result', []); + if (!(id in result)) { + throw new OrderNotFound (this.id + ' fetchOrder() could not find order id ' + id); + } + const order = this.parseOrder (this.extend ({ 'id': id }, result[id])); return this.extend ({ 'info': response }, order); } @@ -79785,7 +86495,7 @@ module.exports = class kraken extends Exchange { const orderTrades = this.safeValue (params, 'trades'); const tradeIds = []; if (orderTrades === undefined) { - throw new ArgumentsRequired (this.id + " fetchOrderTrades requires a unified order structure in the params argument or a 'trades' param (an array of trade id strings)"); + throw new ArgumentsRequired (this.id + " fetchOrderTrades() requires a unified order structure in the params argument or a 'trades' param (an array of trade id strings)"); } else { for (let i = 0; i < orderTrades.length; i++) { const orderTrade = orderTrades[i]; @@ -79934,6 +86644,11 @@ module.exports = class kraken extends Exchange { return response; } + async cancelAllOrders (symbol = undefined, params = {}) { + await this.loadMarkets (); + return await this.privatePostCancelAll (params); + } + async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); const request = {}; @@ -80105,7 +86820,7 @@ module.exports = class kraken extends Exchange { async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { // https://www.kraken.com/en-us/help/api#deposit-status if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchDeposits requires a currency code argument'); + throw new ArgumentsRequired (this.id + ' fetchDeposits() requires a currency code argument'); } await this.loadMarkets (); const currency = this.currency (code); @@ -80148,7 +86863,7 @@ module.exports = class kraken extends Exchange { async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { // https://www.kraken.com/en-us/help/api#withdraw-status if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchWithdrawals requires a currency code argument'); + throw new ArgumentsRequired (this.id + ' fetchWithdrawals() requires a currency code argument'); } await this.loadMarkets (); const currency = this.currency (code); @@ -80239,7 +86954,65 @@ module.exports = class kraken extends Exchange { 'id': response['result'], }; } - throw new ExchangeError (this.id + " withdraw requires a 'key' parameter (withdrawal key name, as set up on your account)"); + throw new ExchangeError (this.id + " withdraw() requires a 'key' parameter (withdrawal key name, as set up on your account)"); + } + + async fetchPositions (symbols = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'txid': 'comma delimited list of transaction ids to restrict output to', + // 'docalcs': false, // whether or not to include profit/loss calculations + // 'consolidation': 'market', // what to consolidate the positions data around, market will consolidate positions based on market pair + }; + const response = await this.privatePostOpenPositions (this.extend (request, params)); + // + // no consolidation + // + // { + // error: [], + // result: { + // 'TGUFMY-FLESJ-VYIX3J': { + // ordertxid: "O3LRNU-ZKDG5-XNCDFR", + // posstatus: "open", + // pair: "ETHUSDT", + // time: 1611557231.4584, + // type: "buy", + // ordertype: "market", + // cost: "28.49800", + // fee: "0.07979", + // vol: "0.02000000", + // vol_closed: "0.00000000", + // margin: "14.24900", + // terms: "0.0200% per 4 hours", + // rollovertm: "1611571631", + // misc: "", + // oflags: "" + // } + // } + // } + // + // consolidation by market + // + // { + // error: [], + // result: [ + // { + // pair: "ETHUSDT", + // positions: "1", + // type: "buy", + // leverage: "2.00000", + // cost: "28.49800", + // fee: "0.07979", + // vol: "0.02000000", + // vol_closed: "0.00000000", + // margin: "14.24900" + // } + // ] + // } + // + const result = this.safeValue (response, 'result'); + // todo unify parsePosition/parsePositions + return result; } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { @@ -80294,6 +87067,12 @@ module.exports = class kraken extends Exchange { if (body.indexOf ('Invalid arguments:volume') >= 0) { throw new InvalidOrder (this.id + ' ' + body); } + if (body.indexOf ('Rate limit exceeded') >= 0) { + throw new RateLimitExceeded (this.id + ' ' + body); + } + if (response === undefined) { + return; + } if (body[0] === '{') { if (typeof response !== 'string') { if ('error' in response) { @@ -80312,7 +87091,7 @@ module.exports = class kraken extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],100:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],103:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -80335,30 +87114,31 @@ module.exports = class kucoin extends Exchange { 'comment': 'Platform 2.0', 'has': { 'CORS': false, - 'fetchStatus': true, - 'fetchTime': true, - 'fetchMarkets': true, + 'cancelAllOrders': true, + 'cancelOrder': true, + 'createDepositAddress': true, + 'createOrder': true, + 'fetchAccounts': true, + 'fetchBalance': true, + 'fetchClosedOrders': true, 'fetchCurrencies': true, + 'fetchDepositAddress': true, + 'fetchDeposits': true, + 'fetchFundingFee': true, + 'fetchLedger': true, + 'fetchMarkets': true, + 'fetchMyTrades': true, + 'fetchOHLCV': true, + 'fetchOpenOrders': true, + 'fetchOrder': true, + 'fetchOrderBook': true, + 'fetchStatus': true, 'fetchTicker': true, 'fetchTickers': true, - 'fetchOrderBook': true, - 'fetchOrder': true, - 'fetchClosedOrders': true, - 'fetchOpenOrders': true, - 'fetchDepositAddress': true, - 'createDepositAddress': true, - 'withdraw': true, - 'fetchDeposits': true, - 'fetchWithdrawals': true, - 'fetchBalance': true, + 'fetchTime': true, 'fetchTrades': true, - 'fetchMyTrades': true, - 'createOrder': true, - 'cancelOrder': true, - 'fetchAccounts': true, - 'fetchFundingFee': true, - 'fetchOHLCV': true, - 'fetchLedger': true, + 'fetchWithdrawals': true, + 'withdraw': true, }, 'urls': { 'logo': 'https://user-images.githubusercontent.com/51840849/87295558-132aaf80-c50e-11ea-9801-a2fb0c57c799.jpg', @@ -80389,6 +87169,7 @@ module.exports = class kucoin extends Exchange { 'symbols', 'markets', 'market/allTickers', + 'market/orderbook/level{level}_{limit}', 'market/orderbook/level{level}', 'market/orderbook/level2', 'market/orderbook/level2_20', @@ -80425,6 +87206,7 @@ module.exports = class kucoin extends Exchange { 'withdrawals', 'withdrawals/quotas', 'orders', + 'order/client-order/{clientOid}', 'orders/{orderId}', 'limit/orders', 'fills', @@ -80440,6 +87222,9 @@ module.exports = class kucoin extends Exchange { 'margin/lend/assets', 'margin/market', 'margin/trade/last', + 'stop-order/{orderId}', + 'stop-order', + 'stop-order/queryOrderByClientOid', ], 'post': [ 'accounts', @@ -80450,17 +87235,23 @@ module.exports = class kucoin extends Exchange { 'orders', 'orders/multi', 'margin/borrow', + 'margin/order', 'margin/repay/all', 'margin/repay/single', 'margin/lend', 'margin/toggle-auto-lend', 'bullet-private', + 'stop-order', ], 'delete': [ 'withdrawals/{withdrawalId}', 'orders', + 'orders/client-order/{clientOid}', 'orders/{orderId}', 'margin/lend/{orderId}', + 'stop-order/cancelOrderByClientOid', + 'stop-order/{orderId}', + 'stop-order/cancel', ], }, }, @@ -80551,10 +87342,12 @@ module.exports = class kucoin extends Exchange { 'public': { 'GET': { 'status': 'v1', - 'market/orderbook/level{level}': 'v1', 'market/orderbook/level2': 'v2', + 'market/orderbook/level3': 'v2', 'market/orderbook/level2_20': 'v1', 'market/orderbook/level2_100': 'v1', + 'market/orderbook/level{level}': 'v2', + 'market/orderbook/level{level}_{limit}': 'v1', }, }, 'private': { @@ -80686,23 +87479,23 @@ module.exports = class kucoin extends Exchange { const response = await this.publicGetCurrencies (params); // // { - // "currency": "OMG", - // "name": "OMG", - // "fullName": "OmiseGO", - // "precision": 8, - // "confirms": 12, - // "withdrawalMinSize": "4", - // "withdrawalMinFee": "1.25", - // "isWithdrawEnabled": false, - // "isDepositEnabled": false, - // "isMarginEnabled": false, - // "isDebitEnabled": false + // "currency": "OMG", + // "name": "OMG", + // "fullName": "OmiseGO", + // "precision": 8, + // "confirms": 12, + // "withdrawalMinSize": "4", + // "withdrawalMinFee": "1.25", + // "isWithdrawEnabled": false, + // "isDepositEnabled": false, + // "isMarginEnabled": false, + // "isDebitEnabled": false // } // - const responseData = response['data']; + const data = this.safeValue (response, 'data', []); const result = {}; - for (let i = 0; i < responseData.length; i++) { - const entry = responseData[i]; + for (let i = 0; i < data.length; i++) { + const entry = data[i]; const id = this.safeString (entry, 'currency'); const name = this.safeString (entry, 'fullName'); const code = this.safeCurrencyCode (id); @@ -80997,7 +87790,10 @@ module.exports = class kucoin extends Exchange { address = address.replace ('bitcoincash:', ''); } const tag = this.safeString (data, 'memo'); - this.checkAddress (address); + if (code !== 'NIM') { + // contains spaces + this.checkAddress (address); + } return { 'info': response, 'currency': code, @@ -81014,13 +87810,12 @@ module.exports = class kucoin extends Exchange { // BCH {"code":"200000","data":{"address":"bitcoincash:qza3m4nj9rx7l9r0cdadfqxts6f92shvhvr5ls4q7z","memo":""}} // BTC {"code":"200000","data":{"address":"36SjucKqQpQSvsak9A7h6qzFjrVXpRNZhE","memo":""}} const data = this.safeValue (response, 'data', {}); - let address = this.safeString (data, 'address'); - // BCH/BSV is returned with a "bitcoincash:" prefix, which we cut off here and only keep the address - if (address !== undefined) { - address = address.replace ('bitcoincash:', ''); - } + const address = this.safeString (data, 'address'); const tag = this.safeString (data, 'memo'); - this.checkAddress (address); + if (code !== 'NIM') { + // contains spaces + this.checkAddress (address); + } return { 'info': response, 'currency': code, @@ -81034,20 +87829,22 @@ module.exports = class kucoin extends Exchange { } async fetchOrderBook (symbol, limit = undefined, params = {}) { - const level = this.safeInteger (params, 'level', 2); - let levelLimit = level.toString (); - if (levelLimit === '2') { - if (limit !== undefined) { - if ((limit !== 20) && (limit !== 100)) { - throw new ExchangeError (this.id + ' fetchOrderBook limit argument must be undefined, 20 or 100'); - } - levelLimit += '_' + limit.toString (); - } - } await this.loadMarkets (); const marketId = this.marketId (symbol); - const request = { 'symbol': marketId, 'level': levelLimit }; - const response = await this.publicGetMarketOrderbookLevelLevel (this.extend (request, params)); + const level = this.safeInteger (params, 'level', 2); + const request = { 'symbol': marketId, 'level': level }; + let method = 'publicGetMarketOrderbookLevelLevel'; + if (level === 2) { + if (limit !== undefined) { + if ((limit === 20) || (limit === 100)) { + request['limit'] = limit; + method = 'publicGetMarketOrderbookLevelLevelLimit'; + } else { + throw new ExchangeError (this.id + ' fetchOrderBook limit argument must be undefined, 20 or 100'); + } + } + } + const response = await this[method] (this.extend (request, params)); // // 'market/orderbook/level2' // 'market/orderbook/level2_20' @@ -81109,7 +87906,29 @@ module.exports = class kucoin extends Exchange { 'clientOid': clientOrderId, 'side': side, 'symbol': marketId, - 'type': type, + 'type': type, // limit or market + // 'remark': '', // optional remark for the order, length cannot exceed 100 utf8 characters + // 'stp': '', // self trade prevention, CN, CO, CB or DC + // To improve the system performance and to accelerate order placing and processing, KuCoin has added a new interface for margin orders + // The current one will no longer accept margin orders by May 1st, 2021 (UTC) + // At the time, KuCoin will notify users via the announcement, please pay attention to it + // 'tradeType': 'TRADE', // TRADE, MARGIN_TRADE // not used with margin orders + // limit orders --------------------------------------------------- + // 'timeInForce': 'GTC', // GTC, GTT, IOC, or FOK (default is GTC), limit orders only + // 'cancelAfter': long, // cancel after n seconds, requires timeInForce to be GTT + // 'postOnly': false, // Post only flag, invalid when timeInForce is IOC or FOK + // 'hidden': false, // Order will not be displayed in the order book + // 'iceberg': false, // Only a portion of the order is displayed in the order book + // 'visibleSize': this.amountToPrecision (symbol, visibleSize), // The maximum visible size of an iceberg order + // market orders -------------------------------------------------- + // 'size': this.amountToPrecision (symbol, amount), // Amount in base currency + // 'funds': this.costToPrecision (symbol, cost), // Amount of quote currency to use + // stop orders ---------------------------------------------------- + // 'stop': 'loss', // loss or entry, the default is loss, requires stopPrice + // 'stopPrice': this.priceToPrecision (symbol, amount), // need to be defined if stop is specified + // margin orders -------------------------------------------------- + // 'marginMode': 'cross', // cross (cross mode) and isolated (isolated mode), set to cross by default, the isolated mode will be released soon, stay tuned + // 'autoBorrow': false, // The system will first borrow you funds at the optimal interest rate and then place an order for you }; if (type !== 'market') { request['price'] = this.priceToPrecision (symbol, price); @@ -81161,9 +87980,32 @@ module.exports = class kucoin extends Exchange { } async cancelOrder (id, symbol = undefined, params = {}) { - const request = { 'orderId': id }; - const response = await this.privateDeleteOrdersOrderId (this.extend (request, params)); - return response; + await this.loadMarkets (); + const request = {}; + const clientOrderId = this.safeString2 (params, 'clientOid', 'clientOrderId'); + let method = 'privateDeleteOrdersOrderId'; + if (clientOrderId !== undefined) { + request['clientOid'] = clientOrderId; + method = 'privateDeleteOrdersClientOrderClientOid'; + } else { + request['orderId'] = id; + } + params = this.omit (params, [ 'clientOid', 'clientOrderId' ]); + return await this[method] (this.extend (request, params)); + } + + async cancelAllOrders (symbol = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'symbol': market['id'], + // 'tradeType': 'TRADE', // default is to cancel the spot trading order + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['symbol'] = market['id']; + } + return await this.privateDeleteOrders (this.extend (request, params)); } async fetchOrdersByStatus (status, symbol = undefined, since = undefined, limit = undefined, params = {}) { @@ -81241,20 +88083,27 @@ module.exports = class kucoin extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { await this.loadMarkets (); - // a special case for undefined ids - // otherwise a wrong endpoint for all orders will be triggered - // https://github.com/ccxt/ccxt/issues/7234 - if (id === undefined) { - throw new InvalidOrder (this.id + ' fetchOrder requires an order id'); + const request = {}; + const clientOrderId = this.safeString2 (params, 'clientOid', 'clientOrderId'); + let method = 'privateGetOrdersOrderId'; + if (clientOrderId !== undefined) { + request['clientOid'] = clientOrderId; + method = 'privateGetOrdersClientOrderClientOid'; + } else { + // a special case for undefined ids + // otherwise a wrong endpoint for all orders will be triggered + // https://github.com/ccxt/ccxt/issues/7234 + if (id === undefined) { + throw new InvalidOrder (this.id + ' fetchOrder() requires an order id'); + } + request['orderId'] = id; } - const request = { - 'orderId': id, - }; + params = this.omit (params, [ 'clientOid', 'clientOrderId' ]); + const response = await this[method] (this.extend (request, params)); let market = undefined; if (symbol !== undefined) { market = this.market (symbol); } - const response = await this.privateGetOrdersOrderId (this.extend (request, params)); const responseData = this.safeValue (response, 'data'); return this.parseOrder (responseData, market); } @@ -81331,12 +88180,14 @@ module.exports = class kucoin extends Exchange { const clientOrderId = this.safeString (order, 'clientOid'); const timeInForce = this.safeString (order, 'timeInForce'); const stopPrice = this.safeFloat (order, 'stopPrice'); + const postOnly = this.safeValue (order, 'postOnly'); return { 'id': orderId, 'clientOrderId': clientOrderId, 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'amount': amount, 'price': price, @@ -81665,6 +88516,7 @@ module.exports = class kucoin extends Exchange { // "status": "SUCCESS", // "createdAt": 1544178843000, // "updatedAt": 1544178891000 + // "remark":"foobar" // } // // fetchWithdrawals @@ -81681,6 +88533,7 @@ module.exports = class kucoin extends Exchange { // "status": "FAILURE", // "createdAt": 1546503758000, // "updatedAt": 1546504603000 + // "remark":"foobar" // } // const currencyId = this.safeString (transaction, 'currency'); @@ -81731,20 +88584,26 @@ module.exports = class kucoin extends Exchange { updated = updated * 1000; } } + const comment = this.safeString (transaction, 'remark'); return { 'id': id, + 'info': transaction, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), 'address': address, + 'addressTo': address, + 'addressFrom': undefined, 'tag': tag, + 'tagTo': tag, + 'tagFrom': undefined, 'currency': code, 'amount': amount, 'txid': txid, 'type': type, 'status': status, + 'comment': comment, 'fee': fee, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), 'updated': updated, - 'info': transaction, }; } @@ -81792,6 +88651,7 @@ module.exports = class kucoin extends Exchange { // "status": "SUCCESS", // "createdAt": 1544178843000, // "updatedAt": 1544178891000 + // "remark":"foobar" // }, // //-------------------------------------------------- // // version 1 (historical) deposit response structure @@ -81921,7 +88781,7 @@ module.exports = class kucoin extends Exchange { async fetchLedger (code = undefined, since = undefined, limit = undefined, params = {}) { if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchLedger requires a code param'); + throw new ArgumentsRequired (this.id + ' fetchLedger() requires a code param'); } await this.loadMarkets (); await this.loadAccounts (); @@ -82064,7 +88924,7 @@ module.exports = class kucoin extends Exchange { // † ↑ // const versions = this.safeValue (this.options, 'versions', {}); - const apiVersions = this.safeValue (versions, api); + const apiVersions = this.safeValue (versions, api, {}); const methodVersions = this.safeValue (apiVersions, method, {}); const defaultVersion = this.safeString (methodVersions, path, this.options['version']); const version = this.safeString (params, 'version', defaultVersion); @@ -82087,10 +88947,17 @@ module.exports = class kucoin extends Exchange { this.checkRequiredCredentials (); const timestamp = this.nonce ().toString (); headers = this.extend ({ + 'KC-API-KEY-VERSION': '2', 'KC-API-KEY': this.apiKey, 'KC-API-TIMESTAMP': timestamp, - 'KC-API-PASSPHRASE': this.password, }, headers); + const apiKeyVersion = this.safeString (headers, 'KC-API-KEY-VERSION'); + if (apiKeyVersion === '2') { + const passphrase = this.hmac (this.encode (this.password), this.encode (this.secret), 'sha256', 'base64'); + headers['KC-API-PASSPHRASE'] = passphrase; + } else { + headers['KC-API-PASSPHRASE'] = this.password; + } const payload = timestamp + method + endpoint + endpart; const signature = this.hmac (this.encode (payload), this.encode (this.secret), 'sha256', 'base64'); headers['KC-API-SIGN'] = signature; @@ -82125,7 +88992,7 @@ module.exports = class kucoin extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],101:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],104:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -82248,7 +89115,7 @@ module.exports = class kuna extends acx { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -82310,7 +89177,7 @@ module.exports = class kuna extends acx { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -82341,7 +89208,7 @@ module.exports = class kuna extends acx { } }; -},{"./acx.js":3,"./base/errors":7}],102:[function(require,module,exports){ +},{"./acx.js":4,"./base/errors":8}],105:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -82671,7 +89538,7 @@ module.exports = class lakebtc extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],103:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],106:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -83208,7 +90075,7 @@ module.exports = class latoken extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -83320,6 +90187,7 @@ module.exports = class latoken extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -83354,7 +90222,7 @@ module.exports = class latoken extends Exchange { async fetchOrdersWithMethod (method, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrdersWithMethod requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrdersWithMethod() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -83470,7 +90338,7 @@ module.exports = class latoken extends Exchange { async cancelAllOrders (symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelAllOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelAllOrders() requires a symbol argument'); } await this.loadMarkets (); const marketId = this.marketId (symbol); @@ -83560,7 +90428,7 @@ module.exports = class latoken extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],104:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],107:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -83921,10 +90789,10 @@ module.exports = class lbank extends Exchange { await this.loadMarkets (); const market = this.market (symbol); if (since === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a `since` argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a `since` argument'); } if (limit === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a `limit` argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a `limit` argument'); } const request = { 'symbol': market['id'], @@ -84049,6 +90917,7 @@ module.exports = class lbank extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -84260,7 +91129,7 @@ module.exports = class lbank extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],105:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],108:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -84449,6 +91318,7 @@ module.exports = class liquid extends Exchange { 'must_be_positive': InvalidOrder, 'less_than_order_size': InvalidOrder, 'price_too_high': InvalidOrder, + 'price_too_small': InvalidOrder, // {"errors":{"order":["price_too_small"]}} }, 'commonCurrencies': { 'WIN': 'WCOIN', @@ -84986,7 +91856,7 @@ module.exports = class liquid extends Exchange { async editOrder (id, symbol, type, side, amount, price = undefined, params = {}) { await this.loadMarkets (); if (price === undefined) { - throw new ArgumentsRequired (this.id + ' editOrder requires the price argument'); + throw new ArgumentsRequired (this.id + ' editOrder() requires the price argument'); } const request = { 'order': { @@ -85127,6 +91997,7 @@ module.exports = class liquid extends Exchange { 'lastTradeTimestamp': lastTradeTimestamp, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'status': status, 'symbol': symbol, 'side': side, @@ -85396,940 +92267,7 @@ module.exports = class liquid extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],106:[function(require,module,exports){ -'use strict'; - -// --------------------------------------------------------------------------- - -const Exchange = require ('./base/Exchange'); -const { ExchangeError, OnMaintenance, BadResponse, ArgumentsRequired, AuthenticationError, NotSupported, InvalidOrder, OrderNotFound, ExchangeNotAvailable, RateLimitExceeded, InsufficientFunds } = require ('./base/errors'); -const { TRUNCATE, DECIMAL_PLACES } = require ('./base/functions/number'); - -// --------------------------------------------------------------------------- - -module.exports = class livecoin extends Exchange { - describe () { - return this.deepExtend (super.describe (), { - 'id': 'livecoin', - 'name': 'LiveCoin', - 'countries': [ 'US', 'UK', 'RU' ], - 'rateLimit': 1000, - 'userAgent': this.userAgents['chrome'], - 'has': { - 'cancelOrder': true, - 'CORS': false, - 'createOrder': true, - 'fetchBalance': true, - 'fetchClosedOrders': true, - 'fetchCurrencies': true, - 'fetchDepositAddress': true, - 'fetchDeposits': true, - 'fetchMarkets': true, - 'fetchMyTrades': true, - 'fetchOpenOrders': true, - 'fetchOrder': true, - 'fetchOrderBook': true, - 'fetchOrders': true, - 'fetchTicker': true, - 'fetchTickers': true, - 'fetchTrades': true, - 'fetchTradingFee': true, - 'fetchTradingFees': true, - 'fetchWithdrawals': true, - 'withdraw': true, - }, - 'urls': { - 'logo': 'https://user-images.githubusercontent.com/1294454/27980768-f22fc424-638a-11e7-89c9-6010a54ff9be.jpg', - 'api': 'https://api.livecoin.net', - 'www': 'https://www.livecoin.net', - 'doc': 'https://www.livecoin.net/api?lang=en', - 'referral': 'https://livecoin.net/?from=Livecoin-CQ1hfx44', - }, - 'api': { - 'public': { - 'get': [ - 'exchange/all/order_book', - 'exchange/last_trades', - 'exchange/maxbid_minask', - 'exchange/order_book', - 'exchange/restrictions', - 'exchange/ticker', // omit params to get all tickers at once - 'info/coinInfo', - ], - }, - 'private': { - 'get': [ - 'exchange/client_orders', - 'exchange/order', - 'exchange/trades', - 'exchange/commission', - 'exchange/commissionCommonInfo', - 'payment/balances', - 'payment/balance', - 'payment/get/address', - 'payment/history/size', - 'payment/history/transactions', - ], - 'post': [ - 'exchange/buylimit', - 'exchange/buymarket', - 'exchange/cancellimit', - 'exchange/selllimit', - 'exchange/sellmarket', - 'payment/out/capitalist', - 'payment/out/card', - 'payment/out/coin', - 'payment/out/okpay', - 'payment/out/payeer', - 'payment/out/perfectmoney', - 'payment/voucher/amount', - 'payment/voucher/make', - 'payment/voucher/redeem', - ], - }, - }, - 'fees': { - 'trading': { - 'tierBased': false, - 'percentage': true, - 'maker': 0.18 / 100, - 'taker': 0.18 / 100, - }, - }, - 'commonCurrencies': { - 'BIT': 'First Bitcoin', - 'BTCH': 'Bithash', - 'CPC': 'Capricoin', - 'CBC': 'CryptoBossCoin', // conflict with CBC (CashBet Coin) - 'CPT': 'Cryptos', // conflict with CPT = Contents Protocol https://github.com/ccxt/ccxt/issues/4920 and https://github.com/ccxt/ccxt/issues/6081 - 'EDR': 'E-Dinar Coin', // conflicts with EDR for Endor Protocol and EDRCoin - 'eETT': 'EETT', - 'FirstBlood': '1ST', - 'FORTYTWO': '42', - 'LEO': 'LeoCoin', - 'MIOTA': 'IOTA', // https://github.com/ccxt/ccxt/issues/7487 - 'ORE': 'Orectic', - 'PLN': 'Plutaneum', // conflict with Polish Zloty - 'RUR': 'RUB', - 'SCT': 'SpaceCoin', - 'TPI': 'ThaneCoin', - 'UNUS': 'LEO', // https://github.com/ccxt/ccxt/issues/7496 - 'WAX': 'WAXP', - 'wETT': 'WETT', - 'XBT': 'Bricktox', - }, - 'exceptions': { - 'exact': { - '1': ExchangeError, - '10': AuthenticationError, - '100': ExchangeError, // invalid parameters - '101': AuthenticationError, - '102': AuthenticationError, - '103': InvalidOrder, // invalid currency - '104': InvalidOrder, // invalid amount - '105': InvalidOrder, // unable to block funds - '11': AuthenticationError, - '12': AuthenticationError, - '2': AuthenticationError, // "User not found" - '20': AuthenticationError, - '30': AuthenticationError, - '31': NotSupported, - '32': ExchangeError, - '429': RateLimitExceeded, - '503': ExchangeNotAvailable, - }, - 'broad': { - 'insufficient funds': InsufficientFunds, // https://github.com/ccxt/ccxt/issues/5749 - 'NOT FOUND': OrderNotFound, - 'Cannot find order': OrderNotFound, - 'Minimal amount is': InvalidOrder, - }, - }, - }); - } - - async fetchMarkets (params = {}) { - const response = await this.publicGetExchangeTicker (params); - const restrictions = await this.publicGetExchangeRestrictions (); - const restrictionsById = this.indexBy (restrictions['restrictions'], 'currencyPair'); - const result = []; - for (let i = 0; i < response.length; i++) { - const market = response[i]; - const id = this.safeString (market, 'symbol'); - const [ baseId, quoteId ] = id.split ('/'); - const base = this.safeCurrencyCode (baseId); - const quote = this.safeCurrencyCode (quoteId); - const symbol = base + '/' + quote; - const coinRestrictions = this.safeValue (restrictionsById, symbol); - const precision = { - 'price': 5, - 'amount': 8, - 'cost': 8, - }; - const limits = { - 'amount': { - 'min': Math.pow (10, -precision['amount']), - 'max': Math.pow (10, precision['amount']), - }, - }; - if (coinRestrictions) { - precision['price'] = this.safeInteger (coinRestrictions, 'priceScale', 5); - limits['amount']['min'] = this.safeFloat (coinRestrictions, 'minLimitQuantity', limits['amount']['min']); - } - limits['price'] = { - 'min': Math.pow (10, -precision['price']), - 'max': Math.pow (10, precision['price']), - }; - result.push ({ - 'id': id, - 'symbol': symbol, - 'base': base, - 'quote': quote, - 'baseId': baseId, - 'quoteId': quoteId, - 'active': true, - 'precision': precision, - 'limits': limits, - 'info': market, - }); - } - return result; - } - - async fetchCurrencies (params = {}) { - const response = await this.publicGetInfoCoinInfo (params); - if (typeof response === 'string') { - if (response.indexOf ('site is under maintenance') >= 0) { - throw new OnMaintenance (this.id + ' fetchCurrencies() failed to fetch the currencies, the exchange is on maintenance'); - } else { - throw new BadResponse (this.id + ' fetchCurrencies() failed to fetch the currencies'); - } - } - const currencies = this.safeValue (response, 'info'); - let result = {}; - for (let i = 0; i < currencies.length; i++) { - const currency = currencies[i]; - const id = this.safeString (currency, 'symbol'); - // todo: will need to rethink the fees - // to add support for multiple withdrawal/deposit methods and - // differentiated fees for each particular method - const code = this.safeCurrencyCode (id); - const precision = 8; // default precision, todo: fix "magic constants" - const walletStatus = this.safeString (currency, 'walletStatus'); - const active = (walletStatus === 'normal'); - const name = this.safeString (currency, 'name'); - const fee = this.safeFloat (currency, 'withdrawFee'); - result[code] = { - 'id': id, - 'code': code, - 'info': currency, - 'name': name, - 'active': active, - 'fee': fee, - 'precision': precision, - 'limits': { - 'amount': { - 'min': this.safeFloat (currency, 'minOrderAmount'), - 'max': Math.pow (10, precision), - }, - 'price': { - 'min': Math.pow (10, -precision), - 'max': Math.pow (10, precision), - }, - 'cost': { - 'min': this.safeFloat (currency, 'minOrderAmount'), - 'max': undefined, - }, - 'withdraw': { - 'min': this.safeFloat (currency, 'minWithdrawAmount'), - 'max': Math.pow (10, precision), - }, - 'deposit': { - 'min': this.safeFloat (currency, 'minDepositAmount'), - 'max': undefined, - }, - }, - }; - } - result = this.appendFiatCurrencies (result); - return result; - } - - appendFiatCurrencies (result) { - const precision = 8; - const defaults = { - 'info': undefined, - 'active': true, - 'fee': undefined, - 'precision': precision, - 'limits': { - 'withdraw': { 'min': undefined, 'max': undefined }, - 'deposit': { 'min': undefined, 'max': undefined }, - 'amount': { 'min': undefined, 'max': undefined }, - 'cost': { 'min': undefined, 'max': undefined }, - 'price': { - 'min': Math.pow (10, -precision), - 'max': Math.pow (10, precision), - }, - }, - 'id': undefined, - 'code': undefined, - 'name': undefined, - }; - const currencies = [ - { 'id': 'USD', 'code': 'USD', 'name': 'US Dollar' }, - { 'id': 'EUR', 'code': 'EUR', 'name': 'Euro' }, - // { 'id': 'RUR', 'code': 'RUB', 'name': 'Russian ruble' }, - ]; - currencies.push ({ - 'id': 'RUR', - 'code': this.safeCurrencyCode ('RUR'), - 'name': 'Russian ruble', - }); - for (let i = 0; i < currencies.length; i++) { - const currency = currencies[i]; - const code = currency['code']; - result[code] = this.extend (defaults, currency); - } - return result; - } - - async fetchBalance (params = {}) { - await this.loadMarkets (); - const response = await this.privateGetPaymentBalances (params); - const result = { 'info': response }; - for (let i = 0; i < response.length; i++) { - const balance = response[i]; - const currencyId = this.safeString (balance, 'currency'); - const code = this.safeCurrencyCode (currencyId); - let account = undefined; - if (code in result) { - account = result[code]; - } else { - account = this.account (); - } - if (balance['type'] === 'total') { - account['total'] = this.safeFloat (balance, 'value'); - } - if (balance['type'] === 'available') { - account['free'] = this.safeFloat (balance, 'value'); - } - if (balance['type'] === 'trade') { - account['used'] = this.safeFloat (balance, 'value'); - } - result[code] = account; - } - return this.parseBalance (result); - } - - async fetchTradingFees (params = {}) { - await this.loadMarkets (); - const response = await this.privateGetExchangeCommissionCommonInfo (params); - const commission = this.safeFloat (response, 'commission'); - return { - 'info': response, - 'maker': commission, - 'taker': commission, - }; - } - - async fetchOrderBook (symbol, limit = undefined, params = {}) { - await this.loadMarkets (); - const request = { - 'currencyPair': this.marketId (symbol), - 'groupByPrice': 'false', - }; - if (limit !== undefined) { - request['depth'] = limit; // 100 - } - const response = await this.publicGetExchangeOrderBook (this.extend (request, params)); - const timestamp = this.safeInteger (response, 'timestamp'); - return this.parseOrderBook (response, timestamp); - } - - parseTicker (ticker, market = undefined) { - const timestamp = this.milliseconds (); - let symbol = undefined; - if (market) { - symbol = market['symbol']; - } - const vwap = this.safeFloat (ticker, 'vwap'); - const baseVolume = this.safeFloat (ticker, 'volume'); - let quoteVolume = undefined; - if (baseVolume !== undefined && vwap !== undefined) { - quoteVolume = baseVolume * vwap; - } - const last = this.safeFloat (ticker, 'last'); - return { - 'symbol': symbol, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'high': this.safeFloat (ticker, 'high'), - 'low': this.safeFloat (ticker, 'low'), - 'bid': this.safeFloat (ticker, 'best_bid'), - 'bidVolume': undefined, - 'ask': this.safeFloat (ticker, 'best_ask'), - 'askVolume': undefined, - 'vwap': this.safeFloat (ticker, 'vwap'), - 'open': undefined, - 'close': last, - 'last': last, - 'previousClose': undefined, - 'change': undefined, - 'percentage': undefined, - 'average': undefined, - 'baseVolume': baseVolume, - 'quoteVolume': quoteVolume, - 'info': ticker, - }; - } - - async fetchTickers (symbols = undefined, params = {}) { - await this.loadMarkets (); - const response = await this.publicGetExchangeTicker (params); - const tickers = this.indexBy (response, 'symbol'); - const ids = Object.keys (tickers); - const result = {}; - for (let i = 0; i < ids.length; i++) { - const id = ids[i]; - const market = this.safeMarket (id); - const symbol = market['symbol']; - const ticker = tickers[id]; - result[symbol] = this.parseTicker (ticker, market); - } - return this.filterByArray (result, 'symbol', symbols); - } - - async fetchTicker (symbol, params = {}) { - await this.loadMarkets (); - const market = this.market (symbol); - const request = { - 'currencyPair': market['id'], - }; - const ticker = await this.publicGetExchangeTicker (this.extend (request, params)); - return this.parseTicker (ticker, market); - } - - parseTrade (trade, market = undefined) { - // - // fetchTrades (public) - // - // { - // "time": 1409935047, - // "id": 99451, - // "price": 350, - // "quantity": 2.85714285, - // "type": "BUY" - // } - // - // fetchMyTrades (private) - // - // { - // "datetime": 1435844369, - // "id": 30651619, - // "type": "sell", - // "symbol": "BTC/EUR", - // "price": 230, - // "quantity": 0.1, - // "commission": 0, - // "clientorderid": 1472837650 - // } - const timestamp = this.safeTimestamp2 (trade, 'time', 'datetime'); - let fee = undefined; - const feeCost = this.safeFloat (trade, 'commission'); - if (feeCost !== undefined) { - const feeCurrency = market ? market['quote'] : undefined; - fee = { - 'cost': feeCost, - 'currency': feeCurrency, - }; - } - const orderId = this.safeString (trade, 'clientorderid'); - const id = this.safeString (trade, 'id'); - const side = this.safeStringLower (trade, 'type'); - const amount = this.safeFloat (trade, 'quantity'); - const price = this.safeFloat (trade, 'price'); - let cost = undefined; - if (amount !== undefined) { - if (price !== undefined) { - cost = amount * price; - } - } - const marketId = this.safeString (trade, 'symbol'); - const symbol = this.safeSymbol (marketId, market, '/'); - return { - 'id': id, - 'info': trade, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'symbol': symbol, - 'order': orderId, - 'type': undefined, - 'side': side, - 'takerOrMaker': undefined, - 'price': price, - 'amount': amount, - 'cost': cost, - 'fee': fee, - }; - } - - async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const request = { - // 'currencyPair': market['id'], - // 'orderDesc': 'true', // or 'false', if true then new orders will be first, otherwise old orders will be first. - // 'offset': 0, // page offset, position of the first item on the page - }; - let market = undefined; - if (symbol !== undefined) { - market = this.market (symbol); - request['currencyPair'] = market['id']; - } - if (limit !== undefined) { - request['limit'] = limit; - } - const response = await this.privateGetExchangeTrades (this.extend (request, params)); - // - // [ - // { - // "datetime": 1435844369, - // "id": 30651619, - // "type": "sell", - // "symbol": "BTC/EUR", - // "price": 230, - // "quantity": 0.1, - // "commission": 0, - // "clientorderid": 1472837650 - // }, - // { - // "datetime": 1435844356, - // "id": 30651618, - // "type": "sell", - // "symbol": "BTC/EUR", - // "price": 230, - // "quantity": 0.2, - // "commission": 0.092, - // "clientorderid": 1472837651 - // } - // ] - // - return this.parseTrades (response, market, since, limit); - } - - async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const market = this.market (symbol); - const request = { - 'currencyPair': market['id'], - }; - const response = await this.publicGetExchangeLastTrades (this.extend (request, params)); - // - // [ - // { - // "time": 1409935047, - // "id": 99451, - // "price": 350, - // "quantity": 2.85714285, - // "type": "BUY" - // }, - // { - // "time": 1409934792, - // "id": 99450, - // "price": 350, - // "quantity": 0.57142857, - // "type": "SELL" - // } - // ] - // - return this.parseTrades (response, market, since, limit); - } - - async fetchOrder (id, symbol = undefined, params = {}) { - await this.loadMarkets (); - const request = { - 'orderId': id, - }; - const response = await this.privateGetExchangeOrder (this.extend (request, params)); - return this.parseOrder (response); - } - - parseOrderStatus (status) { - const statuses = { - 'OPEN': 'open', - 'PARTIALLY_FILLED': 'open', - 'EXECUTED': 'closed', - 'CANCELLED': 'canceled', - 'PARTIALLY_FILLED_AND_CANCELLED': 'canceled', - }; - return this.safeString (statuses, status, status); - } - - parseOrder (order, market = undefined) { - let timestamp = undefined; - if ('lastModificationTime' in order) { - timestamp = this.safeString (order, 'lastModificationTime'); - if (timestamp !== undefined) { - if (timestamp.indexOf ('T') >= 0) { - timestamp = this.parse8601 (timestamp); - } else { - timestamp = this.safeInteger (order, 'lastModificationTime'); - } - } - } - // TODO currently not supported by livecoin - // let trades = this.parseTrades (order['trades'], market, since, limit); - const trades = undefined; - const status = this.parseOrderStatus (this.safeString2 (order, 'status', 'orderStatus')); - const marketId = this.safeString2 (order, 'symbol', 'currencyPair'); - const symbol = this.safeSymbol (marketId, market, '/'); - let type = this.safeStringLower (order, 'type'); - let side = undefined; - if (type !== undefined) { - const orderType = type.split ('_'); - type = orderType[0]; - side = orderType[1]; - } - const price = this.safeFloat (order, 'price'); - // of the next two lines the latter overrides the former, if present in the order structure - let remaining = this.safeFloat (order, 'remainingQuantity'); - remaining = this.safeFloat (order, 'remaining_quantity', remaining); - const amount = this.safeFloat (order, 'quantity', remaining); - let filled = undefined; - if (remaining !== undefined) { - filled = amount - remaining; - } - let cost = undefined; - if (filled !== undefined && price !== undefined) { - cost = filled * price; - } - const feeRate = this.safeFloat (order, 'commission_rate'); - let feeCost = undefined; - if (cost !== undefined && feeRate !== undefined) { - feeCost = cost * feeRate; - } - if ((market === undefined) && (symbol in this.markets)) { - market = this.markets[symbol]; - } - let feeCurrency = undefined; - if (market !== undefined) { - feeCurrency = market['quote']; - } - return { - 'info': order, - 'id': order['id'], - 'clientOrderId': undefined, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'lastTradeTimestamp': undefined, - 'status': status, - 'symbol': symbol, - 'type': type, - 'timeInForce': undefined, - 'side': side, - 'price': price, - 'stopPrice': undefined, - 'amount': amount, - 'cost': cost, - 'filled': filled, - 'remaining': remaining, - 'trades': trades, - 'fee': { - 'cost': feeCost, - 'currency': feeCurrency, - 'rate': feeRate, - }, - 'average': undefined, - }; - } - - async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - let market = undefined; - const request = {}; - if (symbol !== undefined) { - market = this.market (symbol); - request['currencyPair'] = market['id']; - } - if (since !== undefined) { - request['issuedFrom'] = parseInt (since); - } - if (limit !== undefined) { - request['endRow'] = limit - 1; - } - const response = await this.privateGetExchangeClientOrders (this.extend (request, params)); - const result = []; - let rawOrders = []; - if (response['data']) { - rawOrders = response['data']; - } - for (let i = 0; i < rawOrders.length; i++) { - const order = rawOrders[i]; - result.push (this.parseOrder (order, market)); - } - return this.sortBy (result, 'timestamp'); - } - - async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - const request = { - 'openClosed': 'OPEN', - }; - return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); - } - - async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - const request = { - 'openClosed': 'CLOSED', - }; - return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); - } - - async createOrder (symbol, type, side, amount, price = undefined, params = {}) { - await this.loadMarkets (); - const method = 'privatePostExchange' + this.capitalize (side) + type; - const market = this.market (symbol); - const request = { - 'quantity': this.amountToPrecision (symbol, amount), - 'currencyPair': market['id'], - }; - if (type === 'limit') { - request['price'] = this.priceToPrecision (symbol, price); - } - const response = await this[method] (this.extend (request, params)); - const result = { - 'info': response, - 'id': response['orderId'].toString (), - }; - const success = this.safeValue (response, 'success'); - if (success) { - result['status'] = 'open'; - } - return result; - } - - async cancelOrder (id, symbol = undefined, params = {}) { - if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); - } - await this.loadMarkets (); - const market = this.market (symbol); - const request = { - 'orderId': id, - 'currencyPair': market['id'], - }; - const response = await this.privatePostExchangeCancellimit (this.extend (request, params)); - const message = this.safeString (response, 'message', this.json (response)); - if ('success' in response) { - if (!response['success']) { - throw new InvalidOrder (message); - } else if ('cancelled' in response) { - if (response['cancelled']) { - return { - 'status': 'canceled', - 'info': response, - }; - } else { - throw new OrderNotFound (message); - } - } - } - throw new ExchangeError (this.id + ' cancelOrder() failed: ' + this.json (response)); - } - - async withdraw (code, amount, address, tag = undefined, params = {}) { - // Sometimes the response with be { key: null } for all keys. - // An example is if you attempt to withdraw more than is allowed when withdrawal fees are considered. - this.checkAddress (address); - await this.loadMarkets (); - const currency = this.currency (code); - let wallet = address; - if (tag !== undefined) { - wallet += '::' + tag; - } - const request = { - 'amount': this.decimalToPrecision (amount, TRUNCATE, currency['precision'], DECIMAL_PLACES), - 'currency': currency['id'], - 'wallet': wallet, - }; - const response = await this.privatePostPaymentOutCoin (this.extend (request, params)); - const id = this.safeInteger (response, 'id'); - if (id === undefined) { - throw new InsufficientFunds (this.id + ' insufficient funds to cover requested withdrawal amount post fees ' + this.json (response)); - } - return { - 'info': response, - 'id': id, - }; - } - - parseTransaction (transaction, currency = undefined) { - // { - // "id": "c853093d5aa06df1c92d79c2...", (tx on deposits, address on withdrawals) - // "type": "DEPOSIT", - // "date": 1553186482676, - // "amount": 712.61266, - // "fee": 0, - // "fixedCurrency": "XVG", - // "taxCurrency": "XVG", - // "variableAmount": null, - // "variableCurrency": null, - // "external": "Coin", - // "login": "USERNAME", - // "externalKey": "....87diPBy......3hTtuwUT78Yi", (address on deposits, tx on withdrawals) - // "documentId": 1110662453 - // }, - let txid = undefined; - let address = undefined; - const id = this.safeString (transaction, 'documentId'); - const amount = this.safeFloat (transaction, 'amount'); - const timestamp = this.safeInteger (transaction, 'date'); - const type = this.safeStringLower (transaction, 'type'); - const currencyId = this.safeString (transaction, 'fixedCurrency'); - const feeCost = this.safeFloat (transaction, 'fee'); - const code = this.safeCurrencyCode (currencyId, currency); - if (type === 'withdrawal') { - txid = this.safeString (transaction, 'externalKey'); - address = this.safeString (transaction, 'id'); - } else if (type === 'deposit') { - address = this.safeString (transaction, 'externalKey'); - txid = this.safeString (transaction, 'id'); - } - let status = undefined; - if (type === 'deposit') { - status = 'ok'; // Deposits is not registered until they are in account. Withdrawals are left as undefined, not entirely sure about theyre status. - } - return { - 'info': transaction, - 'id': id, - 'currency': code, - 'amount': amount, - 'address': address, - 'tag': undefined, - 'status': status, - 'type': type, - 'updated': undefined, - 'txid': txid, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'fee': { - 'currency': code, - 'cost': feeCost, - }, - }; - } - - async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const endtime = 2505600000; // 29 days - exchange has maximum 30 days. - const now = this.milliseconds (); - const request = { - 'types': 'DEPOSIT', - 'end': now, - 'start': (since !== undefined) ? parseInt (since) : now - endtime, - }; - let currency = undefined; - if (code !== undefined) { - currency = this.currency (code); - } - if (limit !== undefined) { - request['limit'] = limit; // default is 100 - } - const response = await this.privateGetPaymentHistoryTransactions (this.extend (request, params)); - return this.parseTransactions (response, currency, since, limit); - } - - async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const endtime = 2505600000; // 29 days - exchange has maximum 30 days. - const now = this.milliseconds (); - const request = { - 'types': 'WITHDRAWAL', - 'end': now, - 'start': (since !== undefined) ? parseInt (since) : now - endtime, - }; - let currency = undefined; - if (code !== undefined) { - currency = this.currency (code); - } - if (limit !== undefined) { - request['limit'] = limit; // default is 100 - } - if (since !== undefined) { - request['start'] = since; - } - const response = await this.privateGetPaymentHistoryTransactions (this.extend (request, params)); - return this.parseTransactions (response, currency, since, limit); - } - - async fetchDepositAddress (currency, params = {}) { - const request = { - 'currency': currency, - }; - const response = await this.privateGetPaymentGetAddress (this.extend (request, params)); - let address = this.safeString (response, 'wallet'); - let tag = undefined; - if (address.indexOf (':') >= 0) { - const parts = address.split (':'); - address = parts[0]; - tag = parts[2]; - } - this.checkAddress (address); - return { - 'currency': currency, - 'address': address, - 'tag': tag, - 'info': response, - }; - } - - sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { - let url = this.urls['api'] + '/' + path; - const query = this.urlencode (this.keysort (params)); - if (method === 'GET') { - if (Object.keys (params).length) { - url += '?' + query; - } - } - if (api === 'private') { - this.checkRequiredCredentials (); - if (method === 'POST') { - body = query; - } - const signature = this.hmac (this.encode (query), this.encode (this.secret), 'sha256'); - headers = { - 'Api-Key': this.apiKey, - 'Sign': signature.toUpperCase (), - 'Content-Type': 'application/x-www-form-urlencoded', - }; - } - return { 'url': url, 'method': method, 'body': body, 'headers': headers }; - } - - handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { - if (response === undefined) { - return; // fallback to default error handler - } - if (code >= 300) { - const feedback = this.id + ' ' + body; - const errorCode = this.safeString (response, 'errorCode'); - this.throwExactlyMatchedException (this.exceptions['exact'], errorCode, feedback); - throw new ExchangeError (feedback); - } - // returns status code 200 even if success === false - const success = this.safeValue (response, 'success', true); - if (!success) { - const feedback = this.id + ' ' + body; - const message = this.safeString2 (response, 'message', 'exception'); - if (message !== undefined) { - this.throwBroadlyMatchedException (this.exceptions['broad'], message, feedback); - } - throw new ExchangeError (feedback); - } - } -}; - - -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],107:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],109:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -86370,7 +92308,11 @@ module.exports = class luno extends Exchange { 'urls': { 'referral': 'https://www.luno.com/invite/44893A', 'logo': 'https://user-images.githubusercontent.com/1294454/27766607-8c1a69d8-5ede-11e7-930c-540b5eb9be24.jpg', - 'api': 'https://api.luno.com/api', + 'api': { + 'public': 'https://api.luno.com/api', + 'private': 'https://api.luno.com/api', + 'exchange': 'https://api.luno.com/api/exchange', + }, 'www': 'https://www.luno.com', 'doc': [ 'https://www.luno.com/en/api', @@ -86379,6 +92321,11 @@ module.exports = class luno extends Exchange { ], }, 'api': { + 'exchange': { + 'get': [ + 'markets', + ], + }, 'public': { 'get': [ 'orderbook', @@ -86429,16 +92376,42 @@ module.exports = class luno extends Exchange { } async fetchMarkets (params = {}) { - const response = await this.publicGetTickers (params); + const response = await this.exchangeGetMarkets (params); + // + // { + // "markets":[ + // { + // "market_id":"BCHXBT", + // "trading_status":"ACTIVE", + // "base_currency":"BCH", + // "counter_currency":"XBT", + // "min_volume":"0.01", + // "max_volume":"100.00", + // "volume_scale":2, + // "min_price":"0.0001", + // "max_price":"1.00", + // "price_scale":6, + // "fee_scale":8, + // }, + // ] + // } + // const result = []; - for (let i = 0; i < response['tickers'].length; i++) { - const market = response['tickers'][i]; - const id = market['pair']; - const baseId = id.slice (0, 3); - const quoteId = id.slice (3, 6); + const markets = this.safeValue (response, 'markets', []); + for (let i = 0; i < markets.length; i++) { + const market = markets[i]; + const id = this.safeString (market, 'market_id'); + const baseId = this.safeString (market, 'base_currency'); + const quoteId = this.safeString (market, 'counter_currency'); const base = this.safeCurrencyCode (baseId); const quote = this.safeCurrencyCode (quoteId); const symbol = base + '/' + quote; + const status = this.safeString (market, 'trading_status'); + const active = (status === 'ACTIVE'); + const precision = { + 'amount': this.safeInteger (market, 'volume_scale'), + 'price': this.safeInteger (market, 'price_scale'), + }; result.push ({ 'id': id, 'symbol': symbol, @@ -86446,10 +92419,23 @@ module.exports = class luno extends Exchange { 'quote': quote, 'baseId': baseId, 'quoteId': quoteId, + 'active': active, + 'precision': precision, + 'limits': { + 'amount': { + 'min': this.safeFloat (market, 'min_volume'), + 'max': this.safeFloat (market, 'max_volume'), + }, + 'price': { + 'min': this.safeFloat (market, 'min_price'), + 'max': this.safeFloat (market, 'max_price'), + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + }, 'info': market, - 'active': undefined, - 'precision': this.precision, - 'limits': this.limits, }); } return result; @@ -86477,6 +92463,16 @@ module.exports = class luno extends Exchange { async fetchBalance (params = {}) { await this.loadMarkets (); const response = await this.privateGetBalance (params); + // + // { + // 'balance': [ + // {'account_id': '119...1336','asset': 'XBT','balance': '0.00','reserved': '0.00','unconfirmed': '0.00'}, + // {'account_id': '66...289','asset': 'XBT','balance': '0.00','reserved': '0.00','unconfirmed': '0.00'}, + // {'account_id': '718...5300','asset': 'ETH','balance': '0.00','reserved': '0.00','unconfirmed': '0.00'}, + // {'account_id': '818...7072','asset': 'ZAR','balance': '0.001417','reserved': '0.00','unconfirmed': '0.00'}]} + // ] + // } + // const wallets = this.safeValue (response, 'balance', []); const result = { 'info': response }; for (let i = 0; i < wallets.length; i++) { @@ -86486,10 +92482,15 @@ module.exports = class luno extends Exchange { const reserved = this.safeFloat (wallet, 'reserved'); const unconfirmed = this.safeFloat (wallet, 'unconfirmed'); const balance = this.safeFloat (wallet, 'balance'); - const account = this.account (); - account['used'] = this.sum (reserved, unconfirmed); - account['total'] = this.sum (balance, unconfirmed); - result[code] = account; + if (code in result) { + result[code]['used'] = this.sum (result[code]['used'], reserved, unconfirmed); + result[code]['total'] = this.sum (result[code]['total'], balance, unconfirmed); + } else { + const account = this.account (); + account['used'] = this.sum (reserved, unconfirmed); + account['total'] = this.sum (balance, unconfirmed); + result[code] = account; + } } return this.parseBalance (result); } @@ -86577,6 +92578,7 @@ module.exports = class luno extends Exchange { 'symbol': symbol, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -86757,7 +92759,7 @@ module.exports = class luno extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -86794,15 +92796,16 @@ module.exports = class luno extends Exchange { if (type === 'market') { method += 'Marketorder'; request['type'] = side.toUpperCase (); + // todo add createMarketBuyOrderRequires price logic as it is implemented in the other exchanges if (side === 'buy') { - request['counter_volume'] = amount; + request['counter_volume'] = parseFloat (this.amountToPrecision (symbol, amount)); } else { - request['base_volume'] = amount; + request['base_volume'] = parseFloat (this.amountToPrecision (symbol, amount)); } } else { method += 'Postorder'; - request['volume'] = amount; - request['price'] = price; + request['volume'] = parseFloat (this.amountToPrecision (symbol, amount)); + request['price'] = parseFloat (this.priceToPrecision (symbol, price)); request['type'] = (side === 'buy') ? 'BID' : 'ASK'; } const response = await this[method] (this.extend (request, params)); @@ -86961,7 +92964,7 @@ module.exports = class luno extends Exchange { } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { - let url = this.urls['api'] + '/' + this.version + '/' + this.implodeParams (path, params); + let url = this.urls['api'][api] + '/' + this.version + '/' + this.implodeParams (path, params); const query = this.omit (params, this.extractParams (path)); if (Object.keys (query).length) { url += '?' + this.urlencode (query); @@ -86985,7 +92988,7 @@ module.exports = class luno extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],108:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],110:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -87487,6 +93490,7 @@ module.exports = class lykke extends Exchange { 'symbol': symbol, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -87600,7 +93604,7 @@ module.exports = class lykke extends Exchange { } }; -},{"./base/Exchange":5}],109:[function(require,module,exports){ +},{"./base/Exchange":6}],111:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -87624,6 +93628,8 @@ module.exports = class mercado extends Exchange { 'createMarketOrder': true, 'createOrder': true, 'fetchBalance': true, + 'fetchMarkets': true, + 'fetchMyTrades': 'emulated', 'fetchOHLCV': true, 'fetchOpenOrders': true, 'fetchOrder': true, @@ -87663,6 +93669,7 @@ module.exports = class mercado extends Exchange { 'api': { 'public': { 'get': [ + 'coins', '{coin}/orderbook/', // last slash critical '{coin}/ticker/', '{coin}/trades/', @@ -87693,23 +93700,90 @@ module.exports = class mercado extends Exchange { ], }, }, - 'markets': { - 'BTC/BRL': { 'id': 'BRLBTC', 'symbol': 'BTC/BRL', 'base': 'BTC', 'quote': 'BRL', 'precision': { 'amount': 8, 'price': 5 }, 'suffix': 'Bitcoin' }, - 'LTC/BRL': { 'id': 'BRLLTC', 'symbol': 'LTC/BRL', 'base': 'LTC', 'quote': 'BRL', 'precision': { 'amount': 8, 'price': 5 }, 'suffix': 'Litecoin' }, - 'BCH/BRL': { 'id': 'BRLBCH', 'symbol': 'BCH/BRL', 'base': 'BCH', 'quote': 'BRL', 'precision': { 'amount': 8, 'price': 5 }, 'suffix': 'BCash' }, - 'XRP/BRL': { 'id': 'BRLXRP', 'symbol': 'XRP/BRL', 'base': 'XRP', 'quote': 'BRL', 'precision': { 'amount': 8, 'price': 5 }, 'suffix': 'Ripple' }, - 'ETH/BRL': { 'id': 'BRLETH', 'symbol': 'ETH/BRL', 'base': 'ETH', 'quote': 'BRL', 'precision': { 'amount': 8, 'price': 5 }, 'suffix': 'Ethereum' }, - 'USDC/BRL': { 'id': 'BRLUSDC', 'symbol': 'USDC/BRL', 'base': 'USDC', 'quote': 'BRL', 'precision': { 'amount': 8, 'price': 5 }, 'suffix': 'USDC' }, - }, 'fees': { 'trading': { - 'maker': 0.3 / 100, - 'taker': 0.7 / 100, + 'maker': 0.003, + 'taker': 0.007, + }, + }, + 'options': { + 'limits': { + 'BTC': 0.001, + 'BCH': 0.001, + 'ETH': 0.01, + 'LTC': 0.01, + 'XRP': 0.1, }, }, }); } + async fetchMarkets (params = {}) { + const response = await this.publicGetCoins (params); + // + // [ + // "BCH", + // "BTC", + // "ETH", + // "LTC", + // "XRP", + // "MBPRK01", + // "MBPRK02", + // "MBPRK03", + // "MBPRK04", + // "MBCONS01", + // "USDC", + // "WBX", + // "CHZ", + // "MBCONS02", + // "PAXG", + // "MBVASCO01", + // "LINK" + // ] + // + const result = []; + const amountLimits = this.safeValue (this.options, 'limits', {}); + for (let i = 0; i < response.length; i++) { + const coin = response[i]; + const baseId = coin; + const quoteId = 'BRL'; + const base = this.safeCurrencyCode (baseId); + const quote = this.safeCurrencyCode (quoteId); + const symbol = base + '/' + quote; + const id = quote + base; + const precision = { + 'amount': 8, + 'price': 5, + }; + result.push ({ + 'id': id, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'baseId': baseId, + 'quoteId': quoteId, + 'active': undefined, + 'info': coin, + 'precision': precision, + 'limits': { + 'amount': { + 'min': this.safeFloat (amountLimits, baseId), + 'max': undefined, + }, + 'price': { + 'min': 1 / Math.pow (10, precision['price']), + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + }, + }); + } + return result; + } + async fetchOrderBook (symbol, limit = undefined, params = {}) { await this.loadMarkets (); const market = this.market (symbol); @@ -87755,22 +93829,30 @@ module.exports = class mercado extends Exchange { } parseTrade (trade, market = undefined) { - const timestamp = this.safeTimestamp (trade, 'date'); + const timestamp = this.safeTimestamp2 (trade, 'date', 'executed_timestamp'); let symbol = undefined; if (market !== undefined) { symbol = market['symbol']; } - const id = this.safeString (trade, 'tid'); + const id = this.safeString2 (trade, 'tid', 'operation_id'); const type = undefined; const side = this.safeString (trade, 'type'); const price = this.safeFloat (trade, 'price'); - const amount = this.safeFloat (trade, 'amount'); + const amount = this.safeFloat2 (trade, 'amount', 'quantity'); let cost = undefined; if (price !== undefined) { if (amount !== undefined) { cost = price * amount; } } + const feeCost = this.safeFloat (trade, 'fee_rate'); + let fee = undefined; + if (feeCost !== undefined) { + fee = { + 'cost': feeCost, + 'currency': undefined, + }; + } return { 'id': id, 'info': trade, @@ -87784,7 +93866,7 @@ module.exports = class mercado extends Exchange { 'price': price, 'amount': amount, 'cost': cost, - 'fee': undefined, + 'fee': fee, }; } @@ -87952,6 +94034,11 @@ module.exports = class mercado extends Exchange { const remaining = amount - filled; const cost = filled * average; const lastTradeTimestamp = this.safeTimestamp (order, 'updated_timestamp'); + const rawTrades = this.safeValue (order, 'operations', []); + const trades = this.parseTrades (rawTrades, market, undefined, undefined, { + 'side': side, + 'order': id, + }); return { 'info': order, 'id': id, @@ -87962,6 +94049,7 @@ module.exports = class mercado extends Exchange { 'symbol': market['symbol'], 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -87972,7 +94060,7 @@ module.exports = class mercado extends Exchange { 'remaining': remaining, 'status': status, 'fee': fee, - 'trades': undefined, // todo parse trades (operations) + 'trades': trades, }; } @@ -88004,17 +94092,17 @@ module.exports = class mercado extends Exchange { if (code === 'BRL') { const account_ref = ('account_ref' in params); if (!account_ref) { - throw new ArgumentsRequired (this.id + ' requires account_ref parameter to withdraw ' + code); + throw new ArgumentsRequired (this.id + ' withdraw() requires account_ref parameter to withdraw ' + code); } } else if (code !== 'LTC') { const tx_fee = ('tx_fee' in params); if (!tx_fee) { - throw new ArgumentsRequired (this.id + ' requires tx_fee parameter to withdraw ' + code); + throw new ArgumentsRequired (this.id + ' withdraw() requires tx_fee parameter to withdraw ' + code); } if (code === 'XRP') { if (tag === undefined) { if (!('destination_tag' in params)) { - throw new ArgumentsRequired (this.id + ' requires a tag argument or destination_tag parameter to withdraw ' + code); + throw new ArgumentsRequired (this.id + ' withdraw() requires a tag argument or destination_tag parameter to withdraw ' + code); } } else { request['destination_tag'] = tag; @@ -88076,6 +94164,51 @@ module.exports = class mercado extends Exchange { return this.parseOrders (orders, market, since, limit); } + async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + ' fetchOpenOrders () requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'coin_pair': market['id'], + 'status_list': '[2]', // open only + }; + const response = await this.privatePostListOrders (this.extend (request, params)); + const responseData = this.safeValue (response, 'response_data', {}); + const orders = this.safeValue (responseData, 'orders', []); + return this.parseOrders (orders, market, since, limit); + } + + async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + ' fetchMyTrades () requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'coin_pair': market['id'], + 'has_fills': true, + }; + const response = await this.privatePostListOrders (this.extend (request, params)); + const responseData = this.safeValue (response, 'response_data', {}); + const ordersRaw = this.safeValue (responseData, 'orders', []); + const orders = this.parseOrders (ordersRaw, market, since, limit); + const trades = this.ordersToTrades (orders); + return this.filterBySymbolSinceLimit (trades, symbol, since, limit); + } + + ordersToTrades (orders) { + const result = []; + for (let i = 0; i < orders.length; i++) { + const trades = this.safeValue (orders[i], 'trades', []); + for (let y = 0; y < trades.length; y++) { + result.push (trades[y]); + } + } + return result; + } + sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { let url = this.urls['api'][api] + '/'; const query = this.omit (params, this.extractParams (path)); @@ -88111,7 +94244,7 @@ module.exports = class mercado extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],110:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],112:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -88342,7 +94475,2024 @@ module.exports = class mixcoins extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],111:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],113:[function(require,module,exports){ +'use strict'; + +// --------------------------------------------------------------------------- + +const Exchange = require ('./base/Exchange'); +const { ExchangeError, AuthenticationError, InsufficientFunds, BadSymbol, OrderNotFound } = require ('./base/errors'); +const { TICK_SIZE } = require ('./base/functions/number'); + +// --------------------------------------------------------------------------- + +module.exports = class ndax extends Exchange { + describe () { + return this.deepExtend (super.describe (), { + 'id': 'ndax', + 'name': 'NDAX', + 'countries': [ 'US' ], // United States + 'rateLimit': 1000, + 'pro': true, + 'has': { + 'cancelAllOrders': true, + 'cancelOrder': true, + 'createDepositAddress': true, + 'createOrder': true, + 'editOrder': true, + 'fetchAccounts': true, + 'fetchBalance': true, + 'fetchCurrencies': true, + 'fetchDepositAddress': true, + 'fetchDeposits': true, + 'fetchLedger': true, + 'fetchMarkets': true, + 'fetchMyTrades': true, + 'fetchOHLCV': true, + 'fetchOpenOrders': true, + 'fetchOrders': true, + 'fetchOrder': true, + 'fetchOrderBook': true, + 'fetchOrderTrades': true, + 'fetchTicker': true, + 'fetchTrades': true, + }, + 'timeframes': { + '1m': '60', + '5m': '300', + '15m': '900', + '30m': '1800', + '1h': '3600', + '2h': '7200', + '4h': '14400', + '6h': '21600', + '12h': '43200', + '1d': '86400', + '1w': '604800', + '1M': '2419200', + '4M': '9676800', + }, + 'urls': { + 'logo': 'https://user-images.githubusercontent.com/1294454/108623144-67a3ef00-744e-11eb-8140-75c6b851e945.jpg', + 'test': { + 'public': 'https://ndaxmarginstaging.cdnhop.net:8443/AP', + 'private': 'https://ndaxmarginstaging.cdnhop.net:8443/AP', + }, + 'api': { + 'public': 'https://api.ndax.io:8443/AP', + 'private': 'https://api.ndax.io:8443/AP', + }, + 'www': 'https://ndax.io', + 'doc': [ + 'https://apidoc.ndax.io/', + ], + 'fees': 'https://ndax.io/fees', + 'referral': 'https://one.ndax.io/bfQiSL', + }, + 'api': { + 'public': { + 'get': [ + 'Activate2FA', + 'Authenticate2FA', + 'AuthenticateUser', + 'GetL2Snapshot', + 'GetLevel1', + 'GetValidate2FARequiredEndpoints', + 'LogOut', + 'GetTickerHistory', + 'GetProduct', + 'GetProducts', + 'GetInstrument', + 'GetInstruments', + 'Ping', + 'trades', // undocumented + 'GetLastTrades', // undocumented + 'SubscribeLevel1', + 'SubscribeLevel2', + 'SubscribeTicker', + 'SubscribeTrades', + 'SubscribeBlockTrades', + 'UnsubscribeBlockTrades', + 'UnsubscribeLevel1', + 'UnsubscribeLevel2', + 'UnsubscribeTicker', + 'UnsubscribeTrades', + 'Authenticate', // undocumented + ], + }, + 'private': { + 'get': [ + 'GetUserAccountInfos', + 'GetUserAccounts', + 'GetUserAffiliateCount', + 'GetUserAffiliateTag', + 'GetUserConfig', + 'GetAllUnredactedUserConfigsForUser', + 'GetUnredactedUserConfigByKey', + 'GetUserDevices', + 'GetUserReportTickets', + 'GetUserReportWriterResultRecords', + 'GetAccountInfo', + 'GetAccountPositions', + 'GetAllAccountConfigs', + 'GetTreasuryProductsForAccount', + 'GetAccountTrades', + 'GetAccountTransactions', + 'GetOpenTradeReports', + 'GetAllOpenTradeReports', + 'GetTradesHistory', + 'GetOpenOrders', + 'GetOpenQuotes', + 'GetOrderFee', + 'GetOrderHistory', + 'GetOrdersHistory', + 'GetOrderStatus', + 'GetOmsFeeTiers', + 'GetAccountDepositTransactions', + 'GetAccountWithdrawTransactions', + 'GetAllDepositRequestInfoTemplates', + 'GetDepositInfo', + 'GetDepositRequestInfoTemplate', + 'GetDeposits', + 'GetDepositTicket', + 'GetDepositTickets', + 'GetOMSWithdrawFees', + 'GetWithdrawFee', + 'GetWithdraws', + 'GetWithdrawTemplate', + 'GetWithdrawTemplateTypes', + 'GetWithdrawTicket', + 'GetWithdrawTickets', + ], + 'post': [ + 'AddUserAffiliateTag', + 'CancelUserReport', + 'RegisterNewDevice', + 'SubscribeAccountEvents', + 'UpdateUserAffiliateTag', + 'GenerateTradeActivityReport', + 'GenerateTransactionActivityReport', + 'GenerateTreasuryActivityReport', + 'ScheduleTradeActivityReport', + 'ScheduleTransactionActivityReport', + 'ScheduleTreasuryActivityReport', + 'CancelAllOrders', + 'CancelOrder', + 'CancelQuote', + 'CancelReplaceOrder', + 'CreateQuote', + 'ModifyOrder', + 'SendOrder', + 'SubmitBlockTrade', + 'UpdateQuote', + 'CancelWithdraw', + 'CreateDepositTicket', + 'CreateWithdrawTicket', + 'SubmitDepositTicketComment', + 'SubmitWithdrawTicketComment', + 'GetOrderHistoryByOrderId', + ], + }, + }, + 'fees': { + 'trading': { + 'tierBased': false, + 'percentage': true, + 'maker': 0.2 / 100, + 'taker': 0.25 / 100, + }, + }, + 'requiredCredentials': { + 'apiKey': true, + 'secret': true, + 'uid': true, + }, + 'precisionMode': TICK_SIZE, + 'exceptions': { + 'exact': { + 'Not_Enough_Funds': InsufficientFunds, // {"status":"Rejected","errormsg":"Not_Enough_Funds","errorcode":101} + 'Server Error': ExchangeError, // {"result":false,"errormsg":"Server Error","errorcode":102,"detail":null} + 'Resource Not Found': OrderNotFound, // {"result":false,"errormsg":"Resource Not Found","errorcode":104,"detail":null} + }, + 'broad': { + 'Invalid InstrumentId': BadSymbol, // {"result":false,"errormsg":"Invalid InstrumentId: 10000","errorcode":100,"detail":null} + }, + }, + 'options': { + 'omsId': 1, + 'orderTypes': { + 'Market': 1, + 'Limit': 2, + 'StopMarket': 3, + 'StopLimit': 4, + 'TrailingStopMarket': 5, + 'TrailingStopLimit': 6, + 'BlockTrade': 7, + }, + }, + }); + } + + async fetchCurrencies (params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + const request = { + 'omsId': omsId, + }; + const response = await this.publicGetGetProducts (this.extend (request, params)); + // + // [ + // { + // "OMSId":1, + // "ProductId":1, + // "Product":"BTC", + // "ProductFullName":"Bitcoin", + // "ProductType":"CryptoCurrency", + // "DecimalPlaces":8, + // "TickSize":0.0000000100000000000000000000, + // "NoFees":false, + // "IsDisabled":false, + // "MarginEnabled":false + // }, + // ] + // + const result = {}; + for (let i = 0; i < response.length; i++) { + const currency = response[i]; + const id = this.safeString (currency, 'ProductId'); + const name = this.safeString (currency, 'ProductFullName'); + const type = this.safeString (currency, 'ProductType'); + const code = this.safeCurrencyCode (this.safeString (currency, 'Product')); + const precision = this.safeFloat (currency, 'TickSize'); + const isDisabled = this.safeValue (currency, 'IsDisabled'); + const active = !isDisabled; + result[code] = { + 'id': id, + 'name': name, + 'code': code, + 'type': type, + 'precision': precision, + 'info': currency, + 'active': active, + 'fee': undefined, + 'limits': this.limits, + }; + } + return result; + } + + async fetchMarkets (params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + const request = { + 'omsId': omsId, + }; + const response = await this.publicGetGetInstruments (this.extend (request, params)); + // + // [ + // { + // "OMSId":1, + // "InstrumentId":3, + // "Symbol":"LTCBTC", + // "Product1":3, + // "Product1Symbol":"LTC", + // "Product2":1, + // "Product2Symbol":"BTC", + // "InstrumentType":"Standard", + // "VenueInstrumentId":3, + // "VenueId":1, + // "SortIndex":0, + // "SessionStatus":"Running", + // "PreviousSessionStatus":"Stopped", + // "SessionStatusDateTime":"2020-11-25T19:42:15.245Z", + // "SelfTradePrevention":true, + // "QuantityIncrement":0.0000000100000000000000000000, + // "PriceIncrement":0.0000000100000000000000000000, + // "MinimumQuantity":0.0100000000000000000000000000, + // "MinimumPrice":0.0000010000000000000000000000, + // "VenueSymbol":"LTCBTC", + // "IsDisable":false, + // "MasterDataId":0, + // "PriceCollarThreshold":0.0000000000000000000000000000, + // "PriceCollarPercent":0.0000000000000000000000000000, + // "PriceCollarEnabled":false, + // "PriceFloorLimit":0.0000000000000000000000000000, + // "PriceFloorLimitEnabled":false, + // "PriceCeilingLimit":0.0000000000000000000000000000, + // "PriceCeilingLimitEnabled":false, + // "CreateWithMarketRunning":true, + // "AllowOnlyMarketMakerCounterParty":false, + // "PriceCollarIndexDifference":0.0000000000000000000000000000, + // "PriceCollarConvertToOtcEnabled":false, + // "PriceCollarConvertToOtcClientUserId":0, + // "PriceCollarConvertToOtcAccountId":0, + // "PriceCollarConvertToOtcThreshold":0.0000000000000000000000000000, + // "OtcConvertSizeThreshold":0.0000000000000000000000000000, + // "OtcConvertSizeEnabled":false, + // "OtcTradesPublic":true, + // "PriceTier":0 + // }, + // ] + // + const result = []; + for (let i = 0; i < response.length; i++) { + const market = response[i]; + const id = this.safeString (market, 'InstrumentId'); + // const lowercaseId = this.safeStringLower (market, 'symbol'); + const baseId = this.safeString (market, 'Product1'); + const quoteId = this.safeString (market, 'Product2'); + const base = this.safeCurrencyCode (this.safeString (market, 'Product1Symbol')); + const quote = this.safeCurrencyCode (this.safeString (market, 'Product2Symbol')); + const symbol = base + '/' + quote; + const precision = { + 'amount': this.safeFloat (market, 'QuantityIncrement'), + 'price': this.safeFloat (market, 'PriceIncrement'), + }; + const sessionStatus = this.safeString (market, 'SessionStatus'); + const isDisable = this.safeValue (market, 'IsDisable'); + const sessionRunning = (sessionStatus === 'Running'); + const active = (sessionRunning && !isDisable) ? true : false; + result.push ({ + 'id': id, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'baseId': baseId, + 'quoteId': quoteId, + 'info': market, + 'active': active, + 'precision': precision, + 'limits': { + 'amount': { + 'min': this.safeFloat (market, 'MinimumQuantity'), + 'max': undefined, + }, + 'price': { + 'min': this.safeFloat (market, 'MinimumPrice'), + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + }, + }); + } + return result; + } + + parseOrderBook (orderbook, timestamp = undefined, bidsKey = 'bids', asksKey = 'asks', priceKey = 6, amountKey = 8) { + let nonce = undefined; + const result = { + 'bids': [], + 'asks': [], + 'timestamp': undefined, + 'datetime': undefined, + 'nonce': undefined, + }; + for (let i = 0; i < orderbook.length; i++) { + const level = orderbook[i]; + if (timestamp === undefined) { + timestamp = this.safeInteger (level, 2); + } else { + const newTimestamp = this.safeInteger (level, 2); + timestamp = Math.max (timestamp, newTimestamp); + } + if (nonce === undefined) { + nonce = this.safeInteger (level, 0); + } else { + const newNonce = this.safeInteger (level, 0); + nonce = Math.max (nonce, newNonce); + } + const bidask = this.parseBidAsk (level, priceKey, amountKey); + const levelSide = this.safeValue (level, 9); + const side = levelSide ? asksKey : bidsKey; + result[side].push (bidask); + } + result['bids'] = this.sortBy (result['bids'], 0, true); + result['asks'] = this.sortBy (result['asks'], 0); + result['timestamp'] = timestamp; + result['datetime'] = this.iso8601 (timestamp); + result['nonce'] = nonce; + return result; + } + + async fetchOrderBook (symbol, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + const market = this.market (symbol); + limit = (limit === undefined) ? 100 : limit; // default 100 + const request = { + 'omsId': omsId, + 'InstrumentId': market['id'], + 'Depth': limit, // default 100 + }; + const response = await this.publicGetGetL2Snapshot (this.extend (request, params)); + // + // [ + // [ + // 0, // 0 MDUpdateId + // 1, // 1 Number of Unique Accounts + // 123, // 2 ActionDateTime in Posix format X 1000 + // 0, // 3 ActionType 0 (New), 1 (Update), 2(Delete) + // 0.0, // 4 LastTradePrice + // 0, // 5 Number of Orders + // 0.0, // 6 Price + // 0, // 7 ProductPairCode + // 0.0, // 8 Quantity + // 0, // 9 Side + // ], + // [97244115,1,1607456142963,0,19069.32,1,19069.31,8,0.140095,0], + // [97244115,0,1607456142963,0,19069.32,1,19068.64,8,0.0055,0], + // [97244115,0,1607456142963,0,19069.32,1,19068.26,8,0.021291,0], + // [97244115,1,1607456142964,0,19069.32,1,19069.32,8,0.099636,1], + // [97244115,0,1607456142964,0,19069.32,1,19069.98,8,0.1,1], + // [97244115,0,1607456142964,0,19069.32,1,19069.99,8,0.141604,1], + // ] + // + return this.parseOrderBook (response); + } + + parseTicker (ticker, market = undefined) { + // + // fetchTicker + // + // { + // "OMSId":1, + // "InstrumentId":8, + // "BestBid":19069.31, + // "BestOffer":19069.32, + // "LastTradedPx":19069.32, + // "LastTradedQty":0.0001, + // "LastTradeTime":1607040406424, + // "SessionOpen":19069.32, + // "SessionHigh":19069.32, + // "SessionLow":19069.32, + // "SessionClose":19069.32, + // "Volume":0.0001, + // "CurrentDayVolume":0.0001, + // "CurrentDayNotional":1.906932, + // "CurrentDayNumTrades":1, + // "CurrentDayPxChange":0.00, + // "Rolling24HrVolume":0.000000000000000000000000000, + // "Rolling24HrNotional":0.00000000000000000000000, + // "Rolling24NumTrades":0, + // "Rolling24HrPxChange":0, + // "TimeStamp":"1607040406425", + // "BidQty":0, + // "AskQty":0, + // "BidOrderCt":0, + // "AskOrderCt":0, + // "Rolling24HrPxChangePercent":0, + // } + // + const timestamp = this.safeInteger (ticker, 'TimeStamp'); + const marketId = this.safeString (ticker, 'InstrumentId'); + const symbol = this.safeSymbol (marketId, market); + const last = this.safeFloat (ticker, 'LastTradedPx'); + const percentage = this.safeFloat (ticker, 'Rolling24HrPxChangePercent'); + const change = this.safeFloat (ticker, 'Rolling24HrPxChange'); + const open = this.safeFloat (ticker, 'SessionOpen'); + let average = undefined; + if ((last !== undefined) && (change !== undefined)) { + average = this.sum (last, open) / 2; + } + const baseVolume = this.safeFloat (ticker, 'Rolling24HrVolume'); + const quoteVolume = this.safeFloat (ticker, 'Rolling24HrNotional'); + const vwap = this.vwap (baseVolume, quoteVolume); + return { + 'symbol': symbol, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'high': this.safeFloat (ticker, 'SessionHigh'), + 'low': this.safeFloat (ticker, 'SessionLow'), + 'bid': this.safeFloat (ticker, 'BestBid'), + 'bidVolume': undefined, // this.safeFloat (ticker, 'BidQty'), always shows 0 + 'ask': this.safeFloat (ticker, 'BestOffer'), + 'askVolume': undefined, // this.safeFloat (ticker, 'AskQty'), always shows 0 + 'vwap': vwap, + 'open': open, + 'close': last, + 'last': last, + 'previousClose': undefined, + 'change': change, + 'percentage': percentage, + 'average': average, + 'baseVolume': baseVolume, + 'quoteVolume': quoteVolume, + 'info': ticker, + }; + } + + async fetchTicker (symbol, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'omsId': omsId, + 'InstrumentId': market['id'], + }; + const response = await this.publicGetGetLevel1 (this.extend (request, params)); + // + // { + // "OMSId":1, + // "InstrumentId":8, + // "BestBid":19069.31, + // "BestOffer":19069.32, + // "LastTradedPx":19069.32, + // "LastTradedQty":0.0001, + // "LastTradeTime":1607040406424, + // "SessionOpen":19069.32, + // "SessionHigh":19069.32, + // "SessionLow":19069.32, + // "SessionClose":19069.32, + // "Volume":0.0001, + // "CurrentDayVolume":0.0001, + // "CurrentDayNotional":1.906932, + // "CurrentDayNumTrades":1, + // "CurrentDayPxChange":0.00, + // "Rolling24HrVolume":0.000000000000000000000000000, + // "Rolling24HrNotional":0.00000000000000000000000, + // "Rolling24NumTrades":0, + // "Rolling24HrPxChange":0, + // "TimeStamp":"1607040406425", + // "BidQty":0, + // "AskQty":0, + // "BidOrderCt":0, + // "AskOrderCt":0, + // "Rolling24HrPxChangePercent":0, + // } + // + return this.parseTicker (response, market); + } + + parseOHLCV (ohlcv, market = undefined) { + // + // [ + // 1501603632000, // 0 DateTime + // 2700.33, // 1 High + // 2687.01, // 2 Low + // 2687.01, // 3 Open + // 2687.01, // 4 Close + // 24.86100992, // 5 Volume + // 0, // 6 Inside Bid Price + // 2870.95, // 7 Inside Ask Price + // 1 // 8 InstrumentId + // ] + // + return [ + this.safeInteger (ohlcv, 0), + this.safeFloat (ohlcv, 3), + this.safeFloat (ohlcv, 1), + this.safeFloat (ohlcv, 2), + this.safeFloat (ohlcv, 4), + this.safeFloat (ohlcv, 5), + ]; + } + + async fetchOHLCV (symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'omsId': omsId, + 'InstrumentId': market['id'], + 'Interval': this.timeframes[timeframe], + }; + const duration = this.parseTimeframe (timeframe); + const now = this.milliseconds (); + if (since === undefined) { + if (limit !== undefined) { + request['FromDate'] = this.ymd (now - duration * limit * 1000); + request['ToDate'] = this.ymd (now); + } + } else { + request['FromDate'] = this.ymd (since); + if (limit === undefined) { + request['ToDate'] = this.ymd (now); + } else { + request['ToDate'] = this.ymd (this.sum (since, duration * limit * 1000)); + } + } + const response = await this.publicGetGetTickerHistory (this.extend (request, params)); + // + // [ + // [1607299260000,19069.32,19069.32,19069.32,19069.32,0,19069.31,19069.32,8,1607299200000], + // [1607299320000,19069.32,19069.32,19069.32,19069.32,0,19069.31,19069.32,8,1607299260000], + // [1607299380000,19069.32,19069.32,19069.32,19069.32,0,19069.31,19069.32,8,1607299320000], + // ] + // + return this.parseOHLCVs (response, market, timeframe, since, limit); + } + + parseTrade (trade, market = undefined) { + // + // fetchTrades (public) + // + // [ + // 6913253, // 0 TradeId + // 8, // 1 ProductPairCode + // 0.03340802, // 2 Quantity + // 19116.08, // 3 Price + // 2543425077, // 4 Order1 + // 2543425482, // 5 Order2 + // 1606935922416, // 6 Tradetime + // 0, // 7 Direction + // 1, // 8 TakerSide + // 0, // 9 BlockTrade + // 0, // 10 Either Order1ClientId or Order2ClientId + // ] + // + // fetchMyTrades (private) + // + // { + // "OMSId":1, + // "ExecutionId":16916567, + // "TradeId":14476351, + // "OrderId":2543565231, + // "AccountId":449, + // "AccountName":"igor@ccxt.trade", + // "SubAccountId":0, + // "ClientOrderId":0, + // "InstrumentId":8, + // "Side":"Sell", + // "OrderType":"Market", + // "Quantity":0.1230000000000000000000000000, + // "RemainingQuantity":0.0000000000000000000000000000, + // "Price":19069.310000000000000000000000, + // "Value":2345.5251300000000000000000000, + // "CounterParty":"7", + // "OrderTradeRevision":1, + // "Direction":"NoChange", + // "IsBlockTrade":false, + // "Fee":1.1727625650000000000000000000, + // "FeeProductId":8, + // "OrderOriginator":446, + // "UserName":"igor@ccxt.trade", + // "TradeTimeMS":1607565031569, + // "MakerTaker":"Taker", + // "AdapterTradeId":0, + // "InsideBid":19069.310000000000000000000000, + // "InsideBidSize":0.2400950000000000000000000000, + // "InsideAsk":19069.320000000000000000000000, + // "InsideAskSize":0.0997360000000000000000000000, + // "IsQuote":false, + // "CounterPartyClientUserId":1, + // "NotionalProductId":2, + // "NotionalRate":1.0000000000000000000000000000, + // "NotionalValue":2345.5251300000000000000000000, + // "NotionalHoldAmount":0, + // "TradeTime":637431618315686826 + // } + // + // fetchOrderTrades + // + // { + // "Side":"Sell", + // "OrderId":2543565235, + // "Price":18600.000000000000000000000000, + // "Quantity":0.0000000000000000000000000000, + // "DisplayQuantity":0.0000000000000000000000000000, + // "Instrument":8, + // "Account":449, + // "AccountName":"igor@ccxt.trade", + // "OrderType":"Limit", + // "ClientOrderId":0, + // "OrderState":"FullyExecuted", + // "ReceiveTime":1607585844956, + // "ReceiveTimeTicks":637431826449564182, + // "LastUpdatedTime":1607585844959, + // "LastUpdatedTimeTicks":637431826449593893, + // "OrigQuantity":0.1230000000000000000000000000, + // "QuantityExecuted":0.1230000000000000000000000000, + // "GrossValueExecuted":2345.3947500000000000000000000, + // "ExecutableValue":0.0000000000000000000000000000, + // "AvgPrice":19068.250000000000000000000000, + // "CounterPartyId":0, + // "ChangeReason":"Trade", + // "OrigOrderId":2543565235, + // "OrigClOrdId":0, + // "EnteredBy":446, + // "UserName":"igor@ccxt.trade", + // "IsQuote":false, + // "InsideAsk":19069.320000000000000000000000, + // "InsideAskSize":0.0997360000000000000000000000, + // "InsideBid":19068.250000000000000000000000, + // "InsideBidSize":1.3300010000000000000000000000, + // "LastTradePrice":19068.250000000000000000000000, + // "RejectReason":"", + // "IsLockedIn":false, + // "CancelReason":"", + // "OrderFlag":"0", + // "UseMargin":false, + // "StopPrice":0.0000000000000000000000000000, + // "PegPriceType":"Unknown", + // "PegOffset":0.0000000000000000000000000000, + // "PegLimitOffset":0.0000000000000000000000000000, + // "IpAddress":"5.228.233.138", + // "ClientOrderIdUuid":null, + // "OMSId":1 + // } + // + let price = undefined; + let amount = undefined; + let cost = undefined; + let timestamp = undefined; + let id = undefined; + let marketId = undefined; + let side = undefined; + let orderId = undefined; + let takerOrMaker = undefined; + let fee = undefined; + let type = undefined; + if (Array.isArray (trade)) { + price = this.safeFloat (trade, 3); + amount = this.safeFloat (trade, 2); + if ((price !== undefined) && (amount !== undefined)) { + cost = price * amount; + } + timestamp = this.safeInteger (trade, 6); + id = this.safeString (trade, 0); + marketId = this.safeInteger (trade, 1); + const takerSide = this.safeValue (trade, 8); + side = takerSide ? 'sell' : 'buy'; + orderId = this.safeString (trade, 4); + } else { + timestamp = this.safeInteger2 (trade, 'TradeTimeMS', 'ReceiveTime'); + id = this.safeString (trade, 'TradeId'); + orderId = this.safeString2 (trade, 'OrderId', 'OrigOrderId'); + marketId = this.safeString2 (trade, 'InstrumentId', 'Instrument'); + price = this.safeFloat (trade, 'Price'); + amount = this.safeFloat (trade, 'Quantity'); + cost = this.safeFloat2 (trade, 'Value', 'GrossValueExecuted'); + takerOrMaker = this.safeStringLower (trade, 'MakerTaker'); + side = this.safeStringLower (trade, 'Side'); + type = this.safeStringLower (trade, 'OrderType'); + const feeCost = this.safeFloat (trade, 'Fee'); + if (feeCost !== undefined) { + const feeCurrencyId = this.safeString (trade, 'FeeProductId'); + const feeCurrencyCode = this.safeCurrencyCode (feeCurrencyId); + fee = { + 'cost': feeCost, + 'currency': feeCurrencyCode, + }; + } + } + const symbol = this.safeSymbol (marketId, market); + return { + 'info': trade, + 'id': id, + 'symbol': symbol, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'order': orderId, + 'type': type, + 'side': side, + 'takerOrMaker': takerOrMaker, + 'price': price, + 'amount': amount, + 'cost': cost, + 'fee': fee, + }; + } + + async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'omsId': omsId, + 'InstrumentId': market['id'], + }; + if (limit !== undefined) { + request['Count'] = limit; + } + const response = await this.publicGetGetLastTrades (this.extend (request, params)); + // + // [ + // [6913253,8,0.03340802,19116.08,2543425077,2543425482,1606935922416,0,1,0,0], + // [6913254,8,0.01391671,19117.42,2543427510,2543427811,1606935927998,1,1,0,0], + // [6913255,8,0.000006,19107.81,2543430495,2543430793,1606935933881,2,0,0,0], + // ] + // + return this.parseTrades (response, market, since, limit); + } + + async fetchAccounts (params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + this.checkRequiredCredentials (); + const request = { + 'omsId': omsId, + 'UserId': this.uid, + 'UserName': 'igor@ccxt.trade', + }; + const response = await this.privateGetGetUserAccounts (this.extend (request, params)); + // + // [ 449 ] // comma-separated list of account ids + // + const result = []; + for (let i = 0; i < response.length; i++) { + const accountId = this.safeString (response, i); + result.push ({ + 'id': accountId, + 'type': undefined, + 'currency': undefined, + 'info': accountId, + }); + } + return result; + } + + async fetchBalance (params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + const request = { + 'omsId': omsId, + 'AccountId': accountId, + }; + const response = await this.privateGetGetAccountPositions (this.extend (request, params)); + // + // [ + // { + // "OMSId":1, + // "AccountId":449, + // "ProductSymbol":"BTC", + // "ProductId":1, + // "Amount":10.000000000000000000000000000, + // "Hold":0, + // "PendingDeposits":0.0000000000000000000000000000, + // "PendingWithdraws":0.0000000000000000000000000000, + // "TotalDayDeposits":10.000000000000000000000000000, + // "TotalMonthDeposits":10.000000000000000000000000000, + // "TotalYearDeposits":10.000000000000000000000000000, + // "TotalDayDepositNotional":10.000000000000000000000000000, + // "TotalMonthDepositNotional":10.000000000000000000000000000, + // "TotalYearDepositNotional":10.000000000000000000000000000, + // "TotalDayWithdraws":0, + // "TotalMonthWithdraws":0, + // "TotalYearWithdraws":0, + // "TotalDayWithdrawNotional":0, + // "TotalMonthWithdrawNotional":0, + // "TotalYearWithdrawNotional":0, + // "NotionalProductId":8, + // "NotionalProductSymbol":"USDT", + // "NotionalValue":10.000000000000000000000000000, + // "NotionalHoldAmount":0, + // "NotionalRate":1 + // }, + // ] + // + const result = { 'info': response }; + for (let i = 0; i < response.length; i++) { + const balance = response[i]; + const currencyId = this.safeString (balance, 'ProductId'); + const code = this.safeCurrencyCode (currencyId); + const account = this.account (); + account['total'] = this.safeFloat (balance, 'Amount'); + account['used'] = this.safeFloat (balance, 'Hold'); + result[code] = account; + } + return this.parseBalance (result); + } + + parseLedgerEntryType (type) { + const types = { + 'Trade': 'trade', + 'Deposit': 'transaction', + 'Withdraw': 'transaction', + 'Transfer': 'transfer', + 'OrderHold': 'trade', + 'WithdrawHold': 'transaction', + 'DepositHold': 'transaction', + 'MarginHold': 'trade', + 'ManualHold': 'trade', + 'ManualEntry': 'trade', + 'MarginAcquisition': 'trade', + 'MarginRelinquish': 'trade', + 'MarginQuoteHold': 'trade', + }; + return this.safeString (types, type, type); + } + + parseLedgerEntry (item, currency = undefined) { + // + // { + // "TransactionId":2663709493, + // "ReferenceId":68, + // "OMSId":1, + // "AccountId":449, + // "CR":10.000000000000000000000000000, + // "DR":0.0000000000000000000000000000, + // "Counterparty":3, + // "TransactionType":"Other", + // "ReferenceType":"Deposit", + // "ProductId":1, + // "Balance":10.000000000000000000000000000, + // "TimeStamp":1607532331591 + // } + // + const id = this.safeString (item, 'TransactionId'); + const account = this.safeString (item, 'AccountId'); + const referenceId = this.safeString (item, 'ReferenceId'); + const referenceAccount = this.safeString (item, 'Counterparty'); + const type = this.parseLedgerEntryType (this.safeString (item, 'ReferenceType')); + const currencyId = this.safeString (item, 'ProductId'); + const code = this.safeCurrencyCode (currencyId, currency); + const credit = this.safeFloat (item, 'CR'); + const debit = this.safeFloat (item, 'DR'); + let amount = undefined; + let direction = undefined; + if (credit > 0) { + amount = credit; + direction = 'in'; + } else if (debit > 0) { + amount = debit; + direction = 'out'; + } + const timestamp = this.safeInteger (item, 'TimeStamp'); + let before = undefined; + const after = this.safeFloat (item, 'Balance'); + if (direction === 'out') { + before = this.sum (after, amount); + } else if (direction === 'in') { + before = Math.max (0, after - amount); + } + const status = 'ok'; + return { + 'info': item, + 'id': id, + 'direction': direction, + 'account': account, + 'referenceId': referenceId, + 'referenceAccount': referenceAccount, + 'type': type, + 'currency': code, + 'amount': amount, + 'before': before, + 'after': after, + 'status': status, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'fee': undefined, + }; + } + + async fetchLedger (code = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + const request = { + 'omsId': omsId, + 'AccountId': accountId, + }; + if (limit !== undefined) { + request['Depth'] = limit; + } + const response = await this.privateGetGetAccountTransactions (this.extend (request, params)); + // + // [ + // { + // "TransactionId":2663709493, + // "ReferenceId":68, + // "OMSId":1, + // "AccountId":449, + // "CR":10.000000000000000000000000000, + // "DR":0.0000000000000000000000000000, + // "Counterparty":3, + // "TransactionType":"Other", + // "ReferenceType":"Deposit", + // "ProductId":1, + // "Balance":10.000000000000000000000000000, + // "TimeStamp":1607532331591 + // }, + // ] + // + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + } + return this.parseLedger (response, currency, since, limit); + } + + parseOrderStatus (status) { + const statuses = { + 'Accepted': 'open', + 'Rejected': 'rejected', + 'Working': 'open', + 'Canceled': 'canceled', + 'Expired': 'expired', + 'FullyExecuted': 'closed', + }; + return this.safeString (statuses, status, status); + } + + parseOrder (order, market = undefined) { + // + // createOrder + // + // { + // "status":"Accepted", + // "errormsg":"", + // "OrderId": 2543565231 + // } + // + // editOrder + // + // { + // "ReplacementOrderId": 1234, + // "ReplacementClOrdId": 1561, + // "OrigOrderId": 5678, + // "OrigClOrdId": 91011, + // } + // + // fetchOpenOrders, fetchClosedOrders + // + // { + // "Side":"Buy", + // "OrderId":2543565233, + // "Price":19010, + // "Quantity":0.345, + // "DisplayQuantity":0.345, + // "Instrument":8, + // "Account":449, + // "AccountName":"igor@ccxt.trade", + // "OrderType":"Limit", + // "ClientOrderId":0, + // "OrderState":"Working", + // "ReceiveTime":1607579326003, + // "ReceiveTimeTicks":637431761260028981, + // "LastUpdatedTime":1607579326005, + // "LastUpdatedTimeTicks":637431761260054714, + // "OrigQuantity":0.345, + // "QuantityExecuted":0, + // "GrossValueExecuted":0, + // "ExecutableValue":0, + // "AvgPrice":0, + // "CounterPartyId":0, + // "ChangeReason":"NewInputAccepted", + // "OrigOrderId":2543565233, + // "OrigClOrdId":0, + // "EnteredBy":446, + // "UserName":"igor@ccxt.trade", + // "IsQuote":false, + // "InsideAsk":19069.32, + // "InsideAskSize":0.099736, + // "InsideBid":19068.25, + // "InsideBidSize":1.330001, + // "LastTradePrice":19068.25, + // "RejectReason":"", + // "IsLockedIn":false, + // "CancelReason":"", + // "OrderFlag":"AddedToBook", + // "UseMargin":false, + // "StopPrice":0, + // "PegPriceType":"Unknown", + // "PegOffset":0, + // "PegLimitOffset":0, + // "IpAddress":null, + // "ClientOrderIdUuid":null, + // "OMSId":1 + // } + // + const id = this.safeString2 (order, 'ReplacementOrderId', 'OrderId'); + const timestamp = this.safeInteger (order, 'ReceiveTime'); + let lastTradeTimestamp = undefined; + const marketId = this.safeString (order, 'Instrument'); + const symbol = this.safeSymbol (marketId, market); + const side = this.safeStringLower (order, 'Side'); + const type = this.safeStringLower (order, 'OrderType'); + const clientOrderId = this.safeString2 (order, 'ReplacementClOrdId', 'ClientOrderId'); + let price = this.safeFloat (order, 'Price', 0.0); + price = (price > 0.0) ? price : undefined; + const amount = this.safeFloat (order, 'OrigQuantity'); + const filled = this.safeFloat (order, 'QuantityExecuted'); + const cost = this.safeFloat (order, 'GrossValueExecuted'); + let remaining = undefined; + let average = undefined; + if (filled !== undefined) { + if (amount !== undefined) { + remaining = Math.max (0, amount - filled); + } + if (filled > 0) { + lastTradeTimestamp = this.safeInteger (order, 'LastUpdatedTime'); + average = this.safeFloat (order, 'AvgPrice', 0.0); + average = (average > 0) ? average : undefined; + } + } + let stopPrice = this.safeFloat (order, 'StopPrice', 0.0); + stopPrice = (stopPrice > 0.0) ? stopPrice : undefined; + const timeInForce = undefined; + const status = this.parseOrderStatus (this.safeString (order, 'OrderState')); + const fee = undefined; + const trades = undefined; + return { + 'id': id, + 'clientOrderId': clientOrderId, + 'info': order, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'lastTradeTimestamp': lastTradeTimestamp, + 'status': status, + 'symbol': symbol, + 'type': type, + 'timeInForce': timeInForce, + 'postOnly': undefined, + 'side': side, + 'price': price, + 'stopPrice': stopPrice, + 'cost': cost, + 'amount': amount, + 'filled': filled, + 'average': average, + 'remaining': remaining, + 'fee': fee, + 'trades': trades, + }; + } + + async createOrder (symbol, type, side, amount, price = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + const clientOrderId = this.safeInteger2 (params, 'ClientOrderId', 'clientOrderId'); + params = this.omit (params, [ 'accountId', 'AccountId', 'clientOrderId', 'ClientOrderId' ]); + const market = this.market (symbol); + const orderSide = (side === 'buy') ? 0 : 1; + const request = { + 'InstrumentId': parseInt (market['id']), + 'omsId': omsId, + 'AccountId': accountId, + 'TimeInForce': 1, // 0 Unknown, 1 GTC by default, 2 OPG execute as close to opening price as possible, 3 IOC immediate or canceled, 4 FOK fill-or-kill, 5 GTX good 'til executed, 6 GTD good 'til date + // 'ClientOrderId': clientOrderId, // defaults to 0 + // If this order is order A, OrderIdOCO refers to the order ID of an order B (which is not the order being created by this call). + // If order B executes, then order A created by this call is canceled. + // You can also set up order B to watch order A in the same way, but that may require an update to order B to make it watch this one, which could have implications for priority in the order book. + // See CancelReplaceOrder and ModifyOrder. + // 'OrderIdOCO': 0, // The order ID if One Cancels the Other. + // 'UseDisplayQuantity': false, // If you enter a Limit order with a reserve, you must set UseDisplayQuantity to true + 'Side': orderSide, // 0 Buy, 1 Sell, 2 Short, 3 unknown an error condition + 'Quantity': parseFloat (this.amountToPrecision (symbol, amount)), + 'OrderType': this.safeInteger (this.options['orderTypes'], this.capitalize (type)), // 0 Unknown, 1 Market, 2 Limit, 3 StopMarket, 4 StopLimit, 5 TrailingStopMarket, 6 TrailingStopLimit, 7 BlockTrade + // 'PegPriceType': 3, // 1 Last, 2 Bid, 3 Ask, 4 Midpoint + // 'LimitPrice': parseFloat (this.priceToPrecision (symbol, price)), + }; + // If OrderType=1 (Market), Side=0 (Buy), and LimitPrice is supplied, the Market order will execute up to the value specified + if (price !== undefined) { + request['LimitPrice'] = parseFloat (this.priceToPrecision (symbol, price)); + } + if (clientOrderId !== undefined) { + request['ClientOrderId'] = clientOrderId; + } + const response = await this.privatePostSendOrder (this.extend (request, params)); + // + // { + // "status":"Accepted", + // "errormsg":"", + // "OrderId": 2543565231 + // } + // + return this.parseOrder (response, market); + } + + async editOrder (id, symbol, type, side, amount, price = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + const clientOrderId = this.safeInteger2 (params, 'ClientOrderId', 'clientOrderId'); + params = this.omit (params, [ 'accountId', 'AccountId', 'clientOrderId', 'ClientOrderId' ]); + const market = this.market (symbol); + const orderSide = (side === 'buy') ? 0 : 1; + const request = { + 'OrderIdToReplace': parseInt (id), + 'InstrumentId': parseInt (market['id']), + 'omsId': omsId, + 'AccountId': accountId, + 'TimeInForce': 1, // 0 Unknown, 1 GTC by default, 2 OPG execute as close to opening price as possible, 3 IOC immediate or canceled, 4 FOK fill-or-kill, 5 GTX good 'til executed, 6 GTD good 'til date + // 'ClientOrderId': clientOrderId, // defaults to 0 + // If this order is order A, OrderIdOCO refers to the order ID of an order B (which is not the order being created by this call). + // If order B executes, then order A created by this call is canceled. + // You can also set up order B to watch order A in the same way, but that may require an update to order B to make it watch this one, which could have implications for priority in the order book. + // See CancelReplaceOrder and ModifyOrder. + // 'OrderIdOCO': 0, // The order ID if One Cancels the Other. + // 'UseDisplayQuantity': false, // If you enter a Limit order with a reserve, you must set UseDisplayQuantity to true + 'Side': orderSide, // 0 Buy, 1 Sell, 2 Short, 3 unknown an error condition + 'Quantity': parseFloat (this.amountToPrecision (symbol, amount)), + 'OrderType': this.safeInteger (this.options['orderTypes'], this.capitalize (type)), // 0 Unknown, 1 Market, 2 Limit, 3 StopMarket, 4 StopLimit, 5 TrailingStopMarket, 6 TrailingStopLimit, 7 BlockTrade + // 'PegPriceType': 3, // 1 Last, 2 Bid, 3 Ask, 4 Midpoint + // 'LimitPrice': parseFloat (this.priceToPrecision (symbol, price)), + }; + // If OrderType=1 (Market), Side=0 (Buy), and LimitPrice is supplied, the Market order will execute up to the value specified + if (price !== undefined) { + request['LimitPrice'] = parseFloat (this.priceToPrecision (symbol, price)); + } + if (clientOrderId !== undefined) { + request['ClientOrderId'] = clientOrderId; + } + const response = await this.privatePostCancelReplaceOrder (this.extend (request, params)); + // + // { + // "replacementOrderId": 1234, + // "replacementClOrdId": 1561, + // "origOrderId": 5678, + // "origClOrdId": 91011, + // } + // + return this.parseOrder (response, market); + } + + async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + const request = { + 'omsId': omsId, + 'AccountId': accountId, + // 'InstrumentId': market['id'], + // 'TradeId': 123, // If you specify TradeId, GetTradesHistory can return all states for a single trade + // 'OrderId': 456, // If specified, the call returns all trades associated with the order + // 'UserId': integer. The ID of the logged-in user. If not specified, the call returns trades associated with the users belonging to the default account for the logged-in user of this OMS. + // 'StartTimeStamp': long integer. The historical date and time at which to begin the trade report, in POSIX format. If not specified, reverts to the start date of this account on the trading venue. + // 'EndTimeStamp': long integer. Date at which to end the trade report, in POSIX format. + // 'Depth': integer. In this case, the count of trades to return, counting from the StartIndex. If Depth is not specified, returns all trades between BeginTimeStamp and EndTimeStamp, beginning at StartIndex. + // 'StartIndex': 0 // from the most recent trade 0 and moving backwards in time + // 'ExecutionId': 123, // The ID of the individual buy or sell execution. If not specified, returns all. + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['InstrumentId'] = market['id']; + } + if (since !== undefined) { + request['StartTimeStamp'] = since; + } + if (limit !== undefined) { + request['Depth'] = limit; + } + const response = await this.privateGetGetTradesHistory (this.extend (request, params)); + // + // [ + // { + // "OMSId":1, + // "ExecutionId":16916567, + // "TradeId":14476351, + // "OrderId":2543565231, + // "AccountId":449, + // "AccountName":"igor@ccxt.trade", + // "SubAccountId":0, + // "ClientOrderId":0, + // "InstrumentId":8, + // "Side":"Sell", + // "OrderType":"Market", + // "Quantity":0.1230000000000000000000000000, + // "RemainingQuantity":0.0000000000000000000000000000, + // "Price":19069.310000000000000000000000, + // "Value":2345.5251300000000000000000000, + // "CounterParty":"7", + // "OrderTradeRevision":1, + // "Direction":"NoChange", + // "IsBlockTrade":false, + // "Fee":1.1727625650000000000000000000, + // "FeeProductId":8, + // "OrderOriginator":446, + // "UserName":"igor@ccxt.trade", + // "TradeTimeMS":1607565031569, + // "MakerTaker":"Taker", + // "AdapterTradeId":0, + // "InsideBid":19069.310000000000000000000000, + // "InsideBidSize":0.2400950000000000000000000000, + // "InsideAsk":19069.320000000000000000000000, + // "InsideAskSize":0.0997360000000000000000000000, + // "IsQuote":false, + // "CounterPartyClientUserId":1, + // "NotionalProductId":2, + // "NotionalRate":1.0000000000000000000000000000, + // "NotionalValue":2345.5251300000000000000000000, + // "NotionalHoldAmount":0, + // "TradeTime":637431618315686826 + // } + // ] + // + return this.parseTrades (response, market, since, limit); + } + + async cancelAllOrders (symbol = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + const request = { + 'omsId': omsId, + 'AccountId': accountId, + }; + if (symbol !== undefined) { + const market = this.market (symbol); + request['IntrumentId'] = market['id']; + } + const response = await this.privatePostCancelAllOrders (this.extend (request, params)); + // + // { + // "result":true, + // "errormsg":null, + // "errorcode":0, + // "detail":null + // } + // + return response; + } + + async cancelOrder (id, symbol = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + // const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + // const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + // params = this.omit (params, [ 'accountId', 'AccountId' ]); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + } + const request = { + 'omsId': omsId, + // 'AccountId': accountId, + }; + const clientOrderId = this.safeInteger2 (params, 'clientOrderId', 'ClOrderId'); + if (clientOrderId !== undefined) { + request['ClOrderId'] = clientOrderId; + } else { + request['OrderId'] = parseInt (id); + } + params = this.omit (params, [ 'clientOrderId', 'ClOrderId' ]); + const response = await this.privatePostCancelOrder (this.extend (request, params)); + const order = this.parseOrder (response, market); + return this.extend (order, { + 'id': id, + 'clientOrderId': clientOrderId, + }); + } + + async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + } + const request = { + 'omsId': omsId, + 'AccountId': accountId, + }; + const response = await this.privateGetGetOpenOrders (this.extend (request, params)); + // + // [ + // { + // "Side":"Buy", + // "OrderId":2543565233, + // "Price":19010, + // "Quantity":0.345, + // "DisplayQuantity":0.345, + // "Instrument":8, + // "Account":449, + // "AccountName":"igor@ccxt.trade", + // "OrderType":"Limit", + // "ClientOrderId":0, + // "OrderState":"Working", + // "ReceiveTime":1607579326003, + // "ReceiveTimeTicks":637431761260028981, + // "LastUpdatedTime":1607579326005, + // "LastUpdatedTimeTicks":637431761260054714, + // "OrigQuantity":0.345, + // "QuantityExecuted":0, + // "GrossValueExecuted":0, + // "ExecutableValue":0, + // "AvgPrice":0, + // "CounterPartyId":0, + // "ChangeReason":"NewInputAccepted", + // "OrigOrderId":2543565233, + // "OrigClOrdId":0, + // "EnteredBy":446, + // "UserName":"igor@ccxt.trade", + // "IsQuote":false, + // "InsideAsk":19069.32, + // "InsideAskSize":0.099736, + // "InsideBid":19068.25, + // "InsideBidSize":1.330001, + // "LastTradePrice":19068.25, + // "RejectReason":"", + // "IsLockedIn":false, + // "CancelReason":"", + // "OrderFlag":"AddedToBook", + // "UseMargin":false, + // "StopPrice":0, + // "PegPriceType":"Unknown", + // "PegOffset":0, + // "PegLimitOffset":0, + // "IpAddress":null, + // "ClientOrderIdUuid":null, + // "OMSId":1 + // } + // ] + // + return this.parseOrders (response, market, since, limit); + } + + async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + const request = { + 'omsId': omsId, + 'AccountId': accountId, + // 'ClientOrderId': clientOrderId, + // 'OriginalOrderId': id, + // 'OriginalClientOrderId': long integer, + // 'UserId': integer, + // 'InstrumentId': market['id'], + // 'StartTimestamp': since, + // 'EndTimestamp': this.milliseconds (), + // 'Depth': limit, + // 'StartIndex': 0, + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['InstrumentId'] = market['id']; + } + if (since !== undefined) { + request['StartTimeStamp'] = since; + } + if (limit !== undefined) { + request['Depth'] = limit; + } + const response = await this.privateGetGetOrdersHistory (this.extend (request, params)); + // + // [ + // { + // "Side":"Buy", + // "OrderId":2543565233, + // "Price":19010.000000000000000000000000, + // "Quantity":0.0000000000000000000000000000, + // "DisplayQuantity":0.3450000000000000000000000000, + // "Instrument":8, + // "Account":449, + // "AccountName":"igor@ccxt.trade", + // "OrderType":"Limit", + // "ClientOrderId":0, + // "OrderState":"Canceled", + // "ReceiveTime":1607579326003, + // "ReceiveTimeTicks":637431761260028981, + // "LastUpdatedTime":1607580965346, + // "LastUpdatedTimeTicks":637431777653463754, + // "OrigQuantity":0.3450000000000000000000000000, + // "QuantityExecuted":0.0000000000000000000000000000, + // "GrossValueExecuted":0.0000000000000000000000000000, + // "ExecutableValue":0.0000000000000000000000000000, + // "AvgPrice":0.0000000000000000000000000000, + // "CounterPartyId":0, + // "ChangeReason":"UserModified", + // "OrigOrderId":2543565233, + // "OrigClOrdId":0, + // "EnteredBy":446, + // "UserName":"igor@ccxt.trade", + // "IsQuote":false, + // "InsideAsk":19069.320000000000000000000000, + // "InsideAskSize":0.0997360000000000000000000000, + // "InsideBid":19068.250000000000000000000000, + // "InsideBidSize":1.3300010000000000000000000000, + // "LastTradePrice":19068.250000000000000000000000, + // "RejectReason":"", + // "IsLockedIn":false, + // "CancelReason":"UserModified", + // "OrderFlag":"AddedToBook, RemovedFromBook", + // "UseMargin":false, + // "StopPrice":0.0000000000000000000000000000, + // "PegPriceType":"Unknown", + // "PegOffset":0.0000000000000000000000000000, + // "PegLimitOffset":0.0000000000000000000000000000, + // "IpAddress":"5.228.233.138", + // "ClientOrderIdUuid":null, + // "OMSId":1 + // }, + // ] + // + return this.parseOrders (response, market, since, limit); + } + + async fetchOrder (id, symbol = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + } + const request = { + 'omsId': omsId, + 'AccountId': accountId, + 'OrderId': parseInt (id), + }; + const response = await this.privateGetGetOrderStatus (this.extend (request, params)); + // + // { + // "Side":"Sell", + // "OrderId":2543565232, + // "Price":0.0000000000000000000000000000, + // "Quantity":0.0000000000000000000000000000, + // "DisplayQuantity":0.0000000000000000000000000000, + // "Instrument":8, + // "Account":449, + // "AccountName":"igor@ccxt.trade", + // "OrderType":"Market", + // "ClientOrderId":0, + // "OrderState":"FullyExecuted", + // "ReceiveTime":1607569475591, + // "ReceiveTimeTicks":637431662755912377, + // "LastUpdatedTime":1607569475596, + // "LastUpdatedTimeTicks":637431662755960902, + // "OrigQuantity":1.0000000000000000000000000000, + // "QuantityExecuted":1.0000000000000000000000000000, + // "GrossValueExecuted":19068.270478610000000000000000, + // "ExecutableValue":0.0000000000000000000000000000, + // "AvgPrice":19068.270478610000000000000000, + // "CounterPartyId":0, + // "ChangeReason":"Trade", + // "OrigOrderId":2543565232, + // "OrigClOrdId":0, + // "EnteredBy":446, + // "UserName":"igor@ccxt.trade", + // "IsQuote":false, + // "InsideAsk":19069.320000000000000000000000, + // "InsideAskSize":0.0997360000000000000000000000, + // "InsideBid":19069.310000000000000000000000, + // "InsideBidSize":0.2400950000000000000000000000, + // "LastTradePrice":19069.310000000000000000000000, + // "RejectReason":"", + // "IsLockedIn":false, + // "CancelReason":"", + // "OrderFlag":"0", + // "UseMargin":false, + // "StopPrice":0.0000000000000000000000000000, + // "PegPriceType":"Unknown", + // "PegOffset":0.0000000000000000000000000000, + // "PegLimitOffset":0.0000000000000000000000000000, + // "IpAddress":"5.228.233.138", + // "ClientOrderIdUuid":null, + // "OMSId":1 + // } + // + return this.parseOrder (response, market); + } + + async fetchOrderTrades (id, symbol = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + // const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + // const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + // params = this.omit (params, [ 'accountId', 'AccountId' ]); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + } + const request = { + 'OMSId': parseInt (omsId), + // 'AccountId': accountId, + 'OrderId': id, + }; + const response = await this.privatePostGetOrderHistoryByOrderId (this.extend (request, params)); + // + // [ + // { + // "Side":"Sell", + // "OrderId":2543565235, + // "Price":18600.000000000000000000000000, + // "Quantity":0.0000000000000000000000000000, + // "DisplayQuantity":0.0000000000000000000000000000, + // "Instrument":8, + // "Account":449, + // "AccountName":"igor@ccxt.trade", + // "OrderType":"Limit", + // "ClientOrderId":0, + // "OrderState":"FullyExecuted", + // "ReceiveTime":1607585844956, + // "ReceiveTimeTicks":637431826449564182, + // "LastUpdatedTime":1607585844959, + // "LastUpdatedTimeTicks":637431826449593893, + // "OrigQuantity":0.1230000000000000000000000000, + // "QuantityExecuted":0.1230000000000000000000000000, + // "GrossValueExecuted":2345.3947500000000000000000000, + // "ExecutableValue":0.0000000000000000000000000000, + // "AvgPrice":19068.250000000000000000000000, + // "CounterPartyId":0, + // "ChangeReason":"Trade", + // "OrigOrderId":2543565235, + // "OrigClOrdId":0, + // "EnteredBy":446, + // "UserName":"igor@ccxt.trade", + // "IsQuote":false, + // "InsideAsk":19069.320000000000000000000000, + // "InsideAskSize":0.0997360000000000000000000000, + // "InsideBid":19068.250000000000000000000000, + // "InsideBidSize":1.3300010000000000000000000000, + // "LastTradePrice":19068.250000000000000000000000, + // "RejectReason":"", + // "IsLockedIn":false, + // "CancelReason":"", + // "OrderFlag":"0", + // "UseMargin":false, + // "StopPrice":0.0000000000000000000000000000, + // "PegPriceType":"Unknown", + // "PegOffset":0.0000000000000000000000000000, + // "PegLimitOffset":0.0000000000000000000000000000, + // "IpAddress":"5.228.233.138", + // "ClientOrderIdUuid":null, + // "OMSId":1 + // }, + // ] + // + const grouped = this.groupBy (response, 'ChangeReason'); + const trades = this.safeValue (grouped, 'Trade', []); + return this.parseTrades (trades, market, since, limit); + } + + async fetchDepositAddress (code, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + const currency = this.currency (code); + const request = { + 'omsId': omsId, + 'AccountId': accountId, + 'ProductId': currency['id'], + 'GenerateNewKey': false, + }; + const response = await this.privateGetGetDepositInfo (this.extend (request, params)); + // + // { + // "result":true, + // "errormsg":null, + // "statuscode":0, + // "AssetManagerId":1, + // "AccountId":57922, + // "AssetId":16, + // "ProviderId":23, + // "DepositInfo":"[\"0x8A27564b5c30b91C93B1591821642420F323a210\"]" + // } + // + return this.parseDepositAddress (response, currency); + } + + parseDepositAddress (depositAddress, currency = undefined) { + // + // fetchDepositAddress, createDepositAddress + // + // { + // "result":true, + // "errormsg":null, + // "statuscode":0, + // "AssetManagerId":1, + // "AccountId":449, + // "AssetId":1, + // "ProviderId":1, + // "DepositInfo":"[\"r3e95RwVsLH7yCbnMfyh7SA8FdwUJCB4S2?memo=241452010\"]" + // } + // + const depositInfoString = this.safeString (depositAddress, 'DepositInfo'); + const depositInfo = JSON.parse (depositInfoString); + const depositInfoLength = depositInfo.length; + const lastString = this.safeString (depositInfo, depositInfoLength - 1); + const parts = lastString.split ('?memo='); + const address = this.safeString (parts, 0); + const tag = this.safeString (parts, 1); + let code = undefined; + if (currency !== undefined) { + code = currency['code']; + } + this.checkAddress (address); + return { + 'currency': code, + 'address': address, + 'tag': tag, + 'info': depositAddress, + }; + } + + async createDepositAddress (code, params = {}) { + const request = { + 'GenerateNewKey': true, + }; + return await this.fetchDepositAddress (code, this.extend (request, params)); + } + + async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + } + const request = { + 'omsId': omsId, + 'AccountId': accountId, + }; + const response = await this.privateGetGetDeposits (this.extend (request, params)); + // + // [ + // { + // "OMSId":1, + // "DepositId":44, + // "AccountId":449, + // "SubAccountId":0, + // "ProductId":4, + // "Amount":200.00000000000000000000000000, + // "LastUpdateTimeStamp":637431291261187806, + // "ProductType":"CryptoCurrency", + // "TicketStatus":"FullyProcessed", + // "DepositInfo":"{}", + // "DepositCode":"ab0e23d5-a9ce-4d94-865f-9ab464fb1de3", + // "TicketNumber":71, + // "NotionalProductId":13, + // "NotionalValue":200.00000000000000000000000000, + // "FeeAmount":0.0000000000000000000000000000, + // }, + // ] + // + return this.parseTransactions (response, currency, since, limit); + } + + async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + } + const request = { + 'omsId': omsId, + 'AccountId': accountId, + }; + const response = await this.privateGetGetWithdraws (this.extend (request, params)); + // + // [ + // { + // "Amount": 0.0, + // "FeeAmount": 0.0, + // "NotionalValue": 0.0, + // "WithdrawId": 0, + // "AssetManagerId": 0, + // "AccountId": 0, + // "AssetId": 0, + // "TemplateForm": "{\"TemplateType\": \"TetherRPCWithdraw\",\"Comment\": \"TestWithdraw\",\"ExternalAddress\": \"ms6C3pKAAr8gRCcnVebs8VRkVrjcvqNYv3\"}", + // "TemplateFormType": "TetherRPCWithdraw", + // "omsId": 0, + // "TicketStatus": 0, + // "TicketNumber": 0, + // "WithdrawTransactionDetails": "", + // "WithdrawType": "", + // "WithdrawCode": "490b4fa3-53fc-44f4-bd29-7e16be86fba3", + // "AssetType": 0, + // "Reaccepted": true, + // "NotionalProductId": 0 + // }, + // ] + // + return this.parseTransactions (response, currency, since, limit); + } + + parseTransactionStatusByType (status, type = undefined) { + const statusesByType = { + 'deposit': { + 'New': 'pending', // new ticket awaiting operator review + 'AdminProcessing': 'pending', // an admin is looking at the ticket + 'Accepted': 'pending', // an admin accepts the ticket + 'Rejected': 'rejected', // admin rejects the ticket + 'SystemProcessing': 'pending', // automatic processing; an unlikely status for a deposit + 'FullyProcessed': 'ok', // the deposit has concluded + 'Failed': 'failed', // the deposit has failed for some reason + 'Pending': 'pending', // Account Provider has set status to pending + 'Confirmed': 'pending', // Account Provider confirms the deposit + 'AmlProcessing': 'pending', // anti-money-laundering process underway + 'AmlAccepted': 'pending', // anti-money-laundering process successful + 'AmlRejected': 'rejected', // deposit did not stand up to anti-money-laundering process + 'AmlFailed': 'failed', // anti-money-laundering process failed/did not complete + 'LimitsAccepted': 'pending', // deposit meets limits for fiat or crypto asset + 'LimitsRejected': 'rejected', // deposit does not meet limits for fiat or crypto asset + }, + 'withdrawal': { + 'New': 'pending', // awaiting operator review + 'AdminProcessing': 'pending', // An admin is looking at the ticket + 'Accepted': 'pending', // withdrawal will proceed + 'Rejected': 'rejected', // admin or automatic rejection + 'SystemProcessing': 'pending', // automatic processing underway + 'FullyProcessed': 'ok', // the withdrawal has concluded + 'Failed': 'failed', // the withdrawal failed for some reason + 'Pending': 'pending', // the admin has placed the withdrawal in pending status + 'Pending2Fa': 'pending', // user must click 2-factor authentication confirmation link + 'AutoAccepted': 'pending', // withdrawal will be automatically processed + 'Delayed': 'pending', // waiting for funds to be allocated for the withdrawal + 'UserCanceled': 'canceled', // withdraw canceled by user or Superuser + 'AdminCanceled': 'canceled', // withdraw canceled by Superuser + 'AmlProcessing': 'pending', // anti-money-laundering process underway + 'AmlAccepted': 'pending', // anti-money-laundering process complete + 'AmlRejected': 'rejected', // withdrawal did not stand up to anti-money-laundering process + 'AmlFailed': 'failed', // withdrawal did not complete anti-money-laundering process + 'LimitsAccepted': 'pending', // withdrawal meets limits for fiat or crypto asset + 'LimitsRejected': 'rejected', // withdrawal does not meet limits for fiat or crypto asset + 'Submitted': 'pending', // withdrawal sent to Account Provider; awaiting blockchain confirmation + 'Confirmed': 'pending', // Account Provider confirms that withdrawal is on the blockchain + 'ManuallyConfirmed': 'pending', // admin has sent withdrawal via wallet or admin function directly; marks ticket as FullyProcessed; debits account + 'Confirmed2Fa': 'pending', // user has confirmed withdraw via 2-factor authentication. + }, + }; + const statuses = this.safeValue (statusesByType, type, {}); + return this.safeString (statuses, status, status); + } + + parseTransaction (transaction, currency = undefined) { + // + // fetchDeposits + // + // { + // "OMSId":1, + // "DepositId":44, + // "AccountId":449, + // "SubAccountId":0, + // "ProductId":4, + // "Amount":200.00000000000000000000000000, + // "LastUpdateTimeStamp":637431291261187806, + // "ProductType":"CryptoCurrency", + // "TicketStatus":"FullyProcessed", + // "DepositInfo":"{}", + // "DepositCode":"ab0e23d5-a9ce-4d94-865f-9ab464fb1de3", + // "TicketNumber":71, + // "NotionalProductId":13, + // "NotionalValue":200.00000000000000000000000000, + // "FeeAmount":0.0000000000000000000000000000, + // } + // + // fetchWithdrawals + // + // { + // "Amount": 0.0, + // "FeeAmount": 0.0, + // "NotionalValue": 0.0, + // "WithdrawId": 0, + // "AssetManagerId": 0, + // "AccountId": 0, + // "AssetId": 0, + // "TemplateForm": "{\"TemplateType\": \"TetherRPCWithdraw\",\"Comment\": \"TestWithdraw\",\"ExternalAddress\": \"ms6C3pKAAr8gRCcnVebs8VRkVrjcvqNYv3\"}", + // "TemplateFormType": "TetherRPCWithdraw", + // "omsId": 0, + // "TicketStatus": 0, + // "TicketNumber": 0, + // "WithdrawTransactionDetails": "", + // "WithdrawType": "", + // "WithdrawCode": "490b4fa3-53fc-44f4-bd29-7e16be86fba3", + // "AssetType": 0, + // "Reaccepted": true, + // "NotionalProductId": 0 + // } + // + const id = this.safeString (transaction, 'DepositId'); + let txid = undefined; + const currencyId = this.safeString (transaction, 'ProductId'); + const code = this.safeCurrencyCode (currencyId, currency); + let timestamp = undefined; + let type = undefined; + if ('DepositId' in transaction) { + type = 'deposit'; + } else if ('WithdrawId' in transaction) { + type = 'withdrawal'; + } + const templateFormString = this.safeString (transaction, 'TemplateForm'); + let address = undefined; + let updated = this.safeInteger (transaction, 'LastUpdateTimeStamp'); + if (templateFormString !== undefined) { + const templateForm = JSON.parse (templateFormString); + address = this.safeString (templateForm, 'ExternalAddress'); + txid = this.safeString (templateForm, 'TxId'); + timestamp = this.safeInteger (templateForm, 'TimeSubmitted'); + updated = this.safeInteger (templateForm, 'LastUpdated', updated); + } + const addressTo = address; + const status = this.parseTransactionStatusByType (this.safeString (transaction, 'TicketStatus'), type); + const amount = this.safeFloat (transaction, 'Amount'); + const feeCost = this.safeFloat (transaction, 'FeeAmount'); + let fee = undefined; + if (feeCost !== undefined) { + fee = { 'currency': code, 'cost': feeCost }; + } + return { + 'info': transaction, + 'id': id, + 'txid': txid, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'address': address, + 'addressTo': addressTo, + 'addressFrom': undefined, + 'tag': undefined, + 'tagTo': undefined, + 'tagFrom': undefined, + 'type': type, + 'amount': amount, + 'currency': code, + 'status': status, + 'updated': updated, + 'fee': fee, + }; + } + + nonce () { + return this.milliseconds (); + } + + sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { + let url = this.urls['api'][api] + '/' + this.implodeParams (path, params); + const query = this.omit (params, this.extractParams (path)); + if (api === 'public') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } else if (api === 'private') { + this.checkRequiredCredentials (); + const nonce = this.nonce ().toString (); + const auth = nonce + this.uid + this.apiKey; + const signature = this.hmac (this.encode (auth), this.encode (this.secret)); + headers = { + 'Nonce': nonce, + 'APIKey': this.apiKey, + 'Signature': signature, + 'UserId': this.uid, + }; + if (method === 'POST') { + headers['Content-Type'] = 'application/json'; + body = this.json (query); + } else { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } + } + return { 'url': url, 'method': method, 'body': body, 'headers': headers }; + } + + handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { + if (code === 404) { + throw new AuthenticationError (this.id + ' ' + body); + } + if (response === undefined) { + return; + } + // + // {"status":"Rejected","errormsg":"Not_Enough_Funds","errorcode":101} + // {"result":false,"errormsg":"Server Error","errorcode":102,"detail":null} + // + const message = this.safeString (response, 'errormsg'); + if ((message !== undefined) && (message !== '')) { + const feedback = this.id + ' ' + body; + this.throwExactlyMatchedException (this.exceptions['exact'], message, feedback); + this.throwBroadlyMatchedException (this.exceptions['broad'], body, feedback); + throw new ExchangeError (feedback); + } + } +}; + +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],114:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -89216,6 +97366,7 @@ module.exports = class novadax extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -89532,7 +97683,7 @@ module.exports = class novadax extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],112:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],115:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -90047,7 +98198,7 @@ module.exports = class oceanex extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a `symbol` argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a `symbol` argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -90108,6 +98259,7 @@ module.exports = class oceanex extends Exchange { 'symbol': symbol, 'type': this.safeValue (order, 'ord_type'), 'timeInForce': undefined, + 'postOnly': undefined, 'side': this.safeValue (order, 'side'), 'price': this.safeFloat (order, 'price'), 'stopPrice': undefined, @@ -90217,7 +98369,7 @@ module.exports = class oceanex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],113:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],116:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -90254,13 +98406,13 @@ module.exports = class okcoin extends okex { } }; -},{"./okex.js":114}],114:[function(require,module,exports){ +},{"./okex.js":117}],117:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { ExchangeError, ExchangeNotAvailable, OnMaintenance, ArgumentsRequired, BadRequest, AccountSuspended, InvalidAddress, PermissionDenied, DDoSProtection, InsufficientFunds, InvalidNonce, CancelPending, InvalidOrder, OrderNotFound, AuthenticationError, RequestTimeout, NotSupported, BadSymbol } = require ('./base/errors'); +const { ExchangeError, ExchangeNotAvailable, OnMaintenance, ArgumentsRequired, BadRequest, AccountSuspended, InvalidAddress, PermissionDenied, DDoSProtection, InsufficientFunds, InvalidNonce, CancelPending, InvalidOrder, OrderNotFound, AuthenticationError, RequestTimeout, NotSupported, BadSymbol, RateLimitExceeded } = require ('./base/errors'); const { TICK_SIZE, TRUNCATE } = require ('./base/functions/number'); // --------------------------------------------------------------------------- @@ -90365,6 +98517,7 @@ module.exports = class okex extends Exchange { 'accounts/{currency}', 'accounts/{currency}/ledger', 'orders', + 'amend_order/{instrument_id}', 'orders_pending', 'orders/{order_id}', 'orders/{client_oid}', @@ -90455,6 +98608,7 @@ module.exports = class okex extends Exchange { 'post': [ 'accounts/{underlying}/leverage', 'order', + 'amend_order/{instrument_id}', 'orders', 'cancel_order/{instrument_id}/{order_id}', 'cancel_order/{instrument_id}/{client_oid}', @@ -90501,12 +98655,17 @@ module.exports = class okex extends Exchange { 'post': [ 'accounts/{instrument_id}/leverage', 'order', + 'amend_order/{instrument_id}', 'orders', 'cancel_order/{instrument_id}/{order_id}', 'cancel_order/{instrument_id}/{client_oid}', 'cancel_batch_orders/{instrument_id}', 'order_algo', 'cancel_algos', + 'close_position', + 'cancel_all', + 'order_algo', + 'cancel_algos', ], }, 'option': { @@ -90783,7 +98942,7 @@ module.exports = class okex extends Exchange { '34021': InvalidAddress, // { "code": 34021, "message": "Not verified address" } '34022': ExchangeError, // { "code": 34022, "message": "Withdrawals are not available for sub accounts" } '34023': PermissionDenied, // { "code": 34023, "message": "Please enable futures trading before transferring your funds" } - '34026': ExchangeError, // transfer too frequently(transfer too frequently) + '34026': RateLimitExceeded, // transfer too frequently(transfer too frequently) '34036': ExchangeError, // Parameter is incorrect, please refer to API documentation '34037': ExchangeError, // Get the sub-account balance interface, account type is not supported '34038': ExchangeError, // Since your C2C transaction is unusual, you are restricted from fund transfer. Please contact our customer support to cancel the restriction @@ -90812,7 +98971,7 @@ module.exports = class okex extends Exchange { '35031': InvalidOrder, // { "code": 35031, "message": "Cancel order size too large" } '35032': ExchangeError, // { "code": 35032, "message": "Invalid user status" } '35037': ExchangeError, // No last traded price in cache - '35039': ExchangeError, // { "code": 35039, "message": "Open order quantity exceeds limit" } + '35039': InsufficientFunds, // { "code": 35039, "message": "Open order quantity exceeds limit" } '35040': InvalidOrder, // {"error_message":"Invalid order type","result":"true","error_code":"35040","order_id":"-1"} '35044': ExchangeError, // { "code": 35044, "message": "Invalid order status" } '35046': InsufficientFunds, // { "code": 35046, "message": "Negative account balance" } @@ -90865,6 +99024,7 @@ module.exports = class okex extends Exchange { '35097': ExchangeError, // Order status and order ID cannot exist at the same time '35098': ExchangeError, // An order status or order ID must exist '35099': ExchangeError, // Algo order ID error + '35102': RateLimitExceeded, // {"error_message":"The operation that close all at market price is too frequent","result":"true","error_code":"35102","order_id":"-1"} // option '36001': BadRequest, // Invalid underlying index. '36002': BadRequest, // Instrument does not exist. @@ -90934,6 +99094,7 @@ module.exports = class okex extends Exchange { 'HOT': 'Hydro Protocol', 'HSR': 'HC', 'MAG': 'Maggie', + 'SBTC': 'Super Bitcoin', 'YOYO': 'YOYOW', 'WIN': 'WinToken', // https://github.com/ccxt/ccxt/issues/5701 }, @@ -91233,7 +99394,7 @@ module.exports = class okex extends Exchange { const currency = response[i]; const id = this.safeString (currency, 'currency'); const code = this.safeCurrencyCode (id); - const precision = 8; // default precision, todo: fix "magic constants" + const precision = 0.00000001; // default precision, todo: fix "magic constants" const name = this.safeString (currency, 'name'); const canDeposit = this.safeInteger (currency, 'can_deposit'); const canWithdraw = this.safeInteger (currency, 'can_withdraw'); @@ -91969,7 +100130,7 @@ module.exports = class okex extends Exchange { const defaultType = this.safeString2 (this.options, 'fetchBalance', 'defaultType'); const type = this.safeString (params, 'type', defaultType); if (type === undefined) { - throw new ArgumentsRequired (this.id + " fetchBalance requires a type parameter (one of 'account', 'spot', 'margin', 'futures', 'swap')"); + throw new ArgumentsRequired (this.id + " fetchBalance() requires a type parameter (one of 'account', 'spot', 'margin', 'futures', 'swap')"); } await this.loadMarkets (); const suffix = (type === 'account') ? 'Wallet' : 'Accounts'; @@ -92215,7 +100376,7 @@ module.exports = class okex extends Exchange { type = this.safeString (params, 'type', defaultType); } if (type === undefined) { - throw new ArgumentsRequired (this.id + " cancelOrder requires a type parameter (one of 'spot', 'margin', 'futures', 'swap')."); + throw new ArgumentsRequired (this.id + " cancelOrder() requires a type parameter (one of 'spot', 'margin', 'futures', 'swap')."); } let method = type + 'PostCancelOrder'; const request = { @@ -92422,6 +100583,7 @@ module.exports = class okex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -92438,14 +100600,14 @@ module.exports = class okex extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); const defaultType = this.safeString2 (this.options, 'fetchOrder', 'defaultType', market['type']); const type = this.safeString (params, 'type', defaultType); if (type === undefined) { - throw new ArgumentsRequired (this.id + " fetchOrder requires a type parameter (one of 'spot', 'margin', 'futures', 'swap')."); + throw new ArgumentsRequired (this.id + " fetchOrder() requires a type parameter (one of 'spot', 'margin', 'futures', 'swap')."); } const instrumentId = (market['futures'] || market['swap']) ? 'InstrumentId' : ''; let method = type + 'GetOrders' + instrumentId; @@ -92513,7 +100675,7 @@ module.exports = class okex extends Exchange { async fetchOrdersByState (state, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrdersByState requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrdersByState() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -92525,7 +100687,7 @@ module.exports = class okex extends Exchange { type = this.safeString (params, 'type', defaultType); } if (type === undefined) { - throw new ArgumentsRequired (this.id + " fetchOrder requires a type parameter (one of 'spot', 'margin', 'futures', 'swap')."); + throw new ArgumentsRequired (this.id + " fetchOrdersByState() requires a type parameter (one of 'spot', 'margin', 'futures', 'swap')."); } const request = { 'instrument_id': market['id'], @@ -92855,6 +101017,7 @@ module.exports = class okex extends Exchange { // "currency": "XMR", // "from": "", // "to": "48PjH3ksv1fiXniKvKvyH5UtFs5WhfS2Vf7U3TwzdRJtCc7HJWvCQe56dRahyhQyTAViXZ8Nzk4gQg6o4BJBMUoxNy8y8g7", + // "tag": "1234567", // "deposit_id": 11571659, <-- we can use this // "timestamp": "2019-10-01T14:54:19.000Z", // "status": "2" @@ -92866,6 +101029,7 @@ module.exports = class okex extends Exchange { const withdrawalId = this.safeString (transaction, 'withdrawal_id'); const addressFrom = this.safeString (transaction, 'from'); const addressTo = this.safeString (transaction, 'to'); + const tagTo = this.safeString (transaction, 'tag'); if (withdrawalId !== undefined) { type = 'withdrawal'; id = withdrawalId; @@ -92906,8 +101070,8 @@ module.exports = class okex extends Exchange { 'addressTo': addressTo, 'address': address, 'tagFrom': undefined, - 'tagTo': undefined, - 'tag': undefined, + 'tagTo': tagTo, + 'tag': tagTo, 'status': status, 'type': type, 'updated': undefined, @@ -93080,7 +101244,7 @@ module.exports = class okex extends Exchange { // this aspect renders the 'fills' endpoint unusable for fetchOrderTrades // until either OKEX fixes the API or we workaround this on our side somehow if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -93469,16 +101633,28 @@ module.exports = class okex extends Exchange { request['limit'] = limit; } let currency = undefined; - if ((type === 'spot') || (type === 'futures')) { + if (type === 'spot') { if (code === undefined) { - throw new ArgumentsRequired (this.id + " fetchLedger requires a currency code argument for '" + type + "' markets"); + throw new ArgumentsRequired (this.id + " fetchLedger() requires a currency code argument for '" + type + "' markets"); } argument = 'Currency'; currency = this.currency (code); request['currency'] = currency['id']; + } else if (type === 'futures') { + if (code === undefined) { + throw new ArgumentsRequired (this.id + " fetchLedger() requires an underlying symbol for '" + type + "' markets"); + } + argument = 'Underlying'; + const market = this.market (code); // we intentionally put a market inside here for the margin and swap ledgers + const marketInfo = this.safeValue (market, 'info', {}); + const settlementCurrencyId = this.safeString (marketInfo, 'settlement_currency'); + const settlementCurrencyСode = this.safeCurrencyCode (settlementCurrencyId); + currency = this.currency (settlementCurrencyСode); + const underlyingId = this.safeString (marketInfo, 'underlying'); + request['underlying'] = underlyingId; } else if ((type === 'margin') || (type === 'swap')) { if (code === undefined) { - throw new ArgumentsRequired (this.id + " fetchLedger requires a code argument (a market symbol) for '" + type + "' markets"); + throw new ArgumentsRequired (this.id + " fetchLedger() requires a code argument (a market symbol) for '" + type + "' markets"); } argument = 'InstrumentId'; const market = this.market (code); // we intentionally put a market inside here for the margin and swap ledgers @@ -93872,7 +102048,7 @@ module.exports = class okex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],115:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],118:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -94137,7 +102313,7 @@ module.exports = class paymium extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],116:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],119:[function(require,module,exports){ 'use strict'; // ---------------------------------------------------------------------------- @@ -94242,6 +102418,7 @@ module.exports = class phemex extends Exchange { 'exchange/spot/order/trades', // ?symbol=&start=&end=&limit=&offset= // swap 'accounts/accountPositions', // ?currency= + 'accounts/positions', // ?currency= 'orders/activeList', // ?symbol= 'exchange/order/list', // ?symbol=&start=&end=&offset=&limit=&ordStatus=&withCount= 'exchange/order', // ?symbol=&orderID= @@ -94868,7 +103045,7 @@ module.exports = class phemex extends Exchange { parseBidAsk (bidask, priceKey = 0, amountKey = 1, market = undefined) { if (market === undefined) { - throw new ArgumentsRequired (this.id + ' parseBidAsk requires a market argument'); + throw new ArgumentsRequired (this.id + ' parseBidAsk() requires a market argument'); } let amount = this.safeFloat (bidask, amountKey); if (market['spot']) { @@ -94961,6 +103138,9 @@ module.exports = class phemex extends Exchange { } fromEn (en, scale, precision, precisionMode = undefined) { + if (en === undefined) { + return en; + } precisionMode = (precisionMode === undefined) ? this.precisionMode : precisionMode; return parseFloat (this.decimalToPrecision (en * Math.pow (10, -scale), ROUND, precision, precisionMode)); } @@ -95004,13 +103184,19 @@ module.exports = class phemex extends Exchange { // 48759063370, // quote volume // ] // + let baseVolume = undefined; + if ((market !== undefined) && market['spot']) { + baseVolume = this.fromEv (this.safeFloat (ohlcv, 7), market); + } else { + baseVolume = this.safeInteger (ohlcv, 7); + } return [ this.safeTimestamp (ohlcv, 0), this.fromEp (this.safeFloat (ohlcv, 3), market), this.fromEp (this.safeFloat (ohlcv, 4), market), this.fromEp (this.safeFloat (ohlcv, 5), market), this.fromEp (this.safeFloat (ohlcv, 6), market), - this.fromEv (this.safeFloat (ohlcv, 7), market), + baseVolume, ]; } @@ -95037,7 +103223,7 @@ module.exports = class phemex extends Exchange { request['from'] = now - duration * this.sum (limit, 1); request['to'] = now; } else { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a since argument, or a limit argument, or both'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a since argument, or a limit argument, or both'); } await this.loadMarkets (); const market = this.market (symbol); @@ -95542,7 +103728,7 @@ module.exports = class phemex extends Exchange { } else { const currency = this.safeString (params, 'currency'); if (currency === undefined) { - throw new ArgumentsRequired (this.id + ' fetchBalance requires a code parameter or a currency parameter for ' + type + ' type'); + throw new ArgumentsRequired (this.id + ' fetchBalance() requires a code parameter or a currency parameter for ' + type + ' type'); } } method = 'privateGetAccountsAccountPositions'; @@ -95777,8 +103963,9 @@ module.exports = class phemex extends Exchange { filled = Math.min (0, amount - remaining); } } - const timeInForce = this.parseTimeInForce (this.safeStirng (order, 'timeInForce')); + const timeInForce = this.parseTimeInForce (this.safeString (order, 'timeInForce')); const stopPrice = this.fromEp (this.safeFloat (order, 'stopPxEp', market)); + const postOnly = (timeInForce === 'PO'); return { 'info': order, 'id': id, @@ -95789,6 +103976,7 @@ module.exports = class phemex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -95861,6 +104049,7 @@ module.exports = class phemex extends Exchange { } const timeInForce = this.parseTimeInForce (this.safeString (order, 'timeInForce')); const stopPrice = this.safeFloat (order, 'stopPx'); + const postOnly = (timeInForce === 'PO'); return { 'info': order, 'id': id, @@ -95871,6 +104060,7 @@ module.exports = class phemex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -95926,8 +104116,10 @@ module.exports = class phemex extends Exchange { }; if (market['spot']) { let qtyType = this.safeValue (params, 'qtyType', 'ByBase'); - if (price !== undefined) { - qtyType = 'ByQuote'; + if ((type === 'Market') || (type === 'Stop') || (type === 'MarketIfTouched')) { + if (price !== undefined) { + qtyType = 'ByQuote'; + } } request['qtyType'] = qtyType; if (qtyType === 'ByQuote') { @@ -95937,7 +104129,7 @@ module.exports = class phemex extends Exchange { if (price !== undefined) { cost = amount * price; } else if (cost === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder ' + qtyType + ' requires a price argument or a cost parameter'); + throw new ArgumentsRequired (this.id + ' createOrder() ' + qtyType + ' requires a price argument or a cost parameter'); } } cost = (cost === undefined) ? amount : cost; @@ -96040,7 +104232,7 @@ module.exports = class phemex extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -96080,7 +104272,7 @@ module.exports = class phemex extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -96114,7 +104306,7 @@ module.exports = class phemex extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -96136,7 +104328,7 @@ module.exports = class phemex extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -96160,7 +104352,7 @@ module.exports = class phemex extends Exchange { async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchClosedOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchClosedOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -96222,7 +104414,7 @@ module.exports = class phemex extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchClosedOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchClosedOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -96457,7 +104649,7 @@ module.exports = class phemex extends Exchange { const currencyId = this.safeString (transaction, 'currency'); currency = this.safeCurrency (currencyId, currency); const code = currency['code']; - const timestamp = this.safeInteger (transaction, 'createdAt'); + const timestamp = this.safeInteger2 (transaction, 'createdAt', 'submitedAt'); let type = this.safeStringLower (transaction, 'type'); const feeCost = this.fromEn (this.safeFloat (transaction, 'feeEv'), currency['valueScale'], currency['precision']); let fee = undefined; @@ -96644,7 +104836,7 @@ module.exports = class phemex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],117:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],120:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -96851,7 +105043,6 @@ module.exports = class poloniex extends Exchange { 'Error pulling ': ExchangeError, // {"error":"Error pulling order book"} }, }, - 'orders': {}, // orders cache / emulation }); } @@ -97570,6 +105761,7 @@ module.exports = class poloniex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -98131,7 +106323,7 @@ module.exports = class poloniex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],118:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],121:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -98255,6 +106447,7 @@ module.exports = class probit extends Exchange { 'RATE_LIMIT_EXCEEDED': RateLimitExceeded, // You are sending requests too frequently. Please try it later. 'MARKET_UNAVAILABLE': ExchangeNotAvailable, // Market is closed today 'INVALID_MARKET': BadSymbol, // Requested market is not exist + 'MARKET_CLOSED': BadSymbol, // {"errorCode":"MARKET_CLOSED"} 'INVALID_CURRENCY': BadRequest, // Requested currency is not exist on ProBit system 'TOO_MANY_OPEN_ORDERS': DDoSProtection, // Too many open orders 'DUPLICATE_ADDRESS': InvalidAddress, // Address already exists in withdrawal address list @@ -98276,6 +106469,7 @@ module.exports = class probit extends Exchange { 'BTCBEAR': 'BEAR', 'BTCBULL': 'BULL', 'CBC': 'CryptoBharatCoin', + 'HBC': 'Hybrid Bank Cash', 'UNI': 'UNICORN Token', }, }); @@ -98433,7 +106627,18 @@ module.exports = class probit extends Exchange { const withdrawalSuspended = this.safeValue (platform, 'withdrawal_suspended'); const active = !(depositSuspended && withdrawalSuspended); const withdrawalFees = this.safeValue (platform, 'withdrawal_fee', {}); - const withdrawalFeesByPriority = this.sortBy (withdrawalFees, 'priority'); + const fees = []; + // sometimes the withdrawal fee is an empty object + // [ { 'amount': '0.015', 'priority': 1, 'currency_id': 'ETH' }, {} ] + for (let j = 0; j < withdrawalFees.length; j++) { + const withdrawalFee = withdrawalFees[j]; + const amount = this.safeFloat (withdrawalFee, 'amount'); + const priority = this.safeInteger (withdrawalFee, 'priority'); + if ((amount !== undefined) && (priority !== undefined)) { + fees.push (withdrawalFee); + } + } + const withdrawalFeesByPriority = this.sortBy (fees, 'priority'); const withdrawalFee = this.safeValue (withdrawalFeesByPriority, 0, {}); const fee = this.safeFloat (withdrawalFee, 'amount'); result[code] = { @@ -98863,7 +107068,7 @@ module.exports = class probit extends Exchange { let endTime = now; if (since === undefined) { if (limit === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires either a since argument or a limit argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires either a since argument or a limit argument'); } else { startTime = now - limit * duration * 1000; } @@ -98963,7 +107168,7 @@ module.exports = class probit extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -99156,7 +107361,7 @@ module.exports = class probit extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -99404,7 +107609,7 @@ module.exports = class probit extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],119:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],122:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -100322,6 +108527,7 @@ module.exports = class qtrade extends Exchange { 'symbol': symbol, 'type': orderType, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -100946,7 +109152,7 @@ module.exports = class qtrade extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],120:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],123:[function(require,module,exports){ 'use strict'; const Exchange = require ('./base/Exchange'); @@ -101380,7 +109586,7 @@ module.exports = class rightbtc extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -101490,6 +109696,7 @@ module.exports = class rightbtc extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -101506,7 +109713,7 @@ module.exports = class rightbtc extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -101544,7 +109751,7 @@ module.exports = class rightbtc extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -101581,7 +109788,7 @@ module.exports = class rightbtc extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { let ids = this.safeString (params, 'ids'); if ((symbol === undefined) || (ids === undefined)) { - throw new ArgumentsRequired (this.id + " fetchOrders requires a 'symbol' argument and an extra 'ids' parameter. The 'ids' should be an array or a string of one or more order ids separated with slashes."); // eslint-disable-line quotes + throw new ArgumentsRequired (this.id + " fetchOrders() requires a 'symbol' argument and an extra 'ids' parameter. The 'ids' should be an array or a string of one or more order ids separated with slashes."); // eslint-disable-line quotes } if (Array.isArray (ids)) { ids = ids.join ('/'); @@ -101620,7 +109827,7 @@ module.exports = class rightbtc extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -101705,7 +109912,7 @@ module.exports = class rightbtc extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],121:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],124:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -102538,6 +110745,7 @@ module.exports = class ripio extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -102652,7 +110860,7 @@ module.exports = class ripio extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],122:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],125:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -102919,6 +111127,7 @@ module.exports = class southxchange extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -103351,7 +111560,7 @@ module.exports = class southxchange extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],123:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],126:[function(require,module,exports){ (function (module, exports) { 'use strict'; @@ -106879,7 +115088,7 @@ module.exports = class southxchange extends Exchange { }; })(typeof module === 'undefined' || module, this); -},{"buffer":185}],124:[function(require,module,exports){ +},{"buffer":188}],127:[function(require,module,exports){ ;(function (root, factory) { if (typeof exports === "object") { // CommonJS @@ -112868,7 +121077,7 @@ module.exports = class southxchange extends Exchange { return CryptoJS; })); -},{}],125:[function(require,module,exports){ +},{}],128:[function(require,module,exports){ 'use strict'; var elliptic = exports; @@ -112892,7 +121101,7 @@ elliptic.curves = require('./elliptic/curves'); elliptic.ec = require('./elliptic/ec'); elliptic.eddsa = require('./elliptic/eddsa'); -},{"./elliptic/curve":128,"./elliptic/curves":131,"./elliptic/ec":132,"./elliptic/eddsa":135,"./elliptic/utils":139}],126:[function(require,module,exports){ +},{"./elliptic/curve":131,"./elliptic/curves":134,"./elliptic/ec":135,"./elliptic/eddsa":138,"./elliptic/utils":142}],129:[function(require,module,exports){ 'use strict'; var BN = require('../../../../BN/bn'); @@ -113269,7 +121478,7 @@ BasePoint.prototype.dblp = function dblp(k) { return r; }; -},{"../../../../BN/bn":123,"../../elliptic":125}],127:[function(require,module,exports){ +},{"../../../../BN/bn":126,"../../elliptic":128}],130:[function(require,module,exports){ 'use strict'; var curve = require('../curve'); @@ -113704,7 +121913,7 @@ Point.prototype.eqXToP = function eqXToP(x) { Point.prototype.toP = Point.prototype.normalize; Point.prototype.mixedAdd = Point.prototype.add; -},{"../../../../BN/bn":123,"../../elliptic":125,"../curve":128}],128:[function(require,module,exports){ +},{"../../../../BN/bn":126,"../../elliptic":128,"../curve":131}],131:[function(require,module,exports){ 'use strict'; var curve = exports; @@ -113714,7 +121923,7 @@ curve.short = require('./short'); curve.mont = require('./mont'); curve.edwards = require('./edwards'); -},{"./base":126,"./edwards":127,"./mont":129,"./short":130}],129:[function(require,module,exports){ +},{"./base":129,"./edwards":130,"./mont":132,"./short":133}],132:[function(require,module,exports){ 'use strict'; var curve = require('../curve'); @@ -113896,7 +122105,7 @@ Point.prototype.getX = function getX() { return this.x.fromRed(); }; -},{"../../../../BN/bn":123,"../../elliptic":125,"../curve":128}],130:[function(require,module,exports){ +},{"../../../../BN/bn":126,"../../elliptic":128,"../curve":131}],133:[function(require,module,exports){ 'use strict'; var curve = require('../curve'); @@ -114836,7 +123045,7 @@ JPoint.prototype.isInfinity = function isInfinity() { return this.z.cmpn(0) === 0; }; -},{"../../../../BN/bn":123,"../../elliptic":125,"../curve":128}],131:[function(require,module,exports){ +},{"../../../../BN/bn":126,"../../elliptic":128,"../curve":131}],134:[function(require,module,exports){ 'use strict'; var curves = exports; @@ -115042,7 +123251,7 @@ defineCurve('secp256k1', { ] }); -},{"../elliptic":125,"./precomputed/secp256k1":138}],132:[function(require,module,exports){ +},{"../elliptic":128,"./precomputed/secp256k1":141}],135:[function(require,module,exports){ 'use strict'; var BN = require('../../../../BN/bn'); @@ -115284,7 +123493,7 @@ EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) { throw new Error('Unable to find valid recovery factor'); }; -},{"../../../../BN/bn":123,"../../elliptic":125,"../../hmac-drbg/hmac-drbg":140,"./key":133,"./signature":134}],133:[function(require,module,exports){ +},{"../../../../BN/bn":126,"../../elliptic":128,"../../hmac-drbg/hmac-drbg":143,"./key":136,"./signature":137}],136:[function(require,module,exports){ 'use strict'; var BN = require('../../../../BN/bn'); @@ -115405,7 +123614,7 @@ KeyPair.prototype.inspect = function inspect() { ' pub: ' + (this.pub && this.pub.inspect()) + ' >'; }; -},{"../../../../BN/bn":123,"../../elliptic":125}],134:[function(require,module,exports){ +},{"../../../../BN/bn":126,"../../elliptic":128}],137:[function(require,module,exports){ 'use strict'; var BN = require('../../../../BN/bn'); @@ -115431,7 +123640,7 @@ function Signature(options, enc) { } module.exports = Signature; -},{"../../../../BN/bn":123,"../../elliptic":125}],135:[function(require,module,exports){ +},{"../../../../BN/bn":126,"../../elliptic":128}],138:[function(require,module,exports){ 'use strict'; var curves = require('../curves'); @@ -115578,7 +123787,7 @@ EDDSA.prototype.isPoint = function isPoint(val) { return val instanceof this.pointClass; }; -},{"../../../../../base/functions/encode":10,"../../../../BN/bn.js":123,"../../../../crypto-js/crypto-js":124,"../curves":131,"../utils":139,"./key":136,"./signature":137}],136:[function(require,module,exports){ +},{"../../../../../base/functions/encode":11,"../../../../BN/bn.js":126,"../../../../crypto-js/crypto-js":127,"../curves":134,"../utils":142,"./key":139,"./signature":140}],139:[function(require,module,exports){ 'use strict'; var utils = require('../utils'); @@ -115680,7 +123889,7 @@ KeyPair.prototype.getPublic = function getPublic(enc) { module.exports = KeyPair; -},{"../utils":139}],137:[function(require,module,exports){ +},{"../utils":142}],140:[function(require,module,exports){ 'use strict'; var BN = require('../../../../BN/bn'); @@ -115747,7 +123956,7 @@ Signature.prototype.toHex = function toHex() { module.exports = Signature; -},{"../../../../BN/bn":123,"../utils":139}],138:[function(require,module,exports){ +},{"../../../../BN/bn":126,"../utils":142}],141:[function(require,module,exports){ module.exports = { doubles: { step: 4, @@ -116529,7 +124738,7 @@ module.exports = { } }; -},{}],139:[function(require,module,exports){ +},{}],142:[function(require,module,exports){ 'use strict'; var utils = exports; @@ -116745,7 +124954,7 @@ utils.encode = function encode(arr, enc) { return arr; }; -},{"../../../BN/bn":123}],140:[function(require,module,exports){ +},{"../../../BN/bn":126}],143:[function(require,module,exports){ 'use strict'; var CryptoJS = require('../../../crypto-js/crypto-js'); @@ -116861,7 +125070,7 @@ HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) { return utils.wordArrayToBuffer(res); }; -},{"../../../../base/functions/encode":10,"../../../crypto-js/crypto-js":124,"../elliptic/utils":139}],141:[function(require,module,exports){ +},{"../../../../base/functions/encode":11,"../../../crypto-js/crypto-js":127,"../elliptic/utils":142}],144:[function(require,module,exports){ 'use strict'; var fetch = require('../node-fetch/index'); @@ -116902,7 +125111,7 @@ module.exports = function (context) { }; }; -},{"../node-fetch/index":142}],142:[function(require,module,exports){ +},{"../node-fetch/index":145}],145:[function(require,module,exports){ (function (global,Buffer){ 'use strict'; @@ -118470,7 +126679,7 @@ exports.Response = Response; exports.FetchError = FetchError; }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer) -},{"buffer":185,"http":227,"https":190,"stream":226,"url":233,"zlib":184}],143:[function(require,module,exports){ +},{"buffer":188,"http":230,"https":193,"stream":229,"url":236,"zlib":187}],146:[function(require,module,exports){ (function (Buffer){ /*! * RSA library for Node.js @@ -118697,7 +126906,7 @@ module.exports = (function () { })(); }).call(this,require("buffer").Buffer) -},{"./formats/formats.js":150,"./libs/rsa.js":154,"./schemes/schemes.js":156,"./utils":157,"buffer":185}],144:[function(require,module,exports){ +},{"./formats/formats.js":153,"./libs/rsa.js":157,"./schemes/schemes.js":159,"./utils":160,"buffer":188}],147:[function(require,module,exports){ // Copyright 2011 Mark Cavage All rights reserved. @@ -118712,7 +126921,7 @@ module.exports = { }; -},{}],145:[function(require,module,exports){ +},{}],148:[function(require,module,exports){ // Copyright 2011 Mark Cavage All rights reserved. var errors = require('./errors'); @@ -118735,7 +126944,7 @@ for (var e in errors) { module.exports[e] = errors[e]; } -},{"./errors":144,"./reader":146,"./types":147}],146:[function(require,module,exports){ +},{"./errors":147,"./reader":149,"./types":150}],149:[function(require,module,exports){ (function (Buffer){ // Copyright 2011 Mark Cavage All rights reserved. @@ -119001,7 +127210,7 @@ Reader.prototype._readTag = function (tag) { module.exports = Reader; }).call(this,require("buffer").Buffer) -},{"./errors":144,"./types":147,"assert":180,"buffer":185}],147:[function(require,module,exports){ +},{"./errors":147,"./types":150,"assert":183,"buffer":188}],150:[function(require,module,exports){ // Copyright 2011 Mark Cavage All rights reserved. @@ -119039,7 +127248,7 @@ module.exports = { Context: 128 }; -},{}],148:[function(require,module,exports){ +},{}],151:[function(require,module,exports){ // Copyright 2011 Mark Cavage All rights reserved. // If you have no idea what ASN.1 or BER is, see this: @@ -119058,7 +127267,7 @@ module.exports = { BerReader: Ber.Reader, }; -},{"./ber/index":145}],149:[function(require,module,exports){ +},{"./ber/index":148}],152:[function(require,module,exports){ var _ = require('../utils')._; var utils = require('../utils'); @@ -119131,7 +127340,7 @@ module.exports = { } }; -},{"../utils":157}],150:[function(require,module,exports){ +},{"../utils":160}],153:[function(require,module,exports){ var _ = require('../utils')._; module.exports = { @@ -119164,7 +127373,7 @@ module.exports = { }, }; -},{"../utils":157,"./components":149,"./pkcs1":151,"./pkcs8":152}],151:[function(require,module,exports){ +},{"../utils":160,"./components":152,"./pkcs1":154,"./pkcs8":155}],154:[function(require,module,exports){ (function (Buffer){ var ber = require('../asn1/index').Ber; var _ = require('../utils')._; @@ -119316,7 +127525,7 @@ module.exports = { }; }).call(this,require("buffer").Buffer) -},{"../asn1/index":148,"../utils":157,"buffer":185}],152:[function(require,module,exports){ +},{"../asn1/index":151,"../utils":160,"buffer":188}],155:[function(require,module,exports){ (function (Buffer){ var ber = require('../asn1/index').Ber; var _ = require('../utils')._; @@ -119507,7 +127716,7 @@ module.exports = { }; }).call(this,require("buffer").Buffer) -},{"../asn1/index":148,"../utils":157,"buffer":185}],153:[function(require,module,exports){ +},{"../asn1/index":151,"../utils":160,"buffer":188}],156:[function(require,module,exports){ (function (Buffer){ /* * Basic JavaScript BN library - subset useful for RSA encryption. @@ -120763,7 +128972,7 @@ BigInteger.prototype.square = bnSquare; module.exports = BigInteger; }).call(this,require("buffer").Buffer) -},{"../utils":157,"buffer":185}],154:[function(require,module,exports){ +},{"../utils":160,"buffer":188}],157:[function(require,module,exports){ /* * RSA Encryption / Decryption with PKCS1 v2 Padding. * @@ -120912,7 +129121,7 @@ module.exports.Key = (function () { })(); -},{"../schemes/schemes.js":156,"../utils":157,"../utils.js":157,"./jsbn.js":153}],155:[function(require,module,exports){ +},{"../schemes/schemes.js":159,"../utils":160,"../utils.js":160,"./jsbn.js":156}],158:[function(require,module,exports){ (function (Buffer){ /** * PKCS1 padding and signature scheme @@ -121092,7 +129301,7 @@ function wordArrayToBuffer(wordArray) { } }).call(this,require("buffer").Buffer) -},{"../../crypto-js/crypto-js":124,"../libs/jsbn":153,"buffer":185,"constants":187}],156:[function(require,module,exports){ +},{"../../crypto-js/crypto-js":127,"../libs/jsbn":156,"buffer":188,"constants":190}],159:[function(require,module,exports){ module.exports = { pkcs1: require('./pkcs1'), @@ -121115,7 +129324,7 @@ module.exports = { } }; -},{"./pkcs1":155}],157:[function(require,module,exports){ +},{"./pkcs1":158}],160:[function(require,module,exports){ /* * Utils functions * @@ -121215,7 +129424,7 @@ module.exports.trimSurroundingText = function (data, opening, closing) { return data.substring(trimStartIndex, trimEndIndex); } -},{}],158:[function(require,module,exports){ +},{}],161:[function(require,module,exports){ 'use strict'; var replace = String.prototype.replace; @@ -121235,7 +129444,7 @@ module.exports = { RFC3986: 'RFC3986' }; -},{}],159:[function(require,module,exports){ +},{}],162:[function(require,module,exports){ 'use strict'; var stringify = require('./stringify'); @@ -121248,7 +129457,7 @@ module.exports = { stringify: stringify }; -},{"./formats":158,"./parse":160,"./stringify":161}],160:[function(require,module,exports){ +},{"./formats":161,"./parse":163,"./stringify":164}],163:[function(require,module,exports){ 'use strict'; var utils = require('./utils'); @@ -121492,7 +129701,7 @@ module.exports = function (str, opts) { return utils.compact(obj); }; -},{"./utils":162}],161:[function(require,module,exports){ +},{"./utils":165}],164:[function(require,module,exports){ 'use strict'; var utils = require('./utils'); @@ -121763,7 +129972,7 @@ module.exports = function (object, opts) { return joined.length > 0 ? prefix + joined : ''; }; -},{"./formats":158,"./utils":162}],162:[function(require,module,exports){ +},{"./formats":161,"./utils":165}],165:[function(require,module,exports){ 'use strict'; var has = Object.prototype.hasOwnProperty; @@ -121995,7 +130204,7 @@ module.exports = { merge: merge }; -},{}],163:[function(require,module,exports){ +},{}],166:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -122183,6 +130392,8 @@ module.exports = class stex extends Exchange { 'BITS': 'Bitcoinus', 'BITSW': 'BITS', 'BHD': 'Bithold', + 'BTH': 'Bithereum', + 'SBTC': 'SBTCT', // SiamBitcoin }, 'options': { 'parseOrderToPrecision': false, @@ -122924,6 +131135,7 @@ module.exports = class stex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -123220,7 +131432,7 @@ module.exports = class stex extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -123799,7 +132011,7 @@ module.exports = class stex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],164:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],167:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -123833,7 +132045,7 @@ module.exports = class surbitcoin extends foxbit { } }; -},{"./foxbit.js":84}],165:[function(require,module,exports){ +},{"./foxbit.js":87}],168:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -124801,6 +133013,7 @@ module.exports = class therock extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -124830,7 +133043,7 @@ module.exports = class therock extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -124875,7 +133088,7 @@ module.exports = class therock extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -124914,7 +133127,7 @@ module.exports = class therock extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -125066,7 +133279,7 @@ module.exports = class therock extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],166:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],169:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -125491,6 +133704,7 @@ module.exports = class tidebit extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -125610,7 +133824,7 @@ module.exports = class tidebit extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],167:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],170:[function(require,module,exports){ 'use strict'; const Exchange = require ('./base/Exchange'); @@ -126193,6 +134407,7 @@ module.exports = class tidex extends Exchange { 'lastTradeTimestamp': undefined, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': this.safeString (order, 'type'), 'price': price, 'stopPrice': undefined, @@ -126394,7 +134609,7 @@ module.exports = class tidex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],168:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],171:[function(require,module,exports){ 'use strict'; const Exchange = require ('./base/Exchange'); @@ -126857,16 +135072,19 @@ module.exports = class timex extends Exchange { async createOrder (symbol, type, side, amount, price = undefined, params = {}) { await this.loadMarkets (); const market = this.market (symbol); + const uppercaseSide = side.toUpperCase (); + const uppercaseType = type.toUpperCase (); const request = { 'symbol': market['id'], 'quantity': this.amountToPrecision (symbol, amount), - 'side': side.toUpperCase (), + 'side': uppercaseSide, + 'orderTypes': uppercaseType, // 'clientOrderId': '123', // 'expireIn': 1575523308, // in seconds // 'expireTime': 1575523308, // unix timestamp }; let query = params; - if (type === 'limit') { + if (uppercaseType === 'LIMIT') { request['price'] = this.priceToPrecision (symbol, price); const defaultExpireIn = this.safeInteger (this.options, 'expireIn'); const expireTime = this.safeValue (params, 'expireTime'); @@ -126876,7 +135094,7 @@ module.exports = class timex extends Exchange { } else if (expireIn !== undefined) { request['expireIn'] = expireIn; } else { - throw new InvalidOrder (this.id + ' createOrder method requires a expireTime or expireIn param for a ' + type + ' order, you can also set the expireIn exchange-wide option'); + throw new InvalidOrder (this.id + ' createOrder() method requires a expireTime or expireIn param for a ' + type + ' order, you can also set the expireIn exchange-wide option'); } query = this.omit (params, [ 'expireTime', 'expireIn' ]); } else { @@ -127579,6 +135797,7 @@ module.exports = class timex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -127631,7 +135850,7 @@ module.exports = class timex extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],169:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],172:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -127649,7 +135868,6 @@ module.exports = class upbit extends Exchange { 'countries': [ 'KR' ], 'version': 'v1', 'rateLimit': 1000, - 'certified': true, 'pro': true, // new metainfo interface 'has': { @@ -127855,7 +136073,7 @@ module.exports = class upbit extends Exchange { const walletLocked = this.safeValue (memberInfo, 'wallet_locked'); const locked = this.safeValue (memberInfo, 'locked'); let active = true; - if ((canWithdraw !== undefined) && canWithdraw) { + if ((canWithdraw !== undefined) && !canWithdraw) { active = false; } else if (walletState !== 'working') { active = false; @@ -128838,6 +137056,7 @@ module.exports = class upbit extends Exchange { 'symbol': market['symbol'], 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -129162,7 +137381,7 @@ module.exports = class upbit extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],170:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],173:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -129367,7 +137586,7 @@ module.exports = class vaultoro extends Exchange { } }; -},{"./base/Exchange":5}],171:[function(require,module,exports){ +},{"./base/Exchange":6}],174:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -129401,7 +137620,7 @@ module.exports = class vbtc extends foxbit { } }; -},{"./foxbit.js":84}],172:[function(require,module,exports){ +},{"./foxbit.js":87}],175:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -130460,6 +138679,7 @@ module.exports = class vcc extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -130741,7 +138961,7 @@ module.exports = class vcc extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7,"./base/functions/number":13}],173:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8,"./base/functions/number":14}],176:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -131800,7 +140020,7 @@ module.exports = class wavesexchange extends Exchange { this.checkRequiredDependencies (); this.checkRequiredKeys (); if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -132013,6 +140233,7 @@ module.exports = class wavesexchange extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -132409,7 +140630,7 @@ module.exports = class wavesexchange extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],174:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],177:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -133064,7 +141285,7 @@ module.exports = class whitebit extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],175:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],178:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -133436,7 +141657,7 @@ module.exports = class xbtce extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],176:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],179:[function(require,module,exports){ 'use strict'; const Exchange = require ('./base/Exchange'); @@ -133477,6 +141698,10 @@ module.exports = class xena extends Exchange { }, 'urls': { 'logo': 'https://user-images.githubusercontent.com/51840849/87489843-bb469280-c64c-11ea-91aa-69c6326506af.jpg', + 'test': { + 'public': 'https://trading.demo.xena.io/api', + 'private': 'https://api.demo.xena.io', + }, 'api': { 'public': 'https://trading.xena.exchange/api', 'private': 'https://api.xena.exchange', @@ -134397,6 +142622,7 @@ module.exports = class xena extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -134456,14 +142682,14 @@ module.exports = class xena extends Exchange { }; if ((type === 'limit') || (type === 'stop-limit')) { if (price === undefined) { - throw new InvalidOrder (this.id + ' createOrder requires a price argument for order type ' + type); + throw new InvalidOrder (this.id + ' createOrder() requires a price argument for order type ' + type); } request['price'] = this.priceToPrecision (symbol, price); } if ((type === 'stop') || (type === 'stop-limit')) { const stopPx = this.safeFloat (params, 'stopPx'); if (stopPx === undefined) { - throw new InvalidOrder (this.id + ' createOrder requires a stopPx param for order type ' + type); + throw new InvalidOrder (this.id + ' createOrder() requires a stopPx param for order type ' + type); } request['stopPx'] = this.priceToPrecision (symbol, stopPx); params = this.omit (params, 'stopPx'); @@ -134501,7 +142727,7 @@ module.exports = class xena extends Exchange { async editOrder (id, symbol, type, side, amount = undefined, price = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); await this.loadAccounts (); @@ -134556,7 +142782,7 @@ module.exports = class xena extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); await this.loadAccounts (); @@ -135153,7 +143379,7 @@ module.exports = class xena extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],177:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],180:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -135289,6 +143515,7 @@ module.exports = class yobit extends Exchange { 'LOCX': 'LOC', 'LUNYR': 'LUN', 'LUN': 'LunarCoin', // they just change the ticker if it is already taken + 'MASK': 'Yobit MASK', 'MDT': 'Midnight', 'NAV': 'NavajoCoin', 'NBT': 'NiceBytes', @@ -135305,6 +143532,7 @@ module.exports = class yobit extends Exchange { 'RCN': 'RCoin', 'REP': 'Republicoin', 'RUR': 'RUB', + 'SBTC': 'Super Bitcoin', 'TTC': 'TittieCoin', 'UNI': 'Universe', 'UST': 'Uservice', @@ -135751,6 +143979,7 @@ module.exports = class yobit extends Exchange { 'lastTradeTimestamp': undefined, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -135795,7 +144024,7 @@ module.exports = class yobit extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a `symbol` argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a `symbol` argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -135883,24 +144112,6 @@ module.exports = class yobit extends Exchange { }; } - calculateFee (symbol, type, side, amount, price, takerOrMaker = 'taker', params = {}) { - const market = this.markets[symbol]; - let key = 'quote'; - const rate = market[takerOrMaker]; - let cost = parseFloat (this.costToPrecision (symbol, amount * rate)); - if (side === 'sell') { - cost *= price; - } else { - key = 'base'; - } - return { - 'type': takerOrMaker, - 'currency': market[key], - 'rate': rate, - 'cost': cost, - }; - } - sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { let url = this.urls['api'][api]; const query = this.omit (params, this.extractParams (path)); @@ -135992,7 +144203,7 @@ module.exports = class yobit extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],178:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],181:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- @@ -136352,6 +144563,7 @@ module.exports = class zaif extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -136482,13 +144694,13 @@ module.exports = class zaif extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],179:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],182:[function(require,module,exports){ 'use strict'; // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { BadRequest, ExchangeError, ArgumentsRequired, AuthenticationError, InsufficientFunds, OrderNotFound, ExchangeNotAvailable, DDoSProtection, InvalidOrder } = require ('./base/errors'); +const { BadRequest, ExchangeError, ArgumentsRequired, AuthenticationError, InsufficientFunds, OrderNotFound, ExchangeNotAvailable, DDoSProtection, InvalidOrder, InvalidAddress } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -136507,15 +144719,19 @@ module.exports = class zb extends Exchange { 'createOrder': true, 'fetchBalance': true, 'fetchDepositAddress': true, + 'fetchDepositAddresses': true, + 'fetchDeposits': true, 'fetchMarkets': true, 'fetchOHLCV': true, 'fetchOpenOrders': true, 'fetchOrder': true, 'fetchOrderBook': true, 'fetchOrders': true, + 'fetchClosedOrders': true, 'fetchTicker': true, 'fetchTickers': true, 'fetchTrades': true, + 'fetchWithdrawals': true, 'withdraw': true, }, 'timeframes': { @@ -136534,33 +144750,38 @@ module.exports = class zb extends Exchange { '1w': '1week', }, 'exceptions': { - // '1000': 'Successful operation', - '1001': ExchangeError, // 'General error message', - '1002': ExchangeError, // 'Internal error', - '1003': AuthenticationError, // 'Verification does not pass', - '1004': AuthenticationError, // 'Funding security password lock', - '1005': AuthenticationError, // 'Funds security password is incorrect, please confirm and re-enter.', - '1006': AuthenticationError, // 'Real-name certification pending approval or audit does not pass', - '1009': ExchangeNotAvailable, // 'This interface is under maintenance', - '2001': InsufficientFunds, // 'Insufficient CNY Balance', - '2002': InsufficientFunds, // 'Insufficient BTC Balance', - '2003': InsufficientFunds, // 'Insufficient LTC Balance', - '2005': InsufficientFunds, // 'Insufficient ETH Balance', - '2006': InsufficientFunds, // 'Insufficient ETC Balance', - '2007': InsufficientFunds, // 'Insufficient BTS Balance', - '2009': InsufficientFunds, // 'Account balance is not enough', - '3001': OrderNotFound, // 'Pending orders not found', - '3002': InvalidOrder, // 'Invalid price', - '3003': InvalidOrder, // 'Invalid amount', - '3004': AuthenticationError, // 'User does not exist', - '3005': BadRequest, // 'Invalid parameter', - '3006': AuthenticationError, // 'Invalid IP or inconsistent with the bound IP', - '3007': AuthenticationError, // 'The request time has expired', - '3008': OrderNotFound, // 'Transaction records not found', - '3009': InvalidOrder, // 'The price exceeds the limit', - '3011': InvalidOrder, // 'The entrusted price is abnormal, please modify it and place order again', - '4001': ExchangeNotAvailable, // 'API interface is locked or not enabled', - '4002': DDoSProtection, // 'Request too often', + 'exact': { + // '1000': 'Successful operation', + '1001': ExchangeError, // 'General error message', + '1002': ExchangeError, // 'Internal error', + '1003': AuthenticationError, // 'Verification does not pass', + '1004': AuthenticationError, // 'Funding security password lock', + '1005': AuthenticationError, // 'Funds security password is incorrect, please confirm and re-enter.', + '1006': AuthenticationError, // 'Real-name certification pending approval or audit does not pass', + '1009': ExchangeNotAvailable, // 'This interface is under maintenance', + '2001': InsufficientFunds, // 'Insufficient CNY Balance', + '2002': InsufficientFunds, // 'Insufficient BTC Balance', + '2003': InsufficientFunds, // 'Insufficient LTC Balance', + '2005': InsufficientFunds, // 'Insufficient ETH Balance', + '2006': InsufficientFunds, // 'Insufficient ETC Balance', + '2007': InsufficientFunds, // 'Insufficient BTS Balance', + '2009': InsufficientFunds, // 'Account balance is not enough', + '3001': OrderNotFound, // 'Pending orders not found', + '3002': InvalidOrder, // 'Invalid price', + '3003': InvalidOrder, // 'Invalid amount', + '3004': AuthenticationError, // 'User does not exist', + '3005': BadRequest, // 'Invalid parameter', + '3006': AuthenticationError, // 'Invalid IP or inconsistent with the bound IP', + '3007': AuthenticationError, // 'The request time has expired', + '3008': OrderNotFound, // 'Transaction records not found', + '3009': InvalidOrder, // 'The price exceeds the limit', + '3011': InvalidOrder, // 'The entrusted price is abnormal, please modify it and place order again', + '4001': ExchangeNotAvailable, // 'API interface is locked or not enabled', + '4002': DDoSProtection, // 'Request too often', + }, + 'broad': { + '提币地址有误,请先添加提币地址。': InvalidAddress, // {"code":1001,"message":"提币地址有误,请先添加提币地址。"} + }, }, 'urls': { 'logo': 'https://user-images.githubusercontent.com/1294454/32859187-cd5214f0-ca5e-11e7-967d-96568e2e2bd1.jpg', @@ -136587,20 +144808,28 @@ module.exports = class zb extends Exchange { 'get': [ // spot API 'order', + 'orderMoreV2', 'cancelOrder', 'getOrder', 'getOrders', 'getOrdersNew', 'getOrdersIgnoreTradeType', 'getUnfinishedOrdersIgnoreTradeType', + 'getFinishedAndPartialOrders', 'getAccountInfo', 'getUserAddress', + 'getPayinAddress', 'getWithdrawAddress', 'getWithdrawRecord', 'getChargeRecord', 'getCnyWithdrawRecord', 'getCnyChargeRecord', 'withdraw', + // sub accounts + 'addSubUser', + 'getSubUserList', + 'doTransferFunds', + 'createSubUserKey', // leverage API 'getLeverAssetsInfo', 'getLeverBills', @@ -136611,8 +144840,21 @@ module.exports = class zb extends Exchange { 'getLoans', 'getLoanRecords', 'borrow', + 'autoBorrow', 'repay', + 'doAllRepay', 'getRepayments', + 'getFinanceRecords', + 'changeInvestMark', + 'changeLoop', + // cross API + 'getCrossAssets', + 'getCrossBills', + 'transferInCross', + 'transferOutCross', + 'doCrossLoan', + 'doCrossRepay', + 'getCrossRepayRecords', ], }, }, @@ -136730,8 +144972,96 @@ module.exports = class zb extends Exchange { return this.parseBalance (result); } - getMarketFieldName () { - return 'market'; + parseDepositAddress (depositAddress, currency = undefined) { + // + // fetchDepositAddress + // + // { + // "key": "0x0af7f36b8f09410f3df62c81e5846da673d4d9a9" + // } + // + // fetchDepositAddresses + // + // { + // "blockChain": "btc", + // "isUseMemo": false, + // "address": "1LL5ati6pXHZnTGzHSA3rWdqi4mGGXudwM", + // "canWithdraw": true, + // "canDeposit": true + // } + // { + // "blockChain": "bts", + // "isUseMemo": true, + // "account": "btstest", + // "memo": "123", + // "canWithdraw": true, + // "canDeposit": true + // } + // + let address = this.safeString (depositAddress, 'key'); + let tag = undefined; + const memo = this.safeString (depositAddress, 'memo'); + if (memo !== undefined) { + tag = memo; + } else if (address.indexOf ('_') >= 0) { + const parts = address.split ('_'); + address = parts[0]; // WARNING: MAY BE tag_address INSTEAD OF address_tag FOR SOME CURRENCIES!! + tag = parts[1]; + } + const currencyId = this.safeString (depositAddress, 'blockChain'); + const code = this.safeCurrencyCode (currencyId, currency); + return { + 'currency': code, + 'address': address, + 'tag': tag, + 'info': depositAddress, + }; + } + + parseDepositAddresses (addresses, codes = undefined) { + let result = []; + for (let i = 0; i < addresses.length; i++) { + const address = this.parseDepositAddress (addresses[i]); + result.push (address); + } + if (codes) { + result = this.filterByArray (result, 'currency', codes); + } + return this.indexBy (result, 'currency'); + } + + async fetchDepositAddresses (codes = undefined, params = {}) { + await this.loadMarkets (); + const response = await this.privateGetGetPayinAddress (params); + // + // { + // "code": 1000, + // "message": { + // "des": "success", + // "isSuc": true, + // "datas": [ + // { + // "blockChain": "btc", + // "isUseMemo": false, + // "address": "1LL5ati6pXHZnTGzHSA3rWdqi4mGGXudwM", + // "canWithdraw": true, + // "canDeposit": true + // }, + // { + // "blockChain": "bts", + // "isUseMemo": true, + // "account": "btstest", + // "memo": "123", + // "canWithdraw": true, + // "canDeposit": true + // }, + // ] + // } + // } + // + const message = this.safeValue (response, 'message', {}); + const datas = this.safeValue (message, 'datas', []); + return this.parseDepositAddresses (datas, codes); } async fetchDepositAddress (code, params = {}) { @@ -136741,27 +145071,29 @@ module.exports = class zb extends Exchange { 'currency': currency['id'], }; const response = await this.privateGetGetUserAddress (this.extend (request, params)); - let address = response['message']['datas']['key']; - let tag = undefined; - if (address.indexOf ('_') >= 0) { - const parts = address.split ('_'); - address = parts[0]; // WARNING: MAY BE tag_address INSTEAD OF address_tag FOR SOME CURRENCIES!! - tag = parts[1]; - } - return { - 'currency': code, - 'address': address, - 'tag': tag, - 'info': response, - }; + // + // { + // "code": 1000, + // "message": { + // "des": "success", + // "isSuc": true, + // "datas": { + // "key": "0x0af7f36b8f09410f3df62c81e5846da673d4d9a9" + // } + // } + // } + // + const message = this.safeValue (response, 'message', {}); + const datas = this.safeValue (message, 'datas', {}); + return this.parseDepositAddress (datas, currency); } async fetchOrderBook (symbol, limit = undefined, params = {}) { await this.loadMarkets (); const market = this.market (symbol); - const marketFieldName = this.getMarketFieldName (); - const request = {}; - request[marketFieldName] = market['id']; + const request = { + 'market': market['id'], + }; if (limit !== undefined) { request['size'] = limit; } @@ -136790,9 +145122,9 @@ module.exports = class zb extends Exchange { async fetchTicker (symbol, params = {}) { await this.loadMarkets (); const market = this.market (symbol); - const marketFieldName = this.getMarketFieldName (); - const request = {}; - request[marketFieldName] = market['id']; + const request = { + 'market': market['id'], + }; const response = await this.publicGetTicker (this.extend (request, params)); const ticker = response['ticker']; return this.parseTicker (ticker, market); @@ -136885,9 +145217,9 @@ module.exports = class zb extends Exchange { async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); const market = this.market (symbol); - const marketFieldName = this.getMarketFieldName (); - const request = {}; - request[marketFieldName] = market['id']; + const request = { + 'market': market['id'], + }; const response = await this.publicGetTrades (this.extend (request, params)); return this.parseTrades (response, market, since, limit); } @@ -136947,7 +145279,7 @@ module.exports = class zb extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = 50, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + 'fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + 'fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -136973,9 +145305,24 @@ module.exports = class zb extends Exchange { return this.parseOrders (response, market, since, limit); } + async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + 'fetchClosedOrders() requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'currency': market['id'], + 'pageIndex': 1, // default pageIndex is 1 + 'pageSize': 10, // default pageSize is 10, doesn't work with other values now + }; + const response = await this.privateGetGetFinishedAndPartialOrders (this.extend (request, params)); + return this.parseOrders (response, market, since, limit); + } + async fetchOpenOrders (symbol = undefined, since = undefined, limit = 10, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + 'fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + 'fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -137002,29 +145349,26 @@ module.exports = class zb extends Exchange { } parseOrder (order, market = undefined) { - // - // fetchOrder // // { - // 'total_amount': 0.01, - // 'id': '20180910244276459', - // 'price': 180.0, - // 'trade_date': 1536576744960, - // 'status': 2, - // 'trade_money': '1.96742', - // 'trade_amount': 0.01, - // 'type': 0, - // 'currency': 'eth_usdt' - // } + // acctType: 0, + // currency: 'btc_usdt', + // fees: 3.6e-7, + // id: '202102282829772463', + // price: 45177.5, + // status: 2, + // total_amount: 0.0002, + // trade_amount: 0.0002, + // trade_date: 1614515104998, + // trade_money: 8.983712, + // type: 1, + // useZbFee: false + // }, // let side = this.safeInteger (order, 'type'); side = (side === 1) ? 'buy' : 'sell'; const type = 'limit'; // market order is not availalbe in ZB - let timestamp = undefined; - const createDateField = this.getCreateDateField (); - if (createDateField in order) { - timestamp = order[createDateField]; - } + const timestamp = this.safeInteger (order, 'trade_date'); const marketId = this.safeString (order, 'currency'); const symbol = this.safeSymbol (marketId, market, '_'); const price = this.safeFloat (order, 'price'); @@ -137043,6 +145387,21 @@ module.exports = class zb extends Exchange { average = cost / filled; } const id = this.safeString (order, 'id'); + const feeCost = this.safeFloat (order, 'fees'); + let fee = undefined; + if (feeCost !== undefined) { + let feeCurrency = undefined; + const zbFees = this.safeValue (order, 'useZbFee'); + if (zbFees === true) { + feeCurrency = 'ZB'; + } else if (market !== undefined) { + feeCurrency = (side === 'sell') ? market['quote'] : market['base']; + } + fee = { + 'cost': feeCost, + 'currency': feeCurrency, + }; + } return { 'info': order, 'id': id, @@ -137053,6 +145412,7 @@ module.exports = class zb extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -137062,7 +145422,7 @@ module.exports = class zb extends Exchange { 'filled': filled, 'remaining': remaining, 'status': status, - 'fee': undefined, + 'fee': fee, 'trades': undefined, }; } @@ -137077,8 +145437,241 @@ module.exports = class zb extends Exchange { return this.safeString (statuses, status, status); } - getCreateDateField () { - return 'trade_date'; + parseTransactionStatus (status) { + const statuses = { + '0': 'pending', // submitted, pending confirmation + '1': 'failed', + '2': 'ok', + '3': 'canceled', + '5': 'ok', // confirmed + }; + return this.safeString (statuses, status, status); + } + + parseTransaction (transaction, currency = undefined) { + // + // withdraw + // + // { + // "code": 1000, + // "message": "success", + // "id": "withdrawalId" + // } + // + // fetchWithdrawals + // + // { + // "amount": 0.01, + // "fees": 0.001, + // "id": 2016042556231, + // "manageTime": 1461579340000, + // "status": 3, + // "submitTime": 1461579288000, + // "toAddress": "14fxEPirL9fyfw1i9EF439Pq6gQ5xijUmp", + // } + // + // fetchDeposits + // + // { + // "address": "1FKN1DZqCm8HaTujDioRL2Aezdh7Qj7xxx", + // "amount": "1.00000000", + // "confirmTimes": 1, + // "currency": "BTC", + // "description": "Successfully Confirm", + // "hash": "7ce842de187c379abafadd64a5fe66c5c61c8a21fb04edff9532234a1dae6xxx", + // "id": 558, + // "itransfer": 1, + // "status": 2, + // "submit_time": "2016-12-07 18:51:57", + // } + // + const id = this.safeString (transaction, 'id'); + const txid = this.safeString (transaction, 'hash'); + const amount = this.safeFloat (transaction, 'amount'); + let timestamp = this.parse8601 (this.safeString (transaction, 'submit_time')); + timestamp = this.safeInteger (transaction, 'submitTime', timestamp); + let address = this.safeString2 (transaction, 'toAddress', 'address'); + let tag = undefined; + if (address !== undefined) { + const parts = address.split ('_'); + address = this.safeString (parts, 0); + tag = this.safeString (parts, 1); + } + const confirmTimes = this.safeInteger (transaction, 'confirmTimes'); + const updated = this.safeInteger (transaction, 'manageTime'); + let type = undefined; + const currencyId = this.safeString (transaction, 'currency'); + const code = this.safeCurrencyCode (currencyId, currency); + if (address !== undefined) { + type = (confirmTimes === undefined) ? 'withdrawal' : 'deposit'; + } + const status = this.parseTransactionStatus (this.safeString (transaction, 'status')); + let fee = undefined; + const feeCost = this.safeFloat (transaction, 'fees'); + if (feeCost !== undefined) { + fee = { + 'cost': feeCost, + 'currency': code, + }; + } + return { + 'info': transaction, + 'id': id, + 'txid': txid, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'addressFrom': undefined, + 'address': address, + 'addressTo': address, + 'tagFrom': undefined, + 'tag': tag, + 'tagTo': tag, + 'type': type, + 'amount': amount, + 'currency': code, + 'status': status, + 'updated': updated, + 'fee': fee, + }; + } + + async withdraw (code, amount, address, tag = undefined, params = {}) { + const password = this.safeString (params, 'safePwd', this.password); + if (password === undefined) { + throw new ArgumentsRequired (this.id + ' withdraw() requires exchange.password or a safePwd parameter'); + } + const fees = this.safeFloat (params, 'fees'); + if (fees === undefined) { + throw new ArgumentsRequired (this.id + ' withdraw() requires a fees parameter'); + } + this.checkAddress (address); + await this.loadMarkets (); + const currency = this.currency (code); + if (tag !== undefined) { + address += '_' + tag; + } + const request = { + 'amount': this.currencyToPrecision (code, amount), + 'currency': currency['id'], + 'fees': this.currencyToPrecision (code, fees), + // 'itransfer': 0, // agree for an internal transfer, 0 disagree, 1 agree, the default is to disagree + 'method': 'withdraw', + 'receiveAddr': address, + 'safePwd': password, + }; + const response = await this.privateGetWithdraw (this.extend (request, params)); + // + // { + // "code": 1000, + // "message": "success", + // "id": "withdrawalId" + // } + // + const transaction = this.parseTransaction (response, currency); + return this.extend (transaction, { + 'type': 'withdrawal', + 'address': address, + 'addressTo': address, + 'amount': amount, + }); + } + + async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'currency': currency['id'], + // 'pageIndex': 1, + // 'pageSize': limit, + }; + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + request['currency'] = currency['id']; + } + if (limit !== undefined) { + request['pageSize'] = limit; + } + const response = await this.privateGetGetWithdrawRecord (this.extend (request, params)); + // + // { + // "code": 1000, + // "message": { + // "des": "success", + // "isSuc": true, + // "datas": { + // "list": [ + // { + // "amount": 0.01, + // "fees": 0.001, + // "id": 2016042556231, + // "manageTime": 1461579340000, + // "status": 3, + // "submitTime": 1461579288000, + // "toAddress": "14fxEPirL9fyfw1i9EF439Pq6gQ5xijUmp", + // }, + // ], + // "pageIndex": 1, + // "pageSize": 10, + // "totalCount": 4, + // "totalPage": 1 + // } + // } + // } + // + const message = this.safeValue (response, 'message', {}); + const datas = this.safeValue (message, 'datas', {}); + const withdrawals = this.safeValue (datas, 'list', []); + return this.parseTransactions (withdrawals, currency, since, limit); + } + + async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'currency': currency['id'], + // 'pageIndex': 1, + // 'pageSize': limit, + }; + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + request['currency'] = currency['id']; + } + if (limit !== undefined) { + request['pageSize'] = limit; + } + const response = await this.privateGetGetChargeRecord (this.extend (request, params)); + // + // { + // "code": 1000, + // "message": { + // "des": "success", + // "isSuc": true, + // "datas": { + // "list": [ + // { + // "address": "1FKN1DZqCm8HaTujDioRL2Aezdh7Qj7xxx", + // "amount": "1.00000000", + // "confirmTimes": 1, + // "currency": "BTC", + // "description": "Successfully Confirm", + // "hash": "7ce842de187c379abafadd64a5fe66c5c61c8a21fb04edff9532234a1dae6xxx", + // "id": 558, + // "itransfer": 1, + // "status": 2, + // "submit_time": "2016-12-07 18:51:57", + // }, + // ], + // "pageIndex": 1, + // "pageSize": 10, + // "total": 8 + // } + // } + // } + // + const message = this.safeValue (response, 'message', {}); + const datas = this.safeValue (message, 'datas', {}); + const deposits = this.safeValue (datas, 'list', []); + return this.parseTransactions (deposits, currency, since, limit); } nonce () { @@ -137114,9 +145707,10 @@ module.exports = class zb extends Exchange { } if (body[0] === '{') { const feedback = this.id + ' ' + body; + this.throwBroadlyMatchedException (this.exceptions['broad'], body, feedback); if ('code' in response) { const code = this.safeString (response, 'code'); - this.throwExactlyMatchedException (this.exceptions, code, feedback); + this.throwExactlyMatchedException (this.exceptions['exact'], code, feedback); if (code !== '1000') { throw new ExchangeError (feedback); } @@ -137137,7 +145731,7 @@ module.exports = class zb extends Exchange { } }; -},{"./base/Exchange":5,"./base/errors":7}],180:[function(require,module,exports){ +},{"./base/Exchange":6,"./base/errors":8}],183:[function(require,module,exports){ (function (global){ 'use strict'; @@ -137631,7 +146225,7 @@ var objectKeys = Object.keys || function (obj) { }; }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"util/":238}],181:[function(require,module,exports){ +},{"util/":241}],184:[function(require,module,exports){ 'use strict' exports.byteLength = byteLength @@ -137747,9 +146341,9 @@ function fromByteArray (uint8) { return parts.join('') } -},{}],182:[function(require,module,exports){ +},{}],185:[function(require,module,exports){ -},{}],183:[function(require,module,exports){ +},{}],186:[function(require,module,exports){ (function (process,Buffer){ 'use strict'; /* eslint camelcase: "off" */ @@ -138161,7 +146755,7 @@ Zlib.prototype._reset = function () { exports.Zlib = Zlib; }).call(this,require('_process'),require("buffer").Buffer) -},{"_process":207,"assert":180,"buffer":185,"pako/lib/zlib/constants":197,"pako/lib/zlib/deflate.js":199,"pako/lib/zlib/inflate.js":201,"pako/lib/zlib/zstream":205}],184:[function(require,module,exports){ +},{"_process":210,"assert":183,"buffer":188,"pako/lib/zlib/constants":200,"pako/lib/zlib/deflate.js":202,"pako/lib/zlib/inflate.js":204,"pako/lib/zlib/zstream":208}],187:[function(require,module,exports){ (function (process){ 'use strict'; @@ -138773,7 +147367,7 @@ util.inherits(DeflateRaw, Zlib); util.inherits(InflateRaw, Zlib); util.inherits(Unzip, Zlib); }).call(this,require('_process')) -},{"./binding":183,"_process":207,"assert":180,"buffer":185,"stream":226,"util":238}],185:[function(require,module,exports){ +},{"./binding":186,"_process":210,"assert":183,"buffer":188,"stream":229,"util":241}],188:[function(require,module,exports){ /*! * The buffer module from node.js, for the browser. * @@ -140489,7 +149083,7 @@ function numberIsNaN (obj) { return obj !== obj // eslint-disable-line no-self-compare } -},{"base64-js":181,"ieee754":191}],186:[function(require,module,exports){ +},{"base64-js":184,"ieee754":194}],189:[function(require,module,exports){ module.exports = { "100": "Continue", "101": "Switching Protocols", @@ -140555,7 +149149,7 @@ module.exports = { "511": "Network Authentication Required" } -},{}],187:[function(require,module,exports){ +},{}],190:[function(require,module,exports){ module.exports={ "O_RDONLY": 0, "O_WRONLY": 1, @@ -140766,7 +149360,7 @@ module.exports={ "UV_UDP_REUSEADDR": 4 } -},{}],188:[function(require,module,exports){ +},{}],191:[function(require,module,exports){ (function (Buffer){ // Copyright Joyent, Inc. and other Node contributors. // @@ -140877,7 +149471,7 @@ function objectToString(o) { } }).call(this,{"isBuffer":require("../../is-buffer/index.js")}) -},{"../../is-buffer/index.js":193}],189:[function(require,module,exports){ +},{"../../is-buffer/index.js":196}],192:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -141181,7 +149775,7 @@ function isUndefined(arg) { return arg === void 0; } -},{}],190:[function(require,module,exports){ +},{}],193:[function(require,module,exports){ var http = require('http') var url = require('url') @@ -141214,7 +149808,7 @@ function validateParams (params) { return params } -},{"http":227,"url":233}],191:[function(require,module,exports){ +},{"http":230,"url":236}],194:[function(require,module,exports){ exports.read = function (buffer, offset, isLE, mLen, nBytes) { var e, m var eLen = nBytes * 8 - mLen - 1 @@ -141300,7 +149894,7 @@ exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { buffer[offset + i - d] |= s * 128 } -},{}],192:[function(require,module,exports){ +},{}],195:[function(require,module,exports){ if (typeof Object.create === 'function') { // implementation from standard node.js 'util' module module.exports = function inherits(ctor, superCtor) { @@ -141325,7 +149919,7 @@ if (typeof Object.create === 'function') { } } -},{}],193:[function(require,module,exports){ +},{}],196:[function(require,module,exports){ /*! * Determine if an object is a Buffer * @@ -141348,14 +149942,14 @@ function isSlowBuffer (obj) { return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0)) } -},{}],194:[function(require,module,exports){ +},{}],197:[function(require,module,exports){ var toString = {}.toString; module.exports = Array.isArray || function (arr) { return toString.call(arr) == '[object Array]'; }; -},{}],195:[function(require,module,exports){ +},{}],198:[function(require,module,exports){ 'use strict'; @@ -141462,7 +150056,7 @@ exports.setTyped = function (on) { exports.setTyped(TYPED_OK); -},{}],196:[function(require,module,exports){ +},{}],199:[function(require,module,exports){ 'use strict'; // Note: adler32 takes 12% for level 0 and 2% for level 6. @@ -141515,7 +150109,7 @@ function adler32(adler, buf, len, pos) { module.exports = adler32; -},{}],197:[function(require,module,exports){ +},{}],200:[function(require,module,exports){ 'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler @@ -141585,7 +150179,7 @@ module.exports = { //Z_NULL: null // Use -1 or null inline, depending on var type }; -},{}],198:[function(require,module,exports){ +},{}],201:[function(require,module,exports){ 'use strict'; // Note: we can't get significant speed boost here. @@ -141646,7 +150240,7 @@ function crc32(crc, buf, len, pos) { module.exports = crc32; -},{}],199:[function(require,module,exports){ +},{}],202:[function(require,module,exports){ 'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler @@ -143522,7 +152116,7 @@ exports.deflatePrime = deflatePrime; exports.deflateTune = deflateTune; */ -},{"../utils/common":195,"./adler32":196,"./crc32":198,"./messages":203,"./trees":204}],200:[function(require,module,exports){ +},{"../utils/common":198,"./adler32":199,"./crc32":201,"./messages":206,"./trees":207}],203:[function(require,module,exports){ 'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler @@ -143869,7 +152463,7 @@ module.exports = function inflate_fast(strm, start) { return; }; -},{}],201:[function(require,module,exports){ +},{}],204:[function(require,module,exports){ 'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler @@ -145427,7 +154021,7 @@ exports.inflateSyncPoint = inflateSyncPoint; exports.inflateUndermine = inflateUndermine; */ -},{"../utils/common":195,"./adler32":196,"./crc32":198,"./inffast":200,"./inftrees":202}],202:[function(require,module,exports){ +},{"../utils/common":198,"./adler32":199,"./crc32":201,"./inffast":203,"./inftrees":205}],205:[function(require,module,exports){ 'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler @@ -145772,7 +154366,7 @@ module.exports = function inflate_table(type, lens, lens_index, codes, table, ta return 0; }; -},{"../utils/common":195}],203:[function(require,module,exports){ +},{"../utils/common":198}],206:[function(require,module,exports){ 'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler @@ -145806,7 +154400,7 @@ module.exports = { '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */ }; -},{}],204:[function(require,module,exports){ +},{}],207:[function(require,module,exports){ 'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler @@ -147028,7 +155622,7 @@ exports._tr_flush_block = _tr_flush_block; exports._tr_tally = _tr_tally; exports._tr_align = _tr_align; -},{"../utils/common":195}],205:[function(require,module,exports){ +},{"../utils/common":198}],208:[function(require,module,exports){ 'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler @@ -147077,7 +155671,7 @@ function ZStream() { module.exports = ZStream; -},{}],206:[function(require,module,exports){ +},{}],209:[function(require,module,exports){ (function (process){ 'use strict'; @@ -147124,7 +155718,7 @@ function nextTick(fn, arg1, arg2, arg3) { } }).call(this,require('_process')) -},{"_process":207}],207:[function(require,module,exports){ +},{"_process":210}],210:[function(require,module,exports){ // shim for using process in browser var process = module.exports = {}; @@ -147310,7 +155904,7 @@ process.chdir = function (dir) { }; process.umask = function() { return 0; }; -},{}],208:[function(require,module,exports){ +},{}],211:[function(require,module,exports){ (function (global){ /*! https://mths.be/punycode v1.4.1 by @mathias */ ;(function(root) { @@ -147847,7 +156441,7 @@ process.umask = function() { return 0; }; }(this)); }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],209:[function(require,module,exports){ +},{}],212:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -147933,7 +156527,7 @@ var isArray = Array.isArray || function (xs) { return Object.prototype.toString.call(xs) === '[object Array]'; }; -},{}],210:[function(require,module,exports){ +},{}],213:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -148020,16 +156614,16 @@ var objectKeys = Object.keys || function (obj) { return res; }; -},{}],211:[function(require,module,exports){ +},{}],214:[function(require,module,exports){ 'use strict'; exports.decode = exports.parse = require('./decode'); exports.encode = exports.stringify = require('./encode'); -},{"./decode":209,"./encode":210}],212:[function(require,module,exports){ +},{"./decode":212,"./encode":213}],215:[function(require,module,exports){ module.exports = require('./lib/_stream_duplex.js'); -},{"./lib/_stream_duplex.js":213}],213:[function(require,module,exports){ +},{"./lib/_stream_duplex.js":216}],216:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -148154,7 +156748,7 @@ function forEach(xs, f) { f(xs[i], i); } } -},{"./_stream_readable":215,"./_stream_writable":217,"core-util-is":188,"inherits":192,"process-nextick-args":206}],214:[function(require,module,exports){ +},{"./_stream_readable":218,"./_stream_writable":220,"core-util-is":191,"inherits":195,"process-nextick-args":209}],217:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -148202,7 +156796,7 @@ function PassThrough(options) { PassThrough.prototype._transform = function (chunk, encoding, cb) { cb(null, chunk); }; -},{"./_stream_transform":216,"core-util-is":188,"inherits":192}],215:[function(require,module,exports){ +},{"./_stream_transform":219,"core-util-is":191,"inherits":195}],218:[function(require,module,exports){ (function (process,global){ // Copyright Joyent, Inc. and other Node contributors. // @@ -149212,7 +157806,7 @@ function indexOf(xs, x) { return -1; } }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./_stream_duplex":213,"./internal/streams/BufferList":218,"./internal/streams/destroy":219,"./internal/streams/stream":220,"_process":207,"core-util-is":188,"events":189,"inherits":192,"isarray":194,"process-nextick-args":206,"safe-buffer":225,"string_decoder/":231,"util":182}],216:[function(require,module,exports){ +},{"./_stream_duplex":216,"./internal/streams/BufferList":221,"./internal/streams/destroy":222,"./internal/streams/stream":223,"_process":210,"core-util-is":191,"events":192,"inherits":195,"isarray":197,"process-nextick-args":209,"safe-buffer":228,"string_decoder/":234,"util":185}],219:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -149427,7 +158021,7 @@ function done(stream, er, data) { return stream.push(null); } -},{"./_stream_duplex":213,"core-util-is":188,"inherits":192}],217:[function(require,module,exports){ +},{"./_stream_duplex":216,"core-util-is":191,"inherits":195}],220:[function(require,module,exports){ (function (process,global){ // Copyright Joyent, Inc. and other Node contributors. // @@ -150094,7 +158688,7 @@ Writable.prototype._destroy = function (err, cb) { cb(err); }; }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./_stream_duplex":213,"./internal/streams/destroy":219,"./internal/streams/stream":220,"_process":207,"core-util-is":188,"inherits":192,"process-nextick-args":206,"safe-buffer":225,"util-deprecate":235}],218:[function(require,module,exports){ +},{"./_stream_duplex":216,"./internal/streams/destroy":222,"./internal/streams/stream":223,"_process":210,"core-util-is":191,"inherits":195,"process-nextick-args":209,"safe-buffer":228,"util-deprecate":238}],221:[function(require,module,exports){ 'use strict'; /**/ @@ -150169,7 +158763,7 @@ module.exports = function () { return BufferList; }(); -},{"safe-buffer":225}],219:[function(require,module,exports){ +},{"safe-buffer":228}],222:[function(require,module,exports){ 'use strict'; /**/ @@ -150242,13 +158836,13 @@ module.exports = { destroy: destroy, undestroy: undestroy }; -},{"process-nextick-args":206}],220:[function(require,module,exports){ +},{"process-nextick-args":209}],223:[function(require,module,exports){ module.exports = require('events').EventEmitter; -},{"events":189}],221:[function(require,module,exports){ +},{"events":192}],224:[function(require,module,exports){ module.exports = require('./readable').PassThrough -},{"./readable":222}],222:[function(require,module,exports){ +},{"./readable":225}],225:[function(require,module,exports){ exports = module.exports = require('./lib/_stream_readable.js'); exports.Stream = exports; exports.Readable = exports; @@ -150257,13 +158851,13 @@ exports.Duplex = require('./lib/_stream_duplex.js'); exports.Transform = require('./lib/_stream_transform.js'); exports.PassThrough = require('./lib/_stream_passthrough.js'); -},{"./lib/_stream_duplex.js":213,"./lib/_stream_passthrough.js":214,"./lib/_stream_readable.js":215,"./lib/_stream_transform.js":216,"./lib/_stream_writable.js":217}],223:[function(require,module,exports){ +},{"./lib/_stream_duplex.js":216,"./lib/_stream_passthrough.js":217,"./lib/_stream_readable.js":218,"./lib/_stream_transform.js":219,"./lib/_stream_writable.js":220}],226:[function(require,module,exports){ module.exports = require('./readable').Transform -},{"./readable":222}],224:[function(require,module,exports){ +},{"./readable":225}],227:[function(require,module,exports){ module.exports = require('./lib/_stream_writable.js'); -},{"./lib/_stream_writable.js":217}],225:[function(require,module,exports){ +},{"./lib/_stream_writable.js":220}],228:[function(require,module,exports){ /* eslint-disable node/no-deprecated-api */ var buffer = require('buffer') var Buffer = buffer.Buffer @@ -150327,7 +158921,7 @@ SafeBuffer.allocUnsafeSlow = function (size) { return buffer.SlowBuffer(size) } -},{"buffer":185}],226:[function(require,module,exports){ +},{"buffer":188}],229:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -150456,7 +159050,7 @@ Stream.prototype.pipe = function(dest, options) { return dest; }; -},{"events":189,"inherits":192,"readable-stream/duplex.js":212,"readable-stream/passthrough.js":221,"readable-stream/readable.js":222,"readable-stream/transform.js":223,"readable-stream/writable.js":224}],227:[function(require,module,exports){ +},{"events":192,"inherits":195,"readable-stream/duplex.js":215,"readable-stream/passthrough.js":224,"readable-stream/readable.js":225,"readable-stream/transform.js":226,"readable-stream/writable.js":227}],230:[function(require,module,exports){ (function (global){ var ClientRequest = require('./lib/request') var extend = require('xtend') @@ -150538,7 +159132,7 @@ http.METHODS = [ 'UNSUBSCRIBE' ] }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./lib/request":229,"builtin-status-codes":186,"url":233,"xtend":239}],228:[function(require,module,exports){ +},{"./lib/request":232,"builtin-status-codes":189,"url":236,"xtend":242}],231:[function(require,module,exports){ (function (global){ exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream) @@ -150611,7 +159205,7 @@ function isFunction (value) { xhr = null // Help gc }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],229:[function(require,module,exports){ +},{}],232:[function(require,module,exports){ (function (process,global,Buffer){ var capability = require('./capability') var inherits = require('inherits') @@ -150921,7 +159515,7 @@ var unsafeHeaders = [ ] }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer) -},{"./capability":228,"./response":230,"_process":207,"buffer":185,"inherits":192,"readable-stream":222,"to-arraybuffer":232}],230:[function(require,module,exports){ +},{"./capability":231,"./response":233,"_process":210,"buffer":188,"inherits":195,"readable-stream":225,"to-arraybuffer":235}],233:[function(require,module,exports){ (function (process,global,Buffer){ var capability = require('./capability') var inherits = require('inherits') @@ -151107,7 +159701,7 @@ IncomingMessage.prototype._onXHRProgress = function () { } }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer) -},{"./capability":228,"_process":207,"buffer":185,"inherits":192,"readable-stream":222}],231:[function(require,module,exports){ +},{"./capability":231,"_process":210,"buffer":188,"inherits":195,"readable-stream":225}],234:[function(require,module,exports){ 'use strict'; var Buffer = require('safe-buffer').Buffer; @@ -151380,7 +159974,7 @@ function simpleWrite(buf) { function simpleEnd(buf) { return buf && buf.length ? this.write(buf) : ''; } -},{"safe-buffer":225}],232:[function(require,module,exports){ +},{"safe-buffer":228}],235:[function(require,module,exports){ var Buffer = require('buffer').Buffer module.exports = function (buf) { @@ -151409,7 +160003,7 @@ module.exports = function (buf) { } } -},{"buffer":185}],233:[function(require,module,exports){ +},{"buffer":188}],236:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -152143,7 +160737,7 @@ Url.prototype.parseHost = function() { if (host) this.hostname = host; }; -},{"./util":234,"punycode":208,"querystring":211}],234:[function(require,module,exports){ +},{"./util":237,"punycode":211,"querystring":214}],237:[function(require,module,exports){ 'use strict'; module.exports = { @@ -152161,7 +160755,7 @@ module.exports = { } }; -},{}],235:[function(require,module,exports){ +},{}],238:[function(require,module,exports){ (function (global){ /** @@ -152232,16 +160826,16 @@ function config (name) { } }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],236:[function(require,module,exports){ -arguments[4][192][0].apply(exports,arguments) -},{"dup":192}],237:[function(require,module,exports){ +},{}],239:[function(require,module,exports){ +arguments[4][195][0].apply(exports,arguments) +},{"dup":195}],240:[function(require,module,exports){ module.exports = function isBuffer(arg) { return arg && typeof arg === 'object' && typeof arg.copy === 'function' && typeof arg.fill === 'function' && typeof arg.readUInt8 === 'function'; } -},{}],238:[function(require,module,exports){ +},{}],241:[function(require,module,exports){ (function (process,global){ // Copyright Joyent, Inc. and other Node contributors. // @@ -152831,7 +161425,7 @@ function hasOwnProperty(obj, prop) { } }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./support/isBuffer":237,"_process":207,"inherits":236}],239:[function(require,module,exports){ +},{"./support/isBuffer":240,"_process":210,"inherits":239}],242:[function(require,module,exports){ module.exports = extend var hasOwnProperty = Object.prototype.hasOwnProperty; diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/aax.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/aax.js new file mode 100644 index 000000000..9c71e445f --- /dev/null +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/aax.js @@ -0,0 +1,1784 @@ +'use strict'; + +// ---------------------------------------------------------------------------- + +const Exchange = require ('./base/Exchange'); +const { ArgumentsRequired, AuthenticationError, ExchangeError, ExchangeNotAvailable, OrderNotFound, InvalidOrder, CancelPending, RateLimitExceeded, InsufficientFunds, BadRequest, BadSymbol, PermissionDenied } = require ('./base/errors'); +const { TICK_SIZE } = require ('./base/functions/number'); + +// ---------------------------------------------------------------------------- + +module.exports = class aax extends Exchange { + describe () { + return this.deepExtend (super.describe (), { + 'id': 'aax', + 'name': 'AAX', + 'countries': [ 'MT' ], // Malta + 'enableRateLimit': true, + 'rateLimit': 500, + 'version': 'v2', + 'hostname': 'aaxpro.com', // aax.com + 'certified': true, + 'has': { + 'cancelAllOrders': true, + 'cancelOrder': true, + 'createOrder': true, + 'editOrder': true, + 'fetchBalance': true, + 'fetchCanceledOrders': true, + 'fetchClosedOrders': true, + 'fetchDepositAddress': true, + 'fetchMarkets': true, + 'fetchMyTrades': true, + 'fetchOHLCV': true, + 'fetchOpenOrders': true, + 'fetchOrder': true, + 'fetchOrderBook': true, + 'fetchOrders': true, + 'fetchTicker': 'emulated', + 'fetchTickers': true, + 'fetchTrades': true, + }, + 'timeframes': { + '1m': '1m', + '5m': '5m', + '15m': '15m', + '30m': '30m', + '1h': '1h', + '2h': '2h', + '4h': '4h', + '12h': '12h', + '1d': '1d', + '3d': '3d', + '1w': '1w', + }, + 'urls': { + 'logo': 'https://user-images.githubusercontent.com/1294454/104140087-a27f2580-53c0-11eb-87c1-5d9e81208fe9.jpg', + 'test': { + 'v1': 'https://api.testnet.{hostname}/marketdata/v1', + 'public': 'https://api.testnet.{hostname}', + 'private': 'https://api.testnet.{hostname}', + }, + 'api': { + 'v1': 'https://api.{hostname}/marketdata/v1', + 'public': 'https://api.{hostname}', + 'private': 'https://api.{hostname}', + }, + 'www': 'https://www.aaxpro.com', // string website URL + 'doc': 'https://www.aaxpro.com/apidoc/index.html', + 'fees': 'https://www.aaxpro.com/en-US/fees/', + 'referral': 'https://www.aaxpro.com/invite/sign-up?inviteCode=JXGm5Fy7R2MB', + }, + 'api': { + 'v1': { + 'get': [ + 'getHistMarketData', // Get OHLC k line of specific market + ], + }, + 'public': { + // these endpoints are not documented + // 'get': [ + // 'order_book', // Get the order book of specified market + // 'order_book/{market}', + // 'trades', // Get recent trades on market, each trade is included only once Trades are sorted in reverse creation order. + // 'trades/{market}', + // 'tickers', // Get ticker of all markets + // 'tickers/{market}', // Get ticker of specific market + // ], + 'get': [ + 'announcement/maintenance', // System Maintenance Notice + 'instruments', // Retrieve all trading pairs information + 'market/orderbook', // Order Book + 'futures/position/openInterest', // Open Interest + 'market/tickers', // Get the Last 24h Market Summary + 'market/candles', // Get Current Candlestick + 'market/history/candles', // Get Current Candlestick + 'market/trades', // Get the Most Recent Trades + 'market/markPrice', // Get Current Mark Price + 'futures/funding/predictedFunding/{symbol}', // Get Predicted Funding Rate + 'futures/funding/prevFundingRate/{symbol}', // Get Last Funding Rate + 'market/candles/index', // Get Current Index Candlestick + ], + }, + 'private': { + 'get': [ + 'user/info', // Retrieve user information + 'account/balances', // Get Account Balances + 'account/deposit/address', // undocumented + 'spot/trades', // Retrieve trades details for a spot order + 'spot/openOrders', // Retrieve spot open orders + 'spot/orders', // Retrieve historical spot orders + 'futures/position', // Get positions for all contracts + 'futures/position/closed', // Get closed positions + 'futures/trades', // Retrieve trade details for a futures order + 'futures/openOrders', // Retrieve futures open orders + 'futures/orders', // Retrieve historical futures orders + 'futures/funding/predictedFundingFee/{symbol}', // Get predicted funding fee + ], + 'post': [ + 'account/transfer', // Asset Transfer + 'spot/orders', // Create a new spot order + 'spot/orders/cancelAllOnTimeout', // Automatically cancel all your spot orders after a specified timeout. + 'futures/orders', // Create a new futures order + 'futures/orders/cancelAllOnTimeout', // Automatically cancel all your futures orders after a specified timeout. + 'futures/position/sltp', // Set take profit and stop loss orders for an opening position + 'futures/position/close', // Close position + 'futures/position/leverage', // Update leverage for position + 'futures/position/margin', // Modify Isolated Position Margin + ], + 'put': [ + 'spot/orders', // Amend spot order + 'futures/orders', // Amend the quantity of an open futures order + ], + 'delete': [ + 'spot/orders/cancel/{orderID}', // Cancel a spot order + 'spot/orders/cancel/all', // Batch cancel spot orders + 'futures/orders/cancel/{orderID}', // Cancel a futures order + 'futures/orders/cancel/all', // Batch cancel futures orders + ], + }, + }, + 'fees': { + 'trading': { + 'tierBased': false, + 'percentage': true, + 'maker': 0.06 / 100, + 'taker': 0.10 / 100, + }, + 'funding': { + 'tierBased': false, + 'percentage': true, + 'withdraw': {}, // There is only 1% fee on withdrawals to your bank account. + }, + }, + 'commonCurrencies': { + 'XBT': 'XBT', + }, + 'exceptions': { + 'exact': { + '2002': InsufficientFunds, + '2003': OrderNotFound, + '10003': BadRequest, // Parameter validation error + '10006': AuthenticationError, // Session expired, please relogin + '10007': AuthenticationError, // Invalid authentication key or token + '11007': AuthenticationError, // Invalid key format + '20001': InsufficientFunds, // Insufficient balance. Please deposit to trade. + '20009': InvalidOrder, // Order amount must be positive + '30000': OrderNotFound, // {"code":30000,"data":null,"message":"The order does not exist","ts":1610259732263} + '30001': InvalidOrder, // The order is being submitted, please try again later + '30004': InvalidOrder, // Minimum quantity is {0} + '30005': InvalidOrder, // Quantity maximum precision is {0} decimal places + '30006': InvalidOrder, // Price maximum precision is {0} decimal places + '30007': InvalidOrder, // Minimum price is {0} + '30008': InvalidOrder, // Stop price maximum precision is {0} decimal places + '30009': InvalidOrder, // Stop Price cannot be less than {0} + '30010': InvalidOrder, // Market price cannot be empty + '30011': CancelPending, // The order is being cancelled, please wait. + '30012': BadRequest, // Unknown currency + '30013': BadSymbol, // Unknown symbol + '30014': OrderNotFound, // Futures order cannot be found + '30015': InvalidOrder, // This is not an open order and cannot modified + '30016': ExchangeError, // No position found + '30017': InvalidOrder, // The current close position is 0. It is recommended that you cancel the current order closing order. + '30018': InvalidOrder, // Order price cannot be greater than {0} + '30019': InvalidOrder, // Order quantity cannot be greater than {0} + '30020': InvalidOrder, // Order price must be a multiple of {0} + '30021': InvalidOrder, // Margin adjustement must be greater than 0 + '30022': InvalidOrder, // New quantity must be greater than filled quantity + '30023': InvalidOrder, // Order failed, please try again + '30024': InvalidOrder, // TimeInForce error, only GTC or IOC are allowed + '30025': InvalidOrder, // TimeInForce error, only GTC is allowed + '30026': InvalidOrder, // Quantity is not a multiple of {0} + '30027': InvalidOrder, // Close position failed, it is recommended that you cancel the current order and then close the position. + '30028': BadSymbol, // Symbol cannot be traded at this time + '30029': InvalidOrder, // Modified quantity or price cannot be empty + '30030': InvalidOrder, // Price cannot be specified for market orders + '30031': InvalidOrder, // Liquidation orders cannot be modified + '30032': InvalidOrder, // Leverage cannot be greater than {0} + '30033': InvalidOrder, // Leverage cannot be smaller than {0} + '30034': RateLimitExceeded, // The max number of open orders is {0}. To place a new order, please cancel a previous one + '30035': RateLimitExceeded, // The max number of {0} open orders is {1}. To place a new order, please cancel a previous one + '30036': ExchangeNotAvailable, // Liquidation is in progress, please try again later + '30037': InvalidOrder, // Once stop limit order triggered, stop price cannot be amended + '30038': ExchangeError, // The total value of your orders has exceeded the current risk limit. Please adjust the risk limit + '30039': InsufficientFunds, // Your risk limit has now been changed to {0}, your maximum leverage less than 1, please readjust accordingly + '30040': InvalidOrder, // Order status has changed, please try again later + '30041': InvalidOrder, // Liquidation orders cannot be cancelled + '30042': InvalidOrder, // Order cannot be placed as you will be breaching you max limit value of {1} BTC for {0} + '30043': InvalidOrder, // The risk limit cannot be less than 0 + '30044': BadRequest, // Timeout cannot be greater than 60 minutes + '30045': InvalidOrder, // Side is not valid, it should be BUY or SELL + '30046': InvalidOrder, // Order type is not valid, it should be MARKET or LIMIT or STOP-LIMIT or STOP + '30047': InvalidOrder, // The order is closed. Can't cancel + '30048': InvalidOrder, // Market orders cannot be modified + '30049': InvalidOrder, // The order is being modified, please wait + '30050': InvalidOrder, // Maximum 10 orders + '40004': BadRequest, // Requested resource doesn't exist + '40009': RateLimitExceeded, // Too many requests + '40102': AuthenticationError, // {"code":40102,"message":"Unauthorized(invalid key)"} + '40103': AuthenticationError, // {"code":40103,"message":"Unauthorized(invalid sign)"} + '40303': PermissionDenied, // {"code":40303,"message":"Forbidden(invalid scopes)"} + '41001': BadRequest, // Incorrect HTTP request + '41002': BadRequest, // Unsupported HTTP request method + '42001': ExchangeNotAvailable, // Duplicated data entry, please check and try again + '50001': ExchangeError, // Server side exception, please try again later + '50002': ExchangeError, // Server is busy, please try again later + }, + 'broad': {}, + }, + 'precisionMode': TICK_SIZE, + 'options': { + 'defaultType': 'spot', // 'spot', 'future' + }, + }); + } + + async fetchMarkets (params = {}) { + const response = await this.publicGetInstruments (params); + // + // { + // "code":1, + // "message":"success", + // "ts":1610159448962, + // "data":[ + // { + // "tickSize":"0.01", + // "lotSize":"1", + // "base":"BTC", + // "quote":"USDT", + // "minQuantity":"1.0000000000", + // "maxQuantity":"30000", + // "minPrice":"0.0100000000", + // "maxPrice":"999999.0000000000", + // "status":"readOnly", + // "symbol":"BTCUSDTFP", + // "code":"FP", + // "takerFee":"0.00040", + // "makerFee":"0.00020", + // "multiplier":"0.001000000000", + // "mmRate":"0.00500", + // "imRate":"0.01000", + // "type":"futures", + // "settleType":"Vanilla", + // "settleCurrency":"USDT" + // }, + // { + // "tickSize":"0.5", + // "lotSize":"10", + // "base":"BTC", + // "quote":"USD", + // "minQuantity":"10.0000000000", + // "maxQuantity":"300000", + // "minPrice":"0.5000000000", + // "maxPrice":"999999.0000000000", + // "status":"readOnly", + // "symbol":"BTCUSDFP", + // "code":"FP", + // "takerFee":"0.00040", + // "makerFee":"0.00020", + // "multiplier":"1.000000000000", + // "mmRate":"0.00500", + // "imRate":"0.01000", + // "type":"futures", + // "settleType":"Inverse", + // "settleCurrency":"BTC" + // }, + // { + // "tickSize":"0.0001", + // "lotSize":"0.01", + // "base":"AAB", + // "quote":"USDT", + // "minQuantity":"5.0000000000", + // "maxQuantity":"50000.0000000000", + // "minPrice":"0.0001000000", + // "maxPrice":"999999.0000000000", + // "status":"readOnly", + // "symbol":"AABUSDT", + // "code":null, + // "takerFee":"0.00100", + // "makerFee":"0.00100", + // "multiplier":"1.000000000000", + // "mmRate":"0.02500", + // "imRate":"0.05000", + // "type":"spot", + // "settleType":null, + // "settleCurrency":null + // }, + // ] + // } + // + const data = this.safeValue (response, 'data'); + const result = []; + for (let i = 0; i < data.length; i++) { + const market = data[i]; + const id = this.safeString (market, 'symbol'); + const baseId = this.safeString (market, 'base'); + const quoteId = this.safeString (market, 'quote'); + const base = this.safeCurrencyCode (baseId); + const quote = this.safeCurrencyCode (quoteId); + const status = this.safeString (market, 'status'); + const active = (status === 'enable'); + const taker = this.safeFloat (market, 'takerFee'); + const maker = this.safeFloat (market, 'makerFee'); + const type = this.safeString (market, 'type'); + let inverse = undefined; + let linear = undefined; + let quanto = undefined; + const spot = (type === 'spot'); + const futures = (type === 'futures'); + const settleType = this.safeStringLower (market, 'settleType'); + if (settleType !== undefined) { + inverse = (settleType === 'inverse'); + linear = (settleType === 'vanilla'); + quanto = (settleType === 'quanto'); + } + let symbol = id; + if (type === 'spot') { + symbol = base + '/' + quote; + } + const precision = { + 'amount': this.safeFloat (market, 'lotSize'), + 'price': this.safeFloat (market, 'tickSize'), + }; + result.push ({ + 'id': id, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'baseId': baseId, + 'quoteId': quoteId, + 'type': type, + 'spot': spot, + 'futures': futures, + 'inverse': inverse, + 'linear': linear, + 'quanto': quanto, + 'precision': precision, + 'info': market, + 'active': active, + 'taker': taker, + 'maker': maker, + 'percentage': false, + 'tierBased': true, + 'limits': { + 'amount': { + 'min': this.safeString (market, 'minQuantity'), + 'max': this.safeString (market, 'maxQuantity'), + }, + 'price': { + 'min': this.safeString (market, 'minPrice'), + 'max': this.safeString (market, 'maxPrice'), + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + }, + }); + } + return result; + } + + parseTicker (ticker, market = undefined) { + // + // { + // "t":1610162685342, // timestamp + // "a":"0.00000000", // trading volume in USD in the last 24 hours, futures only + // "c":"435.20000000", // close + // "d":"4.22953489", // change + // "h":"455.04000000", // high + // "l":"412.78000000", // low + // "o":"417.54000000", // open + // "s":"BCHUSDTFP", // market id + // "v":"2031068.00000000", // trading volume in quote currency of last 24 hours + // } + // + const timestamp = this.safeInteger (ticker, 't'); + const marketId = this.safeString (ticker, 's'); + const symbol = this.safeSymbol (marketId, market); + const last = this.safeFloat (ticker, 'c'); + const open = this.safeFloat (ticker, 'o'); + let change = undefined; + let percentage = undefined; + let average = undefined; + if (last !== undefined && open !== undefined) { + change = last - open; + if (open > 0) { + percentage = change / open * 100; + } + average = this.sum (last, open) / 2; + } + const quoteVolume = this.safeFloat (ticker, 'v'); + return { + 'symbol': symbol, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'high': this.safeFloat (ticker, 'h'), + 'low': this.safeFloat (ticker, 'l'), + 'bid': undefined, + 'bidVolume': undefined, + 'ask': undefined, + 'askVolume': undefined, + 'vwap': undefined, + 'open': open, + 'close': last, + 'last': last, + 'previousClose': undefined, + 'change': change, + 'percentage': percentage, + 'average': average, + 'baseVolume': undefined, + 'quoteVolume': quoteVolume, + 'info': ticker, + }; + } + + async fetchTicker (symbol, params = {}) { + const tickers = await this.fetchTickers (undefined, params); + if (symbol in tickers) { + return tickers[symbol]; + } + throw new BadSymbol (this.id + ' fetchTicker() symbol ' + symbol + ' ticker not found'); + } + + async fetchTickers (symbols = undefined, params = {}) { + await this.loadMarkets (); + const response = await this.publicGetMarketTickers (params); + // + // { + // "e":"tickers", + // "t":1610162685342, + // "tickers":[ + // { + // "a":"0.00000000", + // "c":"435.20000000", + // "d":"4.22953489", + // "h":"455.04000000", + // "l":"412.78000000", + // "o":"417.54000000", + // "s":"BCHUSDTFP", + // "v":"2031068.00000000", + // }, + // ], + // } + // + const tickers = this.safeValue (response, 'tickers', []); + const result = []; + const timestamp = this.safeInteger (response, 't'); + for (let i = 0; i < tickers.length; i++) { + const ticker = this.parseTicker (this.extend (tickers[i], { 't': timestamp })); + result.push (ticker); + } + return this.filterByArray (result, 'symbol', symbols); + } + + async fetchOrderBook (symbol, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + if (limit === undefined) { + limit = 20; + } else { + if ((limit !== 20) && (limit !== 50)) { + throw new BadRequest (this.id + ' fetchOrderBook() limit argument must be undefined, 20 or 50'); + } + } + const request = { + 'symbol': market['id'], + 'level': limit, // required + }; + // + const response = await this.publicGetMarketOrderbook (this.extend (request, params)); + // + // { + // "asks":[ + // ["10823.00000000","0.004000"], + // ["10823.10000000","0.100000"], + // ["10823.20000000","0.010000"] + // ], + // "bids":[ + // ["10821.20000000","0.002000"], + // ["10821.10000000","0.005000"], + // ["10820.40000000","0.013000"] + // ], + // "e":"BTCUSDT@book_50", + // "t":1561543614756 + // } + // + const timestamp = this.safeInteger (response, 't'); // need unix type + return this.parseOrderBook (response, timestamp); + } + + parseTrade (trade, market = undefined) { + // + // public fetchTrades + // + // { + // "p":"9395.50000000", + // "q":"50.000000", + // "t":1592563996718 + // } + // + // private fetchMyTrades + // + // { + // "avgPrice":"1199.8", + // "base":"ETH", + // "clOrdID":null, + // "commission":"0.00002", + // "createTime":"2021-01-11T02:47:51.512Z", + // "cumQty":"0.02", + // "filledOrderID":"1eUD4F5rwK", + // "filledPrice":"1199.8", + // "filledQty":"0.02", + // "leavesQty":"0", + // "oCreateTime":"2021-01-11T02:47:51.377Z", + // "orderID":"1eUD4EHfdU", + // "orderQty":"0.02", + // "orderStatus":3, + // "orderType":1, + // "price":"1198.25", + // "quote":"USDT", + // "rejectCode":null, + // "rejectReason":null, + // "side":1, + // "stopPrice":"0", + // "symbol":"ETHUSDT", + // "taker":true, + // "tradeID":"E04WTIgfmULU", + // "transactTime":"2021-01-11T02:47:51.389Z", + // "updateTime":null, + // "userID":"1362494" + // } + // + let timestamp = this.safeInteger (trade, 't'); + if (timestamp === undefined) { + timestamp = this.parse8601 (this.safeString (trade, 'createTime')); + } + const id = this.safeString2 (trade, 'tid', 'tradeID'); + let symbol = undefined; + const marketId = this.safeString (trade, 'symbol'); + market = this.safeMarket (marketId, market); + if (market !== undefined) { + symbol = market['symbol']; + } + let price = this.safeFloat2 (trade, 'p', 'filledPrice'); + const amount = this.safeFloat2 (trade, 'q', 'filledQty'); + const orderId = this.safeString (trade, 'orderID'); + const isTaker = this.safeValue (trade, 'taker'); + let takerOrMaker = undefined; + if (isTaker !== undefined) { + takerOrMaker = isTaker ? 'taker' : 'maker'; + } + let side = this.safeString (trade, 'side'); + if (side === '1') { + side = 'buy'; + } else if (side === '2') { + side = 'sell'; + } + if (side === undefined) { + side = (price > 0) ? 'buy' : 'sell'; + } + side = (price > 0) ? 'buy' : 'sell'; + price = Math.abs (price); + let cost = undefined; + if ((price !== undefined) && (amount !== undefined)) { + cost = price * amount; + } + const orderType = this.parseOrderType (this.safeString (trade, 'orderType')); + let fee = undefined; + const feeCost = this.safeFloat (trade, 'commission'); + if (feeCost !== undefined) { + let feeCurrency = undefined; + if (market !== undefined) { + if (side === 'buy') { + feeCurrency = market['base']; + } else if (side === 'sell') { + feeCurrency = market['quote']; + } + } + fee = { + 'currency': feeCurrency, + 'cost': feeCost, + }; + } + return { + 'info': trade, + 'id': id, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'symbol': symbol, + 'type': orderType, + 'side': side, + 'order': orderId, + 'takerOrMaker': takerOrMaker, + 'price': price, + 'amount': amount, + 'cost': cost, + 'fee': fee, + }; + } + + async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + limit = (limit === undefined) ? 2000 : limit; + limit = Math.min (limit, 2000); + const request = { + 'symbol': market['id'], + 'limit': limit, + }; + const response = await this.publicGetMarketTrades (request); + // + // { + // "e":"BTCUSDFP@trades", + // "trades": [ + // {"p":"9395.50000000","q":"50.000000","t":1592563996718}, + // {"p":"9395.50000000","q":"50.000000","t":1592563993577}, + // ], + // } + // + const trades = this.safeValue (response, 'trades', []); + return this.parseTrades (trades, market, since, limit); + } + + parseOHLCV (ohlcv, market = undefined) { + // + // [ + // 0.042398, // 0 open + // 0.042684, // 1 high + // 0.042366, // 2 low + // 0.042386, // 3 close + // 0.93734243, // 4 volume + // 1611514800, // 5 timestamp + // ] + // + return [ + this.safeTimestamp (ohlcv, 5), + this.safeFloat (ohlcv, 0), + this.safeFloat (ohlcv, 1), + this.safeFloat (ohlcv, 2), + this.safeFloat (ohlcv, 3), + this.safeFloat (ohlcv, 4), + ]; + } + + async fetchOHLCV (symbol, timeframe = '1h', since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + // 'limit': limit, // if set counts from now into the past + 'symbol': market['id'], + 'timeFrame': this.timeframes[timeframe], + }; + limit = (limit === undefined) ? 500 : limit; + const duration = this.parseTimeframe (timeframe); + if (since === undefined) { + const end = this.seconds (); + request['start'] = end - duration * limit; + request['end'] = end; + } else { + const start = parseInt (since / 1000); + request['start'] = start; + request['end'] = this.sum (start, duration * limit); + } + const response = await this.publicGetMarketHistoryCandles (this.extend (request, params)); + // + // { + // "data":[ + // [0.042398,0.042684,0.042366,0.042386,0.93734243,1611514800], + // [0.042386,0.042602,0.042234,0.042373,1.01925239,1611518400], + // [0.042373,0.042558,0.042362,0.042389,0.93801705,1611522000], + // ], + // "success":true, + // "t":1611875157 + // } + // + const data = this.safeValue (response, 'data', []); + return this.parseOHLCVs (data, market, timeframe, since, limit); + } + + async fetchBalance (params = {}) { + await this.loadMarkets (); + const defaultType = this.safeString2 (this.options, 'fetchBalance', 'defaultType', 'spot'); + const type = this.safeString (params, 'type', defaultType); + const types = { + 'spot': 'SPTP', + 'future': 'FUTP', + 'otc': 'F2CP', + 'saving': 'VLTP', + }; + const purseType = this.safeString (types, type, type); + const request = { + 'purseType': purseType, + }; + params = this.omit (params, 'type'); + const response = await this.privateGetAccountBalances (this.extend (request, params)); + // + // { + // "code":1, + // "data":[ + // { + // "purseType":"FUTP", + // "currency":"BTC", + // "available":"0.41000000", + // "unavailable":"0.00000000" + // }, + // { + // "purseType":"FUTP", + // "currency":"USDT", + // "available":"0.21000000", + // "unvaliable":"0.00000000" + // } + // ] + // "message":"success", + // "ts":1573530401020 + // } + // + const data = this.safeValue (response, 'data'); + const result = { 'info': response }; + for (let i = 0; i < data.length; i++) { + const balance = data[i]; + const balanceType = this.safeString (balance, 'purseType'); + if (balanceType === purseType) { + const currencyId = this.safeString (balance, 'currency'); + const code = this.safeCurrencyCode (currencyId); + const account = this.account (); + account['free'] = this.safeFloat (balance, 'available'); + account['used'] = this.safeFloat (balance, 'unavailable'); + result[code] = account; + } + } + return this.parseBalance (result); + } + + async createOrder (symbol, type, side, amount, price = undefined, params = {}) { + let orderType = type.toUpperCase (); + const orderSide = side.toUpperCase (); + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + // 'orderType': orderType, // MARKET, LIMIT, STOP, STOP-LIMIT + 'symbol': market['id'], + 'orderQty': this.amountToPrecision (symbol, amount), + 'side': orderSide, + // 'stopPrice': this.priceToPrecision (symbol, stopPrice), + // 'clOrdID': clientOrderId, // up to 20 chars, lowercase and uppercase letters only + // 'timeInForce': 'GTC', // GTC, IOC, FOK, default is GTC + // 'execInst': 'Post-Only', // the only value supported by the exchange, futures-only + }; + const timeInForce = this.safeString (params, 'timeInForce'); + if (timeInForce !== undefined) { + request['timeInForce'] = timeInForce; + params = this.omit (params, 'timeInForce'); + } + const clientOrderId = this.safeString2 (params, 'clOrdID', 'clientOrderId'); + if (clientOrderId !== undefined) { + request['clOrdID'] = clientOrderId; + params = this.omit (params, [ 'clOrdID', 'clientOrderId' ]); + } + const stopPrice = this.safeFloat (params, 'stopPrice'); + if (stopPrice === undefined) { + if ((orderType === 'STOP-LIMIT') || (orderType === 'STOP')) { + throw new ArgumentsRequired (this.id + ' createOrder() requires a stopPrice parameter for ' + orderType + ' orders'); + } + } else { + if (orderType === 'LIMIT') { + orderType = 'STOP-LIMIT'; + } else if (orderType === 'MARKET') { + orderType = 'STOP'; + } + request['stopPrice'] = this.priceToPrecision (symbol, stopPrice); + params = this.omit (params, 'stopPrice'); + } + if (orderType === 'LIMIT' || orderType === 'STOP-LIMIT') { + request['price'] = this.priceToPrecision (symbol, price); + } + request['orderType'] = orderType; + let method = undefined; + if (market['spot']) { + method = 'privatePostSpotOrders'; + } else if (market['futures']) { + method = 'privatePostFuturesOrders'; + } + const response = await this[method] (this.extend (request, params)); + // + // spot + // + // { + // "code":1, + // "data":{ + // "symbol":"ETHUSDT", + // "orderType":2, + // "avgPrice":"0", + // "execInst":null, + // "orderStatus":0, + // "userID":"1362494", + // "quote":"USDT", + // "rejectReason":null, + // "rejectCode":null, + // "price":"1500", + // "orderQty":"1", + // "commission":"0", + // "id":"268323430253735936", + // "timeInForce":1, + // "isTriggered":false, + // "side":2, + // "orderID":"1eO51MDSpQ", + // "leavesQty":"0", + // "cumQty":"0", + // "updateTime":null, + // "lastQty":"0", + // "clOrdID":null, + // "stopPrice":null, + // "createTime":null, + // "transactTime":null, + // "base":"ETH", + // "lastPrice":"0" + // }, + // "message":"success", + // "ts":1610245290980 + // } + // + // futures + // + // { + // "code":1, + // "data":{ + // "liqType":0, + // "symbol":"ETHUSDTFP", + // "orderType":2, + // "leverage":"1", + // "marketPrice":"1318.3150000000", + // "code":"FP", + // "avgPrice":"0", + // "execInst":null, + // "orderStatus":0, + // "userID":"1362494", + // "quote":"USDT", + // "rejectReason":null, + // "rejectCode":null, + // "price":"500", + // "orderQty":"1", + // "commission":"0", + // "id":"268346885133053953", + // "timeInForce":1, + // "isTriggered":false, + // "side":1, + // "orderID":"1eOuPUAAkq", + // "leavesQty":"1", + // "cumQty":"0", + // "updateTime":null, + // "lastQty":null, + // "clOrdID":null, + // "stopPrice":null, + // "createTime":null, + // "transactTime":null, + // "settleType":"VANILLA", + // "base":"ETH", + // "lastPrice":"0" + // }, + // "message":"success", + // "ts":1610250883059 + // } + // + const data = this.safeValue (response, 'data', {}); + return this.parseOrder (data, market); + } + + async editOrder (id, symbol, type, side, amount, price = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'orderID': id, + // 'orderQty': this.amountToPrecision (symbol, amount), + // 'price': this.priceToPrecision (symbol, price), + // 'stopPrice': this.priceToPrecision (symbol, stopPrice), + }; + const stopPrice = this.safeFloat (params, 'stopPrice'); + if (stopPrice !== undefined) { + request['stopPrice'] = this.priceToPrecision (symbol, stopPrice); + params = this.omit (params, 'stopPrice'); + } + if (price !== undefined) { + request['price'] = this.priceToPrecision (symbol, price); + } + if (amount !== undefined) { + request['orderQty'] = this.amountToPrecision (symbol, amount); + } + let method = undefined; + if (market['spot']) { + method = 'privatePutSpotOrders'; + } else if (market['futures']) { + method = 'privatePutFuturesOrders'; + } + const response = await this[method] (this.extend (request, params)); + // + // spot + // + // { + // "code":1, + // "data":{ + // "symbol":"ETHUSDT", + // "orderType":2, + // "avgPrice":"0", + // "execInst":null, + // "orderStatus":0, + // "userID":"1362494", + // "quote":"USDT", + // "rejectReason":null, + // "rejectCode":null, + // "price":"1500", + // "orderQty":"1", + // "commission":"0", + // "id":"268323430253735936", + // "timeInForce":1, + // "isTriggered":false, + // "side":2, + // "orderID":"1eO51MDSpQ", + // "leavesQty":"0", + // "cumQty":"0", + // "updateTime":null, + // "lastQty":"0", + // "clOrdID":null, + // "stopPrice":null, + // "createTime":null, + // "transactTime":null, + // "base":"ETH", + // "lastPrice":"0" + // }, + // "message":"success", + // "ts":1610245290980 + // } + // + // futures + // + // { + // "code":1, + // "data":{ + // "liqType":0, + // "symbol":"ETHUSDTFP", + // "orderType":2, + // "leverage":"1", + // "marketPrice":"1318.3150000000", + // "code":"FP", + // "avgPrice":"0", + // "execInst":null, + // "orderStatus":0, + // "userID":"1362494", + // "quote":"USDT", + // "rejectReason":null, + // "rejectCode":null, + // "price":"500", + // "orderQty":"1", + // "commission":"0", + // "id":"268346885133053953", + // "timeInForce":1, + // "isTriggered":false, + // "side":1, + // "orderID":"1eOuPUAAkq", + // "leavesQty":"1", + // "cumQty":"0", + // "updateTime":null, + // "lastQty":null, + // "clOrdID":null, + // "stopPrice":null, + // "createTime":null, + // "transactTime":null, + // "settleType":"VANILLA", + // "base":"ETH", + // "lastPrice":"0" + // }, + // "message":"success", + // "ts":1610250883059 + // } + // + const data = this.safeValue (response, 'data', {}); + return this.parseOrder (data, market); + } + + async cancelOrder (id, symbol = undefined, params = {}) { + await this.loadMarkets (); + const request = { + 'orderID': id, + }; + let method = undefined; + const defaultType = this.safeString2 (this.options, 'cancelOrder', 'defaultType', 'spot'); + let type = this.safeString (params, 'type', defaultType); + params = this.omit (params, 'type'); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + type = market['type']; + } + if (type === 'spot') { + method = 'privateDeleteSpotOrdersCancelOrderID'; + } else if (type === 'futures') { + method = 'privateDeleteFuturesOrdersCancelOrderID'; + } + const response = await this[method] (this.extend (request, params)); + // + // spot + // + // { + // "code":1, + // "data":{ + // "avgPrice":"0", + // "base":"BTC", + // "clOrdID":"aax", + // "commission":"0", + // "createTime":"2019-11-12T03:46:41Z", + // "cumQty":"0", + // "id":"114330021504606208", + // "isTriggered":false, + // "lastPrice":"0", + // "lastQty":"0", + // "leavesQty":"0", + // "orderID":"wJ4L366KB", + // "orderQty":"0.05", + // "orderStatus":1, + // "orderType":2, + // "price":"8000", + // "quote":"USDT", + // "rejectCode":0, + // "rejectReason":null, + // "side":1, + // "stopPrice":"0", + // "symbol":"BTCUSDT", + // "transactTime":null, + // "updateTime":"2019-11-12T03:46:41Z", + // "timeInForce":1, + // "userID":"216214" + // }, + // "message":"success", + // "ts":1573530402029 + // } + // + // futures + // + // { + // "code":1, + // "data":{ + // "avgPrice":"0", + // "base":"BTC", + // "clOrdID":"aax_futures", + // "code":"FP", + // "commission":"0", + // "createTime":"2019-11-12T06:48:58Z", + // "cumQty":"0", + // "id":"114375893764395008", + // "isTriggered":false, + // "lastPrice":"0", + // "lastQty":null, + // "leavesQty":"300", + // "leverage":"1", + // "liqType":0, + // "marketPrice":"8760.75", + // "orderID":"wJTewQc81", + // "orderQty":"300", + // "orderStatus":1, + // "orderType":2, + // "price":"8000", + // "quote":"USD", + // "rejectCode":0, + // "rejectReason":null, + // "settleType":"INVERSE", + // "side":1, + // "stopPrice":"0", + // "symbol":"BTCUSDFP", + // "transactTime":"2019-11-12T06:48:58Z", + // "updateTime":"2019-11-12T06:48:58Z", + // "timeInForce":1, + // "execInst": "", + // "userID":"216214" + // }, + // "message":"success", + // "ts":1573541642970 + // } + // + const data = this.safeValue (response, 'data', {}); + return this.parseOrder (data, market); + } + + async cancelAllOrders (symbol = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + ' cancelAllOrders() requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'symbol': market['id'], + }; + let method = undefined; + if (market['spot']) { + method = 'privateDeleteSpotOrdersCancelAll'; + } else if (market['futures']) { + method = 'privateDeleteFuturesOrdersCancelAll'; + } + const response = await this[method] (this.extend (request, params)); + // + // { + // "code":1, + // "data":[ + // "vBC9rXsEE", + // "vBCc46OI0" + // ], + // "message":"success", + // "ts":1572597435470 + // } + // + return response; + } + + async fetchOrder (id, symbol = undefined, params = {}) { + await this.loadMarkets (); + const defaultType = this.safeString2 (this.options, 'fetchOrder', 'defaultType', 'spot'); + params['type'] = this.safeString (params, 'type', defaultType); + const request = {}; + const clientOrderId = this.safeString2 (params, 'clOrdID', 'clientOrderId'); + if (clientOrderId === undefined) { + request['orderID'] = id; + } else { + request['clOrdID'] = clientOrderId; + params = this.omit (params, [ 'clOrdID', 'clientOrderId' ]); + } + const orders = await this.fetchOrders (symbol, undefined, undefined, this.extend (request, params)); + const order = this.safeValue (orders, 0); + if (order === undefined) { + if (clientOrderId === undefined) { + throw new OrderNotFound (this.id + ' fetchOrder() could not find order id ' + id); + } else { + throw new OrderNotFound (this.id + ' fetchOrder() could not find order clientOrderID ' + clientOrderId); + } + } + return order; + } + + async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'pageNum': '1', + // 'pageSize': '10', + // 'symbol': market['id'], + // 'orderID': id, + // 'side': 'undefined', // BUY, SELL + // 'clOrdID': clientOrderId, + }; + const defaultType = this.safeString2 (this.options, 'fetchOpenOrders', 'defaultType', 'spot'); + let type = this.safeString (params, 'type', defaultType); + params = this.omit (params, 'type'); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['symbol'] = market['id']; + type = market['type']; + } + const clientOrderId = this.safeString2 (params, 'clOrdID', 'clientOrderId'); + if (clientOrderId !== undefined) { + request['clOrdID'] = clientOrderId; + params = this.omit (params, [ 'clOrdID', 'clientOrderId' ]); + } + let method = undefined; + if (type === 'spot') { + method = 'privateGetSpotOpenOrders'; + } else if (type === 'futures') { + method = 'privateGetFuturesOpenOrders'; + } + if (limit !== undefined) { + request['pageSize'] = limit; // default 10 + } + const response = await this[method] (this.extend (request, params)); + // + // spot + // + // { + // "code":1, + // "data":{ + // "total":19, + // "pageSize":10, + // "list":[ + // { + // "orderType":2, + // "symbol":"BTCUSDT", + // "avgPrice":"0", + // "orderStatus":0, + // "userID":"7225", + // "quote":"USDT", + // "rejectReason":null, + // "rejectCode":null, + // "price":"0", + // "orderQty":"0.002", + // "commission":"0", + // "id":"110419975166304256", + // "isTriggered":null, + // "side":1, + // "orderID":"vBGlDcLwk", + // "cumQty":"0", + // "leavesQty":"0", + // "updateTime":null, + // "clOrdID":"0001", + // "lastQty":"0", + // "stopPrice":"0", + // "createTime":"2019-11-01T08:49:33Z", + // "transactTime":null, + // "timeInForce":1, + // "base":"BTC", + // "lastPrice":"0" + // } + // ], + // "pageNum":1 + // }, + // "message":"success", + // "ts":1572598173682 + // } + // + // futures + // + // { + // "code":1, + // "data":{ + // "list":[ + // { + // "avgPrice":"8768.99999999484997", + // "base":"BTC", + // "clOrdID":null, + // "code":"FP", + // "commission":"0.00000913", + // "createTime":"2019-11-12T07:05:52.000Z, + // "cumQty":"100", + // "id":"114380149603028993", + // "isTriggered":false, + // "lastPrice":"8769", + // "lastQty":"100", + // "leavesQty":"0", + // "leverage":"1", + // "liqType":1, + // "marketPrice":"8769.75", + // "orderID":"wJXURIFBT", + // "orderQty":"100", + // "orderStatus":3, + // "orderType":1, + // "price":"8769.75", + // "quote":"USD", + // "rejectCode":0, + // "rejectReason":null, + // "settleType":"INVERSE", + // "side":2, + // "stopPrice":"0", + // "symbol":"BTCUSDFP", + // "transactTime":"2019-11-12T07:05:52.000Z, + // "updateTime":"2019-11-12T07:05:52.000Z, + // "timeInForce":1, + // "execInst": "", + // "userID":"216214" + // }, + // ], + // "pageNum":1, + // "pageSize":10, + // "total":21 + // }, + // "message":"success", + // "ts":1573546960172 + // } + // + const data = this.safeValue (response, 'data', {}); + const orders = this.safeValue (data, 'list', []); + return this.parseOrders (orders, market, since, limit); + } + + async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const request = { + 'orderStatus': '2', // 1 new, 2 filled, 3 canceled + }; + return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); + } + + async fetchCanceledOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const request = { + 'orderStatus': '3', // 1 new, 2 filled, 3 canceled + }; + return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); + } + + async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'pageNum': '1', + // 'pageSize': '10', + // 'symbol': market['id'], + // 'orderID': id, + // 'base': market['baseId'], + // 'quote': market['quoteId'], + // 'orderStatus': undefined, // 1 new, 2 filled, 3 canceled + // 'startDate': this.ymd (since), + // 'endDate': this.ymd (this.milliseconds()), + // 'orderType': undefined, // MARKET, LIMIT, STOP, STOP-LIMIT + // 'side': 'undefined', // BUY, SELL + // 'clOrdID': clientOrderId, + }; + let method = undefined; + const defaultType = this.safeString2 (this.options, 'fetchOrders', 'defaultType', 'spot'); + let type = this.safeString (params, 'type', defaultType); + params = this.omit (params, 'type'); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['symbol'] = market['id']; + type = market['type']; + } + if (type === 'spot') { + method = 'privateGetSpotOrders'; + } else if (type === 'futures') { + method = 'privateGetFuturesOrders'; + } + const clientOrderId = this.safeString2 (params, 'clOrdID', 'clientOrderId'); + if (clientOrderId !== undefined) { + request['clOrdID'] = clientOrderId; + params = this.omit (params, [ 'clOrdID', 'clientOrderId' ]); + } + if (limit !== undefined) { + request['pageSize'] = limit; // default 10 + } + if (since !== undefined) { + request['startDate'] = this.ymd (since); + } + const response = await this[method] (this.extend (request, params)); + // + // spot + // + // { + // "code":1, + // "data":{ + // "total":19, + // "pageSize":10, + // "list":[ + // { + // "orderType":2, + // "symbol":"BTCUSDT", + // "avgPrice":"0", + // "orderStatus":0, + // "userID":"7225", + // "quote":"USDT", + // "rejectReason":null, + // "rejectCode":null, + // "price":"0", + // "orderQty":"0.002", + // "commission":"0", + // "id":"110419975166304256", + // "isTriggered":null, + // "side":1, + // "orderID":"vBGlDcLwk", + // "cumQty":"0", + // "leavesQty":"0", + // "updateTime":null, + // "clOrdID":"0001", + // "lastQty":"0", + // "stopPrice":"0", + // "createTime":"2019-11-01T08:49:33Z", + // "transactTime":null, + // "timeInForce":1, + // "base":"BTC", + // "lastPrice":"0" + // } + // ], + // "pageNum":1 + // }, + // "message":"success", + // "ts":1572598173682 + // } + // + // futures + // + // { + // "code":1, + // "data":{ + // "list":[ + // { + // "avgPrice":"8768.99999999484997", + // "base":"BTC", + // "clOrdID":null, + // "code":"FP", + // "commission":"0.00000913", + // "createTime":"2019-11-12T07:05:52.000Z, + // "cumQty":"100", + // "id":"114380149603028993", + // "isTriggered":false, + // "lastPrice":"8769", + // "lastQty":"100", + // "leavesQty":"0", + // "leverage":"1", + // "liqType":1, + // "marketPrice":"8769.75", + // "orderID":"wJXURIFBT", + // "orderQty":"100", + // "orderStatus":3, + // "orderType":1, + // "price":"8769.75", + // "quote":"USD", + // "rejectCode":0, + // "rejectReason":null, + // "settleType":"INVERSE", + // "side":2, + // "stopPrice":"0", + // "symbol":"BTCUSDFP", + // "transactTime":"2019-11-12T07:05:52.000Z, + // "updateTime":"2019-11-12T07:05:52.000Z, + // "timeInForce":1, + // "execInst": "", + // "userID":"216214" + // }, + // ], + // "pageNum":1, + // "pageSize":10, + // "total":21 + // }, + // "message":"success", + // "ts":1573546960172 + // } + // + const data = this.safeValue (response, 'data', {}); + const orders = this.safeValue (data, 'list', []); + return this.parseOrders (orders, market, since, limit); + } + + parseOrderStatus (status) { + const statuses = { + '0': 'open', // pending new + '1': 'open', // new + '2': 'open', // partially-filled + '3': 'closed', // filled + '4': 'canceled', // cancel-reject + '5': 'canceled', // canceled + '6': 'rejected', // rejected + '10': 'expired', // expired + '11': 'rejected', // business-reject + }; + return this.safeString (statuses, status, status); + } + + parseOrderType (status) { + const statuses = { + '1': 'market', + '2': 'limit', + '3': 'stop', + '4': 'stop-limit', + '7': 'stop-loss', + '8': 'take-profit', + }; + return this.safeString (statuses, status, status); + } + + parseTimeInForce (timeInForce) { + const timeInForces = { + '1': 'GTC', + '3': 'IOC', + '4': 'FOK', + }; + return this.safeString (timeInForces, timeInForce, timeInForce); + } + + parseOrder (order, market = undefined) { + // + // { + // "avgPrice":"8768.99999999484997", + // "base":"BTC", + // "clOrdID":null, + // "code":"FP", // futures only + // "commission":"0.00000913", + // "createTime":"2019-11-12T07:05:52.000Z, + // "cumQty":"100", + // "id":"114380149603028993", // futures only + // "isTriggered":false, + // "lastPrice":"8769", + // "lastQty":"100", + // "leavesQty":"0", + // "leverage":"1", // futures only + // "liqType":1, // futures only + // "marketPrice":"8769.75", // futures only + // "orderID":"wJXURIFBT", + // "orderQty":"100", + // "orderStatus":3, + // "orderType":1, + // "price":"8769.75", + // "quote":"USD", + // "rejectCode":0, + // "rejectReason":null, + // "settleType":"INVERSE", // futures only + // "side":2, + // "stopPrice":"0", + // "symbol":"BTCUSDFP", + // "transactTime":"2019-11-12T07:05:52.000Z, + // "updateTime":"2019-11-12T07:05:52.000Z, + // "timeInForce":1, + // "execInst": "", + // "userID":"216214" + // } + // + // sometimes the timestamp is returned in milliseconds + let timestamp = this.safeValue (order, 'createTime'); + if (typeof timestamp === 'string') { + timestamp = this.parse8601 (timestamp); + } + const status = this.parseOrderStatus (this.safeString (order, 'orderStatus')); + const type = this.parseOrderType (this.safeString (order, 'orderType')); + let side = this.safeString (order, 'side'); + if (side === '1') { + side = 'buy'; + } else if (side === '2') { + side = 'sell'; + } + const id = this.safeString (order, 'orderID'); + const clientOrderId = this.safeString (order, 'clOrdID'); + const marketId = this.safeString (order, 'symbol'); + market = this.safeMarket (marketId, market); + const symbol = market['symbol']; + const price = this.safeFloat (order, 'price'); + const stopPrice = this.safeFloat (order, 'stopPrice'); + const timeInForce = this.parseTimeInForce (this.safeString (order, 'timeInForce')); + const execInst = this.safeString (order, 'execInst'); + const postOnly = (execInst === 'Post-Only'); + const average = this.safeFloat (order, 'avgPrice'); + const amount = this.safeFloat (order, 'orderQty'); + const filled = this.safeFloat (order, 'cumQty'); + const remaining = this.safeString (order, 'leavesQty'); + let cost = undefined; + let lastTradeTimestamp = undefined; + if (filled !== undefined) { + if (price !== undefined) { + cost = filled * price; + } + if (filled > 0) { + lastTradeTimestamp = this.safeValue (order, 'transactTime'); + if (typeof lastTradeTimestamp === 'string') { + lastTradeTimestamp = this.parse8601 (lastTradeTimestamp); + } + } + } + let fee = undefined; + const feeCost = this.safeFloat (order, 'commission'); + if (feeCost !== undefined) { + let feeCurrency = undefined; + if (market !== undefined) { + if (side === 'buy') { + feeCurrency = market['base']; + } else if (side === 'sell') { + feeCurrency = market['quote']; + } + } + fee = { + 'currency': feeCurrency, + 'cost': feeCost, + }; + } + return { + 'id': id, + 'info': order, + 'clientOrderId': clientOrderId, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'lastTradeTimestamp': lastTradeTimestamp, + 'status': status, + 'symbol': symbol, + 'type': type, + 'timeInForce': timeInForce, + 'postOnly': postOnly, + 'side': side, + 'price': price, + 'stopPrice': stopPrice, + 'average': average, + 'amount': amount, + 'filled': filled, + 'remaining': remaining, + 'cost': cost, + 'trades': undefined, + 'fee': fee, + }; + } + + async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'pageNum': '1', + // 'pageSize': '10', + // 'symbol': market['id'], + // 'orderID': id, + // 'base': market['baseId'], + // 'quote': market['quoteId'], + // 'startDate': this.ymd (since), + // 'endDate': this.ymd (this.milliseconds()), + // 'orderType': undefined, // MARKET, LIMIT, STOP, STOP-LIMIT + // 'side': 'undefined', // BUY, SELL + }; + let method = undefined; + const defaultType = this.safeString2 (this.options, 'fetchMyTrades', 'defaultType', 'spot'); + let type = this.safeString (params, 'type', defaultType); + params = this.omit (params, 'type'); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['symbol'] = market['id']; + type = market['type']; + } + if (type === 'spot') { + method = 'privateGetSpotTrades'; + } else if (type === 'futures') { + method = 'privateGetFuturesTrades'; + } + if (limit !== undefined) { + request['pageSize'] = limit; // default 10 + } + if (since !== undefined) { + request['startDate'] = this.ymd (since); + } + const response = await this[method] (this.extend (request, params)); + // + // { + // "code":1, + // "data":{ + // "list":[ + // { + // "avgPrice":"1199.8", + // "base":"ETH", + // "clOrdID":null, + // "commission":"0.00002", + // "createTime":"2021-01-11T02:47:51.512Z", + // "cumQty":"0.02", + // "filledOrderID":"1eUD4F5rwK", + // "filledPrice":"1199.8", + // "filledQty":"0.02", + // "leavesQty":"0", + // "oCreateTime":"2021-01-11T02:47:51.377Z", + // "orderID":"1eUD4EHfdU", + // "orderQty":"0.02", + // "orderStatus":3, + // "orderType":1, + // "price":"1198.25", + // "quote":"USDT", + // "rejectCode":null, + // "rejectReason":null, + // "side":1, + // "stopPrice":"0", + // "symbol":"ETHUSDT", + // "taker":true, + // "tradeID":"E04WTIgfmULU", + // "transactTime":"2021-01-11T02:47:51.389Z", + // "updateTime":null, + // "userID":"1362494" + // } + // ], + // "pageNum":1, + // "pageSize":10, + // "total":1 + // }, + // "message":"success", + // "ts":1610333278042 + // } + // + const data = this.safeValue (response, 'data', {}); + const trades = this.safeValue (data, 'list', []); + return this.parseTrades (trades, market, since, limit); + } + + async fetchDepositAddress (code, params = {}) { + await this.loadMarkets (); + const currency = this.currency (code); + const request = { + 'currency': currency['id'], + // 'network': undefined, // 'ERC20 + }; + const response = await this.privateGetAccountDepositAddress (this.extend (request, params)); + // + // { + // "code":1, + // "data":{ + // "address":"0x080c5c667381404cca9be0be9a04b2e47691ff86", + // "tag":null, + // "currency":"USDT", + // "network":"ERC20" + // }, + // "message":"success", + // "ts":1610270465132 + // } + // + const data = this.safeValue (response, 'data', {}); + return this.parseDepositAddress (data, currency); + } + + parseDepositAddress (depositAddress, currency = undefined) { + // + // { + // "address":"0x080c5c667381404cca9be0be9a04b2e47691ff86", + // "tag":null, + // "currency":"USDT", + // "network":"ERC20" + // } + // + const address = this.safeString (depositAddress, 'address'); + const tag = this.safeString (depositAddress, 'tag'); + const currencyId = this.safeString (depositAddress, 'currency'); + const code = this.safeCurrencyCode (currencyId); + return { + 'info': depositAddress, + 'code': code, + 'address': address, + 'tag': tag, + }; + } + + nonce () { + return this.milliseconds (); + } + + sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { + let url = '/' + this.implodeParams (path, params); + const query = this.omit (params, this.extractParams (path)); + if (api === 'v1') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } else { + url = '/' + this.version + url; + if (api === 'public') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } else if (api === 'private') { + this.checkRequiredCredentials (); + const nonce = this.nonce ().toString (); + headers = { + 'X-ACCESS-KEY': this.apiKey, + 'X-ACCESS-NONCE': nonce, + }; + let auth = nonce + ':' + method; + if (method === 'GET') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + auth += url; + } else { + headers['Content-Type'] = 'application/json'; + body = this.json (query); + auth += url + body; + } + const signature = this.hmac (this.encode (auth), this.encode (this.secret)); + headers['X-ACCESS-SIGN'] = signature; + } + } + url = this.implodeParams (this.urls['api'][api], { 'hostname': this.hostname }) + url; + return { 'url': url, 'method': method, 'body': body, 'headers': headers }; + } + + handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { + if (response === undefined) { + return; // fallback to default error handler + } + // + // {"code":40102,"message":"Unauthorized(invalid key)"} + // + const errorCode = this.safeString (response, 'code'); + if ((errorCode !== undefined) && (errorCode !== '1')) { + const feedback = this.id + ' ' + this.json (response); + this.throwExactlyMatchedException (this.exceptions['exact'], errorCode, feedback); + this.throwBroadlyMatchedException (this.exceptions['broad'], body, feedback); + } + } +}; diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/acx.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/acx.js index 011921fa4..e10ec85ca 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/acx.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/acx.js @@ -346,6 +346,7 @@ module.exports = class acx extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': this.safeFloat (order, 'price'), 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/aofex.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/aofex.js index fb5e7f4a3..7899f09d5 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/aofex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/aofex.js @@ -132,6 +132,9 @@ module.exports = class aofex extends Exchange { 'show_all': '0', // '1' to show zero balances }, }, + 'commonCurrencies': { + 'CPC': 'Consensus Planet Coin', + }, }); } @@ -798,6 +801,7 @@ module.exports = class aofex extends Exchange { 'symbol': market['symbol'], 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/base/Exchange.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/base/Exchange.js index f231581ed..eb017b5bf 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/base/Exchange.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/base/Exchange.js @@ -411,20 +411,20 @@ module.exports = class Exchange { if (!!enabled) { // eslint-disable-line no-extra-boolean-cast if ('test' in this.urls) { if (typeof this.urls['api'] === 'string') { - this.urls['api_backup'] = this.urls['api'] + this.urls['apiBackup'] = this.urls['api'] this.urls['api'] = this.urls['test'] } else { - this.urls['api_backup'] = clone (this.urls['api']) + this.urls['apiBackup'] = clone (this.urls['api']) this.urls['api'] = clone (this.urls['test']) } } else { throw new NotSupported (this.id + ' does not have a sandbox URL') } - } else if ('api_backup' in this.urls) { + } else if ('apiBackup' in this.urls) { if (typeof this.urls['api'] === 'string') { - this.urls['api'] = this.urls['api_backup'] + this.urls['api'] = this.urls['apiBackup'] } else { - this.urls['api'] = clone (this.urls['api_backup']) + this.urls['api'] = clone (this.urls['apiBackup']) } } } @@ -576,34 +576,31 @@ module.exports = class Exchange { handleRestResponse (response, url, method = 'GET', requestHeaders = undefined, requestBody = undefined) { return response.text ().then ((responseBody) => { - - const json = this.parseJson (responseBody) - const responseHeaders = this.getResponseHeaders (response) - + const bodyText = this.onRestResponse (response.status, response.statusText, url, method, responseHeaders, responseBody, requestHeaders, requestBody); + const json = this.parseJson (bodyText) if (this.enableLastResponseHeaders) { this.last_response_headers = responseHeaders } - if (this.enableLastHttpResponse) { this.last_http_response = responseBody } - if (this.enableLastJsonResponse) { this.last_json_response = json } - if (this.verbose) { this.print ("handleRestResponse:\n", this.id, method, url, response.status, response.statusText, "\nResponse:\n", responseHeaders, "\n", responseBody, "\n") } - this.handleErrors (response.status, response.statusText, url, method, responseHeaders, responseBody, json, requestHeaders, requestBody) this.handleHttpStatusCode (response.status, response.statusText, url, method, responseBody) - return json || responseBody }) } + onRestResponse (statusCode, statusText, url, method, responseHeaders, responseBody, requestHeaders, requestBody) { + return responseBody.trim ().replace (/:(\d{15,}),/g, ':"$1",'); + } + setMarkets (markets, currencies = undefined) { const values = Object.values (markets).map ((market) => deepExtend ({ 'limits': this.limits, @@ -903,6 +900,10 @@ module.exports = class Exchange { return symbols.map ((symbol) => this.marketId (symbol)) } + currencyIds (codes) { + return codes.map ((code) => this.currencyId (code)) + } + symbol (symbol) { return this.market (symbol).symbol || symbol } @@ -1036,7 +1037,7 @@ module.exports = class Exchange { array = array.filter ((entry) => entry[key] >= since) } if (limit !== undefined && limit !== null) { - array = (tail && !sinceIsDefined) ? array.slice (-limit) : array.slice (0, limit) + array = tail ? array.slice (-limit) : array.slice (0, limit) } return array } @@ -1054,18 +1055,18 @@ module.exports = class Exchange { } if (limit !== undefined && limit !== null) { - array = (tail && !sinceIsDefined) ? array.slice (-limit) : array.slice (0, limit) + array = tail ? array.slice (-limit) : array.slice (0, limit) } return array } - filterBySymbolSinceLimit (array, symbol = undefined, since = undefined, limit = undefined) { - return this.filterByValueSinceLimit (array, 'symbol', symbol, since, limit) + filterBySymbolSinceLimit (array, symbol = undefined, since = undefined, limit = undefined, tail = false) { + return this.filterByValueSinceLimit (array, 'symbol', symbol, since, limit, 'timestamp', tail) } - filterByCurrencySinceLimit (array, code = undefined, since = undefined, limit = undefined) { - return this.filterByValueSinceLimit (array, 'currency', code, since, limit) + filterByCurrencySinceLimit (array, code = undefined, since = undefined, limit = undefined, tail = false) { + return this.filterByValueSinceLimit (array, 'currency', code, since, limit, 'timestamp', tail) } filterByArray (objects, key, values = undefined, indexed = true) { @@ -1095,7 +1096,8 @@ module.exports = class Exchange { let result = Object.values (trades || []).map ((trade) => this.extend (this.parseTrade (trade, market), params)) result = sortBy (result, 'timestamp') const symbol = (market !== undefined) ? market['symbol'] : undefined - return this.filterBySymbolSinceLimit (result, symbol, since, limit) + const tail = since === undefined + return this.filterBySymbolSinceLimit (result, symbol, since, limit, tail) } parseTransactions (transactions, currency = undefined, since = undefined, limit = undefined, params = {}) { @@ -1106,7 +1108,8 @@ module.exports = class Exchange { let result = Object.values (transactions || []).map ((transaction) => this.extend (this.parseTransaction (transaction, currency), params)) result = this.sortBy (result, 'timestamp'); const code = (currency !== undefined) ? currency['code'] : undefined; - return this.filterByCurrencySinceLimit (result, code, since, limit); + const tail = since === undefined; + return this.filterByCurrencySinceLimit (result, code, since, limit, tail); } parseLedger (data, currency = undefined, since = undefined, limit = undefined, params = {}) { @@ -1124,7 +1127,8 @@ module.exports = class Exchange { } result = this.sortBy (result, 'timestamp'); const code = (currency !== undefined) ? currency['code'] : undefined; - return this.filterByCurrencySinceLimit (result, code, since, limit); + const tail = since === undefined; + return this.filterByCurrencySinceLimit (result, code, since, limit, tail); } parseOrders (orders, market = undefined, since = undefined, limit = undefined, params = {}) { @@ -1154,7 +1158,8 @@ module.exports = class Exchange { Object.entries (orders).map (([ id, order ]) => this.extend (this.parseOrder (this.extend ({ 'id': id }, order), market), params)) result = sortBy (result, 'timestamp') const symbol = (market !== undefined) ? market['symbol'] : undefined - return this.filterBySymbolSinceLimit (result, symbol, since, limit) + const tail = since === undefined + return this.filterBySymbolSinceLimit (result, symbol, since, limit, tail) } safeCurrency (currencyId, currency = undefined) { @@ -1225,19 +1230,10 @@ module.exports = class Exchange { // if (!this.isArray (ohlcvs)) { // throw new ExchangeError (this.id + ' parseOHLCVs expected an array in the ohlcvs argument, but got ' + typeof ohlcvs); // } - ohlcvs = Object.values (ohlcvs || []) - const result = [] - for (let i = 0; i < ohlcvs.length; i++) { - if (limit && (result.length >= limit)) { - break; - } - const ohlcv = this.parseOHLCV (ohlcvs[i], market) - if (since && (ohlcv[0] < since)) { - continue - } - result.push (ohlcv) - } - return this.sortBy (result, 0) + const parsed = ohlcvs.map ((ohlcv) => this.parseOHLCV (ohlcv, market)) + const sorted = this.sortBy (parsed, 0) + const tail = since === undefined + return this.filterBySinceLimit (sorted, since, limit, 0, tail) } editLimitBuyOrder (id, symbol, ...args) { @@ -1260,20 +1256,20 @@ module.exports = class Exchange { return this.createOrder (symbol, ...args) } - createLimitOrder (symbol, ...args) { - return this.createOrder (symbol, 'limit', ...args) + createLimitOrder (symbol, side, amount, price = undefined, params = {}) { + return this.createOrder (symbol, 'limit', side, amount, price, params) } - createMarketOrder (symbol, ...args) { - return this.createOrder (symbol, 'market', ...args) + createMarketOrder (symbol, side, amount, price = undefined, params = {}) { + return this.createOrder (symbol, 'market', side, amount, price, params) } - createLimitBuyOrder (symbol, ...args) { - return this.createOrder (symbol, 'limit', 'buy', ...args) + createLimitBuyOrder (symbol, amount, price = undefined, params = {}) { + return this.createOrder (symbol, 'limit', 'buy', amount, price, params) } - createLimitSellOrder (symbol, ...args) { - return this.createOrder (symbol, 'limit', 'sell', ...args) + createLimitSellOrder (symbol, amount, price = undefined, params = {}) { + return this.createOrder (symbol, 'limit', 'sell', amount, price, params) } createMarketBuyOrder (symbol, amount, params = {}) { @@ -1285,7 +1281,7 @@ module.exports = class Exchange { } costToPrecision (symbol, cost) { - return decimalToPrecision (cost, ROUND, this.markets[symbol].precision.price, this.precisionMode, this.paddingMode) + return decimalToPrecision (cost, TRUNCATE, this.markets[symbol].precision.price, this.precisionMode, this.paddingMode) } priceToPrecision (symbol, price) { @@ -1372,7 +1368,7 @@ module.exports = class Exchange { // still takes the input as a hex string // same as above but returns a string instead of an object const signature = this.signMessage (message, privateKey) - return signature['r'] + this.remove0xPrefix (signature['s']) + this.binaryToBase16 (this.numberToBE (signature['v'])); + return signature['r'] + this.remove0xPrefix (signature['s']) + this.binaryToBase16 (this.numberToBE (signature['v'])) } oath () { @@ -1396,5 +1392,74 @@ module.exports = class Exchange { integerPow (a, b) { return new BN (a).pow (new BN (b)) } -} + safeOrder (order) { + // Cost + // Remaining + // Average + // Price + // Amount + // Filled + // + // First we try to calculate filled from the trades + const parseFilled = order['filled'] === undefined; + const parseCost = order['cost'] === undefined; + if (parseFilled) { + order['filled'] = 0 + } + if (parseCost) { + order['cost'] = 0 + } + if (parseFilled || parseCost) { + if (Array.isArray (order['trades'])) { + for (let i = 0; i < order['trades'].length; i++) { + const trade = order['trades'][i] + if (parseFilled) { + order['filled'] = this.sum (order['filled'], trade['amount']) + } + if (parseCost) { + order['cost'] = this.sum (order['cost'], trade['cost']) + } + } + } + } + // We ensure amount = filled + remaining + if (order['amount'] === undefined) { + if (order['filled'] !== undefined && order['remaining'] !== undefined) { + order['amount'] = this.sum (order['filled'], order['remaining']) + } + } + if (order['filled'] === undefined) { + if (order['amount'] !== undefined && order['remaining'] !== undefined) { + order['filled'] = Math.max (this.sum (order['amount'], -order['remaining']), 0) + } + } + if (order['remaining'] === undefined) { + if (order['amount'] !== undefined && order['filled'] !== undefined) { + order['remaining'] = Math.max (this.sum (order['amount'], -order['filled']), 0) + } + } + // We ensure that the average field is calculated correctly + if (order['average'] === undefined) { + if (order['filled'] !== undefined && order['cost'] !== undefined && order['cost'] > 0) { + order['average'] = order['filled'] / order['cost'] + } + } + // We also ensure the cost field is calculated correctly + const costPriceExists = (order['average'] !== undefined) || (order['price'] !== undefined) + if ((order['filled'] !== undefined) && costPriceExists) { + let costPrice = undefined; + if (order['average'] === undefined) { + costPrice = order['price'] + } else { + costPrice = order['average'] + } + order['cost'] = costPrice * order['filled'] + } + // We add support for market orders + if (order['price'] === undefined && order['type'] === 'market') { + order['price'] = order['average'] + } + return order + } +} diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/base/errors.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/base/errors.js index 25a28580a..5248e49d0 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/base/errors.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/base/errors.js @@ -30,6 +30,10 @@ function subclass (BaseClass, classes, namespace = {}) { this.__proto__ = Class.prototype this.name = className this.message = message + + // https://github.com/Microsoft/TypeScript/wiki/FAQ#why-doesnt-extending-built-ins-like-error-array-and-map-work + + Object.setPrototypeOf (this, Class.prototype) } } diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/base/functions/string.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/base/functions/string.js index cabc63b48..ba9601a12 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/base/functions/string.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/base/functions/string.js @@ -1,21 +1,18 @@ "use strict"; -/* ------------------------------------------------------------------------ */ +// ---------------------------------------------------------------------------- -const uuid = a => a ? (a ^ Math.random () * 16 >> a / 4).toString (16) - : ([1e7]+-1e3+-4e3+-8e3+-1e11).replace (/[018]/g, uuid) +const uuid = a => a ? (a ^ Math.random () * 16 >> a / 4).toString (16) : ([1e7]+-1e3+-4e3+-8e3+-1e11).replace (/[018]/g, uuid) +const uuid22 = a => a ? (a ^ Math.random () * 16 >> a / 4).toString (16) : ([1e7]+1e3+4e3+8e5).replace (/[018]/g, uuid22) -module.exports = +// ---------------------------------------------------------------------------- - { uuid +module.exports = { - // hasFetchOHLCV → has_fetch_ohlcv; parseHTTPResponse → parse_http_response + uuid + , uuid22 + // hasFetchOHLCV → has_fetch_ohlcv; parseHTTPResponse → parse_http_response , unCamelCase: s => s.match (/^[A-Z0-9_]+$/) ? s : (s.replace (/[a-z0-9][A-Z]/g, x => x[0] + '_' + x[1]).replace(/[A-Z0-9][A-Z0-9][a-z]/g, x => x[0] + '_' + x[1] + x[2]).toLowerCase ()) - - , capitalize: s => s.length - ? (s.charAt (0).toUpperCase () + s.slice (1)) - : s + , capitalize: s => s.length ? (s.charAt (0).toUpperCase () + s.slice (1)) : s , strip: s => s.replace(/^\s+|\s+$/g, '') - } - -/* ------------------------------------------------------------------------ */ +} diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bcex.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bcex.js deleted file mode 100644 index 22eb628a3..000000000 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bcex.js +++ /dev/null @@ -1,687 +0,0 @@ -'use strict'; - -// --------------------------------------------------------------------------- - -const Exchange = require ('./base/Exchange'); -const { ExchangeError, ArgumentsRequired, AuthenticationError, InsufficientFunds, InvalidOrder, OrderNotFound } = require ('./base/errors'); - -// --------------------------------------------------------------------------- - -module.exports = class bcex extends Exchange { - describe () { - return this.deepExtend (super.describe (), { - 'id': 'bcex', - 'name': 'BCEX', - 'countries': [ 'CN', 'HK' ], - 'version': '1', - 'has': { - 'cancelOrder': true, - 'createOrder': true, - 'fetchBalance': true, - 'fetchClosedOrders': 'emulated', - 'fetchMarkets': true, - 'fetchMyTrades': true, - 'fetchOpenOrders': true, - 'fetchOrder': true, - 'fetchOrders': true, - 'fetchOrderBook': true, - 'fetchTicker': true, - 'fetchTickers': false, - 'fetchTrades': true, - 'fetchTradingLimits': true, - }, - 'urls': { - 'logo': 'https://user-images.githubusercontent.com/51840849/77231516-851c6900-6bac-11ea-8fd6-ee5c23eddbd4.jpg', - 'api': 'https://www.bcex.top', - 'www': 'https://www.bcex.top', - 'doc': 'https://github.com/BCEX-TECHNOLOGY-LIMITED/API_Docs/wiki/Interface', - 'fees': 'https://bcex.udesk.cn/hc/articles/57085', - 'referral': 'https://www.bcex.top/register?invite_code=758978&lang=en', - }, - 'status': { - 'status': 'error', - 'updated': undefined, - 'eta': undefined, - 'url': undefined, - }, - 'api': { - 'public': { - 'get': [ - 'Api_Market/getPriceList', // tickers - 'Api_Order/ticker', // last ohlcv candle (ticker) - 'Api_Order/depth', // orderbook - 'Api_Market/getCoinTrade', // ticker - 'Api_Order/marketOrder', // trades... - ], - 'post': [ - 'Api_Market/getPriceList', // tickers - 'Api_Order/ticker', // last ohlcv candle (ticker) - 'Api_Order/depth', // orderbook - 'Api_Market/getCoinTrade', // ticker - 'Api_Order/marketOrder', // trades... - ], - }, - 'private': { - 'post': [ - 'Api_Order/cancel', - 'Api_Order/coinTrust', // limit order - 'Api_Order/orderList', // open / all orders (my trades?) - 'Api_Order/orderInfo', - 'Api_Order/tradeList', // open / all orders - 'Api_Order/trustList', // ? - 'Api_User/userBalance', - ], - }, - }, - 'fees': { - 'trading': { - 'tierBased': false, - 'percentage': true, - 'maker': 0.1 / 100, - 'taker': 0.2 / 100, - }, - 'funding': { - 'tierBased': false, - 'percentage': false, - 'withdraw': { - 'ckusd': 0.0, - 'other': 0.05 / 100, - }, - 'deposit': {}, - }, - }, - 'exceptions': { - '该币不存在,非法操作': ExchangeError, // { code: 1, msg: "该币不存在,非法操作" } - returned when a required symbol parameter is missing in the request (also, maybe on other types of errors as well) - '公钥不合法': AuthenticationError, // { code: 1, msg: '公钥不合法' } - wrong public key - '您的可用余额不足': InsufficientFunds, // { code: 1, msg: '您的可用余额不足' } - your available balance is insufficient - '您的btc不足': InsufficientFunds, // { code: 1, msg: '您的btc不足' } - your btc is insufficient - '参数非法': InvalidOrder, // {'code': 1, 'msg': '参数非法'} - 'Parameter illegal' - '订单信息不存在': OrderNotFound, // {'code': 1, 'msg': '订单信息不存在'} - 'Order information does not exist' - }, - 'commonCurrencies': { - 'UNI': 'UNI COIN', - 'PNT': 'Penta', - }, - 'options': { - 'limits': { - // hardcoding is deprecated, using these predefined values is not recommended, use loadTradingLimits instead - 'AFC/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 6, 'max': 120000 }}}, - 'AFC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 6, 'max': 120000 }}}, - 'AFT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 15, 'max': 300000 }}}, - 'AICC/CNET': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 5, 'max': 50000 }}}, - 'AIDOC/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 5, 'max': 100000 }}}, - 'AISI/ETH': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.001, 'max': 500 }}}, - 'AIT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 20, 'max': 400000 }}}, - 'ANS/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.1, 'max': 500 }}}, - 'ANS/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.1, 'max': 1000 }}}, - 'ARC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 60, 'max': 600000 }}}, - 'AXF/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 100, 'max': 1000000 }}}, - 'BASH/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 250, 'max': 3000000 }}}, - 'BATT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 60, 'max': 1500000 }}}, - 'BCD/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 0.3, 'max': 7000 }}}, - 'BHPC/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 2, 'max': 70000 }}}, - 'BHPC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 2, 'max': 60000 }}}, - 'BOPO/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 100, 'max': 2000000 }}}, - 'BOPO/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 100, 'max': 10000000 }}}, - 'BTC/CKUSD': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.001, 'max': 10 }}}, - 'BTC/CNET': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.0005, 'max': 5 }}}, - 'BTC/USDT': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.0002, 'max': 4 }}}, - 'BTE/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 25, 'max': 250000 }}}, - 'BU/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 20, 'max': 400000 }}}, - 'CIC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 3000, 'max': 30000000 }}}, - 'CIT/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 4, 'max': 40000 }}}, - 'CIT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 4, 'max': 40000 }}}, - 'CMT/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 5, 'max': 2500000 }}}, - 'CNET/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 12, 'max': 120000 }}}, - 'CNMC/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 4, 'max': 50000 }}}, - 'CTC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 5, 'max': 550000 }}}, - 'CZR/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 12, 'max': 500000 }}}, - 'DCON/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 8, 'max': 300000 }}}, - 'DCT/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 2, 'max': 40000 }}}, - 'DCT/CKUSD': { 'precision': { 'amount': 2, 'price': 3 }, 'limits': { 'amount': { 'min': 2, 'max': 2000 }}}, - 'DOGE/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 3000, 'max': 14000000 }}}, - 'DOGE/CKUSD': { 'precision': { 'amount': 2, 'price': 6 }, 'limits': { 'amount': { 'min': 500, 'max': 2000000 }}}, - 'DRCT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 16, 'max': 190000 }}}, - 'ELA/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 0.02, 'max': 500 }}}, - 'ELF/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 0.1, 'max': 100000 }}}, - 'ELF/CKUSD': { 'precision': { 'amount': 2, 'price': 3 }, 'limits': { 'amount': { 'min': 0.01, 'max': 100000 }}}, - 'EOS/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.5, 'max': 5000 }}}, - 'EOS/CNET': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 2.5, 'max': 30000 }}}, - 'EOS/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 0.18, 'max': 1800 }}}, - 'ETC/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.2, 'max': 2500 }}}, - 'ETC/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.2, 'max': 2500 }}}, - 'ETF/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 7, 'max': 150000 }}}, - 'ETH/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.015, 'max': 100 }}}, - 'ETH/CKUSD': { 'precision': { 'amount': 4, 'price': 4 }, 'limits': { 'amount': { 'min': 0.005, 'max': 100 }}}, - 'ETH/USDT': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.005, 'max': 100 }}}, - 'FCT/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.24, 'max': 1000 }}}, - 'FCT/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.24, 'max': 1000 }}}, - 'GAME/CNET': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 1, 'max': 10000 }}}, - 'GOOC/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 200, 'max': 2000000 }}}, - 'GP/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 600, 'max': 6000000 }}}, - 'HSC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 1000, 'max': 20000000 }}}, - 'IFISH/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 300, 'max': 8000000 }}}, - 'IIC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 50, 'max': 4000000 }}}, - 'IMOS/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 15, 'max': 300000 }}}, - 'JC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 300, 'max': 3000000 }}}, - 'LBTC/BTC': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 0.1, 'max': 3000 }}}, - 'LEC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 500, 'max': 5000000 }}}, - 'LKY/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 10, 'max': 70000 }}}, - 'LKY/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 10, 'max': 100000 }}}, - 'LMC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 25, 'max': 250000 }}}, - 'LSK/CNET': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.3, 'max': 3000 }}}, - 'LTC/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.01, 'max': 500 }}}, - 'LTC/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.01, 'max': 500 }}}, - 'LTC/USDT': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.02, 'max': 450 }}}, - 'MC/CNET': { 'precision': { 'amount': 2, 'price': 6 }, 'limits': { 'amount': { 'min': 10000, 'max': 100000000 }}}, - 'MCC/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 30, 'max': 350000 }}}, - 'MOC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 25, 'max': 600000 }}}, - 'MRYC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 300, 'max': 3000000 }}}, - 'MT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 200, 'max': 6000000 }}}, - 'MXI/CNET': { 'precision': { 'amount': 2, 'price': 6 }, 'limits': { 'amount': { 'min': 5000, 'max': 60000000 }}}, - 'NAI/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 10, 'max': 100000 }}}, - 'NAS/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.2, 'max': 15000 }}}, - 'NAS/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.5, 'max': 5000 }}}, - 'NEWOS/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 65, 'max': 700000 }}}, - 'NKN/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 3, 'max': 350000 }}}, - 'NTK/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 2, 'max': 30000 }}}, - 'ONT/CKUSD': { 'precision': { 'amount': 2, 'price': 3 }, 'limits': { 'amount': { 'min': 0.2, 'max': 2000 }}}, - 'ONT/ETH': { 'precision': { 'amount': 3, 'price': 8 }, 'limits': { 'amount': { 'min': 0.01, 'max': 1000 }}}, - 'PNT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 80, 'max': 800000 }}}, - 'PST/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 5, 'max': 100000 }}}, - 'PTT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 450, 'max': 10000000 }}}, - 'QTUM/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.4, 'max': 2800 }}}, - 'QTUM/CKUSD': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 0.1, 'max': 1000 }}}, - 'RATING/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 500, 'max': 10000000 }}}, - 'RHC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 1000, 'max': 10000000 }}}, - 'SDA/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 20, 'max': 500000 }}}, - 'SDD/CKUSD': { 'precision': { 'amount': 2, 'price': 3 }, 'limits': { 'amount': { 'min': 10, 'max': 100000 }}}, - 'SHC/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 250, 'max': 2500000 }}}, - 'SHE/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 100, 'max': 5000000 }}}, - 'SMC/CNET': { 'precision': { 'amount': 2, 'price': 6 }, 'limits': { 'amount': { 'min': 1000, 'max': 10000000 }}}, - 'SOP/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 50, 'max': 1000000 }}}, - 'TAC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 35, 'max': 800000 }}}, - 'TIP/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 7, 'max': 200000 }}}, - 'TKT/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 40, 'max': 400000 }}}, - 'TLC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 500, 'max': 10000000 }}}, - 'TNC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 10, 'max': 110000 }}}, - 'TUB/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 200, 'max': 8000000 }}}, - 'UC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 100, 'max': 3000000 }}}, - 'UDB/CNET': { 'precision': { 'amount': 2, 'price': 6 }, 'limits': { 'amount': { 'min': 2000, 'max': 40000000 }}}, - 'UIC/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 5, 'max': 150000 }}}, - 'VAAC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 10, 'max': 250000 }}}, - 'VPN/CNET': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 200, 'max': 2000000 }}}, - 'VSC/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 30, 'max': 650000 }}}, - 'WAVES/CKUSD': { 'precision': { 'amount': 2, 'price': 3 }, 'limits': { 'amount': { 'min': 0.15, 'max': 1500 }}}, - 'WDNA/ETH': { 'precision': { 'amount': 2, 'price': 8 }, 'limits': { 'amount': { 'min': 100, 'max': 250000 }}}, - 'WIC/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 3, 'max': 30000 }}}, - 'XAS/CNET': { 'precision': { 'amount': 2, 'price': 2 }, 'limits': { 'amount': { 'min': 2.5, 'max': 25000 }}}, - 'XLM/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 10, 'max': 300000 }}}, - 'XLM/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 1, 'max': 300000 }}}, - 'XLM/USDT': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 5, 'max': 150000 }}}, - 'XRP/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 24, 'max': 100000 }}}, - 'XRP/CKUSD': { 'precision': { 'amount': 2, 'price': 3 }, 'limits': { 'amount': { 'min': 5, 'max': 50000 }}}, - 'YBCT/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 15, 'max': 200000 }}}, - 'YBCT/CKUSD': { 'precision': { 'amount': 2, 'price': 4 }, 'limits': { 'amount': { 'min': 10, 'max': 200000 }}}, - 'YBY/CNET': { 'precision': { 'amount': 2, 'price': 6 }, 'limits': { 'amount': { 'min': 25000, 'max': 250000000 }}}, - 'ZEC/BTC': { 'precision': { 'amount': 4, 'price': 8 }, 'limits': { 'amount': { 'min': 0.02, 'max': 100 }}}, - 'ZEC/CKUSD': { 'precision': { 'amount': 4, 'price': 2 }, 'limits': { 'amount': { 'min': 0.02, 'max': 100 }}}, - }, - }, - }); - } - - async fetchTradingLimits (symbols = undefined, params = {}) { - // this method should not be called directly, use loadTradingLimits () instead - // by default it will try load withdrawal fees of all currencies (with separate requests, sequentially) - // however if you define symbols = [ 'ETH/BTC', 'LTC/BTC' ] in args it will only load those - await this.loadMarkets (); - if (symbols === undefined) { - symbols = this.symbols; - } - const result = {}; - for (let i = 0; i < symbols.length; i++) { - const symbol = symbols[i]; - result[symbol] = await this.fetchTradingLimitsById (this.marketId (symbol), params); - } - return result; - } - - async fetchTradingLimitsById (id, params = {}) { - const request = { - 'symbol': id, - }; - const response = await this.publicPostApiOrderTicker (this.extend (request, params)); - // - // { code: 0, - // msg: "获取牌价信息成功", - // data: { high: 0.03721392, - // low: 0.03335362, - // buy: "0.03525757", - // sell: "0.03531160", - // last: 0.0352634, - // vol: "184742.4176", - // min_trade: "0.01500000", - // max_trade: "100.00000000", - // number_float: "4", - // price_float: "8" } } } - // - return this.parseTradingLimits (this.safeValue (response, 'data', {})); - } - - parseTradingLimits (limits, symbol = undefined, params = {}) { - // - // { high: 0.03721392, - // low: 0.03335362, - // buy: "0.03525757", - // sell: "0.03531160", - // last: 0.0352634, - // vol: "184742.4176", - // min_trade: "0.01500000", - // max_trade: "100.00000000", - // number_float: "4", - // price_float: "8" } - // - return { - 'info': limits, - 'precision': { - 'amount': this.safeInteger (limits, 'number_float'), - 'price': this.safeInteger (limits, 'price_float'), - }, - 'limits': { - 'amount': { - 'min': this.safeFloat (limits, 'min_trade'), - 'max': this.safeFloat (limits, 'max_trade'), - }, - }, - }; - } - - async fetchMarkets (params = {}) { - const response = await this.publicGetApiMarketGetPriceList (params); - const result = []; - const keys = Object.keys (response); - for (let i = 0; i < keys.length; i++) { - const currentMarketId = keys[i]; - const currentMarkets = response[currentMarketId]; - for (let j = 0; j < currentMarkets.length; j++) { - const market = currentMarkets[j]; - const baseId = this.safeString (market, 'coin_from'); - const quoteId = this.safeString (market, 'coin_to'); - let base = baseId.toUpperCase (); - let quote = quoteId.toUpperCase (); - base = this.safeCurrencyCode (base); - quote = this.safeCurrencyCode (quote); - const id = baseId + '2' + quoteId; - const symbol = base + '/' + quote; - const active = true; - const defaults = this.safeValue (this.options['limits'], symbol, {}); - result.push (this.extend ({ - 'id': id, - 'symbol': symbol, - 'base': base, - 'quote': quote, - 'baseId': baseId, - 'quoteId': quoteId, - 'active': active, - // overrided by defaults from this.options['limits'] - 'precision': { - 'amount': undefined, - 'price': undefined, - }, - // overrided by defaults from this.options['limits'] - 'limits': { - 'amount': { 'min': undefined, 'max': undefined }, - 'price': { 'min': undefined, 'max': undefined }, - 'cost': { 'min': undefined, 'max': undefined }, - }, - 'info': market, - }, defaults)); - } - } - return result; - } - - parseTrade (trade, market = undefined) { - let symbol = undefined; - if (market !== undefined) { - symbol = market['symbol']; - } - const timestamp = this.safeTimestamp2 (trade, 'date', 'created'); - const id = this.safeString (trade, 'tid'); - const orderId = this.safeString (trade, 'order_id'); - const amount = this.safeFloat2 (trade, 'number', 'amount'); - const price = this.safeFloat (trade, 'price'); - let cost = undefined; - if (price !== undefined) { - if (amount !== undefined) { - cost = amount * price; - } - } - let side = this.safeString (trade, 'side'); - if (side === 'sale') { - side = 'sell'; - } - return { - 'info': trade, - 'id': id, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'symbol': symbol, - 'type': undefined, - 'side': side, - 'price': price, - 'amount': amount, - 'cost': cost, - 'order': orderId, - 'fee': undefined, - 'takerOrMaker': undefined, - }; - } - - async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const request = { - 'symbol': this.marketId (symbol), - }; - if (limit !== undefined) { - request['limit'] = limit; - } - const market = this.market (symbol); - const response = await this.publicPostApiOrderMarketOrder (this.extend (request, params)); - return this.parseTrades (response['data'], market, since, limit); - } - - async fetchBalance (params = {}) { - await this.loadMarkets (); - const response = await this.privatePostApiUserUserBalance (params); - const data = this.safeValue (response, 'data'); - let keys = Object.keys (data); - const result = { }; - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - const amount = this.safeFloat (data, key); - const parts = key.split ('_'); - const currencyId = parts[0]; - const lockOrOver = parts[1]; - const code = this.safeCurrencyCode (currencyId); - if (!(code in result)) { - result[code] = this.account (); - } - if (lockOrOver === 'lock') { - result[code]['used'] = parseFloat (amount); - } else { - result[code]['free'] = parseFloat (amount); - } - } - keys = Object.keys (result); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - const total = this.sum (result[key]['used'], result[key]['free']); - result[key]['total'] = total; - } - result['info'] = data; - return this.parseBalance (result); - } - - async fetchTicker (symbol, params = {}) { - await this.loadMarkets (); - const market = this.markets[symbol]; - const request = { - 'part': market['quoteId'], - 'coin': market['baseId'], - }; - const response = await this.publicPostApiMarketGetCoinTrade (this.extend (request, params)); - const timestamp = this.milliseconds (); - return { - 'symbol': symbol, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'high': this.safeFloat (response, 'max'), - 'low': this.safeFloat (response, 'min'), - 'bid': this.safeFloat (response, 'buy'), - 'bidVolume': undefined, - 'ask': this.safeFloat (response, 'sale'), - 'askVolume': undefined, - 'vwap': undefined, - 'open': undefined, - 'close': this.safeFloat (response, 'price'), - 'last': this.safeFloat (response, 'price'), - 'previousClose': undefined, - 'change': undefined, - 'percentage': this.safeFloat (response, 'change_24h'), - 'average': undefined, - 'baseVolume': this.safeFloat (response, 'volume_24h'), - 'quoteVolume': undefined, - 'info': response, - }; - } - - async fetchOrderBook (symbol, limit = undefined, params = {}) { - await this.loadMarkets (); - const marketId = this.marketId (symbol); - const request = { - 'symbol': marketId, - }; - const response = await this.publicPostApiOrderDepth (this.extend (request, params)); - const data = this.safeValue (response, 'data'); - const timestamp = this.safeTimestamp (data, 'date'); - return this.parseOrderBook (data, timestamp); - } - - async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const market = this.market (symbol); - const request = { - 'symbol': market['id'], - }; - const response = await this.privatePostApiOrderOrderList (this.extend (request, params)); - return this.parseTrades (response['data'], market, since, limit); - } - - parseOrderStatus (status) { - const statuses = { - '0': 'open', - '1': 'open', // partially filled - '2': 'closed', - '3': 'canceled', - }; - return this.safeString (statuses, status, status); - } - - async fetchOrder (id, symbol = undefined, params = {}) { - if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a `symbol` argument'); - } - await this.loadMarkets (); - const request = { - 'symbol': this.marketId (symbol), - 'trust_id': id, - }; - const response = await this.privatePostApiOrderOrderInfo (this.extend (request, params)); - const order = this.safeValue (response, 'data'); - const timestamp = this.safeTimestamp (order, 'created'); - const status = this.parseOrderStatus (this.safeString (order, 'status')); - let side = this.safeString (order, 'flag'); - if (side === 'sale') { - side = 'sell'; - } - // Can't use parseOrder because the data format is different btw endpoint for fetchOrder and fetchOrders - return { - 'info': order, - 'id': id, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'lastTradeTimestamp': undefined, - 'symbol': symbol, - 'type': undefined, - 'side': side, - 'price': this.safeFloat (order, 'price'), - 'cost': undefined, - 'average': this.safeFloat (order, 'avg_price'), - 'amount': this.safeFloat (order, 'number'), - 'filled': this.safeFloat (order, 'numberdeal'), - 'remaining': this.safeFloat (order, 'numberover'), - 'status': status, - 'fee': undefined, - 'clientOrderId': undefined, - 'trades': undefined, - }; - } - - parseOrder (order, market = undefined) { - const id = this.safeString (order, 'id'); - const timestamp = this.safeTimestamp (order, 'datetime'); - let symbol = undefined; - if (market !== undefined) { - symbol = market['symbol']; - } - const type = undefined; - let side = this.safeString (order, 'type'); - if (side === 'sale') { - side = 'sell'; - } - const price = this.safeFloat (order, 'price'); - const average = this.safeFloat (order, 'avg_price'); - const amount = this.safeFloat (order, 'amount'); - const remaining = this.safeFloat (order, 'amount_outstanding'); - const filled = amount - remaining; - const status = this.parseOrderStatus (this.safeString (order, 'status')); - const cost = filled * price; - const fee = undefined; - const result = { - 'info': order, - 'id': id, - 'clientOrderId': undefined, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'lastTradeTimestamp': undefined, - 'symbol': symbol, - 'type': type, - 'timeInForce': undefined, - 'side': side, - 'price': price, - 'stopPrice': undefined, - 'cost': cost, - 'average': average, - 'amount': amount, - 'filled': filled, - 'remaining': remaining, - 'status': status, - 'fee': fee, - 'trades': undefined, - }; - return result; - } - - async fetchOrdersByType (type, symbol = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const request = { - 'type': type, - }; - let market = undefined; - if (symbol !== undefined) { - market = this.market (symbol); - request['symbol'] = market['id']; - } - const response = await this.privatePostApiOrderTradeList (this.extend (request, params)); - if ('data' in response) { - return this.parseOrders (response['data'], market, since, limit); - } - return []; - } - - async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - return this.fetchOrdersByType ('open', symbol, since, limit, params); - } - - async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - const orders = await this.fetchOrders (symbol, since, limit, params); - return this.filterBy (orders, 'status', 'closed'); - } - - async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - return this.fetchOrdersByType ('all', symbol, since, limit, params); - } - - async createOrder (symbol, type, side, amount, price = undefined, params = {}) { - await this.loadMarkets (); - const request = { - 'symbol': this.marketId (symbol), - 'type': side, - 'price': this.priceToPrecision (symbol, price), - 'number': this.amountToPrecision (symbol, amount), - }; - const response = await this.privatePostApiOrderCoinTrust (this.extend (request, params)); - const data = this.safeValue (response, 'data', {}); - const id = this.safeString (data, 'order_id'); - return { - 'info': response, - 'id': id, - }; - } - - async cancelOrder (id, symbol = undefined, params = {}) { - if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a `symbol` argument'); - } - await this.loadMarkets (); - const request = {}; - if (symbol !== undefined) { - request['symbol'] = this.marketId (symbol); - } - if (id !== undefined) { - request['order_id'] = id; - } - return await this.privatePostApiOrderCancel (this.extend (request, params)); - } - - sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { - let url = this.urls['api'] + '/' + this.implodeParams (path, params); - const query = this.omit (params, this.extractParams (path)); - if (api === 'public') { - if (Object.keys (query).length) { - url += '?' + this.urlencode (query); - } - } else { - this.checkRequiredCredentials (); - let payload = this.urlencode ({ 'api_key': this.apiKey }); - if (Object.keys (query).length) { - payload += '&' + this.urlencode (this.keysort (query)); - } - const auth = payload + '&secret_key=' + this.secret; - const signature = this.hash (this.encode (auth)); - body = payload + '&sign=' + signature; - headers = { - 'Content-Type': 'application/x-www-form-urlencoded', - }; - } - return { 'url': url, 'method': method, 'body': body, 'headers': headers }; - } - - handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { - if (response === undefined) { - return; // fallback to default error handler - } - const errorCode = this.safeValue (response, 'code'); - if (errorCode !== undefined) { - if (errorCode !== 0) { - // - // { code: 1, msg: "该币不存在,非法操作" } - returned when a required symbol parameter is missing in the request (also, maybe on other types of errors as well) - // { code: 1, msg: '公钥不合法' } - wrong public key - // { code: 1, msg: '价格输入有误,请检查你的数值精度' } - 'The price input is incorrect, please check your numerical accuracy' - // { code: 1, msg: '单笔最小交易数量不能小于0.00100000,请您重新挂单'} - - // 'The minimum number of single transactions cannot be less than 0.00100000. Please re-post the order' - // - const message = this.safeString (response, 'msg'); - const feedback = this.id + ' ' + message; - this.throwExactlyMatchedException (this.exceptions, message, feedback); - if (message.indexOf ('请您重新挂单') >= 0) { // minimum limit - throw new InvalidOrder (feedback); - } else { - throw new ExchangeError (feedback); - } - } - } - } -}; diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bibox.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bibox.js index 5f1e30c04..4d46d8f35 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bibox.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bibox.js @@ -3,7 +3,7 @@ // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { ExchangeError, AccountSuspended, ArgumentsRequired, AuthenticationError, DDoSProtection, ExchangeNotAvailable, InvalidOrder, OrderNotFound, PermissionDenied, InsufficientFunds, BadSymbol } = require ('./base/errors'); +const { ExchangeError, AccountSuspended, ArgumentsRequired, AuthenticationError, DDoSProtection, ExchangeNotAvailable, InvalidOrder, OrderNotFound, PermissionDenied, InsufficientFunds, BadSymbol, RateLimitExceeded, BadRequest } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -71,6 +71,7 @@ module.exports = class bibox extends Exchange { 'get': [ 'cquery', 'mdata', + 'cdata', ], }, 'private': { @@ -108,9 +109,16 @@ module.exports = class bibox extends Exchange { '2021': InsufficientFunds, // Insufficient balance available for withdrawal '2027': InsufficientFunds, // Insufficient balance available (for trade) '2033': OrderNotFound, // operation failed! Orders have been completed or revoked + '2065': InvalidOrder, // Precatory price is exorbitant, please reset + '2066': InvalidOrder, // Precatory price is low, please reset '2067': InvalidOrder, // Does not support market orders '2068': InvalidOrder, // The number of orders can not be less than + '2078': InvalidOrder, // unvalid order price '2085': InvalidOrder, // Order quantity is too small + '2091': RateLimitExceeded, // request is too frequency, please try again later + '2092': InvalidOrder, // Minimum amount not met + '3000': BadRequest, // Requested parameter incorrect + '3002': BadRequest, // Parameter cannot be null '3012': AuthenticationError, // invalid apiKey '3016': BadSymbol, // Trading pair error '3024': PermissionDenied, // wrong apikey permissions @@ -124,6 +132,10 @@ module.exports = class bibox extends Exchange { 'KEY': 'Bihu', 'MTC': 'MTC Mesh Network', // conflict with MTC Docademic doc.com Token https://github.com/ccxt/ccxt/issues/6081 https://github.com/ccxt/ccxt/issues/3025 'PAI': 'PCHAIN', + 'TERN': 'Ternio-ERC20', + }, + 'options': { + 'fetchCurrencies': 'fetch_currencies_public', // or 'fetch_currencies_private' with apiKey and secret }, }); } @@ -423,6 +435,78 @@ module.exports = class bibox extends Exchange { } async fetchCurrencies (params = {}) { + const method = this.safeString (this.options, 'fetchCurrencies', 'fetch_currencies_public'); + return await this[method] (params); + } + + async fetchCurrenciesPublic (params = {}) { + const request = { + 'cmd': 'currencies', + }; + const response = await this.publicGetCdata (this.extend (request, params)); + // + // publicGetCdata + // + // { + // "result":[ + // { + // "symbol":"BTC", + // "name":"BTC", + // "valid_decimals":8, + // "original_decimals":8, + // "is_erc20":0, + // "enable_withdraw":1, + // "enable_deposit":1, + // "withdraw_min":0.005, + // "describe_summary":"[{\"lang\":\"zh-cn\",\"text\":\"Bitcoin 比特币的概念最初由中本聪在2009年提出,是点对点的基于 SHA-256 算法的一种P2P形式的数字货币,点对点的传输意味着一个去中心化的支付系统。\"},{\"lang\":\"en-ww\",\"text\":\"Bitcoin is a digital asset and a payment system invented by Satoshi Nakamoto who published a related paper in 2008 and released it as open-source software in 2009. The system featured as peer-to-peer; users can transact directly without an intermediary.\"}]" + // } + // ], + // "cmd":"currencies" + // } + // + const currencies = this.safeValue (response, 'result'); + const result = {}; + for (let i = 0; i < currencies.length; i++) { + const currency = currencies[i]; + const id = this.safeString (currency, 'symbol'); + const name = this.safeString (currency, 'name'); // contains hieroglyphs causing python ASCII bug + const code = this.safeCurrencyCode (id); + const precision = this.safeInteger (currency, 'valid_decimals'); + const deposit = this.safeValue (currency, 'enable_deposit'); + const withdraw = this.safeValue (currency, 'enable_withdraw'); + const active = (deposit && withdraw); + result[code] = { + 'id': id, + 'code': code, + 'info': currency, + 'name': name, + 'active': active, + 'fee': undefined, + 'precision': precision, + 'limits': { + 'amount': { + 'min': Math.pow (10, -precision), + 'max': undefined, + }, + 'price': { + 'min': Math.pow (10, -precision), + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + 'withdraw': { + 'min': this.safeFloat (currency, 'withdraw_min'), + 'max': undefined, + }, + }, + }; + } + return result; + } + + async fetchCurrenciesPrivate (params = {}) { if (!this.apiKey || !this.secret) { throw new AuthenticationError (this.id + " fetchCurrencies is an authenticated endpoint, therefore it requires 'apiKey' and 'secret' credentials. If you don't need currency details, set exchange.has['fetchCurrencies'] = false before calling its methods."); } @@ -435,46 +519,42 @@ module.exports = class bibox extends Exchange { // { // "result":[ // { - // "result":[ - // { - // "totalBalance":"14.57582269", - // "balance":"14.57582269", - // "freeze":"0.00000000", - // "id":60, - // "symbol":"USDT", - // "icon_url":"/appimg/USDT_icon.png", - // "describe_url":"[{\"lang\":\"zh-cn\",\"link\":\"https://bibox.zendesk.com/hc/zh-cn/articles/115004798234\"},{\"lang\":\"en-ww\",\"link\":\"https://bibox.zendesk.com/hc/en-us/articles/115004798234\"}]", - // "name":"USDT", - // "enable_withdraw":1, - // "enable_deposit":1, - // "enable_transfer":1, - // "confirm_count":2, - // "is_erc20":1, - // "forbid_info":null, - // "describe_summary":"[{\"lang\":\"zh-cn\",\"text\":\"USDT 是 Tether 公司推出的基于稳定价值货币美元(USD)的代币 Tether USD(简称USDT),1USDT=1美元,用户可以随时使用 USDT 与 USD 进行1:1的兑换。\"},{\"lang\":\"en-ww\",\"text\":\"USDT is a cryptocurrency asset issued on the Bitcoin blockchain via the Omni Layer Protocol. Each USDT unit is backed by a U.S Dollar held in the reserves of the Tether Limited and can be redeemed through the Tether Platform.\"}]", - // "total_amount":4776930644, - // "supply_amount":4642367414, - // "price":"--", - // "contract_father":"OMNI", - // "supply_time":"--", - // "comment":null, - // "contract":"31", - // "original_decimals":8, - // "deposit_type":0, - // "hasCobo":0, - // "BTCValue":"0.00126358", - // "CNYValue":"100.93381445", - // "USDValue":"14.57524654", - // "children":[ - // {"type":"OMNI","symbol":"USDT","enable_deposit":1,"enable_withdraw":1,"confirm_count":2}, - // {"type":"TRC20","symbol":"tUSDT","enable_deposit":1,"enable_withdraw":1,"confirm_count":20}, - // {"type":"ERC20","symbol":"eUSDT","enable_deposit":1,"enable_withdraw":1,"confirm_count":25} - // ] - // }, - // ], - // "cmd":"transfer/coinList" - // } - // ] + // "totalBalance":"14.57582269", + // "balance":"14.57582269", + // "freeze":"0.00000000", + // "id":60, + // "symbol":"USDT", + // "icon_url":"/appimg/USDT_icon.png", + // "describe_url":"[{\"lang\":\"zh-cn\",\"link\":\"https://bibox.zendesk.com/hc/zh-cn/articles/115004798234\"},{\"lang\":\"en-ww\",\"link\":\"https://bibox.zendesk.com/hc/en-us/articles/115004798234\"}]", + // "name":"USDT", + // "enable_withdraw":1, + // "enable_deposit":1, + // "enable_transfer":1, + // "confirm_count":2, + // "is_erc20":1, + // "forbid_info":null, + // "describe_summary":"[{\"lang\":\"zh-cn\",\"text\":\"USDT 是 Tether 公司推出的基于稳定价值货币美元(USD)的代币 Tether USD(简称USDT),1USDT=1美元,用户可以随时使用 USDT 与 USD 进行1:1的兑换。\"},{\"lang\":\"en-ww\",\"text\":\"USDT is a cryptocurrency asset issued on the Bitcoin blockchain via the Omni Layer Protocol. Each USDT unit is backed by a U.S Dollar held in the reserves of the Tether Limited and can be redeemed through the Tether Platform.\"}]", + // "total_amount":4776930644, + // "supply_amount":4642367414, + // "price":"--", + // "contract_father":"OMNI", + // "supply_time":"--", + // "comment":null, + // "contract":"31", + // "original_decimals":8, + // "deposit_type":0, + // "hasCobo":0, + // "BTCValue":"0.00126358", + // "CNYValue":"100.93381445", + // "USDValue":"14.57524654", + // "children":[ + // {"type":"OMNI","symbol":"USDT","enable_deposit":1,"enable_withdraw":1,"confirm_count":2}, + // {"type":"TRC20","symbol":"tUSDT","enable_deposit":1,"enable_withdraw":1,"confirm_count":20}, + // {"type":"ERC20","symbol":"eUSDT","enable_deposit":1,"enable_withdraw":1,"confirm_count":25} + // ] + // }, + // ], + // "cmd":"transfer/coinList" // } // const currencies = this.safeValue (response, 'result'); @@ -799,6 +879,7 @@ module.exports = class bibox extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -851,7 +932,7 @@ module.exports = class bibox extends Exchange { async fetchClosedOrders (symbol = undefined, since = undefined, limit = 200, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchClosedOrders requires a `symbol` argument'); + throw new ArgumentsRequired (this.id + ' fetchClosedOrders() requires a `symbol` argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -871,7 +952,7 @@ module.exports = class bibox extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a `symbol` argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a `symbol` argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -998,7 +1079,7 @@ module.exports = class bibox extends Exchange { } } else if (api === 'v2private') { this.checkRequiredCredentials (); - url = this.urls['api'] + '/v2/' + path; + url = this.implodeParams (this.urls['api'], { 'hostname': this.hostname }) + '/v2/' + path; const json_params = this.json (params); body = { 'body': json_params, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bigone.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bigone.js index b589aceeb..d6e940c4d 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bigone.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bigone.js @@ -78,6 +78,7 @@ module.exports = class bigone extends Exchange { 'private': { 'get': [ 'accounts', + 'fund/accounts', 'assets/{asset_symbol}/address', 'orders', 'orders/{id}', @@ -91,6 +92,7 @@ module.exports = class bigone extends Exchange { 'orders/{id}/cancel', 'orders/cancel', 'withdrawals', + 'transfer', ], }, }, @@ -645,7 +647,10 @@ module.exports = class bigone extends Exchange { async fetchBalance (params = {}) { await this.loadMarkets (); - const response = await this.privateGetAccounts (params); + const type = this.safeString (params, 'type', ''); + params = this.omit (params, 'type'); + const method = 'privateGet' + this.capitalize (type) + 'Accounts'; + const response = await this[method] (params); // // { // "code":0, @@ -721,6 +726,7 @@ module.exports = class bigone extends Exchange { 'symbol': symbol, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -758,7 +764,7 @@ module.exports = class bigone extends Exchange { if (isStopLimit || isStopMarket) { const stopPrice = this.safeFloat2 (params, 'stop_price', 'stopPrice'); if (stopPrice === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires a stop_price parameter'); + throw new ArgumentsRequired (this.id + ' createOrder() requires a stop_price parameter'); } request['stop_price'] = this.priceToPrecision (symbol, stopPrice); params = this.omit (params, [ 'stop_price', 'stopPrice' ]); diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/binance.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/binance.js index c9e459dfb..a115b3f7b 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/binance.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/binance.js @@ -3,7 +3,7 @@ // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { ExchangeError, ArgumentsRequired, ExchangeNotAvailable, InsufficientFunds, OrderNotFound, InvalidOrder, DDoSProtection, InvalidNonce, AuthenticationError, InvalidAddress, RateLimitExceeded, PermissionDenied, NotSupported, BadRequest, BadSymbol, AccountSuspended, OrderImmediatelyFillable } = require ('./base/errors'); +const { ExchangeError, ArgumentsRequired, ExchangeNotAvailable, InsufficientFunds, OrderNotFound, InvalidOrder, DDoSProtection, InvalidNonce, AuthenticationError, RateLimitExceeded, PermissionDenied, NotSupported, BadRequest, BadSymbol, AccountSuspended, OrderImmediatelyFillable } = require ('./base/errors'); const { ROUND, TRUNCATE } = require ('./base/functions/number'); // --------------------------------------------------------------------------- @@ -23,6 +23,7 @@ module.exports = class binance extends Exchange { 'cancelOrder': true, 'CORS': false, 'createOrder': true, + 'fetchCurrencies': true, 'fetchBalance': true, 'fetchBidsAsks': true, 'fetchClosedOrders': 'emulated', @@ -113,6 +114,7 @@ module.exports = class binance extends Exchange { 'margin/priceIndex', // these endpoints require this.apiKey + this.secret 'asset/assetDividend', + 'asset/transfer', 'margin/loan', 'margin/repay', 'margin/account', @@ -154,6 +156,7 @@ module.exports = class binance extends Exchange { 'sub-account/spotSummary', 'sub-account/status', 'sub-account/transfer/subUserHistory', + 'sub-account/universalTransfer', // lending endpoints 'lending/daily/product/list', 'lending/daily/userLeftQuota', @@ -179,9 +182,23 @@ module.exports = class binance extends Exchange { 'bswap/liquidityOps', 'bswap/quote', 'bswap/swap', + // leveraged token endpoints + 'blvt/tokenInfo', + 'blvt/subscribe/record', + 'blvt/redeem/record', + 'blvt/userLimit', + // broker api + 'apiReferral/ifNewUser', + 'apiReferral/customization', + 'apiReferral/userCustomization', + 'apiReferral/rebate/recentRecord', + 'apiReferral/rebate/historicalRecord', + 'apiReferral/kickback/recentRecord', + 'apiReferral/kickback/historicalRecord', ], 'post': [ 'asset/dust', + 'asset/transfer', 'account/disableFastWithdrawSwitch', 'account/enableFastWithdrawSwitch', 'capital/withdraw/apply', @@ -199,6 +216,7 @@ module.exports = class binance extends Exchange { 'sub-account/futures/internalTransfer', 'sub-account/transfer/subToSub', 'sub-account/transfer/subToMaster', + 'sub-account/universalTransfer', 'userDataStream', 'userDataStream/isolated', 'futures/transfer', @@ -213,12 +231,21 @@ module.exports = class binance extends Exchange { 'bswap/liquidityAdd', 'bswap/liquidityRemove', 'bswap/swap', + // leveraged token endpoints + 'blvt/subscribe', + 'blvt/redeem', + // broker api + 'apiReferral/customization', + 'apiReferral/userCustomization', + 'apiReferral/rebate/historicalRecord', + 'apiReferral/kickback/historicalRecord', ], 'put': [ 'userDataStream', 'userDataStream/isolated', ], 'delete': [ + 'margin/openOrders', 'margin/order', 'userDataStream', 'userDataStream/isolated', @@ -323,6 +350,7 @@ module.exports = class binance extends Exchange { 'historicalTrades', 'aggTrades', 'klines', + 'continuousKlines', 'fundingRate', 'premiumIndex', 'ticker/24hr', @@ -357,6 +385,15 @@ module.exports = class binance extends Exchange { 'positionSide/dual', 'userTrades', 'income', + // broker endpoints + 'apiReferral/ifNewUser', + 'apiReferral/customization', + 'apiReferral/userCustomization', + 'apiReferral/traderNum', + 'apiReferral/overview', + 'apiReferral/tradeVol', + 'apiReferral/rebateVol', + 'apiReferral/traderSummary', ], 'post': [ 'batchOrders', @@ -367,6 +404,9 @@ module.exports = class binance extends Exchange { 'leverage', 'listenKey', 'countdownCancelAll', + // broker endpoints + 'apiReferral/customization', + 'apiReferral/userCustomization', ], 'put': [ 'listenKey', @@ -446,6 +486,7 @@ module.exports = class binance extends Exchange { }, // exchange-specific options 'options': { + 'fetchCurrencies': false, // this is a private call and it requires API keys // 'fetchTradesMethod': 'publicGetAggTrades', // publicGetTrades, publicGetHistoricalTrades 'defaultTimeInForce': 'GTC', // 'GTC' = Good To Cancel (default), 'IOC' = Immediate Or Cancel 'defaultType': 'spot', // 'spot', 'future', 'margin', 'delivery' @@ -460,11 +501,20 @@ module.exports = class binance extends Exchange { 'limit': 'RESULT', // we change it from 'ACK' by default to 'RESULT' }, 'quoteOrderQty': true, // whether market orders support amounts in quote currency + 'broker': { + 'spot': 'x-R4BD3S82', + 'margin': 'x-R4BD3S82', + 'future': 'x-xcKtGhcu', + 'delivery': 'x-xcKtGhcu', + }, }, // https://binance-docs.github.io/apidocs/spot/en/#error-codes-2 'exceptions': { + 'System abnormality': ExchangeError, // {"code":-1000,"msg":"System abnormality"} + 'You are not authorized to execute this request.': PermissionDenied, // {"msg":"You are not authorized to execute this request."} 'API key does not exist': AuthenticationError, 'Order would trigger immediately.': OrderImmediatelyFillable, + 'Stop price would trigger immediately.': OrderImmediatelyFillable, // {"code":-2010,"msg":"Stop price would trigger immediately."} 'Order would immediately match and take.': OrderImmediatelyFillable, // {"code":-2010,"msg":"Order would immediately match and take."} 'Account has insufficient balance for requested action.': InsufficientFunds, 'Rest API trading is not enabled.': ExchangeNotAvailable, @@ -508,14 +558,21 @@ module.exports = class binance extends Exchange { '-2013': OrderNotFound, // fetchOrder (1, 'BTC/USDT') -> 'Order does not exist' '-2014': AuthenticationError, // { "code":-2014, "msg": "API-key format invalid." } '-2015': AuthenticationError, // "Invalid API-key, IP, or permissions for action." + '-2019': InsufficientFunds, // {"code":-2019,"msg":"Margin is insufficient."} '-3005': InsufficientFunds, // {"code":-3005,"msg":"Transferring out not allowed. Transfer out amount exceeds max amount."} '-3008': InsufficientFunds, // {"code":-3008,"msg":"Borrow not allowed. Your borrow amount has exceed maximum borrow amount."} '-3010': ExchangeError, // {"code":-3010,"msg":"Repay not allowed. Repay amount exceeds borrow amount."} '-3022': AccountSuspended, // You account's trading is banned. + '-4028': BadRequest, // {"code":-4028,"msg":"Leverage 100 is not valid"} + '-5013': InsufficientFunds, // Asset transfer failed: insufficient balance" }, }); } + currencyToPrecision (currency, fee) { + return this.numberToString (fee); + } + nonce () { return this.milliseconds () - this.options['timeDifference']; } @@ -539,6 +596,145 @@ module.exports = class binance extends Exchange { return this.options['timeDifference']; } + async fetchCurrencies (params = {}) { + const fetchCurrenciesEnabled = this.safeValue (this.options, 'fetchCurrencies'); + if (!fetchCurrenciesEnabled) { + return undefined; + } + // this endpoint requires authentication + // while fetchCurrencies is a public API method by design + // therefore we check the keys here + // and fallback to generating the currencies from the markets + if (!this.checkRequiredCredentials (false)) { + return undefined; + } + // sandbox/testnet does not support sapi endpoints + const apiBackup = this.safeString (this.urls, 'apiBackup'); + if (apiBackup !== undefined) { + return undefined; + } + const response = await this.sapiGetCapitalConfigGetall (params); + const result = {}; + for (let i = 0; i < response.length; i++) { + // + // { + // coin: 'LINK', + // depositAllEnable: true, + // withdrawAllEnable: true, + // name: 'ChainLink', + // free: '0.06168', + // locked: '0', + // freeze: '0', + // withdrawing: '0', + // ipoing: '0', + // ipoable: '0', + // storage: '0', + // isLegalMoney: false, + // trading: true, + // networkList: [ + // { + // network: 'BNB', + // coin: 'LINK', + // withdrawIntegerMultiple: '0', + // isDefault: false, + // depositEnable: true, + // withdrawEnable: true, + // depositDesc: '', + // withdrawDesc: '', + // specialTips: 'Both a MEMO and an Address are required to successfully deposit your LINK BEP2 tokens to Binance.', + // name: 'BEP2', + // resetAddressStatus: false, + // addressRegex: '^(bnb1)[0-9a-z]{38}$', + // memoRegex: '^[0-9A-Za-z\\-_]{1,120}$', + // withdrawFee: '0.002', + // withdrawMin: '0.01', + // withdrawMax: '9999999', + // minConfirm: 1, + // unLockConfirm: 0 + // }, + // { + // network: 'BSC', + // coin: 'LINK', + // withdrawIntegerMultiple: '0.00000001', + // isDefault: false, + // depositEnable: true, + // withdrawEnable: true, + // depositDesc: '', + // withdrawDesc: '', + // specialTips: '', + // name: 'BEP20 (BSC)', + // resetAddressStatus: false, + // addressRegex: '^(0x)[0-9A-Fa-f]{40}$', + // memoRegex: '', + // withdrawFee: '0.005', + // withdrawMin: '0.01', + // withdrawMax: '9999999', + // minConfirm: 15, + // unLockConfirm: 0 + // }, + // { + // network: 'ETH', + // coin: 'LINK', + // withdrawIntegerMultiple: '0.00000001', + // isDefault: true, + // depositEnable: true, + // withdrawEnable: true, + // depositDesc: '', + // withdrawDesc: '', + // name: 'ERC20', + // resetAddressStatus: false, + // addressRegex: '^(0x)[0-9A-Fa-f]{40}$', + // memoRegex: '', + // withdrawFee: '0.34', + // withdrawMin: '0.68', + // withdrawMax: '0', + // minConfirm: 12, + // unLockConfirm: 0 + // } + // ] + // } + // + const entry = response[i]; + const id = this.safeString (entry, 'coin'); + const name = this.safeString (entry, 'name'); + const code = this.safeCurrencyCode (id); + const precision = undefined; + let isWithdrawEnabled = true; + let isDepositEnabled = true; + const networkList = this.safeValue (entry, 'networkList', []); + const fees = {}; + let fee = undefined; + for (let j = 0; j < networkList.length; j++) { + const networkItem = networkList[j]; + const name = this.safeString (networkItem, 'name'); + const withdrawFee = this.safeFloat (networkItem, 'withdrawFee'); + const depositEnable = this.safeValue (networkItem, 'depositEnable'); + const withdrawEnable = this.safeValue (networkItem, 'withdrawEnable'); + isDepositEnabled = isDepositEnabled || depositEnable; + isWithdrawEnabled = isWithdrawEnabled || withdrawEnable; + fees[name] = withdrawFee; + const isDefault = this.safeValue (networkItem, 'isDefault'); + if (isDefault || fee === undefined) { + fee = withdrawFee; + } + } + const trading = this.safeValue (entry, 'trading'); + const active = (isWithdrawEnabled && isDepositEnabled && trading); + result[code] = { + 'id': id, + 'name': name, + 'code': code, + 'precision': precision, + 'info': entry, + 'active': active, + 'fee': fee, + 'fees': fees, + 'limits': this.limits, + }; + } + return result; + } + async fetchMarkets (params = {}) { const defaultType = this.safeString2 (this.options, 'fetchMarkets', 'defaultType', 'spot'); const type = this.safeString (params, 'type', defaultType); @@ -715,9 +911,8 @@ module.exports = class binance extends Exchange { const quoteId = this.safeString (market, 'quoteAsset'); const base = this.safeCurrencyCode (baseId); const quote = this.safeCurrencyCode (quoteId); - const parts = id.split ('_'); - const lastPart = this.safeString (parts, 1); - const idSymbol = (delivery) && (lastPart !== 'PERP'); + const contractType = this.safeString (market, 'contractType'); + const idSymbol = (future || delivery) && (contractType !== 'PERPETUAL'); const symbol = idSymbol ? id : (base + '/' + quote); const filters = this.safeValue (market, 'filters', []); const filtersByType = this.indexBy (filters, 'filterType'); @@ -795,7 +990,7 @@ module.exports = class binance extends Exchange { } if ('MIN_NOTIONAL' in filtersByType) { const filter = this.safeValue (filtersByType, 'MIN_NOTIONAL', {}); - entry['limits']['cost']['min'] = this.safeFloat (filter, 'minNotional'); + entry['limits']['cost']['min'] = this.safeFloat2 (filter, 'minNotional', 'notional'); } result.push (entry); } @@ -1197,15 +1392,24 @@ module.exports = class binance extends Exchange { async fetchOHLCV (symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); const market = this.market (symbol); + // binance docs say that the default limit 500, max 1500 for futures, max 1000 for spot markets + // the reality is that the time range wider than 500 candles won't work right + const defaultLimit = 500; + const maxLimit = 1500; + limit = (limit === undefined) ? defaultLimit : Math.min (limit, maxLimit); const request = { 'symbol': market['id'], 'interval': this.timeframes[timeframe], + 'limit': limit, }; + const duration = this.parseTimeframe (timeframe); if (since !== undefined) { request['startTime'] = since; - } - if (limit !== undefined) { - request['limit'] = limit; // default == max == 500 + if (since > 0) { + const endTime = this.sum (since, limit * duration * 1000 - 1); + const now = this.milliseconds (); + request['endTime'] = Math.min (now, endTime); + } } let method = 'publicGetKlines'; if (market['future']) { @@ -1293,6 +1497,23 @@ module.exports = class binance extends Exchange { // "symbol": "BTCUSDT", // "time": 1569514978020 // } + // { + // "symbol": "BTCUSDT", + // "id": 477128891, + // "orderId": 13809777875, + // "side": "SELL", + // "price": "38479.55", + // "qty": "0.001", + // "realizedPnl": "-0.00009534", + // "marginAsset": "USDT", + // "quoteQty": "38.47955", + // "commission": "-0.00076959", + // "commissionAsset": "USDT", + // "time": 1612733566708, + // "positionSide": "BOTH", + // "maker": true, + // "buyer": false + // } // const timestamp = this.safeInteger2 (trade, 'T', 'time'); const price = this.safeFloat2 (trade, 'p', 'price'); @@ -1322,6 +1543,9 @@ module.exports = class binance extends Exchange { if ('isMaker' in trade) { takerOrMaker = trade['isMaker'] ? 'maker' : 'taker'; } + if ('maker' in trade) { + takerOrMaker = trade['maker'] ? 'maker' : 'taker'; + } const marketId = this.safeString (trade, 'symbol'); const symbol = this.safeSymbol (marketId, market); let cost = undefined; @@ -1439,7 +1663,7 @@ module.exports = class binance extends Exchange { 'CANCELED': 'canceled', 'PENDING_CANCEL': 'canceling', // currently unused 'REJECTED': 'rejected', - 'EXPIRED': 'canceled', + 'EXPIRED': 'expired', }; return this.safeString (statuses, status, status); } @@ -1565,6 +1789,8 @@ module.exports = class binance extends Exchange { } const clientOrderId = this.safeString (order, 'clientOrderId'); const timeInForce = this.safeString (order, 'timeInForce'); + const postOnly = (type === 'limit_maker') || (timeInForce === 'GTX'); + const stopPrice = this.safeFloat (order, 'stopPrice'); return { 'info': order, 'id': id, @@ -1575,8 +1801,10 @@ module.exports = class binance extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, + 'stopPrice': stopPrice, 'amount': amount, 'cost': cost, 'average': average, @@ -1621,7 +1849,15 @@ module.exports = class binance extends Exchange { 'type': uppercaseType, 'side': side.toUpperCase (), }; - if (clientOrderId !== undefined) { + if (clientOrderId === undefined) { + const broker = this.safeValue (this.options, 'broker'); + if (broker) { + const brokerId = this.safeString (broker, orderType); + if (brokerId !== undefined) { + request['newClientOrderId'] = brokerId + this.uuid22 (); + } + } + } else { request['newClientOrderId'] = clientOrderId; } if (market['spot']) { @@ -1700,7 +1936,7 @@ module.exports = class binance extends Exchange { quantityIsRequired = true; const callbackRate = this.safeFloat (params, 'callbackRate'); if (callbackRate === undefined) { - throw new InvalidOrder (this.id + ' createOrder method requires a callbackRate extra param for a ' + type + ' order'); + throw new InvalidOrder (this.id + ' createOrder() requires a callbackRate extra param for a ' + type + ' order'); } } if (quantityIsRequired) { @@ -1708,7 +1944,7 @@ module.exports = class binance extends Exchange { } if (priceIsRequired) { if (price === undefined) { - throw new InvalidOrder (this.id + ' createOrder method requires a price argument for a ' + type + ' order'); + throw new InvalidOrder (this.id + ' createOrder() requires a price argument for a ' + type + ' order'); } request['price'] = this.priceToPrecision (symbol, price); } @@ -1718,7 +1954,7 @@ module.exports = class binance extends Exchange { if (stopPriceIsRequired) { const stopPrice = this.safeFloat (params, 'stopPrice'); if (stopPrice === undefined) { - throw new InvalidOrder (this.id + ' createOrder method requires a stopPrice extra param for a ' + type + ' order'); + throw new InvalidOrder (this.id + ' createOrder() requires a stopPrice extra param for a ' + type + ' order'); } else { params = this.omit (params, 'stopPrice'); request['stopPrice'] = this.priceToPrecision (symbol, stopPrice); @@ -1730,7 +1966,7 @@ module.exports = class binance extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1751,7 +1987,7 @@ module.exports = class binance extends Exchange { if (clientOrderId !== undefined) { request['origClientOrderId'] = clientOrderId; } else { - request['orderId'] = parseInt (id); + request['orderId'] = id; } const query = this.omit (params, [ 'type', 'clientOrderId', 'origClientOrderId' ]); const response = await this[method] (this.extend (request, query)); @@ -1760,7 +1996,7 @@ module.exports = class binance extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1873,7 +2109,7 @@ module.exports = class binance extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1883,11 +2119,11 @@ module.exports = class binance extends Exchange { const origClientOrderId = this.safeValue2 (params, 'origClientOrderId', 'clientOrderId'); const request = { 'symbol': market['id'], - // 'orderId': parseInt (id), + // 'orderId': id, // 'origClientOrderId': id, }; if (origClientOrderId === undefined) { - request['orderId'] = parseInt (id); + request['orderId'] = id; } else { request['origClientOrderId'] = origClientOrderId; } @@ -1906,7 +2142,7 @@ module.exports = class binance extends Exchange { async cancelAllOrders (symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelAllOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelAllOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1917,7 +2153,9 @@ module.exports = class binance extends Exchange { const type = this.safeString (params, 'type', defaultType); const query = this.omit (params, 'type'); let method = 'privateDeleteOpenOrders'; - if (type === 'future') { + if (type === 'margin') { + method = 'sapiDeleteMarginOpenOrders'; + } else if (type === 'future') { method = 'fapiPrivateDeleteAllOpenOrders'; } else if (type === 'delivery') { method = 'dapiPrivateDeleteAllOpenOrders'; @@ -1983,20 +2221,23 @@ module.exports = class binance extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); - const type = this.safeValue (params, 'type', market['type']); + const defaultType = this.safeString2 (this.options, 'fetchMyTrades', 'defaultType', market['type']); + const type = this.safeString (params, 'type', defaultType); + params = this.omit (params, 'type'); let method = undefined; if (type === 'spot') { method = 'privateGetMyTrades'; + } else if (type === 'margin') { + method = 'sapiGetMarginMyTrades'; } else if (type === 'future') { method = 'fapiPrivateGetUserTrades'; } else if (type === 'delivery') { method = 'dapiPrivateGetUserTrades'; } - params = this.omit (params, 'type'); const request = { 'symbol': market['id'], }; @@ -2280,7 +2521,10 @@ module.exports = class binance extends Exchange { tag = undefined; } } - const txid = this.safeString (transaction, 'txId'); + let txid = this.safeString (transaction, 'txId'); + if ((txid !== undefined) && (txid.indexOf ('Internal transfer ') >= 0)) { + txid = txid.slice (18); + } const currencyId = this.safeString (transaction, 'asset'); const code = this.safeCurrencyCode (currencyId, currency); let timestamp = undefined; @@ -2329,15 +2573,27 @@ module.exports = class binance extends Exchange { await this.loadMarkets (); const currency = this.currency (code); const request = { - 'asset': currency['id'], + 'coin': currency['id'], + // 'network': 'ETH', // 'BSC', 'XMR', you can get network and isDefault in networkList in the response of sapiGetCapitalConfigDetail }; - const response = await this.wapiGetDepositAddress (this.extend (request, params)); - const success = this.safeValue (response, 'success'); - if ((success === undefined) || !success) { - throw new InvalidAddress (this.id + ' fetchDepositAddress returned an empty response – create the deposit address in the user settings first.'); - } + // has support for the 'network' parameter + // https://binance-docs.github.io/apidocs/spot/en/#deposit-address-supporting-network-user_data + const response = await this.sapiGetCapitalDepositAddress (this.extend (request, params)); + // + // { + // currency: 'XRP', + // address: 'rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh', + // tag: '108618262', + // info: { + // coin: 'XRP', + // address: 'rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh', + // tag: '108618262', + // url: 'https://bithomp.com/explorer/rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh' + // } + // } + // const address = this.safeString (response, 'address'); - const tag = this.safeString (response, 'addressTag'); + const tag = this.safeString (response, 'tag'); this.checkAddress (address); return { 'currency': code, @@ -2515,7 +2771,7 @@ module.exports = class binance extends Exchange { 'timestamp': this.nonce (), 'recvWindow': recvWindow, }, params)); - } else if (path === 'batchOrders') { + } else if ((path === 'batchOrders') || (path.indexOf ('sub-account') >= 0)) { query = this.rawencode (this.extend ({ 'timestamp': this.nonce (), 'recvWindow': recvWindow, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/binanceus.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/binanceus.js index c35f3f3e4..f7bd5c19c 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/binanceus.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/binanceus.js @@ -42,5 +42,9 @@ module.exports = class binanceus extends binance { }, }); } + + async fetchCurrencies (params = {}) { + return undefined; + } }; diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bit2c.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bit2c.js index f09a98746..a4d60733a 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bit2c.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bit2c.js @@ -306,6 +306,7 @@ module.exports = class bit2c extends Exchange { 'symbol': symbol, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitbank.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitbank.js index 722f16be6..d357531d7 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitbank.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitbank.js @@ -82,6 +82,8 @@ module.exports = class bitbank extends Exchange { 'BCH/JPY': { 'id': 'bcc_jpy', 'symbol': 'BCH/JPY', 'base': 'BCH', 'quote': 'JPY', 'baseId': 'bcc', 'quoteId': 'jpy' }, 'MONA/BTC': { 'id': 'mona_btc', 'symbol': 'MONA/BTC', 'base': 'MONA', 'quote': 'BTC', 'baseId': 'mona', 'quoteId': 'btc' }, 'MONA/JPY': { 'id': 'mona_jpy', 'symbol': 'MONA/JPY', 'base': 'MONA', 'quote': 'JPY', 'baseId': 'mona', 'quoteId': 'jpy' }, + 'QTUM/BTC': { 'id': 'qtum_btc', 'symbol': 'QTUM/BTC', 'base': 'QTUM', 'quote': 'BTC', 'baseId': 'qtum', 'quoteId': 'btc' }, + 'QTUM/JPY': { 'id': 'qtum_jpy', 'symbol': 'QTUM/JPY', 'base': 'QTUM', 'quote': 'JPY', 'baseId': 'qtum', 'quoteId': 'jpy' }, 'ETH/BTC': { 'id': 'eth_btc', 'symbol': 'ETH/BTC', 'base': 'ETH', 'quote': 'BTC', 'baseId': 'eth', 'quoteId': 'btc' }, 'LTC/BTC': { 'id': 'ltc_btc', 'symbol': 'LTC/BTC', 'base': 'LTC', 'quote': 'BTC', 'baseId': 'ltc', 'quoteId': 'btc' }, 'XRP/JPY': { 'id': 'xrp_jpy', 'symbol': 'XRP/JPY', 'base': 'XRP', 'quote': 'JPY', 'baseId': 'xrp', 'quoteId': 'jpy' }, @@ -90,6 +92,7 @@ module.exports = class bitbank extends Exchange { 'ETH/JPY': { 'id': 'eth_jpy', 'symbol': 'ETH/JPY', 'base': 'ETH', 'quote': 'JPY', 'baseId': 'eth', 'quoteId': 'jpy' }, 'LTC/JPY': { 'id': 'ltc_jpy', 'symbol': 'LTC/JPY', 'base': 'LTC', 'quote': 'JPY', 'baseId': 'ltc', 'quoteId': 'jpy' }, 'XRP/BTC': { 'id': 'xrp_btc', 'symbol': 'XRP/BTC', 'base': 'XRP', 'quote': 'BTC', 'baseId': 'xrp', 'quoteId': 'btc' }, + 'XLM/BTC': { 'id': 'xlm_btc', 'symbol': 'XLM/BTC', 'base': 'XLM', 'quote': 'BTC', 'baseId': 'xlm', 'quoteId': 'btc' }, }, 'fees': { 'trading': { @@ -207,8 +210,8 @@ module.exports = class bitbank extends Exchange { const feeCost = this.safeFloat (trade, 'fee_amount_quote'); if (feeCost !== undefined) { fee = { - 'currency': market['quote'], - 'cost': feeCurrency, + 'currency': feeCurrency, + 'cost': feeCost, }; } const orderId = this.safeString (trade, 'order_id'); @@ -367,6 +370,7 @@ module.exports = class bitbank extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -385,7 +389,7 @@ module.exports = class bitbank extends Exchange { await this.loadMarkets (); const market = this.market (symbol); if (price === undefined) { - throw new InvalidOrder (this.id + ' createOrder requires a price argument for both market and limit orders'); + throw new InvalidOrder (this.id + ' createOrder() requires a price argument for both market and limit orders'); } const request = { 'pair': market['id'], diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitbay.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitbay.js index f1cb3a288..4f502e934 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitbay.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitbay.js @@ -351,6 +351,7 @@ module.exports = class bitbay extends Exchange { filled = Math.max (0, amount - remaining); } } + const postOnly = this.safeValue (order, 'postOnly'); return { 'id': this.safeString (order, 'id'), 'clientOrderId': undefined, @@ -362,6 +363,7 @@ module.exports = class bitbay extends Exchange { 'symbol': symbol, 'type': this.safeString (order, 'mode'), 'timeInForce': undefined, + 'postOnly': postOnly, 'side': this.safeStringLower (order, 'offerType'), 'price': this.safeFloat (order, 'rate'), 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitfinex.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitfinex.js index ed9038a81..6d34687ff 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitfinex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitfinex.js @@ -16,7 +16,6 @@ module.exports = class bitfinex extends Exchange { 'countries': [ 'VG' ], 'version': 'v1', 'rateLimit': 1500, - 'certified': true, 'pro': true, // new metainfo interface 'has': { @@ -54,6 +53,7 @@ module.exports = class bitfinex extends Exchange { '30m': '30m', '1h': '1h', '3h': '3h', + '4h': '4h', '6h': '6h', '12h': '12h', '1d': '1D', @@ -600,13 +600,32 @@ module.exports = class bitfinex extends Exchange { async fetchBalance (params = {}) { await this.loadMarkets (); + const types = { + 'exchange': 'exchange', + 'deposit': 'funding', + 'trading': 'margin', + }; const balanceType = this.safeString (params, 'type', 'exchange'); const query = this.omit (params, 'type'); const response = await this.privatePostBalances (query); + // [ { type: 'deposit', + // currency: 'btc', + // amount: '0.00116721', + // available: '0.00116721' }, + // { type: 'exchange', + // currency: 'ust', + // amount: '0.0000002', + // available: '0.0000002' }, + // { type: 'trading', + // currency: 'btc', + // amount: '0.0005', + // available: '0.0005' } ], const result = { 'info': response }; for (let i = 0; i < response.length; i++) { const balance = response[i]; - if (balance['type'] === balanceType) { + const type = this.safeString (balance, 'type'); + const parsedType = this.safeString (types, type); + if ((parsedType === balanceType) || (type === balanceType)) { const currencyId = this.safeString (balance, 'currency'); const code = this.safeCurrencyCode (currencyId); // bitfinex had BCH previously, now it's BAB, but the old @@ -769,7 +788,7 @@ module.exports = class bitfinex extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a `symbol` argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a `symbol` argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -887,6 +906,7 @@ module.exports = class bitfinex extends Exchange { 'symbol': symbol, 'type': orderType, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': this.safeFloat (order, 'price'), 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitfinex2.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitfinex2.js index 5c44875e0..b47da9faf 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitfinex2.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitfinex2.js @@ -3,7 +3,7 @@ // --------------------------------------------------------------------------- const bitfinex = require ('./bitfinex.js'); -const { ExchangeError, InvalidAddress, ArgumentsRequired, InsufficientFunds, AuthenticationError, OrderNotFound, InvalidOrder, BadRequest, InvalidNonce, BadSymbol, OnMaintenance } = require ('./base/errors'); +const { ExchangeError, InvalidAddress, ArgumentsRequired, InsufficientFunds, AuthenticationError, OrderNotFound, InvalidOrder, BadRequest, InvalidNonce, BadSymbol, OnMaintenance, NotSupported } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -53,6 +53,7 @@ module.exports = class bitfinex2 extends bitfinex { '30m': '30m', '1h': '1h', '3h': '3h', + '4h': '4h', '6h': '6h', '12h': '12h', '1d': '1D', @@ -171,7 +172,9 @@ module.exports = class bitfinex2 extends bitfinex { 'auth/w/position/claim', 'auth/r/positions/hist', 'auth/r/positions/audit', + 'auth/r/positions/snap', 'auth/w/deriv/collateral/set', + 'auth/w/deriv/collateral/limits', 'auth/r/funding/offers', 'auth/r/funding/offers/{symbol}', 'auth/w/funding/offer/submit', @@ -583,6 +586,10 @@ module.exports = class bitfinex2 extends bitfinex { return this.parseBalance (result); } + async fetchOrder (id, symbol = undefined, params = {}) { + throw new NotSupported (this.id + ' fetchOrder is not implemented yet'); + } + async fetchOrderBook (symbol, limit = undefined, params = {}) { await this.loadMarkets (); const precision = this.safeValue (this.options, 'precision', 'R0'); @@ -923,6 +930,7 @@ module.exports = class bitfinex2 extends bitfinex { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -941,16 +949,43 @@ module.exports = class bitfinex2 extends bitfinex { await this.loadMarkets (); const market = this.market (symbol); const orderTypes = this.safeValue (this.options, 'orderTypes', {}); - const orderType = this.safeString (orderTypes, type, type); + const orderType = this.safeStringUpper (orderTypes, type, type); amount = (side === 'sell') ? -amount : amount; const request = { 'symbol': market['id'], 'type': orderType, 'amount': this.numberToString (amount), }; - if (type !== 'market') { + if ((orderType === 'LIMIT') || (orderType === 'EXCHANGE LIMIT')) { + request['price'] = this.numberToString (price); + } else if ((orderType === 'STOP') || (orderType === 'EXCHANGE STOP')) { + const stopPrice = this.safeFloat (params, 'stopPrice', price); + request['price'] = this.numberToString (stopPrice); + } else if ((orderType === 'STOP LIMIT') || (orderType === 'EXCHANGE STOP LIMIT')) { + const priceAuxLimit = this.safeFloat (params, 'price_aux_limit'); + let stopPrice = this.safeFloat (params, 'stopPrice'); + if (priceAuxLimit === undefined) { + if (stopPrice === undefined) { + throw new ArgumentsRequired (this.id + ' createOrder() requires a stopPrice parameter or a price_aux_limit parameter for a ' + orderType + ' order'); + } else { + request['price_aux_limit'] = this.numberToString (price); + } + } else { + request['price_aux_limit'] = this.numberToString (priceAuxLimit); + if (stopPrice === undefined) { + stopPrice = price; + } + } + request['price'] = this.numberToString (stopPrice); + } else if ((orderType === 'TRAILING STOP') || (orderType === 'EXCHANGE TRAILING STOP')) { + const priceTrailing = this.safeFloat (params, 'price_trailing'); + request['price_trailing'] = this.numberToString (priceTrailing); + const stopPrice = this.safeFloat (params, 'stopPrice', price); + request['price'] = this.numberToString (stopPrice); + } else if ((orderType === 'FOK') || (orderType === 'EXCHANGE FOK') || (orderType === 'IOC') || (orderType === 'EXCHANGE IOC')) { request['price'] = this.numberToString (price); } + params = this.omit (params, [ 'stopPrice', 'price_aux_limit', 'price_trailing' ]); const clientOrderId = this.safeValue2 (params, 'cid', 'clientOrderId'); if (clientOrderId !== undefined) { request['cid'] = clientOrderId; diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitflyer.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitflyer.js index 99c60448b..f9c19b59a 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitflyer.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitflyer.js @@ -365,6 +365,7 @@ module.exports = class bitflyer extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -424,7 +425,7 @@ module.exports = class bitflyer extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a `symbol` argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a `symbol` argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -440,7 +441,7 @@ module.exports = class bitflyer extends Exchange { async fetchPositions (symbols = undefined, since = undefined, limit = undefined, params = {}) { if (symbols === undefined) { - throw new ArgumentsRequired (this.id + ' fetchPositions requires a `symbols` argument, exactly one symbol in an array'); + throw new ArgumentsRequired (this.id + ' fetchPositions() requires a `symbols` argument, exactly one symbol in an array'); } await this.loadMarkets (); const request = { diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitforex.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitforex.js index 9932a4d34..8fa337979 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitforex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitforex.js @@ -3,7 +3,7 @@ // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { ExchangeError, AuthenticationError, OrderNotFound, InsufficientFunds, DDoSProtection, PermissionDenied } = require ('./base/errors'); +const { ExchangeError, AuthenticationError, OrderNotFound, InsufficientFunds, DDoSProtection, PermissionDenied, BadSymbol } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -223,6 +223,7 @@ module.exports = class bitforex extends Exchange { }, 'commonCurrencies': { 'CREDIT': 'TerraCredit', + 'HBC': 'Hybrid Bank Cash', 'IQ': 'IQ.Cash', 'UOS': 'UOS Network', }, @@ -231,6 +232,7 @@ module.exports = class bitforex extends Exchange { '1013': AuthenticationError, '1016': AuthenticationError, '1017': PermissionDenied, // {"code":"1017","success":false,"time":1602670594367,"message":"IP not allow"} + '1019': BadSymbol, // {"code":"1019","success":false,"time":1607087743778,"message":"Symbol Invalid"} '3002': InsufficientFunds, '10204': DDoSProtection, }, @@ -499,6 +501,7 @@ module.exports = class bitforex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitget.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitget.js index 78e7fe8aa..3c9581955 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitget.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitget.js @@ -1704,7 +1704,7 @@ module.exports = class bitget extends Exchange { const type = this.safeString (params, 'type', defaultType); params = this.omit (params, 'type'); if (type === undefined) { - throw new ArgumentsRequired (this.id + " requires an 'accountId' parameter"); + throw new ArgumentsRequired (this.id + " getAccountId() requires an 'accountId' parameter"); } const account = await this.findAccountByType (type); return account['id']; @@ -1716,7 +1716,7 @@ module.exports = class bitget extends Exchange { const defaultType = this.safeString2 (this.options, 'fetchBalance', 'defaultType'); const type = this.safeString (params, 'type', defaultType); if (type === undefined) { - throw new ArgumentsRequired (this.id + " fetchBalance requires a 'type' parameter, one of 'spot', 'swap'"); + throw new ArgumentsRequired (this.id + " fetchBalance() requires a 'type' parameter, one of 'spot', 'swap'"); } let method = undefined; const query = this.omit (params, 'type'); @@ -1960,6 +1960,7 @@ module.exports = class bitget extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -2042,7 +2043,7 @@ module.exports = class bitget extends Exchange { request['client_oid'] = clientOrderId; const orderType = this.safeString (params, 'type'); if (orderType === undefined) { - throw new ArgumentsRequired (this.id + " createOrder requires a type parameter, '1' = open long, '2' = open short, '3' = close long, '4' = close short for " + market['type'] + ' orders'); + throw new ArgumentsRequired (this.id + " createOrder() requires a type parameter, '1' = open long, '2' = open short, '3' = close long, '4' = close short for " + market['type'] + ' orders'); } request['size'] = this.amountToPrecision (symbol, amount); request['type'] = orderType; @@ -2084,7 +2085,7 @@ module.exports = class bitget extends Exchange { const type = this.safeString (params, 'type', defaultType); if (type === 'spot') { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument for spot orders'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument for spot orders'); } } } else { @@ -2125,14 +2126,15 @@ module.exports = class bitget extends Exchange { async cancelOrders (ids, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); const type = this.safeString (params, 'type', market['type']); if (type === undefined) { - throw new ArgumentsRequired (this.id + " cancelOrders requires a type parameter (one of 'spot', 'swap')."); + throw new ArgumentsRequired (this.id + " cancelOrders() requires a type parameter (one of 'spot', 'swap')."); } + params = this.omit (params, 'type'); const request = {}; let method = undefined; if (type === 'spot') { @@ -2189,13 +2191,13 @@ module.exports = class bitget extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); const type = this.safeString (params, 'type', market['type']); if (type === undefined) { - throw new ArgumentsRequired (this.id + " fetchOrder requires a type parameter (one of 'spot', 'swap')."); + throw new ArgumentsRequired (this.id + " fetchOrder() requires a type parameter (one of 'spot', 'swap')."); } let method = undefined; const request = {}; @@ -2266,7 +2268,7 @@ module.exports = class bitget extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -2351,7 +2353,7 @@ module.exports = class bitget extends Exchange { async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchClosedOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchClosedOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -2443,7 +2445,7 @@ module.exports = class bitget extends Exchange { async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchDeposits requires a currency code argument'); + throw new ArgumentsRequired (this.id + ' fetchDeposits() requires a currency code argument'); } await this.loadMarkets (); const currency = this.currency (code); @@ -2480,7 +2482,7 @@ module.exports = class bitget extends Exchange { async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchWithdrawals requires a currency code argument'); + throw new ArgumentsRequired (this.id + ' fetchWithdrawals() requires a currency code argument'); } await this.loadMarkets (); const currency = this.currency (code); @@ -2603,14 +2605,14 @@ module.exports = class bitget extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); const type = this.safeString (params, 'type', market['type']); const query = this.omit (params, 'type'); if (type === 'swap') { - throw new ArgumentsRequired (this.id + ' fetchMyTrades is not supported for ' + type + ' type'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() is not supported for ' + type + ' type'); } // // spot @@ -2667,12 +2669,12 @@ module.exports = class bitget extends Exchange { async fetchOrderTrades (id, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrderTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrderTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); const type = this.safeString (params, 'type', market['type']); - const query = this.omit (params, 'type'); + params = this.omit (params, 'type'); let method = undefined; const request = {}; if (type === 'spot') { @@ -2684,7 +2686,7 @@ module.exports = class bitget extends Exchange { request['symbol'] = market['id']; method = 'swapGetOrderFills'; } - const response = await this[method] (this.extend (request, query)); + const response = await this[method] (this.extend (request, params)); // // spot // diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bithumb.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bithumb.js index 904b8715d..ef4e7d479 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bithumb.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bithumb.js @@ -22,6 +22,7 @@ module.exports = class bithumb extends Exchange { 'createOrder': true, 'fetchBalance': true, 'fetchMarkets': true, + 'fetchOHLCV': true, 'fetchOpenOrders': true, 'fetchOrder': true, 'fetchOrderBook': true, @@ -45,10 +46,13 @@ module.exports = class bithumb extends Exchange { 'get': [ 'ticker/{currency}', 'ticker/all', + 'ticker/ALL_BTC', + 'ticker/ALL_KRW', 'orderbook/{currency}', 'orderbook/all', 'transaction_history/{currency}', 'transaction_history/all', + 'candlestick/{currency}/{interval}', ], }, 'private': { @@ -92,6 +96,27 @@ module.exports = class bithumb extends Exchange { 'Unknown Error': ExchangeError, 'After May 23th, recent_transactions is no longer, hence users will not be able to connect to recent_transactions': ExchangeError, // {"status":"5100","message":"After May 23th, recent_transactions is no longer, hence users will not be able to connect to recent_transactions"} }, + 'timeframes': { + '1m': '1m', + '3m': '3m', + '5m': '5m', + '10m': '10m', + '30m': '30m', + '1h': '1h', + '6h': '6h', + '12h': '12h', + '1d': '24h', + }, + 'options': { + 'quoteCurrencies': { + 'BTC': { + 'precision': { + 'price': 8, + }, + }, + 'KRW': {}, + }, + }, }); } @@ -100,54 +125,61 @@ module.exports = class bithumb extends Exchange { } async fetchMarkets (params = {}) { - const response = await this.publicGetTickerAll (params); - const data = this.safeValue (response, 'data'); - const currencyIds = Object.keys (data); const result = []; - const quote = this.safeCurrencyCode ('KRW'); - for (let i = 0; i < currencyIds.length; i++) { - const currencyId = currencyIds[i]; - if (currencyId === 'date') { - continue; - } - const market = data[currencyId]; - const base = this.safeCurrencyCode (currencyId); - const symbol = currencyId + '/' + quote; - let active = true; - if (Array.isArray (market)) { - const numElements = market.length; - if (numElements === 0) { - active = false; + const quoteCurrencies = this.safeValue (this.options, 'quoteCurrencies', {}); + const quotes = Object.keys (quoteCurrencies); + for (let i = 0; i < quotes.length; i++) { + const quote = quotes[i]; + const extension = this.safeValue (quoteCurrencies, quote, {}); + const method = 'publicGetTickerALL' + quote; + const response = await this[method] (params); + const data = this.safeValue (response, 'data'); + const currencyIds = Object.keys (data); + for (let j = 0; j < currencyIds.length; j++) { + const currencyId = currencyIds[j]; + if (currencyId === 'date') { + continue; } + const market = data[currencyId]; + const base = this.safeCurrencyCode (currencyId); + const symbol = currencyId + '/' + quote; + let active = true; + if (Array.isArray (market)) { + const numElements = market.length; + if (numElements === 0) { + active = false; + } + } + const entry = this.deepExtend ({ + 'id': currencyId, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'info': market, + 'active': active, + 'precision': { + 'amount': 4, + 'price': 4, + }, + 'limits': { + 'amount': { + 'min': undefined, + 'max': undefined, + }, + 'price': { + 'min': undefined, + 'max': undefined, + }, + 'cost': { + 'min': 500, + 'max': 5000000000, + }, + }, + 'baseId': undefined, + 'quoteId': undefined, + }, extension); + result.push (entry); } - result.push ({ - 'id': currencyId, - 'symbol': symbol, - 'base': base, - 'quote': quote, - 'info': market, - 'active': active, - 'precision': { - 'amount': 4, - 'price': 4, - }, - 'limits': { - 'amount': { - 'min': undefined, - 'max': undefined, - }, - 'price': { - 'min': undefined, - 'max': undefined, - }, - 'cost': { - 'min': 500, - 'max': 5000000000, - }, - }, - 'baseId': undefined, - 'quoteId': undefined, - }); } return result; } @@ -349,6 +381,62 @@ module.exports = class bithumb extends Exchange { return this.parseTicker (data, market); } + parseOHLCV (ohlcv, market = undefined) { + // + // [ + // 1576823400000, // 기준 시간 + // '8284000', // 시가 + // '8286000', // 종가 + // '8289000', // 고가 + // '8276000', // 저가 + // '15.41503692' // 거래량 + // ] + // + return [ + this.safeInteger (ohlcv, 0), + this.safeFloat (ohlcv, 1), + this.safeFloat (ohlcv, 3), + this.safeFloat (ohlcv, 4), + this.safeFloat (ohlcv, 2), + this.safeFloat (ohlcv, 5), + ]; + } + + async fetchOHLCV (symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'currency': market['base'], + 'interval': this.timeframes[timeframe], + }; + const response = await this.publicGetCandlestickCurrencyInterval (this.extend (request, params)); + // + // { + // 'status': '0000', + // 'data': { + // [ + // 1576823400000, // 기준 시간 + // '8284000', // 시가 + // '8286000', // 종가 + // '8289000', // 고가 + // '8276000', // 저가 + // '15.41503692' // 거래량 + // ], + // [ + // 1576824000000, // 기준 시간 + // '8284000', // 시가 + // '8281000', // 종가 + // '8289000', // 고가 + // '8275000', // 저가 + // '6.19584467' // 거래량 + // ], + // } + // } + // + const data = this.safeValue (response, 'data', []); + return this.parseOHLCVs (data, market, timeframe, since, limit); + } + parseTrade (trade, market = undefined) { // // fetchTrades (public) @@ -470,7 +558,7 @@ module.exports = class bithumb extends Exchange { const market = this.market (symbol); const request = { 'order_currency': market['id'], - 'Payment_currency': market['quote'], + 'payment_currency': market['quote'], 'units': amount, }; let method = 'privatePostTradePlace'; @@ -483,7 +571,7 @@ module.exports = class bithumb extends Exchange { const response = await this[method] (this.extend (request, params)); const id = this.safeString (response, 'order_id'); if (id === undefined) { - throw new InvalidOrder (this.id + ' createOrder did not return an order id'); + throw new InvalidOrder (this.id + ' createOrder() did not return an order id'); } return { 'info': response, @@ -496,7 +584,7 @@ module.exports = class bithumb extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -708,6 +796,7 @@ module.exports = class bithumb extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -730,7 +819,7 @@ module.exports = class bithumb extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -770,10 +859,10 @@ module.exports = class bithumb extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { const side_in_params = ('side' in params); if (!side_in_params) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a `symbol` argument and a `side` parameter (sell or buy)'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a `symbol` argument and a `side` parameter (sell or buy)'); } if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a `symbol` argument and a `side` parameter (sell or buy)'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a `symbol` argument and a `side` parameter (sell or buy)'); } const market = this.market (symbol); const side = (params['side'] === 'buy') ? 'bid' : 'ask'; @@ -804,7 +893,7 @@ module.exports = class bithumb extends Exchange { 'address': address, 'currency': currency['id'], }; - if (currency === 'XRP' || currency === 'XMR') { + if (currency === 'XRP' || currency === 'XMR' || currency === 'EOS' || currency === 'STEEM') { const destination = this.safeString (params, 'destination'); if ((tag === undefined) && (destination === undefined)) { throw new ArgumentsRequired (this.id + ' ' + code + ' withdraw() requires a tag argument or an extra destination param'); diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitkk.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitkk.js index 055657b41..f416bef33 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitkk.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitkk.js @@ -21,6 +21,9 @@ module.exports = class bitkk extends zb { 'doc': 'https://www.bitkk.com/i/developer', 'fees': 'https://www.bitkk.com/i/rate', }, + 'commonCurrencies': { + 'BCH': 'BCHOLD', + }, }); } }; diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitmart.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitmart.js index d99c5d095..4ad47118a 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitmart.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitmart.js @@ -48,7 +48,7 @@ module.exports = class bitmart extends Exchange { 'logo': 'https://user-images.githubusercontent.com/1294454/61835713-a2662f80-ae85-11e9-9d00-6442919701fd.jpg', 'api': 'https://api-cloud.{hostname}', // bitmart.info for Hong Kong users 'www': 'https://www.bitmart.com/', - 'doc': 'https://github.com/bitmartexchange/bitmart-official-api-docs', + 'doc': 'https://developer-pro.bitmart.com/', 'referral': 'http://www.bitmart.com/?r=rQCFLh', 'fees': 'https://www.bitmart.com/fee/en', }, @@ -161,8 +161,8 @@ module.exports = class bitmart extends Exchange { 'trading': { 'tierBased': true, 'percentage': true, - 'taker': 0.002, - 'maker': 0.001, + 'taker': 0.0025, + 'maker': 0.0025, 'tiers': { 'taker': [ [0, 0.20 / 100], @@ -296,6 +296,8 @@ module.exports = class bitmart extends Exchange { 'broad': {}, }, 'commonCurrencies': { + 'COT': 'Community Coin', + 'CPC': 'CPCoin', 'ONE': 'Menlo One', 'PLA': 'Plair', }, @@ -1241,7 +1243,7 @@ module.exports = class bitmart extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1249,7 +1251,7 @@ module.exports = class bitmart extends Exchange { const request = {}; if (market['spot']) { request['symbol'] = market['id']; - request['offset'] = 1; + request['offset'] = 1; // max offset * limit < 500 if (limit === undefined) { limit = 100; // max 100 } @@ -1322,7 +1324,7 @@ module.exports = class bitmart extends Exchange { async fetchOrderTrades (id, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrderTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrderTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1600,6 +1602,7 @@ module.exports = class bitmart extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -1705,7 +1708,7 @@ module.exports = class bitmart extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1733,6 +1736,15 @@ module.exports = class bitmart extends Exchange { // } // } // + // spot alternative + // + // { + // "code": 1000, + // "trace":"886fb6ae-456b-4654-b4e0-d681ac05cea1", + // "message": "OK", + // "data": true + // } + // // contract // // { @@ -1748,16 +1760,19 @@ module.exports = class bitmart extends Exchange { // } // const data = this.safeValue (response, 'data'); + if (data === true) { + return this.parseOrder (id, market); + } const succeeded = this.safeValue (data, 'succeed'); if (succeeded !== undefined) { id = this.safeString (succeeded, 0); if (id === undefined) { - throw new InvalidOrder (this.id + ' cancelOrder failed to cancel ' + symbol + ' order id ' + id); + throw new InvalidOrder (this.id + ' cancelOrder() failed to cancel ' + symbol + ' order id ' + id); } } else { const result = this.safeValue (data, 'result'); if (!result) { - throw new InvalidOrder (this.id + ' cancelOrder ' + symbol + ' order id ' + id + ' is filled or canceled'); + throw new InvalidOrder (this.id + ' cancelOrder() ' + symbol + ' order id ' + id + ' is filled or canceled'); } } const order = this.parseOrder (id, market); @@ -1766,16 +1781,16 @@ module.exports = class bitmart extends Exchange { async cancelAllOrders (symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelAllOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelAllOrders() requires a symbol argument'); } const side = this.safeString (params, 'side'); if (side === undefined) { - throw new ArgumentsRequired (this.id + " cancelAllOrders requires a `side` parameter ('buy' or 'sell')"); + throw new ArgumentsRequired (this.id + " cancelAllOrders() requires a `side` parameter ('buy' or 'sell')"); } await this.loadMarkets (); const market = this.market (symbol); if (!market['spot']) { - throw new NotSupported (this.id + ' cancelAllOrders does not support ' + market['type'] + ' orders, only spot orders are accepted'); + throw new NotSupported (this.id + ' cancelAllOrders() does not support ' + market['type'] + ' orders, only spot orders are accepted'); } const request = { 'symbol': market['id'], @@ -1795,12 +1810,12 @@ module.exports = class bitmart extends Exchange { async cancelOrders (ids, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' canelOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' canelOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); if (!market['spot']) { - throw new NotSupported (this.id + ' cancelOrders does not support ' + market['type'] + ' orders, only contract orders are accepted'); + throw new NotSupported (this.id + ' cancelOrders() does not support ' + market['type'] + ' orders, only contract orders are accepted'); } const orders = []; for (let i = 0; i < ids.length; i++) { @@ -1841,7 +1856,7 @@ module.exports = class bitmart extends Exchange { async fetchOrdersByStatus (status, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrdersByStatus requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrdersByStatus() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1963,7 +1978,7 @@ module.exports = class bitmart extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1975,7 +1990,7 @@ module.exports = class bitmart extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const request = {}; @@ -2053,7 +2068,7 @@ module.exports = class bitmart extends Exchange { const orders = this.safeValue (data, 'orders', []); const firstOrder = this.safeValue (orders, 0); if (firstOrder === undefined) { - throw new OrderNotFound (this.id + ' fetchOrder could not find ' + symbol + ' order id ' + id); + throw new OrderNotFound (this.id + ' fetchOrder() could not find ' + symbol + ' order id ' + id); } return this.parseOrder (firstOrder, market); } else { diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitmax.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitmax.js index 0fa940d42..62cbf55d5 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitmax.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitmax.js @@ -133,8 +133,8 @@ module.exports = class bitmax extends Exchange { 'trading': { 'tierBased': true, 'percentage': true, - 'taker': 0.001, - 'maker': 0.001, + 'taker': 0.002, + 'maker': 0.002, }, }, 'precisionMode': TICK_SIZE, @@ -1039,6 +1039,7 @@ module.exports = class bitmax extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -1089,7 +1090,7 @@ module.exports = class bitmax extends Exchange { if ((type === 'stop_limit') || (type === 'stop_market')) { const stopPrice = this.safeFloat (params, 'stopPrice'); if (stopPrice === undefined) { - throw new InvalidOrder (this.id + ' createOrder requires a stopPrice parameter for ' + type + ' orders'); + throw new InvalidOrder (this.id + ' createOrder() requires a stopPrice parameter for ' + type + ' orders'); } else { request['stopPrice'] = this.priceToPrecision (symbol, stopPrice); params = this.omit (params, 'stopPrice'); @@ -1344,7 +1345,7 @@ module.exports = class bitmax extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); await this.loadAccounts (); diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitmex.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitmex.js index 536120bf6..4f5a0552a 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitmex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitmex.js @@ -4,7 +4,7 @@ const Exchange = require ('./base/Exchange'); const { TICK_SIZE } = require ('./base/functions/number'); -const { AuthenticationError, BadRequest, DDoSProtection, ExchangeError, ExchangeNotAvailable, InsufficientFunds, InvalidOrder, OrderNotFound, PermissionDenied } = require ('./base/errors'); +const { AuthenticationError, BadRequest, DDoSProtection, ExchangeError, ExchangeNotAvailable, InsufficientFunds, InvalidOrder, OrderNotFound, PermissionDenied, ArgumentsRequired } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -167,6 +167,7 @@ module.exports = class bitmex extends Exchange { 'Account has insufficient Available Balance': InsufficientFunds, 'Service unavailable': ExchangeNotAvailable, // {"error":{"message":"Service unavailable","name":"HTTPError"}} 'Server Error': ExchangeError, // {"error":{"message":"Server Error","name":"HTTPError"}} + 'Unable to cancel order due to existing state': InvalidOrder, }, }, 'precisionMode': TICK_SIZE, @@ -1219,6 +1220,43 @@ module.exports = class bitmex extends Exchange { } parseOrder (order, market = undefined) { + // + // { + // "orderID":"56222c7a-9956-413a-82cf-99f4812c214b", + // "clOrdID":"", + // "clOrdLinkID":"", + // "account":1455728, + // "symbol":"XBTUSD", + // "side":"Sell", + // "simpleOrderQty":null, + // "orderQty":1, + // "price":40000, + // "displayQty":null, + // "stopPx":null, + // "pegOffsetValue":null, + // "pegPriceType":"", + // "currency":"USD", + // "settlCurrency":"XBt", + // "ordType":"Limit", + // "timeInForce":"GoodTillCancel", + // "execInst":"", + // "contingencyType":"", + // "exDestination":"XBME", + // "ordStatus":"New", + // "triggered":"", + // "workingIndicator":true, + // "ordRejReason":"", + // "simpleLeavesQty":null, + // "leavesQty":1, + // "simpleCumQty":null, + // "cumQty":0, + // "avgPx":null, + // "multiLegReportingType":"SingleSecurity", + // "text":"Submitted via API.", + // "transactTime":"2021-01-02T21:38:49.246Z", + // "timestamp":"2021-01-02T21:38:49.246Z" + // } + // const status = this.parseOrderStatus (this.safeString (order, 'ordStatus')); const marketId = this.safeString (order, 'symbol'); const symbol = this.safeSymbol (marketId, market); @@ -1248,6 +1286,8 @@ module.exports = class bitmex extends Exchange { const clientOrderId = this.safeString (order, 'clOrdID'); const timeInForce = this.parseTimeInForce (this.safeString (order, 'timeInForce')); const stopPrice = this.safeFloat (order, 'stopPx'); + const execInst = this.safeString (order, 'execInst'); + const postOnly = (execInst === 'ParticipateDoNotInitiate'); return { 'info': order, 'id': id, @@ -1258,6 +1298,7 @@ module.exports = class bitmex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -1326,18 +1367,21 @@ module.exports = class bitmex extends Exchange { const request = { 'symbol': market['id'], 'side': this.capitalize (side), - 'orderQty': amount, + 'orderQty': parseFloat (this.amountToPrecision (symbol, amount)), 'ordType': orderType, }; - if (price !== undefined) { - if (orderType === 'Stop') { - const stopPrice = this.safeFloat2 (params, 'stopPx', 'stopPrice'); - request['stopPx'] = stopPrice; - params = this.omit (params, [ 'stopPx', 'stopPrice' ]); + if ((orderType === 'Stop') || (orderType === 'StopLimit') || (orderType === 'MarketIfTouched') || (orderType === 'LimitIfTouched')) { + const stopPrice = this.safeFloat2 (params, 'stopPx', 'stopPrice'); + if (stopPrice === undefined) { + throw new ArgumentsRequired (this.id + ' createOrder() requires a stopPx or stopPrice parameter for the ' + orderType + ' order type'); } else { - request['price'] = price; + request['stopPx'] = parseFloat (this.priceToPrecision (symbol, stopPrice)); + params = this.omit (params, [ 'stopPx', 'stopPrice' ]); } } + if ((orderType === 'Limit') || (orderType === 'StopLimit') || (orderType === 'LimitIfTouched')) { + request['price'] = parseFloat (this.priceToPrecision (symbol, price)); + } const clientOrderId = this.safeString2 (params, 'clOrdID', 'clientOrderId'); if (clientOrderId !== undefined) { request['clOrdID'] = clientOrderId; diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitpanda.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitpanda.js index 41f855168..b440aba7d 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitpanda.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitpanda.js @@ -790,7 +790,10 @@ module.exports = class bitpanda extends Exchange { // const feeInfo = this.safeValue (trade, 'fee', {}); trade = this.safeValue (trade, 'trade', trade); - const timestamp = this.parse8601 (this.safeString (trade, 'time')); + let timestamp = this.safeInteger (trade, 'trade_timestamp'); + if (timestamp === undefined) { + timestamp = this.parse8601 (this.safeString (trade, 'time')); + } const side = this.safeStringLower2 (trade, 'side', 'taker_side'); const price = this.safeFloat (trade, 'price'); const amount = this.safeFloat (trade, 'amount'); @@ -965,7 +968,7 @@ module.exports = class bitpanda extends Exchange { if (since !== undefined) { const to = this.safeString (params, 'to'); if (to === undefined) { - throw new ArgumentsRequired (this.id + ' fetchDeposits requires a "to" iso8601 string param with the since argument is specified'); + throw new ArgumentsRequired (this.id + ' fetchDeposits() requires a "to" iso8601 string param with the since argument is specified'); } request['from'] = this.iso8601 (since); } @@ -1020,7 +1023,7 @@ module.exports = class bitpanda extends Exchange { if (since !== undefined) { const to = this.safeString (params, 'to'); if (to === undefined) { - throw new ArgumentsRequired (this.id + ' fetchWithdrawals requires a "to" iso8601 string param with the since argument is specified'); + throw new ArgumentsRequired (this.id + ' fetchWithdrawals() requires a "to" iso8601 string param with the since argument is specified'); } request['from'] = this.iso8601 (since); } @@ -1325,6 +1328,7 @@ module.exports = class bitpanda extends Exchange { } const timeInForce = this.parseTimeInForce (this.safeString (order, 'time_in_force')); const stopPrice = this.safeFloat (order, 'trigger_price'); + const postOnly = this.safeValue (order, 'is_post_only'); const result = { 'id': id, 'clientOrderId': clientOrderId, @@ -1335,6 +1339,7 @@ module.exports = class bitpanda extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -1409,7 +1414,7 @@ module.exports = class bitpanda extends Exchange { if (uppercaseType === 'STOP') { const triggerPrice = this.safeFloat (params, 'trigger_price'); if (triggerPrice === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires a trigger_price param for ' + type + ' orders'); + throw new ArgumentsRequired (this.id + ' createOrder() requires a trigger_price param for ' + type + ' orders'); } request['trigger_price'] = this.priceToPrecision (symbol, triggerPrice); params = this.omit (params, 'trigger_price'); @@ -1560,7 +1565,7 @@ module.exports = class bitpanda extends Exchange { if (since !== undefined) { const to = this.safeString (params, 'to'); if (to === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a "to" iso8601 string param with the since argument is specified, max range is 100 days'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a "to" iso8601 string param with the since argument is specified, max range is 100 days'); } request['from'] = this.iso8601 (since); } @@ -1724,7 +1729,7 @@ module.exports = class bitpanda extends Exchange { if (since !== undefined) { const to = this.safeString (params, 'to'); if (to === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a "to" iso8601 string param with the since argument is specified, max range is 100 days'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a "to" iso8601 string param with the since argument is specified, max range is 100 days'); } request['from'] = this.iso8601 (since); } diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitso.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitso.js index 8ef7dc93c..d8bc07145 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitso.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitso.js @@ -4,7 +4,7 @@ const Exchange = require ('./base/Exchange'); const { ExchangeError, InvalidNonce, AuthenticationError, OrderNotFound } = require ('./base/errors'); -const { TICK_SIZE } = require ('./base/functions/number'); +const { TICK_SIZE, ROUND } = require ('./base/functions/number'); // --------------------------------------------------------------------------- @@ -181,23 +181,25 @@ module.exports = class bitso extends Exchange { const taker = this.safeFloat (flatRate, 'taker'); const feeTiers = this.safeValue (fees, 'structure', []); const fee = { - 'maker': maker, - 'taker': taker, + 'taker': parseFloat (this.decimalToPrecision (taker / 100, ROUND, 0.00000001, TICK_SIZE)), + 'maker': parseFloat (this.decimalToPrecision (maker / 100, ROUND, 0.00000001, TICK_SIZE)), 'percentage': true, 'tierBased': true, }; const takerFees = []; const makerFees = []; - for (let i = 0; i < feeTiers.length; i++) { - const tier = feeTiers[i]; + for (let j = 0; j < feeTiers.length; j++) { + const tier = feeTiers[j]; const volume = this.safeFloat (tier, 'volume'); const takerFee = this.safeFloat (tier, 'taker'); const makerFee = this.safeFloat (tier, 'maker'); - takerFees.push ([ volume, takerFee ]); - makerFees.push ([ volume, makerFee ]); - if (i === 0) { - fee['taker'] = taker; - fee['maker'] = maker; + const takerFeeToPrecision = parseFloat (this.decimalToPrecision (takerFee / 100, ROUND, 0.00000001, TICK_SIZE)); + const makerFeeToPrecision = parseFloat (this.decimalToPrecision (makerFee / 100, ROUND, 0.00000001, TICK_SIZE)); + takerFees.push ([ volume, takerFeeToPrecision ]); + makerFees.push ([ volume, makerFeeToPrecision ]); + if (j === 0) { + fee['taker'] = parseFloat (this.decimalToPrecision (taker / 100, ROUND, 0.00000001, TICK_SIZE)); + fee['maker'] = parseFloat (this.decimalToPrecision (maker / 100, ROUND, 0.00000001, TICK_SIZE)); } } const tiers = { @@ -434,6 +436,7 @@ module.exports = class bitso extends Exchange { 'symbol': symbol, 'type': orderType, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitstamp.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitstamp.js index 1b4a33a46..4671385bf 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitstamp.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitstamp.js @@ -3,7 +3,7 @@ // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { AuthenticationError, ExchangeError, NotSupported, PermissionDenied, InvalidNonce, OrderNotFound, InsufficientFunds, InvalidAddress, InvalidOrder, ArgumentsRequired, OnMaintenance } = require ('./base/errors'); +const { AuthenticationError, ExchangeError, NotSupported, PermissionDenied, InvalidNonce, OrderNotFound, InsufficientFunds, InvalidAddress, InvalidOrder, ArgumentsRequired, OnMaintenance, ExchangeNotAvailable } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -223,6 +223,7 @@ module.exports = class bitstamp extends Exchange { 'Order not found': OrderNotFound, 'Price is more than 20% below market price.': InvalidOrder, 'Bitstamp.net is under scheduled maintenance.': OnMaintenance, // { "error": "Bitstamp.net is under scheduled maintenance. We'll be back soon." } + 'Order could not be placed.': ExchangeNotAvailable, // Order could not be placed (perhaps due to internal error or trade halt). Please retry placing order. }, 'broad': { 'Minimum order size is': InvalidOrder, // Minimum order size is 5.0 EUR. @@ -705,7 +706,7 @@ module.exports = class bitstamp extends Exchange { const duration = this.parseTimeframe (timeframe); if (limit === undefined) { if (since === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a since argument or a limit argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a since argument or a limit argument'); } else { limit = 1000; const start = parseInt (since / 1000); @@ -771,8 +772,8 @@ module.exports = class bitstamp extends Exchange { return { 'info': balance, 'symbol': symbol, - 'maker': balance.fee, - 'taker': balance.fee, + 'maker': balance['fee'], + 'taker': balance['fee'], }; } @@ -1262,6 +1263,7 @@ module.exports = class bitstamp extends Exchange { 'symbol': symbol, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bittrex.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bittrex.js index 36d09cbb8..1e11d600a 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bittrex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bittrex.js @@ -3,7 +3,7 @@ // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { BadSymbol, ExchangeError, ExchangeNotAvailable, AuthenticationError, InvalidOrder, InsufficientFunds, OrderNotFound, DDoSProtection, PermissionDenied, AddressPending, OnMaintenance, BadRequest } = require ('./base/errors'); +const { BadSymbol, ExchangeError, ExchangeNotAvailable, AuthenticationError, InvalidOrder, InsufficientFunds, OrderNotFound, DDoSProtection, PermissionDenied, AddressPending, OnMaintenance, BadRequest, InvalidAddress } = require ('./base/errors'); const { TRUNCATE, DECIMAL_PLACES } = require ('./base/functions/number'); // --------------------------------------------------------------------------- @@ -23,6 +23,7 @@ module.exports = class bittrex extends Exchange { 'CORS': false, 'cancelAllOrders': true, 'cancelOrder': true, + 'createDepositAddress': true, 'createMarketOrder': true, 'createOrder': true, 'fetchBalance': true, @@ -137,10 +138,10 @@ module.exports = class bittrex extends Exchange { }, 'fees': { 'trading': { - 'tierBased': false, + 'tierBased': true, 'percentage': true, - 'maker': 0.0025, - 'taker': 0.0025, + 'maker': 0.0035, + 'taker': 0.0035, }, 'funding': { 'tierBased': false, @@ -758,7 +759,22 @@ module.exports = class bittrex extends Exchange { const isCeilingMarket = (uppercaseType === 'CEILING_MARKET'); const isCeilingOrder = isCeilingLimit || isCeilingMarket; if (isCeilingOrder) { - request['ceiling'] = this.priceToPrecision (symbol, price); + let cost = undefined; + if (isCeilingLimit) { + request['limit'] = this.priceToPrecision (symbol, price); + cost = this.safeFloat2 (params, 'ceiling', 'cost', amount); + } else if (isCeilingMarket) { + cost = this.safeFloat2 (params, 'ceiling', 'cost'); + if (cost === undefined) { + if (price === undefined) { + cost = amount; + } else { + cost = amount * price; + } + } + } + params = this.omit (params, [ 'ceiling', 'cost' ]); + request['ceiling'] = this.costToPrecision (symbol, cost); // bittrex only accepts IMMEDIATE_OR_CANCEL or FILL_OR_KILL for ceiling orders request['timeInForce'] = 'IMMEDIATE_OR_CANCEL'; } else { @@ -975,7 +991,7 @@ module.exports = class bittrex extends Exchange { 'GOOD_TIL_CANCELLED': 'GTC', 'IMMEDIATE_OR_CANCEL': 'IOC', 'FILL_OR_KILL': 'FOK', - 'POST_ONLY_GOOD_TIL_CANCELLED': 'POST_ONLY_GOOD_TIL_CANCELLED', + 'POST_ONLY_GOOD_TIL_CANCELLED': 'PO', }; return this.safeString (timeInForces, timeInForce, timeInForce); } @@ -1045,6 +1061,7 @@ module.exports = class bittrex extends Exchange { status = 'canceled'; } const timeInForce = this.parseTimeInForce (this.safeString (order, 'timeInForce')); + const postOnly = (timeInForce === 'PO'); return { 'id': this.safeString (order, 'id'), 'clientOrderId': undefined, @@ -1054,6 +1071,7 @@ module.exports = class bittrex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': direction, 'price': limit, 'stopPrice': undefined, @@ -1191,6 +1209,40 @@ module.exports = class bittrex extends Exchange { return this.parseOrders (response, market, since, limit); } + async createDepositAddress (code, params = {}) { + await this.loadMarkets (); + const currency = this.currency (code); + const request = { + 'currencySymbol': currency['id'], + }; + const response = await this.privatePostAddresses (this.extend (request, params)); + // + // { + // "status":"PROVISIONED", + // "currencySymbol":"XRP", + // "cryptoAddress":"rPVMhWBsfF9iMXYj3aAzJVkPDTFNSyWdKy", + // "cryptoAddressTag":"392034158" + // } + // + let address = this.safeString (response, 'cryptoAddress'); + const message = this.safeString (response, 'status'); + if (!address || message === 'REQUESTED') { + throw new AddressPending (this.id + ' the address for ' + code + ' is being generated (pending, not ready yet, retry again later)'); + } + let tag = this.safeString (response, 'cryptoAddressTag'); + if ((tag === undefined) && (currency['type'] in this.options['tag'])) { + tag = address; + address = currency['address']; + } + this.checkAddress (address); + return { + 'currency': code, + 'address': address, + 'tag': tag, + 'info': response, + }; + } + async fetchDepositAddress (code, params = {}) { await this.loadMarkets (); const currency = this.currency (code); @@ -1198,18 +1250,21 @@ module.exports = class bittrex extends Exchange { 'currencySymbol': currency['id'], }; const response = await this.privateGetAddressesCurrencySymbol (this.extend (request, params)); - // { - // "status": "PROVISIONED", - // "currencySymbol": "BTC", - // "cryptoAddress": "1PhmYjnJPZH5NUwV8AUjqkeDkCBpbE2xqX" - // } + // + // { + // "status":"PROVISIONED", + // "currencySymbol":"XRP", + // "cryptoAddress":"rPVMhWBsfF9iMXYj3aAzJVkPDTFNSyWdKy", + // "cryptoAddressTag":"392034158" + // } + // let address = this.safeString (response, 'cryptoAddress'); const message = this.safeString (response, 'status'); if (!address || message === 'REQUESTED') { throw new AddressPending (this.id + ' the address for ' + code + ' is being generated (pending, not ready yet, retry again later)'); } - let tag = undefined; - if (currency['type'] in this.options['tag']) { + let tag = this.safeString (response, 'cryptoAddressTag'); + if ((tag === undefined) && (currency['type'] in this.options['tag'])) { tag = address; address = currency['address']; } @@ -1309,6 +1364,9 @@ module.exports = class bittrex extends Exchange { this.throwExactlyMatchedException (this.exceptions['exact'], code, feedback); this.throwBroadlyMatchedException (this.exceptions['broad'], code, feedback); } + if ((code === 'NOT_FOUND') && (url.indexOf ('addresses') >= 0)) { + throw new InvalidAddress (feedback); + } // throw new ExchangeError (this.id + ' malformed response ' + this.json (response)); return; } diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitvavo.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitvavo.js index 10d62cfeb..e6633b568 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitvavo.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitvavo.js @@ -4,7 +4,7 @@ const Exchange = require ('./base/Exchange'); const { ExchangeError, BadSymbol, AuthenticationError, InsufficientFunds, InvalidOrder, ArgumentsRequired, OrderNotFound, InvalidAddress, BadRequest, RateLimitExceeded, PermissionDenied, ExchangeNotAvailable, AccountSuspended, OnMaintenance } = require ('./base/errors'); -const { TRUNCATE } = require ('./base/functions/number'); +const { SIGNIFICANT_DIGITS, DECIMAL_PLACES, TRUNCATE, ROUND } = require ('./base/functions/number'); // ---------------------------------------------------------------------------- @@ -221,12 +221,33 @@ module.exports = class bitvavo extends Exchange { 'expires': 1000, // 1 second }, }, + 'precisionMode': SIGNIFICANT_DIGITS, 'commonCurrencies': { 'MIOTA': 'IOTA', // https://github.com/ccxt/ccxt/issues/7487 }, }); } + currencyToPrecision (currency, fee) { + return this.decimalToPrecision (fee, 0, this.currencies[currency]['precision']); + } + + amountToPrecision (symbol, amount) { + // https://docs.bitfinex.com/docs/introduction#amount-precision + // The amount field allows up to 8 decimals. + // Anything exceeding this will be rounded to the 8th decimal. + return this.decimalToPrecision (amount, TRUNCATE, this.markets[symbol]['precision']['amount'], DECIMAL_PLACES); + } + + priceToPrecision (symbol, price) { + price = this.decimalToPrecision (price, ROUND, this.markets[symbol]['precision']['price'], this.precisionMode); + // https://docs.bitfinex.com/docs/introduction#price-precision + // The precision level of all trading prices is based on significant figures. + // All pairs on Bitfinex use up to 5 significant digits and up to 8 decimals (e.g. 1.2345, 123.45, 1234.5, 0.00012345). + // Prices submit with a precision larger than 5 will be cut by the API. + return this.decimalToPrecision (price, TRUNCATE, 8, DECIMAL_PLACES); + } + async fetchTime (params = {}) { const response = await this.publicGetTime (params); // @@ -768,16 +789,18 @@ module.exports = class bitvavo extends Exchange { const request = { 'market': market['id'], 'side': side, - 'orderType': type, + 'orderType': type, // 'market', 'limit', 'stopLoss', 'stopLossLimit', 'takeProfit', 'takeProfitLimit' // 'amount': this.amountToPrecision (symbol, amount), // 'price': this.priceToPrecision (symbol, price), // 'amountQuote': this.costToPrecision (symbol, cost), - // 'timeInForce': 'GTC', // "GTC" "IOC" "FOK" - // 'selfTradePrevention': "decrementAndCancel", // "decrementAndCancel" "cancelOldest" "cancelNewest" "cancelBoth" + // 'timeInForce': 'GTC', // 'GTC', 'IOC', 'FOK' + // 'selfTradePrevention': 'decrementAndCancel', // 'decrementAndCancel', 'cancelOldest', 'cancelNewest', 'cancelBoth' // 'postOnly': false, // 'disableMarketProtection': false, // don't cancel if the next fill price is 10% worse than the best fill price // 'responseRequired': true, // false is faster }; + const isStopLimit = (type === 'stopLossLimit') || (type === 'takeProfitLimit'); + const isStopMarket = (type === 'stopLoss') || (type === 'takeProfit'); if (type === 'market') { let cost = undefined; if (price !== undefined) { @@ -795,6 +818,26 @@ module.exports = class bitvavo extends Exchange { } else if (type === 'limit') { request['price'] = this.priceToPrecision (symbol, price); request['amount'] = this.amountToPrecision (symbol, amount); + } else if (isStopMarket || isStopLimit) { + let stopPrice = this.safeFloat2 (params, 'stopPrice', 'triggerAmount'); + if (stopPrice === undefined) { + if (isStopLimit) { + throw new ArgumentsRequired (this.id + ' createOrder requires a stopPrice parameter for a ' + type + ' order'); + } else if (isStopMarket) { + if (price === undefined) { + throw new ArgumentsRequired (this.id + ' createOrder requires a price argument or a stopPrice parameter for a ' + type + ' order'); + } else { + stopPrice = price; + } + } + } + if (isStopLimit) { + request['price'] = this.priceToPrecision (symbol, price); + } + params = this.omit (params, [ 'stopPrice', 'triggerAmount' ]); + request['triggerAmount'] = this.priceToPrecision (symbol, stopPrice); + request['triggerType'] = 'price'; + request['amount'] = this.amountToPrecision (symbol, amount); } const response = await this.privatePostOrder (this.extend (request, params)); // @@ -856,13 +899,13 @@ module.exports = class bitvavo extends Exchange { const response = await this.privatePutOrder (this.extend (request, params)); return this.parseOrder (response, market); } else { - throw new ArgumentsRequired (this.id + ' editOrder requires an amount argument, or a price argument, or non-empty params'); + throw new ArgumentsRequired (this.id + ' editOrder() requires an amount argument, or a price argument, or non-empty params'); } } async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -900,7 +943,7 @@ module.exports = class bitvavo extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); await this.loadMarkets (); @@ -949,7 +992,7 @@ module.exports = class bitvavo extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1010,24 +1053,13 @@ module.exports = class bitvavo extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); const request = { - // 'market': market['id'], - // 'limit': 500, - // 'start': since, - // 'end': this.milliseconds (), - // 'orderIdFrom': 'af76d6ce-9f7c-4006-b715-bb5d430652d0', - // 'orderIdTo': 'af76d6ce-9f7c-4006-b715-bb5d430652d0', + // 'market': market['id'], // rate limit 25 without a market, 1 with market specified }; let market = undefined; if (symbol !== undefined) { market = this.market (symbol); request['market'] = market['id']; } - if (since !== undefined) { - request['start'] = since; - } - if (limit !== undefined) { - request['limit'] = limit; // default 500, max 1000 - } const response = await this.privateGetOrdersOpen (this.extend (request, params)); // // [ @@ -1082,6 +1114,7 @@ module.exports = class bitvavo extends Exchange { 'partiallyFilled': 'open', 'expired': 'canceled', 'rejected': 'canceled', + 'awaitingTrigger': 'open', // https://github.com/ccxt/ccxt/issues/8489 }; return this.safeString (statuses, status, status); } @@ -1183,6 +1216,9 @@ module.exports = class bitvavo extends Exchange { } } const timeInForce = this.safeString (order, 'timeInForce'); + const postOnly = this.safeValue (order, 'postOnly'); + // https://github.com/ccxt/ccxt/issues/8489 + const stopPrice = this.safeFloat (order, 'triggerPrice'); return { 'info': order, 'id': id, @@ -1193,9 +1229,10 @@ module.exports = class bitvavo extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, - 'stopPrice': undefined, + 'stopPrice': stopPrice, 'amount': amount, 'cost': cost, 'average': average, @@ -1209,7 +1246,7 @@ module.exports = class bitvavo extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitz.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitz.js index 9b28cd463..816bb15a4 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitz.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bitz.js @@ -675,7 +675,7 @@ module.exports = class bitz extends Exchange { } } else { if (since !== undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a limit argument if the since argument is specified'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a limit argument if the since argument is specified'); } } const response = await this.marketGetKline (this.extend (request, params)); @@ -779,6 +779,7 @@ module.exports = class bitz extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -948,7 +949,7 @@ module.exports = class bitz extends Exchange { async fetchOrdersWithMethod (method, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bleutrade.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bleutrade.js index 385e7e455..67262da33 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bleutrade.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bleutrade.js @@ -662,6 +662,7 @@ module.exports = class bleutrade extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/braziliex.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/braziliex.js index ac9d460c0..0c54e4840 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/braziliex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/braziliex.js @@ -460,6 +460,7 @@ module.exports = class braziliex extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/btcalpha.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/btcalpha.js index 441947aa1..820234604 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/btcalpha.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/btcalpha.js @@ -348,6 +348,7 @@ module.exports = class btcalpha extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/btcbox.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/btcbox.js index af988de09..1a5f82456 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/btcbox.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/btcbox.js @@ -306,6 +306,7 @@ module.exports = class btcbox extends Exchange { 'side': side, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'status': status, 'symbol': symbol, 'price': price, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/btcmarkets.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/btcmarkets.js index 15bbd9610..2340d1960 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/btcmarkets.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/btcmarkets.js @@ -865,6 +865,7 @@ module.exports = class btcmarkets extends Exchange { const clientOrderId = this.safeString (order, 'clientOrderId'); const timeInForce = this.safeString (order, 'timeInForce'); const stopPrice = this.safeFloat (order, 'triggerPrice'); + const postOnly = this.safeValue (order, 'postOnly'); return { 'info': order, 'id': id, @@ -875,6 +876,7 @@ module.exports = class btcmarkets extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/btctradeua.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/btctradeua.js index 4d6743bf5..011bc33b6 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/btctradeua.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/btctradeua.js @@ -335,6 +335,7 @@ module.exports = class btctradeua extends Exchange { 'symbol': symbol, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'side': this.safeString (order, 'type'), 'price': this.safeFloat (order, 'price'), 'stopPrice': undefined, @@ -351,7 +352,7 @@ module.exports = class btctradeua extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/btcturk.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/btcturk.js index 24f79880b..32ea74550 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/btcturk.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/btcturk.js @@ -275,7 +275,7 @@ module.exports = class btcturk extends Exchange { }; if (type === 'market') { if (!('Total' in params)) { - throw new ExchangeError (this.id + ' createOrder requires the "Total" extra parameter for market orders (amount and price are both ignored)'); + throw new ExchangeError (this.id + ' createOrder() requires the "Total" extra parameter for market orders (amount and price are both ignored)'); } } else { request['Price'] = price; diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/buda.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/buda.js index 96da5d093..e78c228ea 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/buda.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/buda.js @@ -537,29 +537,65 @@ module.exports = class buda extends Exchange { } parseOrder (order, market = undefined) { + // + // { + // 'id': 63679183, + // 'uuid': 'f9697bee-627e-4175-983f-0d5a41963fec', + // 'market_id': 'ETH-CLP', + // 'account_id': 51590, + // 'type': 'Ask', + // 'state': 'received', + // 'created_at': '2021-01-04T08:29:52.730Z', + // 'fee_currency': 'CLP', + // 'price_type': 'limit', + // 'source': None, + // 'limit': ['741000.0', 'CLP'], + // 'amount': ['0.001', 'ETH'], + // 'original_amount': ['0.001', 'ETH'], + // 'traded_amount': ['0.0', 'ETH'], + // 'total_exchanged': ['0.0', 'CLP'], + // 'paid_fee': ['0.0', 'CLP'] + // } + // const id = this.safeString (order, 'id'); const timestamp = this.parse8601 (this.safeString (order, 'created_at')); const marketId = this.safeString (order, 'market_id'); - const symbol = this.safeSymbol (marketId, market); + const symbol = this.safeSymbol (marketId, market, '-'); const type = this.safeString (order, 'price_type'); const side = this.safeStringLower (order, 'type'); const status = this.parseOrderStatus (this.safeString (order, 'state')); - const amount = parseFloat (order['original_amount'][0]); - const remaining = parseFloat (order['amount'][0]); - const filled = parseFloat (order['traded_amount'][0]); - const cost = parseFloat (order['total_exchanged'][0]); - let price = this.safeFloat (order, 'limit'); - if (price !== undefined) { - price = parseFloat (price[0]); + const originalAmount = this.safeValue (order, 'original_amount', []); + const amount = this.safeFloat (originalAmount, 0); + const remainingAmount = this.safeValue (order, 'amount', []); + const remaining = this.safeFloat (remainingAmount, 0); + const tradedAmount = this.safeValue (order, 'traded_amount', []); + const filled = this.safeFloat (tradedAmount, 0); + const totalExchanged = this.safeValue (order, 'totalExchanged', []); + const cost = this.safeFloat (totalExchanged, 0); + const limitPrice = this.safeValue (order, 'limit', []); + let price = this.safeFloat (limitPrice, 0); + if (price === undefined) { + if (limitPrice !== undefined) { + price = limitPrice; + } } - if (cost > 0 && filled > 0) { - price = this.priceToPrecision (symbol, cost / filled); + let average = undefined; + if ((cost !== undefined) && (filled !== undefined) && (filled > 0)) { + average = this.priceToPrecision (symbol, cost / filled); + } + const paidFee = this.safeValue (order, 'paid_fee', []); + const feeCost = this.safeFloat (paidFee, 0); + let fee = undefined; + if (feeCost !== undefined) { + const feeCurrencyId = this.safeString (paidFee, 1); + const feeCurrencyCode = this.safeCurrencyCode (feeCurrencyId); + fee = { + 'cost': feeCost, + 'code': feeCurrencyCode, + }; } - const fee = { - 'cost': parseFloat (order['paid_fee'][0]), - 'currency': order['paid_fee'][1], - }; return { + 'info': order, 'id': id, 'clientOrderId': undefined, 'datetime': this.iso8601 (timestamp), @@ -569,17 +605,17 @@ module.exports = class buda extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, + 'average': average, 'cost': cost, 'amount': amount, 'filled': filled, 'remaining': remaining, 'trades': undefined, 'fee': fee, - 'info': order, - 'average': undefined, }; } diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bw.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bw.js index 57a8a64c7..388946b39 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bw.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bw.js @@ -761,6 +761,7 @@ module.exports = class bw extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -777,7 +778,7 @@ module.exports = class bw extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -812,7 +813,7 @@ module.exports = class bw extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bybit.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bybit.js index 7a9159515..f74d0db18 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bybit.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bybit.js @@ -17,6 +17,7 @@ module.exports = class bybit extends Exchange { 'version': 'v2', 'userAgent': undefined, 'rateLimit': 100, + 'hostname': 'bybit.com', // bybit.com, bytick.com 'has': { 'cancelOrder': true, 'CORS': true, @@ -59,9 +60,9 @@ module.exports = class bybit extends Exchange { '1y': 'Y', }, 'urls': { - 'test': 'https://api-testnet.bybit.com', + 'test': 'https://api-testnet.{hostname}', 'logo': 'https://user-images.githubusercontent.com/51840849/76547799-daff5b80-649e-11ea-87fb-3be9bac08954.jpg', - 'api': 'https://api.bybit.com', + 'api': 'https://api.{hostname}', 'www': 'https://www.bybit.com', 'doc': [ 'https://bybit-exchange.github.io/docs/inverse/', @@ -72,117 +73,112 @@ module.exports = class bybit extends Exchange { 'referral': 'https://www.bybit.com/app/register?ref=X7Prm', }, 'api': { + 'v2': { + 'public': { + 'get': [ + 'orderBook/L2', + 'kline/list', + 'tickers', + 'trading-records', + 'symbols', + 'liq-records', + 'mark-price-kline', + 'index-price-kline', + 'premium-index-kline', + 'open-interest', + 'big-deal', + 'account-ratio', + 'time', + 'announcement', + ], + }, + 'private': { + 'get': [ + 'order/list', + 'order', + 'stop-order/list', + 'stop-order', + 'position/list', + 'execution/list', + 'trade/closed-pnl/list', + 'funding/prev-funding-rate', + 'funding/prev-funding', + 'funding/predicted-funding', + 'account/api-key', + 'account/lcp', + 'wallet/balance', + 'wallet/fund/records', + 'wallet/withdraw/list', + 'exchange-order/list', + ], + 'post': [ + 'order/create', + 'order/cancel', + 'order/cancelAll', + 'order/replace', + 'stop-order/create', + 'stop-order/cancel', + 'stop-order/cancelAll', + 'stop-order/replace', + 'position/change-position-margin', + 'position/trading-stop', + 'position/leverage/save', + ], + }, + }, 'public': { - 'get': [ - 'orderBook/L2', - 'kline/list', - 'tickers', - 'trading-records', - 'symbols', - 'liq-records', - 'mark-price-kline', - 'open-interest', - 'big-deal', - 'account-ratio', - 'time', - 'announcement', - ], + 'linear': { + 'get': [ + 'kline', + 'recent-trading-records', + 'funding/prev-funding-rate', + 'mark-price-kline', + 'index-price-kline', + 'premium-index-kline', + 'risk-limit', + ], + }, }, 'private': { - 'get': [ - 'order/list', - 'order', - 'stop-order/list', - 'stop-order', - 'position/list', - 'wallet/balance', - 'execution/list', - 'trade/closed-pnl/list', - 'account/lcp', - 'exchange-order/list', - ], - 'post': [ - 'order/create', - 'order/cancel', - 'order/cancelAll', - 'order/replace', - 'stop-order/create', - 'stop-order/cancel', - 'stop-order/cancelAll', - 'stop-order/replace', - ], + 'linear': { + 'get': [ + 'order/list', + 'order/search', + 'stop-order/list', + 'stop-order/search', + 'position/list', + 'trade/execution/list', + 'trade/closed-pnl/list', + 'funding/predicted-funding', + 'funding/prev-funding', + ], + 'post': [ + 'order/create', + 'order/cancel', + 'order/cancel-all', + 'order/replace', + 'stop-order/create', + 'stop-order/cancel', + 'stop-order/cancel-all', + 'stop-order/replace', + 'position/set-auto-add-margin', + 'position/switch-isolated', + 'tpsl/switch-mode', + 'position/add-margin', + 'position/set-leverage', + 'position/trading-stop', + ], + }, }, 'openapi': { - 'get': [ - 'order/list', // deprecated - 'stop-order/list', // deprecated - 'wallet/risk-limit/list', - 'funding/prev-funding-rate', - 'funding/prev-funding', - 'funding/predicted-funding', - 'api-key', - 'wallet/fund/records', - 'wallet/withdraw/list', - ], - 'post': [ - 'order/replace', // deprecated - 'stop-order/create', // deprecated - 'stop-order/cancel', // deprecated - 'stop-order/replace', // deprecated - 'position/trading-stop', - 'wallet/risk-limit', - ], - }, - 'publicLinear': { - 'get': [ - 'kline', - 'recent-trading-records', - 'funding/prev-funding-rate', - 'mark-price-kline', - 'risk-limit', - ], - }, - 'privateLinear': { - 'get': [ - 'order/list', - 'order/search', - 'stop-order/list', - 'stop-order/search', - 'position/list', - 'trade/execution/list', - 'trade/closed-pnl/list', - 'funding/prev-funding', - 'funding/predicted-funding', - ], - 'post': [ - 'order/create', - 'order/cancel', - 'order/cancel-all', - 'order/replace', - 'stop-order/create', - 'stop-order/cancel', - 'stop-order/cancel-all', - 'stop-order/replace', - 'position/switch-isolated', - 'position/set-auto-add-margin', - 'tpsl/switch-mode', - 'position/set-leverage', - 'position/trading-stop', - 'position/add-margin', - ], - }, - 'position': { - 'post': [ - 'change-position-margin', - ], - }, - 'user': { - 'get': [ - 'leverage', // deprecated - ], - 'post': [ - 'leverage/save', - ], + 'wallet': { + 'get': [ + 'risk-limit/list', + ], + 'post': [ + 'risk-limit', + ], + }, }, }, 'httpExceptions': { @@ -285,6 +281,7 @@ module.exports = class bybit extends Exchange { 'options': { 'marketTypes': { 'BTC/USDT': 'linear', + 'BCH/USDT': 'linear', 'ETH/USDT': 'linear', 'LTC/USDT': 'linear', 'XTZ/USDT': 'linear', @@ -292,10 +289,10 @@ module.exports = class bybit extends Exchange { }, 'code': 'BTC', 'cancelAllOrders': { - 'method': 'privatePostOrderCancelAll', // privatePostStopOrderCancelAll + // 'method': 'v2PrivatePostOrderCancelAll', // v2PrivatePostStopOrderCancelAll }, 'recvWindow': 5 * 1000, // 5 sec default - 'timeDifference': 0, // the difference between system clock and Binance clock + 'timeDifference': 0, // the difference between system clock and exchange server clock 'adjustForTimeDifference': false, // controls the adjustment logic upon instantiation }, 'fees': { @@ -327,7 +324,7 @@ module.exports = class bybit extends Exchange { } async fetchTime (params = {}) { - const response = await this.publicGetTime (params); + const response = await this.v2PublicGetTime (params); // // { // ret_code: 0, @@ -345,30 +342,7 @@ module.exports = class bybit extends Exchange { if (this.options['adjustForTimeDifference']) { await this.loadTimeDifference (); } - const response = await this.publicGetSymbols (params); - // - // { - // ret_code: 0, - // ret_msg: 'OK', - // ext_code: '', - // ext_info: '', - // result: [ - // { - // name: 'BTCUSD', - // base_currency: 'BTC', - // quote_currency: 'USD', - // price_scale: 2, - // taker_fee: '0.00075', - // maker_fee: '-0.00025', - // leverage_filter: { min_leverage: 1, max_leverage: 100, leverage_step: '0.01' }, - // price_filter: { min_price: '0.5', max_price: '999999.5', tick_size: '0.5' }, - // lot_size_filter: { max_trading_qty: 1000000, min_trading_qty: 1, qty_step: 1 } - // }, - // ], - // time_now: '1583930495.454196' - // } - // - // sandbox/testnet + const response = await this.v2PublicGetSymbols (params); // // { // "ret_code":0, @@ -377,8 +351,8 @@ module.exports = class bybit extends Exchange { // "ext_info":"", // "result":[ // { - // "symbol":"BTCUSD", - // "symbol_alias":"BTCUSD", + // "name":"BTCUSD", + // "alias":"BTCUSD", // "status":"Trading", // "base_currency":"BTC", // "quote_currency":"USD", @@ -388,9 +362,22 @@ module.exports = class bybit extends Exchange { // "leverage_filter":{"min_leverage":1,"max_leverage":100,"leverage_step":"0.01"}, // "price_filter":{"min_price":"0.5","max_price":"999999.5","tick_size":"0.5"}, // "lot_size_filter":{"max_trading_qty":1000000,"min_trading_qty":1,"qty_step":1} - // } + // }, + // { + // "name":"BTCUSDT", + // "alias":"BTCUSDT", + // "status":"Trading", + // "base_currency":"BTC", + // "quote_currency":"USDT", + // "price_scale":2, + // "taker_fee":"0.00075", + // "maker_fee":"-0.00025", + // "leverage_filter":{"min_leverage":1,"max_leverage":100,"leverage_step":"0.01"}, + // "price_filter":{"min_price":"0.5","max_price":"999999.5","tick_size":"0.5"}, + // "lot_size_filter":{"max_trading_qty":100,"min_trading_qty":0.001,"qty_step":0.001} + // }, // ], - // "time_now":"1605916574.118500" + // "time_now":"1610539664.818033" // } // const markets = this.safeValue (response, 'result', []); @@ -457,65 +444,6 @@ module.exports = class bybit extends Exchange { return result; } - async fetchBalance (params = {}) { - await this.loadMarkets (); - const request = {}; - const coin = this.safeString (params, 'coin'); - const code = this.safeString (params, 'code'); - if (coin !== undefined) { - request['coin'] = coin; - } else if (code !== undefined) { - const currency = this.currency (code); - request['coin'] = currency['id']; - } - const response = await this.privateGetWalletBalance (this.extend (request, params)); - // - // { - // ret_code: 0, - // ret_msg: 'OK', - // ext_code: '', - // ext_info: '', - // result: { - // BTC: { - // equity: 0, - // available_balance: 0, - // used_margin: 0, - // order_margin: 0, - // position_margin: 0, - // occ_closing_fee: 0, - // occ_funding_fee: 0, - // wallet_balance: 0, - // realised_pnl: 0, - // unrealised_pnl: 0, - // cum_realised_pnl: 0, - // given_cash: 0, - // service_cash: 0 - // } - // }, - // time_now: '1583937810.370020', - // rate_limit_status: 119, - // rate_limit_reset_ms: 1583937810367, - // rate_limit: 120 - // } - // - const result = { - 'info': response, - }; - const balances = this.safeValue (response, 'result', {}); - const currencyIds = Object.keys (balances); - for (let i = 0; i < currencyIds.length; i++) { - const currencyId = currencyIds[i]; - const balance = balances[currencyId]; - const code = this.safeCurrencyCode (currencyId); - const account = this.account (); - account['free'] = this.safeFloat (balance, 'available_balance'); - account['used'] = this.safeFloat (balance, 'used_margin'); - account['total'] = this.safeFloat (balance, 'equity'); - result[code] = account; - } - return this.parseBalance (result); - } - parseTicker (ticker, market = undefined) { // // fetchTicker @@ -594,7 +522,7 @@ module.exports = class bybit extends Exchange { const request = { 'symbol': market['id'], }; - const response = await this.publicGetTickers (this.extend (request, params)); + const response = await this.v2PublicGetTickers (this.extend (request, params)); // // { // ret_code: 0, @@ -642,7 +570,7 @@ module.exports = class bybit extends Exchange { async fetchTickers (symbols = undefined, params = {}) { await this.loadMarkets (); - const response = await this.publicGetTickers (params); + const response = await this.v2PublicGetTickers (params); // // { // ret_code: 0, @@ -740,7 +668,7 @@ module.exports = class bybit extends Exchange { const now = this.seconds (); if (since === undefined) { if (limit === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a since argument or a limit argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a since argument or a limit argument'); } else { request['from'] = now - limit * duration; } @@ -752,7 +680,7 @@ module.exports = class bybit extends Exchange { } const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - const method = (marketType === 'linear') ? 'publicLinearGetKline' : 'publicGetKlineList'; + const method = (marketType === 'linear') ? 'publicLinearGetKline' : 'v2PublicGetKlineList'; const response = await this[method] (this.extend (request, params)); // // inverse perpetual BTC/USD @@ -907,7 +835,7 @@ module.exports = class bybit extends Exchange { } const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - const method = (marketType === 'linear') ? 'publicLinearGetRecentTradingRecords' : 'publicGetTradingRecords'; + const method = (marketType === 'linear') ? 'publicLinearGetRecentTradingRecords' : 'v2PublicGetTradingRecords'; const response = await this[method] (this.extend (request, params)); // // { @@ -961,7 +889,7 @@ module.exports = class bybit extends Exchange { const request = { 'symbol': market['id'], }; - const response = await this.publicGetOrderBookL2 (this.extend (request, params)); + const response = await this.v2PublicGetOrderBookL2 (this.extend (request, params)); // // { // ret_code: 0, @@ -984,6 +912,65 @@ module.exports = class bybit extends Exchange { return this.parseOrderBook (result, timestamp, 'Buy', 'Sell', 'price', 'size'); } + async fetchBalance (params = {}) { + await this.loadMarkets (); + const request = {}; + const coin = this.safeString (params, 'coin'); + const code = this.safeString (params, 'code'); + if (coin !== undefined) { + request['coin'] = coin; + } else if (code !== undefined) { + const currency = this.currency (code); + request['coin'] = currency['id']; + } + const response = await this.v2PrivateGetWalletBalance (this.extend (request, params)); + // + // { + // ret_code: 0, + // ret_msg: 'OK', + // ext_code: '', + // ext_info: '', + // result: { + // BTC: { + // equity: 0, + // available_balance: 0, + // used_margin: 0, + // order_margin: 0, + // position_margin: 0, + // occ_closing_fee: 0, + // occ_funding_fee: 0, + // wallet_balance: 0, + // realised_pnl: 0, + // unrealised_pnl: 0, + // cum_realised_pnl: 0, + // given_cash: 0, + // service_cash: 0 + // } + // }, + // time_now: '1583937810.370020', + // rate_limit_status: 119, + // rate_limit_reset_ms: 1583937810367, + // rate_limit: 120 + // } + // + const result = { + 'info': response, + }; + const balances = this.safeValue (response, 'result', {}); + const currencyIds = Object.keys (balances); + for (let i = 0; i < currencyIds.length; i++) { + const currencyId = currencyIds[i]; + const balance = balances[currencyId]; + const code = this.safeCurrencyCode (currencyId); + const account = this.account (); + account['free'] = this.safeFloat (balance, 'available_balance'); + account['used'] = this.safeFloat (balance, 'used_margin'); + account['total'] = this.safeFloat (balance, 'equity'); + result[code] = account; + } + return this.parseBalance (result); + } + parseOrderStatus (status) { const statuses = { // basic orders @@ -1166,6 +1153,7 @@ module.exports = class bybit extends Exchange { } const timeInForce = this.parseTimeInForce (this.safeString (order, 'time_in_force')); const stopPrice = this.safeFloat (order, 'stop_px'); + const postOnly = (timeInForce === 'PO'); return { 'info': order, 'id': id, @@ -1176,6 +1164,7 @@ module.exports = class bybit extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -1192,7 +1181,7 @@ module.exports = class bybit extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1206,7 +1195,7 @@ module.exports = class bybit extends Exchange { }; const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - let method = (marketType === 'linear') ? 'privateLinearGetOrderSearch' : 'privateGetOrder'; + let method = (marketType === 'linear') ? 'privateLinearGetOrderSearch' : 'v2PrivateGetOrder'; const stopOrderId = this.safeString (params, 'stop_order_id'); if (stopOrderId === undefined) { const orderLinkId = this.safeString (params, 'order_link_id'); @@ -1214,7 +1203,7 @@ module.exports = class bybit extends Exchange { request['order_id'] = id; } } else { - method = (marketType === 'linear') ? 'privateLinearGetStopOrderSearch' : 'privateGetStopOrder'; + method = (marketType === 'linear') ? 'privateLinearGetStopOrderSearch' : 'v2PrivateGetStopOrder'; } const response = await this[method] (this.extend (request, params)); // @@ -1327,7 +1316,7 @@ module.exports = class bybit extends Exchange { if (price !== undefined) { request['price'] = parseFloat (this.priceToPrecision (symbol, price)); } else { - throw new ArgumentsRequired (this.id + ' createOrder requires a price argument for a ' + type + ' order'); + throw new ArgumentsRequired (this.id + ' createOrder() requires a price argument for a ' + type + ' order'); } } const clientOrderId = this.safeString2 (params, 'order_link_id', 'clientOrderId'); @@ -1339,7 +1328,7 @@ module.exports = class bybit extends Exchange { const basePrice = this.safeValue (params, 'base_price'); const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - let method = (marketType === 'linear') ? 'privateLinearPostOrderCreate' : 'privatePostOrderCreate'; + let method = (marketType === 'linear') ? 'privateLinearPostOrderCreate' : 'v2PrivatePostOrderCreate'; if (marketType === 'linear') { method = 'privateLinearPostOrderCreate'; request['reduce_only'] = false; @@ -1347,15 +1336,15 @@ module.exports = class bybit extends Exchange { } if (stopPx !== undefined) { if (basePrice === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires both the stop_px and base_price params for a conditional ' + type + ' order'); + throw new ArgumentsRequired (this.id + ' createOrder() requires both the stop_px and base_price params for a conditional ' + type + ' order'); } else { - method = (marketType === 'linear') ? 'privateLinearPostStopOrderCreate' : 'openapiPostStopOrderCreate'; + method = (marketType === 'linear') ? 'privateLinearPostStopOrderCreate' : 'v2PrivatePostStopOrderCreate'; request['stop_px'] = parseFloat (this.priceToPrecision (symbol, stopPx)); request['base_price'] = parseFloat (this.priceToPrecision (symbol, basePrice)); params = this.omit (params, [ 'stop_px', 'stopPrice', 'base_price' ]); } } else if (basePrice !== undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires both the stop_px and base_price params for a conditional ' + type + ' order'); + throw new ArgumentsRequired (this.id + ' createOrder() requires both the stop_px and base_price params for a conditional ' + type + ' order'); } const response = await this[method] (this.extend (request, params)); // @@ -1441,7 +1430,7 @@ module.exports = class bybit extends Exchange { async editOrder (id, symbol, type, side, amount = undefined, price = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' editOrder requires an symbol argument'); + throw new ArgumentsRequired (this.id + ' editOrder() requires an symbol argument'); } const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); @@ -1457,17 +1446,23 @@ module.exports = class bybit extends Exchange { // 'stop_order_id': id, // only for conditional orders // 'p_r_trigger_price': 123.45, // new trigger price also known as stop_px }; - let method = (marketType === 'linear') ? 'privateLinearPostOrderReplace' : 'openapiPostOrderReplace'; + let method = (marketType === 'linear') ? 'privateLinearPostOrderReplace' : 'v2PrivatePostOrderReplace'; const stopOrderId = this.safeString (params, 'stop_order_id'); if (stopOrderId !== undefined) { - method = (marketType === 'linear') ? 'privateLinearPostStopOrderReplace' : 'openapiPostStopOrderReplace'; + method = (marketType === 'linear') ? 'privateLinearPostStopOrderReplace' : 'v2PrivatePostStopOrderReplace'; request['stop_order_id'] = stopOrderId; params = this.omit (params, [ 'stop_order_id' ]); } else { request['order_id'] = id; } if (amount !== undefined) { - request['p_r_qty'] = parseInt (this.amountToPrecision (symbol, amount)); + let qty = this.amountToPrecision (symbol, amount); + if (market['inverse']) { + qty = parseInt (qty); + } else { + qty = parseFloat (qty); + } + request['p_r_qty'] = qty; } if (price !== undefined) { request['p_r_price'] = parseFloat (this.priceToPrecision (symbol, price)); @@ -1510,7 +1505,7 @@ module.exports = class bybit extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1524,7 +1519,7 @@ module.exports = class bybit extends Exchange { }; const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeValue (marketTypes, symbol); - let method = (marketType === 'linear') ? 'privateLinearPostOrderCancel' : 'privatePostOrderCancel'; + let method = (marketType === 'linear') ? 'privateLinearPostOrderCancel' : 'v2PrivatePostOrderCancel'; const stopOrderId = this.safeString (params, 'stop_order_id'); if (stopOrderId === undefined) { const orderLinkId = this.safeString (params, 'order_link_id'); @@ -1532,7 +1527,7 @@ module.exports = class bybit extends Exchange { request['order_id'] = id; } } else { - method = (marketType === 'linear') ? 'privateLinearPostStopOrderCancel' : 'openapiPostStopOrderCancel'; + method = (marketType === 'linear') ? 'privateLinearPostStopOrderCancel' : 'v2PrivatePostStopOrderCancel'; } const response = await this[method] (this.extend (request, params)); const result = this.safeValue (response, 'result', {}); @@ -1541,17 +1536,17 @@ module.exports = class bybit extends Exchange { async cancelAllOrders (symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelAllOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelAllOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); const request = { 'symbol': market['id'], }; - const options = this.safeValue (this.options, 'cancelAllOrders'); + const options = this.safeValue (this.options, 'cancelAllOrders', {}); const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - const defaultMethod = (marketType === 'linear') ? 'privateLinearPostOrderCancelAll' : 'privatePostOrderCancelAll'; + const defaultMethod = (marketType === 'linear') ? 'privateLinearPostOrderCancelAll' : 'v2PrivatePostOrderCancelAll'; const method = this.safeString (options, 'method', defaultMethod); const response = await this[method] (this.extend (request, params)); const result = this.safeValue (response, 'result', []); @@ -1583,7 +1578,7 @@ module.exports = class bybit extends Exchange { const options = this.safeValue (this.options, 'fetchOrders', {}); const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - let defaultMethod = (marketType === 'linear') ? 'privateLinearGetOrderList' : 'openapiGetOrderList'; + let defaultMethod = (marketType === 'linear') ? 'privateLinearGetOrderList' : 'v2PrivateGetOrderList'; let query = params; if (('stop_order_id' in params) || ('stop_order_status' in params)) { let stopOrderStatus = this.safeValue (params, 'stopOrderStatus'); @@ -1594,7 +1589,7 @@ module.exports = class bybit extends Exchange { request['stop_order_status'] = stopOrderStatus; query = this.omit (params, 'stop_order_status'); } - defaultMethod = (marketType === 'linear') ? 'privateLinearGetStopOrderList' : 'openapiGetStopOrderList'; + defaultMethod = (marketType === 'linear') ? 'privateLinearGetStopOrderList' : 'v2PrivateGetStopOrderList'; } const method = this.safeString (options, 'method', defaultMethod); const response = await this[method] (this.extend (request, query)); @@ -1760,7 +1755,7 @@ module.exports = class bybit extends Exchange { if (symbol === undefined) { const orderId = this.safeString (params, 'order_id'); if (orderId === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument or an order_id param'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument or an order_id param'); } else { request['order_id'] = orderId; params = this.omit (params, 'order_id'); @@ -1777,7 +1772,7 @@ module.exports = class bybit extends Exchange { } const marketTypes = this.safeValue (this.options, 'marketTypes', {}); const marketType = this.safeString (marketTypes, symbol); - const method = (marketType === 'linear') ? 'privateLinearGetTradeExecutionList' : 'privateGetExecutionList'; + const method = (marketType === 'linear') ? 'privateLinearGetTradeExecutionList' : 'v2PrivateGetExecutionList'; const response = await this[method] (this.extend (request, params)); // // inverse @@ -1867,41 +1862,60 @@ module.exports = class bybit extends Exchange { } async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { - if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchWithdrawals() requires a currency code argument'); - } await this.loadMarkets (); - const currency = this.currency (code); const request = { - 'currency': currency['id'], + // 'coin': currency['id'], + // 'currency': currency['id'], // alias + // 'start_date': this.iso8601 (since), + // 'end_date': this.iso8601 (till), + 'wallet_fund_type': 'Deposit', // Deposit, Withdraw, RealisedPNL, Commission, Refund, Prize, ExchangeOrderWithdraw, ExchangeOrderDeposit + // 'page': 1, + // 'limit': 20, // max 50 }; - if (limit !== undefined) { - request['count'] = limit; + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + request['coin'] = currency['id']; } - const response = await this.privateGetGetDeposits (this.extend (request, params)); + if (since !== undefined) { + request['start_date'] = this.ymd (since); + } + if (limit !== undefined) { + request['limit'] = limit; + } + const response = await this.v2PrivateGetWalletFundRecords (this.extend (request, params)); // // { - // "jsonrpc": "2.0", - // "id": 5611, + // "ret_code": 0, + // "ret_msg": "ok", + // "ext_code": "", // "result": { - // "count": 1, // "data": [ // { - // "address": "2N35qDKDY22zmJq9eSyiAerMD4enJ1xx6ax", - // "amount": 5, - // "currency": "BTC", - // "received_timestamp": 1549295017670, - // "state": "completed", - // "transaction_id": "230669110fdaf0a0dbcdc079b6b8b43d5af29cc73683835b9bc6b3406c065fda", - // "updated_timestamp": 1549295130159 + // "id": 234467, + // "user_id": 1, + // "coin": "BTC", + // "wallet_id": 27913, + // "type": "Realized P&L", + // "amount": "-0.00000006", + // "tx_id": "", + // "address": "BTCUSD", + // "wallet_balance": "0.03000330", + // "exec_time": "2019-12-09T00:00:25.000Z", + // "cross_seq": 0 // } // ] - // } + // }, + // "ext_info": null, + // "time_now": "1577481867.115552", + // "rate_limit_status": 119, + // "rate_limit_reset_ms": 1577481867122, + // "rate_limit": 120 // } // const result = this.safeValue (response, 'result', {}); const data = this.safeValue (result, 'data', []); - return this.parseTransactions (data, currency, since, limit, params); + return this.parseTransactions (data, currency, since, limit); } async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { @@ -1920,12 +1934,12 @@ module.exports = class bybit extends Exchange { request['coin'] = currency['id']; } if (since !== undefined) { - request['start_date'] = this.iso8601 (since); + request['start_date'] = this.ymd (since); } if (limit !== undefined) { request['limit'] = limit; } - const response = await this.openapiGetWalletWithdrawList (this.extend (request, params)); + const response = await this.v2PrivateGetWalletWithdrawList (this.extend (request, params)); // // { // "ret_code": 0, @@ -1991,9 +2005,25 @@ module.exports = class bybit extends Exchange { // "updated_at": "2019-06-11T02:20:24.000Z" // } // + // fetchDeposits ledger entries + // + // { + // "id": 234467, + // "user_id": 1, + // "coin": "BTC", + // "wallet_id": 27913, + // "type": "Realized P&L", + // "amount": "-0.00000006", + // "tx_id": "", + // "address": "BTCUSD", + // "wallet_balance": "0.03000330", + // "exec_time": "2019-12-09T00:00:25.000Z", + // "cross_seq": 0 + // } + // const currencyId = this.safeString (transaction, 'coin'); const code = this.safeCurrencyCode (currencyId, currency); - const timestamp = this.parse8601 (this.safeString (transaction, 'submited_at')); + const timestamp = this.parse8601 (this.safeString2 (transaction, 'submited_at', 'exec_time')); const updated = this.parse8601 (this.safeString (transaction, 'updated_at')); const status = this.parseTransactionStatus (this.safeString (transaction, 'status')); const address = this.safeString (transaction, 'address'); @@ -2043,12 +2073,12 @@ module.exports = class bybit extends Exchange { request['coin'] = currency['id']; } if (since !== undefined) { - request['start_date'] = this.iso8601 (since); + request['start_date'] = this.ymd (since); } if (limit !== undefined) { request['limit'] = limit; } - const response = await this.openapiGetWalletFundRecords (this.extend (request, params)); + const response = await this.v2PrivateGetWalletFundRecords (this.extend (request, params)); // // { // "ret_code": 0, @@ -2147,45 +2177,28 @@ module.exports = class bybit extends Exchange { } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { - let url = this.urls['api']; - let request = path; + let url = this.implodeParams (this.urls['api'], { 'hostname': this.hostname }); + const type = this.safeString (api, 0); + const section = this.safeString (api, 1); + let request = '/' + type + '/' + section + '/' + path; // public v2 - if (api === 'public') { - request = '/' + this.version + '/' + api + '/' + request; + if (section === 'public') { if (Object.keys (params).length) { request += '?' + this.rawencode (params); } - } else if (api === 'publicLinear') { - request = '/public/linear/' + request; + } else if (type === 'public') { if (Object.keys (params).length) { request += '?' + this.rawencode (params); } } else { this.checkRequiredCredentials (); - if (api === 'openapi') { - request = '/open-api/' + request; - } else if (api === 'private') { - // private v2 - request = '/' + this.version + '/' + api + '/' + request; - } else if (api === 'privateLinear') { - request = '/private/linear/' + request; - } else { - // position, user - request = '/' + api + '/' + request; - } const timestamp = this.nonce (); const query = this.extend (params, { 'api_key': this.apiKey, 'recv_window': this.options['recvWindow'], 'timestamp': timestamp, }); - let auth = this.rawencode (this.keysort (query)); - // https://github.com/ccxt/ccxt/issues/7377 - // https://github.com/ccxt/ccxt/issues/7515 - // bybit encodes whole floats as integers without .0 for conditional stop-orders only - if (path.indexOf ('stop-order') >= 0) { - auth = auth.replace ('.0&', '&'); - } + const auth = this.rawencode (this.keysort (query)); const signature = this.hmac (this.encode (auth), this.encode (this.secret)); if (method === 'POST') { body = this.json (this.extend (query, { diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bytetrade.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bytetrade.js index bbd1af6f6..25953b6f7 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bytetrade.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/bytetrade.js @@ -285,7 +285,7 @@ module.exports = class bytetrade extends Exchange { async fetchBalance (params = {}) { if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired (this.id + ' fetchDeposits requires this.apiKey or userid argument'); + throw new ArgumentsRequired (this.id + ' fetchDeposits() requires this.apiKey or userid argument'); } await this.loadMarkets (); const request = { @@ -580,6 +580,7 @@ module.exports = class bytetrade extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -597,7 +598,7 @@ module.exports = class bytetrade extends Exchange { async createOrder (symbol, type, side, amount, price = undefined, params = {}) { this.checkRequiredDependencies (); if (this.apiKey === undefined) { - throw new ArgumentsRequired ('createOrder requires this.apiKey or userid in params'); + throw new ArgumentsRequired ('createOrder() requires this.apiKey or userid in params'); } await this.loadMarkets (); const market = this.market (symbol); @@ -781,7 +782,7 @@ module.exports = class bytetrade extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchOrder requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchOrder() requires this.apiKey or userid argument'); } await this.loadMarkets (); const request = { @@ -799,7 +800,7 @@ module.exports = class bytetrade extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchOpenOrders requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchOpenOrders() requires this.apiKey or userid argument'); } await this.loadMarkets (); const request = { @@ -819,7 +820,7 @@ module.exports = class bytetrade extends Exchange { async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchClosedOrders requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchClosedOrders() requires this.apiKey or userid argument'); } await this.loadMarkets (); let market = undefined; @@ -839,7 +840,7 @@ module.exports = class bytetrade extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchOrders requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchOrders() requires this.apiKey or userid argument'); } await this.loadMarkets (); let market = undefined; @@ -859,10 +860,10 @@ module.exports = class bytetrade extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (this.apiKey === undefined) { - throw new ArgumentsRequired ('cancelOrder requires hasAlreadyAuthenticatedSuccessfully'); + throw new ArgumentsRequired ('cancelOrder() requires hasAlreadyAuthenticatedSuccessfully'); } if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -960,7 +961,7 @@ module.exports = class bytetrade extends Exchange { async transfer (code, amount, address, message = '', params = {}) { this.checkRequiredDependencies (); if (this.apiKey === undefined) { - throw new ArgumentsRequired ('transfer requires this.apiKey'); + throw new ArgumentsRequired ('transfer() requires this.apiKey'); } await this.loadMarkets (); const currency = this.currency (code); @@ -1066,7 +1067,7 @@ module.exports = class bytetrade extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchMyTrades requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchMyTrades() requires this.apiKey or userid argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1086,7 +1087,7 @@ module.exports = class bytetrade extends Exchange { async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchDeposits requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchDeposits() requires this.apiKey or userid argument'); } let currency = undefined; const request = { @@ -1109,7 +1110,7 @@ module.exports = class bytetrade extends Exchange { async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchWithdrawals requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchWithdrawals() requires this.apiKey or userid argument'); } let currency = undefined; const request = { @@ -1193,7 +1194,7 @@ module.exports = class bytetrade extends Exchange { async fetchDepositAddress (code, params = {}) { await this.loadMarkets (); if (!('userid' in params) && (this.apiKey === undefined)) { - throw new ArgumentsRequired ('fetchDepositAddress requires this.apiKey or userid argument'); + throw new ArgumentsRequired ('fetchDepositAddress() requires this.apiKey or userid argument'); } const currency = this.currency (code); const request = { @@ -1219,7 +1220,7 @@ module.exports = class bytetrade extends Exchange { this.checkAddress (address); await this.loadMarkets (); if (this.apiKey === undefined) { - throw new ArgumentsRequired ('withdraw requires this.apiKey'); + throw new ArgumentsRequired (this.id + ' withdraw() requires this.apiKey'); } const addressResponse = await this.fetchDepositAddress (code); const chainTypeString = this.safeString (addressResponse, 'chainType'); diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/huobiru.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/cdax.js similarity index 53% rename from Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/huobiru.js rename to Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/cdax.js index 21e0de149..8bd27989d 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/huobiru.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/cdax.js @@ -6,25 +6,27 @@ const huobipro = require ('./huobipro.js'); // --------------------------------------------------------------------------- -module.exports = class huobiru extends huobipro { +module.exports = class cdax extends huobipro { describe () { return this.deepExtend (super.describe (), { - 'id': 'huobiru', - 'name': 'Huobi Russia', + 'id': 'cdax', + 'name': 'CDAX', 'countries': [ 'RU' ], - 'hostname': 'www.huobi.com.ru', - 'pro': true, + 'hostname': 'cdax.io', + 'pro': false, 'urls': { - 'logo': 'https://user-images.githubusercontent.com/1294454/52978816-e8552e00-33e3-11e9-98ed-845acfece834.jpg', + 'logo': 'https://user-images.githubusercontent.com/1294454/102157692-fd406280-3e90-11eb-8d46-4511b617cd17.jpg', 'api': { 'market': 'https://{hostname}/api', 'public': 'https://{hostname}/api', 'private': 'https://{hostname}/api', + 'v2Public': 'https://{hostname}/api', + 'v2Private': 'https://{hostname}/api', }, - 'www': 'https://www.huobi.com.ru/ru-ru', - 'referral': 'https://www.huobi.com.ru/invite?invite_code=esc74', - 'doc': 'https://github.com/cloudapidoc/API_Docs_en', - 'fees': 'https://www.huobi.com.ru/ru-ru/about/fee/', + 'www': 'https://cdax.io', + 'referral': 'https://cdax.io/invite?invite_code=esc74', + 'doc': 'https://github.com/cloudapidoc/API_Docs', + 'fees': 'https://cdax.io/about/fee', }, }); } diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/cex.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/cex.js index 082db07c7..77473d391 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/cex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/cex.js @@ -676,10 +676,9 @@ module.exports = class cex extends Exchange { let cost = undefined; if (market !== undefined) { symbol = market['symbol']; - cost = this.safeFloat (order, 'ta:' + market['quote']); - if (cost === undefined) { - cost = this.safeFloat (order, 'tta:' + market['quote']); - } + const taCost = this.safeFloat (order, 'ta:' + market['quote']); + const ttaCost = this.safeFloat (order, 'tta:' + market['quote']); + cost = this.sum (taCost, ttaCost); const baseFee = 'fa:' + market['base']; const baseTakerFee = 'tfa:' + market['base']; const quoteFee = 'fa:' + market['quote']; @@ -883,6 +882,7 @@ module.exports = class cex extends Exchange { 'symbol': symbol, 'type': (price === undefined) ? 'market' : 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -918,7 +918,7 @@ module.exports = class cex extends Exchange { await this.loadMarkets (); const method = 'privatePostArchivedOrdersPair'; if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchClosedOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchClosedOrders() requires a symbol argument'); } const market = this.market (symbol); const request = { 'pair': market['id'] }; @@ -1252,10 +1252,10 @@ module.exports = class cex extends Exchange { async editOrder (id, symbol, type, side, amount = undefined, price = undefined, params = {}) { if (amount === undefined) { - throw new ArgumentsRequired (this.id + ' editOrder requires a amount argument'); + throw new ArgumentsRequired (this.id + ' editOrder() requires a amount argument'); } if (price === undefined) { - throw new ArgumentsRequired (this.id + ' editOrder requires a price argument'); + throw new ArgumentsRequired (this.id + ' editOrder() requires a price argument'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinbase.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinbase.js index 61fc650dc..cfceba2a4 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinbase.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinbase.js @@ -3,7 +3,7 @@ // ---------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { ExchangeError, ArgumentsRequired, AuthenticationError, RateLimitExceeded } = require ('./base/errors'); +const { ExchangeError, ArgumentsRequired, AuthenticationError, RateLimitExceeded, InvalidNonce } = require ('./base/errors'); // ---------------------------------------------------------------------------- @@ -123,23 +123,28 @@ module.exports = class coinbase extends Exchange { }, }, 'exceptions': { - 'two_factor_required': AuthenticationError, // 402 When sending money over 2fa limit - 'param_required': ExchangeError, // 400 Missing parameter - 'validation_error': ExchangeError, // 400 Unable to validate POST/PUT - 'invalid_request': ExchangeError, // 400 Invalid request - 'personal_details_required': AuthenticationError, // 400 User’s personal detail required to complete this request - 'identity_verification_required': AuthenticationError, // 400 Identity verification is required to complete this request - 'jumio_verification_required': AuthenticationError, // 400 Document verification is required to complete this request - 'jumio_face_match_verification_required': AuthenticationError, // 400 Document verification including face match is required to complete this request - 'unverified_email': AuthenticationError, // 400 User has not verified their email - 'authentication_error': AuthenticationError, // 401 Invalid auth (generic) - 'invalid_token': AuthenticationError, // 401 Invalid Oauth token - 'revoked_token': AuthenticationError, // 401 Revoked Oauth token - 'expired_token': AuthenticationError, // 401 Expired Oauth token - 'invalid_scope': AuthenticationError, // 403 User hasn’t authenticated necessary scope - 'not_found': ExchangeError, // 404 Resource not found - 'rate_limit_exceeded': RateLimitExceeded, // 429 Rate limit exceeded - 'internal_server_error': ExchangeError, // 500 Internal server error + 'exact': { + 'two_factor_required': AuthenticationError, // 402 When sending money over 2fa limit + 'param_required': ExchangeError, // 400 Missing parameter + 'validation_error': ExchangeError, // 400 Unable to validate POST/PUT + 'invalid_request': ExchangeError, // 400 Invalid request + 'personal_details_required': AuthenticationError, // 400 User’s personal detail required to complete this request + 'identity_verification_required': AuthenticationError, // 400 Identity verification is required to complete this request + 'jumio_verification_required': AuthenticationError, // 400 Document verification is required to complete this request + 'jumio_face_match_verification_required': AuthenticationError, // 400 Document verification including face match is required to complete this request + 'unverified_email': AuthenticationError, // 400 User has not verified their email + 'authentication_error': AuthenticationError, // 401 Invalid auth (generic) + 'invalid_token': AuthenticationError, // 401 Invalid Oauth token + 'revoked_token': AuthenticationError, // 401 Revoked Oauth token + 'expired_token': AuthenticationError, // 401 Expired Oauth token + 'invalid_scope': AuthenticationError, // 403 User hasn’t authenticated necessary scope + 'not_found': ExchangeError, // 404 Resource not found + 'rate_limit_exceeded': RateLimitExceeded, // 429 Rate limit exceeded + 'internal_server_error': ExchangeError, // 500 Internal server error + }, + 'broad': { + 'request timestamp expired': InvalidNonce, // {"errors":[{"id":"authentication_error","message":"request timestamp expired"}]} + }, }, 'commonCurrencies': { 'CGLD': 'CELO', @@ -172,7 +177,11 @@ module.exports = class coinbase extends Exchange { } async fetchAccounts (params = {}) { - const response = await this.privateGetAccounts (params); + await this.loadMarkets (); + const request = { + 'limit': 100, + }; + const response = await this.privateGetAccounts (this.extend (request, params)); // // { // "id": "XLM", @@ -703,7 +712,10 @@ module.exports = class coinbase extends Exchange { async fetchBalance (params = {}) { await this.loadMarkets (); - const response = await this.privateGetAccounts (params); + const request = { + 'limit': 100, + }; + const response = await this.privateGetAccounts (this.extend (request, params)); const balances = this.safeValue (response, 'data'); const accounts = this.safeValue (params, 'type', this.options['accounts']); const result = { 'info': response }; @@ -1175,7 +1187,9 @@ module.exports = class coinbase extends Exchange { // let errorCode = this.safeString (response, 'error'); if (errorCode !== undefined) { - this.throwExactlyMatchedException (this.exceptions, errorCode, feedback); + const errorMessage = this.safeString (response, 'error_description'); + this.throwExactlyMatchedException (this.exceptions['exact'], errorCode, feedback); + this.throwBroadlyMatchedException (this.exceptions['broad'], errorMessage, feedback); throw new ExchangeError (feedback); } const errors = this.safeValue (response, 'errors'); @@ -1184,8 +1198,10 @@ module.exports = class coinbase extends Exchange { const numErrors = errors.length; if (numErrors > 0) { errorCode = this.safeString (errors[0], 'id'); + const errorMessage = this.safeString (errors[0], 'message'); if (errorCode !== undefined) { - this.throwExactlyMatchedException (this.exceptions, errorCode, feedback); + this.throwExactlyMatchedException (this.exceptions['exact'], errorCode, feedback); + this.throwBroadlyMatchedException (this.exceptions['broad'], errorMessage, feedback); throw new ExchangeError (feedback); } } diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinbasepro.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinbasepro.js index f28b951c4..582c03a61 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinbasepro.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinbasepro.js @@ -345,6 +345,7 @@ module.exports = class coinbasepro extends Exchange { } async fetchAccounts (params = {}) { + await this.loadMarkets (); const response = await this.privateGetAccounts (params); // // [ @@ -523,12 +524,20 @@ module.exports = class coinbasepro extends Exchange { // trade_id: 82047307, // maker_order_id: '0f358725-2134-435e-be11-753912a326e0', // taker_order_id: '252b7002-87a3-425c-ac73-f5b9e23f3caf', + // order_id: 'd50ec984-77a8-460a-b958-66f114b0de9b', // side: 'sell', // size: '0.00513192', // price: '9314.78', // product_id: 'BTC-USD', + // profile_id: '6244401d-c078-40d9-b305-7ad3551bc3b0', // sequence: 12038915443, // time: '2020-01-31T20:03:41.158814Z' + // created_at: '2014-11-07T22:19:28.578544Z', + // liquidity: 'T', + // fee: '0.00025', + // settled: true, + // usd_volume: '0.0924556000000000', + // user_id: '595eb864313c2b02ddf2937d' // } // const timestamp = this.parse8601 (this.safeString2 (trade, 'time', 'created_at')); @@ -537,10 +546,15 @@ module.exports = class coinbasepro extends Exchange { let feeRate = undefined; let feeCurrency = undefined; let takerOrMaker = undefined; + let cost = undefined; if (market !== undefined) { + const feeCurrencyId = this.safeStringLower (market, 'quoteId'); + const costField = feeCurrencyId + '_value'; + cost = this.safeFloat (trade, costField); feeCurrency = market['quote']; - if ('liquidity' in trade) { - takerOrMaker = (trade['liquidity'] === 'T') ? 'taker' : 'maker'; + const liquidity = this.safeString (trade, 'liquidity'); + if (liquidity !== undefined) { + takerOrMaker = (liquidity === 'T') ? 'taker' : 'maker'; feeRate = market[takerOrMaker]; } } @@ -560,6 +574,9 @@ module.exports = class coinbasepro extends Exchange { } const price = this.safeFloat (trade, 'price'); const amount = this.safeFloat (trade, 'size'); + if (cost === undefined) { + cost = amount * price; + } return { 'id': id, 'order': orderId, @@ -573,14 +590,14 @@ module.exports = class coinbasepro extends Exchange { 'price': price, 'amount': amount, 'fee': fee, - 'cost': price * amount, + 'cost': cost, }; } async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { // as of 2018-08-23 if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -600,6 +617,9 @@ module.exports = class coinbasepro extends Exchange { const request = { 'id': market['id'], // fixes issue #2 }; + if (limit !== undefined) { + request['limit'] = limit; // default 100 + } const response = await this.publicGetProductsIdTrades (this.extend (request, params)); return this.parseTrades (response, market, since, limit); } @@ -676,6 +696,27 @@ module.exports = class coinbasepro extends Exchange { } parseOrder (order, market = undefined) { + // + // createOrder + // + // { + // "id": "d0c5340b-6d6c-49d9-b567-48c4bfca13d2", + // "price": "0.10000000", + // "size": "0.01000000", + // "product_id": "BTC-USD", + // "side": "buy", + // "stp": "dc", + // "type": "limit", + // "time_in_force": "GTC", + // "post_only": false, + // "created_at": "2016-12-08T20:02:28.53864Z", + // "fill_fees": "0.0000000000000000", + // "filled_size": "0.00000000", + // "executed_value": "0.0000000000000000", + // "status": "pending", + // "settled": false + // } + // const timestamp = this.parse8601 (this.safeString (order, 'created_at')); const marketId = this.safeString (order, 'product_id'); market = this.safeMarket (marketId, market, '-'); @@ -706,9 +747,13 @@ module.exports = class coinbasepro extends Exchange { const id = this.safeString (order, 'id'); const type = this.safeString (order, 'type'); const side = this.safeString (order, 'side'); + const timeInForce = this.safeString (order, 'time_in_force'); + const postOnly = this.safeValue (order, 'post_only'); + const stopPrice = this.safeFloat (order, 'stop_price'); + const clientOrderId = this.safeString (order, 'client_oid'); return { 'id': id, - 'clientOrderId': undefined, + 'clientOrderId': clientOrderId, 'info': order, 'timestamp': timestamp, 'datetime': this.iso8601 (timestamp), @@ -716,10 +761,11 @@ module.exports = class coinbasepro extends Exchange { 'status': status, 'symbol': market['symbol'], 'type': type, - 'timeInForce': undefined, + 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, - 'stopPrice': undefined, + 'stopPrice': stopPrice, 'cost': cost, 'amount': amount, 'filled': filled, @@ -732,10 +778,18 @@ module.exports = class coinbasepro extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { await this.loadMarkets (); - const request = { - 'id': id, - }; - const response = await this.privateGetOrdersId (this.extend (request, params)); + const request = {}; + const clientOrderId = this.safeString2 (params, 'clientOrderId', 'client_oid'); + let method = undefined; + if (clientOrderId === undefined) { + method = 'privateGetOrdersId'; + request['id'] = id; + } else { + method = 'privateGetOrdersClientClientOid'; + request['client_oid'] = clientOrderId; + params = this.omit (params, [ 'clientOrderId', 'client_oid' ]); + } + const response = await this[method] (this.extend (request, params)); return this.parseOrder (response); } @@ -753,17 +807,10 @@ module.exports = class coinbasepro extends Exchange { } async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); const request = { 'status': 'all', }; - let market = undefined; - if (symbol !== undefined) { - market = this.market (symbol); - request['product_id'] = market['id']; - } - const response = await this.privateGetOrders (this.extend (request, params)); - return this.parseOrders (response, market, since, limit); + return await this.fetchOpenOrders (symbol, since, limit, this.extend (request, params)); } async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { @@ -774,47 +821,131 @@ module.exports = class coinbasepro extends Exchange { market = this.market (symbol); request['product_id'] = market['id']; } + if (limit !== undefined) { + request['limit'] = limit; // default 100 + } const response = await this.privateGetOrders (this.extend (request, params)); return this.parseOrders (response, market, since, limit); } async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); const request = { 'status': 'done', }; - let market = undefined; - if (symbol !== undefined) { - market = this.market (symbol); - request['product_id'] = market['id']; - } - const response = await this.privateGetOrders (this.extend (request, params)); - return this.parseOrders (response, market, since, limit); + return await this.fetchOpenOrders (symbol, since, limit, this.extend (request, params)); } async createOrder (symbol, type, side, amount, price = undefined, params = {}) { await this.loadMarkets (); - // let oid = this.nonce ().toString (); + const market = this.market (symbol); const request = { - 'product_id': this.marketId (symbol), - 'side': side, - 'size': this.amountToPrecision (symbol, amount), + // common params -------------------------------------------------- + // 'client_oid': clientOrderId, 'type': type, + 'side': side, + 'product_id': market['id'], + // 'size': this.amountToPrecision (symbol, amount), + // 'stp': 'dc', // self-trade prevention, dc = decrease and cancel, co = cancel oldest, cn = cancel newest, cb = cancel both + // 'stop': 'loss', // "loss" = stop loss below price, "entry" = take profit above price + // 'stop_price': this.priceToPrecision (symbol, price), + // limit order params --------------------------------------------- + // 'price': this.priceToPrecision (symbol, price), + // 'size': this.amountToPrecision (symbol, amount), + // 'time_in_force': 'GTC', // GTC, GTT, IOC, or FOK + // 'cancel_after' [optional]* min, hour, day, requires time_in_force to be GTT + // 'post_only': false, // invalid when time_in_force is IOC or FOK + // market order params -------------------------------------------- + // 'size': this.amountToPrecision (symbol, amount), + // 'funds': this.costToPrecision (symbol, amount), }; + const clientOrderId = this.safeString2 (params, 'clientOrderId', 'client_oid'); + if (clientOrderId !== undefined) { + request['client_oid'] = clientOrderId; + params = this.omit (params, [ 'clientOrderId', 'client_oid' ]); + } + const stopPrice = this.safeFloat2 (params, 'stopPrice', 'stop_price'); + if (stopPrice !== undefined) { + request['stop_price'] = this.priceToPrecision (symbol, stopPrice); + params = this.omit (params, [ 'stopPrice', 'stop_price' ]); + } + const timeInForce = this.safeString2 (params, 'timeInForce', 'time_in_force'); + if (timeInForce !== undefined) { + request['time_in_force'] = timeInForce; + params = this.omit (params, [ 'timeInForce', 'time_in_force' ]); + } if (type === 'limit') { request['price'] = this.priceToPrecision (symbol, price); + request['size'] = this.amountToPrecision (symbol, amount); + } else if (type === 'market') { + let cost = this.safeFloat2 (params, 'cost', 'funds'); + if (cost === undefined) { + if (price !== undefined) { + cost = amount * price; + } + } else { + params = this.omit (params, [ 'cost', 'funds' ]); + } + if (cost !== undefined) { + request['funds'] = this.costToPrecision (symbol, cost); + } else { + request['size'] = this.amountToPrecision (symbol, amount); + } } const response = await this.privatePostOrders (this.extend (request, params)); - return this.parseOrder (response); + // + // { + // "id": "d0c5340b-6d6c-49d9-b567-48c4bfca13d2", + // "price": "0.10000000", + // "size": "0.01000000", + // "product_id": "BTC-USD", + // "side": "buy", + // "stp": "dc", + // "type": "limit", + // "time_in_force": "GTC", + // "post_only": false, + // "created_at": "2016-12-08T20:02:28.53864Z", + // "fill_fees": "0.0000000000000000", + // "filled_size": "0.00000000", + // "executed_value": "0.0000000000000000", + // "status": "pending", + // "settled": false + // } + // + return this.parseOrder (response, market); } async cancelOrder (id, symbol = undefined, params = {}) { await this.loadMarkets (); - return await this.privateDeleteOrdersId ({ 'id': id }); + const request = { + // 'product_id': market['id'], // the request will be more performant if you include it + }; + const clientOrderId = this.safeString2 (params, 'clientOrderId', 'client_oid'); + let method = undefined; + if (clientOrderId === undefined) { + method = 'privateDeleteOrdersId'; + request['id'] = id; + } else { + method = 'privateDeleteOrdersClientClientOid'; + request['client_oid'] = clientOrderId; + params = this.omit (params, [ 'clientOrderId', 'client_oid' ]); + } + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['product_id'] = market['symbol']; // the request will be more performant if you include it + } + return await this[method] (this.extend (request, params)); } async cancelAllOrders (symbol = undefined, params = {}) { - return await this.privateDeleteOrders (params); + await this.loadMarkets (); + const request = {}; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['product_id'] = market['symbol']; // the request will be more performant if you include it + } + return await this.privateDeleteOrders (this.extend (request, params)); } calculateFee (symbol, type, side, amount, price, takerOrMaker = 'taker', params = {}) { @@ -880,6 +1011,9 @@ module.exports = class coinbasepro extends Exchange { } else { method += 'Crypto'; request['crypto_address'] = address; + if (tag !== undefined) { + request['destination_tag'] = tag; + } } const response = await this[method] (this.extend (request, params)); if (!response) { @@ -965,7 +1099,7 @@ module.exports = class coinbasepro extends Exchange { const currencyId = this.safeString (transaction, 'currency'); const code = this.safeCurrencyCode (currencyId, currency); const status = this.parseTransactionStatus (transaction); - const amount = this.safeFloat (transaction, 'amount'); + let amount = this.safeFloat (transaction, 'amount'); let type = this.safeString (transaction, 'type'); let address = this.safeString (details, 'crypto_address'); const tag = this.safeString (details, 'destination_tag'); @@ -976,9 +1110,12 @@ module.exports = class coinbasepro extends Exchange { address = this.safeString (details, 'sent_to_address', address); const feeCost = this.safeFloat (details, 'fee'); if (feeCost !== undefined) { + if (amount !== undefined) { + amount -= feeCost; + } fee = { 'cost': feeCost, - 'code': code, + 'currency': code, }; } } diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coincheck.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coincheck.js index 6b2618ad3..807882d02 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coincheck.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coincheck.js @@ -81,10 +81,11 @@ module.exports = class coincheck extends Exchange { 'markets': { 'BTC/JPY': { 'id': 'btc_jpy', 'symbol': 'BTC/JPY', 'base': 'BTC', 'quote': 'JPY', 'baseId': 'btc', 'quoteId': 'jpy' }, // the only real pair // 'ETH/JPY': { 'id': 'eth_jpy', 'symbol': 'ETH/JPY', 'base': 'ETH', 'quote': 'JPY', 'baseId': 'eth', 'quoteId': 'jpy' }, - // 'ETC/JPY': { 'id': 'etc_jpy', 'symbol': 'ETC/JPY', 'base': 'ETC', 'quote': 'JPY', 'baseId': 'etc', 'quoteId': 'jpy' }, + 'ETC/JPY': { 'id': 'etc_jpy', 'symbol': 'ETC/JPY', 'base': 'ETC', 'quote': 'JPY', 'baseId': 'etc', 'quoteId': 'jpy' }, // 'DAO/JPY': { 'id': 'dao_jpy', 'symbol': 'DAO/JPY', 'base': 'DAO', 'quote': 'JPY', 'baseId': 'dao', 'quoteId': 'jpy' }, // 'LSK/JPY': { 'id': 'lsk_jpy', 'symbol': 'LSK/JPY', 'base': 'LSK', 'quote': 'JPY', 'baseId': 'lsk', 'quoteId': 'jpy' }, - // 'FCT/JPY': { 'id': 'fct_jpy', 'symbol': 'FCT/JPY', 'base': 'FCT', 'quote': 'JPY', 'baseId': 'fct', 'quoteId': 'jpy' }, + 'FCT/JPY': { 'id': 'fct_jpy', 'symbol': 'FCT/JPY', 'base': 'FCT', 'quote': 'JPY', 'baseId': 'fct', 'quoteId': 'jpy' }, + 'MONA/JPY': { 'id': 'mona_jpy', 'symbol': 'MONA/JPY', 'base': 'MONA', 'quote': 'JPY', 'baseId': 'mona', 'quoteId': 'jpy' }, // 'XMR/JPY': { 'id': 'xmr_jpy', 'symbol': 'XMR/JPY', 'base': 'XMR', 'quote': 'JPY', 'baseId': 'xmr', 'quoteId': 'jpy' }, // 'REP/JPY': { 'id': 'rep_jpy', 'symbol': 'REP/JPY', 'base': 'REP', 'quote': 'JPY', 'baseId': 'rep', 'quoteId': 'jpy' }, // 'XRP/JPY': { 'id': 'xrp_jpy', 'symbol': 'XRP/JPY', 'base': 'XRP', 'quote': 'JPY', 'baseId': 'xrp', 'quoteId': 'jpy' }, @@ -93,7 +94,7 @@ module.exports = class coincheck extends Exchange { // 'LTC/JPY': { 'id': 'ltc_jpy', 'symbol': 'LTC/JPY', 'base': 'LTC', 'quote': 'JPY', 'baseId': 'ltc', 'quoteId': 'jpy' }, // 'DASH/JPY': { 'id': 'dash_jpy', 'symbol': 'DASH/JPY', 'base': 'DASH', 'quote': 'JPY', 'baseId': 'dash', 'quoteId': 'jpy' }, // 'ETH/BTC': { 'id': 'eth_btc', 'symbol': 'ETH/BTC', 'base': 'ETH', 'quote': 'BTC', 'baseId': 'eth', 'quoteId': 'btc' }, - // 'ETC/BTC': { 'id': 'etc_btc', 'symbol': 'ETC/BTC', 'base': 'ETC', 'quote': 'BTC', 'baseId': 'etc', 'quoteId': 'btc' }, + 'ETC/BTC': { 'id': 'etc_btc', 'symbol': 'ETC/BTC', 'base': 'ETC', 'quote': 'BTC', 'baseId': 'etc', 'quoteId': 'btc' }, // 'LSK/BTC': { 'id': 'lsk_btc', 'symbol': 'LSK/BTC', 'base': 'LSK', 'quote': 'BTC', 'baseId': 'lsk', 'quoteId': 'btc' }, // 'FCT/BTC': { 'id': 'fct_btc', 'symbol': 'FCT/BTC', 'base': 'FCT', 'quote': 'BTC', 'baseId': 'fct', 'quoteId': 'btc' }, // 'XMR/BTC': { 'id': 'xmr_btc', 'symbol': 'XMR/BTC', 'base': 'XMR', 'quote': 'BTC', 'baseId': 'xmr', 'quoteId': 'btc' }, @@ -197,6 +198,7 @@ module.exports = class coincheck extends Exchange { 'side': side, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'status': status, 'symbol': symbol, 'price': price, @@ -210,11 +212,12 @@ module.exports = class coincheck extends Exchange { } async fetchOrderBook (symbol, limit = undefined, params = {}) { - if (symbol !== 'BTC/JPY') { - throw new BadSymbol (this.id + ' fetchOrderBook () supports BTC/JPY only'); - } await this.loadMarkets (); - const response = await this.publicGetOrderBooks (params); + const market = this.market (symbol); + const request = { + 'pair': market['id'], + }; + const response = await this.publicGetOrderBooks (this.extend (request, params)); return this.parseOrderBook (response); } @@ -223,7 +226,11 @@ module.exports = class coincheck extends Exchange { throw new BadSymbol (this.id + ' fetchTicker () supports BTC/JPY only'); } await this.loadMarkets (); - const ticker = await this.publicGetTicker (params); + const market = this.market (symbol); + const request = { + 'pair': market['id'], + }; + const ticker = await this.publicGetTicker (this.extend (request, params)); const timestamp = this.safeTimestamp (ticker, 'timestamp'); const last = this.safeFloat (ticker, 'last'); return { @@ -337,9 +344,6 @@ module.exports = class coincheck extends Exchange { } async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { - if (symbol !== 'BTC/JPY') { - throw new BadSymbol (this.id + ' fetchTrades () supports BTC/JPY only'); - } await this.loadMarkets (); const market = this.market (symbol); const request = { diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinegg.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinegg.js index 0918ef9a0..e270e3bf7 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinegg.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinegg.js @@ -154,6 +154,7 @@ module.exports = class coinegg extends Exchange { }, 'commonCurrencies': { 'JBC': 'JubaoCoin', + 'SBTC': 'Super Bitcoin', }, }); } @@ -367,6 +368,7 @@ module.exports = class coinegg extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinex.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinex.js index 91f4c2052..cc344ee72 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinex.js @@ -92,6 +92,8 @@ module.exports = class coinex extends Exchange { 'order/status', 'order/status/batch', 'order/user/deals', + 'sub_account/balance', + 'sub_account/transfer/history', ], 'post': [ 'balance/coin/withdraw', @@ -499,6 +501,7 @@ module.exports = class coinex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -562,7 +565,7 @@ module.exports = class coinex extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -759,7 +762,7 @@ module.exports = class coinex extends Exchange { const timestamp = this.safeTimestamp (transaction, 'create_time'); const type = ('coin_withdraw_id' in transaction) ? 'withdraw' : 'deposit'; const status = this.parseTransactionStatus (this.safeString (transaction, 'status')); - const amount = this.safeFloat (transaction, 'amount'); + let amount = this.safeFloat (transaction, 'amount'); let feeCost = this.safeFloat (transaction, 'tx_fee'); if (type === 'deposit') { feeCost = 0; @@ -768,6 +771,10 @@ module.exports = class coinex extends Exchange { 'cost': feeCost, 'currency': code, }; + // https://github.com/ccxt/ccxt/issues/8321 + if (amount !== undefined) { + amount = amount - feeCost; + } return { 'info': transaction, 'id': id, @@ -787,7 +794,7 @@ module.exports = class coinex extends Exchange { async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchWithdrawals requires a currency code argument'); + throw new ArgumentsRequired (this.id + ' fetchWithdrawals() requires a currency code argument'); } await this.loadMarkets (); const currency = this.currency (code); @@ -845,7 +852,7 @@ module.exports = class coinex extends Exchange { async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchDeposits requires a currency code argument'); + throw new ArgumentsRequired (this.id + ' fetchDeposits() requires a currency code argument'); } await this.loadMarkets (); const currency = this.currency (code); @@ -910,7 +917,7 @@ module.exports = class coinex extends Exchange { 'tonce': nonce.toString (), }, query); query = this.keysort (query); - const urlencoded = this.urlencode (query); + const urlencoded = this.rawencode (query); const signature = this.hash (this.encode (urlencoded + '&secret_key=' + this.secret)); headers = { 'Authorization': signature.toUpperCase (), diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinfalcon.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinfalcon.js index 563a4c987..6c264b4ec 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinfalcon.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinfalcon.js @@ -217,7 +217,7 @@ module.exports = class coinfalcon extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -320,6 +320,7 @@ module.exports = class coinfalcon extends Exchange { type = type[0]; } const side = this.safeString (order, 'order_type'); + const postOnly = this.safeValue (order, 'post_only'); return { 'id': this.safeString (order, 'id'), 'clientOrderId': undefined, @@ -329,6 +330,7 @@ module.exports = class coinfalcon extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinfloor.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinfloor.js index 5d59bdf98..7fff650de 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinfloor.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinfloor.js @@ -27,7 +27,7 @@ module.exports = class coinfloor extends Exchange { }, 'urls': { 'logo': 'https://user-images.githubusercontent.com/51840849/87153925-ef265e80-c2c0-11ea-91b5-020c804b90e0.jpg', - 'api': 'https://webapi.coinfloor.co.uk/bist', + 'api': 'https://webapi.coinfloor.co.uk/v2/bist', 'www': 'https://www.coinfloor.co.uk', 'doc': [ 'https://github.com/coinfloor/api', @@ -90,7 +90,7 @@ module.exports = class coinfloor extends Exchange { market = this.markets_by_id[marketId]; } if (market === undefined) { - throw new ArgumentsRequired (this.id + ' fetchBalance requires a symbol param'); + throw new ArgumentsRequired (this.id + ' fetchBalance() requires a symbol param'); } const request = { 'id': market['id'], @@ -223,7 +223,7 @@ module.exports = class coinfloor extends Exchange { if (code !== undefined) { market = this.market (code); if (market === undefined) { - throw new ArgumentsRequired (this.id + ' fetchTransactions requires a code argument (a market symbol)'); + throw new ArgumentsRequired (this.id + ' fetchTransactions() requires a code argument (a market symbol)'); } } const request = { @@ -431,7 +431,7 @@ module.exports = class coinfloor extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -480,6 +480,7 @@ module.exports = class coinfloor extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -495,7 +496,7 @@ module.exports = class coinfloor extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol param'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol param'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinmarketcap.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinmarketcap.js index 3d983cc88..171a65889 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinmarketcap.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinmarketcap.js @@ -150,6 +150,8 @@ module.exports = class coinmarketcap extends Exchange { // https://github.com/ccxt/ccxt/issues/6081 // https://github.com/ccxt/ccxt/issues/3365 // https://github.com/ccxt/ccxt/issues/2873 + 'SBTCT': 'SiamBitcoin', // conflict with sBTC + 'Super Bitcoin': 'Super Bitcoin', // conflict with sBTC 'TerraCredit': 'TerraCredit', // conflict with CREDIT (PROXI) 'Themis': 'Themis', // conflict with GET (Guaranteed Entrance Token, GET Protocol) 'UNI COIN': 'UNI COIN', // conflict with UNI (Uniswap) diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinmate.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinmate.js index 844bc0011..b03ce8783 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinmate.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinmate.js @@ -529,7 +529,7 @@ module.exports = class coinmate extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -641,6 +641,7 @@ module.exports = class coinmate extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinone.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinone.js index eb14695fa..0c86365b6 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinone.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinone.js @@ -373,7 +373,7 @@ module.exports = class coinone extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -518,6 +518,7 @@ module.exports = class coinone extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -567,7 +568,7 @@ module.exports = class coinone extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -602,14 +603,14 @@ module.exports = class coinone extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { // eslint-disable-next-line quotes - throw new ArgumentsRequired (this.id + " cancelOrder requires a symbol argument. To cancel the order, pass a symbol argument and {'price': 12345, 'qty': 1.2345, 'is_ask': 0} in the params argument of cancelOrder."); + throw new ArgumentsRequired (this.id + " cancelOrder() requires a symbol argument. To cancel the order, pass a symbol argument and {'price': 12345, 'qty': 1.2345, 'is_ask': 0} in the params argument of cancelOrder."); } const price = this.safeFloat (params, 'price'); const qty = this.safeFloat (params, 'qty'); const isAsk = this.safeInteger (params, 'is_ask'); if ((price === undefined) || (qty === undefined) || (isAsk === undefined)) { // eslint-disable-next-line quotes - throw new ArgumentsRequired (this.id + " cancelOrder requires {'price': 12345, 'qty': 1.2345, 'is_ask': 0} in the params argument."); + throw new ArgumentsRequired (this.id + " cancelOrder() requires {'price': 12345, 'qty': 1.2345, 'is_ask': 0} in the params argument."); } await this.loadMarkets (); const request = { diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinspot.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinspot.js index 2da1a5ee7..e04c42b5d 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinspot.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/coinspot.js @@ -3,7 +3,7 @@ // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { ExchangeError, AuthenticationError, NotSupported } = require ('./base/errors'); +const { ExchangeError, ArgumentsRequired, AuthenticationError } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -70,27 +70,72 @@ module.exports = class coinspot extends Exchange { }, 'markets': { 'BTC/AUD': { 'id': 'btc', 'symbol': 'BTC/AUD', 'base': 'BTC', 'quote': 'AUD', 'baseId': 'btc', 'quoteId': 'aud' }, + 'ETH/AUD': { 'id': 'eth', 'symbol': 'ETH/AUD', 'base': 'ETH', 'quote': 'AUD', 'baseId': 'eth', 'quoteId': 'aud' }, + 'XRP/AUD': { 'id': 'xrp', 'symbol': 'XRP/AUD', 'base': 'XRP', 'quote': 'AUD', 'baseId': 'xrp', 'quoteId': 'aud' }, 'LTC/AUD': { 'id': 'ltc', 'symbol': 'LTC/AUD', 'base': 'LTC', 'quote': 'AUD', 'baseId': 'ltc', 'quoteId': 'aud' }, 'DOGE/AUD': { 'id': 'doge', 'symbol': 'DOGE/AUD', 'base': 'DOGE', 'quote': 'AUD', 'baseId': 'doge', 'quoteId': 'aud' }, + 'RFOX/AUD': { 'id': 'rfox', 'symbol': 'RFOX/AUD', 'base': 'RFOX', 'quote': 'AUD', 'baseId': 'rfox', 'quoteId': 'aud' }, + 'POWR/AUD': { 'id': 'powr', 'symbol': 'POWR/AUD', 'base': 'POWR', 'quote': 'AUD', 'baseId': 'powr', 'quoteId': 'aud' }, + 'NEO/AUD': { 'id': 'neo', 'symbol': 'NEO/AUD', 'base': 'NEO', 'quote': 'AUD', 'baseId': 'neo', 'quoteId': 'aud' }, + 'TRX/AUD': { 'id': 'trx', 'symbol': 'TRX/AUD', 'base': 'TRX', 'quote': 'AUD', 'baseId': 'trx', 'quoteId': 'aud' }, + 'EOS/AUD': { 'id': 'eos', 'symbol': 'EOS/AUD', 'base': 'EOS', 'quote': 'AUD', 'baseId': 'eos', 'quoteId': 'aud' }, + 'XLM/AUD': { 'id': 'xlm', 'symbol': 'XLM/AUD', 'base': 'XLM', 'quote': 'AUD', 'baseId': 'xlm', 'quoteId': 'aud' }, + 'RHOC/AUD': { 'id': 'rhoc', 'symbol': 'RHOC/AUD', 'base': 'RHOC', 'quote': 'AUD', 'baseId': 'rhoc', 'quoteId': 'aud' }, + 'GAS/AUD': { 'id': 'gas', 'symbol': 'GAS/AUD', 'base': 'GAS', 'quote': 'AUD', 'baseId': 'gas', 'quoteId': 'aud' }, }, 'commonCurrencies': { 'DRK': 'DASH', }, + 'options': { + 'fetchBalance': 'private_post_my_balances', + }, }); } async fetchBalance (params = {}) { await this.loadMarkets (); - const response = await this.privatePostMyBalances (params); + const method = this.safeString (this.options, 'fetchBalance', 'private_post_my_balances'); + const response = await this[method] (params); + // + // read-write api keys + // + // ... + // + // read-only api keys + // + // { + // "status":"ok", + // "balances":[ + // { + // "LTC":{"balance":0.1,"audbalance":16.59,"rate":165.95} + // } + // ] + // } + // const result = { 'info': response }; - const balances = this.safeValue (response, 'balance', {}); - const currencyIds = Object.keys (balances); - for (let i = 0; i < currencyIds.length; i++) { - const currencyId = currencyIds[i]; - const code = this.safeCurrencyCode (currencyId); - const account = this.account (); - account['total'] = this.safeFloat (balances, currencyId); - result[code] = account; + const balances = this.safeValue2 (response, 'balance', 'balances'); + if (Array.isArray (balances)) { + for (let i = 0; i < balances.length; i++) { + const currencies = balances[i]; + const currencyIds = Object.keys (currencies); + for (let j = 0; j < currencyIds.length; j++) { + const currencyId = currencyIds[j]; + const balance = currencies[currencyId]; + const code = this.safeCurrencyCode (currencyId); + const account = this.account (); + account['total'] = this.safeFloat (balance, 'balance'); + result[code] = account; + } + } + } else { + const currencyIds = Object.keys (balances); + for (let i = 0; i < currencyIds.length; i++) { + const currencyId = currencyIds[i]; + const code = this.safeCurrencyCode (currencyId); + const account = this.account (); + account['total'] = this.safeFloat (balances, currencyId); + result[code] = account; + } } return this.parseBalance (result); } @@ -210,9 +255,16 @@ module.exports = class coinspot extends Exchange { } async cancelOrder (id, symbol = undefined, params = {}) { - throw new NotSupported (this.id + ' cancelOrder () is not fully implemented yet'); - // let method = 'privatePostMyBuy'; - // return await this[method] ({ 'id': id }); + const side = this.safeString (params, 'side'); + if (side !== 'buy' && side !== 'sell') { + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a side parameter, "buy" or "sell"'); + } + params = this.omit (params, 'side'); + const method = 'privatePostMy' + this.capitalize (side) + 'Cancel'; + const request = { + 'id': id, + }; + return await this[method] (this.extend (request, params)); } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/crex24.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/crex24.js index 5ea3e826c..7c1298090 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/crex24.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/crex24.js @@ -133,6 +133,7 @@ module.exports = class crex24 extends Exchange { 'GHOST': 'GHOSTPRISM', 'IQ': 'IQ.Cash', 'PUT': 'PutinCoin', + 'SBTC': 'SBTCT', // SiamBitcoin 'UNI': 'Universe', 'YOYO': 'YOYOW', }, @@ -158,6 +159,7 @@ module.exports = class crex24 extends Exchange { "Parameter 'instrument' contains invalid value.": BadSymbol, }, 'broad': { + 'try again later': ExchangeNotAvailable, // {"errorDescription":"Failed to process the request. Please, try again later."} 'API Key': AuthenticationError, // "API Key '9edc48de-d5b0-4248-8e7e-f59ffcd1c7f1' doesn't exist." 'Insufficient funds': InsufficientFunds, // "Insufficient funds: new order requires 10 ETH which is more than the available balance." 'has been delisted.': BadSymbol, // {"errorDescription":"Instrument '$PAC-BTC' has been delisted."} @@ -757,14 +759,14 @@ module.exports = class crex24 extends Exchange { } if (priceIsRequired) { if (price === undefined) { - throw new InvalidOrder (this.id + ' createOrder method requires a price argument for a ' + type + ' order'); + throw new InvalidOrder (this.id + ' createOrder() requires a price argument for a ' + type + ' order'); } request['price'] = this.priceToPrecision (symbol, price); } if (stopPriceIsRequired) { const stopPrice = this.safeFloat (params, 'stopPrice'); if (stopPrice === undefined) { - throw new InvalidOrder (this.id + ' createOrder method requires a stopPrice extra param for a ' + type + ' order'); + throw new InvalidOrder (this.id + ' createOrder() requires a stopPrice extra param for a ' + type + ' order'); } else { request['stopPrice'] = this.priceToPrecision (symbol, stopPrice); } diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/currencycom.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/currencycom.js index 3914c1bfc..c8570f1d4 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/currencycom.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/currencycom.js @@ -916,7 +916,7 @@ module.exports = class currencycom extends Exchange { if (market['margin']) { accountId = this.safeInteger (params, 'accountId'); if (accountId === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires an accountId parameter for ' + market['type'] + ' market ' + symbol); + throw new ArgumentsRequired (this.id + ' createOrder() requires an accountId parameter for ' + market['type'] + ' market ' + symbol); } } const uppercaseType = type.toUpperCase (); @@ -977,7 +977,7 @@ module.exports = class currencycom extends Exchange { const symbols = this.symbols; const numSymbols = symbols.length; const fetchOpenOrdersRateLimit = parseInt (numSymbols / 2); - throw new ExchangeError (this.id + ' fetchOpenOrders WARNING: fetching open orders without specifying a symbol is rate-limited to one call per ' + fetchOpenOrdersRateLimit.toString () + ' seconds. Do not call this method frequently to avoid ban. Set ' + this.id + '.options["warnOnFetchOpenOrdersWithoutSymbol"] = false to suppress this warning message.'); + throw new ExchangeError (this.id + ' fetchOpenOrders() WARNING: fetching open orders without specifying a symbol is rate-limited to one call per ' + fetchOpenOrdersRateLimit.toString () + ' seconds. Do not call this method frequently to avoid ban. Set ' + this.id + '.options["warnOnFetchOpenOrdersWithoutSymbol"] = false to suppress this warning message.'); } const response = await this.privateGetOpenOrders (this.extend (request, params)); return this.parseOrders (response, market, since, limit); @@ -985,7 +985,7 @@ module.exports = class currencycom extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1020,7 +1020,7 @@ module.exports = class currencycom extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/delta.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/delta.js new file mode 100644 index 000000000..9b3c559bf --- /dev/null +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/delta.js @@ -0,0 +1,1483 @@ +'use strict'; + +// --------------------------------------------------------------------------- + +const Exchange = require ('./base/Exchange'); +const { ExchangeError, InsufficientFunds, BadRequest, BadSymbol, InvalidOrder, AuthenticationError, ArgumentsRequired, OrderNotFound, ExchangeNotAvailable } = require ('./base/errors'); +const { TICK_SIZE } = require ('./base/functions/number'); + +// --------------------------------------------------------------------------- + +module.exports = class delta extends Exchange { + describe () { + return this.deepExtend (super.describe (), { + 'id': 'delta', + 'name': 'Delta Exchange', + 'countries': [ 'VC' ], // Saint Vincent and the Grenadines + 'rateLimit': 300, + 'version': 'v2', + // new metainfo interface + 'has': { + 'cancelAllOrders': true, + 'cancelOrder': true, + 'createOrder': true, + 'editOrder': true, + 'fetchBalance': true, + 'fetchClosedOrders': true, + 'fetchDepositAddress': true, + 'fetchCurrencies': true, + 'fetchLedger': true, + 'fetchMarkets': true, + 'fetchMyTrades': true, + 'fetchOHLCV': true, + 'fetchOpenOrders': true, + 'fetchOrderBook': true, + 'fetchStatus': true, + 'fetchTicker': true, + 'fetchTickers': true, + 'fetchTime': true, + 'fetchTrades': true, + }, + 'timeframes': { + '1m': '1m', + '3m': '3m', + '5m': '5m', + '15m': '15m', + '30m': '30m', + '1h': '1h', + '2h': '2h', + '4h': '4h', + '6h': '6h', + '1d': '1d', + '7d': '7d', + '1w': '1w', + '2w': '2w', + '1M': '30d', + }, + 'urls': { + 'logo': 'https://user-images.githubusercontent.com/1294454/99450025-3be60a00-2931-11eb-9302-f4fd8d8589aa.jpg', + 'test': { + 'public': 'https://testnet-api.delta.exchange', + 'private': 'https://testnet-api.delta.exchange', + }, + 'api': { + 'public': 'https://api.delta.exchange', + 'private': 'https://api.delta.exchange', + }, + 'www': 'https://www.delta.exchange', + 'doc': [ + 'https://docs.delta.exchange', + ], + 'fees': 'https://www.delta.exchange/fees', + 'referral': 'https://www.delta.exchange/app/signup/?code=IULYNB', + }, + 'api': { + 'public': { + 'get': [ + 'assets', + 'settings', + 'indices', + 'products', + 'tickers', + 'tickers/{symbol}', + 'l2orderbook/{symbol}', + 'trades/{symbol}', + 'history/candles', + 'history/sparklines', + ], + }, + 'private': { + 'get': [ + 'orders', + 'orders/leverage', + 'positions', + 'positions/margined', + 'orders/history', + 'fills', + 'fills/history/download/csv', + 'wallet/balances', + 'wallet/transactions', + 'wallet/transactions/download', + 'deposits/address', + ], + 'post': [ + 'orders', + 'orders/batch', + 'orders/leverage', + 'positions/change_margin', + ], + 'put': [ + 'orders', + 'orders/batch', + ], + 'delete': [ + 'orders', + 'orders/all', + 'orders/batch', + ], + }, + }, + 'fees': { + 'trading': { + 'tierBased': true, + 'percentage': true, + 'taker': 0.15 / 100, + 'maker': 0.10 / 100, + 'tiers': { + 'taker': [ + [0, 0.15 / 100], + [100, 0.13 / 100], + [250, 0.13 / 100], + [1000, 0.1 / 100], + [5000, 0.09 / 100], + [10000, 0.075 / 100], + [20000, 0.065 / 100], + ], + 'maker': [ + [0, 0.1 / 100], + [100, 0.1 / 100], + [250, 0.09 / 100], + [1000, 0.075 / 100], + [5000, 0.06 / 100], + [10000, 0.05 / 100], + [20000, 0.05 / 100], + ], + }, + }, + }, + 'precisionMode': TICK_SIZE, + 'requiredCredentials': { + 'apiKey': true, + 'secret': false, + }, + 'exceptions': { + 'exact': { + // Margin required to place order with selected leverage and quantity is insufficient. + 'insufficient_margin': InsufficientFunds, // {"error":{"code":"insufficient_margin","context":{"available_balance":"0.000000000000000000","required_additional_balance":"1.618626000000000000000000000"}},"success":false} + 'order_size_exceed_available': InvalidOrder, // The order book doesn't have sufficient liquidity, hence the order couldnt be filled, for example, ioc orders + 'risk_limits_breached': BadRequest, // orders couldn't be placed as it will breach allowed risk limits. + 'invalid_contract': BadSymbol, // The contract/product is either doesn't exist or has already expired. + 'immediate_liquidation': InvalidOrder, // Order will cause immediate liquidation. + 'out_of_bankruptcy': InvalidOrder, // Order prices are out of position bankruptcy limits. + 'self_matching_disrupted_post_only': InvalidOrder, // Self matching is not allowed during auction. + 'immediate_execution_post_only': InvalidOrder, // orders couldn't be placed as it includes post only orders which will be immediately executed + 'bad_schema': BadRequest, // {"error":{"code":"bad_schema","context":{"schema_errors":[{"code":"validation_error","message":"id is required","param":""}]}},"success":false} + 'invalid_api_key': AuthenticationError, // {"success":false,"error":{"code":"invalid_api_key"}} + 'invalid_signature': AuthenticationError, // {"success":false,"error":{"code":"invalid_signature"}} + 'open_order_not_found': OrderNotFound, // {"error":{"code":"open_order_not_found"},"success":false} + 'unavailable': ExchangeNotAvailable, // {"error":{"code":"unavailable"},"success":false} + }, + 'broad': { + }, + }, + }); + } + + async fetchTime (params = {}) { + const response = await this.publicGetSettings (params); + // + // { + // "result":{ + // "server_time":1605472733766141, + // "deto_referral_mining_daily_reward":"25000", + // "deto_total_reward_pool":"100000000", + // "deto_trade_mining_daily_reward":"75000", + // "kyc_deposit_limit":"20", + // "kyc_withdrawal_limit":"2", + // "under_maintenance":"false" + // }, + // "success":true + // } + // + const result = this.safeValue (response, 'result', {}); + return this.safeIntegerProduct (result, 'server_time', 0.001); + } + + async fetchStatus (params = {}) { + const response = await this.publicGetSettings (params); + const result = this.safeValue (response, 'result', {}); + const underMaintenance = this.safeValue (result, 'under_maintenance'); + const status = (underMaintenance === 'true') ? 'maintenance' : 'ok'; + const updated = this.safeIntegerProduct (result, 'server_time', 0.001); + this.status = this.extend (this.status, { + 'status': status, + 'updated': updated, + }); + return this.status; + } + + async fetchCurrencies (params = {}) { + const response = await this.publicGetAssets (params); + // + // { + // "result":[ + // { + // "base_withdrawal_fee":"0.0005", + // "deposit_status":"enabled", + // "id":2, + // "interest_credit":true, + // "interest_slabs":[ + // {"limit":"0.1","rate":"0"}, + // {"limit":"1","rate":"0.05"}, + // {"limit":"5","rate":"0.075"}, + // {"limit":"10","rate":"0.1"}, + // {"limit":"9999999999999999","rate":"0"} + // ], + // "kyc_deposit_limit":"10", + // "kyc_withdrawal_limit":"2", + // "min_withdrawal_amount":"0.001", + // "minimum_precision":4, + // "name":"Bitcoin", + // "precision":8, + // "sort_priority":1, + // "symbol":"BTC", + // "variable_withdrawal_fee":"0", + // "withdrawal_status":"enabled" + // }, + // ], + // "success":true + // } + // + const currencies = this.safeValue (response, 'result', []); + const result = {}; + for (let i = 0; i < currencies.length; i++) { + const currency = currencies[i]; + const id = this.safeString (currency, 'symbol'); + const numericId = this.safeInteger (currency, 'id'); + const code = this.safeCurrencyCode (id); + const depositStatus = this.safeString (currency, 'deposit_status'); + const withdrawalStatus = this.safeString (currency, 'withdrawal_status'); + const depositsEnabled = (depositStatus === 'enabled'); + const withdrawalsEnabled = (withdrawalStatus === 'enabled'); + const active = depositsEnabled && withdrawalsEnabled; + const precision = this.safeInteger (currency, 'precision'); + result[code] = { + 'id': id, + 'numericId': numericId, + 'code': code, + 'name': this.safeString (currency, 'name'), + 'info': currency, // the original payload + 'active': active, + 'fee': this.safeFloat (currency, 'base_withdrawal_fee'), + 'precision': 1 / Math.pow (10, precision), + 'limits': { + 'amount': { 'min': undefined, 'max': undefined }, + 'price': { 'min': undefined, 'max': undefined }, + 'cost': { 'min': undefined, 'max': undefined }, + 'withdraw': { + 'min': this.safeFloat (currency, 'min_withdrawal_amount'), + 'max': undefined, + }, + }, + }; + } + return result; + } + + async loadMarkets (reload = false, params = {}) { + const markets = await super.loadMarkets (reload, params); + const currenciesByNumericId = this.safeValue (this.options, 'currenciesByNumericId'); + if ((currenciesByNumericId === undefined) || reload) { + this.options['currenciesByNumericId'] = this.indexBy (this.currencies, 'numericId'); + } + const marketsByNumericId = this.safeValue (this.options, 'marketsByNumericId'); + if ((marketsByNumericId === undefined) || reload) { + this.options['marketsByNumericId'] = this.indexBy (this.markets, 'numericId'); + } + return markets; + } + + async fetchMarkets (params = {}) { + const response = await this.publicGetProducts (params); + // + // { + // "meta":{ + // "after":null, + // "before":null, + // "limit":100, + // "total_count":81 + // }, + // "result":[ + // { + // "annualized_funding":"5.475000000000000000", + // "is_quanto":false, + // "ui_config":{ + // "default_trading_view_candle":"15", + // "leverage_slider_values":[1,3,5,10,25,50], + // "price_clubbing_values":[0.001,0.005,0.05,0.1,0.5,1,5], + // "show_bracket_orders":false, + // "sort_priority":29, + // "tags":[] + // }, + // "basis_factor_max_limit":"0.15", + // "symbol":"P-LINK-D-151120", + // "id":1584, + // "default_leverage":"5.000000000000000000", + // "maker_commission_rate":"0.0005", + // "contract_unit_currency":"LINK", + // "strike_price":"12.507948", + // "settling_asset":{ + // // asset structure + // }, + // "auction_start_time":null, + // "auction_finish_time":null, + // "settlement_time":"2020-11-15T12:00:00Z", + // "launch_time":"2020-11-14T11:55:05Z", + // "spot_index":{ + // // index structure + // }, + // "trading_status":"operational", + // "tick_size":"0.001", + // "position_size_limit":100000, + // "notional_type":"vanilla", // vanilla, inverse + // "price_band":"0.4", + // "barrier_price":null, + // "description":"Daily LINK PUT options quoted in USDT and settled in USDT", + // "insurance_fund_margin_contribution":"1", + // "quoting_asset":{ + // // asset structure + // }, + // "liquidation_penalty_factor":"0.2", + // "product_specs":{"max_volatility":3,"min_volatility":0.3,"spot_price_band":"0.40"}, + // "initial_margin_scaling_factor":"0.0001", + // "underlying_asset":{ + // // asset structure + // }, + // "state":"live", + // "contract_value":"1", + // "initial_margin":"2", + // "impact_size":5000, + // "settlement_price":null, + // "contract_type":"put_options", // put_options, call_options, move_options, perpetual_futures, interest_rate_swaps, futures, spreads + // "taker_commission_rate":"0.0005", + // "maintenance_margin":"1", + // "short_description":"LINK Daily PUT Options", + // "maintenance_margin_scaling_factor":"0.00005", + // "funding_method":"mark_price", + // "max_leverage_notional":"20000" + // }, + // ], + // "success":true + // } + // + const markets = this.safeValue (response, 'result', []); + const result = []; + for (let i = 0; i < markets.length; i++) { + const market = markets[i]; + let type = this.safeString (market, 'contract_type'); + // const settlingAsset = this.safeValue (market, 'settling_asset', {}); + const quotingAsset = this.safeValue (market, 'quoting_asset', {}); + const underlyingAsset = this.safeValue (market, 'underlying_asset', {}); + const baseId = this.safeString (underlyingAsset, 'symbol'); + const quoteId = this.safeString (quotingAsset, 'symbol'); + const id = this.safeString (market, 'symbol'); + const numericId = this.safeInteger (market, 'id'); + const base = this.safeCurrencyCode (baseId); + const quote = this.safeCurrencyCode (quoteId); + let symbol = id; + let swap = false; + let future = false; + let option = false; + if (type === 'perpetual_futures') { + type = 'swap'; + swap = true; + future = false; + option = false; + if (id.indexOf ('_') < 0) { + symbol = base + '/' + quote; + } + } else if ((type === 'call_options') || (type === 'put_options') || (type === 'move_options')) { + type = 'option'; + swap = false; + option = true; + future = false; + } else if (type === 'futures') { + type = 'future'; + swap = false; + option = false; + future = true; + } + const precision = { + 'amount': 1.0, // number of contracts + 'price': this.safeFloat (market, 'tick_size'), + }; + const limits = { + 'amount': { + 'min': 1.0, + 'max': this.safeFloat (market, 'position_size_limit'), + }, + 'price': { + 'min': precision['price'], + 'max': undefined, + }, + 'cost': { + 'min': this.safeFloat (market, 'min_size'), + 'max': undefined, + }, + }; + const state = this.safeString (market, 'state'); + const active = (state === 'live'); + const maker = this.safeFloat (market, 'maker_commission_rate'); + const taker = this.safeFloat (market, 'taker_commission_rate'); + result.push ({ + 'id': id, + 'numericId': numericId, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'baseId': baseId, + 'quoteId': quoteId, + 'type': type, + 'option': option, + 'swap': swap, + 'future': future, + 'maker': maker, + 'taker': taker, + 'precision': precision, + 'limits': limits, + 'info': market, + 'active': active, + }); + } + return result; + } + + parseTicker (ticker, market = undefined) { + // + // fetchTicker, fetchTickers + // + // { + // "close":15837.5, + // "high":16354, + // "low":15751.5, + // "mark_price":"15820.100867", + // "open":16140.5, + // "product_id":139, + // "size":640552, + // "spot_price":"15827.050000000001", + // "symbol":"BTCUSDT", + // "timestamp":1605373550208262, + // "turnover":10298630.3735, + // "turnover_symbol":"USDT", + // "turnover_usd":10298630.3735, + // "volume":640.5520000000001 + // } + // + const timestamp = this.safeIntegerProduct (ticker, 'timestamp', 0.001); + const marketId = this.safeString (ticker, 'symbol'); + const symbol = this.safeSymbol (marketId, market); + const last = this.safeFloat (ticker, 'close'); + const open = this.safeFloat (ticker, 'open'); + let change = undefined; + let average = undefined; + let percentage = undefined; + if ((open !== undefined) && (last !== undefined)) { + change = last - open; + average = this.sum (last, open) / 2; + if (open !== 0.0) { + percentage = (change / open) * 100; + } + } + const baseVolume = this.safeFloat (ticker, 'volume'); + const quoteVolume = this.safeFloat (ticker, 'turnover'); + const vwap = this.vwap (baseVolume, quoteVolume); + return { + 'symbol': symbol, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'high': this.safeFloat (ticker, 'high'), + 'low': this.safeFloat (ticker, 'low'), + 'bid': undefined, + 'bidVolume': undefined, + 'ask': undefined, + 'askVolume': undefined, + 'vwap': vwap, + 'open': open, + 'close': last, + 'last': last, + 'previousClose': undefined, + 'change': change, + 'percentage': percentage, + 'average': average, + 'baseVolume': baseVolume, + 'quoteVolume': quoteVolume, + 'info': ticker, + }; + } + + async fetchTicker (symbol, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'symbol': market['id'], + }; + const response = await this.publicGetTickersSymbol (this.extend (request, params)); + // + // { + // "result":{ + // "close":15837.5, + // "high":16354, + // "low":15751.5, + // "mark_price":"15820.100867", + // "open":16140.5, + // "product_id":139, + // "size":640552, + // "spot_price":"15827.050000000001", + // "symbol":"BTCUSDT", + // "timestamp":1605373550208262, + // "turnover":10298630.3735, + // "turnover_symbol":"USDT", + // "turnover_usd":10298630.3735, + // "volume":640.5520000000001 + // }, + // "success":true + // } + // + const result = this.safeValue (response, 'result', {}); + return this.parseTicker (result, market); + } + + async fetchTickers (symbols = undefined, params = {}) { + await this.loadMarkets (); + const response = await this.publicGetTickers (params); + // + // { + // "result":[ + // { + // "close":0.003966, + // "high":0.004032, + // "low":0.003606, + // "mark_price":"0.00396328", + // "open":0.003996, + // "product_id":1327, + // "size":6242, + // "spot_price":"0.0039555", + // "symbol":"AAVEBTC", + // "timestamp":1605374143864107, + // "turnover":23.997904999999996, + // "turnover_symbol":"BTC", + // "turnover_usd":387957.4544782897, + // "volume":6242 + // }, + // ], + // "success":true + // } + // + const tickers = this.safeValue (response, 'result', []); + const result = {}; + for (let i = 0; i < tickers.length; i++) { + const ticker = this.parseTicker (tickers[i]); + const symbol = ticker['symbol']; + result[symbol] = ticker; + } + return this.filterByArray (result, 'symbol', symbols); + } + + async fetchOrderBook (symbol, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + 'symbol': this.marketId (symbol), + }; + if (limit !== undefined) { + request['depth'] = limit; + } + const response = await this.publicGetL2orderbookSymbol (this.extend (request, params)); + // + // { + // "result":{ + // "buy":[ + // {"price":"15814.0","size":912}, + // {"price":"15813.5","size":1279}, + // {"price":"15813.0","size":1634}, + // ], + // "sell":[ + // {"price":"15814.5","size":625}, + // {"price":"15815.0","size":982}, + // {"price":"15815.5","size":1328}, + // ], + // "symbol":"BTCUSDT" + // }, + // "success":true + // } + // + const result = this.safeValue (response, 'result', {}); + return this.parseOrderBook (result, undefined, 'buy', 'sell', 'price', 'size'); + } + + parseTrade (trade, market = undefined) { + // + // public fetchTrades + // + // { + // "buyer_role":"maker", + // "price":"15896.5", + // "seller_role":"taker", + // "size":241, + // "symbol":"BTCUSDT", + // "timestamp":1605376684714595 + // } + // + // private fetchMyTrades + // + // { + // "commission":"0.008335000000000000", + // "created_at":"2020-11-16T19:07:19Z", + // "fill_type":"normal", + // "id":"e7ff05c233a74245b72381f8dd91d1ce", + // "meta_data":{ + // "effective_commission_rate":"0.0005", + // "order_price":"16249", + // "order_size":1, + // "order_type":"market_order", + // "order_unfilled_size":0, + // "trading_fee_credits_used":"0" + // }, + // "order_id":"152999629", + // "price":"16669", + // "product":{ + // "contract_type":"perpetual_futures", + // "contract_unit_currency":"BTC", + // "contract_value":"0.001", + // "id":139, + // "notional_type":"vanilla", + // "quoting_asset":{"minimum_precision":2,"precision":6,"symbol":"USDT"}, + // "settling_asset":{"minimum_precision":2,"precision":6,"symbol":"USDT"}, + // "symbol":"BTCUSDT", + // "tick_size":"0.5", + // "underlying_asset":{"minimum_precision":4,"precision":8,"symbol":"BTC"} + // }, + // "product_id":139, + // "role":"taker", + // "side":"sell", + // "size":1 + // } + // + const id = this.safeString (trade, 'id'); + const orderId = this.safeString (trade, 'order_id'); + let timestamp = this.parse8601 (this.safeString (trade, 'created_at')); + timestamp = this.safeIntegerProduct (trade, 'timestamp', 0.001, timestamp); + const price = this.safeFloat (trade, 'price'); + const amount = this.safeFloat (trade, 'size'); + let cost = undefined; + if ((amount !== undefined) && (price !== undefined)) { + cost = amount * price; + } + const product = this.safeValue (trade, 'product', {}); + const marketId = this.safeString (product, 'symbol'); + const symbol = this.safeSymbol (marketId, market); + const sellerRole = this.safeString (trade, 'seller_role'); + let side = this.safeString (trade, 'side'); + if (side === undefined) { + if (sellerRole === 'taker') { + side = 'sell'; + } else if (sellerRole === 'maker') { + side = 'buy'; + } + } + const takerOrMaker = this.safeString (trade, 'role'); + const metaData = this.safeValue (trade, 'meta_data', {}); + let type = this.safeString (metaData, 'order_type'); + if (type !== undefined) { + type = type.replace ('_order', ''); + } + const feeCost = this.safeFloat (trade, 'commission'); + let fee = undefined; + if (feeCost !== undefined) { + const settlingAsset = this.safeValue (product, 'settling_asset', {}); + const feeCurrencyId = this.safeString (settlingAsset, 'symbol'); + const feeCurrencyCode = this.safeCurrencyCode (feeCurrencyId); + fee = { + 'cost': feeCost, + 'currency': feeCurrencyCode, + }; + } + return { + 'id': id, + 'order': orderId, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'symbol': symbol, + 'type': type, + 'side': side, + 'price': price, + 'amount': amount, + 'cost': cost, + 'takerOrMaker': takerOrMaker, + 'fee': fee, + 'info': trade, + }; + } + + async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'symbol': market['id'], + }; + const response = await this.publicGetTradesSymbol (this.extend (request, params)); + // + // { + // "result":[ + // { + // "buyer_role":"maker", + // "price":"15896.5", + // "seller_role":"taker", + // "size":241, + // "symbol":"BTCUSDT", + // "timestamp":1605376684714595 + // } + // ], + // "success":true + // } + // + const result = this.safeValue (response, 'result', []); + return this.parseTrades (result, market, since, limit); + } + + parseOHLCV (ohlcv, market = undefined) { + // + // { + // "time":1605393120, + // "open":15989, + // "high":15989, + // "low":15987.5, + // "close":15987.5, + // "volume":565 + // } + // + return [ + this.safeTimestamp (ohlcv, 'time'), + this.safeFloat (ohlcv, 'open'), + this.safeFloat (ohlcv, 'high'), + this.safeFloat (ohlcv, 'low'), + this.safeFloat (ohlcv, 'close'), + this.safeFloat (ohlcv, 'volume'), + ]; + } + + async fetchOHLCV (symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'symbol': market['id'], + 'resolution': this.timeframes[timeframe], + }; + const duration = this.parseTimeframe (timeframe); + limit = limit ? limit : 2000; // max 2000 + if (since === undefined) { + const end = this.seconds (); + request['end'] = end; + request['start'] = end - limit * duration; + } else { + const start = parseInt (since / 1000); + request['start'] = start; + request['end'] = this.sum (start, limit * duration); + } + const response = await this.publicGetHistoryCandles (this.extend (request, params)); + // + // { + // "success":true, + // "result":[ + // {"time":1605393120,"open":15989,"high":15989,"low":15987.5,"close":15987.5,"volume":565}, + // {"time":1605393180,"open":15966,"high":15966,"low":15959,"close":15959,"volume":24}, + // {"time":1605393300,"open":15973,"high":15973,"low":15973,"close":15973,"volume":1288}, + // ] + // } + // + const result = this.safeValue (response, 'result', []); + return this.parseOHLCVs (result, market, timeframe, since, limit); + } + + async fetchBalance (params = {}) { + await this.loadMarkets (); + const response = await this.privateGetWalletBalances (params); + // + // { + // "result":[ + // { + // "asset_id":1, + // "available_balance":"0", + // "balance":"0", + // "commission":"0", + // "id":154883, + // "interest_credit":"0", + // "order_margin":"0", + // "pending_referral_bonus":"0", + // "pending_trading_fee_credit":"0", + // "position_margin":"0", + // "trading_fee_credit":"0", + // "user_id":22142 + // }, + // ], + // "success":true + // } + // + const balances = this.safeValue (response, 'result', []); + const result = { 'info': response }; + const currenciesByNumericId = this.safeValue (this.options, 'currenciesByNumericId', {}); + for (let i = 0; i < balances.length; i++) { + const balance = balances[i]; + const currencyId = this.safeString (balance, 'asset_id'); + const currency = this.safeValue (currenciesByNumericId, currencyId); + const code = (currency === undefined) ? currencyId : currency['code']; + const account = this.account (); + account['total'] = this.safeFloat (balance, 'balance'); + account['free'] = this.safeFloat (balance, 'available_balance'); + result[code] = account; + } + return this.parseBalance (result); + } + + async fetchPosition (symbol, params = undefined) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'product_id': market['numericId'], + }; + const response = await this.privateGetPositions (this.extend (request, params)); + // + // { + // "result":{ + // "entry_price":null, + // "size":0, + // "timestamp":1605454074268079 + // }, + // "success":true + // } + // + const result = this.safeValue (response, 'result', {}); + return result; + } + + async fetchPositions (symbols = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const response = await this.privateGetPositionsMargined (params); + // + // { + // "success": true, + // "result": [ + // { + // "user_id": 0, + // "size": 0, + // "entry_price": "string", + // "margin": "string", + // "liquidation_price": "string", + // "bankruptcy_price": "string", + // "adl_level": 0, + // "product_id": 0 + // } + // ] + // } + // + const result = this.safeValue (response, 'result', []); + return result; + } + + parseOrderStatus (status) { + const statuses = { + 'open': 'open', + 'pending': 'open', + 'closed': 'closed', + 'cancelled': 'canceled', + }; + return this.safeString (statuses, status, status); + } + + parseOrder (order, market = undefined) { + // + // createOrder, cancelOrder, editOrder, fetchOpenOrders, fetchClosedOrders + // + // { + // "average_fill_price":null, + // "bracket_order":null, + // "bracket_stop_loss_limit_price":null, + // "bracket_stop_loss_price":null, + // "bracket_take_profit_limit_price":null, + // "bracket_take_profit_price":null, + // "bracket_trail_amount":null, + // "cancellation_reason":null, + // "client_order_id":null, + // "close_on_trigger":"false", + // "commission":"0", + // "created_at":"2020-11-16T02:38:26Z", + // "id":152870626, + // "limit_price":"10000", + // "meta_data":{"source":"api"}, + // "order_type":"limit_order", + // "paid_commission":"0", + // "product_id":139, + // "reduce_only":false, + // "side":"buy", + // "size":0, + // "state":"open", + // "stop_order_type":null, + // "stop_price":null, + // "stop_trigger_method":"mark_price", + // "time_in_force":"gtc", + // "trail_amount":null, + // "unfilled_size":0, + // "user_id":22142 + // } + // + const id = this.safeString (order, 'id'); + const clientOrderId = this.safeString (order, 'client_order_id'); + const timestamp = this.parse8601 (this.safeString (order, 'created_at')); + const marketId = this.safeString (order, 'product_id'); + const marketsByNumericId = this.safeValue (this.options, 'marketsByNumericId', {}); + market = this.safeValue (marketsByNumericId, marketId, market); + const symbol = (market === undefined) ? marketId : market['symbol']; + const status = this.parseOrderStatus (this.safeString (order, 'state')); + const side = this.safeString (order, 'side'); + let type = this.safeString (order, 'order_type'); + type = type.replace ('_order', ''); + const price = this.safeFloat (order, 'limit_price'); + const amount = this.safeFloat (order, 'size'); + const remaining = this.safeFloat (order, 'unfilled_size'); + let filled = undefined; + if ((amount !== undefined) && (remaining !== undefined)) { + filled = Math.max (0, amount - remaining); + } + let cost = undefined; + const average = this.safeFloat (order, 'average_fill_price'); + if ((average !== undefined) && filled) { + cost = average * filled; + } + let fee = undefined; + const feeCost = this.safeFloat (order, 'paid_commission'); + if (feeCost !== undefined) { + let feeCurrencyCode = undefined; + if (market !== undefined) { + const settlingAsset = this.safeValue (market['info'], 'settling_asset', {}); + const feeCurrencyId = this.safeString (settlingAsset, 'symbol'); + feeCurrencyCode = this.safeCurrencyCode (feeCurrencyId); + } + fee = { + 'cost': feeCost, + 'currency': feeCurrencyCode, + }; + } + return { + 'info': order, + 'id': id, + 'clientOrderId': clientOrderId, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'lastTradeTimestamp': undefined, + 'symbol': symbol, + 'type': type, + 'side': side, + 'price': price, + 'amount': amount, + 'cost': cost, + 'average': average, + 'filled': filled, + 'remaining': remaining, + 'status': status, + 'fee': fee, + 'trades': undefined, + }; + } + + async createOrder (symbol, type, side, amount, price = undefined, params = {}) { + await this.loadMarkets (); + const orderType = type + '_order'; + const market = this.market (symbol); + const request = { + 'product_id': market['numericId'], + // 'limit_price': this.priceToPrecision (symbol, price), + 'size': this.amountToPrecision (symbol, amount), + 'side': side, + 'order_type': orderType, + // 'client_order_id': 'string', + // 'time_in_force': 'gtc', // gtc, ioc, fok + // 'post_only': 'false', // 'true', + // 'reduce_only': 'false', // 'true', + }; + if (type === 'limit') { + request['limit_price'] = this.priceToPrecision (symbol, price); + } + const clientOrderId = this.safeString2 (params, 'clientOrderId', 'client_order_id'); + params = this.omit (params, [ 'clientOrderId', 'client_order_id' ]); + if (clientOrderId !== undefined) { + request['client_order_id'] = clientOrderId; + } + const response = await this.privatePostOrders (this.extend (request, params)); + // + // { + // "result":{ + // "average_fill_price":null, + // "bracket_order":null, + // "bracket_stop_loss_limit_price":null, + // "bracket_stop_loss_price":null, + // "bracket_take_profit_limit_price":null, + // "bracket_take_profit_price":null, + // "bracket_trail_amount":null, + // "cancellation_reason":null, + // "client_order_id":null, + // "close_on_trigger":"false", + // "commission":"0", + // "created_at":"2020-11-16T02:38:26Z", + // "id":152870626, + // "limit_price":"10000", + // "meta_data":{"source":"api"}, + // "order_type":"limit_order", + // "paid_commission":"0", + // "product_id":139, + // "reduce_only":false, + // "side":"buy", + // "size":0, + // "state":"open", + // "stop_order_type":null, + // "stop_price":null, + // "stop_trigger_method":"mark_price", + // "time_in_force":"gtc", + // "trail_amount":null, + // "unfilled_size":0, + // "user_id":22142 + // }, + // "success":true + // } + // + const result = this.safeValue (response, 'result', {}); + return this.parseOrder (result, market); + } + + async editOrder (id, symbol, type, side, amount, price = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'id': parseInt (id), + 'product_id': market['numericId'], + // 'limit_price': this.priceToPrecision (symbol, price), + // 'size': this.amountToPrecision (symbol, amount), + }; + if (amount !== undefined) { + request['size'] = parseInt (this.amountToPrecision (symbol, amount)); + } + if (price !== undefined) { + request['limit_price'] = this.priceToPrecision (symbol, price); + } + const response = await this.privatePutOrders (this.extend (request, params)); + // + // { + // "success": true, + // "result": { + // "id": "ashb1212", + // "product_id": 27, + // "limit_price": "9200", + // "side": "buy", + // "size": 100, + // "unfilled_size": 50, + // "user_id": 1, + // "order_type": "limit_order", + // "state": "open", + // "created_at": "..." + // } + // } + // + const result = this.safeValue (response, 'result'); + return this.parseOrder (result, market); + } + + async cancelOrder (id, symbol = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'id': parseInt (id), + 'product_id': market['numericId'], + }; + const response = await this.privateDeleteOrders (this.extend (request, params)); + // + // { + // "result":{ + // "average_fill_price":null, + // "bracket_order":null, + // "bracket_stop_loss_limit_price":null, + // "bracket_stop_loss_price":null, + // "bracket_take_profit_limit_price":null, + // "bracket_take_profit_price":null, + // "bracket_trail_amount":null, + // "cancellation_reason":"cancelled_by_user", + // "client_order_id":null, + // "close_on_trigger":"false", + // "commission":"0", + // "created_at":"2020-11-16T02:38:26Z", + // "id":152870626, + // "limit_price":"10000", + // "meta_data":{"source":"api"}, + // "order_type":"limit_order", + // "paid_commission":"0", + // "product_id":139, + // "reduce_only":false, + // "side":"buy", + // "size":0, + // "state":"cancelled", + // "stop_order_type":null, + // "stop_price":null, + // "stop_trigger_method":"mark_price", + // "time_in_force":"gtc", + // "trail_amount":null, + // "unfilled_size":0, + // "user_id":22142 + // }, + // "success":true + // } + // + const result = this.safeValue (response, 'result'); + return this.parseOrder (result, market); + } + + async cancelAllOrders (symbol = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + ' cancelAllOrders() requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'product_id': market['numericId'], + // 'cancel_limit_orders': 'true', + // 'cancel_stop_orders': 'true', + }; + const response = this.privateDeleteOrdersAll (this.extend (request, params)); + // + // { + // "result":{}, + // "success":true + // } + // + return response; + } + + async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + return await this.fetchOrdersWithMethod ('privateGetOrders', symbol, since, limit, params); + } + + async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + return await this.fetchOrdersWithMethod ('privateGetOrdersHistory', symbol, since, limit, params); + } + + async fetchOrdersWithMethod (method, symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'product_ids': market['id'], // comma-separated + // 'contract_types': types, // comma-separated, futures, perpetual_futures, call_options, put_options, interest_rate_swaps, move_options, spreads + // 'order_types': types, // comma-separated, market, limit, stop_market, stop_limit, all_stop + // 'start_time': since * 1000, + // 'end_time': this.microseconds (), + // 'after': string, // after cursor for pagination + // 'before': string, // before cursor for pagination + // 'page_size': limit, // number of records per page + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['product_ids'] = market['numericId']; // accepts a comma-separated list of ids + } + if (since !== undefined) { + request['start_time'] = since.toString () + '000'; + } + if (limit !== undefined) { + request['page_size'] = limit; + } + const response = await this[method] (this.extend (request, params)); + // + // { + // "success": true, + // "result": [ + // { + // "id": "ashb1212", + // "product_id": 27, + // "limit_price": "9200", + // "side": "buy", + // "size": 100, + // "unfilled_size": 50, + // "user_id": 1, + // "order_type": "limit_order", + // "state": "open", + // "created_at": "..." + // } + // ], + // "meta": { + // "after": "string", + // "before": "string" + // } + // } + // + const result = this.safeValue (response, 'result', []); + return this.parseOrders (result, market, since, limit); + } + + async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'product_ids': market['id'], // comma-separated + // 'contract_types': types, // comma-separated, futures, perpetual_futures, call_options, put_options, interest_rate_swaps, move_options, spreads + // 'start_time': since * 1000, + // 'end_time': this.microseconds (), + // 'after': string, // after cursor for pagination + // 'before': string, // before cursor for pagination + // 'page_size': limit, // number of records per page + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['product_ids'] = market['numericId']; // accepts a comma-separated list of ids + } + if (since !== undefined) { + request['start_time'] = since.toString () + '000'; + } + if (limit !== undefined) { + request['page_size'] = limit; + } + const response = await this.privateGetFills (this.extend (request, params)); + // + // { + // "meta":{ + // "after":null, + // "before":null, + // "limit":10, + // "total_count":2 + // }, + // "result":[ + // { + // "commission":"0.008335000000000000", + // "created_at":"2020-11-16T19:07:19Z", + // "fill_type":"normal", + // "id":"e7ff05c233a74245b72381f8dd91d1ce", + // "meta_data":{ + // "effective_commission_rate":"0.0005", + // "order_price":"16249", + // "order_size":1, + // "order_type":"market_order", + // "order_unfilled_size":0, + // "trading_fee_credits_used":"0" + // }, + // "order_id":"152999629", + // "price":"16669", + // "product":{ + // "contract_type":"perpetual_futures", + // "contract_unit_currency":"BTC", + // "contract_value":"0.001", + // "id":139, + // "notional_type":"vanilla", + // "quoting_asset":{"minimum_precision":2,"precision":6,"symbol":"USDT"}, + // "settling_asset":{"minimum_precision":2,"precision":6,"symbol":"USDT"}, + // "symbol":"BTCUSDT", + // "tick_size":"0.5", + // "underlying_asset":{"minimum_precision":4,"precision":8,"symbol":"BTC"} + // }, + // "product_id":139, + // "role":"taker", + // "side":"sell", + // "size":1 + // } + // ], + // "success":true + // } + // + const result = this.safeValue (response, 'result', []); + return this.parseTrades (result, market, since, limit); + } + + async fetchLedger (code = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'asset_id': currency['numericId'], + // 'end_time': this.seconds (), + // 'after': 'string', // after cursor for pagination + // 'before': 'string', // before cursor for pagination + // 'page_size': limit, + }; + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + request['asset_id'] = currency['numericId']; + } + if (limit !== undefined) { + request['page_size'] = limit; + } + const response = await this.privateGetWalletTransactions (this.extend (request, params)); + // + // { + // "meta":{"after":null,"before":null,"limit":10,"total_count":1}, + // "result":[ + // { + // "amount":"29.889184", + // "asset_id":5, + // "balance":"29.889184", + // "created_at":"2020-11-15T21:25:01Z", + // "meta_data":{ + // "deposit_id":3884, + // "transaction_id":"0x41a60174849828530abb5008e98fc63c9b598288743ec4ba9620bcce900a3b8d" + // }, + // "transaction_type":"deposit", + // "user_id":22142, + // "uuid":"70bb5679da3c4637884e2dc63efaa846" + // } + // ], + // "success":true + // } + // + const result = this.safeValue (response, 'result', []); + return this.parseLedger (result, currency, since, limit); + } + + parseLedgerEntryType (type) { + const types = { + 'pnl': 'pnl', + 'deposit': 'transaction', + 'withdrawal': 'transaction', + 'commission': 'fee', + 'conversion': 'trade', + // 'perpetual_futures_funding': 'perpetual_futures_funding', + // 'withdrawal_cancellation': 'withdrawal_cancellation', + 'referral_bonus': 'referral', + 'commission_rebate': 'rebate', + // 'promo_credit': 'promo_credit', + }; + return this.safeString (types, type, type); + } + + parseLedgerEntry (item, currency = undefined) { + // + // { + // "amount":"29.889184", + // "asset_id":5, + // "balance":"29.889184", + // "created_at":"2020-11-15T21:25:01Z", + // "meta_data":{ + // "deposit_id":3884, + // "transaction_id":"0x41a60174849828530abb5008e98fc63c9b598288743ec4ba9620bcce900a3b8d" + // }, + // "transaction_type":"deposit", + // "user_id":22142, + // "uuid":"70bb5679da3c4637884e2dc63efaa846" + // } + // + const id = this.safeString (item, 'uuid'); + let direction = undefined; + const account = undefined; + const metaData = this.safeValue (item, 'meta_data', {}); + const referenceId = this.safeString (metaData, 'transaction_id'); + const referenceAccount = undefined; + let type = this.safeString (item, 'transaction_type'); + if ((type === 'deposit') || (type === 'commission_rebate') || (type === 'referral_bonus') || (type === 'pnl') || (type === 'withdrawal_cancellation') || (type === 'promo_credit')) { + direction = 'in'; + } else if ((type === 'withdrawal') || (type === 'commission') || (type === 'conversion') || (type === 'perpetual_futures_funding')) { + direction = 'out'; + } + type = this.parseLedgerEntryType (type); + const currencyId = this.safeInteger (item, 'asset_id'); + const currenciesByNumericId = this.safeValue (this.options, 'currenciesByNumericId'); + currency = this.safeValue (currenciesByNumericId, currencyId, currency); + const code = (currency === undefined) ? undefined : currency['code']; + const amount = this.safeFloat (item, 'amount'); + const timestamp = this.parse8601 (this.safeString (item, 'created_at')); + const after = this.safeFloat (item, 'balance'); + const before = Math.max (0, after - amount); + const status = 'ok'; + return { + 'info': item, + 'id': id, + 'direction': direction, + 'account': account, + 'referenceId': referenceId, + 'referenceAccount': referenceAccount, + 'type': type, + 'currency': code, + 'amount': amount, + 'before': before, + 'after': after, + 'status': status, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'fee': undefined, + }; + } + + async fetchDepositAddress (code, params = {}) { + await this.loadMarkets (); + const currency = this.currency (code); + const request = { + 'asset_symbol': currency['id'], + }; + const response = await this.privateGetDepositsAddress (this.extend (request, params)); + // + // { + // "success":true, + // "result":{ + // "id":19628, + // "user_id":22142, + // "address":"0x0eda26523397534f814d553a065d8e46b4188e9a", + // "status":"active", + // "updated_at":"2020-11-15T20:25:53.000Z", + // "created_at":"2020-11-15T20:25:53.000Z", + // "asset_symbol":"USDT", + // "custodian":"onc" + // } + // } + // + const result = this.safeValue (response, 'result', {}); + const address = this.safeString (result, 'address'); + this.checkAddress (address); + return { + 'currency': code, + 'address': address, + 'tag': undefined, + 'info': response, + }; + } + + sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { + const requestPath = '/' + this.version + '/' + this.implodeParams (path, params); + let url = this.urls['api'][api] + requestPath; + const query = this.omit (params, this.extractParams (path)); + if (api === 'public') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } else if (api === 'private') { + this.checkRequiredCredentials (); + const timestamp = this.seconds ().toString (); + headers = { + 'api-key': this.apiKey, + 'timestamp': timestamp, + }; + let auth = method + timestamp + requestPath; + if ((method === 'GET') || (method === 'DELETE')) { + if (Object.keys (query).length) { + const queryString = '?' + this.urlencode (query); + auth += queryString; + url += queryString; + } + } else { + body = this.json (query); + auth += body; + headers['Content-Type'] = 'application/json'; + } + const signature = this.hmac (this.encode (auth), this.encode (this.secret)); + headers['signature'] = signature; + } + return { 'url': url, 'method': method, 'body': body, 'headers': headers }; + } + + handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { + if (response === undefined) { + return; + } + // + // {"error":{"code":"insufficient_margin","context":{"available_balance":"0.000000000000000000","required_additional_balance":"1.618626000000000000000000000"}},"success":false} + // + const error = this.safeValue (response, 'error', {}); + const errorCode = this.safeString (error, 'code'); + if (errorCode !== undefined) { + const feedback = this.id + ' ' + body; + this.throwExactlyMatchedException (this.exceptions['exact'], errorCode, feedback); + this.throwBroadlyMatchedException (this.exceptions['broad'], errorCode, feedback); + throw new ExchangeError (feedback); // unknown message + } + } +}; diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/deribit.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/deribit.js index 9f88f869b..f277c3975 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/deribit.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/deribit.js @@ -778,7 +778,7 @@ module.exports = class deribit extends Exchange { const now = this.milliseconds (); if (since === undefined) { if (limit === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a since argument or a limit argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a since argument or a limit argument'); } else { request['start_timestamp'] = now - (limit - 1) * duration * 1000; request['end_timestamp'] = now; @@ -1011,7 +1011,7 @@ module.exports = class deribit extends Exchange { 'cancelled': 'canceled', 'filled': 'closed', 'rejected': 'rejected', - // 'untriggered': 'open', + 'untriggered': 'open', }; return this.safeString (statuses, status, status); } @@ -1096,7 +1096,8 @@ module.exports = class deribit extends Exchange { trades = this.parseTrades (trades, market); } const timeInForce = this.parseTimeInForce (this.safeString (order, 'time_in_force')); - const stopPrice = undefined; + const stopPrice = this.safeValue (order, 'stop_price'); + const postOnly = this.safeValue (order, 'post_only'); return { 'info': order, 'id': id, @@ -1107,6 +1108,7 @@ module.exports = class deribit extends Exchange { 'symbol': market['symbol'], 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -1191,13 +1193,13 @@ module.exports = class deribit extends Exchange { if (price !== undefined) { request['price'] = this.priceToPrecision (symbol, price); } else { - throw new ArgumentsRequired (this.id + ' createOrder requires a price argument for a ' + type + ' order'); + throw new ArgumentsRequired (this.id + ' createOrder() requires a price argument for a ' + type + ' order'); } } if (stopPriceIsRequired) { const stopPrice = this.safeFloat2 (params, 'stop_price', 'stopPrice'); if (stopPrice === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires a stop_price or stopPrice param for a ' + type + ' order'); + throw new ArgumentsRequired (this.id + ' createOrder() requires a stop_price or stopPrice param for a ' + type + ' order'); } else { request['stop_price'] = this.priceToPrecision (symbol, stopPrice); } @@ -1266,10 +1268,10 @@ module.exports = class deribit extends Exchange { async editOrder (id, symbol, type, side, amount = undefined, price = undefined, params = {}) { if (amount === undefined) { - throw new ArgumentsRequired (this.id + ' editOrder requires an amount argument'); + throw new ArgumentsRequired (this.id + ' editOrder() requires an amount argument'); } if (price === undefined) { - throw new ArgumentsRequired (this.id + ' editOrder requires a price argument'); + throw new ArgumentsRequired (this.id + ' editOrder() requires a price argument'); } await this.loadMarkets (); const request = { @@ -1631,7 +1633,7 @@ module.exports = class deribit extends Exchange { const request = { 'instrument_name': market['id'], }; - const response = await this.privateGetPosition (this.extend (request, params)); + const response = await this.privateGetGetPosition (this.extend (request, params)); // // { // "jsonrpc": "2.0", @@ -1670,7 +1672,7 @@ module.exports = class deribit extends Exchange { const request = { 'currency': currency['id'], }; - const response = await this.privateGetPositions (this.extend (request, params)); + const response = await this.privateGetGetPositions (this.extend (request, params)); // // { // "jsonrpc": "2.0", diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/digifinex.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/digifinex.js index 25a9fcabb..6584b919c 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/digifinex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/digifinex.js @@ -502,7 +502,7 @@ module.exports = class digifinex extends Exchange { async fetchTickers (symbols = undefined, params = {}) { const apiKey = this.safeValue (params, 'apiKey', this.apiKey); if (!apiKey) { - throw new ArgumentsRequired (this.id + ' fetchTicker is a private v2 endpoint that requires an `exchange.apiKey` credential or an `apiKey` extra parameter'); + throw new ArgumentsRequired (this.id + ' fetchTickers() is a private v2 endpoint that requires an `exchange.apiKey` credential or an `apiKey` extra parameter'); } await this.loadMarkets (); const request = { @@ -548,7 +548,7 @@ module.exports = class digifinex extends Exchange { async fetchTicker (symbol, params = {}) { const apiKey = this.safeValue (params, 'apiKey', this.apiKey); if (!apiKey) { - throw new ArgumentsRequired (this.id + ' fetchTicker is a private v2 endpoint that requires an `exchange.apiKey` credential or an `apiKey` extra parameter'); + throw new ArgumentsRequired (this.id + ' fetchTicker() is a private v2 endpoint that requires an `exchange.apiKey` credential or an `apiKey` extra parameter'); } await this.loadMarkets (); const market = this.market (symbol); @@ -994,6 +994,7 @@ module.exports = class digifinex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -1284,7 +1285,7 @@ module.exports = class digifinex extends Exchange { const address = this.safeString (depositAddress, 'address'); const tag = this.safeString (depositAddress, 'addressTag'); const currencyId = this.safeStringUpper (depositAddress, 'currency'); - const code = this.safeCurrencCode (currencyId); + const code = this.safeCurrencyCode (currencyId); return { 'info': depositAddress, 'code': code, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/dsx.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/dsx.js index cff6ab255..349fc2489 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/dsx.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/dsx.js @@ -653,7 +653,7 @@ module.exports = class dsx extends Exchange { await this.loadMarkets (); const market = this.market (symbol); if (type === 'market' && price === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder requires a price argument even for market orders, that is the worst price that you agree to fill your order for'); + throw new ArgumentsRequired (this.id + ' createOrder() requires a price argument even for market orders, that is the worst price that you agree to fill your order for'); } const request = { 'pair': market['id'], @@ -840,6 +840,7 @@ module.exports = class dsx extends Exchange { 'lastTradeTimestamp': lastTradeTimestamp, 'type': orderType, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/equos.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/equos.js new file mode 100644 index 000000000..5dc44a2ac --- /dev/null +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/equos.js @@ -0,0 +1,1548 @@ +'use strict'; + +// ---------------------------------------------------------------------------- + +const Exchange = require ('./base/Exchange'); +const { ExchangeError, ArgumentsRequired, BadSymbol } = require ('./base/errors'); + +// ---------------------------------------------------------------------------- + +module.exports = class equos extends Exchange { + describe () { + return this.deepExtend (super.describe (), { + 'id': 'equos', + 'name': 'EQUOS', + 'countries': [ 'US', 'SG' ], // United States, Singapore + 'rateLimit': 10, + 'has': { + 'CORS': false, + 'cancelOrder': true, + 'createOrder': true, + 'editOrder': true, + 'fetchBalance': true, + 'fetchCanceledOrders': true, + 'fetchClosedOrders': true, + 'fetchCurrencies': true, + 'fetchDepositAddress': true, + 'fetchDeposits': true, + 'fetchMarkets': true, + 'fetchMyTrades': true, + 'fetchOHLCV': true, + 'fetchOrder': true, + 'fetchOrderBook': true, + 'fetchOrders': true, + 'fetchTicker': false, + 'fetchTrades': true, + 'fetchTradingFees': true, + 'fetchWithdrawals': true, + 'withdraw': true, + }, + 'timeframes': { + '1m': 1, + '5m': 2, + '15m': 3, + '1h': 4, + '6h': 5, + '1d': 6, + '7d': 7, + }, + 'urls': { + 'logo': 'https://user-images.githubusercontent.com/1294454/107758499-05edd180-6d38-11eb-9e09-0b69602a7a15.jpg', + 'test': { + 'public': 'https://testnet.equos.io/api', + 'private': 'https://testnet.equos.io/api', + }, + 'api': { + 'public': 'https://equos.io/api', + 'private': 'https://equos.io/api', + }, + 'www': 'https://equos.io', + 'doc': [ + 'https://developer.equos.io', + ], + 'referral': 'https://equos.io?referredByCode=zpa8kij4ouvBFup3', + }, + 'api': { + 'public': { + 'get': [ + 'health', + 'getInstruments', + 'getInstrumentPairs', + 'getOrderBook', + 'getRisk', + 'getTradeHistory', + 'getFundingRateHistory', + 'getChart', + 'getExchangeInfo', // not documented + ], + }, + 'private': { + 'post': [ + 'logon', + 'order', + 'cancelOrder', + 'cancelReplaceOrder', + 'getOrder', + 'getOrders', + 'getOrderStatus', + 'getOrderHistory', + 'userTrades', + 'getPositions', + 'cancelAll', + 'getUserHistory', + 'getRisk', + 'getDepositAddresses', + 'getDepositHistory', // not documented + 'getWithdrawRequests', + 'sendWithdrawRequest', + 'getTransferHistory', + ], + }, + }, + 'requiredCredentials': { + 'apiKey': true, + 'secret': true, + 'uid': true, + }, + 'exceptions': { + 'broad': { + 'symbol not found': BadSymbol, + }, + }, + }); + } + + async fetchMarkets (params = {}) { + const request = { + 'verbose': true, + }; + const response = await this.publicGetGetInstrumentPairs (this.extend (request, params)); + // + // { + // "instrumentPairs":[ + // { + // "instrumentId":52, + // "symbol":"BTC/USDC", + // "quoteId":1, + // "baseId":3, + // "price_scale":2, + // "quantity_scale":6, + // "securityStatus":1, + // "securityDesc":"BTC/USDC", // "BTC/USDC[F]" + // "assetType":"PAIR", // "PERPETUAL_SWAP" + // "currency":"BTC", + // "contAmtCurr":"USDC", + // "settlCurrency":"USDC", + // "commCurrency":"USDC", + // "cfiCode":"XXXXXX", + // "securityExchange":"XXXX", + // "instrumentPricePrecision":2, + // "minPriceIncrement":1.0, + // "minPriceIncrementAmount":1.0, + // "roundLot":1, + // "minTradeVol":0.001000, + // "maxTradeVol":0.000000 + // // contracts onlye + // "qtyType":0, + // "contractMultiplier":1.0, + // "issueDate":1598608087000 + // }, + // ] + // } + // + const instrumentPairs = this.safeValue (response, 'instrumentPairs', []); + const markets = []; + for (let i = 0; i < instrumentPairs.length; i++) { + const market = this.parseMarket (instrumentPairs[i]); + markets.push (market); + } + return markets; + } + + parseMarket (market) { + // + // { + // "instrumentId":52, + // "symbol":"BTC/USDC", // "BTC/USDC[F]" + // "quoteId":1, + // "baseId":3, + // "price_scale":2, + // "quantity_scale":6, + // "securityStatus":1, + // "securityDesc":"BTC/USDC", // "BTC/USDC[F]" + // "assetType":"PAIR", // "PERPETUAL_SWAP" + // "currency":"BTC", + // "contAmtCurr":"USDC", + // "settlCurrency":"USDC", + // "commCurrency":"USDC", + // "cfiCode":"XXXXXX", + // "securityExchange":"XXXX", + // "instrumentPricePrecision":2, + // "minPriceIncrement":1.0, + // "minPriceIncrementAmount":1.0, + // "roundLot":1, + // "minTradeVol":0.001000, + // "maxTradeVol":0.000000 + // // contracts onlye + // "qtyType":0, + // "contractMultiplier":1.0, + // "issueDate":1598608087000 + // } + // + const id = this.safeString (market, 'instrumentId'); + const uppercaseId = this.safeString (market, 'symbol'); + const assetType = this.safeString (market, 'assetType'); + const spot = (assetType === 'PAIR'); + const swap = (assetType === 'PERPETUAL_SWAP'); + const type = swap ? 'swap' : 'spot'; + const baseId = this.safeString (market, 'currency'); + const quoteId = this.safeString (market, 'contAmtCurr'); + const base = this.safeCurrencyCode (baseId); + const quote = this.safeCurrencyCode (quoteId); + const symbol = swap ? uppercaseId : (base + '/' + quote); + const status = this.safeInteger (market, 'securityStatus'); + const active = (status === 1); + const precision = { + 'amount': this.safeInteger (market, 'quantity_scale'), + 'price': this.safeInteger (market, 'price_scale'), + }; + return { + 'id': id, + 'uppercaseId': uppercaseId, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'baseId': baseId, + 'quoteId': quoteId, + 'type': type, + 'spot': spot, + 'swap': swap, + 'active': active, + 'precision': precision, + 'limits': { + 'amount': { + 'min': this.safeFloat (market, 'minTradeVol'), + 'max': undefined, + }, + 'price': { + 'min': undefined, + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + }, + 'info': market, + }; + } + + async fetchCurrencies (params = {}) { + const response = await this.publicGetGetInstruments (params); + // + // { + // "instruments": [ + // [ + // 3, // id + // "BTC", // symbol + // 2, // price_scale + // 6, // amount_scale + // 1, // status + // 0, // withdraw_fee + // "BTC", // name + // true, // withdrawal_pct + // ], + // ] + // } + // + const currencies = {}; + const instruments = this.safeValue (response, 'instruments', []); + for (let i = 0; i < instruments.length; i++) { + const currency = this.parseCurrency (instruments[i]); + const code = currency['code']; + currencies[code] = currency; + } + return currencies; + } + + parseCurrency (currency) { + // + // [ + // 3, // 0 id + // "BTC", // 1 symbol + // 2, // 2 price_scale + // 6, // 3 amount_scale + // 1, // 4 status + // 0, // 5 withdraw_fee + // "BTC", // 6 name + // true, // 7 withdrawal_pct + // ], + // + const id = this.safeString (currency, 0); + const uppercaseId = this.safeString (currency, 1); + const code = this.safeCurrencyCode (uppercaseId); + const priceScale = this.safeInteger (currency, 2); + const amountScale = this.safeInteger (currency, 3); + const precision = Math.max (priceScale, amountScale); + const name = this.safeString (currency, 6); + const status = this.safeInteger (currency, 4); + const active = (status === 1); + const fee = this.safeFloat (currency, 5); // withdraw_fee + return { + 'id': id, + 'info': currency, + 'uppercaseId': uppercaseId, + 'code': code, + 'name': name, + 'precision': precision, + 'fee': fee, + 'active': active, + 'limits': { + 'amount': { + 'min': undefined, + 'max': undefined, + }, + 'price': { + 'min': undefined, + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + 'withdraw': { + 'min': undefined, + 'max': undefined, + }, + }, + }; + } + + async fetchOHLCV (symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'pairId': parseInt (market['id']), + 'timespan': this.timeframes[timeframe], + }; + if (limit !== undefined) { + request['limit'] = limit; + } + const response = await this.publicGetGetChart (this.extend (request, params)); + // + // { + // "pairId":57, + // "t":1, + // "s":"ETH/BTC", + // "lastPx":44099, + // "lastQty":100000, + // "o":0.043831000000000016, + // "h":0.04427100000000002, + // "l":0.032000000000000015, + // "c":0.04409900000000002, + // "v":0.21267333000000016, + // "q":4.850000000000001, + // "chart":[ + // [1612519260000,44099,44099,44099,44099,0,441], + // [1612519200000,44099,44099,44099,44099,0,440], + // [1612519140000,44269,44271,44269,44271,0,439], + // ] + // } + // + const chart = this.safeValue (response, 'chart', []); + return this.parseOHLCVs (chart, market, timeframe, since, limit); + } + + parseOHLCV (ohlcv, market = undefined) { + // + // [ + // 1612519260000, // timestamp + // 44099, // open + // 44099, // high + // 44099, // low + // 44099, // close + // 0, // base volume + // 441, // seqNumber + // ] + // + const timestamp = this.safeInteger (ohlcv, 0); + const open = this.convertFromScale (ohlcv[1], market['precision']['price']); + const high = this.convertFromScale (ohlcv[2], market['precision']['price']); + const low = this.convertFromScale (ohlcv[3], market['precision']['price']); + const close = this.convertFromScale (ohlcv[4], market['precision']['price']); + const volume = this.convertFromScale (ohlcv[5], market['precision']['amount']); + // volume = ohlcv[5]; + return [timestamp, open, high, low, close, volume]; + } + + parseBidAsk (bidask, priceKey = 0, amountKey = 1, market = undefined) { + if (market === undefined) { + throw new ArgumentsRequired (this.id + ' parseBidAsk() requires a market argument'); + } + const price = this.safeFloat (bidask, priceKey); + const amount = this.safeFloat (bidask, amountKey); + return [ + this.convertFromScale (price, market['precision']['price']), + this.convertFromScale (amount, market['precision']['amount']), + ]; + } + + parseOrderBook (orderbook, timestamp = undefined, bidsKey = 'bids', asksKey = 'asks', priceKey = 0, amountKey = 1, market = undefined) { + const result = { + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'nonce': undefined, + }; + const sides = [ bidsKey, asksKey ]; + for (let i = 0; i < sides.length; i++) { + const side = sides[i]; + const orders = []; + const bidasks = this.safeValue (orderbook, side); + for (let k = 0; k < bidasks.length; k++) { + orders.push (this.parseBidAsk (bidasks[k], priceKey, amountKey, market)); + } + result[side] = orders; + } + result[bidsKey] = this.sortBy (result[bidsKey], 0, true); + result[asksKey] = this.sortBy (result[asksKey], 0); + return result; + } + + async fetchOrderBook (symbol, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'pairId': parseInt (market['id']), + }; + const response = await this.publicGetGetOrderBook (this.extend (request, params)); + // + // { + // "bids":[ + // [4000480,30000,1612644984667], + // [3999304,200000,1612644984667], + // [3998862,50000,1612644984667], + // ], + // "asks":[ + // [4001962,1790000,1612644984667], + // [4002616,1000,1612644984667], + // [4003889,1000,1612644984667], + // ], + // "usdMark":40011.02, + // "marketStatus":0, + // "estFundingRate":0.0, + // "fundingRateTime":0, + // "auctionPrice":0.0, + // "auctionVolume":0.0 + // } + // + return this.parseOrderBook (response, undefined, 'bids', 'asks', 0, 1, market); + } + + async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'pairId': parseInt (market['id']), + }; + const response = await this.publicGetGetTradeHistory (this.extend (request, params)); + // + // { + // "trades":[ + // [4022800,47000,"20210206-21:39:12.886",256323,1], + // [4023066,1000,"20210206-21:38:55.030",256322,1], + // [4022406,50000,"20210206-21:36:56.334",256321,1], + // ] + // } + // + const trades = this.safeValue (response, 'trades', []); + return this.parseTrades (trades, market, since, limit, params); + } + + parseTrade (trade, market = undefined) { + // + // public fetchTrades + // + // [ + // 4022800, // 0 price + // 47000, // 1 quantity + // "20210206-21:39:12.886", // 2 timestamp + // 256323, // 3 sequence number + // 1 // 4 taker side 1 = buy, 2 = sell + // ] + // + // private fetchMyTrades + // + // { + // "account":3583, + // "commission":"-0.015805", + // "commCurrency":"USDC", + // "execId":265757, + // "ordType":"2", + // "ordStatus":"2", + // "execType":"F", + // "aggressorIndicator":true, + // "orderId":388953019, + // "price":"1842.04", + // "qty":"0.010000", + // "lastPx":"1756.22", + // "avgPx":"1756.22", + // "cumQty":"0.010000", + // "quoteQty":"0.010000", + // "side":"BUY", + // "symbol":"ETH/USDC", + // "clOrdId":"1613106766970339107", + // "submitterId":3583, + // "targetStrategy":"0", + // "time":1613106766971, + // "date":"20210212-05:12:46.971" + // } + // + let id = undefined; + let timestamp = undefined; + let orderId = undefined; + let type = undefined; + let side = undefined; + let price = undefined; + let amount = undefined; + let cost = undefined; + let fee = undefined; + let symbol = undefined; + if (Array.isArray (trade)) { + id = this.safeString (trade, 3); + price = this.convertFromScale (this.safeInteger (trade, 0), market['precision']['price']); + amount = this.convertFromScale (this.safeInteger (trade, 1), market['precision']['amount']); + timestamp = this.toMilliseconds (this.safeString (trade, 2)); + const takerSide = this.safeInteger (trade, 4); + if (takerSide === 1) { + side = 'buy'; + } else if (takerSide === 2) { + side = 'sell'; + } + } else { + id = this.safeString (trade, 'execId'); + timestamp = this.safeInteger (trade, 'time'); + const marketId = this.safeString (trade, 'symbol'); + symbol = this.safeSymbol (marketId, market); + orderId = this.safeString (trade, 'orderId'); + side = this.safeStringLower (trade, 'side'); + type = this.parseOrderType (this.safeString (trade, 'ordType')); + price = this.safeFloat (trade, 'lastPx'); + amount = this.safeFloat (trade, 'quoteQty'); + let feeCost = this.safeFloat (trade, 'commission'); + if (feeCost !== undefined) { + feeCost = -feeCost; + const feeCurrencyId = this.safeString (trade, 'commCurrency'); + const feeCurrencyCode = this.safeCurrencyCode (feeCurrencyId); + fee = { + 'cost': feeCost, + 'currency': feeCurrencyCode, + }; + } + } + if ((symbol === undefined) && (market !== undefined)) { + symbol = market['symbol']; + } + if (cost === undefined) { + if ((amount !== undefined) && (price !== undefined)) { + cost = amount * price; + } + } + return { + 'info': trade, + 'id': id, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'symbol': symbol, + 'order': orderId, + 'type': type, + 'side': side, + 'takerOrMaker': undefined, + 'price': price, + 'amount': amount, + 'cost': cost, + 'fee': fee, + }; + } + + async fetchBalance (params = {}) { + await this.loadMarkets (); + const response = await this.privatePostGetPositions (params); + // { + // "positions":[ + // { + // "instrumentId":1, + // "userId":3583, + // "quantity":0, + // "availableQuantity":0, + // "quantity_scale":6, + // "symbol":"USDC", + // "assetType":"ASSET", + // "usdCostBasis":0.0, + // "usdAvgCostBasis":0.0, + // "usdValue":0.0, + // "usdUnrealized":0.0, + // "usdRealized":0.0, + // "baseUsdMark":1.0, + // "settleCoinUsdMark":0.0, + // "settleCoinUnrealized":0.0, + // "settleCoinRealized":0.0 + // }, + // ] + // } + const positions = this.safeValue (response, 'positions', []); + const result = { + 'info': response, + }; + for (let i = 0; i < positions.length; i++) { + const position = positions[i]; + const assetType = this.safeString (position, 'assetType'); + if (assetType === 'ASSET') { + const currencyId = this.safeString (position, 'symbol'); + const code = this.safeCurrencyCode (currencyId); + const quantity = this.safeFloat (position, 'quantity'); + const availableQuantity = this.safeFloat (position, 'availableQuantity'); + const scale = this.safeInteger (position, 'quantity_scale'); + const account = this.account (); + account['free'] = this.convertFromScale (availableQuantity, scale); + account['total'] = this.convertFromScale (quantity, scale); + result[code] = account; + } + } + return this.parseBalance (result); + } + + async createOrder (symbol, type, side, amount, price = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const orderSide = (side === 'buy') ? 1 : 2; + const quantityScale = this.getScale (amount); + const request = { + // 'id': 0, + // 'account': 0, // required for institutional users + 'instrumentId': parseInt (market['id']), + 'symbol': market['uppercaseId'], + // 'clOrdId': '', + 'side': orderSide, // 1 = buy, 2 = sell + // 'ordType': 1, // 1 = market, 2 = limit, 3 = stop market, 4 = stop limit + // 'price': this.priceToPrecision (symbol, price), // required for limit and stop limit orders + // 'price_scale': this.getScale (price), + 'quantity': this.convertToScale (amount, quantityScale), + 'quantity_scale': quantityScale, + // 'stopPx': this.priceToPrecision (symbol, stopPx), + // 'stopPx_scale': this.getScale (stopPx), + // 'targetStrategy': 0, + // 'isHidden': false, + // 'timeInForce': 1, // 1 = Good Till Cancel (GTC), 3 = Immediate or Cancel (IOC), 4 = Fill or Kill (FOK), 5 = Good Till Crossing (GTX), 6 = Good Till Date (GTD) + // 'interval': 0, + // 'intervalCount': 0, + // 'intervalDelay': 0, + // 'price2': 0, + // 'price2_scale': this.getScale (price2), + // 'blockWaitAck': 0, // 1 = wait for order acknowledgement, when set, response will include the matching engine "orderId" field + }; + if (type === 'market') { + request['ordType'] = 1; + } else if (type === 'limit') { + request['ordType'] = 2; + request['price'] = this.convertToScale (price, this.getScale (price)); + } else { + const stopPrice = this.safeFloat2 (params, 'stopPrice', 'stopPx'); + params = this.omit (params, [ 'stopPrice', 'stopPx' ]); + if (stopPrice === undefined) { + if (type === 'stop') { + if (price === undefined) { + throw new ArgumentsRequired (this.id + ' createOrder() requires a price argument or a stopPrice parameter or a stopPx parameter for ' + type + ' orders'); + } + request['ordType'] = 3; + request['stopPx'] = this.convertToScale (price, this.getScale (price)); + } else if (type === 'stop limit') { + throw new ArgumentsRequired (this.id + ' createOrder() requires a stopPrice parameter or a stopPx parameter for ' + type + ' orders'); + } + } else { + if (type === 'stop') { + request['ordType'] = 3; + request['stopPx'] = this.convertToScale (stopPrice, this.getScale (stopPrice)); + } else if (type === 'stop limit') { + request['ordType'] = 4; + const priceScale = this.getScale (price); + const stopPriceScale = this.getScale (stopPrice); + request['price_scale'] = priceScale; + request['stopPx_scale'] = stopPriceScale; + request['stopPx'] = this.convertToScale (stopPrice, stopPriceScale); + request['price'] = this.convertToScale (price, priceScale); + } + } + } + const response = await this.privatePostOrder (this.extend (request, params)); + // + // { + // "status":"sent", + // "id":385617863, + // "instrumentId":53, + // "clOrdId":"1613037510849637345", + // "userId":3583, + // "price":2000, + // "quantity":200, + // "ordType":2 + // } + // + return this.parseOrder (response, market); + } + + async cancelOrder (id, symbol = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'origOrderId': parseInt (id), + 'instrumentId': parseInt (market['id']), + }; + const response = await this.privatePostCancelOrder (this.extend (request, params)); + // + // { + // "status":"sent", + // "id":0, + // "origOrderId":385613629, + // "instrumentId":53, + // "userId":3583, + // "price":0, + // "quantity":0, + // "ordType":0 + // } + // + return this.parseOrder (response, market); + } + + async editOrder (id, symbol, type, side, amount, price = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const orderSide = (side === 'buy') ? 1 : 2; + const quantityScale = this.getScale (amount); + const request = { + // 'id': 0, + 'origOrderId': id, + // 'account': 0, // required for institutional users + 'instrumentId': parseInt (market['id']), + 'symbol': market['uppercaseId'], + // 'clOrdId': '', + 'side': orderSide, // 1 = buy, 2 = sell + // 'ordType': 1, // 1 = market, 2 = limit, 3 = stop market, 4 = stop limit + // 'price': this.priceToPrecision (symbol, price), // required for limit and stop limit orders + // 'price_scale': this.getScale (price), + 'quantity': this.convertToScale (amount, quantityScale), + 'quantity_scale': quantityScale, + // 'stopPx': this.priceToPrecision (symbol, stopPx), + // 'stopPx_scale': this.getScale (stopPx), + // 'timeInForce': 1, // 1 = Good Till Cancel (GTC), 3 = Immediate or Cancel (IOC), 4 = Fill or Kill (FOK), 5 = Good Till Crossing (GTX), 6 = Good Till Date (GTD) + }; + if (type === 'market') { + request['ordType'] = 1; + } else if (type === 'limit') { + request['ordType'] = 2; + request['price'] = this.convertToScale (price, this.getScale (price)); + } else { + const stopPrice = this.safeFloat2 (params, 'stopPrice', 'stopPx'); + params = this.omit (params, [ 'stopPrice', 'stopPx' ]); + if (stopPrice === undefined) { + if (type === 'stop') { + if (price === undefined) { + throw new ArgumentsRequired (this.id + ' editOrder() requires a price argument or a stopPrice parameter or a stopPx parameter for ' + type + ' orders'); + } + request['ordType'] = 3; + request['stopPx'] = this.convertToScale (price, this.getScale (price)); + } else if (type === 'stop limit') { + throw new ArgumentsRequired (this.id + ' editOrder() requires a stopPrice parameter or a stopPx parameter for ' + type + ' orders'); + } + } else { + if (type === 'stop') { + request['ordType'] = 3; + request['stopPx'] = this.convertToScale (stopPrice, this.getScale (stopPrice)); + } else if (type === 'stop limit') { + request['ordType'] = 4; + const priceScale = this.getScale (price); + const stopPriceScale = this.getScale (stopPrice); + request['price_scale'] = priceScale; + request['stopPx_scale'] = stopPriceScale; + request['stopPx'] = this.convertToScale (stopPrice, stopPriceScale); + request['price'] = this.convertToScale (price, priceScale); + } + } + } + const response = await this.privatePostOrder (this.extend (request, params)); + // + // { + // "status":"sent", + // "id":385617863, + // "instrumentId":53, + // "clOrdId":"1613037510849637345", + // "userId":3583, + // "price":2000, + // "quantity":200, + // "ordType":2 + // } + // + return this.parseOrder (response, market); + } + + async fetchOrder (id, symbol = undefined, params = {}) { + await this.loadMarkets (); + const request = { + 'orderId': parseInt (id), + }; + const response = await this.privatePostGetOrderStatus (this.extend (request, params)); + // + // { + // "orderId":388953019, + // "clOrdId":"1613106766970339107", + // "symbol":"ETH/USDC", + // "instrumentId":53, + // "side":"1", + // "userId":3583, + // "account":3583, + // "execType":"F", + // "ordType":"2", + // "ordStatus":"2", + // "timeInForce":"3", + // "timeStamp":"20210212-05:12:46.971", + // "execId":265757, + // "targetStrategy":0, + // "isHidden":false, + // "isReduceOnly":false, + // "isLiquidation":false, + // "fee":0, + // "fee_scale":6, + // "feeInstrumentId":1, + // "price":184204, + // "price_scale":2, + // "quantity":10000, + // "quantity_scale":6, + // "leavesQty":0, + // "leavesQty_scale":6, + // "cumQty":10000, + // "cumQty_scale":6, + // "lastPx":175622, + // "lastPx_scale":2, + // "avgPx":175622, + // "avgPx_scale":2, + // "lastQty":10000, + // "lastQty_scale":6 + // } + // + return this.parseOrder (response); + } + + async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const request = { + 'ordStatus': '2', // '0' = New, '1' = Partially filled, '2' = Filled, '4' = Cancelled, '8' = Rejected, 'C' = Expired + }; + return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); + } + + async fetchCanceledOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const request = { + 'ordStatus': '4', // '0' = New, '1' = Partially filled, '2' = Filled, '4' = Cancelled, '8' = Rejected, 'C' = Expired + }; + return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); + } + + async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + let market = undefined; + const request = { + // 'account': id, // for institutional users + // 'symbol': marketSymbol, // cannot be used with instrumentId + // 'instrumentId': market['numericId'], + // 'limit': limit, + // 'execType': execType, // '0' = New, '4' = Canceled, '5' = Replace, '8' = Rejected, 'C' = Expired, 'F' = Fill Status, 'I' = Order Status + // 'ordStatus': ordStatus, // '0' = New, '1' = Partially filled, '2' = Filled, '4' = Cancelled, '8' = Rejected, 'C' = Expired + }; + if (symbol !== undefined) { + market = this.market (symbol); + request['instrumentId'] = parseInt (market['id']); + } + if (limit !== undefined) { + request['limit'] = limit; + } + const response = await this.privatePostGetOrders (this.extend (request, params)); + // + // { + // "isInitialSnap":false, + // "orders":[ + // { + // "orderId":385613629, + // "orderUpdateSeq":1, + // "clOrdId":"1613037448945798198", + // "symbol":"ETH/USDC", + // "instrumentId":53, + // "side":"1", + // "userId":3583, + // "account":3583, + // "execType":"4", + // "ordType":"2", + // "ordStatus":"C", + // "timeInForce":"3", + // "timeStamp":"20210211-09:57:28.944", + // "execId":0, + // "targetStrategy":0, + // "isHidden":false, + // "isReduceOnly":false, + // "isLiquidation":false, + // "fee":0, + // "feeTotal":0, + // "fee_scale":0, + // "feeInstrumentId":0, + // "price":999, + // "price_scale":2, + // "quantity":10000000, + // "quantity_scale":6, + // "leavesQty":10000000, + // "leavesQty_scale":6, + // "cumQty":0, + // "cumQty_scale":0, + // "lastPx":0, + // "lastPx_scale":2, + // "avgPx":0, + // "avgPx_scale":0, + // "lastQty":0, + // "lastQty_scale":6 + // } + // ] + // } + // + const orders = this.safeValue (response, 'orders', []); + return this.parseOrders (orders, market, since, limit, params); + } + + async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'account': 123, // for institutional users + // 'instrumentId': market['id'], + // 'startTime': since, + // 'endTime': this.milliseconds (), + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['instrumentId'] = market['id']; + } + if (since !== undefined) { + request['startTime'] = since; + } + const response = await this.privatePostUserTrades (this.extend (request, params)); + // + // { + // "trades":[ + // { + // "account":3583, + // "commission":"-0.015805", + // "commCurrency":"USDC", + // "execId":265757, + // "ordType":"2", + // "ordStatus":"2", + // "execType":"F", + // "aggressorIndicator":true, + // "orderId":388953019, + // "price":"1842.04", + // "qty":"0.010000", + // "lastPx":"1756.22", + // "avgPx":"1756.22", + // "cumQty":"0.010000", + // "quoteQty":"0.010000", + // "side":"BUY", + // "symbol":"ETH/USDC", + // "clOrdId":"1613106766970339107", + // "submitterId":3583, + // "targetStrategy":"0", + // "time":1613106766971, + // "date":"20210212-05:12:46.971" + // } + // ] + // } + // + const trades = this.safeValue (response, 'trades', []); + return this.parseTrades (trades, market, since, limit, params); + } + + async fetchDepositAddress (code, params = {}) { + await this.loadMarkets (); + const currency = this.currency (code); + const request = { + 'instrumentId': parseInt (currency['id']), + }; + const response = await this.privatePostGetDepositAddresses (this.extend (request, params)); + // + // { + // "addresses":[ + // {"instrumentId":1,"userId":3583,"symbol":"USDC","address":"0xdff47af071ea3c537e57278290516cda32a78b97","status":1} + // ] + // } + // + const addresses = this.safeValue (response, 'addresses', []); + const address = this.safeValue (addresses, 0); + return this.parseDepositAddress (address, currency); + } + + parseDepositAddress (depositAddress, currency = undefined) { + // + // { + // "instrumentId":1, + // "userId":3583, + // "symbol":"USDC", + // "address":"0xdff47af071ea3c537e57278290516cda32a78b97", + // "status":1 + // } + // + const currencyId = this.safeString (depositAddress, 'symbol'); + const code = this.safeCurrencyCode (currencyId, currency); + const address = this.safeString (depositAddress, 'address'); + this.checkAddress (address); + return { + 'currency': code, + 'address': address, + 'tag': undefined, + 'info': depositAddress, + }; + } + + async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = {}; + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + request['instrumentId'] = parseInt (currency['id']); + } + const response = await this.privatePostGetDepositHistory (this.extend (request, params)); + // + // { + // "deposits":[ + // { + // "id":4309, + // "instrumentId":1, + // "userId":3583, + // "symbol":"USDC", + // "address":"null", + // "timestamp":"1613021112189", + // "status":1, + // "balance":0.0, + // "balance_change":100.0, + // "confirms":1, + // "transactionId":"caba4500-489f-424e-abd7-b4dabc09a800" + // } + // ] + // } + // + const deposits = this.safeValue (response, 'deposits', []); + return this.parseTransactions (deposits, currency, since, limit, { 'type': 'deposit' }); + } + + async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = {}; + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + request['instrumentId'] = parseInt (currency['id']); + } + const response = await this.privatePostGetWithdrawRequests (this.extend (request, params)); + // + // { + // "addresses":[ + // { + // "id":3841, + // "instrumentId":3, + // "userId":4245, + // "symbol":"BTC", + // "address":"XXXXXYYYYYZZZZZ", + // "timestamp":"20200806-11:04:35.053", + // "status":0, + // "balance":1, + // "balance_scale":3, + // "confirms":0, + // "transactionId":"null" + // } + // ] + // } + // + const withdrawals = this.safeValue (response, 'addresses', []); + return this.parseTransactions (withdrawals, currency, since, limit, { 'type': 'withdrawal' }); + } + + parseTransaction (transaction, currency = undefined) { + // + // fetchDeposits, fetchWithdrawals + // + // { + // "id":4309, + // "instrumentId":1, + // "userId":3583, + // "symbol":"USDC", + // "address":"null", + // "timestamp":"1613021112189", + // "status":1, + // "balance":0.0, + // "balance_change":100.0, + // "confirms":1, + // "transactionId":"caba4500-489f-424e-abd7-b4dabc09a800" + // } + // + // withdraw + // + // { + // "instrumentId": 1, + // "userId": 23750, + // "symbol": "USDC", + // "timestamp": "20200201-05:37:16.584", + // "status": 1, + // "userUuid": "b9e33713-c28f-468f-99bd-f6deab0dd854", + // "currencyCode": "USDC", + // "address": "2MvW97yT6E2Kq8bWc1aj1DqfbgMzjRNk2LE", + // "quantity": 20, + // "requestUuid": "56782b34-8a78-4f5f-b164-4b8f7d583b7f", + // "transactionUuid": "1004eb0f-41e1-41e9-9d48-8eefcc6c09f2", + // "transactionId": "WS23436", + // "destinationWalletAlias": "Test", + // "quantity_scale": 0 + // } + // + const id = this.safeString (transaction, 'id', 'transactionId'); + const txid = this.safeString (transaction, 'transactionUuid'); + const timestamp = this.safeInteger (transaction, 'timestamp'); + let address = this.safeString (transaction, 'address'); + if (address === 'null') { + address = undefined; + } + const type = this.safeString (transaction, 'type'); + let amount = this.safeFloat (transaction, 'balance_change'); + if (amount === undefined) { + amount = this.safeInteger (transaction, 'quantity'); + const amountScale = this.safeInteger (transaction, 'quantity_scale'); + amount = this.convertFromScale (amount, amountScale); + } + const currencyId = this.safeString (transaction, 'symbol'); + const code = this.safeCurrencyCode (currencyId, currency); + const status = this.parseTransactionStatus (this.safeString (transaction, 'status')); + return { + 'info': transaction, + 'id': id, + 'txid': txid, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'addressFrom': undefined, + 'address': address, + 'addressTo': undefined, + 'tagFrom': undefined, + 'tag': undefined, + 'tagTo': undefined, + 'type': type, + 'amount': amount, + 'currency': code, + 'status': status, + 'updated': undefined, + 'comment': undefined, + 'fee': undefined, + }; + } + + parseTransactionStatus (status) { + const statuses = { + '0': 'pending', + '1': 'ok', + }; + return this.safeString (statuses, status, status); + } + + async withdraw (code, amount, address, tag = undefined, params = {}) { + this.checkAddress (address); + await this.loadMarkets (); + const currency = this.currency (code); + const scale = this.getScale (amount); + const quantity = this.convertToScale (amount, scale); + const request = { + 'instrumentId': parseInt (currency['id']), + 'symbol': currency['uppercaseId'], + 'quantity': quantity, + 'quantity_scale': scale, + 'address': address, + }; + const response = await this.privatePostSendWithdrawRequest (this.extend (request, params)); + // + // { + // "instrumentId": 1, + // "userId": 23750, + // "symbol": "USDC", + // "timestamp": "20200201-05:37:16.584", + // "status": 1, + // "userUuid": "b9e33713-c28f-468f-99bd-f6deab0dd854", + // "currencyCode": "USDC", + // "address": "2MvW97yT6E2Kq8bWc1aj1DqfbgMzjRNk2LE", + // "quantity": 20, + // "requestUuid": "56782b34-8a78-4f5f-b164-4b8f7d583b7f", + // "transactionUuid": "1004eb0f-41e1-41e9-9d48-8eefcc6c09f2", + // "transactionId": "WS23436", + // "destinationWalletAlias": "Test", + // "quantity_scale": 0 + // } + // + return this.parseTransaction (response, currency); + } + + async fetchTradingFees (params = {}) { + // getExchangeInfo + const response = await this.publicGetGetExchangeInfo (params); + const tradingFees = this.safeValue (response, 'spotFees', []); + const taker = {}; + const maker = {}; + for (let i = 0; i < tradingFees.length; i++) { + const tradingFee = tradingFees[i]; + if (this.safeString (tradingFee, 'tier') !== undefined) { + taker[tradingFee['tier']] = this.safeFloat (tradingFee, 'taker'); + maker[tradingFee['tier']] = this.safeFloat (tradingFee, 'maker'); + } + } + return { + 'info': tradingFees, + 'tierBased': true, + 'maker': maker, + 'taker': taker, + }; + } + + async fetchTradingLimits (symbols = undefined, params = {}) { + await this.loadMarkets (); + // getExchangeInfo + const response = await this.publicGetGetExchangeInfo (params); + const tradingLimits = this.safeValue (response, 'tradingLimits', []); + // To-do parsing response when available + return { + 'info': tradingLimits, + 'limits': { + 'amount': { + 'min': undefined, + 'max': undefined, + }, + 'price': { + 'min': undefined, + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + }, + }; + } + + async fetchFundingLimits (params = {}) { + // getExchangeInfo + const response = await this.publicGetGetExchangeInfo (params); + const withdrawLimits = this.safeValue (response, 'withdrawLimits', []); + // TO-DO parse response when available + return { + 'info': withdrawLimits, + 'withdraw': undefined, + }; + } + + parseOrder (order, market = undefined) { + // + // createOrder, editOrder, cancelOrder + // + // { + // "status":"sent", + // "id":385617863, + // "instrumentId":53, + // "clOrdId":"1613037510849637345", + // "userId":3583, + // "price":2000, + // "quantity":200, + // "ordType":2 + // } + // + // fetchOrders, fetchOrder + // + // { + // "orderId":385613629, + // "orderUpdateSeq":1, + // "clOrdId":"1613037448945798198", + // "symbol":"ETH/USDC", + // "instrumentId":53, + // "side":"1", + // "userId":3583, + // "account":3583, + // "execType":"4", + // "ordType":"2", + // "ordStatus":"C", + // "timeInForce":"3", + // "timeStamp":"20210211-09:57:28.944", + // "execId":0, + // "targetStrategy":0, + // "isHidden":false, + // "isReduceOnly":false, + // "isLiquidation":false, + // "fee":0, + // "feeTotal":0, + // "fee_scale":0, + // "feeInstrumentId":0, + // "price":999, + // "price_scale":2, + // "quantity":10000000, + // "quantity_scale":6, + // "leavesQty":10000000, + // "leavesQty_scale":6, + // "cumQty":0, + // "cumQty_scale":0, + // "lastPx":0, + // "lastPx_scale":2, + // "avgPx":0, + // "avgPx_scale":0, + // "lastQty":0, + // "lastQty_scale":6 + // } + // + let id = this.safeString2 (order, 'orderId', 'id'); + id = this.safeString (order, 'origOrderId', id); + const clientOrderId = this.safeString (order, 'clOrdId'); + const type = this.parseOrderType (this.safeString (order, 'ordType')); + const side = this.parseOrderSide (this.safeString (order, 'side')); + const status = this.parseOrderStatus (this.safeString (order, 'ordStatus')); + const marketId = this.safeString (order, 'instrumentId'); + const symbol = this.safeSymbol (marketId, market); + const timestamp = this.toMilliseconds (this.safeString (order, 'timeStamp')); + const lastTradeTimestamp = undefined; + let price = this.safeInteger (order, 'price'); + if (price === 0) { + price = undefined; + } + const priceScale = this.safeInteger (order, 'price_scale'); + price = this.convertFromScale (price, priceScale); + let amount = this.safeInteger (order, 'quantity'); + if (amount === 0) { + amount = undefined; + } + const amountScale = this.safeInteger (order, 'quantity_scale'); + amount = this.convertFromScale (amount, amountScale); + let filled = this.safeInteger (order, 'cumQty'); + const filledScale = this.safeInteger (order, 'cumQty_scale'); + filled = this.convertFromScale (filled, filledScale); + let remaining = this.safeInteger (order, 'leavesQty'); + const remainingScale = this.safeInteger (order, 'leavesQty_scale'); + remaining = this.convertFromScale (remaining, remainingScale); + if (remaining <= 0) { + if ((filled !== undefined) && (amount !== undefined) && (filled < amount)) { + remaining = undefined; + } + } + if ((remaining === undefined) && (amount !== undefined) && (filled !== undefined)) { + remaining = Math.max (amount - filled, 0); + } + let average = this.safeInteger (order, 'price', 0); + if (average === 0) { + average = undefined; + } + const averageScale = this.safeInteger (order, 'price_scale'); + average = this.convertFromScale (average, averageScale); + let cost = undefined; + if (filled !== 0) { + if (average > 0) { + cost = average * filled; + } else if (price > 0) { + cost = price * filled; + } + } + let fee = undefined; + const currencyId = this.safeInteger (order, 'feeInstrumentId'); + const feeCurrencyCode = this.safeCurrencyCode (currencyId); + let feeCost = this.safeInteger (order, 'feeTotal'); + const feeScale = this.safeInteger (order, 'fee_scale'); + if (feeCost !== undefined) { + feeCost = -feeCost; + feeCost = this.convertFromScale (feeCost, feeScale); + } + if (feeCost !== undefined) { + fee = { + 'currency': feeCurrencyCode, + 'cost': feeCost, + 'rate': undefined, + }; + } + let timeInForce = this.parseTimeInForce (this.safeString (order, 'timeInForce')); + if (timeInForce === '0') { + timeInForce = undefined; + } + const stopPriceScale = this.safeInteger (order, 'stopPx_scale', 0); + const stopPrice = this.convertFromScale (this.safeInteger (order, 'stopPx'), stopPriceScale); + return { + 'info': order, + 'id': id, + 'clientOrderId': clientOrderId, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'lastTradeTimestamp': lastTradeTimestamp, + 'symbol': symbol, + 'type': type, + 'timeInForce': timeInForce, + 'postOnly': undefined, + 'side': side, + 'price': price, + 'stopPrice': stopPrice, + 'amount': amount, + 'cost': cost, + 'average': average, + 'filled': filled, + 'remaining': remaining, + 'status': status, + 'fee': fee, + 'trades': undefined, + }; + } + + parseOrderStatus (status) { + const statuses = { + '0': 'open', + '1': 'open', // 'partially filled', + '2': 'closed', // 'filled', + '3': 'open', // 'done for day', + '4': 'canceled', + '5': 'canceled', // 'replaced', + '6': 'canceling', // 'pending cancel', + '7': 'canceled', // 'stopped', + '8': 'rejected', // 'rejected', + '9': 'canceled', // 'suspended', + 'A': 'open', // 'pending new', + 'B': 'open', // 'calculated', + 'C': 'expired', + 'D': 'open', // 'accepted for bidding', + 'E': 'canceling', // 'pending replace', + 'F': 'open', // 'partial fill or fill', + }; + return this.safeString (statuses, status, status); + } + + parseOrderSide (side) { + const sides = { + '1': 'buy', + '2': 'sell', + }; + return this.safeString (sides, side, side); + } + + parseOrderType (type) { + const types = { + '1': 'market', + '2': 'limit', + '3': 'stop', + '4': 'stop limit', + }; + return this.safeString (types, type, type); + } + + parseTimeInForce (timeInForce) { + const timeInForces = { + '1': 'GTC', // Good Till Canceled + '3': 'IOC', // Immediate or Cancel + '4': 'FOK', // Fill or Kill + '5': 'GTX', // Good Till Crossing (GTX) + '6': 'GTD', // Good Till Date + }; + return this.safeString (timeInForces, timeInForce, timeInForce); + } + + toMilliseconds (dateString) { + if (dateString === undefined) { + return dateString; + } + // '20200328-10:31:01.575' -> '2020-03-28 12:42:48.000' + const splits = dateString.split ('-'); + const partOne = this.safeString (splits, 0); + const partTwo = this.safeString (splits, 1); + if (partOne === undefined || partTwo === undefined) { + return undefined; + } + if (partOne.length !== 8) { + return undefined; + } + const date = partOne.slice (0, 4) + '-' + partOne.slice (4, 6) + '-' + partOne.slice (6, 8); + return this.parse8601 (date + ' ' + partTwo); + } + + convertFromScale (number, scale) { + if ((number === undefined) || (scale === undefined)) { + return undefined; + } + return this.fromWei (number, scale); + } + + getScale (num) { + const s = this.numberToString (num); + return this.precisionFromString (s); + } + + convertToScale (number, scale) { + if ((number === undefined) || (scale === undefined)) { + return undefined; + } + return parseInt (this.toWei (number, scale)); + } + + nonce () { + return this.milliseconds (); + } + + handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { + if (response === undefined) { + return; // fallback to default error handler + } + const error = this.safeString (response, 'error'); + if (error !== undefined) { + const feedback = this.id + ' ' + body; + this.throwExactlyMatchedException (this.exceptions, error, feedback); + this.throwBroadlyMatchedException (this.exceptions, body, feedback); + throw new ExchangeError (this.id + ' ' + body); + } + } + + sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { + let url = this.implodeParams (path, params); + let query = this.omit (params, this.extractParams (path)); + if (api === 'public') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } else if (api === 'private') { + // special case for getUserHistory + const format = this.safeValue (params, 'format'); + const type = this.safeValue (params, 'type'); + const extension = {}; + if (format !== undefined) { + extension['format'] = format; + } + if (type !== undefined) { + extension['type'] = type; + } + if (Object.keys (extension).length) { + url += '?' + this.urlencode (extension); + } + params = this.omit (params, [ 'format', 'type' ]); + this.checkRequiredCredentials (); + const nonce = this.nonce (); + query = this.extend (query, { + 'userId': this.uid, + 'nonce': nonce, + }); + params['nonce'] = this.nonce (); + body = this.json (query); + const signature = this.hmac (this.encode (body), this.encode (this.secret), 'sha384'); + headers = { + 'Content-Type': 'application/json', + 'requestToken': this.apiKey, + 'signature': signature, + }; + } + url = this.urls['api'][api] + '/' + url; + return { 'url': url, 'method': method, 'body': body, 'headers': headers }; + } +}; diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/eterbase.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/eterbase.js index 56d975d44..40d2893d3 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/eterbase.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/eterbase.js @@ -605,7 +605,7 @@ module.exports = class eterbase extends Exchange { request['start'] = now - duration * limit * 1000; request['end'] = now; } else { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a since argument, or a limit argument, or both'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a since argument, or a limit argument, or both'); } await this.loadMarkets (); const market = this.market (symbol); @@ -807,6 +807,7 @@ module.exports = class eterbase extends Exchange { } const timeInForce = this.safeString (order, 'timeInForce'); const stopPrice = this.safeFloat (order, 'stopPrice'); + const postOnly = this.safeValue (order, 'postOnly'); return { 'info': order, 'id': id, @@ -816,8 +817,9 @@ module.exports = class eterbase extends Exchange { 'lastTradeTimestamp': undefined, 'symbol': symbol, 'type': type, - 'side': side, 'timeInForce': timeInForce, + 'postOnly': postOnly, + 'side': side, 'price': price, 'stopPrice': stopPrice, 'amount': amount, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/exmo.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/exmo.js index 52c2ba65e..c9e19479d 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/exmo.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/exmo.js @@ -702,7 +702,7 @@ module.exports = class exmo extends Exchange { const now = this.milliseconds (); if (since === undefined) { if (limit === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a since argument or a limit argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a since argument or a limit argument'); } else { if (limit > maxLimit) { throw new BadRequest (this.id + ' fetchOHLCV will serve ' + maxLimit.toString () + ' candles at most'); @@ -1318,6 +1318,7 @@ module.exports = class exmo extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -1436,12 +1437,21 @@ module.exports = class exmo extends Exchange { const type = this.safeString (transaction, 'type'); const currencyId = this.safeString (transaction, 'curr'); const code = this.safeCurrencyCode (currencyId, currency); - let address = this.safeString (transaction, 'account'); - if (address !== undefined) { - const parts = address.split (':'); - const numParts = parts.length; - if (numParts === 2) { - address = parts[1].replace (' ', ''); + let address = undefined; + const tag = undefined; + let comment = undefined; + const account = this.safeString (transaction, 'account'); + if (type === 'deposit') { + comment = account; + } else if (type === 'withdrawal') { + address = account; + if (address !== undefined) { + const parts = address.split (':'); + const numParts = parts.length; + if (numParts === 2) { + address = this.safeString (parts, 1); + address = address.replace (' ', ''); + } } } let fee = undefined; @@ -1469,16 +1479,21 @@ module.exports = class exmo extends Exchange { return { 'info': transaction, 'id': undefined, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), 'currency': code, 'amount': amount, 'address': address, - 'tag': undefined, // refix it properly + 'addressTo': address, + 'addressFrom': undefined, + 'tag': tag, + 'tagTo': tag, + 'tagFrom': undefined, 'status': status, 'type': type, 'updated': undefined, + 'comment': comment, 'txid': txid, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), 'fee': fee, }; } diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/exx.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/exx.js index 925d4a2f2..c4c12d03f 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/exx.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/exx.js @@ -326,6 +326,7 @@ module.exports = class exx extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': order['type'], 'price': price, 'stopPrice': undefined, @@ -387,7 +388,7 @@ module.exports = class exx extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } const market = this.market (symbol); const request = { diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/fcoin.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/fcoin.js index 1bdb5920d..2d1c845ab 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/fcoin.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/fcoin.js @@ -592,6 +592,7 @@ module.exports = class fcoin extends Exchange { 'symbol': symbol, 'type': orderType, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/flowbtc.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/flowbtc.js index d38ebfea9..12646489b 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/flowbtc.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/flowbtc.js @@ -246,7 +246,7 @@ module.exports = class flowbtc extends Exchange { }; return await this.privatePostCancelOrder (this.extend (request, params)); } - throw new ExchangeError (this.id + ' requires `ins` symbol parameter for cancelling an order'); + throw new ExchangeError (this.id + ' cancelOrder() requires an `ins` symbol parameter for cancelling an order'); } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/ftx.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/ftx.js index 8e3992ac5..18b572cc6 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/ftx.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/ftx.js @@ -4,7 +4,7 @@ const Exchange = require ('./base/Exchange'); const { TICK_SIZE } = require ('./base/functions/number'); -const { ExchangeError, InvalidOrder, BadRequest, InsufficientFunds, OrderNotFound, AuthenticationError } = require ('./base/errors'); +const { ExchangeError, InvalidOrder, BadRequest, InsufficientFunds, OrderNotFound, AuthenticationError, RateLimitExceeded, ExchangeNotAvailable, CancelPending } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -14,7 +14,7 @@ module.exports = class ftx extends Exchange { 'id': 'ftx', 'name': 'FTX', 'countries': [ 'HK' ], - 'rateLimit': 100, + 'rateLimit': 50, 'certified': true, 'pro': true, 'hostname': 'ftx.com', // or ftx.us @@ -99,9 +99,12 @@ module.exports = class ftx extends Exchange { 'wallet/coins', 'wallet/balances', 'wallet/all_balances', - 'wallet/deposit_address/{coin}', + 'wallet/deposit_address/{coin}', // ?method={method} 'wallet/deposits', 'wallet/withdrawals', + 'wallet/withdrawal_fee', + 'wallet/airdrops', + 'wallet/saved_addresses', 'orders', // ?market={market} 'orders/history', // ?market={market} 'orders/{order_id}', @@ -109,6 +112,14 @@ module.exports = class ftx extends Exchange { 'conditional_orders', // ?market={market} 'conditional_orders/{conditional_order_id}/triggers', 'conditional_orders/history', // ?market={market} + 'spot_margin/borrow_rates', + 'spot_margin/lending_rates', + 'spot_margin/borrow_summary', + 'spot_margin/market_info', // ?market={market} + 'spot_margin/borrow_history', + 'spot_margin/lending_history', + 'spot_margin/offers', + 'spot_margin/lending_info', 'fills', // ?market={market} 'funding_payments', // leverage tokens @@ -127,15 +138,23 @@ module.exports = class ftx extends Exchange { 'options/account_info', 'options/positions', 'options/fills', + // staking + 'staking/stakes', + 'staking/unstake_requests', + 'staking/balances', + 'staking/staking_rewards', ], 'post': [ 'account/leverage', 'wallet/withdrawals', + 'wallet/saved_addresses', 'orders', 'conditional_orders', 'orders/{order_id}/modify', 'orders/by_client_id/{client_order_id}/modify', 'conditional_orders/{order_id}/modify', + // spot margin + 'spot_margin/offers', // leverage tokens 'lt/{token_name}/create', 'lt/{token_name}/redeem', @@ -150,8 +169,12 @@ module.exports = class ftx extends Exchange { 'options/requests', 'options/requests/{request_id}/quotes', 'options/quotes/{quote_id}/accept', + // staking + 'staking/unstake_requests', + 'srm_stakes/stakes', ], 'delete': [ + 'wallet/saved_addresses/{saved_address_id}', 'orders/{order_id}', 'orders/by_client_id/{client_order_id}', 'orders', @@ -161,6 +184,8 @@ module.exports = class ftx extends Exchange { // options 'options/requests/{request_id}', 'options/quotes/{quote_id}', + // staking + 'staking/unstake_requests/{request_id}', ], }, }, @@ -195,6 +220,8 @@ module.exports = class ftx extends Exchange { }, 'exceptions': { 'exact': { + 'Please slow down': RateLimitExceeded, // {"error":"Please slow down","success":false} + 'Size too small for provide': InvalidOrder, // {"error":"Size too small for provide","success":false} 'Not logged in': AuthenticationError, // {"error":"Not logged in","success":false} 'Not enough balances': InsufficientFunds, // {"error":"Not enough balances","success":false} 'InvalidPrice': InvalidOrder, // {"error":"Invalid price","success":false} @@ -202,13 +229,20 @@ module.exports = class ftx extends Exchange { 'Missing parameter price': InvalidOrder, // {"error":"Missing parameter price","success":false} 'Order not found': OrderNotFound, // {"error":"Order not found","success":false} 'Order already closed': InvalidOrder, // {"error":"Order already closed","success":false} + 'Trigger price too high': InvalidOrder, // {"error":"Trigger price too high","success":false} + 'Trigger price too low': InvalidOrder, // {"error":"Trigger price too low","success":false} + 'Order already queued for cancellation': CancelPending, // {"error":"Order already queued for cancellation","success":false} }, 'broad': { + 'Account does not have enough margin for order': InsufficientFunds, 'Invalid parameter': BadRequest, // {"error":"Invalid parameter start_time","success":false} 'The requested URL was not found on the server': BadRequest, 'No such coin': BadRequest, 'No such market': BadRequest, - 'An unexpected error occurred': ExchangeError, // {"error":"An unexpected error occurred, please try again later (58BC21C795).","success":false} + 'Do not send more than': RateLimitExceeded, + 'An unexpected error occurred': ExchangeNotAvailable, // {"error":"An unexpected error occurred, please try again later (58BC21C795).","success":false} + 'Please retry request': ExchangeNotAvailable, // {"error":"Please retry request","success":false} + 'Please try again': ExchangeNotAvailable, // {"error":"Please try again","success":false} }, }, 'precisionMode': TICK_SIZE, @@ -338,7 +372,7 @@ module.exports = class ftx extends Exchange { 'amount': sizeIncrement, 'price': priceIncrement, }; - const entry = { + result.push ({ 'id': id, 'symbol': symbol, 'base': base, @@ -365,8 +399,7 @@ module.exports = class ftx extends Exchange { }, }, 'info': market, - }; - result.push (entry); + }); } return result; } @@ -665,22 +698,39 @@ module.exports = class ftx extends Exchange { // "type": "order" // } // + // { + // "baseCurrency": "BTC", + // "fee": 0, + // "feeCurrency": "USD", + // "feeRate": 0, + // "future": null, + // "id": 664079556, + // "liquidity": "taker", + // "market": null, + // "orderId": null, + // "price": 34830.61359, + // "quoteCurrency": "USD", + // "side": "sell", + // "size": 0.0005996, + // "time": "2021-01-15T16:05:29.246135+00:00", + // "tradeId": null, + // "type": "otc" + // } + // const id = this.safeString (trade, 'id'); const takerOrMaker = this.safeString (trade, 'liquidity'); const marketId = this.safeString (trade, 'market'); let symbol = undefined; - if (marketId !== undefined) { - if (marketId in this.markets_by_id) { - market = this.markets_by_id[marketId]; - symbol = market['symbol']; + if (marketId in this.markets_by_id) { + market = this.markets_by_id[marketId]; + symbol = market['symbol']; + } else { + const base = this.safeCurrencyCode (this.safeString (trade, 'baseCurrency')); + const quote = this.safeCurrencyCode (this.safeString (trade, 'quoteCurrency')); + if ((base !== undefined) && (quote !== undefined)) { + symbol = base + '/' + quote; } else { - const base = this.safeCurrencyCode (this.safeString (trade, 'baseCurrency')); - const quote = this.safeCurrencyCode (this.safeString (trade, 'quoteCurrency')); - if ((base !== undefined) && (quote !== undefined)) { - symbol = base + '/' + quote; - } else { - symbol = marketId; - } + symbol = marketId; } } const timestamp = this.parse8601 (this.safeString (trade, 'time')); @@ -998,6 +1048,7 @@ module.exports = class ftx extends Exchange { const lastTradeTimestamp = this.parse8601 (this.safeString (order, 'triggeredAt')); const clientOrderId = this.safeString (order, 'clientId'); const stopPrice = this.safeFloat (order, 'triggerPrice'); + const postOnly = this.safeValue (order, 'postOnly'); return { 'info': order, 'id': id, @@ -1008,6 +1059,7 @@ module.exports = class ftx extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -1145,12 +1197,12 @@ module.exports = class ftx extends Exchange { } } else { if (clientOrderId === undefined) { + method = 'privatePostOrdersOrderIdModify'; + request['order_id'] = id; + } else { method = 'privatePostOrdersByClientIdClientOrderIdModify'; request['client_order_id'] = clientOrderId; // request['clientId'] = clientOrderId; - } else { - method = 'privatePostOrdersOrderIdModify'; - request['order_id'] = id; } if (price !== undefined) { request['price'] = parseFloat (this.priceToPrecision (symbol, price)); @@ -1216,9 +1268,7 @@ module.exports = class ftx extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { await this.loadMarkets (); - const request = { - 'order_id': parseInt (id), - }; + const request = {}; // support for canceling conditional orders // https://github.com/ccxt/ccxt/issues/6669 const options = this.safeValue (this.options, 'cancelOrder', {}); @@ -1251,8 +1301,8 @@ module.exports = class ftx extends Exchange { await this.loadMarkets (); const request = { // 'market': market['id'], // optional - 'conditionalOrdersOnly': false, // cancel conditional orders only - 'limitOrdersOnly': false, // cancel existing limit orders (non-conditional orders) only + // 'conditionalOrdersOnly': false, // cancel conditional orders only + // 'limitOrdersOnly': false, // cancel existing limit orders (non-conditional orders) only }; const marketId = this.getMarketId (symbol, 'market', params); if (marketId !== undefined) { @@ -1421,6 +1471,7 @@ module.exports = class ftx extends Exchange { } if (since !== undefined) { request['start_time'] = parseInt (since / 1000); + request['end_time'] = this.seconds (); } const response = await this.privateGetFills (this.extend (request, params)); // @@ -1610,6 +1661,15 @@ module.exports = class ftx extends Exchange { // "txid": "0x8078356ae4b06a036d64747546c274af19581f1c78c510b60505798a7ffcaf1" // } // + // { + // "coin": 'BTC', + // "id": 1969806, + // "notes": 'Transfer to Dd6gi7m2Eg4zzBbPAxuwfEaHs6tYvyUX5hbPpsTcNPXo', + // "size": 0.003, + // "status": 'complete', + // "time": '2021-02-03T20:28:54.918146+00:00' + // } + // const code = this.safeCurrencyCode (this.safeString (transaction, 'coin')); const id = this.safeString (transaction, 'id'); const amount = this.safeFloat (transaction, 'size'); @@ -1622,8 +1682,14 @@ module.exports = class ftx extends Exchange { tag = this.safeString (address, 'tag'); address = this.safeString (address, 'address'); } + if (address === undefined) { + // parse address from internal transfer + const notes = this.safeString (transaction, 'notes'); + if (notes !== undefined) { + address = notes.slice (12); + } + } const fee = this.safeFloat (transaction, 'fee'); - const type = ('destinationName' in transaction) ? 'withdrawal' : 'deposit'; return { 'info': transaction, 'id': id, @@ -1636,7 +1702,7 @@ module.exports = class ftx extends Exchange { 'tagFrom': undefined, 'tag': tag, 'tagTo': tag, - 'type': type, + 'type': undefined, 'amount': amount, 'currency': code, 'status': status, @@ -1674,7 +1740,7 @@ module.exports = class ftx extends Exchange { if (code !== undefined) { currency = this.currency (code); } - return this.parseTransactions (result, currency, since, limit); + return this.parseTransactions (result, currency, since, limit, { 'type': 'deposit' }); } async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { @@ -1701,7 +1767,7 @@ module.exports = class ftx extends Exchange { if (code !== undefined) { currency = this.currency (code); } - return this.parseTransactions (result, currency, since, limit); + return this.parseTransactions (result, currency, since, limit, { 'type': 'withdrawal' }); } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/gateio.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/gateio.js index d03f929d8..f0835c774 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/gateio.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/gateio.js @@ -167,6 +167,7 @@ module.exports = class gateio extends Exchange { 'BOX': 'DefiBox', 'BTCBEAR': 'BEAR', 'BTCBULL': 'BULL', + 'SBTC': 'Super Bitcoin', 'TNC': 'Trinity Network Credit', }, }); @@ -690,6 +691,7 @@ module.exports = class gateio extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -730,7 +732,7 @@ module.exports = class gateio extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires symbol argument'); } await this.loadMarkets (); const request = { @@ -753,13 +755,13 @@ module.exports = class gateio extends Exchange { if ((address !== undefined) && (address.indexOf ('address') >= 0)) { throw new InvalidAddress (this.id + ' queryDepositAddress ' + address); } - if (code === 'XRP') { + if ((code === 'XRP') || (code === 'HBAR') || (code === 'STEEM') || (code === 'XLM') || (code === 'EOS')) { const parts = address.split (' '); address = parts[0]; tag = parts[1]; } return { - 'currency': currency, + 'currency': code, 'address': address, 'tag': tag, 'info': response, @@ -786,7 +788,7 @@ module.exports = class gateio extends Exchange { async fetchOrderTrades (id, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrderTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -800,7 +802,7 @@ module.exports = class gateio extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -882,21 +884,21 @@ module.exports = class gateio extends Exchange { // withdrawal // // { - // 'id': 'w5864259', - // 'currency': 'ETH', - // 'address': '0x72632f462....', - // 'amount': '0.4947', - // 'txid': '0x111167d120f736....', - // 'timestamp': '1553123688', - // 'status': 'DONE', - // 'type': 'withdrawal' - // } + // "id": "w6754336", + // "fee": "0.1", + // "txid": "zzyy", + // "amount": "1", + // "status": "DONE", + // "address": "tz11234", + // "currency": "XTZ", + // "timestamp": "1561030206" + // } // const currencyId = this.safeString (transaction, 'currency'); const code = this.safeCurrencyCode (currencyId, currency); const id = this.safeString (transaction, 'id'); const txid = this.safeString (transaction, 'txid'); - const amount = this.safeFloat (transaction, 'amount'); + let amount = this.safeFloat (transaction, 'amount'); let address = this.safeString (transaction, 'address'); if (address === 'false') { address = undefined; @@ -904,6 +906,17 @@ module.exports = class gateio extends Exchange { const timestamp = this.safeTimestamp (transaction, 'timestamp'); const status = this.parseTransactionStatus (this.safeString (transaction, 'status')); const type = this.parseTransactionType (id[0]); + const feeCost = this.safeFloat (transaction, 'fee'); + let fee = undefined; + if (feeCost !== undefined) { + fee = { + 'currency': code, + 'cost': feeCost, + }; + if (amount !== undefined) { + amount = amount - feeCost; + } + } return { 'info': transaction, 'id': id, @@ -916,7 +929,7 @@ module.exports = class gateio extends Exchange { 'type': type, 'timestamp': timestamp, 'datetime': this.iso8601 (timestamp), - 'fee': undefined, + 'fee': fee, }; } diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/gemini.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/gemini.js index a0894c364..6f28ef220 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/gemini.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/gemini.js @@ -669,6 +669,7 @@ module.exports = class gemini extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -732,7 +733,7 @@ module.exports = class gemini extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/gopax.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/gopax.js new file mode 100644 index 000000000..e3150163a --- /dev/null +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/gopax.js @@ -0,0 +1,1347 @@ +'use strict'; + +// --------------------------------------------------------------------------- + +const Exchange = require ('./base/Exchange'); +const { ExchangeError, InvalidOrder, AuthenticationError, InsufficientFunds, BadSymbol, OrderNotFound, InvalidAddress, BadRequest } = require ('./base/errors'); +const { TRUNCATE, ROUND, TICK_SIZE } = require ('./base/functions/number'); + +// --------------------------------------------------------------------------- + +module.exports = class gopax extends Exchange { + describe () { + return this.deepExtend (super.describe (), { + 'id': 'gopax', + 'name': 'GOPAX', + 'countries': [ 'KR' ], // South Korea + 'version': 'v1', + 'rateLimit': 50, + 'hostname': 'gopax.co.kr', // or 'gopax.com' + 'certified': true, + 'pro': true, + 'has': { + 'cancelOrder': true, + 'createMarketOrder': true, + 'createOrder': true, + 'fetchBalance': true, + 'fetchCurrencies': true, + 'fetchDepositAddress': 'emulated', + 'fetchDepositAddresses': true, + 'fetchMarkets': true, + 'fetchMyTrades': true, + 'fetchOHLCV': true, + 'fetchOpenOrders': true, + 'fetchOrder': true, + 'fetchOrderBook': true, + 'fetchOrders': true, + 'fetchTicker': true, + 'fetchTickers': true, + 'fetchTime': true, + 'fetchTrades': true, + 'fetchTransactions': true, + }, + 'timeframes': { + '1m': '1', + '5m': '5', + '30m': '30', + '1d': '1440', + }, + 'urls': { + 'logo': 'https://user-images.githubusercontent.com/1294454/102897212-ae8a5e00-4478-11eb-9bab-91507c643900.jpg', + 'api': { + 'public': 'https://api.{hostname}', // or 'https://api.gopax.co.kr' + 'private': 'https://api.{hostname}', + }, + 'www': 'https://www.gopax.co.kr', + 'doc': 'https://gopax.github.io/API/index.en.html', + 'fees': 'https://www.gopax.com/feeinfo', + }, + 'api': { + 'public': { + 'get': [ + 'notices', + 'assets', + 'price-tick-size', + 'trading-pairs', + 'trading-pairs/{tradingPair}/ticker', + 'trading-pairs/{tradingPair}/book', + 'trading-pairs/{tradingPair}/trades', + 'trading-pairs/{tradingPair}/stats', + 'trading-pairs/{tradingPair}/price-tick-size', + 'trading-pairs/stats', + 'trading-pairs/{tradingPair}/candles', + 'time', + ], + }, + 'private': { + 'get': [ + 'balances', + 'balances/{assetName}', + 'orders', + 'orders/{orderId}', + 'orders/clientOrderId/{clientOrderId}', + 'trades', + 'deposit-withdrawal-status', + 'crypto-deposit-addresses', + 'crypto-withdrawal-addresses', + ], + 'post': [ + 'orders', + ], + 'delete': [ + 'orders/{orderId}', + 'orders/clientOrderId/{clientOrderId}', + ], + }, + }, + 'fees': { + 'trading': { + 'percentage': true, + 'tierBased': false, + 'maker': 0.04 / 100, + 'taker': 0.04 / 100, + }, + }, + 'exceptions': { + 'broad': { + 'ERROR_INVALID_ORDER_TYPE': InvalidOrder, + 'ERROR_INVALID_AMOUNT': InvalidOrder, + 'ERROR_INVALID_TRADING_PAIR': BadSymbol, // Unlikely to be triggered, due to ccxt.gopax.js implementation + 'No such order ID': OrderNotFound, // {"errorMessage":"No such order ID","errorCode":202,"errorData":"Order server error: 202"} + // 'Not enough amount': InsufficientFunds, // {"errorMessage":"Not enough amount, try increasing your order amount","errorCode":10212,"errorData":{}} + 'Forbidden order type': InvalidOrder, + 'the client order ID will be reusable which order has already been completed or canceled': InvalidOrder, + 'ERROR_NO_SUCH_TRADING_PAIR': BadSymbol, // Unlikely to be triggered, due to ccxt.gopax.js implementation + 'ERROR_INVALID_ORDER_SIDE': InvalidOrder, + 'ERROR_NOT_HEDGE_TOKEN_USER': InvalidOrder, + 'ORDER_EVENT_ERROR_NOT_ALLOWED_BID_ORDER': InvalidOrder, // Triggered only when the exchange is locked + 'ORDER_EVENT_ERROR_INSUFFICIENT_BALANCE': InsufficientFunds, + 'Invalid option combination': InvalidOrder, + 'No such client order ID': OrderNotFound, + }, + 'exact': { + '100': BadSymbol, // Invalid asset name + '101': BadSymbol, // Invalid trading pair + '103': InvalidOrder, // Invalid order type + '104': BadSymbol, // Invalid trading pair + '105': BadSymbol, // Trading pair temporarily disabled + '106': BadSymbol, // Invalid asset name + '107': InvalidOrder, // Invalid order amount + '108': InvalidOrder, // Invalid order price + '111': InvalidOrder, // Invalid event type + '201': InsufficientFunds, // Not enough balance + '202': InvalidOrder, // Invalid order ID + '203': InvalidOrder, // Order amount X order price too large + '204': InvalidOrder, // Bid order temporarily unavailable + '205': InvalidOrder, // Invalid side + '206': InvalidOrder, // Invalid order option combination + '10004': AuthenticationError, // Not authorized + // '10004': ExchangeError, // API key not exist + // '10004': ExchangeError, // User KYC not approved + // '10004': ExchangeError, // User account is frozen + // '10004': ExchangeError, // User is under deactivation process + // '10004': ExchangeError, // 2FA is not enabled + // '10004': ExchangeError, // Invalid signature + '10041': BadRequest, // Invalid exchange + '10056': BadRequest, // No registered asset + '10057': BadSymbol, // No registered trading pair + '10059': BadSymbol, // Invalid trading pair + '10062': BadRequest, // Invalid chart interval + '10069': OrderNotFound, // {"errorMessage":"No such order ID: 73152094","errorCode":10069,"errorData":"73152094"} + '10155': AuthenticationError, // {"errorMessage":"Invalid API key","errorCode":10155} + '10166': BadRequest, // Invalid chart range + '10212': InvalidOrder, // {"errorMessage":"Not enough amount, try increasing your order amount","errorCode":10212,"errorData":{}} + '10221': OrderNotFound, // No such client order ID + '10222': InvalidOrder, // Client order ID being used + '10223': InvalidOrder, // Soon the client order ID will be reusable which order has already been completed or canceled + '10227': InvalidOrder, // Invalid client order ID format + '10319': BadRequest, // Pagination is required as you have too many orders + '10358': InvalidOrder, // Invalid order type + '10359': InvalidOrder, // Invalid order side + '10360': InvalidOrder, // Invalid order status + '10361': InvalidOrder, // Invalid order time in force + '10362': InvalidOrder, // Invalid order protection + '10363': InvalidOrder, // Invalid forced completion reason + }, + }, + 'options': { + 'createMarketBuyOrderRequiresPrice': true, + }, + }); + } + + async fetchTime (params = {}) { + const response = await this.publicGetTime (params); + // + // {"serverTime":1608327726656} + // + return this.safeInteger (response, 'serverTime'); + } + + async fetchMarkets (params = {}) { + const response = await this.publicGetTradingPairs (params); + // + // [ + // { + // "id":1, + // "name":"ETH-KRW", + // "baseAsset":"ETH", + // "quoteAsset":"KRW", + // "baseAssetScale":8, + // "quoteAssetScale":0, + // "priceMin":1, + // "restApiOrderAmountMin":{ + // "limitAsk":{"amount":10000,"unit":"KRW"}, + // "limitBid":{"amount":10000,"unit":"KRW"}, + // "marketAsk":{"amount":0.001,"unit":"ETH"}, + // "marketBid":{"amount":10000,"unit":"KRW"}, + // }, + // "makerFeePercent":0.2, + // "takerFeePercent":0.2, + // }, + // ] + // + const result = []; + for (let i = 0; i < response.length; i++) { + const market = response[i]; + const id = this.safeString (market, 'name'); + const numericId = this.safeInteger (market, 'id'); + const baseId = this.safeString (market, 'baseAsset'); + const quoteId = this.safeString (market, 'quoteAsset'); + const base = this.safeCurrencyCode (baseId); + const quote = this.safeCurrencyCode (quoteId); + const symbol = base + '/' + quote; + const precision = { + 'price': this.safeInteger (market, 'quoteAssetScale'), + 'amount': this.safeInteger (market, 'baseAssetScale'), + }; + const minimums = this.safeValue (market, 'restApiOrderAmountMin', {}); + const marketAsk = this.safeValue (minimums, 'marketAsk', {}); + const marketBid = this.safeValue (minimums, 'marketBid', {}); + const takerFeePercent = this.safeFloat (market, 'takerFeePercent'); + const makerFeePercent = this.safeFloat (market, 'makerFeePercent'); + const taker = parseFloat (this.decimalToPrecision (takerFeePercent / 100, ROUND, 0.00000001, TICK_SIZE)); + const maker = parseFloat (this.decimalToPrecision (makerFeePercent / 100, ROUND, 0.00000001, TICK_SIZE)); + result.push ({ + 'id': id, + 'info': market, + 'numericId': numericId, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'baseId': this.safeString (market, 'baseAsset'), + 'quoteId': this.safeString (market, 'quoteAsset'), + 'active': true, + 'taker': taker, + 'maker': maker, + 'precision': precision, + 'limits': { + 'amount': { + 'min': this.safeFloat (marketAsk, 'amount'), + 'max': undefined, + }, + 'price': { + 'min': this.safeFloat (market, 'priceMin'), + 'max': undefined, + }, + 'cost': { + 'min': this.safeFloat (marketBid, 'amount'), + 'max': undefined, + }, + }, + }); + } + return result; + } + + async fetchCurrencies (params = {}) { + const response = await this.publicGetAssets (params); + // + // [ + // { + // "id":"KRW", + // "name":"대한민국 원", + // "scale":0, + // "withdrawalFee":1000, + // "withdrawalAmountMin":5000 + // }, + // { + // "id":"ETH", + // "name":"이더리움", + // "scale":8, + // "withdrawalFee":0.03, + // "withdrawalAmountMin":0.015 + // }, + // ] + // + const result = {}; + for (let i = 0; i < response.length; i++) { + const currency = response[i]; + const id = this.safeString (currency, 'id'); + const code = this.safeCurrencyCode (id); + const name = this.safeString (currency, 'name'); + const fee = this.safeFloat (currency, 'withdrawalFee'); + const precision = this.safeFloat (currency, 'scale'); + result[code] = { + 'id': id, + 'info': currency, + 'code': code, + 'name': name, + 'active': true, + 'fee': fee, + 'precision': precision, + 'limits': { + 'amount': { + 'min': undefined, + 'max': undefined, + }, + 'price': { + 'min': undefined, + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + 'withdraw': { + 'min': this.safeFloat (currency, 'withdrawalAmountMin'), + 'max': undefined, + }, + }, + }; + } + return result; + } + + async fetchOrderBook (symbol, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'tradingPair': market['id'], + // 'level': 3, // 1 best bidask, 2 top 50 bidasks, 3 all bidasks + }; + const response = await this.publicGetTradingPairsTradingPairBook (this.extend (request, params)); + // + // { + // "sequence":17691957, + // "bid":[ + // ["17690499",25019000,0.00008904,"1608326468921"], + // ["17691894",25010000,0.4295,"1608326499940"], + // ["17691895",25009000,0.2359,"1608326499953"], + // ], + // "ask":[ + // ["17689176",25024000,0.000098,"1608326442006"], + // ["17691351",25031000,0.206,"1608326490418"], + // ["17691571",25035000,0.3996,"1608326493742"], + // ] + // } + // + const nonce = this.safeInteger (response, 'sequence'); + const result = this.parseOrderBook (response, undefined, 'bid', 'ask', 1, 2); + result['nonce'] = nonce; + return result; + } + + parseTicker (ticker, market = undefined) { + // + // fetchTicker + // + // { + // "price":25087000, + // "ask":25107000, + // "askVolume":0.05837704, + // "bid":25087000, + // "bidVolume":0.00398628, + // "volume":350.09171591, + // "quoteVolume":8721016926.06529, + // "time":"2020-12-18T21:42:13.774Z", + // } + // + // fetchTickers + // + // { + // "name":"ETH-KRW", + // "open":690500, + // "high":719500, + // "low":681500, + // "close":709500, + // "volume":2784.6081544, + // "time":"2020-12-18T21:54:50.795Z" + // } + // + const marketId = this.safeString (ticker, 'name'); + const symbol = this.safeSymbol (marketId, market, '-'); + const timestamp = this.parse8601 (this.safeString (ticker, 'time')); + const open = this.safeFloat (ticker, 'open'); + const last = this.safeFloat2 (ticker, 'price', 'close'); + let change = undefined; + let percentage = undefined; + let average = undefined; + if ((last !== undefined) && (open !== undefined)) { + average = this.sum (last, open) / 2; + change = last - open; + if (open > 0) { + percentage = change / open * 100; + } + } + const baseVolume = this.safeFloat (ticker, 'volume'); + const quoteVolume = this.safeFloat (ticker, 'quoteVolume'); + const vwap = this.vwap (baseVolume, quoteVolume); + return { + 'symbol': symbol, + 'info': ticker, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'high': this.safeFloat (ticker, 'high'), + 'low': this.safeFloat (ticker, 'low'), + 'bid': this.safeFloat (ticker, 'bid'), + 'bidVolume': this.safeFloat (ticker, 'bidVolume'), + 'ask': this.safeFloat (ticker, 'ask'), + 'askVolume': this.safeFloat (ticker, 'askVolume'), + 'vwap': vwap, + 'open': open, + 'close': last, + 'last': last, + 'previousClose': undefined, + 'change': change, + 'percentage': percentage, + 'average': average, + 'baseVolume': baseVolume, + 'quoteVolume': quoteVolume, + }; + } + + async fetchTicker (symbol, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'tradingPair': market['id'], + }; + const response = await this.publicGetTradingPairsTradingPairTicker (this.extend (request, params)); + // + // { + // "price":25087000, + // "ask":25107000, + // "askVolume":0.05837704, + // "bid":25087000, + // "bidVolume":0.00398628, + // "volume":350.09171591, + // "quoteVolume":8721016926.06529, + // "time":"2020-12-18T21:42:13.774Z", + // } + // + return this.parseTicker (response, market); + } + + parseTickers (rawTickers, symbols = undefined) { + const tickers = []; + for (let i = 0; i < rawTickers.length; i++) { + tickers.push (this.parseTicker (rawTickers[i])); + } + return this.filterByArray (tickers, 'symbol', symbols); + } + + async fetchTickers (symbols = undefined, params = {}) { + await this.loadMarkets (); + const response = await this.publicGetTradingPairsStats (params); + // + // [ + // { + // "name":"ETH-KRW", + // "open":690500, + // "high":719500, + // "low":681500, + // "close":709500, + // "volume":2784.6081544, + // "time":"2020-12-18T21:54:50.795Z" + // } + // ] + // + return this.parseTickers (response, symbols); + } + + parsePublicTrade (trade, market = undefined) { + const timestamp = this.parse8601 (this.safeString (trade, 'time')); + const price = this.safeFloat (trade, 'price'); + const amount = this.safeFloat (trade, 'amount'); + let symbol = undefined; + if ('symbol' in market) { + symbol = this.safeString (market, 'symbol'); + } + return { + 'info': trade, + 'id': this.safeString (trade, 'id'), + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'symbol': symbol, + 'order': undefined, // Not mandatory to specify + 'type': undefined, // Not mandatory to specify + 'side': this.safeString (trade, 'side'), + 'takerOrMaker': undefined, + 'price': price, + 'amount': amount, + 'cost': price * amount, + 'fee': undefined, + }; + } + + parsePrivateTrade (trade, market = undefined) { + const timestamp = this.parse8601 (this.safeString (trade, 'timestamp')); + const symbol = this.safeString (trade, 'tradingPairName').replace ('-', '/'); + const side = this.safeString (trade, 'side'); + const price = this.safeFloat (trade, 'price'); + const amount = this.safeFloat (trade, 'baseAmount'); + let feeCurrency = symbol.slice (0, 3); + if (side === 'sell') { + feeCurrency = symbol.slice (4); + } + const fee = { + 'cost': this.safeFloat (trade, 'fee'), + 'currency': feeCurrency, + 'rate': undefined, + }; + return { + 'info': trade, + 'id': this.safeString (trade, 'id'), + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'symbol': symbol, + 'order': this.safeInteger (trade, 'orderId'), + 'type': undefined, + 'side': side, + 'takerOrMaker': this.safeString (trade, 'position'), + 'price': price, + 'amount': amount, + 'cost': price * amount, + 'fee': fee, + }; + } + + parseTrade (trade, market = undefined) { + // + // public fetchTrades + // + // { + // "time":"2020-12-19T12:17:43.000Z", + // "date":1608380263, + // "id":23903608, + // "price":25155000, + // "amount":0.0505, + // "side":"sell", + // } + // + // private fetchMyTrades + // + // { + // "id": 73953, // trading event ID + // "orderId": 453324, // order ID + // "baseAmount": 3, // traded base asset amount + // "quoteAmount": 3000000, // traded quote asset amount + // "fee": 0.0012, // fee + // "price": 1000000, // price + // "timestamp": "2020-09-25T04:06:30.000Z", // trading time + // "side": "buy", // buy, sell + // "tradingPairName": "ZEC-KRW", // order book + // "position": "maker" // maker, taker + // } + // + // { + // "tradeId": 74072, // trade ID + // "orderId": 453529, // order ID + // "side": 2, // 1(bid), 2(ask) + // "type": 1, // 1(limit), 2(market) + // "baseAmount": 0.01, // filled base asset amount (in ZEC for this case) + // "quoteAmount": 1, // filled quote asset amount (in KRW for this case) + // "fee": 0.0004, // fee + // "price": 100, // price + // "isSelfTrade": false, // whether both of matching orders are yours + // "occurredAt": 1603932107, // trade occurrence time + // "tradingPairName": "ZEC-KRW" // order book + // } + // + const id = this.safeString2 (trade, 'id', 'tradeId'); + const orderId = this.safeInteger (trade, 'orderId'); + let timestamp = this.parse8601 (this.safeString2 (trade, 'time', 'timestamp')); + timestamp = this.safeTimestamp (trade, 'occuredAt', timestamp); + const marketId = this.safeString (trade, 'tradingPairName'); + market = this.safeMarket (marketId, market, '-'); + const symbol = market['symbol']; + let side = this.safeString (trade, 'side'); + if (side === '1') { + side = 'buy'; + } else if (side === '2') { + side = 'sell'; + } + let type = this.safeString (trade, 'type'); + if (type === '1') { + type = 'limit'; + } else if (type === '2') { + type = 'market'; + } + const price = this.safeFloat (trade, 'price'); + const amount = this.safeFloat2 (trade, 'amount', 'baseAmount'); + let cost = this.safeFloat (trade, 'quoteAmount'); + if (cost === undefined) { + if ((price !== undefined) && (amount !== undefined)) { + cost = price * amount; + } + } + const feeCost = this.safeFloat (trade, 'fee'); + let fee = undefined; + if (feeCost !== undefined) { + fee = { + 'cost': feeCost, + 'currency': market['base'], + }; + } + const takerOrMaker = this.safeString (trade, 'position'); + return { + 'info': trade, + 'id': id, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'symbol': symbol, + 'order': orderId, + 'type': undefined, + 'side': side, + 'takerOrMaker': takerOrMaker, + 'price': price, + 'amount': amount, + 'cost': cost, + 'fee': fee, + }; + } + + async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'tradingPair': market['id'], + // 'limit': limit, + // 'pastmax': id, // read data older than this ID + // 'latestmin': id, // read data newer than this ID + // 'after': parseInt (since / 1000), + // 'before': this.seconds (), + }; + if (since !== undefined) { + request['after'] = parseInt (since / 1000); + } + if (limit !== undefined) { + request['limit'] = limit; + } + const response = await this.publicGetTradingPairsTradingPairTrades (this.extend (request, params)); + // + // [ + // {"time":"2020-12-19T12:17:43.000Z","date":1608380263,"id":23903608,"price":25155000,"amount":0.0505,"side":"sell"}, + // {"time":"2020-12-19T12:17:13.000Z","date":1608380233,"id":23903604,"price":25140000,"amount":0.019,"side":"sell"}, + // {"time":"2020-12-19T12:16:49.000Z","date":1608380209,"id":23903599,"price":25140000,"amount":0.0072,"side":"sell"}, + // ] + // + return this.parseTrades (response, market, since, limit); + } + + parseOHLCV (ohlcv, market = undefined) { + // + // [ + // 1606780800000, // timestamp + // 21293000, // low + // 21300000, // high + // 21294000, // open + // 21300000, // close + // 1.019126, // volume + // ] + // + return [ + this.safeInteger (ohlcv, 0), + this.safeFloat (ohlcv, 3), + this.safeFloat (ohlcv, 2), + this.safeFloat (ohlcv, 1), + this.safeFloat (ohlcv, 4), + this.safeFloat (ohlcv, 5), + ]; + } + + async fetchOHLCV (symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + limit = (limit === undefined) ? 1024 : limit; // default 1024 + const request = { + 'tradingPair': market['id'], + // 'start': since, + // 'end': this.milliseconds (), + 'interval': this.timeframes[timeframe], + }; + const duration = this.parseTimeframe (timeframe); + if (since === undefined) { + const end = this.milliseconds (); + request['end'] = end; + request['start'] = end - limit * duration * 1000; + } else { + request['start'] = since; + request['end'] = this.sum (since, limit * duration * 1000); + } + const response = await this.publicGetTradingPairsTradingPairCandles (this.extend (request, params)); + // + // [ + // [1606780800000,21293000,21300000,21294000,21300000,1.019126], + // [1606780860000,21237000,21293000,21293000,21263000,0.96800057], + // [1606780920000,21240000,21240000,21240000,21240000,0.11068715], + // ] + // + return this.parseOHLCVs (response, market, timeframe, since, limit); + } + + parseBalanceResponse (response) { + const result = { 'info': response }; + for (let i = 0; i < response.length; i++) { + const balance = response[i]; + const currencyId = this.safeString2 (balance, 'asset', 'isoAlpha3'); + const code = this.safeCurrencyCode (currencyId); + const hold = this.safeFloat (balance, 'hold'); + const pendingWithdrawal = this.safeFloat (balance, 'pendingWithdrawal'); + const account = this.account (); + account['free'] = this.safeFloat (balance, 'avail'); + account['used'] = this.sum (hold, pendingWithdrawal); + result[code] = account; + } + return this.parseBalance (result); + } + + async fetchBalance (params = {}) { + await this.loadMarkets (); + const response = await this.privateGetBalances (params); + // + // [ + // { + // "asset": "KRW", // asset name + // "avail": 1759466.76, // available amount to place order + // "hold": 16500, // outstanding amount on order books + // "pendingWithdrawal": 0, // amount being withdrawn + // "lastUpdatedAt": "1600684352032", // balance last update time + // }, + // ] + // + return this.parseBalanceResponse (response); + } + + parseOrderStatus (status) { + const statuses = { + 'placed': 'open', + 'cancelled': 'canceled', + 'completed': 'closed', + 'updated': 'open', + 'reserved': 'open', + }; + return this.safeString (statuses, status, status); + } + + parseOrder (order, market = undefined) { + // + // cancelOrder + // + // {} // empty object + // + // fetchOrder, fetchOrders, fetchOpenOrders, createOrder + // + // { + // "id": "453324", // order ID + // "clientOrderId": "zeckrw23456", // client order ID (showed only when it exists) + // "status": "updated", // placed, cancelled, completed, updated, reserved + // "forcedCompletionReason": undefined, // the reason in case it was canceled in the middle (protection or timeInForce) + // "tradingPairName": "ZEC-KRW", // order book + // "side": "buy", // buy, sell + // "type": "limit", // limit, market + // "price": 1000000, // price + // "stopPrice": undefined, // stop price (showed only for stop orders) + // "amount": 4, // initial amount + // "remaining": 1, // outstanding amount + // "protection": "yes", // whether protection is activated (yes or no) + // "timeInForce": "gtc", // limit order's time in force (gtc/po/ioc/fok) + // "createdAt": "2020-09-25T04:06:20.000Z", // order placement time + // "updatedAt": "2020-09-25T04:06:29.000Z", // order last update time + // "balanceChange": { + // "baseGross": 3, // base asset balance's gross change (in ZEC for this case) + // "baseFee": { + // "taking": 0, // base asset fee imposed as taker + // "making": -0.0012 // base asset fee imposed as maker + // }, + // "baseNet": 2.9988, // base asset balance's net change (in ZEC for this case) + // "quoteGross": -3000000, // quote asset balance's gross change (in KRW for + // "quoteFee": { + // "taking": 0, // quote asset fee imposed as taker + // "making": 0 // quote asset fee imposed as maker + // }, + // "quoteNet": -3000000 // quote asset balance's net change (in KRW for this case) + // } + // } + // + const id = this.safeString (order, 'id'); + const clientOrderId = this.safeString (order, 'clientOrderId'); + const timestamp = this.parse8601 (this.safeString (order, 'createdAt')); + const type = this.safeString (order, 'type'); + const side = this.safeString (order, 'side'); + const timeInForce = this.safeStringUpper (order, 'timeInForce'); + const price = this.safeFloat (order, 'price'); + const amount = this.safeFloat (order, 'amount'); + const stopPrice = this.safeFloat (order, 'stopPrice'); + const remaining = this.safeFloat (order, 'remaining'); + const marketId = this.safeString (order, 'tradingPairName'); + market = this.safeMarket (marketId, market, '-'); + const status = this.parseOrderStatus (this.safeString (order, 'status')); + const balanceChange = this.safeValue (order, 'balanceChange', {}); + let filled = this.safeFloat (balanceChange, 'baseNet'); + let cost = this.safeFloat (balanceChange, 'quoteNet'); + if (cost !== undefined) { + cost = Math.abs (cost); + } + let updated = undefined; + if ((filled === undefined) && (amount !== undefined) && (remaining !== undefined)) { + filled = Math.max (0, amount - remaining); + } + if ((filled !== undefined) && (filled > 0)) { + updated = this.parse8601 (this.safeString (order, 'updatedAt')); + } + if ((cost === undefined) && (price !== undefined) && (filled !== undefined)) { + cost = filled * price; + } + let fee = undefined; + if (side === 'buy') { + const baseFee = this.safeValue (balanceChange, 'baseFee', {}); + const taking = this.safeFloat (baseFee, 'taking'); + const making = this.safeFloat (baseFee, 'making'); + fee = { + 'currency': market['base'], + 'cost': this.sum (taking, making), + }; + } else { + const quoteFee = this.safeValue (balanceChange, 'quoteFee', {}); + const taking = this.safeFloat (quoteFee, 'taking'); + const making = this.safeFloat (quoteFee, 'making'); + fee = { + 'currency': market['quote'], + 'cost': this.sum (taking, making), + }; + } + let postOnly = undefined; + if (timeInForce !== undefined) { + postOnly = (timeInForce === 'PO'); + } + return { + 'id': id, + 'clientOrderId': clientOrderId, + 'datetime': this.iso8601 (timestamp), + 'timestamp': timestamp, + 'lastTradeTimestamp': updated, + 'status': status, + 'symbol': market['symbol'], + 'type': type, + 'timeInForce': timeInForce, + 'postOnly': postOnly, + 'side': side, + 'price': price, + 'stopPrice': stopPrice, + 'average': undefined, + 'amount': amount, + 'filled': filled, + 'remaining': remaining, + 'cost': cost, + 'trades': undefined, + 'fee': fee, + 'info': order, + }; + } + + async fetchOrder (id, symbol = undefined, params = {}) { + await this.loadMarkets (); + let method = undefined; + const clientOrderId = this.safeString (params, 'clientOrderId'); + params = this.omit (params, 'clientOrderId'); + const request = {}; + if (clientOrderId === undefined) { + method = 'privateGetOrdersOrderId'; + request['orderId'] = id; + } else { + method = 'privateGetOrdersClientOrderIdClientOrderId'; + request['clientOrderId'] = clientOrderId; + } + const response = await this[method] (this.extend (request, params)); + // + // { + // "id": "453324", // order ID + // "clientOrderId": "zeckrw23456", // client order ID (showed only when it exists) + // "status": "updated", // placed, cancelled, completed, updated, reserved + // "forcedCompletionReason": undefined, // the reason in case it was canceled in the middle (protection or timeInForce) + // "tradingPairName": "ZEC-KRW", // order book + // "side": "buy", // buy, sell + // "type": "limit", // limit, market + // "price": 1000000, // price + // "stopPrice": undefined, // stop price (showed only for stop orders) + // "amount": 4, // initial amount + // "remaining": 1, // outstanding amount + // "protection": "yes", // whether protection is activated (yes or no) + // "timeInForce": "gtc", // limit order's time in force (gtc/po/ioc/fok) + // "createdAt": "2020-09-25T04:06:20.000Z", // order placement time + // "updatedAt": "2020-09-25T04:06:29.000Z", // order last update time + // "balanceChange": { + // "baseGross": 3, // base asset balance's gross change (in ZEC for this case) + // "baseFee": { + // "taking": 0, // base asset fee imposed as taker + // "making": -0.0012 // base asset fee imposed as maker + // }, + // "baseNet": 2.9988, // base asset balance's net change (in ZEC for this case) + // "quoteGross": -3000000, // quote asset balance's gross change (in KRW for + // "quoteFee": { + // "taking": 0, // quote asset fee imposed as taker + // "making": 0 // quote asset fee imposed as maker + // }, + // "quoteNet": -3000000 // quote asset balance's net change (in KRW for this case) + // } + // } + // + return this.parseOrder (response); + } + + async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + 'includePast': 'true', // if true, completed and canceled orders are included as the result, they are accessible for one hour only from its completion or cancellation time + // 'pagination': 'false', // if the result is more than 3,000 orders, set this value as true to access 1000 orders at max per each page + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + } + const response = await this.privateGetOrders (this.extend (request, params)); + // + // [ + // { + // "id": "453324", // order ID + // "clientOrderId": "zeckrw23456", // client order ID (showed only when it exists) + // "status": "updated", // placed, cancelled, completed, updated, reserved + // "forcedCompletionReason": undefined, // the reason in case it was canceled in the middle (protection or timeInForce) + // "tradingPairName": "ZEC-KRW", // order book + // "side": "buy", // buy, sell + // "type": "limit", // limit, market + // "price": 1000000, // price + // "stopPrice": undefined, // stop price (showed only for stop orders) + // "amount": 4, // initial amount + // "remaining": 1, // outstanding amount + // "protection": "yes", // whether protection is activated (yes or no) + // "timeInForce": "gtc", // limit order's time in force (gtc/po/ioc/fok) + // "createdAt": "2020-09-25T04:06:20.000Z", // order placement time + // "updatedAt": "2020-09-25T04:06:29.000Z", // order last update time + // "balanceChange": { + // "baseGross": 3, // base asset balance's gross change (in ZEC for this case) + // "baseFee": { + // "taking": 0, // base asset fee imposed as taker + // "making": -0.0012 // base asset fee imposed as maker + // }, + // "baseNet": 2.9988, // base asset balance's net change (in ZEC for this case) + // "quoteGross": -3000000, // quote asset balance's gross change (in KRW for + // "quoteFee": { + // "taking": 0, // quote asset fee imposed as taker + // "making": 0 // quote asset fee imposed as maker + // }, + // "quoteNet": -3000000 // quote asset balance's net change (in KRW for this case) + // } + // }, + // ] + // + return this.parseOrders (response, market, since, limit); + } + + async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const request = { + 'includePast': 'false', + }; + return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); + } + + async createOrder (symbol, type, side, amount, price = undefined, params = {}) { + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + // 'clientOrderId': 'test4321', // max 20 characters of [a-zA-Z0-9_-] + 'tradingPairName': market['id'], + 'side': side, // buy, sell + 'type': type, // limit, market + // 'price': this.priceToPrecision (symbol, price), + // 'stopPrice': this.priceToPrecision (symbol, stopPrice), // optional, becomes a stop order if set + // 'amount': this.amountToPrecision (symbol, amount), + // 'protection': 'no', // whether protection is activated + // 'timeInForce': 'gtc', // gtc, po, ioc, fok + }; + if (type === 'limit') { + request['price'] = this.priceToPrecision (symbol, price); + request['amount'] = this.amountToPrecision (symbol, amount); + } else if (type === 'market') { + // for market buy it requires the amount of quote currency to spend + if (side === 'buy') { + let total = amount; + const createMarketBuyOrderRequiresPrice = this.safeValue (this.options, 'createMarketBuyOrderRequiresPrice', true); + if (createMarketBuyOrderRequiresPrice) { + if (price === undefined) { + throw new InvalidOrder (this.id + " createOrder() requires the price argument with market buy orders to calculate total order cost (amount to spend), where cost = amount * price. Supply a price argument to createOrder() call if you want the cost to be calculated for you from price and amount, or, alternatively, add .options['createMarketBuyOrderRequiresPrice'] = false and supply the total cost value in the 'amount' argument"); + } + total = price * amount; + } + const precision = market['precision']['price']; + request['amount'] = this.decimalToPrecision (total, TRUNCATE, precision, this.precisionMode); + } else { + request['amount'] = this.amountToPrecision (symbol, amount); + } + } + const clientOrderId = this.safeString (params, 'clientOrderId'); + if (clientOrderId !== undefined) { + request['clientOrderId'] = clientOrderId; + params = this.omit (params, 'clientOrderId'); + } + const stopPrice = this.safeFloat (params, 'stopPrice'); + if (stopPrice !== undefined) { + request['stopPrice'] = this.priceToPrecision (symbol, stopPrice); + params = this.omit (params, 'stopPrice'); + } + const timeInForce = this.safeStringLower (params, 'timeInForce'); + if (timeInForce !== undefined) { + request['timeInForce'] = timeInForce; + params = this.omit (params, 'timeInForce'); + } + const response = await this.privatePostOrders (this.extend (request, params)); + // + // { + // "id": "453327", // order ID + // "clientOrderId": "test4321", // client order ID (showed only when it exists) + // "status": "reserved", // placed, cancelled, completed, updated, reserved + // "forcedCompletionReason": undefined, // the reason in case it was canceled in the middle (protection or timeInForce) + // "tradingPairName": "BCH-KRW", // order book + // "side": "sell", // buy, sell + // "type": "limit", // limit, market + // "price": 11000000, // price + // "stopPrice": 12000000, // stop price (showed only for stop orders) + // "amount": 0.5, // initial amount + // "remaining": 0.5, // outstanding amount + // "protection": "no", // whether protection is activated (yes or no) + // "timeInForce": "gtc", // limit order's time in force (gtc/po/ioc/fok) + // "createdAt": "2020-09-25T04:51:31.000Z", // order placement time + // "balanceChange": { + // "baseGross": 0, // base asset balance's gross change (in BCH for this case) + // "baseFee": { + // "taking": 0, // base asset fee imposed as taker + // "making": 0 // base asset fee imposed as maker + // }, + // "baseNet": 0, // base asset balance's net change (in BCH for this case) + // "quoteGross": 0, // quote asset balance's gross change (in KRW for + // "quoteFee": { + // "taking": 0, // quote asset fee imposed as taker + // "making": 0 // quote asset fee imposed as maker + // }, + // "quoteNet": 0 // quote asset balance's net change (in KRW for this case) + // } + // } + // + return this.parseOrder (response, market); + } + + async cancelOrder (id, symbol = undefined, params = {}) { + await this.loadMarkets (); + const request = {}; + const clientOrderId = this.safeString (params, 'clientOrderId'); + let method = undefined; + if (clientOrderId === undefined) { + method = 'privateDeleteOrdersOrderId'; + request['orderId'] = id; + } else { + method = 'privateDeleteOrdersClientOrderIdClientOrderId'; + request['clientOrderId'] = clientOrderId; + params = this.omit (params, 'clientOrderId'); + } + const response = await this[method] (this.extend (request, params)); + // + // {} + // + const order = this.parseOrder (response); + return this.extend (order, { 'id': id }); + } + + async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'limit': limit, // max 100 + // 'pastmax': id, // read data older than this id + // 'latestmin': id, // read data newer than this id + // 'after': parseInt (since / 1000), // Read data after this timestamp in seconds + // 'before': this.seconds (), // Read data before this timestamp in seconds + 'deepSearch': 'true', // read data older than one month ago are inclusively looked up only when it is "true" + }; + if (since !== undefined) { + request['after'] = parseInt (since / 1000); + } + if (limit !== undefined) { + request['limit'] = limit; + } + const response = await this.privateGetTrades (this.extend (request, params)); + // + // [ + // { + // "id": 73953, // trading event ID + // "orderId": 453324, // order ID + // "baseAmount": 3, // traded base asset amount + // "quoteAmount": 3000000, // traded quote asset amount + // "fee": 0.0012, // fee + // "price": 1000000, // price + // "timestamp": "2020-09-25T04:06:30.000Z", // trading time + // "side": "buy", // buy, sell + // "tradingPairName": "ZEC-KRW", // order book + // "position": "maker" // maker, taker + // }, + // ] + // + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + } + return this.parseTrades (response, market, since, limit); + } + + parseDepositAddress (depositAddress, currency = undefined) { + // + // { + // "asset": "BTC", // asset name + // "address": "1CwC2cMFu1jRQUBtw925cENbT1kctJBMdm", // deposit address + // "memoId": null, // memo ID (showed only for assets using memo ID) + // "createdAt": 1594802312 // deposit address creation time + // } + // + const address = this.safeString (depositAddress, 'address'); + const tag = this.safeString (depositAddress, 'memoId'); + const currencyId = this.safeString (depositAddress, 'asset'); + const code = this.safeCurrencyCode (currencyId); + this.checkAddress (address); + return { + 'currency': code, + 'address': address, + 'tag': tag, + 'info': depositAddress, + }; + } + + parseDepositAddresses (addresses, codes = undefined) { + let result = []; + for (let i = 0; i < addresses.length; i++) { + const address = this.parseDepositAddress (addresses[i]); + result.push (address); + } + if (codes) { + result = this.filterByArray (result, 'currency', codes); + } + return this.indexBy (result, 'currency'); + } + + async fetchDepositAddresses (codes = undefined, params = {}) { + await this.loadMarkets (); + const response = await this.privateGetCryptoDepositAddresses (params); + // + // [ + // { + // "asset": "BTC", // asset name + // "address": "1CwC2cMFu1jRQUBtw925cENbT1kctJBMdm", // deposit address + // "memoId": null, // memo ID (showed only for assets using memo ID) + // "createdAt": 1594802312 // deposit address creation time + // }, + // ] + // + return this.parseDepositAddresses (response, codes); + } + + async fetchDepositAddress (code, params = {}) { + await this.loadMarkets (); + const response = await this.fetchDepositAddresses (undefined, params); + const address = this.safeValue (response, code); + if (address === undefined) { + throw new InvalidAddress (this.id + ' fetchDepositAddress() ' + code + ' address not found'); + } + return address; + } + + parseTransactionStatus (status) { + const statuses = { + 'reviewing': 'pending', + 'rejected': 'rejected', + 'processing': 'pending', + 'failed': 'failed', + 'completed': 'ok', + }; + return this.safeString (statuses, status, status); + } + + parseTransaction (transaction, currency = undefined) { + // + // { + // "id": 640, // deposit/withdrawal event ID + // "asset": "BTC", // asset name + // "type": "crypto_withdrawal", // fiat_withdrawal, fiat_deposit, crypto_withdrawal, crypto_deposit + // "netAmount": 0.0001, // amount + // "feeAmount": 0.0005, // fee (null if there is no imposed fee) + // "status": "completed", // reviewing, rejected, processing, failed, completed + // "reviewStartedAt": 1595556218, // request time + // "completedAt": 1595556902, // completion time (showed only in case of completed) + // "txId": "eaca5ad3...", // tx ID + // "sourceAddress": null, // sender address (showed only in case of crypto_deposit) + // "destinationAddress: "3H8...", // recipient address (showed only in case of crypto_withdrawal) + // "destinationMemoId": null // recipient address's memo ID + // } + // + const id = this.safeString (transaction, 'id'); + const txid = this.safeString (transaction, 'txId'); + const currencyId = this.safeString (transaction, 'asset'); + const code = this.safeCurrencyCode (currencyId, currency); + let type = this.safeString (transaction, 'type'); + if ((type === 'crypto_withdrawal') || (type === 'fiat_withdrawal')) { + type = 'withdrawal'; + } else if ((type === 'crypto_deposit' || type === 'fiat_deposit')) { + type = 'deposit'; + } + const amount = this.safeFloat (transaction, 'netAmount'); + const feeCost = this.safeFloat (transaction, 'feeAmount'); + let fee = undefined; + if (feeCost !== undefined) { + fee = { + 'cost': feeCost, + 'currency': code, + }; + } + const timestamp = this.safeTimestamp (transaction, 'reviewStartedAt'); + const updated = this.safeTimestamp (transaction, 'completedAt'); + const addressFrom = this.safeString (transaction, 'sourceAddress'); + const addressTo = this.safeString (transaction, 'destinationAddress'); + const tagFrom = this.safeString (transaction, 'sourceMemoId'); + const tagTo = this.safeString (transaction, 'destinationMemoId'); + const status = this.parseTransactionStatus (this.safeString (transaction, 'status')); + return { + 'info': transaction, + 'id': id, + 'txid': txid, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'addressFrom': addressFrom, + 'address': addressTo, + 'addressTo': addressTo, + 'tagFrom': tagFrom, + 'tag': tagTo, + 'tagTo': tagTo, + 'type': type, + 'amount': amount, + 'currency': code, + 'status': status, + 'updated': updated, + 'comment': undefined, + 'fee': fee, + }; + } + + async fetchTransactions (code = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'limit': limit, // max 20 + // 'latestmin': limit, // read data older than this id + // 'after': this.milliseconds (), + // 'before': since, + // 'completedOnly': 'no', + }; + if (since !== undefined) { + request['before'] = since; + } + if (limit !== undefined) { + request['limit'] = limit; + } + const response = await this.privateGetDepositWithdrawalStatus (this.extend (request, params)); + // + // [ + // { + // "id": 640, // deposit/withdrawal event ID + // "asset": "BTC", // asset name + // "type": "crypto_withdrawal", // fiat_withdrawal, fiat_deposit, crypto_withdrawal, crypto_deposit + // "netAmount": 0.0001, // amount + // "feeAmount": 0.0005, // fee (null if there is no imposed fee) + // "status": "completed", // reviewing, rejected, processing, failed, completed + // "reviewStartedAt": 1595556218, // request time + // "completedAt": 1595556902, // completion time (showed only in case of completed) + // "txId": "eaca5ad3...", // tx ID + // "sourceAddress": null, // sender address (showed only in case of crypto_deposit) + // "destinationAddress: "3H8...", // recipient address (showed only in case of crypto_withdrawal) + // "destinationMemoId": null // recipient address's memo ID + // }, + // ] + // + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + } + return this.parseTransactions (response, currency, since, limit, params); + } + + nonce () { + return this.milliseconds (); + } + + sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { // for authentication in private API calls + const endpoint = '/' + this.implodeParams (path, params); + let url = this.implodeParams (this.urls['api'][api], { 'hostname': this.hostname }) + endpoint; + const query = this.omit (params, this.extractParams (path)); + if (api === 'public') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } else if (api === 'private') { + this.checkRequiredCredentials (); + const timestamp = this.nonce ().toString (); + let auth = 't' + timestamp + method + endpoint; + headers = { + 'api-key': this.apiKey, + 'timestamp': timestamp, + }; + if (method === 'POST') { + headers['Content-Type'] = 'application/json'; + body = this.json (params); + auth += body; + } else if (endpoint === '/orders') { + if (Object.keys (query).length) { + const urlQuery = '?' + this.urlencode (query); + auth += urlQuery; + url += urlQuery; + } + } else if (method === 'GET') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } + const rawSecret = this.base64ToBinary (this.secret); + const signature = this.hmac (this.encode (auth), rawSecret, 'sha512', 'base64'); + headers['signature'] = signature; + } + return { 'url': url, 'method': method, 'body': body, 'headers': headers }; + } + + handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { + if (response === undefined) { + return; + } + // + // {"errorMessage":"Invalid API key","errorCode":10155} + // + if (!Array.isArray (response)) { + const errorCode = this.safeString (response, 'errorCode'); + const errorMessage = this.safeString (response, 'errorMessage'); + const feedback = this.id + ' ' + body; + if (errorMessage !== undefined) { + this.throwBroadlyMatchedException (this.exceptions['broad'], body, feedback); + } + if (errorCode !== undefined) { + this.throwExactlyMatchedException (this.exceptions['exact'], errorCode, feedback); + } + if ((errorCode !== undefined) || (errorMessage !== undefined)) { + throw new ExchangeError (feedback); + } + } + } +}; diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/hbtc.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/hbtc.js index d7bde5c6c..d819c3d77 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/hbtc.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/hbtc.js @@ -841,7 +841,7 @@ module.exports = class hbtc extends Exchange { method = 'optionGetMyTrades'; } else { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a `symbol` argument for ' + type + ' markets'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a `symbol` argument for ' + type + ' markets'); } const market = this.market (symbol); request['symbol'] = market['id']; @@ -1954,6 +1954,7 @@ module.exports = class hbtc extends Exchange { 'NEW': 'open', 'CANCELED': 'canceled', 'FILLED': 'closed', + 'PARTIALLY_FILLED': 'open', 'PENDING_CANCEL': 'canceled', }; return this.safeString (statuses, status, status); diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/hitbtc.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/hitbtc.js index 0ec19ca80..b66392816 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/hitbtc.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/hitbtc.js @@ -59,6 +59,10 @@ module.exports = class hitbtc extends Exchange { }, 'urls': { 'logo': 'https://user-images.githubusercontent.com/1294454/27766555-8eaec20e-5edc-11e7-9c5b-6dc69fc42f5e.jpg', + 'test': { + 'public': 'https://api.demo.hitbtc.com', + 'private': 'https://api.demo.hitbtc.com', + }, 'api': { 'public': 'https://api.hitbtc.com', 'private': 'https://api.hitbtc.com', @@ -160,6 +164,7 @@ module.exports = class hitbtc extends Exchange { 'LNC': 'LinkerCoin', 'PLA': 'PlayChip', 'PNT': 'Penta', + 'SBTC': 'Super Bitcoin', 'TV': 'Tokenville', 'USD': 'USDT', 'XPNT': 'PNT', @@ -797,22 +802,44 @@ module.exports = class hitbtc extends Exchange { // // createMarketOrder // - // { clientOrderId: "fe36aa5e190149bf9985fb673bbb2ea0", - // createdAt: "2018-10-25T16:41:44.780Z", - // cumQuantity: "1", - // id: "66799540063", - // quantity: "1", - // side: "sell", - // status: "filled", - // symbol: "XRPUSDT", - // timeInForce: "FOK", - // tradesReport: [ { fee: "0.0004644", - // id: 386394956, - // price: "0.4644", - // quantity: "1", - // timestamp: "2018-10-25T16:41:44.780Z" } ], - // type: "market", - // updatedAt: "2018-10-25T16:41:44.780Z" } + // { + // clientOrderId: "fe36aa5e190149bf9985fb673bbb2ea0", + // createdAt: "2018-10-25T16:41:44.780Z", + // cumQuantity: "1", + // id: "66799540063", + // quantity: "1", + // side: "sell", + // status: "filled", + // symbol: "XRPUSDT", + // timeInForce: "FOK", + // tradesReport: [ + // { + // fee: "0.0004644", + // id: 386394956, + // price: "0.4644", + // quantity: "1", + // timestamp: "2018-10-25T16:41:44.780Z" + // } + // ], + // type: "market", + // updatedAt: "2018-10-25T16:41:44.780Z" + // } + // + // { + // "id": 119499457455, + // "clientOrderId": "87baab109d58401b9202fa0749cb8288", + // "symbol": "ETHUSD", + // "side": "buy", + // "status": "filled", + // "type": "market", + // "timeInForce": "FOK", + // "quantity": "0.0007", + // "price": "181.487", + // "avgPrice": "164.989", + // "cumQuantity": "0.0007", + // "createdAt": "2019-04-17T13:27:38.062Z", + // "updatedAt": "2019-04-17T13:27:38.062Z" + // } // const created = this.parse8601 (this.safeString (order, 'createdAt')); const updated = this.parse8601 (this.safeString (order, 'updatedAt')); @@ -842,7 +869,7 @@ module.exports = class hitbtc extends Exchange { const side = this.safeString (order, 'side'); let trades = this.safeValue (order, 'tradesReport'); let fee = undefined; - let average = undefined; + let average = this.safeValue (order, 'avgPrice'); if (trades !== undefined) { trades = this.parseTrades (trades, market); let feeCost = undefined; @@ -861,7 +888,9 @@ module.exports = class hitbtc extends Exchange { } cost = tradesCost; if ((filled !== undefined) && (filled > 0)) { - average = cost / filled; + if (average === undefined) { + average = cost / filled; + } if (type === 'market') { if (price === undefined) { price = average; diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/hollaex.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/hollaex.js index 47b127d50..52e81fec3 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/hollaex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/hollaex.js @@ -520,7 +520,7 @@ module.exports = class hollaex extends Exchange { const duration = this.parseTimeframe (timeframe); if (since === undefined) { if (limit === undefined) { - throw new ArgumentsRequired (this.id + " fetchOHLCV requires a 'since' or a 'limit' argument"); + throw new ArgumentsRequired (this.id + " fetchOHLCV() requires a 'since' or a 'limit' argument"); } else { const end = this.seconds (); const start = end - duration * limit; @@ -702,6 +702,7 @@ module.exports = class hollaex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/huobipro.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/huobipro.js index 62edb18d3..52dc315e8 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/huobipro.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/huobipro.js @@ -98,6 +98,7 @@ module.exports = class huobipro extends Exchange { 'user/api-key', // 母子用户API key信息查询 ], 'post': [ + 'account/transfer', 'point/transfer', // 点卡划转 'sub-user/management', // 冻结/解冻子用户 'sub-user/creation', // 子用户创建 @@ -195,9 +196,14 @@ module.exports = class huobipro extends Exchange { }, }, 'exceptions': { + 'broad': { + 'contract is restricted of closing positions on API. Please contact customer service': OnMaintenance, + 'maintain': OnMaintenance, + }, 'exact': { // err-code 'bad-request': BadRequest, + 'base-date-limit-error': BadRequest, // {"status":"error","err-code":"base-date-limit-error","err-msg":"date less than system limit","data":null} 'api-not-support-temp-addr': PermissionDenied, // {"status":"error","err-code":"api-not-support-temp-addr","err-msg":"API withdrawal does not support temporary addresses","data":null} 'timeout': RequestTimeout, // {"ts":1571653730865,"status":"error","err-code":"timeout","err-msg":"Request Timeout"} 'gateway-internal-error': ExchangeNotAvailable, // {"status":"error","err-code":"gateway-internal-error","err-msg":"Failed to load data. Try again later.","data":null} @@ -208,6 +214,8 @@ module.exports = class huobipro extends Exchange { 'order-marketorder-amount-min-error': InvalidOrder, // market order amount error, min: `0.01` 'order-limitorder-price-min-error': InvalidOrder, // limit order price error 'order-limitorder-price-max-error': InvalidOrder, // limit order price error + 'order-holding-limit-failed': InvalidOrder, // {"status":"error","err-code":"order-holding-limit-failed","err-msg":"Order failed, exceeded the holding limit of this currency","data":null} + 'order-orderprice-precision-error': InvalidOrder, // {"status":"error","err-code":"order-orderprice-precision-error","err-msg":"order price precision error, scale: `4`","data":null} 'order-orderstate-error': OrderNotFound, // canceling an already canceled order 'order-queryorder-invalid': OrderNotFound, // querying a non-existent order 'order-update-error': ExchangeNotAvailable, // undocumented error @@ -243,6 +251,7 @@ module.exports = class huobipro extends Exchange { // https://coinmarketcap.com/currencies/penta/markets/ // https://en.cryptonomist.ch/blog/eidoo/the-edo-to-pnt-upgrade-what-you-need-to-know-updated/ 'PNT': 'Penta', + 'SBTC': 'Super Bitcoin', }, }); } @@ -675,7 +684,8 @@ module.exports = class huobipro extends Exchange { request['size'] = limit; // 1-100 orders, default is 100 } if (since !== undefined) { - request['start-date'] = this.ymd (since); // maximum query window size is 2 days, query window shift should be within past 120 days + request['start-date'] = this.ymd (since); // a date within 61 days from today + request['end-date'] = this.ymd (this.sum (since, 86400000)); } const response = await this.privateGetOrderMatchresults (this.extend (request, params)); const trades = this.parseTrades (response['data'], market, since, limit); @@ -943,7 +953,7 @@ module.exports = class huobipro extends Exchange { async fetchOpenOrdersV1 (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrdersV1 requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrdersV1() requires a symbol argument'); } return await this.fetchOrdersByStates ('pre-submitted,submitted,partial-filled', symbol, since, limit, params); } @@ -955,7 +965,7 @@ module.exports = class huobipro extends Exchange { async fetchOpenOrdersV2 (symbol = undefined, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } const market = this.market (symbol); let accountId = this.safeString (params, 'account-id'); @@ -1105,6 +1115,7 @@ module.exports = class huobipro extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -1484,6 +1495,7 @@ module.exports = class huobipro extends Exchange { if (status === 'error') { const code = this.safeString (response, 'err-code'); const feedback = this.id + ' ' + body; + this.throwBroadlyMatchedException (this.exceptions['broad'], body, feedback); this.throwExactlyMatchedException (this.exceptions['exact'], code, feedback); const message = this.safeString (response, 'err-msg'); this.throwExactlyMatchedException (this.exceptions['exact'], message, feedback); diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/ice3x.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/ice3x.js index 42e54b79f..f228076d1 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/ice3x.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/ice3x.js @@ -225,7 +225,7 @@ module.exports = class ice3x extends Exchange { const type = this.safeString (params, 'type'); if ((type !== 'ask') && (type !== 'bid')) { // eslint-disable-next-line quotes - throw new ArgumentsRequired (this.id + " fetchOrderBook requires an exchange-specific extra 'type' param ('bid' or 'ask') when used with a limit"); + throw new ArgumentsRequired (this.id + " fetchOrderBook() requires an exchange-specific extra 'type' param ('bid' or 'ask') when used with a limit"); } else { request['items_per_page'] = limit; } @@ -345,6 +345,7 @@ module.exports = class ice3x extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': this.safeString (order, 'type'), 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/idex.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/idex.js index d70fa94f4..7d52a5286 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/idex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/idex.js @@ -56,8 +56,8 @@ module.exports = class idex extends Exchange { }, 'logo': 'https://user-images.githubusercontent.com/51840849/94481303-2f222100-01e0-11eb-97dd-bc14c5943a86.jpg', 'api': { - 'public': 'https://api.idex.io', - 'private': 'https://api.idex.io', + 'ETH': 'https://api-eth.idex.io', + 'BSC': 'https://api-bsc.idex.io', }, 'www': 'https://idex.io', 'doc': [ @@ -103,6 +103,7 @@ module.exports = class idex extends Exchange { 'options': { 'defaultTimeInForce': 'gtc', 'defaultSelfTradePrevention': 'cn', + 'network': 'ETH', // also supports BSC }, 'exceptions': { 'INVALID_ORDER_QUANTITY': InvalidOrder, @@ -822,16 +823,8 @@ module.exports = class idex extends Exchange { const type = this.safeString (order, 'type'); const amount = this.safeFloat (order, 'originalQuantity'); const filled = this.safeFloat (order, 'executedQuantity'); - let remaining = undefined; - if ((amount !== undefined) && (filled !== undefined)) { - remaining = amount - filled; - } const average = this.safeFloat (order, 'avgExecutionPrice'); - const price = this.safeFloat (order, 'price', average); // for market orders - let cost = undefined; - if ((amount !== undefined) && (price !== undefined)) { - cost = amount * price; - } + const price = this.safeFloat (order, 'price'); const rawStatus = this.safeString (order, 'status'); const status = this.parseOrderStatus (rawStatus); const fee = { @@ -845,7 +838,7 @@ module.exports = class idex extends Exchange { fee['cost'] = this.sum (fee['cost'], lastTrade['fee']['cost']); } const lastTradeTimestamp = this.safeInteger (lastTrade, 'timestamp'); - return { + return this.safeOrder ({ 'info': order, 'id': id, 'clientOrderId': clientOrderId, @@ -855,18 +848,19 @@ module.exports = class idex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, 'amount': amount, - 'cost': cost, + 'cost': undefined, 'average': average, 'filled': filled, - 'remaining': remaining, + 'remaining': undefined, 'status': status, 'fee': fee, 'trades': trades, - }; + }); } async associateWallet (walletAddress, params = {}) { @@ -943,7 +937,8 @@ module.exports = class idex extends Exchange { } const sideEnum = (side === 'buy') ? 0 : 1; const walletBytes = this.remove0xPrefix (this.walletAddress); - const orderVersion = 1; + const network = this.safeString (this.options, 'network', 'ETH'); + const orderVersion = (network === 'ETH') ? 1 : 2; const amountString = this.amountToPrecision (symbol, amount); // https://docs.idex.io/#time-in-force const timeInForceEnums = { @@ -1272,8 +1267,9 @@ module.exports = class idex extends Exchange { } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { + const network = this.safeString (this.options, 'network', 'ETH'); const version = this.safeString (this.options, 'version', 'v1'); - let url = this.urls['api'][api] + '/' + version + '/' + path; + let url = this.urls['api'][network] + '/' + version + '/' + path; const keys = Object.keys (params); const length = keys.length; let query = undefined; diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/independentreserve.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/independentreserve.js index 30f75d9a6..119a216d5 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/independentreserve.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/independentreserve.js @@ -287,6 +287,7 @@ module.exports = class independentreserve extends Exchange { 'symbol': symbol, 'type': orderType, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -394,10 +395,13 @@ module.exports = class independentreserve extends Exchange { cost = price * amount; } } - let symbol = undefined; - if (market !== undefined) { - symbol = market['symbol']; + const baseId = this.safeString (trade, 'PrimaryCurrencyCode'); + const quoteId = this.safeString (trade, 'SecondaryCurrencyCode'); + let marketId = undefined; + if ((baseId !== undefined) && (quoteId !== undefined)) { + marketId = baseId + '/' + quoteId; } + const symbol = this.safeSymbol (marketId, market, '/'); let side = this.safeString (trade, 'OrderType'); if (side !== undefined) { if (side.indexOf ('Bid') >= 0) { diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/indodax.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/indodax.js index 30457eca2..f1cc33732 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/indodax.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/indodax.js @@ -399,6 +399,7 @@ module.exports = class indodax extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -415,7 +416,7 @@ module.exports = class indodax extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol'); } await this.loadMarkets (); const market = this.market (symbol); @@ -462,7 +463,7 @@ module.exports = class indodax extends Exchange { async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const request = {}; @@ -506,11 +507,11 @@ module.exports = class indodax extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } const side = this.safeValue (params, 'side'); if (side === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires an extra "side" param'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires an extra "side" param'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/itbit.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/itbit.js index f26cf47eb..552bb0de5 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/itbit.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/itbit.js @@ -268,7 +268,7 @@ module.exports = class itbit extends Exchange { await this.loadMarkets (); const walletId = this.safeString (params, 'walletId'); if (walletId === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a walletId parameter'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a walletId parameter'); } const request = { 'walletId': walletId, @@ -337,7 +337,7 @@ module.exports = class itbit extends Exchange { await this.loadMarkets (); const walletId = this.safeString (params, 'walletId'); if (walletId === undefined) { - throw new ExchangeError (this.id + ' fetchMyTrades requires a walletId parameter'); + throw new ExchangeError (this.id + ' fetchMyTrades() requires a walletId parameter'); } const request = { 'walletId': walletId, @@ -427,7 +427,7 @@ module.exports = class itbit extends Exchange { async fetchWallets (params = {}) { await this.loadMarkets (); if (!this.uid) { - throw new AuthenticationError (this.id + ' fetchWallets requires uid API credential'); + throw new AuthenticationError (this.id + ' fetchWallets() requires uid API credential'); } const request = { 'userId': this.uid, @@ -465,7 +465,7 @@ module.exports = class itbit extends Exchange { } const walletIdInParams = ('walletId' in params); if (!walletIdInParams) { - throw new ExchangeError (this.id + ' fetchOrders requires a walletId parameter'); + throw new ExchangeError (this.id + ' fetchOrders() requires a walletId parameter'); } const walletId = params['walletId']; const request = { @@ -529,6 +529,8 @@ module.exports = class itbit extends Exchange { } const clientOrderId = this.safeString (order, 'clientOrderIdentifier'); const id = this.safeString (order, 'id'); + const postOnlyString = this.safeString (order, 'postOnly'); + const postOnly = (postOnlyString === 'True'); return { 'id': id, 'clientOrderId': clientOrderId, @@ -540,6 +542,7 @@ module.exports = class itbit extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': undefined, @@ -565,7 +568,7 @@ module.exports = class itbit extends Exchange { } const walletIdInParams = ('walletId' in params); if (!walletIdInParams) { - throw new ExchangeError (this.id + ' createOrder requires a walletId parameter'); + throw new ExchangeError (this.id + ' createOrder() requires a walletId parameter'); } amount = amount.toString (); price = price.toString (); @@ -590,7 +593,7 @@ module.exports = class itbit extends Exchange { await this.loadMarkets (); const walletIdInParams = ('walletId' in params); if (!walletIdInParams) { - throw new ExchangeError (this.id + ' fetchOrder requires a walletId parameter'); + throw new ExchangeError (this.id + ' fetchOrder() requires a walletId parameter'); } const request = { 'id': id, @@ -602,7 +605,7 @@ module.exports = class itbit extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { const walletIdInParams = ('walletId' in params); if (!walletIdInParams) { - throw new ExchangeError (this.id + ' cancelOrder requires a walletId parameter'); + throw new ExchangeError (this.id + ' cancelOrder() requires a walletId parameter'); } const request = { 'id': id, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/kraken.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/kraken.js index 78e997c6d..198ee4cf8 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/kraken.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/kraken.js @@ -3,7 +3,7 @@ // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { BadSymbol, ExchangeNotAvailable, ArgumentsRequired, PermissionDenied, AuthenticationError, ExchangeError, OrderNotFound, DDoSProtection, InvalidNonce, InsufficientFunds, CancelPending, InvalidOrder, InvalidAddress } = require ('./base/errors'); +const { BadSymbol, ExchangeNotAvailable, ArgumentsRequired, PermissionDenied, AuthenticationError, ExchangeError, OrderNotFound, DDoSProtection, InvalidNonce, InsufficientFunds, CancelPending, InvalidOrder, InvalidAddress, RateLimitExceeded } = require ('./base/errors'); const { TRUNCATE, DECIMAL_PLACES } = require ('./base/functions/number'); // --------------------------------------------------------------------------- @@ -19,6 +19,7 @@ module.exports = class kraken extends Exchange { 'certified': true, 'pro': true, 'has': { + 'cancelAllOrders': true, 'cancelOrder': true, 'CORS': false, 'createDepositAddress': true, @@ -179,6 +180,7 @@ module.exports = class kraken extends Exchange { 'AddOrder', 'AddExport', 'Balance', + 'CancelAll', 'CancelOrder', 'ClosedOrders', 'DepositAddresses', @@ -206,6 +208,7 @@ module.exports = class kraken extends Exchange { }, 'commonCurrencies': { 'XBT': 'BTC', + 'XBT.M': 'BTC.M', // https://support.kraken.com/hc/en-us/articles/360039879471-What-is-Asset-S-and-Asset-M- 'XDG': 'DOGE', 'REPV2': 'REP', 'REP': 'REPV1', @@ -349,13 +352,17 @@ module.exports = class kraken extends Exchange { return result; } - safeCurrencyCode (currencyId, currency = undefined) { + safeCurrency (currencyId, currency = undefined) { if (currencyId.length > 3) { if ((currencyId.indexOf ('X') === 0) || (currencyId.indexOf ('Z') === 0)) { - currencyId = currencyId.slice (1); + if (currencyId.indexOf ('.') > 0) { + return super.safeCurrency (currencyId, currency); + } else { + currencyId = currencyId.slice (1); + } } } - return super.safeCurrencyCode (currencyId, currency); + return super.safeCurrency (currencyId, currency); } appendInactiveMarkets (result) { @@ -820,7 +827,7 @@ module.exports = class kraken extends Exchange { let amount = undefined; let cost = undefined; let id = undefined; - let order = undefined; + let orderId = undefined; let fee = undefined; let symbol = undefined; if (Array.isArray (trade)) { @@ -844,7 +851,7 @@ module.exports = class kraken extends Exchange { // delisted market ids go here market = this.getDelistedMarketById (marketId); } - order = trade['ordertxid']; + orderId = this.safeString (trade, 'ordertxid'); id = this.safeString2 (trade, 'id', 'postxid'); timestamp = this.safeTimestamp (trade, 'time'); side = this.safeString (trade, 'type'); @@ -872,7 +879,7 @@ module.exports = class kraken extends Exchange { } return { 'id': id, - 'order': order, + 'order': orderId, 'info': trade, 'timestamp': timestamp, 'datetime': this.iso8601 (timestamp), @@ -935,6 +942,7 @@ module.exports = class kraken extends Exchange { } async fetchBalance (params = {}) { + await this.loadMarkets (); const response = await this.privatePostBalance (params); const balances = this.safeValue (response, 'result', {}); const result = { 'info': balances }; @@ -959,18 +967,50 @@ module.exports = class kraken extends Exchange { 'volume': this.amountToPrecision (symbol, amount), }; const clientOrderId = this.safeString2 (params, 'userref', 'clientOrderId'); - const query = this.omit (params, [ 'userref', 'clientOrderId' ]); + params = this.omit (params, [ 'userref', 'clientOrderId' ]); if (clientOrderId !== undefined) { request['userref'] = clientOrderId; } - const priceIsDefined = (price !== undefined); - const marketOrder = (type === 'market'); - const limitOrder = (type === 'limit'); - const shouldIncludePrice = limitOrder || (!marketOrder && priceIsDefined); - if (shouldIncludePrice) { + // + // market + // limit (price = limit price) + // stop-loss (price = stop loss price) + // take-profit (price = take profit price) + // stop-loss-limit (price = stop loss trigger price, price2 = triggered limit price) + // take-profit-limit (price = take profit trigger price, price2 = triggered limit price) + // settle-position + // + if (type === 'limit') { request['price'] = this.priceToPrecision (symbol, price); + } else if ((type === 'stop-loss') || (type === 'take-profit')) { + const stopPrice = this.safeFloat2 (params, 'price', 'stopPrice', price); + if (stopPrice === undefined) { + throw new ArgumentsRequired (this.id + ' createOrder() requires a price argument or a price/stopPrice parameter for a ' + type + ' order'); + } else { + request['price'] = this.priceToPrecision (symbol, stopPrice); + } + } else if ((type === 'stop-loss-limit') || (type === 'take-profit-limit')) { + const stopPrice = this.safeFloat2 (params, 'price', 'stopPrice'); + const limitPrice = this.safeFloat (params, 'price2'); + const stopPriceDefined = (stopPrice !== undefined); + const limitPriceDefined = (limitPrice !== undefined); + if (stopPriceDefined && limitPriceDefined) { + request['price'] = this.priceToPrecision (symbol, stopPrice); + request['price2'] = this.priceToPrecision (symbol, limitPrice); + } else if ((price === undefined) || (!(stopPriceDefined || limitPriceDefined))) { + throw new ArgumentsRequired (this.id + ' createOrder() requires a price argument and/or price/stopPrice/price2 parameters for a ' + type + ' order'); + } else { + if (stopPriceDefined) { + request['price'] = this.priceToPrecision (symbol, stopPrice); + request['price2'] = this.priceToPrecision (symbol, price); + } else if (limitPriceDefined) { + request['price'] = this.priceToPrecision (symbol, price); + request['price2'] = this.priceToPrecision (symbol, limitPrice); + } + } } - const response = await this.privatePostAddOrder (this.extend (request, query)); + params = this.omit (params, [ 'price', 'stopPrice', 'price2' ]); + const response = await this.privatePostAddOrder (this.extend (request, params)); // // { // error: [], @@ -1133,6 +1173,7 @@ module.exports = class kraken extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -1199,8 +1240,11 @@ module.exports = class kraken extends Exchange { // } // } // - const orders = this.safeValue (response, 'result', []); - const order = this.parseOrder (this.extend ({ 'id': id }, orders[id])); + const result = this.safeValue (response, 'result', []); + if (!(id in result)) { + throw new OrderNotFound (this.id + ' fetchOrder() could not find order id ' + id); + } + const order = this.parseOrder (this.extend ({ 'id': id }, result[id])); return this.extend ({ 'info': response }, order); } @@ -1208,7 +1252,7 @@ module.exports = class kraken extends Exchange { const orderTrades = this.safeValue (params, 'trades'); const tradeIds = []; if (orderTrades === undefined) { - throw new ArgumentsRequired (this.id + " fetchOrderTrades requires a unified order structure in the params argument or a 'trades' param (an array of trade id strings)"); + throw new ArgumentsRequired (this.id + " fetchOrderTrades() requires a unified order structure in the params argument or a 'trades' param (an array of trade id strings)"); } else { for (let i = 0; i < orderTrades.length; i++) { const orderTrade = orderTrades[i]; @@ -1357,6 +1401,11 @@ module.exports = class kraken extends Exchange { return response; } + async cancelAllOrders (symbol = undefined, params = {}) { + await this.loadMarkets (); + return await this.privatePostCancelAll (params); + } + async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); const request = {}; @@ -1528,7 +1577,7 @@ module.exports = class kraken extends Exchange { async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { // https://www.kraken.com/en-us/help/api#deposit-status if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchDeposits requires a currency code argument'); + throw new ArgumentsRequired (this.id + ' fetchDeposits() requires a currency code argument'); } await this.loadMarkets (); const currency = this.currency (code); @@ -1571,7 +1620,7 @@ module.exports = class kraken extends Exchange { async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { // https://www.kraken.com/en-us/help/api#withdraw-status if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchWithdrawals requires a currency code argument'); + throw new ArgumentsRequired (this.id + ' fetchWithdrawals() requires a currency code argument'); } await this.loadMarkets (); const currency = this.currency (code); @@ -1662,7 +1711,65 @@ module.exports = class kraken extends Exchange { 'id': response['result'], }; } - throw new ExchangeError (this.id + " withdraw requires a 'key' parameter (withdrawal key name, as set up on your account)"); + throw new ExchangeError (this.id + " withdraw() requires a 'key' parameter (withdrawal key name, as set up on your account)"); + } + + async fetchPositions (symbols = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'txid': 'comma delimited list of transaction ids to restrict output to', + // 'docalcs': false, // whether or not to include profit/loss calculations + // 'consolidation': 'market', // what to consolidate the positions data around, market will consolidate positions based on market pair + }; + const response = await this.privatePostOpenPositions (this.extend (request, params)); + // + // no consolidation + // + // { + // error: [], + // result: { + // 'TGUFMY-FLESJ-VYIX3J': { + // ordertxid: "O3LRNU-ZKDG5-XNCDFR", + // posstatus: "open", + // pair: "ETHUSDT", + // time: 1611557231.4584, + // type: "buy", + // ordertype: "market", + // cost: "28.49800", + // fee: "0.07979", + // vol: "0.02000000", + // vol_closed: "0.00000000", + // margin: "14.24900", + // terms: "0.0200% per 4 hours", + // rollovertm: "1611571631", + // misc: "", + // oflags: "" + // } + // } + // } + // + // consolidation by market + // + // { + // error: [], + // result: [ + // { + // pair: "ETHUSDT", + // positions: "1", + // type: "buy", + // leverage: "2.00000", + // cost: "28.49800", + // fee: "0.07979", + // vol: "0.02000000", + // vol_closed: "0.00000000", + // margin: "14.24900" + // } + // ] + // } + // + const result = this.safeValue (response, 'result'); + // todo unify parsePosition/parsePositions + return result; } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { @@ -1717,6 +1824,12 @@ module.exports = class kraken extends Exchange { if (body.indexOf ('Invalid arguments:volume') >= 0) { throw new InvalidOrder (this.id + ' ' + body); } + if (body.indexOf ('Rate limit exceeded') >= 0) { + throw new RateLimitExceeded (this.id + ' ' + body); + } + if (response === undefined) { + return; + } if (body[0] === '{') { if (typeof response !== 'string') { if ('error' in response) { diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/kucoin.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/kucoin.js index 84a9bebe8..bcb058989 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/kucoin.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/kucoin.js @@ -20,30 +20,31 @@ module.exports = class kucoin extends Exchange { 'comment': 'Platform 2.0', 'has': { 'CORS': false, - 'fetchStatus': true, - 'fetchTime': true, - 'fetchMarkets': true, + 'cancelAllOrders': true, + 'cancelOrder': true, + 'createDepositAddress': true, + 'createOrder': true, + 'fetchAccounts': true, + 'fetchBalance': true, + 'fetchClosedOrders': true, 'fetchCurrencies': true, + 'fetchDepositAddress': true, + 'fetchDeposits': true, + 'fetchFundingFee': true, + 'fetchLedger': true, + 'fetchMarkets': true, + 'fetchMyTrades': true, + 'fetchOHLCV': true, + 'fetchOpenOrders': true, + 'fetchOrder': true, + 'fetchOrderBook': true, + 'fetchStatus': true, 'fetchTicker': true, 'fetchTickers': true, - 'fetchOrderBook': true, - 'fetchOrder': true, - 'fetchClosedOrders': true, - 'fetchOpenOrders': true, - 'fetchDepositAddress': true, - 'createDepositAddress': true, - 'withdraw': true, - 'fetchDeposits': true, - 'fetchWithdrawals': true, - 'fetchBalance': true, + 'fetchTime': true, 'fetchTrades': true, - 'fetchMyTrades': true, - 'createOrder': true, - 'cancelOrder': true, - 'fetchAccounts': true, - 'fetchFundingFee': true, - 'fetchOHLCV': true, - 'fetchLedger': true, + 'fetchWithdrawals': true, + 'withdraw': true, }, 'urls': { 'logo': 'https://user-images.githubusercontent.com/51840849/87295558-132aaf80-c50e-11ea-9801-a2fb0c57c799.jpg', @@ -74,6 +75,7 @@ module.exports = class kucoin extends Exchange { 'symbols', 'markets', 'market/allTickers', + 'market/orderbook/level{level}_{limit}', 'market/orderbook/level{level}', 'market/orderbook/level2', 'market/orderbook/level2_20', @@ -110,6 +112,7 @@ module.exports = class kucoin extends Exchange { 'withdrawals', 'withdrawals/quotas', 'orders', + 'order/client-order/{clientOid}', 'orders/{orderId}', 'limit/orders', 'fills', @@ -125,6 +128,9 @@ module.exports = class kucoin extends Exchange { 'margin/lend/assets', 'margin/market', 'margin/trade/last', + 'stop-order/{orderId}', + 'stop-order', + 'stop-order/queryOrderByClientOid', ], 'post': [ 'accounts', @@ -135,17 +141,23 @@ module.exports = class kucoin extends Exchange { 'orders', 'orders/multi', 'margin/borrow', + 'margin/order', 'margin/repay/all', 'margin/repay/single', 'margin/lend', 'margin/toggle-auto-lend', 'bullet-private', + 'stop-order', ], 'delete': [ 'withdrawals/{withdrawalId}', 'orders', + 'orders/client-order/{clientOid}', 'orders/{orderId}', 'margin/lend/{orderId}', + 'stop-order/cancelOrderByClientOid', + 'stop-order/{orderId}', + 'stop-order/cancel', ], }, }, @@ -236,10 +248,12 @@ module.exports = class kucoin extends Exchange { 'public': { 'GET': { 'status': 'v1', - 'market/orderbook/level{level}': 'v1', 'market/orderbook/level2': 'v2', + 'market/orderbook/level3': 'v2', 'market/orderbook/level2_20': 'v1', 'market/orderbook/level2_100': 'v1', + 'market/orderbook/level{level}': 'v2', + 'market/orderbook/level{level}_{limit}': 'v1', }, }, 'private': { @@ -371,23 +385,23 @@ module.exports = class kucoin extends Exchange { const response = await this.publicGetCurrencies (params); // // { - // "currency": "OMG", - // "name": "OMG", - // "fullName": "OmiseGO", - // "precision": 8, - // "confirms": 12, - // "withdrawalMinSize": "4", - // "withdrawalMinFee": "1.25", - // "isWithdrawEnabled": false, - // "isDepositEnabled": false, - // "isMarginEnabled": false, - // "isDebitEnabled": false + // "currency": "OMG", + // "name": "OMG", + // "fullName": "OmiseGO", + // "precision": 8, + // "confirms": 12, + // "withdrawalMinSize": "4", + // "withdrawalMinFee": "1.25", + // "isWithdrawEnabled": false, + // "isDepositEnabled": false, + // "isMarginEnabled": false, + // "isDebitEnabled": false // } // - const responseData = response['data']; + const data = this.safeValue (response, 'data', []); const result = {}; - for (let i = 0; i < responseData.length; i++) { - const entry = responseData[i]; + for (let i = 0; i < data.length; i++) { + const entry = data[i]; const id = this.safeString (entry, 'currency'); const name = this.safeString (entry, 'fullName'); const code = this.safeCurrencyCode (id); @@ -682,7 +696,10 @@ module.exports = class kucoin extends Exchange { address = address.replace ('bitcoincash:', ''); } const tag = this.safeString (data, 'memo'); - this.checkAddress (address); + if (code !== 'NIM') { + // contains spaces + this.checkAddress (address); + } return { 'info': response, 'currency': code, @@ -699,13 +716,12 @@ module.exports = class kucoin extends Exchange { // BCH {"code":"200000","data":{"address":"bitcoincash:qza3m4nj9rx7l9r0cdadfqxts6f92shvhvr5ls4q7z","memo":""}} // BTC {"code":"200000","data":{"address":"36SjucKqQpQSvsak9A7h6qzFjrVXpRNZhE","memo":""}} const data = this.safeValue (response, 'data', {}); - let address = this.safeString (data, 'address'); - // BCH/BSV is returned with a "bitcoincash:" prefix, which we cut off here and only keep the address - if (address !== undefined) { - address = address.replace ('bitcoincash:', ''); - } + const address = this.safeString (data, 'address'); const tag = this.safeString (data, 'memo'); - this.checkAddress (address); + if (code !== 'NIM') { + // contains spaces + this.checkAddress (address); + } return { 'info': response, 'currency': code, @@ -719,20 +735,22 @@ module.exports = class kucoin extends Exchange { } async fetchOrderBook (symbol, limit = undefined, params = {}) { - const level = this.safeInteger (params, 'level', 2); - let levelLimit = level.toString (); - if (levelLimit === '2') { - if (limit !== undefined) { - if ((limit !== 20) && (limit !== 100)) { - throw new ExchangeError (this.id + ' fetchOrderBook limit argument must be undefined, 20 or 100'); - } - levelLimit += '_' + limit.toString (); - } - } await this.loadMarkets (); const marketId = this.marketId (symbol); - const request = { 'symbol': marketId, 'level': levelLimit }; - const response = await this.publicGetMarketOrderbookLevelLevel (this.extend (request, params)); + const level = this.safeInteger (params, 'level', 2); + const request = { 'symbol': marketId, 'level': level }; + let method = 'publicGetMarketOrderbookLevelLevel'; + if (level === 2) { + if (limit !== undefined) { + if ((limit === 20) || (limit === 100)) { + request['limit'] = limit; + method = 'publicGetMarketOrderbookLevelLevelLimit'; + } else { + throw new ExchangeError (this.id + ' fetchOrderBook limit argument must be undefined, 20 or 100'); + } + } + } + const response = await this[method] (this.extend (request, params)); // // 'market/orderbook/level2' // 'market/orderbook/level2_20' @@ -794,7 +812,29 @@ module.exports = class kucoin extends Exchange { 'clientOid': clientOrderId, 'side': side, 'symbol': marketId, - 'type': type, + 'type': type, // limit or market + // 'remark': '', // optional remark for the order, length cannot exceed 100 utf8 characters + // 'stp': '', // self trade prevention, CN, CO, CB or DC + // To improve the system performance and to accelerate order placing and processing, KuCoin has added a new interface for margin orders + // The current one will no longer accept margin orders by May 1st, 2021 (UTC) + // At the time, KuCoin will notify users via the announcement, please pay attention to it + // 'tradeType': 'TRADE', // TRADE, MARGIN_TRADE // not used with margin orders + // limit orders --------------------------------------------------- + // 'timeInForce': 'GTC', // GTC, GTT, IOC, or FOK (default is GTC), limit orders only + // 'cancelAfter': long, // cancel after n seconds, requires timeInForce to be GTT + // 'postOnly': false, // Post only flag, invalid when timeInForce is IOC or FOK + // 'hidden': false, // Order will not be displayed in the order book + // 'iceberg': false, // Only a portion of the order is displayed in the order book + // 'visibleSize': this.amountToPrecision (symbol, visibleSize), // The maximum visible size of an iceberg order + // market orders -------------------------------------------------- + // 'size': this.amountToPrecision (symbol, amount), // Amount in base currency + // 'funds': this.costToPrecision (symbol, cost), // Amount of quote currency to use + // stop orders ---------------------------------------------------- + // 'stop': 'loss', // loss or entry, the default is loss, requires stopPrice + // 'stopPrice': this.priceToPrecision (symbol, amount), // need to be defined if stop is specified + // margin orders -------------------------------------------------- + // 'marginMode': 'cross', // cross (cross mode) and isolated (isolated mode), set to cross by default, the isolated mode will be released soon, stay tuned + // 'autoBorrow': false, // The system will first borrow you funds at the optimal interest rate and then place an order for you }; if (type !== 'market') { request['price'] = this.priceToPrecision (symbol, price); @@ -846,9 +886,32 @@ module.exports = class kucoin extends Exchange { } async cancelOrder (id, symbol = undefined, params = {}) { - const request = { 'orderId': id }; - const response = await this.privateDeleteOrdersOrderId (this.extend (request, params)); - return response; + await this.loadMarkets (); + const request = {}; + const clientOrderId = this.safeString2 (params, 'clientOid', 'clientOrderId'); + let method = 'privateDeleteOrdersOrderId'; + if (clientOrderId !== undefined) { + request['clientOid'] = clientOrderId; + method = 'privateDeleteOrdersClientOrderClientOid'; + } else { + request['orderId'] = id; + } + params = this.omit (params, [ 'clientOid', 'clientOrderId' ]); + return await this[method] (this.extend (request, params)); + } + + async cancelAllOrders (symbol = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'symbol': market['id'], + // 'tradeType': 'TRADE', // default is to cancel the spot trading order + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['symbol'] = market['id']; + } + return await this.privateDeleteOrders (this.extend (request, params)); } async fetchOrdersByStatus (status, symbol = undefined, since = undefined, limit = undefined, params = {}) { @@ -926,20 +989,27 @@ module.exports = class kucoin extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { await this.loadMarkets (); - // a special case for undefined ids - // otherwise a wrong endpoint for all orders will be triggered - // https://github.com/ccxt/ccxt/issues/7234 - if (id === undefined) { - throw new InvalidOrder (this.id + ' fetchOrder requires an order id'); + const request = {}; + const clientOrderId = this.safeString2 (params, 'clientOid', 'clientOrderId'); + let method = 'privateGetOrdersOrderId'; + if (clientOrderId !== undefined) { + request['clientOid'] = clientOrderId; + method = 'privateGetOrdersClientOrderClientOid'; + } else { + // a special case for undefined ids + // otherwise a wrong endpoint for all orders will be triggered + // https://github.com/ccxt/ccxt/issues/7234 + if (id === undefined) { + throw new InvalidOrder (this.id + ' fetchOrder() requires an order id'); + } + request['orderId'] = id; } - const request = { - 'orderId': id, - }; + params = this.omit (params, [ 'clientOid', 'clientOrderId' ]); + const response = await this[method] (this.extend (request, params)); let market = undefined; if (symbol !== undefined) { market = this.market (symbol); } - const response = await this.privateGetOrdersOrderId (this.extend (request, params)); const responseData = this.safeValue (response, 'data'); return this.parseOrder (responseData, market); } @@ -1016,12 +1086,14 @@ module.exports = class kucoin extends Exchange { const clientOrderId = this.safeString (order, 'clientOid'); const timeInForce = this.safeString (order, 'timeInForce'); const stopPrice = this.safeFloat (order, 'stopPrice'); + const postOnly = this.safeValue (order, 'postOnly'); return { 'id': orderId, 'clientOrderId': clientOrderId, 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'amount': amount, 'price': price, @@ -1350,6 +1422,7 @@ module.exports = class kucoin extends Exchange { // "status": "SUCCESS", // "createdAt": 1544178843000, // "updatedAt": 1544178891000 + // "remark":"foobar" // } // // fetchWithdrawals @@ -1366,6 +1439,7 @@ module.exports = class kucoin extends Exchange { // "status": "FAILURE", // "createdAt": 1546503758000, // "updatedAt": 1546504603000 + // "remark":"foobar" // } // const currencyId = this.safeString (transaction, 'currency'); @@ -1416,20 +1490,26 @@ module.exports = class kucoin extends Exchange { updated = updated * 1000; } } + const comment = this.safeString (transaction, 'remark'); return { 'id': id, + 'info': transaction, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), 'address': address, + 'addressTo': address, + 'addressFrom': undefined, 'tag': tag, + 'tagTo': tag, + 'tagFrom': undefined, 'currency': code, 'amount': amount, 'txid': txid, 'type': type, 'status': status, + 'comment': comment, 'fee': fee, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), 'updated': updated, - 'info': transaction, }; } @@ -1477,6 +1557,7 @@ module.exports = class kucoin extends Exchange { // "status": "SUCCESS", // "createdAt": 1544178843000, // "updatedAt": 1544178891000 + // "remark":"foobar" // }, // //-------------------------------------------------- // // version 1 (historical) deposit response structure @@ -1606,7 +1687,7 @@ module.exports = class kucoin extends Exchange { async fetchLedger (code = undefined, since = undefined, limit = undefined, params = {}) { if (code === undefined) { - throw new ArgumentsRequired (this.id + ' fetchLedger requires a code param'); + throw new ArgumentsRequired (this.id + ' fetchLedger() requires a code param'); } await this.loadMarkets (); await this.loadAccounts (); @@ -1749,7 +1830,7 @@ module.exports = class kucoin extends Exchange { // † ↑ // const versions = this.safeValue (this.options, 'versions', {}); - const apiVersions = this.safeValue (versions, api); + const apiVersions = this.safeValue (versions, api, {}); const methodVersions = this.safeValue (apiVersions, method, {}); const defaultVersion = this.safeString (methodVersions, path, this.options['version']); const version = this.safeString (params, 'version', defaultVersion); @@ -1772,10 +1853,17 @@ module.exports = class kucoin extends Exchange { this.checkRequiredCredentials (); const timestamp = this.nonce ().toString (); headers = this.extend ({ + 'KC-API-KEY-VERSION': '2', 'KC-API-KEY': this.apiKey, 'KC-API-TIMESTAMP': timestamp, - 'KC-API-PASSPHRASE': this.password, }, headers); + const apiKeyVersion = this.safeString (headers, 'KC-API-KEY-VERSION'); + if (apiKeyVersion === '2') { + const passphrase = this.hmac (this.encode (this.password), this.encode (this.secret), 'sha256', 'base64'); + headers['KC-API-PASSPHRASE'] = passphrase; + } else { + headers['KC-API-PASSPHRASE'] = this.password; + } const payload = timestamp + method + endpoint + endpart; const signature = this.hmac (this.encode (payload), this.encode (this.secret), 'sha256', 'base64'); headers['KC-API-SIGN'] = signature; diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/kuna.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/kuna.js index 8b80f40a4..e652171d1 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/kuna.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/kuna.js @@ -120,7 +120,7 @@ module.exports = class kuna extends acx { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -182,7 +182,7 @@ module.exports = class kuna extends acx { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/latoken.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/latoken.js index f7e8b4a69..45cb5951d 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/latoken.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/latoken.js @@ -534,7 +534,7 @@ module.exports = class latoken extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -646,6 +646,7 @@ module.exports = class latoken extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -680,7 +681,7 @@ module.exports = class latoken extends Exchange { async fetchOrdersWithMethod (method, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrdersWithMethod requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrdersWithMethod() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -796,7 +797,7 @@ module.exports = class latoken extends Exchange { async cancelAllOrders (symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelAllOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelAllOrders() requires a symbol argument'); } await this.loadMarkets (); const marketId = this.marketId (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/lbank.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/lbank.js index c90433927..9b39a0236 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/lbank.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/lbank.js @@ -358,10 +358,10 @@ module.exports = class lbank extends Exchange { await this.loadMarkets (); const market = this.market (symbol); if (since === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a `since` argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a `since` argument'); } if (limit === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a `limit` argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a `limit` argument'); } const request = { 'symbol': market['id'], @@ -486,6 +486,7 @@ module.exports = class lbank extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/liquid.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/liquid.js index ddb1e0acc..732eda853 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/liquid.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/liquid.js @@ -186,6 +186,7 @@ module.exports = class liquid extends Exchange { 'must_be_positive': InvalidOrder, 'less_than_order_size': InvalidOrder, 'price_too_high': InvalidOrder, + 'price_too_small': InvalidOrder, // {"errors":{"order":["price_too_small"]}} }, 'commonCurrencies': { 'WIN': 'WCOIN', @@ -723,7 +724,7 @@ module.exports = class liquid extends Exchange { async editOrder (id, symbol, type, side, amount, price = undefined, params = {}) { await this.loadMarkets (); if (price === undefined) { - throw new ArgumentsRequired (this.id + ' editOrder requires the price argument'); + throw new ArgumentsRequired (this.id + ' editOrder() requires the price argument'); } const request = { 'order': { @@ -864,6 +865,7 @@ module.exports = class liquid extends Exchange { 'lastTradeTimestamp': lastTradeTimestamp, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'status': status, 'symbol': symbol, 'side': side, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/livecoin.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/livecoin.js deleted file mode 100644 index 0a8aa1aa0..000000000 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/livecoin.js +++ /dev/null @@ -1,931 +0,0 @@ -'use strict'; - -// --------------------------------------------------------------------------- - -const Exchange = require ('./base/Exchange'); -const { ExchangeError, OnMaintenance, BadResponse, ArgumentsRequired, AuthenticationError, NotSupported, InvalidOrder, OrderNotFound, ExchangeNotAvailable, RateLimitExceeded, InsufficientFunds } = require ('./base/errors'); -const { TRUNCATE, DECIMAL_PLACES } = require ('./base/functions/number'); - -// --------------------------------------------------------------------------- - -module.exports = class livecoin extends Exchange { - describe () { - return this.deepExtend (super.describe (), { - 'id': 'livecoin', - 'name': 'LiveCoin', - 'countries': [ 'US', 'UK', 'RU' ], - 'rateLimit': 1000, - 'userAgent': this.userAgents['chrome'], - 'has': { - 'cancelOrder': true, - 'CORS': false, - 'createOrder': true, - 'fetchBalance': true, - 'fetchClosedOrders': true, - 'fetchCurrencies': true, - 'fetchDepositAddress': true, - 'fetchDeposits': true, - 'fetchMarkets': true, - 'fetchMyTrades': true, - 'fetchOpenOrders': true, - 'fetchOrder': true, - 'fetchOrderBook': true, - 'fetchOrders': true, - 'fetchTicker': true, - 'fetchTickers': true, - 'fetchTrades': true, - 'fetchTradingFee': true, - 'fetchTradingFees': true, - 'fetchWithdrawals': true, - 'withdraw': true, - }, - 'urls': { - 'logo': 'https://user-images.githubusercontent.com/1294454/27980768-f22fc424-638a-11e7-89c9-6010a54ff9be.jpg', - 'api': 'https://api.livecoin.net', - 'www': 'https://www.livecoin.net', - 'doc': 'https://www.livecoin.net/api?lang=en', - 'referral': 'https://livecoin.net/?from=Livecoin-CQ1hfx44', - }, - 'api': { - 'public': { - 'get': [ - 'exchange/all/order_book', - 'exchange/last_trades', - 'exchange/maxbid_minask', - 'exchange/order_book', - 'exchange/restrictions', - 'exchange/ticker', // omit params to get all tickers at once - 'info/coinInfo', - ], - }, - 'private': { - 'get': [ - 'exchange/client_orders', - 'exchange/order', - 'exchange/trades', - 'exchange/commission', - 'exchange/commissionCommonInfo', - 'payment/balances', - 'payment/balance', - 'payment/get/address', - 'payment/history/size', - 'payment/history/transactions', - ], - 'post': [ - 'exchange/buylimit', - 'exchange/buymarket', - 'exchange/cancellimit', - 'exchange/selllimit', - 'exchange/sellmarket', - 'payment/out/capitalist', - 'payment/out/card', - 'payment/out/coin', - 'payment/out/okpay', - 'payment/out/payeer', - 'payment/out/perfectmoney', - 'payment/voucher/amount', - 'payment/voucher/make', - 'payment/voucher/redeem', - ], - }, - }, - 'fees': { - 'trading': { - 'tierBased': false, - 'percentage': true, - 'maker': 0.18 / 100, - 'taker': 0.18 / 100, - }, - }, - 'commonCurrencies': { - 'BIT': 'First Bitcoin', - 'BTCH': 'Bithash', - 'CPC': 'Capricoin', - 'CBC': 'CryptoBossCoin', // conflict with CBC (CashBet Coin) - 'CPT': 'Cryptos', // conflict with CPT = Contents Protocol https://github.com/ccxt/ccxt/issues/4920 and https://github.com/ccxt/ccxt/issues/6081 - 'EDR': 'E-Dinar Coin', // conflicts with EDR for Endor Protocol and EDRCoin - 'eETT': 'EETT', - 'FirstBlood': '1ST', - 'FORTYTWO': '42', - 'LEO': 'LeoCoin', - 'MIOTA': 'IOTA', // https://github.com/ccxt/ccxt/issues/7487 - 'ORE': 'Orectic', - 'PLN': 'Plutaneum', // conflict with Polish Zloty - 'RUR': 'RUB', - 'SCT': 'SpaceCoin', - 'TPI': 'ThaneCoin', - 'UNUS': 'LEO', // https://github.com/ccxt/ccxt/issues/7496 - 'WAX': 'WAXP', - 'wETT': 'WETT', - 'XBT': 'Bricktox', - }, - 'exceptions': { - 'exact': { - '1': ExchangeError, - '10': AuthenticationError, - '100': ExchangeError, // invalid parameters - '101': AuthenticationError, - '102': AuthenticationError, - '103': InvalidOrder, // invalid currency - '104': InvalidOrder, // invalid amount - '105': InvalidOrder, // unable to block funds - '11': AuthenticationError, - '12': AuthenticationError, - '2': AuthenticationError, // "User not found" - '20': AuthenticationError, - '30': AuthenticationError, - '31': NotSupported, - '32': ExchangeError, - '429': RateLimitExceeded, - '503': ExchangeNotAvailable, - }, - 'broad': { - 'insufficient funds': InsufficientFunds, // https://github.com/ccxt/ccxt/issues/5749 - 'NOT FOUND': OrderNotFound, - 'Cannot find order': OrderNotFound, - 'Minimal amount is': InvalidOrder, - }, - }, - }); - } - - async fetchMarkets (params = {}) { - const response = await this.publicGetExchangeTicker (params); - const restrictions = await this.publicGetExchangeRestrictions (); - const restrictionsById = this.indexBy (restrictions['restrictions'], 'currencyPair'); - const result = []; - for (let i = 0; i < response.length; i++) { - const market = response[i]; - const id = this.safeString (market, 'symbol'); - const [ baseId, quoteId ] = id.split ('/'); - const base = this.safeCurrencyCode (baseId); - const quote = this.safeCurrencyCode (quoteId); - const symbol = base + '/' + quote; - const coinRestrictions = this.safeValue (restrictionsById, symbol); - const precision = { - 'price': 5, - 'amount': 8, - 'cost': 8, - }; - const limits = { - 'amount': { - 'min': Math.pow (10, -precision['amount']), - 'max': Math.pow (10, precision['amount']), - }, - }; - if (coinRestrictions) { - precision['price'] = this.safeInteger (coinRestrictions, 'priceScale', 5); - limits['amount']['min'] = this.safeFloat (coinRestrictions, 'minLimitQuantity', limits['amount']['min']); - } - limits['price'] = { - 'min': Math.pow (10, -precision['price']), - 'max': Math.pow (10, precision['price']), - }; - result.push ({ - 'id': id, - 'symbol': symbol, - 'base': base, - 'quote': quote, - 'baseId': baseId, - 'quoteId': quoteId, - 'active': true, - 'precision': precision, - 'limits': limits, - 'info': market, - }); - } - return result; - } - - async fetchCurrencies (params = {}) { - const response = await this.publicGetInfoCoinInfo (params); - if (typeof response === 'string') { - if (response.indexOf ('site is under maintenance') >= 0) { - throw new OnMaintenance (this.id + ' fetchCurrencies() failed to fetch the currencies, the exchange is on maintenance'); - } else { - throw new BadResponse (this.id + ' fetchCurrencies() failed to fetch the currencies'); - } - } - const currencies = this.safeValue (response, 'info'); - let result = {}; - for (let i = 0; i < currencies.length; i++) { - const currency = currencies[i]; - const id = this.safeString (currency, 'symbol'); - // todo: will need to rethink the fees - // to add support for multiple withdrawal/deposit methods and - // differentiated fees for each particular method - const code = this.safeCurrencyCode (id); - const precision = 8; // default precision, todo: fix "magic constants" - const walletStatus = this.safeString (currency, 'walletStatus'); - const active = (walletStatus === 'normal'); - const name = this.safeString (currency, 'name'); - const fee = this.safeFloat (currency, 'withdrawFee'); - result[code] = { - 'id': id, - 'code': code, - 'info': currency, - 'name': name, - 'active': active, - 'fee': fee, - 'precision': precision, - 'limits': { - 'amount': { - 'min': this.safeFloat (currency, 'minOrderAmount'), - 'max': Math.pow (10, precision), - }, - 'price': { - 'min': Math.pow (10, -precision), - 'max': Math.pow (10, precision), - }, - 'cost': { - 'min': this.safeFloat (currency, 'minOrderAmount'), - 'max': undefined, - }, - 'withdraw': { - 'min': this.safeFloat (currency, 'minWithdrawAmount'), - 'max': Math.pow (10, precision), - }, - 'deposit': { - 'min': this.safeFloat (currency, 'minDepositAmount'), - 'max': undefined, - }, - }, - }; - } - result = this.appendFiatCurrencies (result); - return result; - } - - appendFiatCurrencies (result) { - const precision = 8; - const defaults = { - 'info': undefined, - 'active': true, - 'fee': undefined, - 'precision': precision, - 'limits': { - 'withdraw': { 'min': undefined, 'max': undefined }, - 'deposit': { 'min': undefined, 'max': undefined }, - 'amount': { 'min': undefined, 'max': undefined }, - 'cost': { 'min': undefined, 'max': undefined }, - 'price': { - 'min': Math.pow (10, -precision), - 'max': Math.pow (10, precision), - }, - }, - 'id': undefined, - 'code': undefined, - 'name': undefined, - }; - const currencies = [ - { 'id': 'USD', 'code': 'USD', 'name': 'US Dollar' }, - { 'id': 'EUR', 'code': 'EUR', 'name': 'Euro' }, - // { 'id': 'RUR', 'code': 'RUB', 'name': 'Russian ruble' }, - ]; - currencies.push ({ - 'id': 'RUR', - 'code': this.safeCurrencyCode ('RUR'), - 'name': 'Russian ruble', - }); - for (let i = 0; i < currencies.length; i++) { - const currency = currencies[i]; - const code = currency['code']; - result[code] = this.extend (defaults, currency); - } - return result; - } - - async fetchBalance (params = {}) { - await this.loadMarkets (); - const response = await this.privateGetPaymentBalances (params); - const result = { 'info': response }; - for (let i = 0; i < response.length; i++) { - const balance = response[i]; - const currencyId = this.safeString (balance, 'currency'); - const code = this.safeCurrencyCode (currencyId); - let account = undefined; - if (code in result) { - account = result[code]; - } else { - account = this.account (); - } - if (balance['type'] === 'total') { - account['total'] = this.safeFloat (balance, 'value'); - } - if (balance['type'] === 'available') { - account['free'] = this.safeFloat (balance, 'value'); - } - if (balance['type'] === 'trade') { - account['used'] = this.safeFloat (balance, 'value'); - } - result[code] = account; - } - return this.parseBalance (result); - } - - async fetchTradingFees (params = {}) { - await this.loadMarkets (); - const response = await this.privateGetExchangeCommissionCommonInfo (params); - const commission = this.safeFloat (response, 'commission'); - return { - 'info': response, - 'maker': commission, - 'taker': commission, - }; - } - - async fetchOrderBook (symbol, limit = undefined, params = {}) { - await this.loadMarkets (); - const request = { - 'currencyPair': this.marketId (symbol), - 'groupByPrice': 'false', - }; - if (limit !== undefined) { - request['depth'] = limit; // 100 - } - const response = await this.publicGetExchangeOrderBook (this.extend (request, params)); - const timestamp = this.safeInteger (response, 'timestamp'); - return this.parseOrderBook (response, timestamp); - } - - parseTicker (ticker, market = undefined) { - const timestamp = this.milliseconds (); - let symbol = undefined; - if (market) { - symbol = market['symbol']; - } - const vwap = this.safeFloat (ticker, 'vwap'); - const baseVolume = this.safeFloat (ticker, 'volume'); - let quoteVolume = undefined; - if (baseVolume !== undefined && vwap !== undefined) { - quoteVolume = baseVolume * vwap; - } - const last = this.safeFloat (ticker, 'last'); - return { - 'symbol': symbol, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'high': this.safeFloat (ticker, 'high'), - 'low': this.safeFloat (ticker, 'low'), - 'bid': this.safeFloat (ticker, 'best_bid'), - 'bidVolume': undefined, - 'ask': this.safeFloat (ticker, 'best_ask'), - 'askVolume': undefined, - 'vwap': this.safeFloat (ticker, 'vwap'), - 'open': undefined, - 'close': last, - 'last': last, - 'previousClose': undefined, - 'change': undefined, - 'percentage': undefined, - 'average': undefined, - 'baseVolume': baseVolume, - 'quoteVolume': quoteVolume, - 'info': ticker, - }; - } - - async fetchTickers (symbols = undefined, params = {}) { - await this.loadMarkets (); - const response = await this.publicGetExchangeTicker (params); - const tickers = this.indexBy (response, 'symbol'); - const ids = Object.keys (tickers); - const result = {}; - for (let i = 0; i < ids.length; i++) { - const id = ids[i]; - const market = this.safeMarket (id); - const symbol = market['symbol']; - const ticker = tickers[id]; - result[symbol] = this.parseTicker (ticker, market); - } - return this.filterByArray (result, 'symbol', symbols); - } - - async fetchTicker (symbol, params = {}) { - await this.loadMarkets (); - const market = this.market (symbol); - const request = { - 'currencyPair': market['id'], - }; - const ticker = await this.publicGetExchangeTicker (this.extend (request, params)); - return this.parseTicker (ticker, market); - } - - parseTrade (trade, market = undefined) { - // - // fetchTrades (public) - // - // { - // "time": 1409935047, - // "id": 99451, - // "price": 350, - // "quantity": 2.85714285, - // "type": "BUY" - // } - // - // fetchMyTrades (private) - // - // { - // "datetime": 1435844369, - // "id": 30651619, - // "type": "sell", - // "symbol": "BTC/EUR", - // "price": 230, - // "quantity": 0.1, - // "commission": 0, - // "clientorderid": 1472837650 - // } - const timestamp = this.safeTimestamp2 (trade, 'time', 'datetime'); - let fee = undefined; - const feeCost = this.safeFloat (trade, 'commission'); - if (feeCost !== undefined) { - const feeCurrency = market ? market['quote'] : undefined; - fee = { - 'cost': feeCost, - 'currency': feeCurrency, - }; - } - const orderId = this.safeString (trade, 'clientorderid'); - const id = this.safeString (trade, 'id'); - const side = this.safeStringLower (trade, 'type'); - const amount = this.safeFloat (trade, 'quantity'); - const price = this.safeFloat (trade, 'price'); - let cost = undefined; - if (amount !== undefined) { - if (price !== undefined) { - cost = amount * price; - } - } - const marketId = this.safeString (trade, 'symbol'); - const symbol = this.safeSymbol (marketId, market, '/'); - return { - 'id': id, - 'info': trade, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'symbol': symbol, - 'order': orderId, - 'type': undefined, - 'side': side, - 'takerOrMaker': undefined, - 'price': price, - 'amount': amount, - 'cost': cost, - 'fee': fee, - }; - } - - async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const request = { - // 'currencyPair': market['id'], - // 'orderDesc': 'true', // or 'false', if true then new orders will be first, otherwise old orders will be first. - // 'offset': 0, // page offset, position of the first item on the page - }; - let market = undefined; - if (symbol !== undefined) { - market = this.market (symbol); - request['currencyPair'] = market['id']; - } - if (limit !== undefined) { - request['limit'] = limit; - } - const response = await this.privateGetExchangeTrades (this.extend (request, params)); - // - // [ - // { - // "datetime": 1435844369, - // "id": 30651619, - // "type": "sell", - // "symbol": "BTC/EUR", - // "price": 230, - // "quantity": 0.1, - // "commission": 0, - // "clientorderid": 1472837650 - // }, - // { - // "datetime": 1435844356, - // "id": 30651618, - // "type": "sell", - // "symbol": "BTC/EUR", - // "price": 230, - // "quantity": 0.2, - // "commission": 0.092, - // "clientorderid": 1472837651 - // } - // ] - // - return this.parseTrades (response, market, since, limit); - } - - async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const market = this.market (symbol); - const request = { - 'currencyPair': market['id'], - }; - const response = await this.publicGetExchangeLastTrades (this.extend (request, params)); - // - // [ - // { - // "time": 1409935047, - // "id": 99451, - // "price": 350, - // "quantity": 2.85714285, - // "type": "BUY" - // }, - // { - // "time": 1409934792, - // "id": 99450, - // "price": 350, - // "quantity": 0.57142857, - // "type": "SELL" - // } - // ] - // - return this.parseTrades (response, market, since, limit); - } - - async fetchOrder (id, symbol = undefined, params = {}) { - await this.loadMarkets (); - const request = { - 'orderId': id, - }; - const response = await this.privateGetExchangeOrder (this.extend (request, params)); - return this.parseOrder (response); - } - - parseOrderStatus (status) { - const statuses = { - 'OPEN': 'open', - 'PARTIALLY_FILLED': 'open', - 'EXECUTED': 'closed', - 'CANCELLED': 'canceled', - 'PARTIALLY_FILLED_AND_CANCELLED': 'canceled', - }; - return this.safeString (statuses, status, status); - } - - parseOrder (order, market = undefined) { - let timestamp = undefined; - if ('lastModificationTime' in order) { - timestamp = this.safeString (order, 'lastModificationTime'); - if (timestamp !== undefined) { - if (timestamp.indexOf ('T') >= 0) { - timestamp = this.parse8601 (timestamp); - } else { - timestamp = this.safeInteger (order, 'lastModificationTime'); - } - } - } - // TODO currently not supported by livecoin - // let trades = this.parseTrades (order['trades'], market, since, limit); - const trades = undefined; - const status = this.parseOrderStatus (this.safeString2 (order, 'status', 'orderStatus')); - const marketId = this.safeString2 (order, 'symbol', 'currencyPair'); - const symbol = this.safeSymbol (marketId, market, '/'); - let type = this.safeStringLower (order, 'type'); - let side = undefined; - if (type !== undefined) { - const orderType = type.split ('_'); - type = orderType[0]; - side = orderType[1]; - } - const price = this.safeFloat (order, 'price'); - // of the next two lines the latter overrides the former, if present in the order structure - let remaining = this.safeFloat (order, 'remainingQuantity'); - remaining = this.safeFloat (order, 'remaining_quantity', remaining); - const amount = this.safeFloat (order, 'quantity', remaining); - let filled = undefined; - if (remaining !== undefined) { - filled = amount - remaining; - } - let cost = undefined; - if (filled !== undefined && price !== undefined) { - cost = filled * price; - } - const feeRate = this.safeFloat (order, 'commission_rate'); - let feeCost = undefined; - if (cost !== undefined && feeRate !== undefined) { - feeCost = cost * feeRate; - } - if ((market === undefined) && (symbol in this.markets)) { - market = this.markets[symbol]; - } - let feeCurrency = undefined; - if (market !== undefined) { - feeCurrency = market['quote']; - } - return { - 'info': order, - 'id': order['id'], - 'clientOrderId': undefined, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'lastTradeTimestamp': undefined, - 'status': status, - 'symbol': symbol, - 'type': type, - 'timeInForce': undefined, - 'side': side, - 'price': price, - 'stopPrice': undefined, - 'amount': amount, - 'cost': cost, - 'filled': filled, - 'remaining': remaining, - 'trades': trades, - 'fee': { - 'cost': feeCost, - 'currency': feeCurrency, - 'rate': feeRate, - }, - 'average': undefined, - }; - } - - async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - let market = undefined; - const request = {}; - if (symbol !== undefined) { - market = this.market (symbol); - request['currencyPair'] = market['id']; - } - if (since !== undefined) { - request['issuedFrom'] = parseInt (since); - } - if (limit !== undefined) { - request['endRow'] = limit - 1; - } - const response = await this.privateGetExchangeClientOrders (this.extend (request, params)); - const result = []; - let rawOrders = []; - if (response['data']) { - rawOrders = response['data']; - } - for (let i = 0; i < rawOrders.length; i++) { - const order = rawOrders[i]; - result.push (this.parseOrder (order, market)); - } - return this.sortBy (result, 'timestamp'); - } - - async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - const request = { - 'openClosed': 'OPEN', - }; - return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); - } - - async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { - const request = { - 'openClosed': 'CLOSED', - }; - return await this.fetchOrders (symbol, since, limit, this.extend (request, params)); - } - - async createOrder (symbol, type, side, amount, price = undefined, params = {}) { - await this.loadMarkets (); - const method = 'privatePostExchange' + this.capitalize (side) + type; - const market = this.market (symbol); - const request = { - 'quantity': this.amountToPrecision (symbol, amount), - 'currencyPair': market['id'], - }; - if (type === 'limit') { - request['price'] = this.priceToPrecision (symbol, price); - } - const response = await this[method] (this.extend (request, params)); - const result = { - 'info': response, - 'id': response['orderId'].toString (), - }; - const success = this.safeValue (response, 'success'); - if (success) { - result['status'] = 'open'; - } - return result; - } - - async cancelOrder (id, symbol = undefined, params = {}) { - if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); - } - await this.loadMarkets (); - const market = this.market (symbol); - const request = { - 'orderId': id, - 'currencyPair': market['id'], - }; - const response = await this.privatePostExchangeCancellimit (this.extend (request, params)); - const message = this.safeString (response, 'message', this.json (response)); - if ('success' in response) { - if (!response['success']) { - throw new InvalidOrder (message); - } else if ('cancelled' in response) { - if (response['cancelled']) { - return { - 'status': 'canceled', - 'info': response, - }; - } else { - throw new OrderNotFound (message); - } - } - } - throw new ExchangeError (this.id + ' cancelOrder() failed: ' + this.json (response)); - } - - async withdraw (code, amount, address, tag = undefined, params = {}) { - // Sometimes the response with be { key: null } for all keys. - // An example is if you attempt to withdraw more than is allowed when withdrawal fees are considered. - this.checkAddress (address); - await this.loadMarkets (); - const currency = this.currency (code); - let wallet = address; - if (tag !== undefined) { - wallet += '::' + tag; - } - const request = { - 'amount': this.decimalToPrecision (amount, TRUNCATE, currency['precision'], DECIMAL_PLACES), - 'currency': currency['id'], - 'wallet': wallet, - }; - const response = await this.privatePostPaymentOutCoin (this.extend (request, params)); - const id = this.safeInteger (response, 'id'); - if (id === undefined) { - throw new InsufficientFunds (this.id + ' insufficient funds to cover requested withdrawal amount post fees ' + this.json (response)); - } - return { - 'info': response, - 'id': id, - }; - } - - parseTransaction (transaction, currency = undefined) { - // { - // "id": "c853093d5aa06df1c92d79c2...", (tx on deposits, address on withdrawals) - // "type": "DEPOSIT", - // "date": 1553186482676, - // "amount": 712.61266, - // "fee": 0, - // "fixedCurrency": "XVG", - // "taxCurrency": "XVG", - // "variableAmount": null, - // "variableCurrency": null, - // "external": "Coin", - // "login": "USERNAME", - // "externalKey": "....87diPBy......3hTtuwUT78Yi", (address on deposits, tx on withdrawals) - // "documentId": 1110662453 - // }, - let txid = undefined; - let address = undefined; - const id = this.safeString (transaction, 'documentId'); - const amount = this.safeFloat (transaction, 'amount'); - const timestamp = this.safeInteger (transaction, 'date'); - const type = this.safeStringLower (transaction, 'type'); - const currencyId = this.safeString (transaction, 'fixedCurrency'); - const feeCost = this.safeFloat (transaction, 'fee'); - const code = this.safeCurrencyCode (currencyId, currency); - if (type === 'withdrawal') { - txid = this.safeString (transaction, 'externalKey'); - address = this.safeString (transaction, 'id'); - } else if (type === 'deposit') { - address = this.safeString (transaction, 'externalKey'); - txid = this.safeString (transaction, 'id'); - } - let status = undefined; - if (type === 'deposit') { - status = 'ok'; // Deposits is not registered until they are in account. Withdrawals are left as undefined, not entirely sure about theyre status. - } - return { - 'info': transaction, - 'id': id, - 'currency': code, - 'amount': amount, - 'address': address, - 'tag': undefined, - 'status': status, - 'type': type, - 'updated': undefined, - 'txid': txid, - 'timestamp': timestamp, - 'datetime': this.iso8601 (timestamp), - 'fee': { - 'currency': code, - 'cost': feeCost, - }, - }; - } - - async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const endtime = 2505600000; // 29 days - exchange has maximum 30 days. - const now = this.milliseconds (); - const request = { - 'types': 'DEPOSIT', - 'end': now, - 'start': (since !== undefined) ? parseInt (since) : now - endtime, - }; - let currency = undefined; - if (code !== undefined) { - currency = this.currency (code); - } - if (limit !== undefined) { - request['limit'] = limit; // default is 100 - } - const response = await this.privateGetPaymentHistoryTransactions (this.extend (request, params)); - return this.parseTransactions (response, currency, since, limit); - } - - async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { - await this.loadMarkets (); - const endtime = 2505600000; // 29 days - exchange has maximum 30 days. - const now = this.milliseconds (); - const request = { - 'types': 'WITHDRAWAL', - 'end': now, - 'start': (since !== undefined) ? parseInt (since) : now - endtime, - }; - let currency = undefined; - if (code !== undefined) { - currency = this.currency (code); - } - if (limit !== undefined) { - request['limit'] = limit; // default is 100 - } - if (since !== undefined) { - request['start'] = since; - } - const response = await this.privateGetPaymentHistoryTransactions (this.extend (request, params)); - return this.parseTransactions (response, currency, since, limit); - } - - async fetchDepositAddress (currency, params = {}) { - const request = { - 'currency': currency, - }; - const response = await this.privateGetPaymentGetAddress (this.extend (request, params)); - let address = this.safeString (response, 'wallet'); - let tag = undefined; - if (address.indexOf (':') >= 0) { - const parts = address.split (':'); - address = parts[0]; - tag = parts[2]; - } - this.checkAddress (address); - return { - 'currency': currency, - 'address': address, - 'tag': tag, - 'info': response, - }; - } - - sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { - let url = this.urls['api'] + '/' + path; - const query = this.urlencode (this.keysort (params)); - if (method === 'GET') { - if (Object.keys (params).length) { - url += '?' + query; - } - } - if (api === 'private') { - this.checkRequiredCredentials (); - if (method === 'POST') { - body = query; - } - const signature = this.hmac (this.encode (query), this.encode (this.secret), 'sha256'); - headers = { - 'Api-Key': this.apiKey, - 'Sign': signature.toUpperCase (), - 'Content-Type': 'application/x-www-form-urlencoded', - }; - } - return { 'url': url, 'method': method, 'body': body, 'headers': headers }; - } - - handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { - if (response === undefined) { - return; // fallback to default error handler - } - if (code >= 300) { - const feedback = this.id + ' ' + body; - const errorCode = this.safeString (response, 'errorCode'); - this.throwExactlyMatchedException (this.exceptions['exact'], errorCode, feedback); - throw new ExchangeError (feedback); - } - // returns status code 200 even if success === false - const success = this.safeValue (response, 'success', true); - if (!success) { - const feedback = this.id + ' ' + body; - const message = this.safeString2 (response, 'message', 'exception'); - if (message !== undefined) { - this.throwBroadlyMatchedException (this.exceptions['broad'], message, feedback); - } - throw new ExchangeError (feedback); - } - } -}; - diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/luno.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/luno.js index 068e1c184..2bbec0ec1 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/luno.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/luno.js @@ -38,7 +38,11 @@ module.exports = class luno extends Exchange { 'urls': { 'referral': 'https://www.luno.com/invite/44893A', 'logo': 'https://user-images.githubusercontent.com/1294454/27766607-8c1a69d8-5ede-11e7-930c-540b5eb9be24.jpg', - 'api': 'https://api.luno.com/api', + 'api': { + 'public': 'https://api.luno.com/api', + 'private': 'https://api.luno.com/api', + 'exchange': 'https://api.luno.com/api/exchange', + }, 'www': 'https://www.luno.com', 'doc': [ 'https://www.luno.com/en/api', @@ -47,6 +51,11 @@ module.exports = class luno extends Exchange { ], }, 'api': { + 'exchange': { + 'get': [ + 'markets', + ], + }, 'public': { 'get': [ 'orderbook', @@ -97,16 +106,42 @@ module.exports = class luno extends Exchange { } async fetchMarkets (params = {}) { - const response = await this.publicGetTickers (params); + const response = await this.exchangeGetMarkets (params); + // + // { + // "markets":[ + // { + // "market_id":"BCHXBT", + // "trading_status":"ACTIVE", + // "base_currency":"BCH", + // "counter_currency":"XBT", + // "min_volume":"0.01", + // "max_volume":"100.00", + // "volume_scale":2, + // "min_price":"0.0001", + // "max_price":"1.00", + // "price_scale":6, + // "fee_scale":8, + // }, + // ] + // } + // const result = []; - for (let i = 0; i < response['tickers'].length; i++) { - const market = response['tickers'][i]; - const id = market['pair']; - const baseId = id.slice (0, 3); - const quoteId = id.slice (3, 6); + const markets = this.safeValue (response, 'markets', []); + for (let i = 0; i < markets.length; i++) { + const market = markets[i]; + const id = this.safeString (market, 'market_id'); + const baseId = this.safeString (market, 'base_currency'); + const quoteId = this.safeString (market, 'counter_currency'); const base = this.safeCurrencyCode (baseId); const quote = this.safeCurrencyCode (quoteId); const symbol = base + '/' + quote; + const status = this.safeString (market, 'trading_status'); + const active = (status === 'ACTIVE'); + const precision = { + 'amount': this.safeInteger (market, 'volume_scale'), + 'price': this.safeInteger (market, 'price_scale'), + }; result.push ({ 'id': id, 'symbol': symbol, @@ -114,10 +149,23 @@ module.exports = class luno extends Exchange { 'quote': quote, 'baseId': baseId, 'quoteId': quoteId, + 'active': active, + 'precision': precision, + 'limits': { + 'amount': { + 'min': this.safeFloat (market, 'min_volume'), + 'max': this.safeFloat (market, 'max_volume'), + }, + 'price': { + 'min': this.safeFloat (market, 'min_price'), + 'max': this.safeFloat (market, 'max_price'), + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + }, 'info': market, - 'active': undefined, - 'precision': this.precision, - 'limits': this.limits, }); } return result; @@ -145,6 +193,16 @@ module.exports = class luno extends Exchange { async fetchBalance (params = {}) { await this.loadMarkets (); const response = await this.privateGetBalance (params); + // + // { + // 'balance': [ + // {'account_id': '119...1336','asset': 'XBT','balance': '0.00','reserved': '0.00','unconfirmed': '0.00'}, + // {'account_id': '66...289','asset': 'XBT','balance': '0.00','reserved': '0.00','unconfirmed': '0.00'}, + // {'account_id': '718...5300','asset': 'ETH','balance': '0.00','reserved': '0.00','unconfirmed': '0.00'}, + // {'account_id': '818...7072','asset': 'ZAR','balance': '0.001417','reserved': '0.00','unconfirmed': '0.00'}]} + // ] + // } + // const wallets = this.safeValue (response, 'balance', []); const result = { 'info': response }; for (let i = 0; i < wallets.length; i++) { @@ -154,10 +212,15 @@ module.exports = class luno extends Exchange { const reserved = this.safeFloat (wallet, 'reserved'); const unconfirmed = this.safeFloat (wallet, 'unconfirmed'); const balance = this.safeFloat (wallet, 'balance'); - const account = this.account (); - account['used'] = this.sum (reserved, unconfirmed); - account['total'] = this.sum (balance, unconfirmed); - result[code] = account; + if (code in result) { + result[code]['used'] = this.sum (result[code]['used'], reserved, unconfirmed); + result[code]['total'] = this.sum (result[code]['total'], balance, unconfirmed); + } else { + const account = this.account (); + account['used'] = this.sum (reserved, unconfirmed); + account['total'] = this.sum (balance, unconfirmed); + result[code] = account; + } } return this.parseBalance (result); } @@ -245,6 +308,7 @@ module.exports = class luno extends Exchange { 'symbol': symbol, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -425,7 +489,7 @@ module.exports = class luno extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -462,15 +526,16 @@ module.exports = class luno extends Exchange { if (type === 'market') { method += 'Marketorder'; request['type'] = side.toUpperCase (); + // todo add createMarketBuyOrderRequires price logic as it is implemented in the other exchanges if (side === 'buy') { - request['counter_volume'] = amount; + request['counter_volume'] = parseFloat (this.amountToPrecision (symbol, amount)); } else { - request['base_volume'] = amount; + request['base_volume'] = parseFloat (this.amountToPrecision (symbol, amount)); } } else { method += 'Postorder'; - request['volume'] = amount; - request['price'] = price; + request['volume'] = parseFloat (this.amountToPrecision (symbol, amount)); + request['price'] = parseFloat (this.priceToPrecision (symbol, price)); request['type'] = (side === 'buy') ? 'BID' : 'ASK'; } const response = await this[method] (this.extend (request, params)); @@ -629,7 +694,7 @@ module.exports = class luno extends Exchange { } sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { - let url = this.urls['api'] + '/' + this.version + '/' + this.implodeParams (path, params); + let url = this.urls['api'][api] + '/' + this.version + '/' + this.implodeParams (path, params); const query = this.omit (params, this.extractParams (path)); if (Object.keys (query).length) { url += '?' + this.urlencode (query); diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/lykke.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/lykke.js index c513b8d80..edc0fe73a 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/lykke.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/lykke.js @@ -499,6 +499,7 @@ module.exports = class lykke extends Exchange { 'symbol': symbol, 'type': undefined, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/mercado.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/mercado.js index 228e82f69..a2fd9593e 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/mercado.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/mercado.js @@ -21,6 +21,8 @@ module.exports = class mercado extends Exchange { 'createMarketOrder': true, 'createOrder': true, 'fetchBalance': true, + 'fetchMarkets': true, + 'fetchMyTrades': 'emulated', 'fetchOHLCV': true, 'fetchOpenOrders': true, 'fetchOrder': true, @@ -60,6 +62,7 @@ module.exports = class mercado extends Exchange { 'api': { 'public': { 'get': [ + 'coins', '{coin}/orderbook/', // last slash critical '{coin}/ticker/', '{coin}/trades/', @@ -90,23 +93,90 @@ module.exports = class mercado extends Exchange { ], }, }, - 'markets': { - 'BTC/BRL': { 'id': 'BRLBTC', 'symbol': 'BTC/BRL', 'base': 'BTC', 'quote': 'BRL', 'precision': { 'amount': 8, 'price': 5 }, 'suffix': 'Bitcoin' }, - 'LTC/BRL': { 'id': 'BRLLTC', 'symbol': 'LTC/BRL', 'base': 'LTC', 'quote': 'BRL', 'precision': { 'amount': 8, 'price': 5 }, 'suffix': 'Litecoin' }, - 'BCH/BRL': { 'id': 'BRLBCH', 'symbol': 'BCH/BRL', 'base': 'BCH', 'quote': 'BRL', 'precision': { 'amount': 8, 'price': 5 }, 'suffix': 'BCash' }, - 'XRP/BRL': { 'id': 'BRLXRP', 'symbol': 'XRP/BRL', 'base': 'XRP', 'quote': 'BRL', 'precision': { 'amount': 8, 'price': 5 }, 'suffix': 'Ripple' }, - 'ETH/BRL': { 'id': 'BRLETH', 'symbol': 'ETH/BRL', 'base': 'ETH', 'quote': 'BRL', 'precision': { 'amount': 8, 'price': 5 }, 'suffix': 'Ethereum' }, - 'USDC/BRL': { 'id': 'BRLUSDC', 'symbol': 'USDC/BRL', 'base': 'USDC', 'quote': 'BRL', 'precision': { 'amount': 8, 'price': 5 }, 'suffix': 'USDC' }, - }, 'fees': { 'trading': { - 'maker': 0.3 / 100, - 'taker': 0.7 / 100, + 'maker': 0.003, + 'taker': 0.007, + }, + }, + 'options': { + 'limits': { + 'BTC': 0.001, + 'BCH': 0.001, + 'ETH': 0.01, + 'LTC': 0.01, + 'XRP': 0.1, }, }, }); } + async fetchMarkets (params = {}) { + const response = await this.publicGetCoins (params); + // + // [ + // "BCH", + // "BTC", + // "ETH", + // "LTC", + // "XRP", + // "MBPRK01", + // "MBPRK02", + // "MBPRK03", + // "MBPRK04", + // "MBCONS01", + // "USDC", + // "WBX", + // "CHZ", + // "MBCONS02", + // "PAXG", + // "MBVASCO01", + // "LINK" + // ] + // + const result = []; + const amountLimits = this.safeValue (this.options, 'limits', {}); + for (let i = 0; i < response.length; i++) { + const coin = response[i]; + const baseId = coin; + const quoteId = 'BRL'; + const base = this.safeCurrencyCode (baseId); + const quote = this.safeCurrencyCode (quoteId); + const symbol = base + '/' + quote; + const id = quote + base; + const precision = { + 'amount': 8, + 'price': 5, + }; + result.push ({ + 'id': id, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'baseId': baseId, + 'quoteId': quoteId, + 'active': undefined, + 'info': coin, + 'precision': precision, + 'limits': { + 'amount': { + 'min': this.safeFloat (amountLimits, baseId), + 'max': undefined, + }, + 'price': { + 'min': 1 / Math.pow (10, precision['price']), + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + }, + }); + } + return result; + } + async fetchOrderBook (symbol, limit = undefined, params = {}) { await this.loadMarkets (); const market = this.market (symbol); @@ -152,22 +222,30 @@ module.exports = class mercado extends Exchange { } parseTrade (trade, market = undefined) { - const timestamp = this.safeTimestamp (trade, 'date'); + const timestamp = this.safeTimestamp2 (trade, 'date', 'executed_timestamp'); let symbol = undefined; if (market !== undefined) { symbol = market['symbol']; } - const id = this.safeString (trade, 'tid'); + const id = this.safeString2 (trade, 'tid', 'operation_id'); const type = undefined; const side = this.safeString (trade, 'type'); const price = this.safeFloat (trade, 'price'); - const amount = this.safeFloat (trade, 'amount'); + const amount = this.safeFloat2 (trade, 'amount', 'quantity'); let cost = undefined; if (price !== undefined) { if (amount !== undefined) { cost = price * amount; } } + const feeCost = this.safeFloat (trade, 'fee_rate'); + let fee = undefined; + if (feeCost !== undefined) { + fee = { + 'cost': feeCost, + 'currency': undefined, + }; + } return { 'id': id, 'info': trade, @@ -181,7 +259,7 @@ module.exports = class mercado extends Exchange { 'price': price, 'amount': amount, 'cost': cost, - 'fee': undefined, + 'fee': fee, }; } @@ -349,6 +427,11 @@ module.exports = class mercado extends Exchange { const remaining = amount - filled; const cost = filled * average; const lastTradeTimestamp = this.safeTimestamp (order, 'updated_timestamp'); + const rawTrades = this.safeValue (order, 'operations', []); + const trades = this.parseTrades (rawTrades, market, undefined, undefined, { + 'side': side, + 'order': id, + }); return { 'info': order, 'id': id, @@ -359,6 +442,7 @@ module.exports = class mercado extends Exchange { 'symbol': market['symbol'], 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -369,7 +453,7 @@ module.exports = class mercado extends Exchange { 'remaining': remaining, 'status': status, 'fee': fee, - 'trades': undefined, // todo parse trades (operations) + 'trades': trades, }; } @@ -401,17 +485,17 @@ module.exports = class mercado extends Exchange { if (code === 'BRL') { const account_ref = ('account_ref' in params); if (!account_ref) { - throw new ArgumentsRequired (this.id + ' requires account_ref parameter to withdraw ' + code); + throw new ArgumentsRequired (this.id + ' withdraw() requires account_ref parameter to withdraw ' + code); } } else if (code !== 'LTC') { const tx_fee = ('tx_fee' in params); if (!tx_fee) { - throw new ArgumentsRequired (this.id + ' requires tx_fee parameter to withdraw ' + code); + throw new ArgumentsRequired (this.id + ' withdraw() requires tx_fee parameter to withdraw ' + code); } if (code === 'XRP') { if (tag === undefined) { if (!('destination_tag' in params)) { - throw new ArgumentsRequired (this.id + ' requires a tag argument or destination_tag parameter to withdraw ' + code); + throw new ArgumentsRequired (this.id + ' withdraw() requires a tag argument or destination_tag parameter to withdraw ' + code); } } else { request['destination_tag'] = tag; @@ -473,6 +557,51 @@ module.exports = class mercado extends Exchange { return this.parseOrders (orders, market, since, limit); } + async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + ' fetchOpenOrders () requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'coin_pair': market['id'], + 'status_list': '[2]', // open only + }; + const response = await this.privatePostListOrders (this.extend (request, params)); + const responseData = this.safeValue (response, 'response_data', {}); + const orders = this.safeValue (responseData, 'orders', []); + return this.parseOrders (orders, market, since, limit); + } + + async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + ' fetchMyTrades () requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'coin_pair': market['id'], + 'has_fills': true, + }; + const response = await this.privatePostListOrders (this.extend (request, params)); + const responseData = this.safeValue (response, 'response_data', {}); + const ordersRaw = this.safeValue (responseData, 'orders', []); + const orders = this.parseOrders (ordersRaw, market, since, limit); + const trades = this.ordersToTrades (orders); + return this.filterBySymbolSinceLimit (trades, symbol, since, limit); + } + + ordersToTrades (orders) { + const result = []; + for (let i = 0; i < orders.length; i++) { + const trades = this.safeValue (orders[i], 'trades', []); + for (let y = 0; y < trades.length; y++) { + result.push (trades[y]); + } + } + return result; + } + sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { let url = this.urls['api'][api] + '/'; const query = this.omit (params, this.extractParams (path)); diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/ndax.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/ndax.js new file mode 100644 index 000000000..0367c2695 --- /dev/null +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/ndax.js @@ -0,0 +1,2015 @@ +'use strict'; + +// --------------------------------------------------------------------------- + +const Exchange = require ('./base/Exchange'); +const { ExchangeError, AuthenticationError, InsufficientFunds, BadSymbol, OrderNotFound } = require ('./base/errors'); +const { TICK_SIZE } = require ('./base/functions/number'); + +// --------------------------------------------------------------------------- + +module.exports = class ndax extends Exchange { + describe () { + return this.deepExtend (super.describe (), { + 'id': 'ndax', + 'name': 'NDAX', + 'countries': [ 'US' ], // United States + 'rateLimit': 1000, + 'pro': true, + 'has': { + 'cancelAllOrders': true, + 'cancelOrder': true, + 'createDepositAddress': true, + 'createOrder': true, + 'editOrder': true, + 'fetchAccounts': true, + 'fetchBalance': true, + 'fetchCurrencies': true, + 'fetchDepositAddress': true, + 'fetchDeposits': true, + 'fetchLedger': true, + 'fetchMarkets': true, + 'fetchMyTrades': true, + 'fetchOHLCV': true, + 'fetchOpenOrders': true, + 'fetchOrders': true, + 'fetchOrder': true, + 'fetchOrderBook': true, + 'fetchOrderTrades': true, + 'fetchTicker': true, + 'fetchTrades': true, + }, + 'timeframes': { + '1m': '60', + '5m': '300', + '15m': '900', + '30m': '1800', + '1h': '3600', + '2h': '7200', + '4h': '14400', + '6h': '21600', + '12h': '43200', + '1d': '86400', + '1w': '604800', + '1M': '2419200', + '4M': '9676800', + }, + 'urls': { + 'logo': 'https://user-images.githubusercontent.com/1294454/108623144-67a3ef00-744e-11eb-8140-75c6b851e945.jpg', + 'test': { + 'public': 'https://ndaxmarginstaging.cdnhop.net:8443/AP', + 'private': 'https://ndaxmarginstaging.cdnhop.net:8443/AP', + }, + 'api': { + 'public': 'https://api.ndax.io:8443/AP', + 'private': 'https://api.ndax.io:8443/AP', + }, + 'www': 'https://ndax.io', + 'doc': [ + 'https://apidoc.ndax.io/', + ], + 'fees': 'https://ndax.io/fees', + 'referral': 'https://one.ndax.io/bfQiSL', + }, + 'api': { + 'public': { + 'get': [ + 'Activate2FA', + 'Authenticate2FA', + 'AuthenticateUser', + 'GetL2Snapshot', + 'GetLevel1', + 'GetValidate2FARequiredEndpoints', + 'LogOut', + 'GetTickerHistory', + 'GetProduct', + 'GetProducts', + 'GetInstrument', + 'GetInstruments', + 'Ping', + 'trades', // undocumented + 'GetLastTrades', // undocumented + 'SubscribeLevel1', + 'SubscribeLevel2', + 'SubscribeTicker', + 'SubscribeTrades', + 'SubscribeBlockTrades', + 'UnsubscribeBlockTrades', + 'UnsubscribeLevel1', + 'UnsubscribeLevel2', + 'UnsubscribeTicker', + 'UnsubscribeTrades', + 'Authenticate', // undocumented + ], + }, + 'private': { + 'get': [ + 'GetUserAccountInfos', + 'GetUserAccounts', + 'GetUserAffiliateCount', + 'GetUserAffiliateTag', + 'GetUserConfig', + 'GetAllUnredactedUserConfigsForUser', + 'GetUnredactedUserConfigByKey', + 'GetUserDevices', + 'GetUserReportTickets', + 'GetUserReportWriterResultRecords', + 'GetAccountInfo', + 'GetAccountPositions', + 'GetAllAccountConfigs', + 'GetTreasuryProductsForAccount', + 'GetAccountTrades', + 'GetAccountTransactions', + 'GetOpenTradeReports', + 'GetAllOpenTradeReports', + 'GetTradesHistory', + 'GetOpenOrders', + 'GetOpenQuotes', + 'GetOrderFee', + 'GetOrderHistory', + 'GetOrdersHistory', + 'GetOrderStatus', + 'GetOmsFeeTiers', + 'GetAccountDepositTransactions', + 'GetAccountWithdrawTransactions', + 'GetAllDepositRequestInfoTemplates', + 'GetDepositInfo', + 'GetDepositRequestInfoTemplate', + 'GetDeposits', + 'GetDepositTicket', + 'GetDepositTickets', + 'GetOMSWithdrawFees', + 'GetWithdrawFee', + 'GetWithdraws', + 'GetWithdrawTemplate', + 'GetWithdrawTemplateTypes', + 'GetWithdrawTicket', + 'GetWithdrawTickets', + ], + 'post': [ + 'AddUserAffiliateTag', + 'CancelUserReport', + 'RegisterNewDevice', + 'SubscribeAccountEvents', + 'UpdateUserAffiliateTag', + 'GenerateTradeActivityReport', + 'GenerateTransactionActivityReport', + 'GenerateTreasuryActivityReport', + 'ScheduleTradeActivityReport', + 'ScheduleTransactionActivityReport', + 'ScheduleTreasuryActivityReport', + 'CancelAllOrders', + 'CancelOrder', + 'CancelQuote', + 'CancelReplaceOrder', + 'CreateQuote', + 'ModifyOrder', + 'SendOrder', + 'SubmitBlockTrade', + 'UpdateQuote', + 'CancelWithdraw', + 'CreateDepositTicket', + 'CreateWithdrawTicket', + 'SubmitDepositTicketComment', + 'SubmitWithdrawTicketComment', + 'GetOrderHistoryByOrderId', + ], + }, + }, + 'fees': { + 'trading': { + 'tierBased': false, + 'percentage': true, + 'maker': 0.2 / 100, + 'taker': 0.25 / 100, + }, + }, + 'requiredCredentials': { + 'apiKey': true, + 'secret': true, + 'uid': true, + }, + 'precisionMode': TICK_SIZE, + 'exceptions': { + 'exact': { + 'Not_Enough_Funds': InsufficientFunds, // {"status":"Rejected","errormsg":"Not_Enough_Funds","errorcode":101} + 'Server Error': ExchangeError, // {"result":false,"errormsg":"Server Error","errorcode":102,"detail":null} + 'Resource Not Found': OrderNotFound, // {"result":false,"errormsg":"Resource Not Found","errorcode":104,"detail":null} + }, + 'broad': { + 'Invalid InstrumentId': BadSymbol, // {"result":false,"errormsg":"Invalid InstrumentId: 10000","errorcode":100,"detail":null} + }, + }, + 'options': { + 'omsId': 1, + 'orderTypes': { + 'Market': 1, + 'Limit': 2, + 'StopMarket': 3, + 'StopLimit': 4, + 'TrailingStopMarket': 5, + 'TrailingStopLimit': 6, + 'BlockTrade': 7, + }, + }, + }); + } + + async fetchCurrencies (params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + const request = { + 'omsId': omsId, + }; + const response = await this.publicGetGetProducts (this.extend (request, params)); + // + // [ + // { + // "OMSId":1, + // "ProductId":1, + // "Product":"BTC", + // "ProductFullName":"Bitcoin", + // "ProductType":"CryptoCurrency", + // "DecimalPlaces":8, + // "TickSize":0.0000000100000000000000000000, + // "NoFees":false, + // "IsDisabled":false, + // "MarginEnabled":false + // }, + // ] + // + const result = {}; + for (let i = 0; i < response.length; i++) { + const currency = response[i]; + const id = this.safeString (currency, 'ProductId'); + const name = this.safeString (currency, 'ProductFullName'); + const type = this.safeString (currency, 'ProductType'); + const code = this.safeCurrencyCode (this.safeString (currency, 'Product')); + const precision = this.safeFloat (currency, 'TickSize'); + const isDisabled = this.safeValue (currency, 'IsDisabled'); + const active = !isDisabled; + result[code] = { + 'id': id, + 'name': name, + 'code': code, + 'type': type, + 'precision': precision, + 'info': currency, + 'active': active, + 'fee': undefined, + 'limits': this.limits, + }; + } + return result; + } + + async fetchMarkets (params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + const request = { + 'omsId': omsId, + }; + const response = await this.publicGetGetInstruments (this.extend (request, params)); + // + // [ + // { + // "OMSId":1, + // "InstrumentId":3, + // "Symbol":"LTCBTC", + // "Product1":3, + // "Product1Symbol":"LTC", + // "Product2":1, + // "Product2Symbol":"BTC", + // "InstrumentType":"Standard", + // "VenueInstrumentId":3, + // "VenueId":1, + // "SortIndex":0, + // "SessionStatus":"Running", + // "PreviousSessionStatus":"Stopped", + // "SessionStatusDateTime":"2020-11-25T19:42:15.245Z", + // "SelfTradePrevention":true, + // "QuantityIncrement":0.0000000100000000000000000000, + // "PriceIncrement":0.0000000100000000000000000000, + // "MinimumQuantity":0.0100000000000000000000000000, + // "MinimumPrice":0.0000010000000000000000000000, + // "VenueSymbol":"LTCBTC", + // "IsDisable":false, + // "MasterDataId":0, + // "PriceCollarThreshold":0.0000000000000000000000000000, + // "PriceCollarPercent":0.0000000000000000000000000000, + // "PriceCollarEnabled":false, + // "PriceFloorLimit":0.0000000000000000000000000000, + // "PriceFloorLimitEnabled":false, + // "PriceCeilingLimit":0.0000000000000000000000000000, + // "PriceCeilingLimitEnabled":false, + // "CreateWithMarketRunning":true, + // "AllowOnlyMarketMakerCounterParty":false, + // "PriceCollarIndexDifference":0.0000000000000000000000000000, + // "PriceCollarConvertToOtcEnabled":false, + // "PriceCollarConvertToOtcClientUserId":0, + // "PriceCollarConvertToOtcAccountId":0, + // "PriceCollarConvertToOtcThreshold":0.0000000000000000000000000000, + // "OtcConvertSizeThreshold":0.0000000000000000000000000000, + // "OtcConvertSizeEnabled":false, + // "OtcTradesPublic":true, + // "PriceTier":0 + // }, + // ] + // + const result = []; + for (let i = 0; i < response.length; i++) { + const market = response[i]; + const id = this.safeString (market, 'InstrumentId'); + // const lowercaseId = this.safeStringLower (market, 'symbol'); + const baseId = this.safeString (market, 'Product1'); + const quoteId = this.safeString (market, 'Product2'); + const base = this.safeCurrencyCode (this.safeString (market, 'Product1Symbol')); + const quote = this.safeCurrencyCode (this.safeString (market, 'Product2Symbol')); + const symbol = base + '/' + quote; + const precision = { + 'amount': this.safeFloat (market, 'QuantityIncrement'), + 'price': this.safeFloat (market, 'PriceIncrement'), + }; + const sessionStatus = this.safeString (market, 'SessionStatus'); + const isDisable = this.safeValue (market, 'IsDisable'); + const sessionRunning = (sessionStatus === 'Running'); + const active = (sessionRunning && !isDisable) ? true : false; + result.push ({ + 'id': id, + 'symbol': symbol, + 'base': base, + 'quote': quote, + 'baseId': baseId, + 'quoteId': quoteId, + 'info': market, + 'active': active, + 'precision': precision, + 'limits': { + 'amount': { + 'min': this.safeFloat (market, 'MinimumQuantity'), + 'max': undefined, + }, + 'price': { + 'min': this.safeFloat (market, 'MinimumPrice'), + 'max': undefined, + }, + 'cost': { + 'min': undefined, + 'max': undefined, + }, + }, + }); + } + return result; + } + + parseOrderBook (orderbook, timestamp = undefined, bidsKey = 'bids', asksKey = 'asks', priceKey = 6, amountKey = 8) { + let nonce = undefined; + const result = { + 'bids': [], + 'asks': [], + 'timestamp': undefined, + 'datetime': undefined, + 'nonce': undefined, + }; + for (let i = 0; i < orderbook.length; i++) { + const level = orderbook[i]; + if (timestamp === undefined) { + timestamp = this.safeInteger (level, 2); + } else { + const newTimestamp = this.safeInteger (level, 2); + timestamp = Math.max (timestamp, newTimestamp); + } + if (nonce === undefined) { + nonce = this.safeInteger (level, 0); + } else { + const newNonce = this.safeInteger (level, 0); + nonce = Math.max (nonce, newNonce); + } + const bidask = this.parseBidAsk (level, priceKey, amountKey); + const levelSide = this.safeValue (level, 9); + const side = levelSide ? asksKey : bidsKey; + result[side].push (bidask); + } + result['bids'] = this.sortBy (result['bids'], 0, true); + result['asks'] = this.sortBy (result['asks'], 0); + result['timestamp'] = timestamp; + result['datetime'] = this.iso8601 (timestamp); + result['nonce'] = nonce; + return result; + } + + async fetchOrderBook (symbol, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + const market = this.market (symbol); + limit = (limit === undefined) ? 100 : limit; // default 100 + const request = { + 'omsId': omsId, + 'InstrumentId': market['id'], + 'Depth': limit, // default 100 + }; + const response = await this.publicGetGetL2Snapshot (this.extend (request, params)); + // + // [ + // [ + // 0, // 0 MDUpdateId + // 1, // 1 Number of Unique Accounts + // 123, // 2 ActionDateTime in Posix format X 1000 + // 0, // 3 ActionType 0 (New), 1 (Update), 2(Delete) + // 0.0, // 4 LastTradePrice + // 0, // 5 Number of Orders + // 0.0, // 6 Price + // 0, // 7 ProductPairCode + // 0.0, // 8 Quantity + // 0, // 9 Side + // ], + // [97244115,1,1607456142963,0,19069.32,1,19069.31,8,0.140095,0], + // [97244115,0,1607456142963,0,19069.32,1,19068.64,8,0.0055,0], + // [97244115,0,1607456142963,0,19069.32,1,19068.26,8,0.021291,0], + // [97244115,1,1607456142964,0,19069.32,1,19069.32,8,0.099636,1], + // [97244115,0,1607456142964,0,19069.32,1,19069.98,8,0.1,1], + // [97244115,0,1607456142964,0,19069.32,1,19069.99,8,0.141604,1], + // ] + // + return this.parseOrderBook (response); + } + + parseTicker (ticker, market = undefined) { + // + // fetchTicker + // + // { + // "OMSId":1, + // "InstrumentId":8, + // "BestBid":19069.31, + // "BestOffer":19069.32, + // "LastTradedPx":19069.32, + // "LastTradedQty":0.0001, + // "LastTradeTime":1607040406424, + // "SessionOpen":19069.32, + // "SessionHigh":19069.32, + // "SessionLow":19069.32, + // "SessionClose":19069.32, + // "Volume":0.0001, + // "CurrentDayVolume":0.0001, + // "CurrentDayNotional":1.906932, + // "CurrentDayNumTrades":1, + // "CurrentDayPxChange":0.00, + // "Rolling24HrVolume":0.000000000000000000000000000, + // "Rolling24HrNotional":0.00000000000000000000000, + // "Rolling24NumTrades":0, + // "Rolling24HrPxChange":0, + // "TimeStamp":"1607040406425", + // "BidQty":0, + // "AskQty":0, + // "BidOrderCt":0, + // "AskOrderCt":0, + // "Rolling24HrPxChangePercent":0, + // } + // + const timestamp = this.safeInteger (ticker, 'TimeStamp'); + const marketId = this.safeString (ticker, 'InstrumentId'); + const symbol = this.safeSymbol (marketId, market); + const last = this.safeFloat (ticker, 'LastTradedPx'); + const percentage = this.safeFloat (ticker, 'Rolling24HrPxChangePercent'); + const change = this.safeFloat (ticker, 'Rolling24HrPxChange'); + const open = this.safeFloat (ticker, 'SessionOpen'); + let average = undefined; + if ((last !== undefined) && (change !== undefined)) { + average = this.sum (last, open) / 2; + } + const baseVolume = this.safeFloat (ticker, 'Rolling24HrVolume'); + const quoteVolume = this.safeFloat (ticker, 'Rolling24HrNotional'); + const vwap = this.vwap (baseVolume, quoteVolume); + return { + 'symbol': symbol, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'high': this.safeFloat (ticker, 'SessionHigh'), + 'low': this.safeFloat (ticker, 'SessionLow'), + 'bid': this.safeFloat (ticker, 'BestBid'), + 'bidVolume': undefined, // this.safeFloat (ticker, 'BidQty'), always shows 0 + 'ask': this.safeFloat (ticker, 'BestOffer'), + 'askVolume': undefined, // this.safeFloat (ticker, 'AskQty'), always shows 0 + 'vwap': vwap, + 'open': open, + 'close': last, + 'last': last, + 'previousClose': undefined, + 'change': change, + 'percentage': percentage, + 'average': average, + 'baseVolume': baseVolume, + 'quoteVolume': quoteVolume, + 'info': ticker, + }; + } + + async fetchTicker (symbol, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'omsId': omsId, + 'InstrumentId': market['id'], + }; + const response = await this.publicGetGetLevel1 (this.extend (request, params)); + // + // { + // "OMSId":1, + // "InstrumentId":8, + // "BestBid":19069.31, + // "BestOffer":19069.32, + // "LastTradedPx":19069.32, + // "LastTradedQty":0.0001, + // "LastTradeTime":1607040406424, + // "SessionOpen":19069.32, + // "SessionHigh":19069.32, + // "SessionLow":19069.32, + // "SessionClose":19069.32, + // "Volume":0.0001, + // "CurrentDayVolume":0.0001, + // "CurrentDayNotional":1.906932, + // "CurrentDayNumTrades":1, + // "CurrentDayPxChange":0.00, + // "Rolling24HrVolume":0.000000000000000000000000000, + // "Rolling24HrNotional":0.00000000000000000000000, + // "Rolling24NumTrades":0, + // "Rolling24HrPxChange":0, + // "TimeStamp":"1607040406425", + // "BidQty":0, + // "AskQty":0, + // "BidOrderCt":0, + // "AskOrderCt":0, + // "Rolling24HrPxChangePercent":0, + // } + // + return this.parseTicker (response, market); + } + + parseOHLCV (ohlcv, market = undefined) { + // + // [ + // 1501603632000, // 0 DateTime + // 2700.33, // 1 High + // 2687.01, // 2 Low + // 2687.01, // 3 Open + // 2687.01, // 4 Close + // 24.86100992, // 5 Volume + // 0, // 6 Inside Bid Price + // 2870.95, // 7 Inside Ask Price + // 1 // 8 InstrumentId + // ] + // + return [ + this.safeInteger (ohlcv, 0), + this.safeFloat (ohlcv, 3), + this.safeFloat (ohlcv, 1), + this.safeFloat (ohlcv, 2), + this.safeFloat (ohlcv, 4), + this.safeFloat (ohlcv, 5), + ]; + } + + async fetchOHLCV (symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'omsId': omsId, + 'InstrumentId': market['id'], + 'Interval': this.timeframes[timeframe], + }; + const duration = this.parseTimeframe (timeframe); + const now = this.milliseconds (); + if (since === undefined) { + if (limit !== undefined) { + request['FromDate'] = this.ymd (now - duration * limit * 1000); + request['ToDate'] = this.ymd (now); + } + } else { + request['FromDate'] = this.ymd (since); + if (limit === undefined) { + request['ToDate'] = this.ymd (now); + } else { + request['ToDate'] = this.ymd (this.sum (since, duration * limit * 1000)); + } + } + const response = await this.publicGetGetTickerHistory (this.extend (request, params)); + // + // [ + // [1607299260000,19069.32,19069.32,19069.32,19069.32,0,19069.31,19069.32,8,1607299200000], + // [1607299320000,19069.32,19069.32,19069.32,19069.32,0,19069.31,19069.32,8,1607299260000], + // [1607299380000,19069.32,19069.32,19069.32,19069.32,0,19069.31,19069.32,8,1607299320000], + // ] + // + return this.parseOHLCVs (response, market, timeframe, since, limit); + } + + parseTrade (trade, market = undefined) { + // + // fetchTrades (public) + // + // [ + // 6913253, // 0 TradeId + // 8, // 1 ProductPairCode + // 0.03340802, // 2 Quantity + // 19116.08, // 3 Price + // 2543425077, // 4 Order1 + // 2543425482, // 5 Order2 + // 1606935922416, // 6 Tradetime + // 0, // 7 Direction + // 1, // 8 TakerSide + // 0, // 9 BlockTrade + // 0, // 10 Either Order1ClientId or Order2ClientId + // ] + // + // fetchMyTrades (private) + // + // { + // "OMSId":1, + // "ExecutionId":16916567, + // "TradeId":14476351, + // "OrderId":2543565231, + // "AccountId":449, + // "AccountName":"igor@ccxt.trade", + // "SubAccountId":0, + // "ClientOrderId":0, + // "InstrumentId":8, + // "Side":"Sell", + // "OrderType":"Market", + // "Quantity":0.1230000000000000000000000000, + // "RemainingQuantity":0.0000000000000000000000000000, + // "Price":19069.310000000000000000000000, + // "Value":2345.5251300000000000000000000, + // "CounterParty":"7", + // "OrderTradeRevision":1, + // "Direction":"NoChange", + // "IsBlockTrade":false, + // "Fee":1.1727625650000000000000000000, + // "FeeProductId":8, + // "OrderOriginator":446, + // "UserName":"igor@ccxt.trade", + // "TradeTimeMS":1607565031569, + // "MakerTaker":"Taker", + // "AdapterTradeId":0, + // "InsideBid":19069.310000000000000000000000, + // "InsideBidSize":0.2400950000000000000000000000, + // "InsideAsk":19069.320000000000000000000000, + // "InsideAskSize":0.0997360000000000000000000000, + // "IsQuote":false, + // "CounterPartyClientUserId":1, + // "NotionalProductId":2, + // "NotionalRate":1.0000000000000000000000000000, + // "NotionalValue":2345.5251300000000000000000000, + // "NotionalHoldAmount":0, + // "TradeTime":637431618315686826 + // } + // + // fetchOrderTrades + // + // { + // "Side":"Sell", + // "OrderId":2543565235, + // "Price":18600.000000000000000000000000, + // "Quantity":0.0000000000000000000000000000, + // "DisplayQuantity":0.0000000000000000000000000000, + // "Instrument":8, + // "Account":449, + // "AccountName":"igor@ccxt.trade", + // "OrderType":"Limit", + // "ClientOrderId":0, + // "OrderState":"FullyExecuted", + // "ReceiveTime":1607585844956, + // "ReceiveTimeTicks":637431826449564182, + // "LastUpdatedTime":1607585844959, + // "LastUpdatedTimeTicks":637431826449593893, + // "OrigQuantity":0.1230000000000000000000000000, + // "QuantityExecuted":0.1230000000000000000000000000, + // "GrossValueExecuted":2345.3947500000000000000000000, + // "ExecutableValue":0.0000000000000000000000000000, + // "AvgPrice":19068.250000000000000000000000, + // "CounterPartyId":0, + // "ChangeReason":"Trade", + // "OrigOrderId":2543565235, + // "OrigClOrdId":0, + // "EnteredBy":446, + // "UserName":"igor@ccxt.trade", + // "IsQuote":false, + // "InsideAsk":19069.320000000000000000000000, + // "InsideAskSize":0.0997360000000000000000000000, + // "InsideBid":19068.250000000000000000000000, + // "InsideBidSize":1.3300010000000000000000000000, + // "LastTradePrice":19068.250000000000000000000000, + // "RejectReason":"", + // "IsLockedIn":false, + // "CancelReason":"", + // "OrderFlag":"0", + // "UseMargin":false, + // "StopPrice":0.0000000000000000000000000000, + // "PegPriceType":"Unknown", + // "PegOffset":0.0000000000000000000000000000, + // "PegLimitOffset":0.0000000000000000000000000000, + // "IpAddress":"5.228.233.138", + // "ClientOrderIdUuid":null, + // "OMSId":1 + // } + // + let price = undefined; + let amount = undefined; + let cost = undefined; + let timestamp = undefined; + let id = undefined; + let marketId = undefined; + let side = undefined; + let orderId = undefined; + let takerOrMaker = undefined; + let fee = undefined; + let type = undefined; + if (Array.isArray (trade)) { + price = this.safeFloat (trade, 3); + amount = this.safeFloat (trade, 2); + if ((price !== undefined) && (amount !== undefined)) { + cost = price * amount; + } + timestamp = this.safeInteger (trade, 6); + id = this.safeString (trade, 0); + marketId = this.safeInteger (trade, 1); + const takerSide = this.safeValue (trade, 8); + side = takerSide ? 'sell' : 'buy'; + orderId = this.safeString (trade, 4); + } else { + timestamp = this.safeInteger2 (trade, 'TradeTimeMS', 'ReceiveTime'); + id = this.safeString (trade, 'TradeId'); + orderId = this.safeString2 (trade, 'OrderId', 'OrigOrderId'); + marketId = this.safeString2 (trade, 'InstrumentId', 'Instrument'); + price = this.safeFloat (trade, 'Price'); + amount = this.safeFloat (trade, 'Quantity'); + cost = this.safeFloat2 (trade, 'Value', 'GrossValueExecuted'); + takerOrMaker = this.safeStringLower (trade, 'MakerTaker'); + side = this.safeStringLower (trade, 'Side'); + type = this.safeStringLower (trade, 'OrderType'); + const feeCost = this.safeFloat (trade, 'Fee'); + if (feeCost !== undefined) { + const feeCurrencyId = this.safeString (trade, 'FeeProductId'); + const feeCurrencyCode = this.safeCurrencyCode (feeCurrencyId); + fee = { + 'cost': feeCost, + 'currency': feeCurrencyCode, + }; + } + } + const symbol = this.safeSymbol (marketId, market); + return { + 'info': trade, + 'id': id, + 'symbol': symbol, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'order': orderId, + 'type': type, + 'side': side, + 'takerOrMaker': takerOrMaker, + 'price': price, + 'amount': amount, + 'cost': cost, + 'fee': fee, + }; + } + + async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'omsId': omsId, + 'InstrumentId': market['id'], + }; + if (limit !== undefined) { + request['Count'] = limit; + } + const response = await this.publicGetGetLastTrades (this.extend (request, params)); + // + // [ + // [6913253,8,0.03340802,19116.08,2543425077,2543425482,1606935922416,0,1,0,0], + // [6913254,8,0.01391671,19117.42,2543427510,2543427811,1606935927998,1,1,0,0], + // [6913255,8,0.000006,19107.81,2543430495,2543430793,1606935933881,2,0,0,0], + // ] + // + return this.parseTrades (response, market, since, limit); + } + + async fetchAccounts (params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + this.checkRequiredCredentials (); + const request = { + 'omsId': omsId, + 'UserId': this.uid, + 'UserName': 'igor@ccxt.trade', + }; + const response = await this.privateGetGetUserAccounts (this.extend (request, params)); + // + // [ 449 ] // comma-separated list of account ids + // + const result = []; + for (let i = 0; i < response.length; i++) { + const accountId = this.safeString (response, i); + result.push ({ + 'id': accountId, + 'type': undefined, + 'currency': undefined, + 'info': accountId, + }); + } + return result; + } + + async fetchBalance (params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + const request = { + 'omsId': omsId, + 'AccountId': accountId, + }; + const response = await this.privateGetGetAccountPositions (this.extend (request, params)); + // + // [ + // { + // "OMSId":1, + // "AccountId":449, + // "ProductSymbol":"BTC", + // "ProductId":1, + // "Amount":10.000000000000000000000000000, + // "Hold":0, + // "PendingDeposits":0.0000000000000000000000000000, + // "PendingWithdraws":0.0000000000000000000000000000, + // "TotalDayDeposits":10.000000000000000000000000000, + // "TotalMonthDeposits":10.000000000000000000000000000, + // "TotalYearDeposits":10.000000000000000000000000000, + // "TotalDayDepositNotional":10.000000000000000000000000000, + // "TotalMonthDepositNotional":10.000000000000000000000000000, + // "TotalYearDepositNotional":10.000000000000000000000000000, + // "TotalDayWithdraws":0, + // "TotalMonthWithdraws":0, + // "TotalYearWithdraws":0, + // "TotalDayWithdrawNotional":0, + // "TotalMonthWithdrawNotional":0, + // "TotalYearWithdrawNotional":0, + // "NotionalProductId":8, + // "NotionalProductSymbol":"USDT", + // "NotionalValue":10.000000000000000000000000000, + // "NotionalHoldAmount":0, + // "NotionalRate":1 + // }, + // ] + // + const result = { 'info': response }; + for (let i = 0; i < response.length; i++) { + const balance = response[i]; + const currencyId = this.safeString (balance, 'ProductId'); + const code = this.safeCurrencyCode (currencyId); + const account = this.account (); + account['total'] = this.safeFloat (balance, 'Amount'); + account['used'] = this.safeFloat (balance, 'Hold'); + result[code] = account; + } + return this.parseBalance (result); + } + + parseLedgerEntryType (type) { + const types = { + 'Trade': 'trade', + 'Deposit': 'transaction', + 'Withdraw': 'transaction', + 'Transfer': 'transfer', + 'OrderHold': 'trade', + 'WithdrawHold': 'transaction', + 'DepositHold': 'transaction', + 'MarginHold': 'trade', + 'ManualHold': 'trade', + 'ManualEntry': 'trade', + 'MarginAcquisition': 'trade', + 'MarginRelinquish': 'trade', + 'MarginQuoteHold': 'trade', + }; + return this.safeString (types, type, type); + } + + parseLedgerEntry (item, currency = undefined) { + // + // { + // "TransactionId":2663709493, + // "ReferenceId":68, + // "OMSId":1, + // "AccountId":449, + // "CR":10.000000000000000000000000000, + // "DR":0.0000000000000000000000000000, + // "Counterparty":3, + // "TransactionType":"Other", + // "ReferenceType":"Deposit", + // "ProductId":1, + // "Balance":10.000000000000000000000000000, + // "TimeStamp":1607532331591 + // } + // + const id = this.safeString (item, 'TransactionId'); + const account = this.safeString (item, 'AccountId'); + const referenceId = this.safeString (item, 'ReferenceId'); + const referenceAccount = this.safeString (item, 'Counterparty'); + const type = this.parseLedgerEntryType (this.safeString (item, 'ReferenceType')); + const currencyId = this.safeString (item, 'ProductId'); + const code = this.safeCurrencyCode (currencyId, currency); + const credit = this.safeFloat (item, 'CR'); + const debit = this.safeFloat (item, 'DR'); + let amount = undefined; + let direction = undefined; + if (credit > 0) { + amount = credit; + direction = 'in'; + } else if (debit > 0) { + amount = debit; + direction = 'out'; + } + const timestamp = this.safeInteger (item, 'TimeStamp'); + let before = undefined; + const after = this.safeFloat (item, 'Balance'); + if (direction === 'out') { + before = this.sum (after, amount); + } else if (direction === 'in') { + before = Math.max (0, after - amount); + } + const status = 'ok'; + return { + 'info': item, + 'id': id, + 'direction': direction, + 'account': account, + 'referenceId': referenceId, + 'referenceAccount': referenceAccount, + 'type': type, + 'currency': code, + 'amount': amount, + 'before': before, + 'after': after, + 'status': status, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'fee': undefined, + }; + } + + async fetchLedger (code = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + const request = { + 'omsId': omsId, + 'AccountId': accountId, + }; + if (limit !== undefined) { + request['Depth'] = limit; + } + const response = await this.privateGetGetAccountTransactions (this.extend (request, params)); + // + // [ + // { + // "TransactionId":2663709493, + // "ReferenceId":68, + // "OMSId":1, + // "AccountId":449, + // "CR":10.000000000000000000000000000, + // "DR":0.0000000000000000000000000000, + // "Counterparty":3, + // "TransactionType":"Other", + // "ReferenceType":"Deposit", + // "ProductId":1, + // "Balance":10.000000000000000000000000000, + // "TimeStamp":1607532331591 + // }, + // ] + // + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + } + return this.parseLedger (response, currency, since, limit); + } + + parseOrderStatus (status) { + const statuses = { + 'Accepted': 'open', + 'Rejected': 'rejected', + 'Working': 'open', + 'Canceled': 'canceled', + 'Expired': 'expired', + 'FullyExecuted': 'closed', + }; + return this.safeString (statuses, status, status); + } + + parseOrder (order, market = undefined) { + // + // createOrder + // + // { + // "status":"Accepted", + // "errormsg":"", + // "OrderId": 2543565231 + // } + // + // editOrder + // + // { + // "ReplacementOrderId": 1234, + // "ReplacementClOrdId": 1561, + // "OrigOrderId": 5678, + // "OrigClOrdId": 91011, + // } + // + // fetchOpenOrders, fetchClosedOrders + // + // { + // "Side":"Buy", + // "OrderId":2543565233, + // "Price":19010, + // "Quantity":0.345, + // "DisplayQuantity":0.345, + // "Instrument":8, + // "Account":449, + // "AccountName":"igor@ccxt.trade", + // "OrderType":"Limit", + // "ClientOrderId":0, + // "OrderState":"Working", + // "ReceiveTime":1607579326003, + // "ReceiveTimeTicks":637431761260028981, + // "LastUpdatedTime":1607579326005, + // "LastUpdatedTimeTicks":637431761260054714, + // "OrigQuantity":0.345, + // "QuantityExecuted":0, + // "GrossValueExecuted":0, + // "ExecutableValue":0, + // "AvgPrice":0, + // "CounterPartyId":0, + // "ChangeReason":"NewInputAccepted", + // "OrigOrderId":2543565233, + // "OrigClOrdId":0, + // "EnteredBy":446, + // "UserName":"igor@ccxt.trade", + // "IsQuote":false, + // "InsideAsk":19069.32, + // "InsideAskSize":0.099736, + // "InsideBid":19068.25, + // "InsideBidSize":1.330001, + // "LastTradePrice":19068.25, + // "RejectReason":"", + // "IsLockedIn":false, + // "CancelReason":"", + // "OrderFlag":"AddedToBook", + // "UseMargin":false, + // "StopPrice":0, + // "PegPriceType":"Unknown", + // "PegOffset":0, + // "PegLimitOffset":0, + // "IpAddress":null, + // "ClientOrderIdUuid":null, + // "OMSId":1 + // } + // + const id = this.safeString2 (order, 'ReplacementOrderId', 'OrderId'); + const timestamp = this.safeInteger (order, 'ReceiveTime'); + let lastTradeTimestamp = undefined; + const marketId = this.safeString (order, 'Instrument'); + const symbol = this.safeSymbol (marketId, market); + const side = this.safeStringLower (order, 'Side'); + const type = this.safeStringLower (order, 'OrderType'); + const clientOrderId = this.safeString2 (order, 'ReplacementClOrdId', 'ClientOrderId'); + let price = this.safeFloat (order, 'Price', 0.0); + price = (price > 0.0) ? price : undefined; + const amount = this.safeFloat (order, 'OrigQuantity'); + const filled = this.safeFloat (order, 'QuantityExecuted'); + const cost = this.safeFloat (order, 'GrossValueExecuted'); + let remaining = undefined; + let average = undefined; + if (filled !== undefined) { + if (amount !== undefined) { + remaining = Math.max (0, amount - filled); + } + if (filled > 0) { + lastTradeTimestamp = this.safeInteger (order, 'LastUpdatedTime'); + average = this.safeFloat (order, 'AvgPrice', 0.0); + average = (average > 0) ? average : undefined; + } + } + let stopPrice = this.safeFloat (order, 'StopPrice', 0.0); + stopPrice = (stopPrice > 0.0) ? stopPrice : undefined; + const timeInForce = undefined; + const status = this.parseOrderStatus (this.safeString (order, 'OrderState')); + const fee = undefined; + const trades = undefined; + return { + 'id': id, + 'clientOrderId': clientOrderId, + 'info': order, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'lastTradeTimestamp': lastTradeTimestamp, + 'status': status, + 'symbol': symbol, + 'type': type, + 'timeInForce': timeInForce, + 'postOnly': undefined, + 'side': side, + 'price': price, + 'stopPrice': stopPrice, + 'cost': cost, + 'amount': amount, + 'filled': filled, + 'average': average, + 'remaining': remaining, + 'fee': fee, + 'trades': trades, + }; + } + + async createOrder (symbol, type, side, amount, price = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + const clientOrderId = this.safeInteger2 (params, 'ClientOrderId', 'clientOrderId'); + params = this.omit (params, [ 'accountId', 'AccountId', 'clientOrderId', 'ClientOrderId' ]); + const market = this.market (symbol); + const orderSide = (side === 'buy') ? 0 : 1; + const request = { + 'InstrumentId': parseInt (market['id']), + 'omsId': omsId, + 'AccountId': accountId, + 'TimeInForce': 1, // 0 Unknown, 1 GTC by default, 2 OPG execute as close to opening price as possible, 3 IOC immediate or canceled, 4 FOK fill-or-kill, 5 GTX good 'til executed, 6 GTD good 'til date + // 'ClientOrderId': clientOrderId, // defaults to 0 + // If this order is order A, OrderIdOCO refers to the order ID of an order B (which is not the order being created by this call). + // If order B executes, then order A created by this call is canceled. + // You can also set up order B to watch order A in the same way, but that may require an update to order B to make it watch this one, which could have implications for priority in the order book. + // See CancelReplaceOrder and ModifyOrder. + // 'OrderIdOCO': 0, // The order ID if One Cancels the Other. + // 'UseDisplayQuantity': false, // If you enter a Limit order with a reserve, you must set UseDisplayQuantity to true + 'Side': orderSide, // 0 Buy, 1 Sell, 2 Short, 3 unknown an error condition + 'Quantity': parseFloat (this.amountToPrecision (symbol, amount)), + 'OrderType': this.safeInteger (this.options['orderTypes'], this.capitalize (type)), // 0 Unknown, 1 Market, 2 Limit, 3 StopMarket, 4 StopLimit, 5 TrailingStopMarket, 6 TrailingStopLimit, 7 BlockTrade + // 'PegPriceType': 3, // 1 Last, 2 Bid, 3 Ask, 4 Midpoint + // 'LimitPrice': parseFloat (this.priceToPrecision (symbol, price)), + }; + // If OrderType=1 (Market), Side=0 (Buy), and LimitPrice is supplied, the Market order will execute up to the value specified + if (price !== undefined) { + request['LimitPrice'] = parseFloat (this.priceToPrecision (symbol, price)); + } + if (clientOrderId !== undefined) { + request['ClientOrderId'] = clientOrderId; + } + const response = await this.privatePostSendOrder (this.extend (request, params)); + // + // { + // "status":"Accepted", + // "errormsg":"", + // "OrderId": 2543565231 + // } + // + return this.parseOrder (response, market); + } + + async editOrder (id, symbol, type, side, amount, price = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + const clientOrderId = this.safeInteger2 (params, 'ClientOrderId', 'clientOrderId'); + params = this.omit (params, [ 'accountId', 'AccountId', 'clientOrderId', 'ClientOrderId' ]); + const market = this.market (symbol); + const orderSide = (side === 'buy') ? 0 : 1; + const request = { + 'OrderIdToReplace': parseInt (id), + 'InstrumentId': parseInt (market['id']), + 'omsId': omsId, + 'AccountId': accountId, + 'TimeInForce': 1, // 0 Unknown, 1 GTC by default, 2 OPG execute as close to opening price as possible, 3 IOC immediate or canceled, 4 FOK fill-or-kill, 5 GTX good 'til executed, 6 GTD good 'til date + // 'ClientOrderId': clientOrderId, // defaults to 0 + // If this order is order A, OrderIdOCO refers to the order ID of an order B (which is not the order being created by this call). + // If order B executes, then order A created by this call is canceled. + // You can also set up order B to watch order A in the same way, but that may require an update to order B to make it watch this one, which could have implications for priority in the order book. + // See CancelReplaceOrder and ModifyOrder. + // 'OrderIdOCO': 0, // The order ID if One Cancels the Other. + // 'UseDisplayQuantity': false, // If you enter a Limit order with a reserve, you must set UseDisplayQuantity to true + 'Side': orderSide, // 0 Buy, 1 Sell, 2 Short, 3 unknown an error condition + 'Quantity': parseFloat (this.amountToPrecision (symbol, amount)), + 'OrderType': this.safeInteger (this.options['orderTypes'], this.capitalize (type)), // 0 Unknown, 1 Market, 2 Limit, 3 StopMarket, 4 StopLimit, 5 TrailingStopMarket, 6 TrailingStopLimit, 7 BlockTrade + // 'PegPriceType': 3, // 1 Last, 2 Bid, 3 Ask, 4 Midpoint + // 'LimitPrice': parseFloat (this.priceToPrecision (symbol, price)), + }; + // If OrderType=1 (Market), Side=0 (Buy), and LimitPrice is supplied, the Market order will execute up to the value specified + if (price !== undefined) { + request['LimitPrice'] = parseFloat (this.priceToPrecision (symbol, price)); + } + if (clientOrderId !== undefined) { + request['ClientOrderId'] = clientOrderId; + } + const response = await this.privatePostCancelReplaceOrder (this.extend (request, params)); + // + // { + // "replacementOrderId": 1234, + // "replacementClOrdId": 1561, + // "origOrderId": 5678, + // "origClOrdId": 91011, + // } + // + return this.parseOrder (response, market); + } + + async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + const request = { + 'omsId': omsId, + 'AccountId': accountId, + // 'InstrumentId': market['id'], + // 'TradeId': 123, // If you specify TradeId, GetTradesHistory can return all states for a single trade + // 'OrderId': 456, // If specified, the call returns all trades associated with the order + // 'UserId': integer. The ID of the logged-in user. If not specified, the call returns trades associated with the users belonging to the default account for the logged-in user of this OMS. + // 'StartTimeStamp': long integer. The historical date and time at which to begin the trade report, in POSIX format. If not specified, reverts to the start date of this account on the trading venue. + // 'EndTimeStamp': long integer. Date at which to end the trade report, in POSIX format. + // 'Depth': integer. In this case, the count of trades to return, counting from the StartIndex. If Depth is not specified, returns all trades between BeginTimeStamp and EndTimeStamp, beginning at StartIndex. + // 'StartIndex': 0 // from the most recent trade 0 and moving backwards in time + // 'ExecutionId': 123, // The ID of the individual buy or sell execution. If not specified, returns all. + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['InstrumentId'] = market['id']; + } + if (since !== undefined) { + request['StartTimeStamp'] = since; + } + if (limit !== undefined) { + request['Depth'] = limit; + } + const response = await this.privateGetGetTradesHistory (this.extend (request, params)); + // + // [ + // { + // "OMSId":1, + // "ExecutionId":16916567, + // "TradeId":14476351, + // "OrderId":2543565231, + // "AccountId":449, + // "AccountName":"igor@ccxt.trade", + // "SubAccountId":0, + // "ClientOrderId":0, + // "InstrumentId":8, + // "Side":"Sell", + // "OrderType":"Market", + // "Quantity":0.1230000000000000000000000000, + // "RemainingQuantity":0.0000000000000000000000000000, + // "Price":19069.310000000000000000000000, + // "Value":2345.5251300000000000000000000, + // "CounterParty":"7", + // "OrderTradeRevision":1, + // "Direction":"NoChange", + // "IsBlockTrade":false, + // "Fee":1.1727625650000000000000000000, + // "FeeProductId":8, + // "OrderOriginator":446, + // "UserName":"igor@ccxt.trade", + // "TradeTimeMS":1607565031569, + // "MakerTaker":"Taker", + // "AdapterTradeId":0, + // "InsideBid":19069.310000000000000000000000, + // "InsideBidSize":0.2400950000000000000000000000, + // "InsideAsk":19069.320000000000000000000000, + // "InsideAskSize":0.0997360000000000000000000000, + // "IsQuote":false, + // "CounterPartyClientUserId":1, + // "NotionalProductId":2, + // "NotionalRate":1.0000000000000000000000000000, + // "NotionalValue":2345.5251300000000000000000000, + // "NotionalHoldAmount":0, + // "TradeTime":637431618315686826 + // } + // ] + // + return this.parseTrades (response, market, since, limit); + } + + async cancelAllOrders (symbol = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + const request = { + 'omsId': omsId, + 'AccountId': accountId, + }; + if (symbol !== undefined) { + const market = this.market (symbol); + request['IntrumentId'] = market['id']; + } + const response = await this.privatePostCancelAllOrders (this.extend (request, params)); + // + // { + // "result":true, + // "errormsg":null, + // "errorcode":0, + // "detail":null + // } + // + return response; + } + + async cancelOrder (id, symbol = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + // const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + // const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + // params = this.omit (params, [ 'accountId', 'AccountId' ]); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + } + const request = { + 'omsId': omsId, + // 'AccountId': accountId, + }; + const clientOrderId = this.safeInteger2 (params, 'clientOrderId', 'ClOrderId'); + if (clientOrderId !== undefined) { + request['ClOrderId'] = clientOrderId; + } else { + request['OrderId'] = parseInt (id); + } + params = this.omit (params, [ 'clientOrderId', 'ClOrderId' ]); + const response = await this.privatePostCancelOrder (this.extend (request, params)); + const order = this.parseOrder (response, market); + return this.extend (order, { + 'id': id, + 'clientOrderId': clientOrderId, + }); + } + + async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + } + const request = { + 'omsId': omsId, + 'AccountId': accountId, + }; + const response = await this.privateGetGetOpenOrders (this.extend (request, params)); + // + // [ + // { + // "Side":"Buy", + // "OrderId":2543565233, + // "Price":19010, + // "Quantity":0.345, + // "DisplayQuantity":0.345, + // "Instrument":8, + // "Account":449, + // "AccountName":"igor@ccxt.trade", + // "OrderType":"Limit", + // "ClientOrderId":0, + // "OrderState":"Working", + // "ReceiveTime":1607579326003, + // "ReceiveTimeTicks":637431761260028981, + // "LastUpdatedTime":1607579326005, + // "LastUpdatedTimeTicks":637431761260054714, + // "OrigQuantity":0.345, + // "QuantityExecuted":0, + // "GrossValueExecuted":0, + // "ExecutableValue":0, + // "AvgPrice":0, + // "CounterPartyId":0, + // "ChangeReason":"NewInputAccepted", + // "OrigOrderId":2543565233, + // "OrigClOrdId":0, + // "EnteredBy":446, + // "UserName":"igor@ccxt.trade", + // "IsQuote":false, + // "InsideAsk":19069.32, + // "InsideAskSize":0.099736, + // "InsideBid":19068.25, + // "InsideBidSize":1.330001, + // "LastTradePrice":19068.25, + // "RejectReason":"", + // "IsLockedIn":false, + // "CancelReason":"", + // "OrderFlag":"AddedToBook", + // "UseMargin":false, + // "StopPrice":0, + // "PegPriceType":"Unknown", + // "PegOffset":0, + // "PegLimitOffset":0, + // "IpAddress":null, + // "ClientOrderIdUuid":null, + // "OMSId":1 + // } + // ] + // + return this.parseOrders (response, market, since, limit); + } + + async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + const request = { + 'omsId': omsId, + 'AccountId': accountId, + // 'ClientOrderId': clientOrderId, + // 'OriginalOrderId': id, + // 'OriginalClientOrderId': long integer, + // 'UserId': integer, + // 'InstrumentId': market['id'], + // 'StartTimestamp': since, + // 'EndTimestamp': this.milliseconds (), + // 'Depth': limit, + // 'StartIndex': 0, + }; + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + request['InstrumentId'] = market['id']; + } + if (since !== undefined) { + request['StartTimeStamp'] = since; + } + if (limit !== undefined) { + request['Depth'] = limit; + } + const response = await this.privateGetGetOrdersHistory (this.extend (request, params)); + // + // [ + // { + // "Side":"Buy", + // "OrderId":2543565233, + // "Price":19010.000000000000000000000000, + // "Quantity":0.0000000000000000000000000000, + // "DisplayQuantity":0.3450000000000000000000000000, + // "Instrument":8, + // "Account":449, + // "AccountName":"igor@ccxt.trade", + // "OrderType":"Limit", + // "ClientOrderId":0, + // "OrderState":"Canceled", + // "ReceiveTime":1607579326003, + // "ReceiveTimeTicks":637431761260028981, + // "LastUpdatedTime":1607580965346, + // "LastUpdatedTimeTicks":637431777653463754, + // "OrigQuantity":0.3450000000000000000000000000, + // "QuantityExecuted":0.0000000000000000000000000000, + // "GrossValueExecuted":0.0000000000000000000000000000, + // "ExecutableValue":0.0000000000000000000000000000, + // "AvgPrice":0.0000000000000000000000000000, + // "CounterPartyId":0, + // "ChangeReason":"UserModified", + // "OrigOrderId":2543565233, + // "OrigClOrdId":0, + // "EnteredBy":446, + // "UserName":"igor@ccxt.trade", + // "IsQuote":false, + // "InsideAsk":19069.320000000000000000000000, + // "InsideAskSize":0.0997360000000000000000000000, + // "InsideBid":19068.250000000000000000000000, + // "InsideBidSize":1.3300010000000000000000000000, + // "LastTradePrice":19068.250000000000000000000000, + // "RejectReason":"", + // "IsLockedIn":false, + // "CancelReason":"UserModified", + // "OrderFlag":"AddedToBook, RemovedFromBook", + // "UseMargin":false, + // "StopPrice":0.0000000000000000000000000000, + // "PegPriceType":"Unknown", + // "PegOffset":0.0000000000000000000000000000, + // "PegLimitOffset":0.0000000000000000000000000000, + // "IpAddress":"5.228.233.138", + // "ClientOrderIdUuid":null, + // "OMSId":1 + // }, + // ] + // + return this.parseOrders (response, market, since, limit); + } + + async fetchOrder (id, symbol = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + } + const request = { + 'omsId': omsId, + 'AccountId': accountId, + 'OrderId': parseInt (id), + }; + const response = await this.privateGetGetOrderStatus (this.extend (request, params)); + // + // { + // "Side":"Sell", + // "OrderId":2543565232, + // "Price":0.0000000000000000000000000000, + // "Quantity":0.0000000000000000000000000000, + // "DisplayQuantity":0.0000000000000000000000000000, + // "Instrument":8, + // "Account":449, + // "AccountName":"igor@ccxt.trade", + // "OrderType":"Market", + // "ClientOrderId":0, + // "OrderState":"FullyExecuted", + // "ReceiveTime":1607569475591, + // "ReceiveTimeTicks":637431662755912377, + // "LastUpdatedTime":1607569475596, + // "LastUpdatedTimeTicks":637431662755960902, + // "OrigQuantity":1.0000000000000000000000000000, + // "QuantityExecuted":1.0000000000000000000000000000, + // "GrossValueExecuted":19068.270478610000000000000000, + // "ExecutableValue":0.0000000000000000000000000000, + // "AvgPrice":19068.270478610000000000000000, + // "CounterPartyId":0, + // "ChangeReason":"Trade", + // "OrigOrderId":2543565232, + // "OrigClOrdId":0, + // "EnteredBy":446, + // "UserName":"igor@ccxt.trade", + // "IsQuote":false, + // "InsideAsk":19069.320000000000000000000000, + // "InsideAskSize":0.0997360000000000000000000000, + // "InsideBid":19069.310000000000000000000000, + // "InsideBidSize":0.2400950000000000000000000000, + // "LastTradePrice":19069.310000000000000000000000, + // "RejectReason":"", + // "IsLockedIn":false, + // "CancelReason":"", + // "OrderFlag":"0", + // "UseMargin":false, + // "StopPrice":0.0000000000000000000000000000, + // "PegPriceType":"Unknown", + // "PegOffset":0.0000000000000000000000000000, + // "PegLimitOffset":0.0000000000000000000000000000, + // "IpAddress":"5.228.233.138", + // "ClientOrderIdUuid":null, + // "OMSId":1 + // } + // + return this.parseOrder (response, market); + } + + async fetchOrderTrades (id, symbol = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + // const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + // const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + // params = this.omit (params, [ 'accountId', 'AccountId' ]); + let market = undefined; + if (symbol !== undefined) { + market = this.market (symbol); + } + const request = { + 'OMSId': parseInt (omsId), + // 'AccountId': accountId, + 'OrderId': id, + }; + const response = await this.privatePostGetOrderHistoryByOrderId (this.extend (request, params)); + // + // [ + // { + // "Side":"Sell", + // "OrderId":2543565235, + // "Price":18600.000000000000000000000000, + // "Quantity":0.0000000000000000000000000000, + // "DisplayQuantity":0.0000000000000000000000000000, + // "Instrument":8, + // "Account":449, + // "AccountName":"igor@ccxt.trade", + // "OrderType":"Limit", + // "ClientOrderId":0, + // "OrderState":"FullyExecuted", + // "ReceiveTime":1607585844956, + // "ReceiveTimeTicks":637431826449564182, + // "LastUpdatedTime":1607585844959, + // "LastUpdatedTimeTicks":637431826449593893, + // "OrigQuantity":0.1230000000000000000000000000, + // "QuantityExecuted":0.1230000000000000000000000000, + // "GrossValueExecuted":2345.3947500000000000000000000, + // "ExecutableValue":0.0000000000000000000000000000, + // "AvgPrice":19068.250000000000000000000000, + // "CounterPartyId":0, + // "ChangeReason":"Trade", + // "OrigOrderId":2543565235, + // "OrigClOrdId":0, + // "EnteredBy":446, + // "UserName":"igor@ccxt.trade", + // "IsQuote":false, + // "InsideAsk":19069.320000000000000000000000, + // "InsideAskSize":0.0997360000000000000000000000, + // "InsideBid":19068.250000000000000000000000, + // "InsideBidSize":1.3300010000000000000000000000, + // "LastTradePrice":19068.250000000000000000000000, + // "RejectReason":"", + // "IsLockedIn":false, + // "CancelReason":"", + // "OrderFlag":"0", + // "UseMargin":false, + // "StopPrice":0.0000000000000000000000000000, + // "PegPriceType":"Unknown", + // "PegOffset":0.0000000000000000000000000000, + // "PegLimitOffset":0.0000000000000000000000000000, + // "IpAddress":"5.228.233.138", + // "ClientOrderIdUuid":null, + // "OMSId":1 + // }, + // ] + // + const grouped = this.groupBy (response, 'ChangeReason'); + const trades = this.safeValue (grouped, 'Trade', []); + return this.parseTrades (trades, market, since, limit); + } + + async fetchDepositAddress (code, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + const currency = this.currency (code); + const request = { + 'omsId': omsId, + 'AccountId': accountId, + 'ProductId': currency['id'], + 'GenerateNewKey': false, + }; + const response = await this.privateGetGetDepositInfo (this.extend (request, params)); + // + // { + // "result":true, + // "errormsg":null, + // "statuscode":0, + // "AssetManagerId":1, + // "AccountId":57922, + // "AssetId":16, + // "ProviderId":23, + // "DepositInfo":"[\"0x8A27564b5c30b91C93B1591821642420F323a210\"]" + // } + // + return this.parseDepositAddress (response, currency); + } + + parseDepositAddress (depositAddress, currency = undefined) { + // + // fetchDepositAddress, createDepositAddress + // + // { + // "result":true, + // "errormsg":null, + // "statuscode":0, + // "AssetManagerId":1, + // "AccountId":449, + // "AssetId":1, + // "ProviderId":1, + // "DepositInfo":"[\"r3e95RwVsLH7yCbnMfyh7SA8FdwUJCB4S2?memo=241452010\"]" + // } + // + const depositInfoString = this.safeString (depositAddress, 'DepositInfo'); + const depositInfo = JSON.parse (depositInfoString); + const depositInfoLength = depositInfo.length; + const lastString = this.safeString (depositInfo, depositInfoLength - 1); + const parts = lastString.split ('?memo='); + const address = this.safeString (parts, 0); + const tag = this.safeString (parts, 1); + let code = undefined; + if (currency !== undefined) { + code = currency['code']; + } + this.checkAddress (address); + return { + 'currency': code, + 'address': address, + 'tag': tag, + 'info': depositAddress, + }; + } + + async createDepositAddress (code, params = {}) { + const request = { + 'GenerateNewKey': true, + }; + return await this.fetchDepositAddress (code, this.extend (request, params)); + } + + async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + } + const request = { + 'omsId': omsId, + 'AccountId': accountId, + }; + const response = await this.privateGetGetDeposits (this.extend (request, params)); + // + // [ + // { + // "OMSId":1, + // "DepositId":44, + // "AccountId":449, + // "SubAccountId":0, + // "ProductId":4, + // "Amount":200.00000000000000000000000000, + // "LastUpdateTimeStamp":637431291261187806, + // "ProductType":"CryptoCurrency", + // "TicketStatus":"FullyProcessed", + // "DepositInfo":"{}", + // "DepositCode":"ab0e23d5-a9ce-4d94-865f-9ab464fb1de3", + // "TicketNumber":71, + // "NotionalProductId":13, + // "NotionalValue":200.00000000000000000000000000, + // "FeeAmount":0.0000000000000000000000000000, + // }, + // ] + // + return this.parseTransactions (response, currency, since, limit); + } + + async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { + const omsId = this.safeInteger (this.options, 'omsId', 1); + await this.loadMarkets (); + await this.loadAccounts (); + const defaultAccountId = this.safeInteger2 (this.options, 'accountId', 'AccountId', parseInt (this.accounts[0]['id'])); + const accountId = this.safeInteger2 (params, 'accountId', 'AccountId', defaultAccountId); + params = this.omit (params, [ 'accountId', 'AccountId' ]); + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + } + const request = { + 'omsId': omsId, + 'AccountId': accountId, + }; + const response = await this.privateGetGetWithdraws (this.extend (request, params)); + // + // [ + // { + // "Amount": 0.0, + // "FeeAmount": 0.0, + // "NotionalValue": 0.0, + // "WithdrawId": 0, + // "AssetManagerId": 0, + // "AccountId": 0, + // "AssetId": 0, + // "TemplateForm": "{\"TemplateType\": \"TetherRPCWithdraw\",\"Comment\": \"TestWithdraw\",\"ExternalAddress\": \"ms6C3pKAAr8gRCcnVebs8VRkVrjcvqNYv3\"}", + // "TemplateFormType": "TetherRPCWithdraw", + // "omsId": 0, + // "TicketStatus": 0, + // "TicketNumber": 0, + // "WithdrawTransactionDetails": "", + // "WithdrawType": "", + // "WithdrawCode": "490b4fa3-53fc-44f4-bd29-7e16be86fba3", + // "AssetType": 0, + // "Reaccepted": true, + // "NotionalProductId": 0 + // }, + // ] + // + return this.parseTransactions (response, currency, since, limit); + } + + parseTransactionStatusByType (status, type = undefined) { + const statusesByType = { + 'deposit': { + 'New': 'pending', // new ticket awaiting operator review + 'AdminProcessing': 'pending', // an admin is looking at the ticket + 'Accepted': 'pending', // an admin accepts the ticket + 'Rejected': 'rejected', // admin rejects the ticket + 'SystemProcessing': 'pending', // automatic processing; an unlikely status for a deposit + 'FullyProcessed': 'ok', // the deposit has concluded + 'Failed': 'failed', // the deposit has failed for some reason + 'Pending': 'pending', // Account Provider has set status to pending + 'Confirmed': 'pending', // Account Provider confirms the deposit + 'AmlProcessing': 'pending', // anti-money-laundering process underway + 'AmlAccepted': 'pending', // anti-money-laundering process successful + 'AmlRejected': 'rejected', // deposit did not stand up to anti-money-laundering process + 'AmlFailed': 'failed', // anti-money-laundering process failed/did not complete + 'LimitsAccepted': 'pending', // deposit meets limits for fiat or crypto asset + 'LimitsRejected': 'rejected', // deposit does not meet limits for fiat or crypto asset + }, + 'withdrawal': { + 'New': 'pending', // awaiting operator review + 'AdminProcessing': 'pending', // An admin is looking at the ticket + 'Accepted': 'pending', // withdrawal will proceed + 'Rejected': 'rejected', // admin or automatic rejection + 'SystemProcessing': 'pending', // automatic processing underway + 'FullyProcessed': 'ok', // the withdrawal has concluded + 'Failed': 'failed', // the withdrawal failed for some reason + 'Pending': 'pending', // the admin has placed the withdrawal in pending status + 'Pending2Fa': 'pending', // user must click 2-factor authentication confirmation link + 'AutoAccepted': 'pending', // withdrawal will be automatically processed + 'Delayed': 'pending', // waiting for funds to be allocated for the withdrawal + 'UserCanceled': 'canceled', // withdraw canceled by user or Superuser + 'AdminCanceled': 'canceled', // withdraw canceled by Superuser + 'AmlProcessing': 'pending', // anti-money-laundering process underway + 'AmlAccepted': 'pending', // anti-money-laundering process complete + 'AmlRejected': 'rejected', // withdrawal did not stand up to anti-money-laundering process + 'AmlFailed': 'failed', // withdrawal did not complete anti-money-laundering process + 'LimitsAccepted': 'pending', // withdrawal meets limits for fiat or crypto asset + 'LimitsRejected': 'rejected', // withdrawal does not meet limits for fiat or crypto asset + 'Submitted': 'pending', // withdrawal sent to Account Provider; awaiting blockchain confirmation + 'Confirmed': 'pending', // Account Provider confirms that withdrawal is on the blockchain + 'ManuallyConfirmed': 'pending', // admin has sent withdrawal via wallet or admin function directly; marks ticket as FullyProcessed; debits account + 'Confirmed2Fa': 'pending', // user has confirmed withdraw via 2-factor authentication. + }, + }; + const statuses = this.safeValue (statusesByType, type, {}); + return this.safeString (statuses, status, status); + } + + parseTransaction (transaction, currency = undefined) { + // + // fetchDeposits + // + // { + // "OMSId":1, + // "DepositId":44, + // "AccountId":449, + // "SubAccountId":0, + // "ProductId":4, + // "Amount":200.00000000000000000000000000, + // "LastUpdateTimeStamp":637431291261187806, + // "ProductType":"CryptoCurrency", + // "TicketStatus":"FullyProcessed", + // "DepositInfo":"{}", + // "DepositCode":"ab0e23d5-a9ce-4d94-865f-9ab464fb1de3", + // "TicketNumber":71, + // "NotionalProductId":13, + // "NotionalValue":200.00000000000000000000000000, + // "FeeAmount":0.0000000000000000000000000000, + // } + // + // fetchWithdrawals + // + // { + // "Amount": 0.0, + // "FeeAmount": 0.0, + // "NotionalValue": 0.0, + // "WithdrawId": 0, + // "AssetManagerId": 0, + // "AccountId": 0, + // "AssetId": 0, + // "TemplateForm": "{\"TemplateType\": \"TetherRPCWithdraw\",\"Comment\": \"TestWithdraw\",\"ExternalAddress\": \"ms6C3pKAAr8gRCcnVebs8VRkVrjcvqNYv3\"}", + // "TemplateFormType": "TetherRPCWithdraw", + // "omsId": 0, + // "TicketStatus": 0, + // "TicketNumber": 0, + // "WithdrawTransactionDetails": "", + // "WithdrawType": "", + // "WithdrawCode": "490b4fa3-53fc-44f4-bd29-7e16be86fba3", + // "AssetType": 0, + // "Reaccepted": true, + // "NotionalProductId": 0 + // } + // + const id = this.safeString (transaction, 'DepositId'); + let txid = undefined; + const currencyId = this.safeString (transaction, 'ProductId'); + const code = this.safeCurrencyCode (currencyId, currency); + let timestamp = undefined; + let type = undefined; + if ('DepositId' in transaction) { + type = 'deposit'; + } else if ('WithdrawId' in transaction) { + type = 'withdrawal'; + } + const templateFormString = this.safeString (transaction, 'TemplateForm'); + let address = undefined; + let updated = this.safeInteger (transaction, 'LastUpdateTimeStamp'); + if (templateFormString !== undefined) { + const templateForm = JSON.parse (templateFormString); + address = this.safeString (templateForm, 'ExternalAddress'); + txid = this.safeString (templateForm, 'TxId'); + timestamp = this.safeInteger (templateForm, 'TimeSubmitted'); + updated = this.safeInteger (templateForm, 'LastUpdated', updated); + } + const addressTo = address; + const status = this.parseTransactionStatusByType (this.safeString (transaction, 'TicketStatus'), type); + const amount = this.safeFloat (transaction, 'Amount'); + const feeCost = this.safeFloat (transaction, 'FeeAmount'); + let fee = undefined; + if (feeCost !== undefined) { + fee = { 'currency': code, 'cost': feeCost }; + } + return { + 'info': transaction, + 'id': id, + 'txid': txid, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'address': address, + 'addressTo': addressTo, + 'addressFrom': undefined, + 'tag': undefined, + 'tagTo': undefined, + 'tagFrom': undefined, + 'type': type, + 'amount': amount, + 'currency': code, + 'status': status, + 'updated': updated, + 'fee': fee, + }; + } + + nonce () { + return this.milliseconds (); + } + + sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { + let url = this.urls['api'][api] + '/' + this.implodeParams (path, params); + const query = this.omit (params, this.extractParams (path)); + if (api === 'public') { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } else if (api === 'private') { + this.checkRequiredCredentials (); + const nonce = this.nonce ().toString (); + const auth = nonce + this.uid + this.apiKey; + const signature = this.hmac (this.encode (auth), this.encode (this.secret)); + headers = { + 'Nonce': nonce, + 'APIKey': this.apiKey, + 'Signature': signature, + 'UserId': this.uid, + }; + if (method === 'POST') { + headers['Content-Type'] = 'application/json'; + body = this.json (query); + } else { + if (Object.keys (query).length) { + url += '?' + this.urlencode (query); + } + } + } + return { 'url': url, 'method': method, 'body': body, 'headers': headers }; + } + + handleErrors (code, reason, url, method, headers, body, response, requestHeaders, requestBody) { + if (code === 404) { + throw new AuthenticationError (this.id + ' ' + body); + } + if (response === undefined) { + return; + } + // + // {"status":"Rejected","errormsg":"Not_Enough_Funds","errorcode":101} + // {"result":false,"errormsg":"Server Error","errorcode":102,"detail":null} + // + const message = this.safeString (response, 'errormsg'); + if ((message !== undefined) && (message !== '')) { + const feedback = this.id + ' ' + body; + this.throwExactlyMatchedException (this.exceptions['exact'], message, feedback); + this.throwBroadlyMatchedException (this.exceptions['broad'], body, feedback); + throw new ExchangeError (feedback); + } + } +}; diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/novadax.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/novadax.js index c02d4f1a9..dfc6569d2 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/novadax.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/novadax.js @@ -871,6 +871,7 @@ module.exports = class novadax extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/oceanex.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/oceanex.js index b77c3dde7..28cb8e857 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/oceanex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/oceanex.js @@ -512,7 +512,7 @@ module.exports = class oceanex extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a `symbol` argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a `symbol` argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -573,6 +573,7 @@ module.exports = class oceanex extends Exchange { 'symbol': symbol, 'type': this.safeValue (order, 'ord_type'), 'timeInForce': undefined, + 'postOnly': undefined, 'side': this.safeValue (order, 'side'), 'price': this.safeFloat (order, 'price'), 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/okex.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/okex.js index a1d6e3c48..b9b09c4e0 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/okex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/okex.js @@ -3,7 +3,7 @@ // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { ExchangeError, ExchangeNotAvailable, OnMaintenance, ArgumentsRequired, BadRequest, AccountSuspended, InvalidAddress, PermissionDenied, DDoSProtection, InsufficientFunds, InvalidNonce, CancelPending, InvalidOrder, OrderNotFound, AuthenticationError, RequestTimeout, NotSupported, BadSymbol } = require ('./base/errors'); +const { ExchangeError, ExchangeNotAvailable, OnMaintenance, ArgumentsRequired, BadRequest, AccountSuspended, InvalidAddress, PermissionDenied, DDoSProtection, InsufficientFunds, InvalidNonce, CancelPending, InvalidOrder, OrderNotFound, AuthenticationError, RequestTimeout, NotSupported, BadSymbol, RateLimitExceeded } = require ('./base/errors'); const { TICK_SIZE, TRUNCATE } = require ('./base/functions/number'); // --------------------------------------------------------------------------- @@ -108,6 +108,7 @@ module.exports = class okex extends Exchange { 'accounts/{currency}', 'accounts/{currency}/ledger', 'orders', + 'amend_order/{instrument_id}', 'orders_pending', 'orders/{order_id}', 'orders/{client_oid}', @@ -198,6 +199,7 @@ module.exports = class okex extends Exchange { 'post': [ 'accounts/{underlying}/leverage', 'order', + 'amend_order/{instrument_id}', 'orders', 'cancel_order/{instrument_id}/{order_id}', 'cancel_order/{instrument_id}/{client_oid}', @@ -244,12 +246,17 @@ module.exports = class okex extends Exchange { 'post': [ 'accounts/{instrument_id}/leverage', 'order', + 'amend_order/{instrument_id}', 'orders', 'cancel_order/{instrument_id}/{order_id}', 'cancel_order/{instrument_id}/{client_oid}', 'cancel_batch_orders/{instrument_id}', 'order_algo', 'cancel_algos', + 'close_position', + 'cancel_all', + 'order_algo', + 'cancel_algos', ], }, 'option': { @@ -526,7 +533,7 @@ module.exports = class okex extends Exchange { '34021': InvalidAddress, // { "code": 34021, "message": "Not verified address" } '34022': ExchangeError, // { "code": 34022, "message": "Withdrawals are not available for sub accounts" } '34023': PermissionDenied, // { "code": 34023, "message": "Please enable futures trading before transferring your funds" } - '34026': ExchangeError, // transfer too frequently(transfer too frequently) + '34026': RateLimitExceeded, // transfer too frequently(transfer too frequently) '34036': ExchangeError, // Parameter is incorrect, please refer to API documentation '34037': ExchangeError, // Get the sub-account balance interface, account type is not supported '34038': ExchangeError, // Since your C2C transaction is unusual, you are restricted from fund transfer. Please contact our customer support to cancel the restriction @@ -555,7 +562,7 @@ module.exports = class okex extends Exchange { '35031': InvalidOrder, // { "code": 35031, "message": "Cancel order size too large" } '35032': ExchangeError, // { "code": 35032, "message": "Invalid user status" } '35037': ExchangeError, // No last traded price in cache - '35039': ExchangeError, // { "code": 35039, "message": "Open order quantity exceeds limit" } + '35039': InsufficientFunds, // { "code": 35039, "message": "Open order quantity exceeds limit" } '35040': InvalidOrder, // {"error_message":"Invalid order type","result":"true","error_code":"35040","order_id":"-1"} '35044': ExchangeError, // { "code": 35044, "message": "Invalid order status" } '35046': InsufficientFunds, // { "code": 35046, "message": "Negative account balance" } @@ -608,6 +615,7 @@ module.exports = class okex extends Exchange { '35097': ExchangeError, // Order status and order ID cannot exist at the same time '35098': ExchangeError, // An order status or order ID must exist '35099': ExchangeError, // Algo order ID error + '35102': RateLimitExceeded, // {"error_message":"The operation that close all at market price is too frequent","result":"true","error_code":"35102","order_id":"-1"} // option '36001': BadRequest, // Invalid underlying index. '36002': BadRequest, // Instrument does not exist. @@ -677,6 +685,7 @@ module.exports = class okex extends Exchange { 'HOT': 'Hydro Protocol', 'HSR': 'HC', 'MAG': 'Maggie', + 'SBTC': 'Super Bitcoin', 'YOYO': 'YOYOW', 'WIN': 'WinToken', // https://github.com/ccxt/ccxt/issues/5701 }, @@ -976,7 +985,7 @@ module.exports = class okex extends Exchange { const currency = response[i]; const id = this.safeString (currency, 'currency'); const code = this.safeCurrencyCode (id); - const precision = 8; // default precision, todo: fix "magic constants" + const precision = 0.00000001; // default precision, todo: fix "magic constants" const name = this.safeString (currency, 'name'); const canDeposit = this.safeInteger (currency, 'can_deposit'); const canWithdraw = this.safeInteger (currency, 'can_withdraw'); @@ -1712,7 +1721,7 @@ module.exports = class okex extends Exchange { const defaultType = this.safeString2 (this.options, 'fetchBalance', 'defaultType'); const type = this.safeString (params, 'type', defaultType); if (type === undefined) { - throw new ArgumentsRequired (this.id + " fetchBalance requires a type parameter (one of 'account', 'spot', 'margin', 'futures', 'swap')"); + throw new ArgumentsRequired (this.id + " fetchBalance() requires a type parameter (one of 'account', 'spot', 'margin', 'futures', 'swap')"); } await this.loadMarkets (); const suffix = (type === 'account') ? 'Wallet' : 'Accounts'; @@ -1958,7 +1967,7 @@ module.exports = class okex extends Exchange { type = this.safeString (params, 'type', defaultType); } if (type === undefined) { - throw new ArgumentsRequired (this.id + " cancelOrder requires a type parameter (one of 'spot', 'margin', 'futures', 'swap')."); + throw new ArgumentsRequired (this.id + " cancelOrder() requires a type parameter (one of 'spot', 'margin', 'futures', 'swap')."); } let method = type + 'PostCancelOrder'; const request = { @@ -2165,6 +2174,7 @@ module.exports = class okex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -2181,14 +2191,14 @@ module.exports = class okex extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); const defaultType = this.safeString2 (this.options, 'fetchOrder', 'defaultType', market['type']); const type = this.safeString (params, 'type', defaultType); if (type === undefined) { - throw new ArgumentsRequired (this.id + " fetchOrder requires a type parameter (one of 'spot', 'margin', 'futures', 'swap')."); + throw new ArgumentsRequired (this.id + " fetchOrder() requires a type parameter (one of 'spot', 'margin', 'futures', 'swap')."); } const instrumentId = (market['futures'] || market['swap']) ? 'InstrumentId' : ''; let method = type + 'GetOrders' + instrumentId; @@ -2256,7 +2266,7 @@ module.exports = class okex extends Exchange { async fetchOrdersByState (state, symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrdersByState requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrdersByState() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -2268,7 +2278,7 @@ module.exports = class okex extends Exchange { type = this.safeString (params, 'type', defaultType); } if (type === undefined) { - throw new ArgumentsRequired (this.id + " fetchOrder requires a type parameter (one of 'spot', 'margin', 'futures', 'swap')."); + throw new ArgumentsRequired (this.id + " fetchOrdersByState() requires a type parameter (one of 'spot', 'margin', 'futures', 'swap')."); } const request = { 'instrument_id': market['id'], @@ -2598,6 +2608,7 @@ module.exports = class okex extends Exchange { // "currency": "XMR", // "from": "", // "to": "48PjH3ksv1fiXniKvKvyH5UtFs5WhfS2Vf7U3TwzdRJtCc7HJWvCQe56dRahyhQyTAViXZ8Nzk4gQg6o4BJBMUoxNy8y8g7", + // "tag": "1234567", // "deposit_id": 11571659, <-- we can use this // "timestamp": "2019-10-01T14:54:19.000Z", // "status": "2" @@ -2609,6 +2620,7 @@ module.exports = class okex extends Exchange { const withdrawalId = this.safeString (transaction, 'withdrawal_id'); const addressFrom = this.safeString (transaction, 'from'); const addressTo = this.safeString (transaction, 'to'); + const tagTo = this.safeString (transaction, 'tag'); if (withdrawalId !== undefined) { type = 'withdrawal'; id = withdrawalId; @@ -2649,8 +2661,8 @@ module.exports = class okex extends Exchange { 'addressTo': addressTo, 'address': address, 'tagFrom': undefined, - 'tagTo': undefined, - 'tag': undefined, + 'tagTo': tagTo, + 'tag': tagTo, 'status': status, 'type': type, 'updated': undefined, @@ -2823,7 +2835,7 @@ module.exports = class okex extends Exchange { // this aspect renders the 'fills' endpoint unusable for fetchOrderTrades // until either OKEX fixes the API or we workaround this on our side somehow if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -3212,16 +3224,28 @@ module.exports = class okex extends Exchange { request['limit'] = limit; } let currency = undefined; - if ((type === 'spot') || (type === 'futures')) { + if (type === 'spot') { if (code === undefined) { - throw new ArgumentsRequired (this.id + " fetchLedger requires a currency code argument for '" + type + "' markets"); + throw new ArgumentsRequired (this.id + " fetchLedger() requires a currency code argument for '" + type + "' markets"); } argument = 'Currency'; currency = this.currency (code); request['currency'] = currency['id']; + } else if (type === 'futures') { + if (code === undefined) { + throw new ArgumentsRequired (this.id + " fetchLedger() requires an underlying symbol for '" + type + "' markets"); + } + argument = 'Underlying'; + const market = this.market (code); // we intentionally put a market inside here for the margin and swap ledgers + const marketInfo = this.safeValue (market, 'info', {}); + const settlementCurrencyId = this.safeString (marketInfo, 'settlement_currency'); + const settlementCurrencyСode = this.safeCurrencyCode (settlementCurrencyId); + currency = this.currency (settlementCurrencyСode); + const underlyingId = this.safeString (marketInfo, 'underlying'); + request['underlying'] = underlyingId; } else if ((type === 'margin') || (type === 'swap')) { if (code === undefined) { - throw new ArgumentsRequired (this.id + " fetchLedger requires a code argument (a market symbol) for '" + type + "' markets"); + throw new ArgumentsRequired (this.id + " fetchLedger() requires a code argument (a market symbol) for '" + type + "' markets"); } argument = 'InstrumentId'; const market = this.market (code); // we intentionally put a market inside here for the margin and swap ledgers diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/phemex.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/phemex.js index 5fa317455..b1c294ab2 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/phemex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/phemex.js @@ -102,6 +102,7 @@ module.exports = class phemex extends Exchange { 'exchange/spot/order/trades', // ?symbol=&start=&end=&limit=&offset= // swap 'accounts/accountPositions', // ?currency= + 'accounts/positions', // ?currency= 'orders/activeList', // ?symbol= 'exchange/order/list', // ?symbol=&start=&end=&offset=&limit=&ordStatus=&withCount= 'exchange/order', // ?symbol=&orderID= @@ -728,7 +729,7 @@ module.exports = class phemex extends Exchange { parseBidAsk (bidask, priceKey = 0, amountKey = 1, market = undefined) { if (market === undefined) { - throw new ArgumentsRequired (this.id + ' parseBidAsk requires a market argument'); + throw new ArgumentsRequired (this.id + ' parseBidAsk() requires a market argument'); } let amount = this.safeFloat (bidask, amountKey); if (market['spot']) { @@ -821,6 +822,9 @@ module.exports = class phemex extends Exchange { } fromEn (en, scale, precision, precisionMode = undefined) { + if (en === undefined) { + return en; + } precisionMode = (precisionMode === undefined) ? this.precisionMode : precisionMode; return parseFloat (this.decimalToPrecision (en * Math.pow (10, -scale), ROUND, precision, precisionMode)); } @@ -864,13 +868,19 @@ module.exports = class phemex extends Exchange { // 48759063370, // quote volume // ] // + let baseVolume = undefined; + if ((market !== undefined) && market['spot']) { + baseVolume = this.fromEv (this.safeFloat (ohlcv, 7), market); + } else { + baseVolume = this.safeInteger (ohlcv, 7); + } return [ this.safeTimestamp (ohlcv, 0), this.fromEp (this.safeFloat (ohlcv, 3), market), this.fromEp (this.safeFloat (ohlcv, 4), market), this.fromEp (this.safeFloat (ohlcv, 5), market), this.fromEp (this.safeFloat (ohlcv, 6), market), - this.fromEv (this.safeFloat (ohlcv, 7), market), + baseVolume, ]; } @@ -897,7 +907,7 @@ module.exports = class phemex extends Exchange { request['from'] = now - duration * this.sum (limit, 1); request['to'] = now; } else { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires a since argument, or a limit argument, or both'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires a since argument, or a limit argument, or both'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1402,7 +1412,7 @@ module.exports = class phemex extends Exchange { } else { const currency = this.safeString (params, 'currency'); if (currency === undefined) { - throw new ArgumentsRequired (this.id + ' fetchBalance requires a code parameter or a currency parameter for ' + type + ' type'); + throw new ArgumentsRequired (this.id + ' fetchBalance() requires a code parameter or a currency parameter for ' + type + ' type'); } } method = 'privateGetAccountsAccountPositions'; @@ -1637,8 +1647,9 @@ module.exports = class phemex extends Exchange { filled = Math.min (0, amount - remaining); } } - const timeInForce = this.parseTimeInForce (this.safeStirng (order, 'timeInForce')); + const timeInForce = this.parseTimeInForce (this.safeString (order, 'timeInForce')); const stopPrice = this.fromEp (this.safeFloat (order, 'stopPxEp', market)); + const postOnly = (timeInForce === 'PO'); return { 'info': order, 'id': id, @@ -1649,6 +1660,7 @@ module.exports = class phemex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -1721,6 +1733,7 @@ module.exports = class phemex extends Exchange { } const timeInForce = this.parseTimeInForce (this.safeString (order, 'timeInForce')); const stopPrice = this.safeFloat (order, 'stopPx'); + const postOnly = (timeInForce === 'PO'); return { 'info': order, 'id': id, @@ -1731,6 +1744,7 @@ module.exports = class phemex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': timeInForce, + 'postOnly': postOnly, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -1786,8 +1800,10 @@ module.exports = class phemex extends Exchange { }; if (market['spot']) { let qtyType = this.safeValue (params, 'qtyType', 'ByBase'); - if (price !== undefined) { - qtyType = 'ByQuote'; + if ((type === 'Market') || (type === 'Stop') || (type === 'MarketIfTouched')) { + if (price !== undefined) { + qtyType = 'ByQuote'; + } } request['qtyType'] = qtyType; if (qtyType === 'ByQuote') { @@ -1797,7 +1813,7 @@ module.exports = class phemex extends Exchange { if (price !== undefined) { cost = amount * price; } else if (cost === undefined) { - throw new ArgumentsRequired (this.id + ' createOrder ' + qtyType + ' requires a price argument or a cost parameter'); + throw new ArgumentsRequired (this.id + ' createOrder() ' + qtyType + ' requires a price argument or a cost parameter'); } } cost = (cost === undefined) ? amount : cost; @@ -1900,7 +1916,7 @@ module.exports = class phemex extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1940,7 +1956,7 @@ module.exports = class phemex extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1974,7 +1990,7 @@ module.exports = class phemex extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1996,7 +2012,7 @@ module.exports = class phemex extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -2020,7 +2036,7 @@ module.exports = class phemex extends Exchange { async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchClosedOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchClosedOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -2082,7 +2098,7 @@ module.exports = class phemex extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchClosedOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchClosedOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -2317,7 +2333,7 @@ module.exports = class phemex extends Exchange { const currencyId = this.safeString (transaction, 'currency'); currency = this.safeCurrency (currencyId, currency); const code = currency['code']; - const timestamp = this.safeInteger (transaction, 'createdAt'); + const timestamp = this.safeInteger2 (transaction, 'createdAt', 'submitedAt'); let type = this.safeStringLower (transaction, 'type'); const feeCost = this.fromEn (this.safeFloat (transaction, 'feeEv'), currency['valueScale'], currency['precision']); let fee = undefined; diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/poloniex.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/poloniex.js index f0b874031..30eee15c9 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/poloniex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/poloniex.js @@ -204,7 +204,6 @@ module.exports = class poloniex extends Exchange { 'Error pulling ': ExchangeError, // {"error":"Error pulling order book"} }, }, - 'orders': {}, // orders cache / emulation }); } @@ -923,6 +922,7 @@ module.exports = class poloniex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/probit.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/probit.js index 9fb49b9d1..522045f2c 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/probit.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/probit.js @@ -121,6 +121,7 @@ module.exports = class probit extends Exchange { 'RATE_LIMIT_EXCEEDED': RateLimitExceeded, // You are sending requests too frequently. Please try it later. 'MARKET_UNAVAILABLE': ExchangeNotAvailable, // Market is closed today 'INVALID_MARKET': BadSymbol, // Requested market is not exist + 'MARKET_CLOSED': BadSymbol, // {"errorCode":"MARKET_CLOSED"} 'INVALID_CURRENCY': BadRequest, // Requested currency is not exist on ProBit system 'TOO_MANY_OPEN_ORDERS': DDoSProtection, // Too many open orders 'DUPLICATE_ADDRESS': InvalidAddress, // Address already exists in withdrawal address list @@ -142,6 +143,7 @@ module.exports = class probit extends Exchange { 'BTCBEAR': 'BEAR', 'BTCBULL': 'BULL', 'CBC': 'CryptoBharatCoin', + 'HBC': 'Hybrid Bank Cash', 'UNI': 'UNICORN Token', }, }); @@ -299,7 +301,18 @@ module.exports = class probit extends Exchange { const withdrawalSuspended = this.safeValue (platform, 'withdrawal_suspended'); const active = !(depositSuspended && withdrawalSuspended); const withdrawalFees = this.safeValue (platform, 'withdrawal_fee', {}); - const withdrawalFeesByPriority = this.sortBy (withdrawalFees, 'priority'); + const fees = []; + // sometimes the withdrawal fee is an empty object + // [ { 'amount': '0.015', 'priority': 1, 'currency_id': 'ETH' }, {} ] + for (let j = 0; j < withdrawalFees.length; j++) { + const withdrawalFee = withdrawalFees[j]; + const amount = this.safeFloat (withdrawalFee, 'amount'); + const priority = this.safeInteger (withdrawalFee, 'priority'); + if ((amount !== undefined) && (priority !== undefined)) { + fees.push (withdrawalFee); + } + } + const withdrawalFeesByPriority = this.sortBy (fees, 'priority'); const withdrawalFee = this.safeValue (withdrawalFeesByPriority, 0, {}); const fee = this.safeFloat (withdrawalFee, 'amount'); result[code] = { @@ -729,7 +742,7 @@ module.exports = class probit extends Exchange { let endTime = now; if (since === undefined) { if (limit === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOHLCV requires either a since argument or a limit argument'); + throw new ArgumentsRequired (this.id + ' fetchOHLCV() requires either a since argument or a limit argument'); } else { startTime = now - limit * duration * 1000; } @@ -829,7 +842,7 @@ module.exports = class probit extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1022,7 +1035,7 @@ module.exports = class probit extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/qtrade.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/qtrade.js index b1a3ab46e..aa66545bf 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/qtrade.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/qtrade.js @@ -915,6 +915,7 @@ module.exports = class qtrade extends Exchange { 'symbol': symbol, 'type': orderType, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/rightbtc.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/rightbtc.js index ca2de52dd..d22048303 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/rightbtc.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/rightbtc.js @@ -431,7 +431,7 @@ module.exports = class rightbtc extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -541,6 +541,7 @@ module.exports = class rightbtc extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -557,7 +558,7 @@ module.exports = class rightbtc extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -595,7 +596,7 @@ module.exports = class rightbtc extends Exchange { async fetchOpenOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -632,7 +633,7 @@ module.exports = class rightbtc extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { let ids = this.safeString (params, 'ids'); if ((symbol === undefined) || (ids === undefined)) { - throw new ArgumentsRequired (this.id + " fetchOrders requires a 'symbol' argument and an extra 'ids' parameter. The 'ids' should be an array or a string of one or more order ids separated with slashes."); // eslint-disable-line quotes + throw new ArgumentsRequired (this.id + " fetchOrders() requires a 'symbol' argument and an extra 'ids' parameter. The 'ids' should be an array or a string of one or more order ids separated with slashes."); // eslint-disable-line quotes } if (Array.isArray (ids)) { ids = ids.join ('/'); @@ -671,7 +672,7 @@ module.exports = class rightbtc extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/ripio.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/ripio.js index 4c6595d11..b3a30607e 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/ripio.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/ripio.js @@ -830,6 +830,7 @@ module.exports = class ripio extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/southxchange.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/southxchange.js index 126cfdfb3..d2bdd8cec 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/southxchange.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/southxchange.js @@ -264,6 +264,7 @@ module.exports = class southxchange extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/static_dependencies/elliptic/package.json b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/static_dependencies/elliptic/package.json new file mode 100644 index 000000000..ec6f8c8e5 --- /dev/null +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/static_dependencies/elliptic/package.json @@ -0,0 +1,84 @@ +{ + "_args": [ + [ + "elliptic@6.4.0", + "/Users/carlorevelli/Documents/important/code/ccxt" + ] + ], + "_development": true, + "_from": "elliptic@6.4.0", + "_id": "elliptic@6.4.0", + "_inBundle": false, + "_integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "_location": "/elliptic", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "elliptic@6.4.0", + "name": "elliptic", + "escapedName": "elliptic", + "rawSpec": "6.4.0", + "saveSpec": null, + "fetchSpec": "6.4.0" + }, + "_requiredBy": [ + "/browserify-sign", + "/create-ecdh" + ], + "_resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "_spec": "6.4.0", + "_where": "/Users/carlorevelli/Documents/important/code/ccxt", + "author": { + "name": "Fedor Indutny", + "email": "fedor@indutny.com" + }, + "bugs": { + "url": "https://github.com/indutny/elliptic/issues" + }, + "dependencies": { + }, + "description": "EC cryptography", + "devDependencies": { + "brfs": "^1.4.3", + "coveralls": "^2.11.3", + "grunt": "^0.4.5", + "grunt-browserify": "^5.0.0", + "grunt-cli": "^1.2.0", + "grunt-contrib-connect": "^1.0.0", + "grunt-contrib-copy": "^1.0.0", + "grunt-contrib-uglify": "^1.0.1", + "grunt-mocha-istanbul": "^3.0.1", + "grunt-saucelabs": "^8.6.2", + "istanbul": "^0.4.2", + "jscs": "^2.9.0", + "jshint": "^2.6.0", + "mocha": "^2.1.0" + }, + "files": [ + "lib" + ], + "homepage": "https://github.com/indutny/elliptic", + "keywords": [ + "EC", + "Elliptic", + "curve", + "Cryptography" + ], + "license": "MIT", + "main": "lib/elliptic.js", + "name": "elliptic", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/indutny/elliptic.git" + }, + "scripts": { + "jscs": "jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js", + "jshint": "jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js", + "lint": "npm run jscs && npm run jshint", + "test": "npm run lint && npm run unit", + "unit": "istanbul test _mocha --reporter=spec test/index.js", + "version": "grunt dist && git add dist/" + }, + "version": "6.4.0" +} diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/stex.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/stex.js index aaf34ea4a..af2e256f3 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/stex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/stex.js @@ -185,6 +185,8 @@ module.exports = class stex extends Exchange { 'BITS': 'Bitcoinus', 'BITSW': 'BITS', 'BHD': 'Bithold', + 'BTH': 'Bithereum', + 'SBTC': 'SBTCT', // SiamBitcoin }, 'options': { 'parseOrderToPrecision': false, @@ -926,6 +928,7 @@ module.exports = class stex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -1222,7 +1225,7 @@ module.exports = class stex extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/test/Exchange/test.fetchCurrencies.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/test/Exchange/test.fetchCurrencies.js index 79c018d74..563ed1eea 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/test/Exchange/test.fetchCurrencies.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/test/Exchange/test.fetchCurrencies.js @@ -27,7 +27,9 @@ module.exports = async (exchange) => { const method = 'fetchCurrencies' const currencies = await exchange[method] () - Object.values (currencies).forEach ((currency) => testCurrency (exchange, currency, method)) + if (currencies !== undefined) { + Object.values (currencies).forEach ((currency) => testCurrency (exchange, currency, method)) + } return currencies } else { diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/test/Exchange/test.ticker.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/test/Exchange/test.ticker.js index 33a86ceaf..7d91ea0ba 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/test/Exchange/test.ticker.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/test/Exchange/test.ticker.js @@ -82,8 +82,12 @@ module.exports = (exchange, ticker, method, symbol) => { 'okex', 'southxchange', // https://user-images.githubusercontent.com/1294454/59953532-314bea80-9489-11e9-85b3-2a711ca49aa7.png 'bitmart', + 'ftx', 'gateio', // some ticker bids are greaters than asks 'timex', + 'poloniex', + 'qtrade', + 'bigone', ].includes (exchange.id)) { diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/therock.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/therock.js index c26b1b8fe..12217e2b2 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/therock.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/therock.js @@ -965,6 +965,7 @@ module.exports = class therock extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, @@ -994,7 +995,7 @@ module.exports = class therock extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1039,7 +1040,7 @@ module.exports = class therock extends Exchange { async fetchOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrder() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1078,7 +1079,7 @@ module.exports = class therock extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/tidebit.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/tidebit.js index 1f2ef5cd9..acf65de25 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/tidebit.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/tidebit.js @@ -422,6 +422,7 @@ module.exports = class tidebit extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/tidex.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/tidex.js index 5b2504114..0988a4ad1 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/tidex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/tidex.js @@ -580,6 +580,7 @@ module.exports = class tidex extends Exchange { 'lastTradeTimestamp': undefined, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': this.safeString (order, 'type'), 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/timex.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/timex.js index 3937e4660..4c71ac4ff 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/timex.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/timex.js @@ -460,16 +460,19 @@ module.exports = class timex extends Exchange { async createOrder (symbol, type, side, amount, price = undefined, params = {}) { await this.loadMarkets (); const market = this.market (symbol); + const uppercaseSide = side.toUpperCase (); + const uppercaseType = type.toUpperCase (); const request = { 'symbol': market['id'], 'quantity': this.amountToPrecision (symbol, amount), - 'side': side.toUpperCase (), + 'side': uppercaseSide, + 'orderTypes': uppercaseType, // 'clientOrderId': '123', // 'expireIn': 1575523308, // in seconds // 'expireTime': 1575523308, // unix timestamp }; let query = params; - if (type === 'limit') { + if (uppercaseType === 'LIMIT') { request['price'] = this.priceToPrecision (symbol, price); const defaultExpireIn = this.safeInteger (this.options, 'expireIn'); const expireTime = this.safeValue (params, 'expireTime'); @@ -479,7 +482,7 @@ module.exports = class timex extends Exchange { } else if (expireIn !== undefined) { request['expireIn'] = expireIn; } else { - throw new InvalidOrder (this.id + ' createOrder method requires a expireTime or expireIn param for a ' + type + ' order, you can also set the expireIn exchange-wide option'); + throw new InvalidOrder (this.id + ' createOrder() method requires a expireTime or expireIn param for a ' + type + ' order, you can also set the expireIn exchange-wide option'); } query = this.omit (params, [ 'expireTime', 'expireIn' ]); } else { @@ -1182,6 +1185,7 @@ module.exports = class timex extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/upbit.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/upbit.js index b7665f041..829aa6586 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/upbit.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/upbit.js @@ -15,7 +15,6 @@ module.exports = class upbit extends Exchange { 'countries': [ 'KR' ], 'version': 'v1', 'rateLimit': 1000, - 'certified': true, 'pro': true, // new metainfo interface 'has': { @@ -221,7 +220,7 @@ module.exports = class upbit extends Exchange { const walletLocked = this.safeValue (memberInfo, 'wallet_locked'); const locked = this.safeValue (memberInfo, 'locked'); let active = true; - if ((canWithdraw !== undefined) && canWithdraw) { + if ((canWithdraw !== undefined) && !canWithdraw) { active = false; } else if (walletState !== 'working') { active = false; @@ -1204,6 +1203,7 @@ module.exports = class upbit extends Exchange { 'symbol': market['symbol'], 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/vcc.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/vcc.js index 006c36ec6..bd3a9602d 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/vcc.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/vcc.js @@ -1056,6 +1056,7 @@ module.exports = class vcc extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': stopPrice, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/wavesexchange.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/wavesexchange.js index 976435981..139780062 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/wavesexchange.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/wavesexchange.js @@ -1056,7 +1056,7 @@ module.exports = class wavesexchange extends Exchange { this.checkRequiredDependencies (); this.checkRequiredKeys (); if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchOrders requires symbol argument'); + throw new ArgumentsRequired (this.id + ' fetchOrders() requires symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -1269,6 +1269,7 @@ module.exports = class wavesexchange extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/xena.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/xena.js index 8be88d342..2facd429b 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/xena.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/xena.js @@ -38,6 +38,10 @@ module.exports = class xena extends Exchange { }, 'urls': { 'logo': 'https://user-images.githubusercontent.com/51840849/87489843-bb469280-c64c-11ea-91aa-69c6326506af.jpg', + 'test': { + 'public': 'https://trading.demo.xena.io/api', + 'private': 'https://api.demo.xena.io', + }, 'api': { 'public': 'https://trading.xena.exchange/api', 'private': 'https://api.xena.exchange', @@ -958,6 +962,7 @@ module.exports = class xena extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -1017,14 +1022,14 @@ module.exports = class xena extends Exchange { }; if ((type === 'limit') || (type === 'stop-limit')) { if (price === undefined) { - throw new InvalidOrder (this.id + ' createOrder requires a price argument for order type ' + type); + throw new InvalidOrder (this.id + ' createOrder() requires a price argument for order type ' + type); } request['price'] = this.priceToPrecision (symbol, price); } if ((type === 'stop') || (type === 'stop-limit')) { const stopPx = this.safeFloat (params, 'stopPx'); if (stopPx === undefined) { - throw new InvalidOrder (this.id + ' createOrder requires a stopPx param for order type ' + type); + throw new InvalidOrder (this.id + ' createOrder() requires a stopPx param for order type ' + type); } request['stopPx'] = this.priceToPrecision (symbol, stopPx); params = this.omit (params, 'stopPx'); @@ -1062,7 +1067,7 @@ module.exports = class xena extends Exchange { async editOrder (id, symbol, type, side, amount = undefined, price = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); await this.loadAccounts (); @@ -1117,7 +1122,7 @@ module.exports = class xena extends Exchange { async cancelOrder (id, symbol = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' cancelOrder requires a symbol argument'); + throw new ArgumentsRequired (this.id + ' cancelOrder() requires a symbol argument'); } await this.loadMarkets (); await this.loadAccounts (); diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/yobit.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/yobit.js index 46fc1d99d..0ab100f68 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/yobit.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/yobit.js @@ -133,6 +133,7 @@ module.exports = class yobit extends Exchange { 'LOCX': 'LOC', 'LUNYR': 'LUN', 'LUN': 'LunarCoin', // they just change the ticker if it is already taken + 'MASK': 'Yobit MASK', 'MDT': 'Midnight', 'NAV': 'NavajoCoin', 'NBT': 'NiceBytes', @@ -149,6 +150,7 @@ module.exports = class yobit extends Exchange { 'RCN': 'RCoin', 'REP': 'Republicoin', 'RUR': 'RUB', + 'SBTC': 'Super Bitcoin', 'TTC': 'TittieCoin', 'UNI': 'Universe', 'UST': 'Uservice', @@ -595,6 +597,7 @@ module.exports = class yobit extends Exchange { 'lastTradeTimestamp': undefined, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -639,7 +642,7 @@ module.exports = class yobit extends Exchange { async fetchMyTrades (symbol = undefined, since = undefined, limit = undefined, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + ' fetchMyTrades requires a `symbol` argument'); + throw new ArgumentsRequired (this.id + ' fetchMyTrades() requires a `symbol` argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -727,24 +730,6 @@ module.exports = class yobit extends Exchange { }; } - calculateFee (symbol, type, side, amount, price, takerOrMaker = 'taker', params = {}) { - const market = this.markets[symbol]; - let key = 'quote'; - const rate = market[takerOrMaker]; - let cost = parseFloat (this.costToPrecision (symbol, amount * rate)); - if (side === 'sell') { - cost *= price; - } else { - key = 'base'; - } - return { - 'type': takerOrMaker, - 'currency': market[key], - 'rate': rate, - 'cost': cost, - }; - } - sign (path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) { let url = this.urls['api'][api]; const query = this.omit (params, this.extractParams (path)); diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/zaif.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/zaif.js index b9618184e..2c6454a05 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/zaif.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/zaif.js @@ -357,6 +357,7 @@ module.exports = class zaif extends Exchange { 'symbol': symbol, 'type': 'limit', 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/zb.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/zb.js index 9b4d81872..1f8f61cdf 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/zb.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/js/zb.js @@ -3,7 +3,7 @@ // --------------------------------------------------------------------------- const Exchange = require ('./base/Exchange'); -const { BadRequest, ExchangeError, ArgumentsRequired, AuthenticationError, InsufficientFunds, OrderNotFound, ExchangeNotAvailable, DDoSProtection, InvalidOrder } = require ('./base/errors'); +const { BadRequest, ExchangeError, ArgumentsRequired, AuthenticationError, InsufficientFunds, OrderNotFound, ExchangeNotAvailable, DDoSProtection, InvalidOrder, InvalidAddress } = require ('./base/errors'); // --------------------------------------------------------------------------- @@ -22,15 +22,19 @@ module.exports = class zb extends Exchange { 'createOrder': true, 'fetchBalance': true, 'fetchDepositAddress': true, + 'fetchDepositAddresses': true, + 'fetchDeposits': true, 'fetchMarkets': true, 'fetchOHLCV': true, 'fetchOpenOrders': true, 'fetchOrder': true, 'fetchOrderBook': true, 'fetchOrders': true, + 'fetchClosedOrders': true, 'fetchTicker': true, 'fetchTickers': true, 'fetchTrades': true, + 'fetchWithdrawals': true, 'withdraw': true, }, 'timeframes': { @@ -49,33 +53,38 @@ module.exports = class zb extends Exchange { '1w': '1week', }, 'exceptions': { - // '1000': 'Successful operation', - '1001': ExchangeError, // 'General error message', - '1002': ExchangeError, // 'Internal error', - '1003': AuthenticationError, // 'Verification does not pass', - '1004': AuthenticationError, // 'Funding security password lock', - '1005': AuthenticationError, // 'Funds security password is incorrect, please confirm and re-enter.', - '1006': AuthenticationError, // 'Real-name certification pending approval or audit does not pass', - '1009': ExchangeNotAvailable, // 'This interface is under maintenance', - '2001': InsufficientFunds, // 'Insufficient CNY Balance', - '2002': InsufficientFunds, // 'Insufficient BTC Balance', - '2003': InsufficientFunds, // 'Insufficient LTC Balance', - '2005': InsufficientFunds, // 'Insufficient ETH Balance', - '2006': InsufficientFunds, // 'Insufficient ETC Balance', - '2007': InsufficientFunds, // 'Insufficient BTS Balance', - '2009': InsufficientFunds, // 'Account balance is not enough', - '3001': OrderNotFound, // 'Pending orders not found', - '3002': InvalidOrder, // 'Invalid price', - '3003': InvalidOrder, // 'Invalid amount', - '3004': AuthenticationError, // 'User does not exist', - '3005': BadRequest, // 'Invalid parameter', - '3006': AuthenticationError, // 'Invalid IP or inconsistent with the bound IP', - '3007': AuthenticationError, // 'The request time has expired', - '3008': OrderNotFound, // 'Transaction records not found', - '3009': InvalidOrder, // 'The price exceeds the limit', - '3011': InvalidOrder, // 'The entrusted price is abnormal, please modify it and place order again', - '4001': ExchangeNotAvailable, // 'API interface is locked or not enabled', - '4002': DDoSProtection, // 'Request too often', + 'exact': { + // '1000': 'Successful operation', + '1001': ExchangeError, // 'General error message', + '1002': ExchangeError, // 'Internal error', + '1003': AuthenticationError, // 'Verification does not pass', + '1004': AuthenticationError, // 'Funding security password lock', + '1005': AuthenticationError, // 'Funds security password is incorrect, please confirm and re-enter.', + '1006': AuthenticationError, // 'Real-name certification pending approval or audit does not pass', + '1009': ExchangeNotAvailable, // 'This interface is under maintenance', + '2001': InsufficientFunds, // 'Insufficient CNY Balance', + '2002': InsufficientFunds, // 'Insufficient BTC Balance', + '2003': InsufficientFunds, // 'Insufficient LTC Balance', + '2005': InsufficientFunds, // 'Insufficient ETH Balance', + '2006': InsufficientFunds, // 'Insufficient ETC Balance', + '2007': InsufficientFunds, // 'Insufficient BTS Balance', + '2009': InsufficientFunds, // 'Account balance is not enough', + '3001': OrderNotFound, // 'Pending orders not found', + '3002': InvalidOrder, // 'Invalid price', + '3003': InvalidOrder, // 'Invalid amount', + '3004': AuthenticationError, // 'User does not exist', + '3005': BadRequest, // 'Invalid parameter', + '3006': AuthenticationError, // 'Invalid IP or inconsistent with the bound IP', + '3007': AuthenticationError, // 'The request time has expired', + '3008': OrderNotFound, // 'Transaction records not found', + '3009': InvalidOrder, // 'The price exceeds the limit', + '3011': InvalidOrder, // 'The entrusted price is abnormal, please modify it and place order again', + '4001': ExchangeNotAvailable, // 'API interface is locked or not enabled', + '4002': DDoSProtection, // 'Request too often', + }, + 'broad': { + '提币地址有误,请先添加提币地址。': InvalidAddress, // {"code":1001,"message":"提币地址有误,请先添加提币地址。"} + }, }, 'urls': { 'logo': 'https://user-images.githubusercontent.com/1294454/32859187-cd5214f0-ca5e-11e7-967d-96568e2e2bd1.jpg', @@ -102,20 +111,28 @@ module.exports = class zb extends Exchange { 'get': [ // spot API 'order', + 'orderMoreV2', 'cancelOrder', 'getOrder', 'getOrders', 'getOrdersNew', 'getOrdersIgnoreTradeType', 'getUnfinishedOrdersIgnoreTradeType', + 'getFinishedAndPartialOrders', 'getAccountInfo', 'getUserAddress', + 'getPayinAddress', 'getWithdrawAddress', 'getWithdrawRecord', 'getChargeRecord', 'getCnyWithdrawRecord', 'getCnyChargeRecord', 'withdraw', + // sub accounts + 'addSubUser', + 'getSubUserList', + 'doTransferFunds', + 'createSubUserKey', // leverage API 'getLeverAssetsInfo', 'getLeverBills', @@ -126,8 +143,21 @@ module.exports = class zb extends Exchange { 'getLoans', 'getLoanRecords', 'borrow', + 'autoBorrow', 'repay', + 'doAllRepay', 'getRepayments', + 'getFinanceRecords', + 'changeInvestMark', + 'changeLoop', + // cross API + 'getCrossAssets', + 'getCrossBills', + 'transferInCross', + 'transferOutCross', + 'doCrossLoan', + 'doCrossRepay', + 'getCrossRepayRecords', ], }, }, @@ -245,8 +275,96 @@ module.exports = class zb extends Exchange { return this.parseBalance (result); } - getMarketFieldName () { - return 'market'; + parseDepositAddress (depositAddress, currency = undefined) { + // + // fetchDepositAddress + // + // { + // "key": "0x0af7f36b8f09410f3df62c81e5846da673d4d9a9" + // } + // + // fetchDepositAddresses + // + // { + // "blockChain": "btc", + // "isUseMemo": false, + // "address": "1LL5ati6pXHZnTGzHSA3rWdqi4mGGXudwM", + // "canWithdraw": true, + // "canDeposit": true + // } + // { + // "blockChain": "bts", + // "isUseMemo": true, + // "account": "btstest", + // "memo": "123", + // "canWithdraw": true, + // "canDeposit": true + // } + // + let address = this.safeString (depositAddress, 'key'); + let tag = undefined; + const memo = this.safeString (depositAddress, 'memo'); + if (memo !== undefined) { + tag = memo; + } else if (address.indexOf ('_') >= 0) { + const parts = address.split ('_'); + address = parts[0]; // WARNING: MAY BE tag_address INSTEAD OF address_tag FOR SOME CURRENCIES!! + tag = parts[1]; + } + const currencyId = this.safeString (depositAddress, 'blockChain'); + const code = this.safeCurrencyCode (currencyId, currency); + return { + 'currency': code, + 'address': address, + 'tag': tag, + 'info': depositAddress, + }; + } + + parseDepositAddresses (addresses, codes = undefined) { + let result = []; + for (let i = 0; i < addresses.length; i++) { + const address = this.parseDepositAddress (addresses[i]); + result.push (address); + } + if (codes) { + result = this.filterByArray (result, 'currency', codes); + } + return this.indexBy (result, 'currency'); + } + + async fetchDepositAddresses (codes = undefined, params = {}) { + await this.loadMarkets (); + const response = await this.privateGetGetPayinAddress (params); + // + // { + // "code": 1000, + // "message": { + // "des": "success", + // "isSuc": true, + // "datas": [ + // { + // "blockChain": "btc", + // "isUseMemo": false, + // "address": "1LL5ati6pXHZnTGzHSA3rWdqi4mGGXudwM", + // "canWithdraw": true, + // "canDeposit": true + // }, + // { + // "blockChain": "bts", + // "isUseMemo": true, + // "account": "btstest", + // "memo": "123", + // "canWithdraw": true, + // "canDeposit": true + // }, + // ] + // } + // } + // + const message = this.safeValue (response, 'message', {}); + const datas = this.safeValue (message, 'datas', []); + return this.parseDepositAddresses (datas, codes); } async fetchDepositAddress (code, params = {}) { @@ -256,27 +374,29 @@ module.exports = class zb extends Exchange { 'currency': currency['id'], }; const response = await this.privateGetGetUserAddress (this.extend (request, params)); - let address = response['message']['datas']['key']; - let tag = undefined; - if (address.indexOf ('_') >= 0) { - const parts = address.split ('_'); - address = parts[0]; // WARNING: MAY BE tag_address INSTEAD OF address_tag FOR SOME CURRENCIES!! - tag = parts[1]; - } - return { - 'currency': code, - 'address': address, - 'tag': tag, - 'info': response, - }; + // + // { + // "code": 1000, + // "message": { + // "des": "success", + // "isSuc": true, + // "datas": { + // "key": "0x0af7f36b8f09410f3df62c81e5846da673d4d9a9" + // } + // } + // } + // + const message = this.safeValue (response, 'message', {}); + const datas = this.safeValue (message, 'datas', {}); + return this.parseDepositAddress (datas, currency); } async fetchOrderBook (symbol, limit = undefined, params = {}) { await this.loadMarkets (); const market = this.market (symbol); - const marketFieldName = this.getMarketFieldName (); - const request = {}; - request[marketFieldName] = market['id']; + const request = { + 'market': market['id'], + }; if (limit !== undefined) { request['size'] = limit; } @@ -305,9 +425,9 @@ module.exports = class zb extends Exchange { async fetchTicker (symbol, params = {}) { await this.loadMarkets (); const market = this.market (symbol); - const marketFieldName = this.getMarketFieldName (); - const request = {}; - request[marketFieldName] = market['id']; + const request = { + 'market': market['id'], + }; const response = await this.publicGetTicker (this.extend (request, params)); const ticker = response['ticker']; return this.parseTicker (ticker, market); @@ -400,9 +520,9 @@ module.exports = class zb extends Exchange { async fetchTrades (symbol, since = undefined, limit = undefined, params = {}) { await this.loadMarkets (); const market = this.market (symbol); - const marketFieldName = this.getMarketFieldName (); - const request = {}; - request[marketFieldName] = market['id']; + const request = { + 'market': market['id'], + }; const response = await this.publicGetTrades (this.extend (request, params)); return this.parseTrades (response, market, since, limit); } @@ -462,7 +582,7 @@ module.exports = class zb extends Exchange { async fetchOrders (symbol = undefined, since = undefined, limit = 50, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + 'fetchOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + 'fetchOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -488,9 +608,24 @@ module.exports = class zb extends Exchange { return this.parseOrders (response, market, since, limit); } + async fetchClosedOrders (symbol = undefined, since = undefined, limit = undefined, params = {}) { + if (symbol === undefined) { + throw new ArgumentsRequired (this.id + 'fetchClosedOrders() requires a symbol argument'); + } + await this.loadMarkets (); + const market = this.market (symbol); + const request = { + 'currency': market['id'], + 'pageIndex': 1, // default pageIndex is 1 + 'pageSize': 10, // default pageSize is 10, doesn't work with other values now + }; + const response = await this.privateGetGetFinishedAndPartialOrders (this.extend (request, params)); + return this.parseOrders (response, market, since, limit); + } + async fetchOpenOrders (symbol = undefined, since = undefined, limit = 10, params = {}) { if (symbol === undefined) { - throw new ArgumentsRequired (this.id + 'fetchOpenOrders requires a symbol argument'); + throw new ArgumentsRequired (this.id + 'fetchOpenOrders() requires a symbol argument'); } await this.loadMarkets (); const market = this.market (symbol); @@ -517,29 +652,26 @@ module.exports = class zb extends Exchange { } parseOrder (order, market = undefined) { - // - // fetchOrder // // { - // 'total_amount': 0.01, - // 'id': '20180910244276459', - // 'price': 180.0, - // 'trade_date': 1536576744960, - // 'status': 2, - // 'trade_money': '1.96742', - // 'trade_amount': 0.01, - // 'type': 0, - // 'currency': 'eth_usdt' - // } + // acctType: 0, + // currency: 'btc_usdt', + // fees: 3.6e-7, + // id: '202102282829772463', + // price: 45177.5, + // status: 2, + // total_amount: 0.0002, + // trade_amount: 0.0002, + // trade_date: 1614515104998, + // trade_money: 8.983712, + // type: 1, + // useZbFee: false + // }, // let side = this.safeInteger (order, 'type'); side = (side === 1) ? 'buy' : 'sell'; const type = 'limit'; // market order is not availalbe in ZB - let timestamp = undefined; - const createDateField = this.getCreateDateField (); - if (createDateField in order) { - timestamp = order[createDateField]; - } + const timestamp = this.safeInteger (order, 'trade_date'); const marketId = this.safeString (order, 'currency'); const symbol = this.safeSymbol (marketId, market, '_'); const price = this.safeFloat (order, 'price'); @@ -558,6 +690,21 @@ module.exports = class zb extends Exchange { average = cost / filled; } const id = this.safeString (order, 'id'); + const feeCost = this.safeFloat (order, 'fees'); + let fee = undefined; + if (feeCost !== undefined) { + let feeCurrency = undefined; + const zbFees = this.safeValue (order, 'useZbFee'); + if (zbFees === true) { + feeCurrency = 'ZB'; + } else if (market !== undefined) { + feeCurrency = (side === 'sell') ? market['quote'] : market['base']; + } + fee = { + 'cost': feeCost, + 'currency': feeCurrency, + }; + } return { 'info': order, 'id': id, @@ -568,6 +715,7 @@ module.exports = class zb extends Exchange { 'symbol': symbol, 'type': type, 'timeInForce': undefined, + 'postOnly': undefined, 'side': side, 'price': price, 'stopPrice': undefined, @@ -577,7 +725,7 @@ module.exports = class zb extends Exchange { 'filled': filled, 'remaining': remaining, 'status': status, - 'fee': undefined, + 'fee': fee, 'trades': undefined, }; } @@ -592,8 +740,241 @@ module.exports = class zb extends Exchange { return this.safeString (statuses, status, status); } - getCreateDateField () { - return 'trade_date'; + parseTransactionStatus (status) { + const statuses = { + '0': 'pending', // submitted, pending confirmation + '1': 'failed', + '2': 'ok', + '3': 'canceled', + '5': 'ok', // confirmed + }; + return this.safeString (statuses, status, status); + } + + parseTransaction (transaction, currency = undefined) { + // + // withdraw + // + // { + // "code": 1000, + // "message": "success", + // "id": "withdrawalId" + // } + // + // fetchWithdrawals + // + // { + // "amount": 0.01, + // "fees": 0.001, + // "id": 2016042556231, + // "manageTime": 1461579340000, + // "status": 3, + // "submitTime": 1461579288000, + // "toAddress": "14fxEPirL9fyfw1i9EF439Pq6gQ5xijUmp", + // } + // + // fetchDeposits + // + // { + // "address": "1FKN1DZqCm8HaTujDioRL2Aezdh7Qj7xxx", + // "amount": "1.00000000", + // "confirmTimes": 1, + // "currency": "BTC", + // "description": "Successfully Confirm", + // "hash": "7ce842de187c379abafadd64a5fe66c5c61c8a21fb04edff9532234a1dae6xxx", + // "id": 558, + // "itransfer": 1, + // "status": 2, + // "submit_time": "2016-12-07 18:51:57", + // } + // + const id = this.safeString (transaction, 'id'); + const txid = this.safeString (transaction, 'hash'); + const amount = this.safeFloat (transaction, 'amount'); + let timestamp = this.parse8601 (this.safeString (transaction, 'submit_time')); + timestamp = this.safeInteger (transaction, 'submitTime', timestamp); + let address = this.safeString2 (transaction, 'toAddress', 'address'); + let tag = undefined; + if (address !== undefined) { + const parts = address.split ('_'); + address = this.safeString (parts, 0); + tag = this.safeString (parts, 1); + } + const confirmTimes = this.safeInteger (transaction, 'confirmTimes'); + const updated = this.safeInteger (transaction, 'manageTime'); + let type = undefined; + const currencyId = this.safeString (transaction, 'currency'); + const code = this.safeCurrencyCode (currencyId, currency); + if (address !== undefined) { + type = (confirmTimes === undefined) ? 'withdrawal' : 'deposit'; + } + const status = this.parseTransactionStatus (this.safeString (transaction, 'status')); + let fee = undefined; + const feeCost = this.safeFloat (transaction, 'fees'); + if (feeCost !== undefined) { + fee = { + 'cost': feeCost, + 'currency': code, + }; + } + return { + 'info': transaction, + 'id': id, + 'txid': txid, + 'timestamp': timestamp, + 'datetime': this.iso8601 (timestamp), + 'addressFrom': undefined, + 'address': address, + 'addressTo': address, + 'tagFrom': undefined, + 'tag': tag, + 'tagTo': tag, + 'type': type, + 'amount': amount, + 'currency': code, + 'status': status, + 'updated': updated, + 'fee': fee, + }; + } + + async withdraw (code, amount, address, tag = undefined, params = {}) { + const password = this.safeString (params, 'safePwd', this.password); + if (password === undefined) { + throw new ArgumentsRequired (this.id + ' withdraw() requires exchange.password or a safePwd parameter'); + } + const fees = this.safeFloat (params, 'fees'); + if (fees === undefined) { + throw new ArgumentsRequired (this.id + ' withdraw() requires a fees parameter'); + } + this.checkAddress (address); + await this.loadMarkets (); + const currency = this.currency (code); + if (tag !== undefined) { + address += '_' + tag; + } + const request = { + 'amount': this.currencyToPrecision (code, amount), + 'currency': currency['id'], + 'fees': this.currencyToPrecision (code, fees), + // 'itransfer': 0, // agree for an internal transfer, 0 disagree, 1 agree, the default is to disagree + 'method': 'withdraw', + 'receiveAddr': address, + 'safePwd': password, + }; + const response = await this.privateGetWithdraw (this.extend (request, params)); + // + // { + // "code": 1000, + // "message": "success", + // "id": "withdrawalId" + // } + // + const transaction = this.parseTransaction (response, currency); + return this.extend (transaction, { + 'type': 'withdrawal', + 'address': address, + 'addressTo': address, + 'amount': amount, + }); + } + + async fetchWithdrawals (code = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'currency': currency['id'], + // 'pageIndex': 1, + // 'pageSize': limit, + }; + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + request['currency'] = currency['id']; + } + if (limit !== undefined) { + request['pageSize'] = limit; + } + const response = await this.privateGetGetWithdrawRecord (this.extend (request, params)); + // + // { + // "code": 1000, + // "message": { + // "des": "success", + // "isSuc": true, + // "datas": { + // "list": [ + // { + // "amount": 0.01, + // "fees": 0.001, + // "id": 2016042556231, + // "manageTime": 1461579340000, + // "status": 3, + // "submitTime": 1461579288000, + // "toAddress": "14fxEPirL9fyfw1i9EF439Pq6gQ5xijUmp", + // }, + // ], + // "pageIndex": 1, + // "pageSize": 10, + // "totalCount": 4, + // "totalPage": 1 + // } + // } + // } + // + const message = this.safeValue (response, 'message', {}); + const datas = this.safeValue (message, 'datas', {}); + const withdrawals = this.safeValue (datas, 'list', []); + return this.parseTransactions (withdrawals, currency, since, limit); + } + + async fetchDeposits (code = undefined, since = undefined, limit = undefined, params = {}) { + await this.loadMarkets (); + const request = { + // 'currency': currency['id'], + // 'pageIndex': 1, + // 'pageSize': limit, + }; + let currency = undefined; + if (code !== undefined) { + currency = this.currency (code); + request['currency'] = currency['id']; + } + if (limit !== undefined) { + request['pageSize'] = limit; + } + const response = await this.privateGetGetChargeRecord (this.extend (request, params)); + // + // { + // "code": 1000, + // "message": { + // "des": "success", + // "isSuc": true, + // "datas": { + // "list": [ + // { + // "address": "1FKN1DZqCm8HaTujDioRL2Aezdh7Qj7xxx", + // "amount": "1.00000000", + // "confirmTimes": 1, + // "currency": "BTC", + // "description": "Successfully Confirm", + // "hash": "7ce842de187c379abafadd64a5fe66c5c61c8a21fb04edff9532234a1dae6xxx", + // "id": 558, + // "itransfer": 1, + // "status": 2, + // "submit_time": "2016-12-07 18:51:57", + // }, + // ], + // "pageIndex": 1, + // "pageSize": 10, + // "total": 8 + // } + // } + // } + // + const message = this.safeValue (response, 'message', {}); + const datas = this.safeValue (message, 'datas', {}); + const deposits = this.safeValue (datas, 'list', []); + return this.parseTransactions (deposits, currency, since, limit); } nonce () { @@ -629,9 +1010,10 @@ module.exports = class zb extends Exchange { } if (body[0] === '{') { const feedback = this.id + ' ' + body; + this.throwBroadlyMatchedException (this.exceptions['broad'], body, feedback); if ('code' in response) { const code = this.safeString (response, 'code'); - this.throwExactlyMatchedException (this.exceptions, code, feedback); + this.throwExactlyMatchedException (this.exceptions['exact'], code, feedback); if (code !== '1000') { throw new ExchangeError (feedback); } diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/package.json b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/package.json index 7323b5b24..1521ec10e 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/package.json +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/node_modules/ccxt/package.json @@ -1,28 +1,28 @@ { - "_from": "ccxt", - "_id": "ccxt@1.38.75", + "_from": "ccxt@1.42.77", + "_id": "ccxt@1.42.77", "_inBundle": false, - "_integrity": "sha512-cfyucvOi2WQnpR7HLuSuc2uc1vJkVVXfAQGc4D5HxJ2QYzjoez/1mjTm/iQ6+7El7Af1v3lJTtU+NJ9TpzPYFw==", + "_integrity": "sha512-vPaw8G3hr9iq1iJ59EHuA6iqjufgK6dNC7MjT3qV8YQbpEJoD2ynoFwfl1hbuvlyKlFjiOa3gHwhRV64UacBDQ==", "_location": "/ccxt", "_phantomChildren": {}, "_requested": { - "type": "tag", + "type": "version", "registry": true, - "raw": "ccxt", + "raw": "ccxt@1.42.77", "name": "ccxt", "escapedName": "ccxt", - "rawSpec": "", + "rawSpec": "1.42.77", "saveSpec": null, - "fetchSpec": "latest" + "fetchSpec": "1.42.77" }, "_requiredBy": [ "#USER", "/" ], - "_resolved": "https://registry.npmjs.org/ccxt/-/ccxt-1.38.75.tgz", - "_shasum": "1fb943c55da5e4c9aeb5fe267a5f230cbe18450c", - "_spec": "ccxt", - "_where": "c:\\Superalgos\\Projects\\Superalgos\\TS\\Bot-Modules\\Trading-Bot\\Low-Frequency-Trading\\APIs", + "_resolved": "https://registry.npmjs.org/ccxt/-/ccxt-1.42.77.tgz", + "_shasum": "8ab5f8e7190854e163da6d4fcf44530794d0a21c", + "_spec": "ccxt@1.42.77", + "_where": "C:\\Superalgos\\Projects\\Superalgos\\TS\\Bot-Modules\\Trading-Bot\\Low-Frequency-Trading\\APIs", "author": { "name": "Igor Kroitor", "email": "igor.kroitor@gmail.com", @@ -529,7 +529,21 @@ "bitcoin.com", "bibox365.com", "vcc.exchange", - "VCC Exchange" + "VCC Exchange", + "cdax.io", + "CDAX", + "delta.exchange", + "Delta Exchange", + "gopax.co.kr", + "Gopax", + "GOPAX", + "aax.com", + "AAX", + "aaxpro.com", + "equos.io", + "EQUOS", + "ndax.io", + "NDAX" ], "license": "MIT", "main": "./ccxt.js", @@ -540,9 +554,8 @@ }, "scripts": { "browserify": "browserify ./ccxt.browser.js > ./dist/ccxt.browser.js", - "build": "npm run build-without-docs && npm run update-badges", - "build-without-docs": "npm run export-exchanges && npm run vss && npm run copy-python-files && npm run check-js-syntax && npm run browserify && npm run transpile && npm run check-python-syntax && npm run check-php-syntax", - "check-js-syntax": "pwd && eslint --version && eslint \"js/*.js\"", + "build": "npm run pre-transpile && npm run transpile && npm run post-transpile && npm run update-badges", + "check-js-syntax": "node -e \"console.log(process.cwd())\" && eslint --version && eslint \"js/*.js\"", "check-php-syntax": "php -f php/test/syntax.php", "check-python-syntax": "cd python && tox -e qa && cd ..", "check-syntax": "npm run transpile && npm run check-js-syntax && npm run check-python-syntax && npm run check-php-syntax", @@ -554,20 +567,25 @@ "docker": "docker-compose run --rm ccxt", "export-exchanges": "node build/export-exchanges", "fast-test": "node run-tests --js", + "force-build": "npm run pre-transpile && npm run force-transpile && npm run post-transpile && npm run update-badges", + "force-transpile": "node build/transpile --force", "git-ignore-generated-files": "node build/git-ignore-generated-files", "git-unignore-generated-files": "node build/git-ignore-generated-files --unignore", "lint": "eslint", + "post-transpile": "npm run check-python-syntax && npm run check-php-syntax", "postinstall": "node postinstall", + "pre-transpile": "npm run export-exchanges && npm run vss && npm run copy-python-files && npm run check-js-syntax && npm run browserify", "test": "npm run build && node run-tests", "test-base": "npm run test-js-base && npm run test-python-base && npm run test-php-base", "test-js-base": "mocha js/test/base/test.base.js --reporter ololog/reporter", "test-php-base": "php -f php/test/decimal_to_precision.php && php -f php/test/test_crypto.php", - "test-python-base": "python python/test/test_decimal_to_precision.py", + "test-python-base": "python python/ccxt/test/test_decimal_to_precision.py", "transpile": "node build/transpile", "update-badges": "node build/update-badges", + "update-links": "node build/update-links", "vss": "node build/vss" }, "types": "./ccxt.d.ts", "unpkg": "dist/ccxt.browser.js", - "version": "1.38.75" + "version": "1.42.77" } diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/package-lock.json b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/package-lock.json index 9ad8e702a..976144cc2 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/package-lock.json +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/APIs/package-lock.json @@ -3,9 +3,9 @@ "lockfileVersion": 1, "dependencies": { "ccxt": { - "version": "1.38.75", - "resolved": "https://registry.npmjs.org/ccxt/-/ccxt-1.38.75.tgz", - "integrity": "sha512-cfyucvOi2WQnpR7HLuSuc2uc1vJkVVXfAQGc4D5HxJ2QYzjoez/1mjTm/iQ6+7El7Af1v3lJTtU+NJ9TpzPYFw==" + "version": "1.42.77", + "resolved": "https://registry.npmjs.org/ccxt/-/ccxt-1.42.77.tgz", + "integrity": "sha512-vPaw8G3hr9iq1iJ59EHuA6iqjufgK6dNC7MjT3qV8YQbpEJoD2ynoFwfl1hbuvlyKlFjiOa3gHwhRV64UacBDQ==" } } } diff --git a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/TradingStages.js b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/TradingStages.js index 943aa60d3..cbae4558a 100644 --- a/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/TradingStages.js +++ b/Projects/Superalgos/TS/Bot-Modules/Trading-Bot/Low-Frequency-Trading/TradingStages.js @@ -410,7 +410,7 @@ exports.newSuperalgosBotModulesTradingStages = function (processIndex) { if (tradingEngine.tradingCurrent.strategyManageStage.status.value === 'Opening') { /* The system allows the user not to define a Manage Stage, because the Manage Stage is optional. - Here we are goint to see if that is the case and if it is, we will inmidiatelly consider + Here we are going to see if that is the case and if it is, we will inmidiatelly consider the Manage Stage as closed. */ if (tradingSystem.tradingStrategies[tradingEngine.tradingCurrent.strategy.index.value].manageStage === undefined) { @@ -955,39 +955,48 @@ exports.newSuperalgosBotModulesTradingStages = function (processIndex) { reach the target size, so we introduce a rounding factor so that when it is close enough we will consider the target to have been reached. */ - const ROUNDING_ERROR_CORRECTION_FACTOR = 1.001 + let ROUNDING_ERROR_CORRECTION_FACTOR = 1.001 + /* + Overwrite the default with the config at the Stage node, if exists. + */ + if (tradingSystemStage.config.roundingErrorCorrectionFactor !== undefined) { + ROUNDING_ERROR_CORRECTION_FACTOR = tradingSystemStage.config.roundingErrorCorrectionFactor + } + /* + We will also implement a mechanism to allow users declare an absolute value to add + to the Size Filled before checking it againt the Stage Target Size. + */ + let ABSOLUTE_DUST_IN_BASE_ASSET = 0 + if (tradingSystemStage.config.absoluteDustInBaseAsset !== undefined) { + ABSOLUTE_DUST_IN_BASE_ASSET = tradingSystemStage.config.absoluteDustInBaseAsset + } + let ABSOLUTE_DUST_IN_QUOTED_ASSET = 0 + if (tradingSystemStage.config.absoluteDustInQuotedAsset !== undefined) { + ABSOLUTE_DUST_IN_QUOTED_ASSET = tradingSystemStage.config.absoluteDustInQuotedAsset + } - switch (tradingEngineStage.stageDefinedIn.value) { - case 'Base Asset': { - if ( - ( - tradingEngineStage.stageBaseAsset.sizeFilled.value - ) - * ROUNDING_ERROR_CORRECTION_FACTOR - >= - tradingEngineStage.stageBaseAsset.targetSize.value - ) { - positionFilled() - } else { - checkCloseStageEvent(tradingSystemStage) - } - break - } - case 'Quoted Asset': { - if ( - ( - tradingEngineStage.stageQuotedAsset.sizeFilled.value - ) - * ROUNDING_ERROR_CORRECTION_FACTOR - >= - tradingEngineStage.stageQuotedAsset.targetSize.value - ) { - positionFilled() - } else { - checkCloseStageEvent(tradingSystemStage) - } - break - } + if ( + tradingEngineStage.stageBaseAsset.sizeFilled.value + * + ROUNDING_ERROR_CORRECTION_FACTOR + + + ABSOLUTE_DUST_IN_BASE_ASSET + >= + tradingEngineStage.stageBaseAsset.targetSize.value + ) { + positionFilled() + } else if ( + tradingEngineStage.stageQuotedAsset.sizeFilled.value + * + ROUNDING_ERROR_CORRECTION_FACTOR + + + ABSOLUTE_DUST_IN_QUOTED_ASSET + >= + tradingEngineStage.stageQuotedAsset.targetSize.value + ) { + positionFilled() + } else { + checkCloseStageEvent(tradingSystemStage) } function positionFilled() { @@ -1161,4 +1170,4 @@ exports.newSuperalgosBotModulesTradingStages = function (processIndex) { } throw 'Error Already Recorded' } -} \ No newline at end of file +} diff --git a/Projects/Superalgos/TS/Task-Modules/FileStorage.js b/Projects/Superalgos/TS/Task-Modules/FileStorage.js index d47e8793f..ac58e6395 100644 --- a/Projects/Superalgos/TS/Task-Modules/FileStorage.js +++ b/Projects/Superalgos/TS/Task-Modules/FileStorage.js @@ -4,7 +4,6 @@ exports.newFileStorage = function newFileStorage(processIndex, host, port) { const MAX_RETRY = 10 const FAST_RETRY_TIME_IN_MILISECONDS = 500 const SLOW_RETRY_TIME_IN_MILISECONDS = 2000 - const path = require('path') let thisObject = { asyncGetTextFile: asyncGetTextFile, @@ -244,8 +243,7 @@ exports.newFileStorage = function newFileStorage(processIndex, host, port) { logger.write(MODULE_NAME, '[INFO] FileStorage -> createTextFile -> fileLocation: ' + fileLocation) /* If necesary a folder or folders are created before writing the file to disk. */ - let directoryPath = fileLocation.substring(0, fileLocation.lastIndexOf('/') + 1); - mkDirByPathSync(directoryPath) + TS.projects.superalgos.utilities.miscellaneousFunctions.mkDirByPathSync(fileLocation) /* Here we write the file with a temporary name so as to avoid dirty read from other processes. @@ -442,37 +440,6 @@ exports.newFileStorage = function newFileStorage(processIndex, host, port) { } } - /* Function to create folders of missing folders at any path. */ - function mkDirByPathSync(targetDir, { isRelativeToScript = false } = {}) { - const sep = '/'; - const initDir = path.isAbsolute(targetDir) ? sep : ''; - const baseDir = isRelativeToScript ? __dirname : '.'; - - return targetDir.split(sep).reduce((parentDir, childDir) => { - const curDir = path.resolve(baseDir, parentDir, childDir); - try { - const fs = require('fs') - fs.mkdirSync(curDir); - } catch (err) { - if (err.code === 'EEXIST') { // curDir already exists! - return curDir; - } - - // To avoid `EISDIR` error on Mac and `EACCES`-->`ENOENT` and `EPERM` on Windows. - if (err.code === 'ENOENT') { // Throw the original parentDir error on curDir `ENOENT` failure. - throw new Error(`EACCES: permission denied, mkdir '${parentDir}'`); - } - - const caughtErr = ['EACCES', 'EPERM', 'EISDIR'].indexOf(err.code) > -1; - if (!caughtErr || caughtErr && curDir === path.resolve(targetDir)) { - throw err; // Throw if it's just the last created dir. - } - } - - return curDir; - }, initDir); - } - function getFileViaHTTP(filePath, callback, callBackFunction) { try { diff --git a/Projects/Superalgos/TS/Utilities/MiscellaneousFunctions.js b/Projects/Superalgos/TS/Utilities/MiscellaneousFunctions.js index 568b37dd3..8ea8a766c 100644 --- a/Projects/Superalgos/TS/Utilities/MiscellaneousFunctions.js +++ b/Projects/Superalgos/TS/Utilities/MiscellaneousFunctions.js @@ -4,12 +4,13 @@ exports.newSuperalgosUtilitiesMiscellaneousFunctions = function () { genereteUniqueId: genereteUniqueId, truncateToThisPrecision: truncateToThisPrecision, pad: pad, - asyncGetDatasetFile: asyncGetDatasetFile + asyncGetDatasetFile: asyncGetDatasetFile, + mkDirByPathSync: mkDirByPathSync } return thisObject - function genereteUniqueId () { + function genereteUniqueId() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8) return v.toString(16) @@ -45,4 +46,39 @@ exports.newSuperalgosUtilitiesMiscellaneousFunctions = function () { return promise } + + /* Function to create folders of missing folders at any path. */ + function mkDirByPathSync(targetDir, { isRelativeToScript = false } = {}) { + const path = require('path') + + targetDir = targetDir.substring(0, targetDir.lastIndexOf('/') + 1); + + const sep = '/'; + const initDir = path.isAbsolute(targetDir) ? sep : ''; + const baseDir = isRelativeToScript ? __dirname : '.'; + + return targetDir.split(sep).reduce((parentDir, childDir) => { + const curDir = path.resolve(baseDir, parentDir, childDir); + try { + const fs = require('fs') + fs.mkdirSync(curDir); + } catch (err) { + if (err.code === 'EEXIST') { // curDir already exists! + return curDir; + } + + // To avoid `EISDIR` error on Mac and `EACCES`-->`ENOENT` and `EPERM` on Windows. + if (err.code === 'ENOENT') { // Throw the original parentDir error on curDir `ENOENT` failure. + throw new Error(`EACCES: permission denied, mkdir '${parentDir}'`); + } + + const caughtErr = ['EACCES', 'EPERM', 'EISDIR'].indexOf(err.code) > -1; + if (!caughtErr || caughtErr && curDir === path.resolve(targetDir)) { + throw err; // Throw if it's just the last created dir. + } + } + + return curDir; + }, initDir); + } } \ No newline at end of file diff --git a/Projects/Superalgos/UI/Function-Libraries/LearningSessionFunctions.js b/Projects/Superalgos/UI/Function-Libraries/LearningSessionFunctions.js index e9250c954..b4e6d35d2 100644 --- a/Projects/Superalgos/UI/Function-Libraries/LearningSessionFunctions.js +++ b/Projects/Superalgos/UI/Function-Libraries/LearningSessionFunctions.js @@ -119,6 +119,8 @@ function newSuperalgosFunctionLibraryLearningSessionFunctions() { 'Serial Number->Identifier->Begin->End->Begin Rate->End Rate->Strategy Name->Status->Exit Type->' + 'Balance->Begin Balance->End Balance->' + 'Index->Situation Name->Formula->Periods->' + + 'Features->Feature->Begin->End->Feature Value->'+ + 'Labels->Label->Begin->End->Label Value->'+ 'Predictions->Prediction->Begin->End->Prediction Value->' let learningEngine = UI.projects.superalgos.functionLibraries.protocolNode.getProtocolNode(node.learningEngineReference.payload.referenceParent, false, true, true, false, false, lightingPath) diff --git a/Projects/Superalgos/UI/Function-Libraries/WebhookFunctions.js b/Projects/Superalgos/UI/Function-Libraries/WebhookFunctions.js index 64f476412..112b1347f 100644 --- a/Projects/Superalgos/UI/Function-Libraries/WebhookFunctions.js +++ b/Projects/Superalgos/UI/Function-Libraries/WebhookFunctions.js @@ -13,8 +13,10 @@ function newSuperalgosFunctionLibraryWebhookFunctions() { function onResponse(err) { if (err.result === GLOBAL.DEFAULT_OK_RESPONSE.result) { + node.payload.uiObject.setInfoMessage('Test Message sent to the Client.') callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE) } else { + node.payload.uiObject.resetErrorMessage('Could not send Test Message to the Client.') callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) } } diff --git a/Projects/Superalgos/UI/Spaces/Docs-Space/ContextMenu.js b/Projects/Superalgos/UI/Spaces/Docs-Space/ContextMenu.js index 6c636076f..b2dd3d6f1 100644 --- a/Projects/Superalgos/UI/Spaces/Docs-Space/ContextMenu.js +++ b/Projects/Superalgos/UI/Spaces/Docs-Space/ContextMenu.js @@ -293,7 +293,7 @@ function newSuperalgosDocsContextMenu() { We need to locate the parent node that it is a Paragraph, otherwise we could end up in an inner html element. */ - let paragraphNode = selection.baseNode + let paragraphNode = selection.anchorNode if (paragraphNode.id !== undefined && paragraphNode.parentNode.className === "docs-tooltip") { return false @@ -457,4 +457,4 @@ function newSuperalgosDocsContextMenu() { return true } } -} \ No newline at end of file +} diff --git a/Projects/Superalgos/UI/Spaces/Floating-Space/FloatingSpace.js b/Projects/Superalgos/UI/Spaces/Floating-Space/FloatingSpace.js index ba8292de5..4131368d7 100644 --- a/Projects/Superalgos/UI/Spaces/Floating-Space/FloatingSpace.js +++ b/Projects/Superalgos/UI/Spaces/Floating-Space/FloatingSpace.js @@ -100,6 +100,7 @@ function newSuperalgosFloatingSpace() { } }, physics: true, + detachUsingMouse: false } return thisObject @@ -536,6 +537,9 @@ function newSuperalgosFloatingSpace() { if (configSettings.physics !== undefined) { thisObject.settings.physics = configSettings.physics } + if (configSettings.detachUsingMouse !== undefined) { + thisObject.settings.detachUsingMouse = configSettings.detachUsingMouse + } } function positionContraintsPhysics() { diff --git a/Projects/Superalgos/UI/Spaces/Floating-Space/UiObject.js b/Projects/Superalgos/UI/Spaces/Floating-Space/UiObject.js index 7d5910a89..80380a401 100644 --- a/Projects/Superalgos/UI/Spaces/Floating-Space/UiObject.js +++ b/Projects/Superalgos/UI/Spaces/Floating-Space/UiObject.js @@ -560,6 +560,7 @@ function newUiObject() { function chainDetachingPhysics() { if (isDragging !== true) { return } if (rightDragging === false) { return } + if (UI.projects.superalgos.spaces.floatingSpace.settings.detachUsingMouse !== true) {return} let distanceToChainParent = Math.sqrt(Math.pow(thisObject.payload.position.x - thisObject.payload.targetPosition.x, 2) + Math.pow(thisObject.payload.position.y - thisObject.payload.targetPosition.y, 2)) let ratio = distanceToChainParent / previousDistanceToChainParent @@ -665,6 +666,7 @@ function newUiObject() { if (thisObject.payload === undefined) { return } if (thisObject.payload.floatingObject.isFrozen === true) { return } if (rightDragging === false) { return } + if (UI.projects.superalgos.spaces.floatingSpace.settings.detachUsingMouse !== true) {return} if (thisObject.payload.referenceParent === undefined) { return } diff --git a/Projects/Superalgos/UI/Spaces/Panel-Space/PanelSpace.js b/Projects/Superalgos/UI/Spaces/Panel-Space/PanelSpace.js index d0a58ab2c..5ee668d51 100644 --- a/Projects/Superalgos/UI/Spaces/Panel-Space/PanelSpace.js +++ b/Projects/Superalgos/UI/Spaces/Panel-Space/PanelSpace.js @@ -49,7 +49,7 @@ function newSuperalgosPanelSpace() { } case 'Plotter Panel': { - let panelConfig = JSON.parse(pParameters.panelNode.config) + let panelConfig = pParameters.panelNode.config if (panelConfig.isLegacy !== true) { panel = newPlotterPanel() diff --git a/Projects/Superalgos/UI/Spaces/Panel-Space/PlotterPanel.js b/Projects/Superalgos/UI/Spaces/Panel-Space/PlotterPanel.js index f22274743..76c3290b0 100644 --- a/Projects/Superalgos/UI/Spaces/Panel-Space/PlotterPanel.js +++ b/Projects/Superalgos/UI/Spaces/Panel-Space/PlotterPanel.js @@ -3,7 +3,7 @@ function newPlotterPanel() { const MODULE_NAME = 'Plotter Panel' const ERROR_LOG = true const logger = newWebDebugLog() - + let thisObject = { fitFunction: undefined, @@ -23,6 +23,7 @@ function newPlotterPanel() { let currentRecord let upDownButton let panelNode + let recordSet = new Map() return thisObject @@ -34,6 +35,7 @@ function newPlotterPanel() { heightFactor = undefined currentRecord = undefined + recordSet = undefined upDownButton.finalize() upDownButton = undefined panelNode = undefined @@ -79,6 +81,20 @@ function newPlotterPanel() { function onRecordChange(pCurrentRecord) { currentRecord = pCurrentRecord + + if (currentRecord === undefined) { + recordSet = new Map() + return + } + if (currentRecord.index !== undefined) { + /* + There is a situation when we expect to receive many records + that are part of a set. We will know when when we detect the + property index. In that situation we will build the recordset + by adding each record to a Map by index. + */ + recordSet.set(currentRecord.index, currentRecord) + } } function draw() { diff --git a/Projects/TensorFlow/Icons-SVG-Sources/Delete.txt b/Projects/TensorFlow/Icons-SVG-Sources/Delete.txt new file mode 100644 index 000000000..e69de29bb diff --git a/Projects/Superalgos/Icons/artificial-neural-network.png b/Projects/TensorFlow/Icons/artificial-neural-network.png similarity index 100% rename from Projects/Superalgos/Icons/artificial-neural-network.png rename to Projects/TensorFlow/Icons/artificial-neural-network.png diff --git a/Projects/Superalgos/Icons/execution-environment.png b/Projects/TensorFlow/Icons/execution-environment.png similarity index 100% rename from Projects/Superalgos/Icons/execution-environment.png rename to Projects/TensorFlow/Icons/execution-environment.png diff --git a/Projects/Superalgos/Icons/machine-learning.png b/Projects/TensorFlow/Icons/machine-learning.png similarity index 100% rename from Projects/Superalgos/Icons/machine-learning.png rename to Projects/TensorFlow/Icons/machine-learning.png diff --git a/Projects/Superalgos/Icons/model.png b/Projects/TensorFlow/Icons/model.png similarity index 100% rename from Projects/Superalgos/Icons/model.png rename to Projects/TensorFlow/Icons/model.png diff --git a/Projects/Superalgos/Icons/nodejs-backend.png b/Projects/TensorFlow/Icons/nodejs-backend.png similarity index 100% rename from Projects/Superalgos/Icons/nodejs-backend.png rename to Projects/TensorFlow/Icons/nodejs-backend.png diff --git a/Projects/Superalgos/Icons/supervised-learning.png b/Projects/TensorFlow/Icons/supervised-learning.png similarity index 100% rename from Projects/Superalgos/Icons/supervised-learning.png rename to Projects/TensorFlow/Icons/supervised-learning.png diff --git a/Projects/Superalgos/Icons/tensorflow-library.png b/Projects/TensorFlow/Icons/tensorflow-library.png similarity index 100% rename from Projects/Superalgos/Icons/tensorflow-library.png rename to Projects/TensorFlow/Icons/tensorflow-library.png diff --git a/Projects/Superalgos/Icons/tensorflow-project.png b/Projects/TensorFlow/Icons/tensorflow-project.png similarity index 100% rename from Projects/Superalgos/Icons/tensorflow-project.png rename to Projects/TensorFlow/Icons/tensorflow-project.png diff --git a/Projects/TensorFlow/Schemas/AppSchema.json b/Projects/TensorFlow/Schemas/AppSchema.json index 8cf256384..49fa8bda3 100644 --- a/Projects/TensorFlow/Schemas/AppSchema.json +++ b/Projects/TensorFlow/Schemas/AppSchema.json @@ -31,8 +31,7 @@ "project": "Superalgos", "autoAdd": true } - ], - "icon": "tensorflow" + ] }, { "type": "Machine Learning", @@ -142,8 +141,7 @@ "type": "node", "childType": "Self Learning" } - ], - "icon": "tensorflow" + ] }, { "type": "Supervised Learning", @@ -178,8 +176,7 @@ "type": "node", "childType": "Artificial Neural Network" } - ], - "icon": "tensorflow" + ] }, { "type": "Unsupervised Learning", @@ -322,8 +319,7 @@ "type": "node", "childType": "Model" } - ], - "icon": "tensorflow" + ] }, { "type": "Model", @@ -410,8 +406,7 @@ "type": "node", "childType": "Fit Dataset" } - ], - "icon": "tensorflow" + ] }, { "type": "Compile", @@ -3305,8 +3300,7 @@ "childType": "Environment Flags", "autoAdd": true } - ], - "icon": "tensorflow" + ] }, { "type": "Environment Flags", @@ -3424,8 +3418,7 @@ "compatibleTypes": "->Execution Environment->" }, "propertyNameAtParent": "backend", - "childrenNodesProperties": [], - "icon": "tensorflow" + "childrenNodesProperties": [] }, { "type": "WASM Backend", diff --git a/Projects/TensorFlow/TS/Bot-Modules/Learning-Bot/Low-Frequency-Learning/TensorFlowLibrary.js b/Projects/TensorFlow/TS/Bot-Modules/Learning-Bot/Low-Frequency-Learning/TensorFlowLibrary.js index 34fa774a5..0bc831f03 100644 --- a/Projects/TensorFlow/TS/Bot-Modules/Learning-Bot/Low-Frequency-Learning/TensorFlowLibrary.js +++ b/Projects/TensorFlow/TS/Bot-Modules/Learning-Bot/Low-Frequency-Learning/TensorFlowLibrary.js @@ -319,7 +319,11 @@ exports.newTensorFlowBotModulesTensorFlowLibrary = function (processIndex) { } async function saveModel() { - await tensorFlowModel.save('file://' + getModelPath()) + let fileLocation = getModelPath() + /* If necesary a folder or folders are created before writing the file to disk. */ + TS.projects.superalgos.utilities.miscellaneousFunctions.mkDirByPathSync(fileLocation) + + await tensorFlowModel.save('file://' + fileLocation) } function getModelPath() { @@ -372,6 +376,14 @@ exports.newTensorFlowBotModulesTensorFlowLibrary = function (processIndex) { if (dataFeature.featureFormula === undefined) { continue } let featureValue = learningSystem.formulas.get(dataFeature.featureFormula.id) features.push(featureValue) + + /* + We will store at the Learning Engine data structure the features we have calculated. + */ + if (learningEngine.features.features[i] === undefined) { continue } + learningEngine.features.features[i].featureValue.value = featureValue + learningEngine.features.features[i].begin.value = learningEngine.learningCurrent.learningEpisode.candle.begin.value + learningEngine.features.features[i].end.value = learningEngine.learningCurrent.learningEpisode.candle.end.value } /* @@ -415,6 +427,14 @@ exports.newTensorFlowBotModulesTensorFlowLibrary = function (processIndex) { if (dataLabel.labelFormula === undefined) { continue } let labelValue = learningSystem.formulas.get(dataLabel.labelFormula.id) labels.push(labelValue) + + /* + We will store at the Learning Engine data structure the labels we have calculated. + */ + if (learningEngine.labels.labels[i] === undefined) { continue } + learningEngine.labels.labels[i].labelValue.value = labelValue + learningEngine.labels.labels[i].begin.value = learningEngine.learningCurrent.learningEpisode.candle.begin.value + learningEngine.labels.labels[i].end.value = learningEngine.learningCurrent.learningEpisode.candle.end.value } tensorFlowData = require("@tensorflow/tfjs-data") diff --git a/README.md b/README.md index 45ce67eff..60b4c4af8 100644 --- a/README.md +++ b/README.md @@ -71,22 +71,16 @@ Before you begin, it is recommended that you set up Chrome/Safari as your defaul # Superalgos Client Installation -**1.** Scroll the page all the way to the top. Find and click the **Fork** button to create your fork/copy of this repository. To fork Superalgos you need a GitHub account. If you don't have one, go ahead and create it. +**1.** Scroll the page all the way to the top. Find and click the **Fork** button to create your fork/copy of this repository. To fork Superalgos you need a Github account. If you don't have one, go ahead and create it. **NOTE:** A Fork is required for your contributions to the project. The reason why Superalgos is free and open-source is that the project has set up a Collective Business in which all users may participate. The way to participate is to contribute to make Superalgos better. The project's token is distributed among contributors. **2.** Once the fork is created, you will land on the page of your fork. Copy the URL from your browser's address bar. -**3.** In your computer/laptop/server, open a command prompt or terminal as an administrator (to avoid issues with permissions) and type: +**3.** In your computer/laptop/server, open a command prompt or terminal. Make sure you are in a directory where you have write permissions (on most systems the terminal will open in your user’s home directory, so you’re good). Clone the git repository using the command ``` -git clone -``` - -**5.** Don't hit Enter yet! Complete the command by pasting the URL of your fork! - -``` -git clone + URL of your Superalgos fork. +git clone ``` For example, if your Github username is John, the command will look like this: @@ -95,7 +89,7 @@ For example, if your Github username is John, the command will look like this: git clone https://github.com/John/Superalgos ``` -Ok, you have installed Superalgos. To run the App, jump to the section Usage below. +This creates the `Superalgos` folder in the current directory, which contains the whole installation. To run the App, jump to the section Usage below. ## Installation Notes @@ -103,9 +97,7 @@ Ok, you have installed Superalgos. To run the App, jump to the section Usage bel **2.** The software includes an in-app self-update command / feature. It will help you stay up-to-date with the latest version of the software. Updates are on-demand, so don't worry about undesired updates. The project moves very fast and new features become available regularly, particularly if you choose to run the software in the ```develop``` branch (you may switch branches from within the app). -**3.** You are better off running the git clone command as an administrator to avoid permission issues while creating the Superalgos folder and downloading the repository. It may work without admin powers depending on your setup, particularly if you are running the command on a folder where you've got write permissions. - -**4.** Before installing the client on a remote computer in an attempt to access the UI from a different machine, we highly recommend you do a standard installation on your PC / laptop first. Leave your Raspberry Pi or server for later, once you have done all available tutorials. This single tip will save you a lot of time: you don't need to add complexity before you learn how to handle the app. +**3.** Before installing the client on a remote computer in an attempt to access the UI from a different machine, we highly recommend you do a standard installation on your PC / laptop first. Leave your Raspberry Pi or server for later, once you have done all available tutorials. This single tip will save you a lot of time: you don't need to add complexity before you learn how to handle the app. ## Migrating from Superalgos Beta 8 @@ -162,6 +154,47 @@ node run minMemo noBrowser **1.** We are testing the UI on Google Chrome and Safari on macOS only. It may work on other browsers as well — or not. If you are running on a different browser and ever need support, make sure you mention that fact upfront, or even better, try on Chrome/Safari first. **TIP:** If your computer has 8 GB of RAM or less, use ```node run minMemo``` to run the system with minimal RAM requirements. + +# Running Superalgos on a headless linux server as a daemon + +If you’re running Superalgos on a headless linux server like a Raspberry Pi, you might want to run it as a daemon so it isn’t attached to your current login session. The easiest, most standard way to go about this is probably using `systemd`. Most linux distributions use it as default init system/service manager. + +## Using `systemd` + +Create a `superalgos.service` file looking like this (change `` to your user name and `/path/to/Superalgos` to your Superalgos folder, for instance `/home/John/Superalgos`): +``` +[Unit] +Description=Superalgos client + +[Service] +Type=simple +User= +WorkingDirectory=/path/to/Superalgos +ExecStart=/usr/bin/node run minMemo noBrowser + +[Install] +WantedBy=multi-user.target + +``` +There is no need to run Superalgos as root so we’re running it as a user. The `minMemo` option assumes you’re running on a small machine like a Raspberry Pi, while `noBrowser` makes sense for running daemonized. + +Now, as root (or using `sudo`), put the file `superalgos.service` you just created in `/etc/systemd/system/` and issue the command +``` +systemctl enable superalgos +``` +This will install the service so that Superalgos is started on boot. To start it manually, do (again as root or with `sudo`) +``` +systemctl start superalgos +``` + +To see the output of Superalgos, use +``` +journalctl -u superalgos +``` +or to follow the output, +``` +journalctl -u superalgos -f +``` # Uninstall @@ -177,7 +210,16 @@ Once the app finishes loading, an interactive tutorial takes you by the hand and # Docker Deployments -We haven't tested containerized deployments, but many people in the community have. Worth noting is the fact that Superalgos doesn't touch anything outside the Superalgos folder. To uninstall, delete the folder. +- NEW: Added github action to publish docker image into github package registry + +## Docker Image +If you want to run superalgos over docker platform, you should follow the next steps: +1. [Install docker](https://docs.docker.com/engine/install/) +2. `docker login ghcr.io --username your-github-username --password-stdin` +3. `docker run -p 18041:18041 -p 34248 superalgos/superalgos` +4. Now you can access to the superalgos UI + +Note: This has not been extensively tested yet, if you run into troubles, please contact us at our [Superalgos User's Support Group](https://t.me/superalgossupport). # What is Superalgos? @@ -297,7 +339,7 @@ Online support through our [Superalgos User's Support Group](https://t.me/supera ## In-App Integrated Documentation -Superalgos features interactive documentation. +Superalgos features interactive documentation built-in the system. ## Video Tutorials @@ -321,9 +363,7 @@ Meet other users in the [Superalgos Telegram Community Group](https://t.me/super Meet developers in the [Superalgos Telegram Developer's Group](https://t.me/superalgosdevelop). -Meet designers in the [Superalgos Telegram UX/UI Group](https://t.me/superalgosuxui). - -Spanish speaking users hang out in the [Superalgos en Español Telegram Group](https://t.me/superalgos_es). +Users meet in other topic-specific Telegram Groups. There's a [complete list of groups](https://superalgos.org/community-join.shtml) on the website. ## Blog @@ -341,6 +381,7 @@ Or follow [Superalgos on Facebook](https://www.facebook.com/superalgos). Superalgos is a Community Project built by users for users. Learn [how you may contribute](https://superalgos.org/community-contribute.shtml). + ## Top Contributors Luis Fernando Molina, Julian Molina, Andreja Cobeljic, Matías Benitez, Ira Miller, Eduardo Remis, Jeff Braun, rico4dev, 9808us, Barry Low, Nikola Bjelogrlic, Hirajin Koizuko, Francisco J. Santillán, Norman, Viktoria B., Guillermo V., Carl J, Daniel J., Javier A., Gustavo J., Romina GS, Pedro P., Thais M., Andrey M., Loui M., Natalia M., Bashar A., Carlos V., Diego M., CarnivalBen, Sebastian E., Bogdan P., Marko V., Igor S., Niksa K., Rodrigo M., Nicanor M., Alejandro P., Mateo H., Lan T., Leon A., Uroš R., Filip M., Vladimir J. and Pavle B.